{
  "contractName": "TokenList",
  "abi": [],
  "metadata": "{\"compiler\":{\"version\":\"0.4.24+commit.e67f0147\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/chtian/Documents/01_work/01_develope/jcc/jcc-solidity-utils/contracts/list/TokenList.sol\":\"TokenList\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/chtian/Documents/01_work/01_develope/jcc/jcc-solidity-utils/contracts/list/TokenList.sol\":{\"keccak256\":\"0x4a2749c11f41cce84af3cd102517593a068b8a8df3f9e74267432e5de290b362\",\"urls\":[\"bzzr://3a8b602bb2ec0f0542c73e335cda648fb5b1f9f773e92dd53f06bbbfd8d52b92\"]},\"/Users/chtian/Documents/01_work/01_develope/jcc/jcc-solidity-utils/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x239546071316c89d3bbc9e61b2ccae270a4493bbd2f7c240052f533807d50ab7\",\"urls\":[\"bzzr://267bf48e0a30f7b671aa3c98a6b27ffe7bc64efd6533f49e54188b520baa94c5\"]}},\"version\":1}",
  "bytecode": "0x604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820733c412618ce31979a32b796d5f6f8bd22881866bc771d0d3d9b40c8729691890029",
  "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820733c412618ce31979a32b796d5f6f8bd22881866bc771d0d3d9b40c8729691890029",
  "sourceMap": "94:8291:17:-;;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",
  "deployedSourceMap": "94:8291:17:-;;;;;;;;",
  "source": "pragma solidity >=0.4.24;\n\nimport \"../math/SafeMath.sol\";\n\n/**\n * @dev 通证列表处理\n */\nlibrary TokenList {\n  using SafeMath for uint256;\n\n  // 通证定义\n  struct element {\n    // 索引\n    uint256 idx;\n    // 不重复的编号\n    uint256 id;\n    // 定义来自JCCChainList\n    uint256 chainId;\n    // origin token chainid + issuer hash\n    // 如果是原生通证为0,如果是映射通证，则填写原生通证的 chainid+issuer hash\n    bytes32 origin;\n    /**\n      所有链的原生通证默认标记不填写，除非另有规定(例如:EOS本身是一个合约)\n      issuer格式: 合约地址/合约地址\n      ETH类的通证通过合约地址区分，原生通证表示为 \"/\"\n      SWTC类的通证定义由\"issuer/名称\"来表示地址，issuer为空表示原生通证\n      MOAC应用链通过 \"主链via地址/应用链合约\"来表示issuer\n      在同一条链上，不许重复\n     */\n    string issuer;\n    // 简称,同一条链不重复\n    string symbol;\n  }\n\n  struct tokenMap {\n    // token id => index\n    mapping(uint256 => uint256) mapId;\n    // chainId+symbol hash => index\n    mapping(bytes32 => uint256) mapSymbol;\n    // chainId+issuer hash => index\n    mapping(bytes32 => uint256) mapIssuer;\n    // origin token mapping chainId+issuer hash => token id array\n    mapping(bytes32 => uint256[]) mapToken;\n    // data array\n    element[] list;\n  }\n\n  function existId(tokenMap storage self, uint256 _id)\n    internal\n    view\n    returns (bool)\n  {\n    if (self.list.length == 0) return false;\n    return (self.list[self.mapId[_id]].id == _id &&\n      getStringLen(self.list[self.mapId[_id]].symbol) > 0);\n  }\n\n  function existSymbol(tokenMap storage self, bytes32 _symbolHash)\n    internal\n    view\n    returns (bool)\n  {\n    if (self.list.length == 0) return false;\n    element storage e = self.list[self.mapSymbol[_symbolHash]];\n    return (getHash(e.chainId, e.symbol) == _symbolHash);\n  }\n\n  function existIssuer(tokenMap storage self, bytes32 _issuerHash)\n    internal\n    view\n    returns (bool)\n  {\n    if (self.list.length == 0) return false;\n    element storage e = self.list[self.mapIssuer[_issuerHash]];\n    return (getHash(e.chainId, e.issuer) == _issuerHash);\n  }\n\n  // 检查映射数组有无重复\n  function existToken(\n    tokenMap storage self,\n    bytes32 _origin,\n    uint256 _id\n  ) internal view returns (bool, uint256) {\n    if (self.list.length == 0) return (false, 0);\n\n    uint256[] storage _arr = self.mapToken[_origin];\n\n    for (uint256 i = 0; i < _arr.length; i++) {\n      if (_arr[i] == _id) {\n        return (true, i);\n      }\n    }\n\n    return (false, 0);\n  }\n\n  // 增加映射通证数组成员\n  function insertToken(\n    tokenMap storage self,\n    bytes32 _issuerHash,\n    uint256 _idx\n  ) internal returns (bool) {\n    bool _exist;\n    uint256 _originIdx;\n    element storage e = self.list[_idx];\n    bytes32 _origin = e.origin == 0x0 ? _issuerHash : e.origin;\n\n    (_exist, _originIdx) = existToken(self, _origin, e.id);\n    if (_exist) {\n      return false;\n    }\n\n    self.mapToken[_origin].push(e.id);\n\n    return true;\n  }\n\n  // 删除映射通证数组成员\n  function removeToken(tokenMap storage self, uint256 _idx)\n    internal\n    returns (bool)\n  {\n    element storage e = self.list[_idx];\n    bool isOrigin = e.origin == 0x0;\n    bytes32 _issuerHash = isOrigin ? getHash(e.chainId, e.issuer) : e.origin;\n\n    bool _exist;\n    uint256 row2Del;\n\n    (_exist, row2Del) = existToken(self, _issuerHash, e.id);\n    if (!_exist) {\n      return false;\n    }\n\n    uint256[] storage _arr = self.mapToken[_issuerHash];\n    // 如果是原生通证必须映射通证先删除\n    if (isOrigin && _arr.length > 1) {\n      return false;\n    }\n\n    uint256 keyToMove = _arr[_arr.length.sub(1)];\n\n    _arr[row2Del] = keyToMove;\n    _arr.length = _arr.length.sub(1);\n\n    return true;\n  }\n\n  function getStringLen(string _str) internal pure returns (uint256) {\n    bytes memory b = bytes(_str);\n    require(b.length <= 1024, \"too large string make overflow risk\");\n    return b.length;\n  }\n\n  function getHash(uint256 _chainId, string _name)\n    internal\n    pure\n    returns (bytes32)\n  {\n    return keccak256(abi.encodePacked(_chainId, _name));\n  }\n\n  /**\n  @dev 增加新定时定义，重复的ID返回失败\n   */\n  function insert(\n    tokenMap storage self,\n    uint256 _id,\n    uint256 _chainId,\n    bytes32 _origin,\n    string _issuer,\n    string _symbol\n  ) internal returns (bool) {\n    if (existId(self, _id)) {\n      return false;\n    }\n\n    bytes32 _symbolHash = getHash(_chainId, _symbol);\n    bytes32 _issuerHash = getHash(_chainId, _issuer);\n\n    if (existSymbol(self, _symbolHash) || existIssuer(self, _issuerHash)) {\n      return false;\n    }\n\n    //映射的原始通证没有登记\n    if (_origin != 0x0 && !existIssuer(self, _origin)) {\n      return false;\n    }\n\n    element memory e =\n      element({\n        idx: self.list.length,\n        id: _id,\n        chainId: _chainId,\n        origin: _origin,\n        issuer: _issuer,\n        symbol: _symbol\n      });\n\n    self.list.push(e);\n    self.mapId[_id] = e.idx;\n    self.mapSymbol[_symbolHash] = e.idx;\n    self.mapIssuer[_issuerHash] = e.idx;\n\n    // 处理映射通证列表 原生通证排第一个\n    if (!insertToken(self, _issuerHash, e.idx)) {\n      return false;\n    }\n\n    return true;\n  }\n\n  function remove(tokenMap storage self, uint256 _id) internal returns (bool) {\n    if (!existId(self, _id)) {\n      return false;\n    }\n\n    uint256 row2Del = self.mapId[_id];\n\n    element storage keyToMove = self.list[self.list.length.sub(1)];\n\n    if (!removeToken(self, row2Del)) {\n      return false;\n    }\n\n    self.list[row2Del] = keyToMove;\n    self.mapId[keyToMove.id] = row2Del;\n    bytes32 _symbolHash = getHash(keyToMove.chainId, keyToMove.symbol);\n    bytes32 _issuerHash = getHash(keyToMove.chainId, keyToMove.issuer);\n    self.mapSymbol[_symbolHash] = row2Del;\n    self.mapIssuer[_issuerHash] = row2Del;\n    self.list.length = self.list.length.sub(1);\n\n    return true;\n  }\n\n  function count(tokenMap storage self) internal view returns (uint256) {\n    return self.list.length;\n  }\n\n  function get(tokenMap storage self, uint256 index)\n    internal\n    view\n    returns (TokenList.element)\n  {\n    require(index < self.list.length, \"index must small than current count\");\n    return self.list[index];\n  }\n\n  function getById(tokenMap storage self, uint256 _id)\n    internal\n    view\n    returns (TokenList.element)\n  {\n    require(existId(self, _id), \"token data must be exist\");\n    return self.list[self.mapId[_id]];\n  }\n\n  function getBySymbol(\n    tokenMap storage self,\n    uint256 _chainId,\n    string _symbol\n  ) internal view returns (TokenList.element) {\n    bytes32 _symbolHash = getHash(_chainId, _symbol);\n    require(existSymbol(self, _symbolHash), \"symbol data must be exist\");\n    return self.list[self.mapSymbol[_symbolHash]];\n  }\n\n  function getByIssuer(\n    tokenMap storage self,\n    uint256 _chainId,\n    string _issuer\n  ) internal view returns (TokenList.element) {\n    bytes32 _issuerHash = getHash(_chainId, _issuer);\n    require(existIssuer(self, _issuerHash), \"issuer data must be exist\");\n    return self.list[self.mapIssuer[_issuerHash]];\n  }\n\n  /**\n   获取通证跨链映射表\n   */\n  function getCrossList(tokenMap storage self, bytes32 _origin)\n    internal\n    view\n    returns (TokenList.element[])\n  {\n    require(existIssuer(self, _origin), \"origin data must be exist\");\n\n    uint256[] storage _arr = self.mapToken[_origin];\n    require(_arr.length > 0, \"origin list have data\");\n\n    TokenList.element[] memory res = new TokenList.element[](_arr.length);\n\n    for (uint256 i = 0; i < _arr.length; i++) {\n      res[i] = self.list[self.mapId[_arr[i]]];\n    }\n\n    return res;\n  }\n\n  /**\n  @dev 从指定位置返回多条（不多于count）地址记录,如果不足则空缺\n   */\n  function getList(\n    tokenMap storage self,\n    uint256 from,\n    uint256 _count\n  ) internal view returns (TokenList.element[] memory) {\n    uint256 _idx = 0;\n    require(_count > 0, \"return number must bigger than 0\");\n    TokenList.element[] memory res = new TokenList.element[](_count);\n\n    for (uint256 i = from; i < self.list.length; i++) {\n      if (_idx == _count) {\n        break;\n      }\n\n      res[_idx] = self.list[i];\n      _idx = _idx.add(1);\n    }\n\n    return res;\n  }\n}\n",
  "sourcePath": "/Users/chtian/Documents/01_work/01_develope/jcc/jcc-solidity-utils/contracts/list/TokenList.sol",
  "ast": {
    "absolutePath": "/Users/chtian/Documents/01_work/01_develope/jcc/jcc-solidity-utils/contracts/list/TokenList.sol",
    "exportedSymbols": {
      "TokenList": [
        4973
      ]
    },
    "id": 4974,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 4018,
        "literals": [
          "solidity",
          ">=",
          "0.4",
          ".24"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:25:17"
      },
      {
        "absolutePath": "/Users/chtian/Documents/01_work/01_develope/jcc/jcc-solidity-utils/contracts/math/SafeMath.sol",
        "file": "../math/SafeMath.sol",
        "id": 4019,
        "nodeType": "ImportDirective",
        "scope": 4974,
        "sourceUnit": 5658,
        "src": "27:30:17",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "library",
        "documentation": "@dev 通证列表处理",
        "fullyImplemented": true,
        "id": 4973,
        "linearizedBaseContracts": [
          4973
        ],
        "name": "TokenList",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "id": 4022,
            "libraryName": {
              "contractScope": null,
              "id": 4020,
              "name": "SafeMath",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 5657,
              "src": "122:8:17",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_SafeMath_$5657",
                "typeString": "library SafeMath"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "116:27:17",
            "typeName": {
              "id": 4021,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "135:7:17",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            }
          },
          {
            "canonicalName": "TokenList.element",
            "id": 4035,
            "members": [
              {
                "constant": false,
                "id": 4024,
                "name": "idx",
                "nodeType": "VariableDeclaration",
                "scope": 4035,
                "src": "200:11:17",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 4023,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "200:7:17",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4026,
                "name": "id",
                "nodeType": "VariableDeclaration",
                "scope": 4035,
                "src": "243:10:17",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 4025,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "243:7:17",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4028,
                "name": "chainId",
                "nodeType": "VariableDeclaration",
                "scope": 4035,
                "src": "291:15:17",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 4027,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "291:7:17",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4030,
                "name": "origin",
                "nodeType": "VariableDeclaration",
                "scope": 4035,
                "src": "456:14:17",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 4029,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "456:7:17",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4032,
                "name": "issuer",
                "nodeType": "VariableDeclaration",
                "scope": 4035,
                "src": "928:13:17",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_string_storage_ptr",
                  "typeString": "string"
                },
                "typeName": {
                  "id": 4031,
                  "name": "string",
                  "nodeType": "ElementaryTypeName",
                  "src": "928:6:17",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_storage_ptr",
                    "typeString": "string"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4034,
                "name": "symbol",
                "nodeType": "VariableDeclaration",
                "scope": 4035,
                "src": "983:13:17",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_string_storage_ptr",
                  "typeString": "string"
                },
                "typeName": {
                  "id": 4033,
                  "name": "string",
                  "nodeType": "ElementaryTypeName",
                  "src": "983:6:17",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_storage_ptr",
                    "typeString": "string"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "element",
            "nodeType": "StructDefinition",
            "scope": 4973,
            "src": "165:836:17",
            "visibility": "public"
          },
          {
            "canonicalName": "TokenList.tokenMap",
            "id": 4056,
            "members": [
              {
                "constant": false,
                "id": 4039,
                "name": "mapId",
                "nodeType": "VariableDeclaration",
                "scope": 4056,
                "src": "1052:33:17",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                  "typeString": "mapping(uint256 => uint256)"
                },
                "typeName": {
                  "id": 4038,
                  "keyType": {
                    "id": 4036,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1060:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "Mapping",
                  "src": "1052:27:17",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                    "typeString": "mapping(uint256 => uint256)"
                  },
                  "valueType": {
                    "id": 4037,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1071:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4043,
                "name": "mapSymbol",
                "nodeType": "VariableDeclaration",
                "scope": 4056,
                "src": "1127:37:17",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                  "typeString": "mapping(bytes32 => uint256)"
                },
                "typeName": {
                  "id": 4042,
                  "keyType": {
                    "id": 4040,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1135:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "Mapping",
                  "src": "1127:27:17",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                    "typeString": "mapping(bytes32 => uint256)"
                  },
                  "valueType": {
                    "id": 4041,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1146:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4047,
                "name": "mapIssuer",
                "nodeType": "VariableDeclaration",
                "scope": 4056,
                "src": "1206:37:17",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                  "typeString": "mapping(bytes32 => uint256)"
                },
                "typeName": {
                  "id": 4046,
                  "keyType": {
                    "id": 4044,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1214:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "Mapping",
                  "src": "1206:27:17",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                    "typeString": "mapping(bytes32 => uint256)"
                  },
                  "valueType": {
                    "id": 4045,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1225:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4052,
                "name": "mapToken",
                "nodeType": "VariableDeclaration",
                "scope": 4056,
                "src": "1315:38:17",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_uint256_$dyn_storage_$",
                  "typeString": "mapping(bytes32 => uint256[])"
                },
                "typeName": {
                  "id": 4051,
                  "keyType": {
                    "id": 4048,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1323:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "Mapping",
                  "src": "1315:29:17",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_uint256_$dyn_storage_$",
                    "typeString": "mapping(bytes32 => uint256[])"
                  },
                  "valueType": {
                    "baseType": {
                      "id": 4049,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "1334:7:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 4050,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "1334:9:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4055,
                "name": "list",
                "nodeType": "VariableDeclaration",
                "scope": 4056,
                "src": "1377:14:17",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage_ptr",
                  "typeString": "struct TokenList.element[]"
                },
                "typeName": {
                  "baseType": {
                    "contractScope": null,
                    "id": 4053,
                    "name": "element",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4035,
                    "src": "1377:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                      "typeString": "struct TokenList.element"
                    }
                  },
                  "id": 4054,
                  "length": null,
                  "nodeType": "ArrayTypeName",
                  "src": "1377:9:17",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage_ptr",
                    "typeString": "struct TokenList.element[]"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "tokenMap",
            "nodeType": "StructDefinition",
            "scope": 4973,
            "src": "1005:391:17",
            "visibility": "public"
          },
          {
            "body": {
              "id": 4098,
              "nodeType": "Block",
              "src": "1496:162:17",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 4069,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4065,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4058,
                          "src": "1506:4:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                            "typeString": "struct TokenList.tokenMap storage pointer"
                          }
                        },
                        "id": 4066,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "list",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4055,
                        "src": "1506:9:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
                          "typeString": "struct TokenList.element storage ref[] storage ref"
                        }
                      },
                      "id": 4067,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "1506:16:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 4068,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1526:1:17",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "1506:21:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 4072,
                  "nodeType": "IfStatement",
                  "src": "1502:39:17",
                  "trueBody": {
                    "expression": {
                      "argumentTypes": null,
                      "hexValue": "66616c7365",
                      "id": 4070,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1536:5:17",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "false"
                    },
                    "functionReturnParameters": 4064,
                    "id": 4071,
                    "nodeType": "Return",
                    "src": "1529:12:17"
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "components": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 4095,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 4082,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 4073,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4058,
                                  "src": "1555:4:17",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                                    "typeString": "struct TokenList.tokenMap storage pointer"
                                  }
                                },
                                "id": 4074,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "list",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 4055,
                                "src": "1555:9:17",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
                                  "typeString": "struct TokenList.element storage ref[] storage ref"
                                }
                              },
                              "id": 4079,
                              "indexExpression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 4075,
                                    "name": "self",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4058,
                                    "src": "1565:4:17",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                                      "typeString": "struct TokenList.tokenMap storage pointer"
                                    }
                                  },
                                  "id": 4076,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "mapId",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 4039,
                                  "src": "1565:10:17",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                                    "typeString": "mapping(uint256 => uint256)"
                                  }
                                },
                                "id": 4078,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 4077,
                                  "name": "_id",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4060,
                                  "src": "1576:3:17",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "1565:15:17",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "1555:26:17",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_element_$4035_storage",
                                "typeString": "struct TokenList.element storage ref"
                              }
                            },
                            "id": 4080,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "id",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4026,
                            "src": "1555:29:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 4081,
                            "name": "_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4060,
                            "src": "1588:3:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "1555:36:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 4094,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 4084,
                                      "name": "self",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 4058,
                                      "src": "1614:4:17",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                                        "typeString": "struct TokenList.tokenMap storage pointer"
                                      }
                                    },
                                    "id": 4085,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "list",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 4055,
                                    "src": "1614:9:17",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
                                      "typeString": "struct TokenList.element storage ref[] storage ref"
                                    }
                                  },
                                  "id": 4090,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 4086,
                                        "name": "self",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 4058,
                                        "src": "1624:4:17",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                                          "typeString": "struct TokenList.tokenMap storage pointer"
                                        }
                                      },
                                      "id": 4087,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "mapId",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 4039,
                                      "src": "1624:10:17",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                                        "typeString": "mapping(uint256 => uint256)"
                                      }
                                    },
                                    "id": 4089,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "id": 4088,
                                      "name": "_id",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 4060,
                                      "src": "1635:3:17",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "1624:15:17",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "1614:26:17",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_element_$4035_storage",
                                    "typeString": "struct TokenList.element storage ref"
                                  }
                                },
                                "id": 4091,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "symbol",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 4034,
                                "src": "1614:33:17",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_storage",
                                  "typeString": "string storage ref"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_string_storage",
                                  "typeString": "string storage ref"
                                }
                              ],
                              "id": 4083,
                              "name": "getStringLen",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4432,
                              "src": "1601:12:17",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_uint256_$",
                                "typeString": "function (string memory) pure returns (uint256)"
                              }
                            },
                            "id": 4092,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1601:47:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 4093,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1651:1:17",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "1601:51:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "1555:97:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "id": 4096,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "1554:99:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 4064,
                  "id": 4097,
                  "nodeType": "Return",
                  "src": "1547:106:17"
                }
              ]
            },
            "documentation": null,
            "id": 4099,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "existId",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4061,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4058,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 4099,
                  "src": "1417:21:17",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                    "typeString": "struct TokenList.tokenMap"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 4057,
                    "name": "tokenMap",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4056,
                    "src": "1417:8:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                      "typeString": "struct TokenList.tokenMap"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4060,
                  "name": "_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4099,
                  "src": "1440:11:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4059,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1440:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1416:36:17"
            },
            "payable": false,
            "returnParameters": {
              "id": 4064,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4063,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4099,
                  "src": "1488:4:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 4062,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1488:4:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1487:6:17"
            },
            "scope": 4973,
            "src": "1400:258:17",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 4136,
              "nodeType": "Block",
              "src": "1770:172:17",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 4112,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4108,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4101,
                          "src": "1780:4:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                            "typeString": "struct TokenList.tokenMap storage pointer"
                          }
                        },
                        "id": 4109,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "list",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4055,
                        "src": "1780:9:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
                          "typeString": "struct TokenList.element storage ref[] storage ref"
                        }
                      },
                      "id": 4110,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "1780:16:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 4111,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1800:1:17",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "1780:21:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 4115,
                  "nodeType": "IfStatement",
                  "src": "1776:39:17",
                  "trueBody": {
                    "expression": {
                      "argumentTypes": null,
                      "hexValue": "66616c7365",
                      "id": 4113,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1810:5:17",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "false"
                    },
                    "functionReturnParameters": 4107,
                    "id": 4114,
                    "nodeType": "Return",
                    "src": "1803:12:17"
                  }
                },
                {
                  "assignments": [
                    4117
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4117,
                      "name": "e",
                      "nodeType": "VariableDeclaration",
                      "scope": 4137,
                      "src": "1821:17:17",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                        "typeString": "struct TokenList.element"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 4116,
                        "name": "element",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 4035,
                        "src": "1821:7:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                          "typeString": "struct TokenList.element"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4125,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4118,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4101,
                        "src": "1841:4:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                          "typeString": "struct TokenList.tokenMap storage pointer"
                        }
                      },
                      "id": 4119,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "list",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4055,
                      "src": "1841:9:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
                        "typeString": "struct TokenList.element storage ref[] storage ref"
                      }
                    },
                    "id": 4124,
                    "indexExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4120,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4101,
                          "src": "1851:4:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                            "typeString": "struct TokenList.tokenMap storage pointer"
                          }
                        },
                        "id": 4121,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "mapSymbol",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4043,
                        "src": "1851:14:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                          "typeString": "mapping(bytes32 => uint256)"
                        }
                      },
                      "id": 4123,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 4122,
                        "name": "_symbolHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4103,
                        "src": "1866:11:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "1851:27:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "1841:38:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_element_$4035_storage",
                      "typeString": "struct TokenList.element storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1821:58:17"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "components": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 4133,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 4127,
                                "name": "e",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4117,
                                "src": "1901:1:17",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                                  "typeString": "struct TokenList.element storage pointer"
                                }
                              },
                              "id": 4128,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "chainId",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4028,
                              "src": "1901:9:17",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 4129,
                                "name": "e",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4117,
                                "src": "1912:1:17",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                                  "typeString": "struct TokenList.element storage pointer"
                                }
                              },
                              "id": 4130,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "symbol",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4034,
                              "src": "1912:8:17",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_storage",
                                "typeString": "string storage ref"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_string_storage",
                                "typeString": "string storage ref"
                              }
                            ],
                            "id": 4126,
                            "name": "getHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4450,
                            "src": "1893:7:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes32_$",
                              "typeString": "function (uint256,string memory) pure returns (bytes32)"
                            }
                          },
                          "id": 4131,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1893:28:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 4132,
                          "name": "_symbolHash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4103,
                          "src": "1925:11:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "1893:43:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "id": 4134,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "1892:45:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 4107,
                  "id": 4135,
                  "nodeType": "Return",
                  "src": "1885:52:17"
                }
              ]
            },
            "documentation": null,
            "id": 4137,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "existSymbol",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4104,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4101,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 4137,
                  "src": "1683:21:17",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                    "typeString": "struct TokenList.tokenMap"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 4100,
                    "name": "tokenMap",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4056,
                    "src": "1683:8:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                      "typeString": "struct TokenList.tokenMap"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4103,
                  "name": "_symbolHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 4137,
                  "src": "1706:19:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4102,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1706:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1682:44:17"
            },
            "payable": false,
            "returnParameters": {
              "id": 4107,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4106,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4137,
                  "src": "1762:4:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 4105,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1762:4:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1761:6:17"
            },
            "scope": 4973,
            "src": "1662:280:17",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 4174,
              "nodeType": "Block",
              "src": "2054:172:17",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 4150,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4146,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4139,
                          "src": "2064:4:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                            "typeString": "struct TokenList.tokenMap storage pointer"
                          }
                        },
                        "id": 4147,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "list",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4055,
                        "src": "2064:9:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
                          "typeString": "struct TokenList.element storage ref[] storage ref"
                        }
                      },
                      "id": 4148,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "2064:16:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 4149,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2084:1:17",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "2064:21:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 4153,
                  "nodeType": "IfStatement",
                  "src": "2060:39:17",
                  "trueBody": {
                    "expression": {
                      "argumentTypes": null,
                      "hexValue": "66616c7365",
                      "id": 4151,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2094:5:17",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "false"
                    },
                    "functionReturnParameters": 4145,
                    "id": 4152,
                    "nodeType": "Return",
                    "src": "2087:12:17"
                  }
                },
                {
                  "assignments": [
                    4155
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4155,
                      "name": "e",
                      "nodeType": "VariableDeclaration",
                      "scope": 4175,
                      "src": "2105:17:17",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                        "typeString": "struct TokenList.element"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 4154,
                        "name": "element",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 4035,
                        "src": "2105:7:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                          "typeString": "struct TokenList.element"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4163,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4156,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4139,
                        "src": "2125:4:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                          "typeString": "struct TokenList.tokenMap storage pointer"
                        }
                      },
                      "id": 4157,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "list",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4055,
                      "src": "2125:9:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
                        "typeString": "struct TokenList.element storage ref[] storage ref"
                      }
                    },
                    "id": 4162,
                    "indexExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4158,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4139,
                          "src": "2135:4:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                            "typeString": "struct TokenList.tokenMap storage pointer"
                          }
                        },
                        "id": 4159,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "mapIssuer",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4047,
                        "src": "2135:14:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                          "typeString": "mapping(bytes32 => uint256)"
                        }
                      },
                      "id": 4161,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 4160,
                        "name": "_issuerHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4141,
                        "src": "2150:11:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "2135:27:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "2125:38:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_element_$4035_storage",
                      "typeString": "struct TokenList.element storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2105:58:17"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "components": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 4171,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 4165,
                                "name": "e",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4155,
                                "src": "2185:1:17",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                                  "typeString": "struct TokenList.element storage pointer"
                                }
                              },
                              "id": 4166,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "chainId",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4028,
                              "src": "2185:9:17",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 4167,
                                "name": "e",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4155,
                                "src": "2196:1:17",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                                  "typeString": "struct TokenList.element storage pointer"
                                }
                              },
                              "id": 4168,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "issuer",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4032,
                              "src": "2196:8:17",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_storage",
                                "typeString": "string storage ref"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_string_storage",
                                "typeString": "string storage ref"
                              }
                            ],
                            "id": 4164,
                            "name": "getHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4450,
                            "src": "2177:7:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes32_$",
                              "typeString": "function (uint256,string memory) pure returns (bytes32)"
                            }
                          },
                          "id": 4169,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2177:28:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 4170,
                          "name": "_issuerHash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4141,
                          "src": "2209:11:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "2177:43:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "id": 4172,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "2176:45:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 4145,
                  "id": 4173,
                  "nodeType": "Return",
                  "src": "2169:52:17"
                }
              ]
            },
            "documentation": null,
            "id": 4175,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "existIssuer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4142,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4139,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 4175,
                  "src": "1967:21:17",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                    "typeString": "struct TokenList.tokenMap"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 4138,
                    "name": "tokenMap",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4056,
                    "src": "1967:8:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                      "typeString": "struct TokenList.tokenMap"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4141,
                  "name": "_issuerHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 4175,
                  "src": "1990:19:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4140,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1990:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1966:44:17"
            },
            "payable": false,
            "returnParameters": {
              "id": 4145,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4144,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4175,
                  "src": "2046:4:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 4143,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2046:4:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2045:6:17"
            },
            "scope": 4973,
            "src": "1946:280:17",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 4235,
              "nodeType": "Block",
              "src": "2393:250:17",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 4192,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4188,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4177,
                          "src": "2403:4:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                            "typeString": "struct TokenList.tokenMap storage pointer"
                          }
                        },
                        "id": 4189,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "list",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4055,
                        "src": "2403:9:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
                          "typeString": "struct TokenList.element storage ref[] storage ref"
                        }
                      },
                      "id": 4190,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "2403:16:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 4191,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2423:1:17",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "2403:21:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 4197,
                  "nodeType": "IfStatement",
                  "src": "2399:44:17",
                  "trueBody": {
                    "expression": {
                      "argumentTypes": null,
                      "components": [
                        {
                          "argumentTypes": null,
                          "hexValue": "66616c7365",
                          "id": 4193,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2434:5:17",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "false"
                        },
                        {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 4194,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2441:1:17",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        }
                      ],
                      "id": 4195,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "TupleExpression",
                      "src": "2433:10:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$",
                        "typeString": "tuple(bool,int_const 0)"
                      }
                    },
                    "functionReturnParameters": 4187,
                    "id": 4196,
                    "nodeType": "Return",
                    "src": "2426:17:17"
                  }
                },
                {
                  "assignments": [
                    4201
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4201,
                      "name": "_arr",
                      "nodeType": "VariableDeclaration",
                      "scope": 4236,
                      "src": "2450:22:17",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                        "typeString": "uint256[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 4199,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2450:7:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 4200,
                        "length": null,
                        "nodeType": "ArrayTypeName",
                        "src": "2450:9:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                          "typeString": "uint256[]"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4206,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4202,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4177,
                        "src": "2475:4:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                          "typeString": "struct TokenList.tokenMap storage pointer"
                        }
                      },
                      "id": 4203,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "mapToken",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4052,
                      "src": "2475:13:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_uint256_$dyn_storage_$",
                        "typeString": "mapping(bytes32 => uint256[] storage ref)"
                      }
                    },
                    "id": 4205,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 4204,
                      "name": "_origin",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4179,
                      "src": "2489:7:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "2475:22:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                      "typeString": "uint256[] storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2450:47:17"
                },
                {
                  "body": {
                    "id": 4229,
                    "nodeType": "Block",
                    "src": "2546:69:17",
                    "statements": [
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 4222,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 4218,
                              "name": "_arr",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4201,
                              "src": "2558:4:17",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                                "typeString": "uint256[] storage pointer"
                              }
                            },
                            "id": 4220,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 4219,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4208,
                              "src": "2563:1:17",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "2558:7:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 4221,
                            "name": "_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4181,
                            "src": "2569:3:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "2558:14:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": null,
                        "id": 4228,
                        "nodeType": "IfStatement",
                        "src": "2554:55:17",
                        "trueBody": {
                          "id": 4227,
                          "nodeType": "Block",
                          "src": "2574:35:17",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "components": [
                                  {
                                    "argumentTypes": null,
                                    "hexValue": "74727565",
                                    "id": 4223,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "bool",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "2592:4:17",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    },
                                    "value": "true"
                                  },
                                  {
                                    "argumentTypes": null,
                                    "id": 4224,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4208,
                                    "src": "2598:1:17",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "id": 4225,
                                "isConstant": false,
                                "isInlineArray": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "TupleExpression",
                                "src": "2591:9:17",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$",
                                  "typeString": "tuple(bool,uint256)"
                                }
                              },
                              "functionReturnParameters": 4187,
                              "id": 4226,
                              "nodeType": "Return",
                              "src": "2584:16:17"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 4214,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 4211,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4208,
                      "src": "2524:1:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4212,
                        "name": "_arr",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4201,
                        "src": "2528:4:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                          "typeString": "uint256[] storage pointer"
                        }
                      },
                      "id": 4213,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "2528:11:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2524:15:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 4230,
                  "initializationExpression": {
                    "assignments": [
                      4208
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 4208,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 4236,
                        "src": "2509:9:17",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 4207,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2509:7:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 4210,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 4209,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2521:1:17",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "2509:13:17"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 4216,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "2541:3:17",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 4215,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4208,
                        "src": "2541:1:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 4217,
                    "nodeType": "ExpressionStatement",
                    "src": "2541:3:17"
                  },
                  "nodeType": "ForStatement",
                  "src": "2504:111:17"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "components": [
                      {
                        "argumentTypes": null,
                        "hexValue": "66616c7365",
                        "id": 4231,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2629:5:17",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "false"
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 4232,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2636:1:17",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      }
                    ],
                    "id": 4233,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "2628:10:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$",
                      "typeString": "tuple(bool,int_const 0)"
                    }
                  },
                  "functionReturnParameters": 4187,
                  "id": 4234,
                  "nodeType": "Return",
                  "src": "2621:17:17"
                }
              ]
            },
            "documentation": null,
            "id": 4236,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "existToken",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4182,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4177,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 4236,
                  "src": "2291:21:17",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                    "typeString": "struct TokenList.tokenMap"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 4176,
                    "name": "tokenMap",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4056,
                    "src": "2291:8:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                      "typeString": "struct TokenList.tokenMap"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4179,
                  "name": "_origin",
                  "nodeType": "VariableDeclaration",
                  "scope": 4236,
                  "src": "2318:15:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4178,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2318:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4181,
                  "name": "_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4236,
                  "src": "2339:11:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4180,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2339:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2285:69:17"
            },
            "payable": false,
            "returnParameters": {
              "id": 4187,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4184,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4236,
                  "src": "2378:4:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 4183,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2378:4:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4186,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4236,
                  "src": "2384:7:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4185,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2384:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2377:15:17"
            },
            "scope": 4973,
            "src": "2266:377:17",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 4299,
              "nodeType": "Block",
              "src": "2802:314:17",
              "statements": [
                {
                  "assignments": [],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4248,
                      "name": "_exist",
                      "nodeType": "VariableDeclaration",
                      "scope": 4300,
                      "src": "2808:11:17",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "typeName": {
                        "id": 4247,
                        "name": "bool",
                        "nodeType": "ElementaryTypeName",
                        "src": "2808:4:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4249,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2808:11:17"
                },
                {
                  "assignments": [],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4251,
                      "name": "_originIdx",
                      "nodeType": "VariableDeclaration",
                      "scope": 4300,
                      "src": "2825:18:17",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 4250,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "2825:7:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4252,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2825:18:17"
                },
                {
                  "assignments": [
                    4254
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4254,
                      "name": "e",
                      "nodeType": "VariableDeclaration",
                      "scope": 4300,
                      "src": "2849:17:17",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                        "typeString": "struct TokenList.element"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 4253,
                        "name": "element",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 4035,
                        "src": "2849:7:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                          "typeString": "struct TokenList.element"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4259,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4255,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4238,
                        "src": "2869:4:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                          "typeString": "struct TokenList.tokenMap storage pointer"
                        }
                      },
                      "id": 4256,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "list",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4055,
                      "src": "2869:9:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
                        "typeString": "struct TokenList.element storage ref[] storage ref"
                      }
                    },
                    "id": 4258,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 4257,
                      "name": "_idx",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4242,
                      "src": "2879:4:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "2869:15:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_element_$4035_storage",
                      "typeString": "struct TokenList.element storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2849:35:17"
                },
                {
                  "assignments": [
                    4261
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4261,
                      "name": "_origin",
                      "nodeType": "VariableDeclaration",
                      "scope": 4300,
                      "src": "2890:15:17",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 4260,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "2890:7:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4270,
                  "initialValue": {
                    "argumentTypes": null,
                    "condition": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "id": 4265,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4262,
                          "name": "e",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4254,
                          "src": "2908:1:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                            "typeString": "struct TokenList.element storage pointer"
                          }
                        },
                        "id": 4263,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "origin",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4030,
                        "src": "2908:8:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "hexValue": "307830",
                        "id": 4264,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2920:3:17",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0x0"
                      },
                      "src": "2908:15:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4267,
                        "name": "e",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4254,
                        "src": "2940:1:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                          "typeString": "struct TokenList.element storage pointer"
                        }
                      },
                      "id": 4268,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "origin",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4030,
                      "src": "2940:8:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 4269,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "Conditional",
                    "src": "2908:40:17",
                    "trueExpression": {
                      "argumentTypes": null,
                      "id": 4266,
                      "name": "_issuerHash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4240,
                      "src": "2926:11:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2890:58:17"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4280,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "components": [
                        {
                          "argumentTypes": null,
                          "id": 4271,
                          "name": "_exist",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4248,
                          "src": "2956:6:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 4272,
                          "name": "_originIdx",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4251,
                          "src": "2964:10:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "id": 4273,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "TupleExpression",
                      "src": "2955:20:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$",
                        "typeString": "tuple(bool,uint256)"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 4275,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4238,
                          "src": "2989:4:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                            "typeString": "struct TokenList.tokenMap storage pointer"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 4276,
                          "name": "_origin",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4261,
                          "src": "2995:7:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 4277,
                            "name": "e",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4254,
                            "src": "3004:1:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                              "typeString": "struct TokenList.element storage pointer"
                            }
                          },
                          "id": 4278,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "id",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4026,
                          "src": "3004:4:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                            "typeString": "struct TokenList.tokenMap storage pointer"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 4274,
                        "name": "existToken",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4236,
                        "src": "2978:10:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_tokenMap_$4056_storage_ptr_$_t_bytes32_$_t_uint256_$returns$_t_bool_$_t_uint256_$",
                          "typeString": "function (struct TokenList.tokenMap storage pointer,bytes32,uint256) view returns (bool,uint256)"
                        }
                      },
                      "id": 4279,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2978:31:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$",
                        "typeString": "tuple(bool,uint256)"
                      }
                    },
                    "src": "2955:54:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4281,
                  "nodeType": "ExpressionStatement",
                  "src": "2955:54:17"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "id": 4282,
                    "name": "_exist",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 4248,
                    "src": "3019:6:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 4286,
                  "nodeType": "IfStatement",
                  "src": "3015:39:17",
                  "trueBody": {
                    "id": 4285,
                    "nodeType": "Block",
                    "src": "3027:27:17",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "hexValue": "66616c7365",
                          "id": 4283,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3042:5:17",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "false"
                        },
                        "functionReturnParameters": 4246,
                        "id": 4284,
                        "nodeType": "Return",
                        "src": "3035:12:17"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4293,
                          "name": "e",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4254,
                          "src": "3088:1:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                            "typeString": "struct TokenList.element storage pointer"
                          }
                        },
                        "id": 4294,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "id",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4026,
                        "src": "3088:4:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 4287,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4238,
                            "src": "3060:4:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                              "typeString": "struct TokenList.tokenMap storage pointer"
                            }
                          },
                          "id": 4290,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "mapToken",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4052,
                          "src": "3060:13:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_uint256_$dyn_storage_$",
                            "typeString": "mapping(bytes32 => uint256[] storage ref)"
                          }
                        },
                        "id": 4291,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 4289,
                          "name": "_origin",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4261,
                          "src": "3074:7:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "3060:22:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                          "typeString": "uint256[] storage ref"
                        }
                      },
                      "id": 4292,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "push",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "3060:27:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256) returns (uint256)"
                      }
                    },
                    "id": 4295,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3060:33:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4296,
                  "nodeType": "ExpressionStatement",
                  "src": "3060:33:17"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "74727565",
                    "id": 4297,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "3107:4:17",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "true"
                  },
                  "functionReturnParameters": 4246,
                  "id": 4298,
                  "nodeType": "Return",
                  "src": "3100:11:17"
                }
              ]
            },
            "documentation": null,
            "id": 4300,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "insertToken",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4243,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4238,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 4300,
                  "src": "2709:21:17",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                    "typeString": "struct TokenList.tokenMap"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 4237,
                    "name": "tokenMap",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4056,
                    "src": "2709:8:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                      "typeString": "struct TokenList.tokenMap"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4240,
                  "name": "_issuerHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 4300,
                  "src": "2736:19:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4239,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2736:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4242,
                  "name": "_idx",
                  "nodeType": "VariableDeclaration",
                  "scope": 4300,
                  "src": "2761:12:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4241,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2761:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2703:74:17"
            },
            "payable": false,
            "returnParameters": {
              "id": 4246,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4245,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4300,
                  "src": "2796:4:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 4244,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2796:4:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2795:6:17"
            },
            "scope": 4973,
            "src": "2683:433:17",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 4406,
              "nodeType": "Block",
              "src": "3248:625:17",
              "statements": [
                {
                  "assignments": [
                    4310
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4310,
                      "name": "e",
                      "nodeType": "VariableDeclaration",
                      "scope": 4407,
                      "src": "3254:17:17",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                        "typeString": "struct TokenList.element"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 4309,
                        "name": "element",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 4035,
                        "src": "3254:7:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                          "typeString": "struct TokenList.element"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4315,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4311,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4302,
                        "src": "3274:4:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                          "typeString": "struct TokenList.tokenMap storage pointer"
                        }
                      },
                      "id": 4312,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "list",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4055,
                      "src": "3274:9:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
                        "typeString": "struct TokenList.element storage ref[] storage ref"
                      }
                    },
                    "id": 4314,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 4313,
                      "name": "_idx",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4304,
                      "src": "3284:4:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "3274:15:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_element_$4035_storage",
                      "typeString": "struct TokenList.element storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3254:35:17"
                },
                {
                  "assignments": [
                    4317
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4317,
                      "name": "isOrigin",
                      "nodeType": "VariableDeclaration",
                      "scope": 4407,
                      "src": "3295:13:17",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "typeName": {
                        "id": 4316,
                        "name": "bool",
                        "nodeType": "ElementaryTypeName",
                        "src": "3295:4:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4322,
                  "initialValue": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    },
                    "id": 4321,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4318,
                        "name": "e",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4310,
                        "src": "3311:1:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                          "typeString": "struct TokenList.element storage pointer"
                        }
                      },
                      "id": 4319,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "origin",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4030,
                      "src": "3311:8:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "307830",
                      "id": 4320,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "3323:3:17",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0x0"
                    },
                    "src": "3311:15:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3295:31:17"
                },
                {
                  "assignments": [
                    4324
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4324,
                      "name": "_issuerHash",
                      "nodeType": "VariableDeclaration",
                      "scope": 4407,
                      "src": "3332:19:17",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 4323,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "3332:7:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4335,
                  "initialValue": {
                    "argumentTypes": null,
                    "condition": {
                      "argumentTypes": null,
                      "id": 4325,
                      "name": "isOrigin",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4317,
                      "src": "3354:8:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4332,
                        "name": "e",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4310,
                        "src": "3396:1:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                          "typeString": "struct TokenList.element storage pointer"
                        }
                      },
                      "id": 4333,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "origin",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4030,
                      "src": "3396:8:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 4334,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "Conditional",
                    "src": "3354:50:17",
                    "trueExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 4327,
                            "name": "e",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4310,
                            "src": "3373:1:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                              "typeString": "struct TokenList.element storage pointer"
                            }
                          },
                          "id": 4328,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "chainId",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4028,
                          "src": "3373:9:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 4329,
                            "name": "e",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4310,
                            "src": "3384:1:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                              "typeString": "struct TokenList.element storage pointer"
                            }
                          },
                          "id": 4330,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "issuer",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4032,
                          "src": "3384:8:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_storage",
                            "typeString": "string storage ref"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          {
                            "typeIdentifier": "t_string_storage",
                            "typeString": "string storage ref"
                          }
                        ],
                        "id": 4326,
                        "name": "getHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4450,
                        "src": "3365:7:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes32_$",
                          "typeString": "function (uint256,string memory) pure returns (bytes32)"
                        }
                      },
                      "id": 4331,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3365:28:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3332:72:17"
                },
                {
                  "assignments": [],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4337,
                      "name": "_exist",
                      "nodeType": "VariableDeclaration",
                      "scope": 4407,
                      "src": "3411:11:17",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "typeName": {
                        "id": 4336,
                        "name": "bool",
                        "nodeType": "ElementaryTypeName",
                        "src": "3411:4:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4338,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3411:11:17"
                },
                {
                  "assignments": [],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4340,
                      "name": "row2Del",
                      "nodeType": "VariableDeclaration",
                      "scope": 4407,
                      "src": "3428:15:17",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 4339,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "3428:7:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4341,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3428:15:17"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4351,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "components": [
                        {
                          "argumentTypes": null,
                          "id": 4342,
                          "name": "_exist",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4337,
                          "src": "3451:6:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 4343,
                          "name": "row2Del",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4340,
                          "src": "3459:7:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "id": 4344,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "TupleExpression",
                      "src": "3450:17:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$",
                        "typeString": "tuple(bool,uint256)"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 4346,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4302,
                          "src": "3481:4:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                            "typeString": "struct TokenList.tokenMap storage pointer"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 4347,
                          "name": "_issuerHash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4324,
                          "src": "3487:11:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 4348,
                            "name": "e",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4310,
                            "src": "3500:1:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                              "typeString": "struct TokenList.element storage pointer"
                            }
                          },
                          "id": 4349,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "id",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4026,
                          "src": "3500:4:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                            "typeString": "struct TokenList.tokenMap storage pointer"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 4345,
                        "name": "existToken",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4236,
                        "src": "3470:10:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_tokenMap_$4056_storage_ptr_$_t_bytes32_$_t_uint256_$returns$_t_bool_$_t_uint256_$",
                          "typeString": "function (struct TokenList.tokenMap storage pointer,bytes32,uint256) view returns (bool,uint256)"
                        }
                      },
                      "id": 4350,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3470:35:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$",
                        "typeString": "tuple(bool,uint256)"
                      }
                    },
                    "src": "3450:55:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4352,
                  "nodeType": "ExpressionStatement",
                  "src": "3450:55:17"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "id": 4354,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "!",
                    "prefix": true,
                    "src": "3515:7:17",
                    "subExpression": {
                      "argumentTypes": null,
                      "id": 4353,
                      "name": "_exist",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4337,
                      "src": "3516:6:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 4358,
                  "nodeType": "IfStatement",
                  "src": "3511:40:17",
                  "trueBody": {
                    "id": 4357,
                    "nodeType": "Block",
                    "src": "3524:27:17",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "hexValue": "66616c7365",
                          "id": 4355,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3539:5:17",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "false"
                        },
                        "functionReturnParameters": 4308,
                        "id": 4356,
                        "nodeType": "Return",
                        "src": "3532:12:17"
                      }
                    ]
                  }
                },
                {
                  "assignments": [
                    4362
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4362,
                      "name": "_arr",
                      "nodeType": "VariableDeclaration",
                      "scope": 4407,
                      "src": "3557:22:17",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                        "typeString": "uint256[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 4360,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "3557:7:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 4361,
                        "length": null,
                        "nodeType": "ArrayTypeName",
                        "src": "3557:9:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                          "typeString": "uint256[]"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4367,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4363,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4302,
                        "src": "3582:4:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                          "typeString": "struct TokenList.tokenMap storage pointer"
                        }
                      },
                      "id": 4364,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "mapToken",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4052,
                      "src": "3582:13:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_uint256_$dyn_storage_$",
                        "typeString": "mapping(bytes32 => uint256[] storage ref)"
                      }
                    },
                    "id": 4366,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 4365,
                      "name": "_issuerHash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4324,
                      "src": "3596:11:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "3582:26:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                      "typeString": "uint256[] storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3557:51:17"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 4373,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 4368,
                      "name": "isOrigin",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4317,
                      "src": "3674:8:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "&&",
                    "rightExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 4372,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4369,
                          "name": "_arr",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4362,
                          "src": "3686:4:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                            "typeString": "uint256[] storage pointer"
                          }
                        },
                        "id": 4370,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "length",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "3686:11:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": ">",
                      "rightExpression": {
                        "argumentTypes": null,
                        "hexValue": "31",
                        "id": 4371,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3700:1:17",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      },
                      "src": "3686:15:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "3674:27:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 4377,
                  "nodeType": "IfStatement",
                  "src": "3670:60:17",
                  "trueBody": {
                    "id": 4376,
                    "nodeType": "Block",
                    "src": "3703:27:17",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "hexValue": "66616c7365",
                          "id": 4374,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3718:5:17",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "false"
                        },
                        "functionReturnParameters": 4308,
                        "id": 4375,
                        "nodeType": "Return",
                        "src": "3711:12:17"
                      }
                    ]
                  }
                },
                {
                  "assignments": [
                    4379
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4379,
                      "name": "keyToMove",
                      "nodeType": "VariableDeclaration",
                      "scope": 4407,
                      "src": "3736:17:17",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 4378,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "3736:7:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4387,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 4380,
                      "name": "_arr",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4362,
                      "src": "3756:4:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                        "typeString": "uint256[] storage pointer"
                      }
                    },
                    "id": 4386,
                    "indexExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "31",
                          "id": 4384,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3777:1:17",
                          "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"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 4381,
                            "name": "_arr",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4362,
                            "src": "3761:4:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                              "typeString": "uint256[] storage pointer"
                            }
                          },
                          "id": 4382,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "3761:11:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 4383,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sub",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 5611,
                        "src": "3761:15:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 4385,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3761:18:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "3756:24:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3736:44:17"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4392,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 4388,
                        "name": "_arr",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4362,
                        "src": "3787:4:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                          "typeString": "uint256[] storage pointer"
                        }
                      },
                      "id": 4390,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 4389,
                        "name": "row2Del",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4340,
                        "src": "3792:7:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "3787:13:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 4391,
                      "name": "keyToMove",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4379,
                      "src": "3803:9:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3787:25:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4393,
                  "nodeType": "ExpressionStatement",
                  "src": "3787:25:17"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4402,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4394,
                        "name": "_arr",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4362,
                        "src": "3818:4:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                          "typeString": "uint256[] storage pointer"
                        }
                      },
                      "id": 4396,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "3818:11:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "31",
                          "id": 4400,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3848:1:17",
                          "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"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 4397,
                            "name": "_arr",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4362,
                            "src": "3832:4:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                              "typeString": "uint256[] storage pointer"
                            }
                          },
                          "id": 4398,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "3832:11:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 4399,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sub",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 5611,
                        "src": "3832:15:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 4401,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3832:18:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3818:32:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4403,
                  "nodeType": "ExpressionStatement",
                  "src": "3818:32:17"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "74727565",
                    "id": 4404,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "3864:4:17",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "true"
                  },
                  "functionReturnParameters": 4308,
                  "id": 4405,
                  "nodeType": "Return",
                  "src": "3857:11:17"
                }
              ]
            },
            "documentation": null,
            "id": 4407,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "removeToken",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4305,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4302,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 4407,
                  "src": "3177:21:17",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                    "typeString": "struct TokenList.tokenMap"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 4301,
                    "name": "tokenMap",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4056,
                    "src": "3177:8:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                      "typeString": "struct TokenList.tokenMap"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4304,
                  "name": "_idx",
                  "nodeType": "VariableDeclaration",
                  "scope": 4407,
                  "src": "3200:12:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4303,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3200:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3176:37:17"
            },
            "payable": false,
            "returnParameters": {
              "id": 4308,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4307,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4407,
                  "src": "3240:4:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 4306,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "3240:4:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3239:6:17"
            },
            "scope": 4973,
            "src": "3156:717:17",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 4431,
              "nodeType": "Block",
              "src": "3944:130:17",
              "statements": [
                {
                  "assignments": [
                    4415
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4415,
                      "name": "b",
                      "nodeType": "VariableDeclaration",
                      "scope": 4432,
                      "src": "3950:14:17",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_memory_ptr",
                        "typeString": "bytes"
                      },
                      "typeName": {
                        "id": 4414,
                        "name": "bytes",
                        "nodeType": "ElementaryTypeName",
                        "src": "3950:5:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_storage_ptr",
                          "typeString": "bytes"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4419,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 4417,
                        "name": "_str",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4409,
                        "src": "3973:4:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 4416,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "3967:5:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                        "typeString": "type(bytes storage pointer)"
                      },
                      "typeName": "bytes"
                    },
                    "id": 4418,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3967:11:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_memory",
                      "typeString": "bytes memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3950:28:17"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 4424,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 4421,
                            "name": "b",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4415,
                            "src": "3992:1:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          "id": 4422,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "3992:8:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "31303234",
                          "id": 4423,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "4004:4:17",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1024_by_1",
                            "typeString": "int_const 1024"
                          },
                          "value": "1024"
                        },
                        "src": "3992:16:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "746f6f206c6172676520737472696e67206d616b65206f766572666c6f77207269736b",
                        "id": 4425,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4010:37:17",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_a04837239c708b9348717c3349e4803b1f78ce229ff9fadb01d3b10ea6e3573e",
                          "typeString": "literal_string \"too large string make overflow risk\""
                        },
                        "value": "too large string make overflow risk"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_a04837239c708b9348717c3349e4803b1f78ce229ff9fadb01d3b10ea6e3573e",
                          "typeString": "literal_string \"too large string make overflow risk\""
                        }
                      ],
                      "id": 4420,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9044,
                        9045
                      ],
                      "referencedDeclaration": 9045,
                      "src": "3984:7:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 4426,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3984:64:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4427,
                  "nodeType": "ExpressionStatement",
                  "src": "3984:64:17"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 4428,
                      "name": "b",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4415,
                      "src": "4061:1:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_memory_ptr",
                        "typeString": "bytes memory"
                      }
                    },
                    "id": 4429,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "length",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "4061:8:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 4413,
                  "id": 4430,
                  "nodeType": "Return",
                  "src": "4054:15:17"
                }
              ]
            },
            "documentation": null,
            "id": 4432,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getStringLen",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4410,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4409,
                  "name": "_str",
                  "nodeType": "VariableDeclaration",
                  "scope": 4432,
                  "src": "3899:11:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 4408,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "3899:6:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3898:13:17"
            },
            "payable": false,
            "returnParameters": {
              "id": 4413,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4412,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4432,
                  "src": "3935:7:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4411,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3935:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3934:9:17"
            },
            "scope": 4973,
            "src": "3877:197:17",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 4449,
              "nodeType": "Block",
              "src": "4173:62:17",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 4444,
                            "name": "_chainId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4434,
                            "src": "4213:8:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 4445,
                            "name": "_name",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4436,
                            "src": "4223:5:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 4442,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 9028,
                            "src": "4196:3:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 4443,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "4196:16:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 4446,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4196:33:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 4441,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 9035,
                      "src": "4186:9:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 4447,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4186:44:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 4440,
                  "id": 4448,
                  "nodeType": "Return",
                  "src": "4179:51:17"
                }
              ]
            },
            "documentation": null,
            "id": 4450,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getHash",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4437,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4434,
                  "name": "_chainId",
                  "nodeType": "VariableDeclaration",
                  "scope": 4450,
                  "src": "4095:16:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4433,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4095:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4436,
                  "name": "_name",
                  "nodeType": "VariableDeclaration",
                  "scope": 4450,
                  "src": "4113:12:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 4435,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "4113:6:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4094:32:17"
            },
            "payable": false,
            "returnParameters": {
              "id": 4440,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4439,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4450,
                  "src": "4162:7:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4438,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4162:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4161:9:17"
            },
            "scope": 4973,
            "src": "4078:157:17",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 4576,
              "nodeType": "Block",
              "src": "4477:883:17",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 4468,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4452,
                        "src": "4495:4:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                          "typeString": "struct TokenList.tokenMap storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 4469,
                        "name": "_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4454,
                        "src": "4501:3:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                          "typeString": "struct TokenList.tokenMap storage pointer"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 4467,
                      "name": "existId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4099,
                      "src": "4487:7:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_tokenMap_$4056_storage_ptr_$_t_uint256_$returns$_t_bool_$",
                        "typeString": "function (struct TokenList.tokenMap storage pointer,uint256) view returns (bool)"
                      }
                    },
                    "id": 4470,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4487:18:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 4474,
                  "nodeType": "IfStatement",
                  "src": "4483:51:17",
                  "trueBody": {
                    "id": 4473,
                    "nodeType": "Block",
                    "src": "4507:27:17",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "hexValue": "66616c7365",
                          "id": 4471,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "4522:5:17",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "false"
                        },
                        "functionReturnParameters": 4466,
                        "id": 4472,
                        "nodeType": "Return",
                        "src": "4515:12:17"
                      }
                    ]
                  }
                },
                {
                  "assignments": [
                    4476
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4476,
                      "name": "_symbolHash",
                      "nodeType": "VariableDeclaration",
                      "scope": 4577,
                      "src": "4540:19:17",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 4475,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "4540:7:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4481,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 4478,
                        "name": "_chainId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4456,
                        "src": "4570:8:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 4479,
                        "name": "_symbol",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4462,
                        "src": "4580:7:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 4477,
                      "name": "getHash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4450,
                      "src": "4562:7:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (uint256,string memory) pure returns (bytes32)"
                      }
                    },
                    "id": 4480,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4562:26:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4540:48:17"
                },
                {
                  "assignments": [
                    4483
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4483,
                      "name": "_issuerHash",
                      "nodeType": "VariableDeclaration",
                      "scope": 4577,
                      "src": "4594:19:17",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 4482,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "4594:7:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4488,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 4485,
                        "name": "_chainId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4456,
                        "src": "4624:8:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 4486,
                        "name": "_issuer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4460,
                        "src": "4634:7:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 4484,
                      "name": "getHash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4450,
                      "src": "4616:7:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (uint256,string memory) pure returns (bytes32)"
                      }
                    },
                    "id": 4487,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4616:26:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4594:48:17"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 4497,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 4490,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4452,
                          "src": "4665:4:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                            "typeString": "struct TokenList.tokenMap storage pointer"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 4491,
                          "name": "_symbolHash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4476,
                          "src": "4671:11:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                            "typeString": "struct TokenList.tokenMap storage pointer"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 4489,
                        "name": "existSymbol",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4137,
                        "src": "4653:11:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_tokenMap_$4056_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                          "typeString": "function (struct TokenList.tokenMap storage pointer,bytes32) view returns (bool)"
                        }
                      },
                      "id": 4492,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "4653:30:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "||",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 4494,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4452,
                          "src": "4699:4:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                            "typeString": "struct TokenList.tokenMap storage pointer"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 4495,
                          "name": "_issuerHash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4483,
                          "src": "4705:11:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                            "typeString": "struct TokenList.tokenMap storage pointer"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 4493,
                        "name": "existIssuer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4175,
                        "src": "4687:11:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_tokenMap_$4056_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                          "typeString": "function (struct TokenList.tokenMap storage pointer,bytes32) view returns (bool)"
                        }
                      },
                      "id": 4496,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "4687:30:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "4653:64:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 4501,
                  "nodeType": "IfStatement",
                  "src": "4649:97:17",
                  "trueBody": {
                    "id": 4500,
                    "nodeType": "Block",
                    "src": "4719:27:17",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "hexValue": "66616c7365",
                          "id": 4498,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "4734:5:17",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "false"
                        },
                        "functionReturnParameters": 4466,
                        "id": 4499,
                        "nodeType": "Return",
                        "src": "4727:12:17"
                      }
                    ]
                  }
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 4510,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "id": 4504,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 4502,
                        "name": "_origin",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4458,
                        "src": "4796:7:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "!=",
                      "rightExpression": {
                        "argumentTypes": null,
                        "hexValue": "307830",
                        "id": 4503,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4807:3:17",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0x0"
                      },
                      "src": "4796:14:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "&&",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 4509,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "!",
                      "prefix": true,
                      "src": "4814:27:17",
                      "subExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 4506,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4452,
                            "src": "4827:4:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                              "typeString": "struct TokenList.tokenMap storage pointer"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 4507,
                            "name": "_origin",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4458,
                            "src": "4833:7:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                              "typeString": "struct TokenList.tokenMap storage pointer"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 4505,
                          "name": "existIssuer",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4175,
                          "src": "4815:11:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_struct$_tokenMap_$4056_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (struct TokenList.tokenMap storage pointer,bytes32) view returns (bool)"
                          }
                        },
                        "id": 4508,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4815:26:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "4796:45:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 4514,
                  "nodeType": "IfStatement",
                  "src": "4792:78:17",
                  "trueBody": {
                    "id": 4513,
                    "nodeType": "Block",
                    "src": "4843:27:17",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "hexValue": "66616c7365",
                          "id": 4511,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "4858:5:17",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "false"
                        },
                        "functionReturnParameters": 4466,
                        "id": 4512,
                        "nodeType": "Return",
                        "src": "4851:12:17"
                      }
                    ]
                  }
                },
                {
                  "assignments": [
                    4516
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4516,
                      "name": "e",
                      "nodeType": "VariableDeclaration",
                      "scope": 4577,
                      "src": "4876:16:17",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_element_$4035_memory_ptr",
                        "typeString": "struct TokenList.element"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 4515,
                        "name": "element",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 4035,
                        "src": "4876:7:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                          "typeString": "struct TokenList.element"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4527,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 4518,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4452,
                            "src": "4924:4:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                              "typeString": "struct TokenList.tokenMap storage pointer"
                            }
                          },
                          "id": 4519,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "list",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4055,
                          "src": "4924:9:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
                            "typeString": "struct TokenList.element storage ref[] storage ref"
                          }
                        },
                        "id": 4520,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "length",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "4924:16:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 4521,
                        "name": "_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4454,
                        "src": "4954:3:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 4522,
                        "name": "_chainId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4456,
                        "src": "4976:8:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 4523,
                        "name": "_origin",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4458,
                        "src": "5002:7:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 4524,
                        "name": "_issuer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4460,
                        "src": "5027:7:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 4525,
                        "name": "_symbol",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4462,
                        "src": "5052:7:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": null,
                      "id": 4517,
                      "name": "element",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4035,
                      "src": "4901:7:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_struct$_element_$4035_storage_ptr_$",
                        "typeString": "type(struct TokenList.element storage pointer)"
                      }
                    },
                    "id": 4526,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "structConstructorCall",
                    "lValueRequested": false,
                    "names": [
                      "idx",
                      "id",
                      "chainId",
                      "origin",
                      "issuer",
                      "symbol"
                    ],
                    "nodeType": "FunctionCall",
                    "src": "4901:167:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_element_$4035_memory",
                      "typeString": "struct TokenList.element memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4876:192:17"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 4533,
                        "name": "e",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4516,
                        "src": "5090:1:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_element_$4035_memory_ptr",
                          "typeString": "struct TokenList.element memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_element_$4035_memory_ptr",
                          "typeString": "struct TokenList.element memory"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4528,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4452,
                          "src": "5075:4:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                            "typeString": "struct TokenList.tokenMap storage pointer"
                          }
                        },
                        "id": 4531,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "list",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4055,
                        "src": "5075:9:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
                          "typeString": "struct TokenList.element storage ref[] storage ref"
                        }
                      },
                      "id": 4532,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "push",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "5075:14:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_element_$4035_storage_$returns$_t_uint256_$",
                        "typeString": "function (struct TokenList.element storage ref) returns (uint256)"
                      }
                    },
                    "id": 4534,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5075:17:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4535,
                  "nodeType": "ExpressionStatement",
                  "src": "5075:17:17"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4543,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4536,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4452,
                          "src": "5098:4:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                            "typeString": "struct TokenList.tokenMap storage pointer"
                          }
                        },
                        "id": 4539,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "mapId",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4039,
                        "src": "5098:10:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                          "typeString": "mapping(uint256 => uint256)"
                        }
                      },
                      "id": 4540,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 4538,
                        "name": "_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4454,
                        "src": "5109:3:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "5098:15:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4541,
                        "name": "e",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4516,
                        "src": "5116:1:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_element_$4035_memory_ptr",
                          "typeString": "struct TokenList.element memory"
                        }
                      },
                      "id": 4542,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "idx",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4024,
                      "src": "5116:5:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5098:23:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4544,
                  "nodeType": "ExpressionStatement",
                  "src": "5098:23:17"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4552,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4545,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4452,
                          "src": "5127:4:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                            "typeString": "struct TokenList.tokenMap storage pointer"
                          }
                        },
                        "id": 4548,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "mapSymbol",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4043,
                        "src": "5127:14:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                          "typeString": "mapping(bytes32 => uint256)"
                        }
                      },
                      "id": 4549,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 4547,
                        "name": "_symbolHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4476,
                        "src": "5142:11:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "5127:27:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4550,
                        "name": "e",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4516,
                        "src": "5157:1:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_element_$4035_memory_ptr",
                          "typeString": "struct TokenList.element memory"
                        }
                      },
                      "id": 4551,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "idx",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4024,
                      "src": "5157:5:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5127:35:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4553,
                  "nodeType": "ExpressionStatement",
                  "src": "5127:35:17"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4561,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4554,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4452,
                          "src": "5168:4:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                            "typeString": "struct TokenList.tokenMap storage pointer"
                          }
                        },
                        "id": 4557,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "mapIssuer",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4047,
                        "src": "5168:14:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                          "typeString": "mapping(bytes32 => uint256)"
                        }
                      },
                      "id": 4558,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 4556,
                        "name": "_issuerHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4483,
                        "src": "5183:11:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "5168:27:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4559,
                        "name": "e",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4516,
                        "src": "5198:1:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_element_$4035_memory_ptr",
                          "typeString": "struct TokenList.element memory"
                        }
                      },
                      "id": 4560,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "idx",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4024,
                      "src": "5198:5:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5168:35:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4562,
                  "nodeType": "ExpressionStatement",
                  "src": "5168:35:17"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "id": 4569,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "!",
                    "prefix": true,
                    "src": "5271:38:17",
                    "subExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 4564,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4452,
                          "src": "5284:4:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                            "typeString": "struct TokenList.tokenMap storage pointer"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 4565,
                          "name": "_issuerHash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4483,
                          "src": "5290:11:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 4566,
                            "name": "e",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4516,
                            "src": "5303:1:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_element_$4035_memory_ptr",
                              "typeString": "struct TokenList.element memory"
                            }
                          },
                          "id": 4567,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "idx",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4024,
                          "src": "5303:5:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                            "typeString": "struct TokenList.tokenMap storage pointer"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 4563,
                        "name": "insertToken",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4300,
                        "src": "5272:11:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_tokenMap_$4056_storage_ptr_$_t_bytes32_$_t_uint256_$returns$_t_bool_$",
                          "typeString": "function (struct TokenList.tokenMap storage pointer,bytes32,uint256) returns (bool)"
                        }
                      },
                      "id": 4568,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "5272:37:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 4573,
                  "nodeType": "IfStatement",
                  "src": "5267:71:17",
                  "trueBody": {
                    "id": 4572,
                    "nodeType": "Block",
                    "src": "5311:27:17",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "hexValue": "66616c7365",
                          "id": 4570,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "5326:5:17",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "false"
                        },
                        "functionReturnParameters": 4466,
                        "id": 4571,
                        "nodeType": "Return",
                        "src": "5319:12:17"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "74727565",
                    "id": 4574,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "5351:4:17",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "true"
                  },
                  "functionReturnParameters": 4466,
                  "id": 4575,
                  "nodeType": "Return",
                  "src": "5344:11:17"
                }
              ]
            },
            "documentation": "@dev 增加新定时定义，重复的ID返回失败",
            "id": 4577,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "insert",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4463,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4452,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 4577,
                  "src": "4327:21:17",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                    "typeString": "struct TokenList.tokenMap"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 4451,
                    "name": "tokenMap",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4056,
                    "src": "4327:8:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                      "typeString": "struct TokenList.tokenMap"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4454,
                  "name": "_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4577,
                  "src": "4354:11:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4453,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4354:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4456,
                  "name": "_chainId",
                  "nodeType": "VariableDeclaration",
                  "scope": 4577,
                  "src": "4371:16:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4455,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4371:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4458,
                  "name": "_origin",
                  "nodeType": "VariableDeclaration",
                  "scope": 4577,
                  "src": "4393:15:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4457,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4393:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4460,
                  "name": "_issuer",
                  "nodeType": "VariableDeclaration",
                  "scope": 4577,
                  "src": "4414:14:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 4459,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "4414:6:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4462,
                  "name": "_symbol",
                  "nodeType": "VariableDeclaration",
                  "scope": 4577,
                  "src": "4434:14:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 4461,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "4434:6:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4321:131:17"
            },
            "payable": false,
            "returnParameters": {
              "id": 4466,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4465,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4577,
                  "src": "4471:4:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 4464,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "4471:4:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4470:6:17"
            },
            "scope": 4973,
            "src": "4306:1054:17",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 4689,
              "nodeType": "Block",
              "src": "5440:610:17",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "id": 4590,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "!",
                    "prefix": true,
                    "src": "5450:19:17",
                    "subExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 4587,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4579,
                          "src": "5459:4:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                            "typeString": "struct TokenList.tokenMap storage pointer"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 4588,
                          "name": "_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4581,
                          "src": "5465:3:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                            "typeString": "struct TokenList.tokenMap storage pointer"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 4586,
                        "name": "existId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4099,
                        "src": "5451:7:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_tokenMap_$4056_storage_ptr_$_t_uint256_$returns$_t_bool_$",
                          "typeString": "function (struct TokenList.tokenMap storage pointer,uint256) view returns (bool)"
                        }
                      },
                      "id": 4589,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "5451:18:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 4594,
                  "nodeType": "IfStatement",
                  "src": "5446:52:17",
                  "trueBody": {
                    "id": 4593,
                    "nodeType": "Block",
                    "src": "5471:27:17",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "hexValue": "66616c7365",
                          "id": 4591,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "5486:5:17",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "false"
                        },
                        "functionReturnParameters": 4585,
                        "id": 4592,
                        "nodeType": "Return",
                        "src": "5479:12:17"
                      }
                    ]
                  }
                },
                {
                  "assignments": [
                    4596
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4596,
                      "name": "row2Del",
                      "nodeType": "VariableDeclaration",
                      "scope": 4690,
                      "src": "5504:15:17",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 4595,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "5504:7:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4601,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4597,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4579,
                        "src": "5522:4:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                          "typeString": "struct TokenList.tokenMap storage pointer"
                        }
                      },
                      "id": 4598,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "mapId",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4039,
                      "src": "5522:10:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                        "typeString": "mapping(uint256 => uint256)"
                      }
                    },
                    "id": 4600,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 4599,
                      "name": "_id",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4581,
                      "src": "5533:3:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "5522:15:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5504:33:17"
                },
                {
                  "assignments": [
                    4603
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4603,
                      "name": "keyToMove",
                      "nodeType": "VariableDeclaration",
                      "scope": 4690,
                      "src": "5544:25:17",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                        "typeString": "struct TokenList.element"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 4602,
                        "name": "element",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 4035,
                        "src": "5544:7:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                          "typeString": "struct TokenList.element"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4613,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4604,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4579,
                        "src": "5572:4:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                          "typeString": "struct TokenList.tokenMap storage pointer"
                        }
                      },
                      "id": 4605,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "list",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4055,
                      "src": "5572:9:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
                        "typeString": "struct TokenList.element storage ref[] storage ref"
                      }
                    },
                    "id": 4612,
                    "indexExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "31",
                          "id": 4610,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "5603:1:17",
                          "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"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 4606,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4579,
                              "src": "5582:4:17",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                                "typeString": "struct TokenList.tokenMap storage pointer"
                              }
                            },
                            "id": 4607,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "list",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4055,
                            "src": "5582:9:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
                              "typeString": "struct TokenList.element storage ref[] storage ref"
                            }
                          },
                          "id": 4608,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "5582:16:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 4609,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sub",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 5611,
                        "src": "5582:20:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 4611,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "5582:23:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "5572:34:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_element_$4035_storage",
                      "typeString": "struct TokenList.element storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5544:62:17"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "id": 4618,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "!",
                    "prefix": true,
                    "src": "5617:27:17",
                    "subExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 4615,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4579,
                          "src": "5630:4:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                            "typeString": "struct TokenList.tokenMap storage pointer"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 4616,
                          "name": "row2Del",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4596,
                          "src": "5636:7:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                            "typeString": "struct TokenList.tokenMap storage pointer"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 4614,
                        "name": "removeToken",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4407,
                        "src": "5618:11:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_tokenMap_$4056_storage_ptr_$_t_uint256_$returns$_t_bool_$",
                          "typeString": "function (struct TokenList.tokenMap storage pointer,uint256) returns (bool)"
                        }
                      },
                      "id": 4617,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "5618:26:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 4622,
                  "nodeType": "IfStatement",
                  "src": "5613:60:17",
                  "trueBody": {
                    "id": 4621,
                    "nodeType": "Block",
                    "src": "5646:27:17",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "hexValue": "66616c7365",
                          "id": 4619,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "5661:5:17",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "false"
                        },
                        "functionReturnParameters": 4585,
                        "id": 4620,
                        "nodeType": "Return",
                        "src": "5654:12:17"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4629,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4623,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4579,
                          "src": "5679:4:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                            "typeString": "struct TokenList.tokenMap storage pointer"
                          }
                        },
                        "id": 4626,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "list",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4055,
                        "src": "5679:9:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
                          "typeString": "struct TokenList.element storage ref[] storage ref"
                        }
                      },
                      "id": 4627,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 4625,
                        "name": "row2Del",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4596,
                        "src": "5689:7:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "5679:18:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_element_$4035_storage",
                        "typeString": "struct TokenList.element storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 4628,
                      "name": "keyToMove",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4603,
                      "src": "5700:9:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                        "typeString": "struct TokenList.element storage pointer"
                      }
                    },
                    "src": "5679:30:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_element_$4035_storage",
                      "typeString": "struct TokenList.element storage ref"
                    }
                  },
                  "id": 4630,
                  "nodeType": "ExpressionStatement",
                  "src": "5679:30:17"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4638,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4631,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4579,
                          "src": "5715:4:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                            "typeString": "struct TokenList.tokenMap storage pointer"
                          }
                        },
                        "id": 4635,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "mapId",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4039,
                        "src": "5715:10:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                          "typeString": "mapping(uint256 => uint256)"
                        }
                      },
                      "id": 4636,
                      "indexExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4633,
                          "name": "keyToMove",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4603,
                          "src": "5726:9:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                            "typeString": "struct TokenList.element storage pointer"
                          }
                        },
                        "id": 4634,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "id",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4026,
                        "src": "5726:12:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "5715:24:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 4637,
                      "name": "row2Del",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4596,
                      "src": "5742:7:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5715:34:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4639,
                  "nodeType": "ExpressionStatement",
                  "src": "5715:34:17"
                },
                {
                  "assignments": [
                    4641
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4641,
                      "name": "_symbolHash",
                      "nodeType": "VariableDeclaration",
                      "scope": 4690,
                      "src": "5755:19:17",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 4640,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "5755:7:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4648,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4643,
                          "name": "keyToMove",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4603,
                          "src": "5785:9:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                            "typeString": "struct TokenList.element storage pointer"
                          }
                        },
                        "id": 4644,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "chainId",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4028,
                        "src": "5785:17:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4645,
                          "name": "keyToMove",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4603,
                          "src": "5804:9:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                            "typeString": "struct TokenList.element storage pointer"
                          }
                        },
                        "id": 4646,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "symbol",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4034,
                        "src": "5804:16:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_storage",
                          "typeString": "string storage ref"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_string_storage",
                          "typeString": "string storage ref"
                        }
                      ],
                      "id": 4642,
                      "name": "getHash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4450,
                      "src": "5777:7:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (uint256,string memory) pure returns (bytes32)"
                      }
                    },
                    "id": 4647,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5777:44:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5755:66:17"
                },
                {
                  "assignments": [
                    4650
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4650,
                      "name": "_issuerHash",
                      "nodeType": "VariableDeclaration",
                      "scope": 4690,
                      "src": "5827:19:17",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 4649,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "5827:7:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4657,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4652,
                          "name": "keyToMove",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4603,
                          "src": "5857:9:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                            "typeString": "struct TokenList.element storage pointer"
                          }
                        },
                        "id": 4653,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "chainId",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4028,
                        "src": "5857:17:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4654,
                          "name": "keyToMove",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4603,
                          "src": "5876:9:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                            "typeString": "struct TokenList.element storage pointer"
                          }
                        },
                        "id": 4655,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "issuer",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4032,
                        "src": "5876:16:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_storage",
                          "typeString": "string storage ref"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_string_storage",
                          "typeString": "string storage ref"
                        }
                      ],
                      "id": 4651,
                      "name": "getHash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4450,
                      "src": "5849:7:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (uint256,string memory) pure returns (bytes32)"
                      }
                    },
                    "id": 4656,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5849:44:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5827:66:17"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4664,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4658,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4579,
                          "src": "5899:4:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                            "typeString": "struct TokenList.tokenMap storage pointer"
                          }
                        },
                        "id": 4661,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "mapSymbol",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4043,
                        "src": "5899:14:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                          "typeString": "mapping(bytes32 => uint256)"
                        }
                      },
                      "id": 4662,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 4660,
                        "name": "_symbolHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4641,
                        "src": "5914:11:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "5899:27:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 4663,
                      "name": "row2Del",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4596,
                      "src": "5929:7:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5899:37:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4665,
                  "nodeType": "ExpressionStatement",
                  "src": "5899:37:17"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4672,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4666,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4579,
                          "src": "5942:4:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                            "typeString": "struct TokenList.tokenMap storage pointer"
                          }
                        },
                        "id": 4669,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "mapIssuer",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4047,
                        "src": "5942:14:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                          "typeString": "mapping(bytes32 => uint256)"
                        }
                      },
                      "id": 4670,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 4668,
                        "name": "_issuerHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4650,
                        "src": "5957:11:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "5942:27:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 4671,
                      "name": "row2Del",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4596,
                      "src": "5972:7:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5942:37:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4673,
                  "nodeType": "ExpressionStatement",
                  "src": "5942:37:17"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4685,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4674,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4579,
                          "src": "5985:4:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                            "typeString": "struct TokenList.tokenMap storage pointer"
                          }
                        },
                        "id": 4677,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "list",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4055,
                        "src": "5985:9:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
                          "typeString": "struct TokenList.element storage ref[] storage ref"
                        }
                      },
                      "id": 4678,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "5985:16:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "31",
                          "id": 4683,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "6025:1:17",
                          "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"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 4679,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4579,
                              "src": "6004:4:17",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                                "typeString": "struct TokenList.tokenMap storage pointer"
                              }
                            },
                            "id": 4680,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "list",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4055,
                            "src": "6004:9:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
                              "typeString": "struct TokenList.element storage ref[] storage ref"
                            }
                          },
                          "id": 4681,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "6004:16:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 4682,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sub",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 5611,
                        "src": "6004:20:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 4684,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "6004:23:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5985:42:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4686,
                  "nodeType": "ExpressionStatement",
                  "src": "5985:42:17"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "74727565",
                    "id": 4687,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "6041:4:17",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "true"
                  },
                  "functionReturnParameters": 4585,
                  "id": 4688,
                  "nodeType": "Return",
                  "src": "6034:11:17"
                }
              ]
            },
            "documentation": null,
            "id": 4690,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "remove",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4582,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4579,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 4690,
                  "src": "5380:21:17",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                    "typeString": "struct TokenList.tokenMap"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 4578,
                    "name": "tokenMap",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4056,
                    "src": "5380:8:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                      "typeString": "struct TokenList.tokenMap"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4581,
                  "name": "_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4690,
                  "src": "5403:11:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4580,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5403:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5379:36:17"
            },
            "payable": false,
            "returnParameters": {
              "id": 4585,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4584,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4690,
                  "src": "5434:4:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 4583,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "5434:4:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5433:6:17"
            },
            "scope": 4973,
            "src": "5364:686:17",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 4701,
              "nodeType": "Block",
              "src": "6124:34:17",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4697,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4692,
                        "src": "6137:4:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                          "typeString": "struct TokenList.tokenMap storage pointer"
                        }
                      },
                      "id": 4698,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "list",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4055,
                      "src": "6137:9:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
                        "typeString": "struct TokenList.element storage ref[] storage ref"
                      }
                    },
                    "id": 4699,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "length",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "6137:16:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 4696,
                  "id": 4700,
                  "nodeType": "Return",
                  "src": "6130:23:17"
                }
              ]
            },
            "documentation": null,
            "id": 4702,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "count",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4693,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4692,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 4702,
                  "src": "6069:21:17",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                    "typeString": "struct TokenList.tokenMap"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 4691,
                    "name": "tokenMap",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4056,
                    "src": "6069:8:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                      "typeString": "struct TokenList.tokenMap"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6068:23:17"
            },
            "payable": false,
            "returnParameters": {
              "id": 4696,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4695,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4702,
                  "src": "6115:7:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4694,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6115:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6114:9:17"
            },
            "scope": 4973,
            "src": "6054:104:17",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 4725,
              "nodeType": "Block",
              "src": "6269:112:17",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 4716,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 4712,
                          "name": "index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4706,
                          "src": "6283:5:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 4713,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4704,
                              "src": "6291:4:17",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                                "typeString": "struct TokenList.tokenMap storage pointer"
                              }
                            },
                            "id": 4714,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "list",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4055,
                            "src": "6291:9:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
                              "typeString": "struct TokenList.element storage ref[] storage ref"
                            }
                          },
                          "id": 4715,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "6291:16:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "6283:24:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "696e646578206d75737420736d616c6c207468616e2063757272656e7420636f756e74",
                        "id": 4717,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6309:37:17",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_ced05a9863658d26be4f7cbaeffebfa53821dabbe1077d21241580b1e9ea74c5",
                          "typeString": "literal_string \"index must small than current count\""
                        },
                        "value": "index must small than current count"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_ced05a9863658d26be4f7cbaeffebfa53821dabbe1077d21241580b1e9ea74c5",
                          "typeString": "literal_string \"index must small than current count\""
                        }
                      ],
                      "id": 4711,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9044,
                        9045
                      ],
                      "referencedDeclaration": 9045,
                      "src": "6275:7:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 4718,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6275:72:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4719,
                  "nodeType": "ExpressionStatement",
                  "src": "6275:72:17"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4720,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4704,
                        "src": "6360:4:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                          "typeString": "struct TokenList.tokenMap storage pointer"
                        }
                      },
                      "id": 4721,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "list",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4055,
                      "src": "6360:9:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
                        "typeString": "struct TokenList.element storage ref[] storage ref"
                      }
                    },
                    "id": 4723,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 4722,
                      "name": "index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4706,
                      "src": "6370:5:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "6360:16:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_element_$4035_storage",
                      "typeString": "struct TokenList.element storage ref"
                    }
                  },
                  "functionReturnParameters": 4710,
                  "id": 4724,
                  "nodeType": "Return",
                  "src": "6353:23:17"
                }
              ]
            },
            "documentation": null,
            "id": 4726,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "get",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4707,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4704,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 4726,
                  "src": "6175:21:17",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                    "typeString": "struct TokenList.tokenMap"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 4703,
                    "name": "tokenMap",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4056,
                    "src": "6175:8:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                      "typeString": "struct TokenList.tokenMap"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4706,
                  "name": "index",
                  "nodeType": "VariableDeclaration",
                  "scope": 4726,
                  "src": "6198:13:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4705,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6198:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6174:38:17"
            },
            "payable": false,
            "returnParameters": {
              "id": 4710,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4709,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4726,
                  "src": "6248:17:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_element_$4035_memory_ptr",
                    "typeString": "struct TokenList.element"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 4708,
                    "name": "TokenList.element",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4035,
                    "src": "6248:17:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                      "typeString": "struct TokenList.element"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6247:19:17"
            },
            "scope": 4973,
            "src": "6162:219:17",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 4751,
              "nodeType": "Block",
              "src": "6494:105:17",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 4737,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4728,
                            "src": "6516:4:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                              "typeString": "struct TokenList.tokenMap storage pointer"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 4738,
                            "name": "_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4730,
                            "src": "6522:3:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                              "typeString": "struct TokenList.tokenMap storage pointer"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 4736,
                          "name": "existId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4099,
                          "src": "6508:7:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_struct$_tokenMap_$4056_storage_ptr_$_t_uint256_$returns$_t_bool_$",
                            "typeString": "function (struct TokenList.tokenMap storage pointer,uint256) view returns (bool)"
                          }
                        },
                        "id": 4739,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6508:18:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "746f6b656e2064617461206d757374206265206578697374",
                        "id": 4740,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6528:26:17",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_52f5db765b8f4977098a032b3fab7ad18ac2500c70e736dccb1caf4bcb129ff6",
                          "typeString": "literal_string \"token data must be exist\""
                        },
                        "value": "token data must be exist"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_52f5db765b8f4977098a032b3fab7ad18ac2500c70e736dccb1caf4bcb129ff6",
                          "typeString": "literal_string \"token data must be exist\""
                        }
                      ],
                      "id": 4735,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9044,
                        9045
                      ],
                      "referencedDeclaration": 9045,
                      "src": "6500:7:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 4741,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6500:55:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4742,
                  "nodeType": "ExpressionStatement",
                  "src": "6500:55:17"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4743,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4728,
                        "src": "6568:4:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                          "typeString": "struct TokenList.tokenMap storage pointer"
                        }
                      },
                      "id": 4744,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "list",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4055,
                      "src": "6568:9:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
                        "typeString": "struct TokenList.element storage ref[] storage ref"
                      }
                    },
                    "id": 4749,
                    "indexExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4745,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4728,
                          "src": "6578:4:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                            "typeString": "struct TokenList.tokenMap storage pointer"
                          }
                        },
                        "id": 4746,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "mapId",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4039,
                        "src": "6578:10:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                          "typeString": "mapping(uint256 => uint256)"
                        }
                      },
                      "id": 4748,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 4747,
                        "name": "_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4730,
                        "src": "6589:3:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "6578:15:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "6568:26:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_element_$4035_storage",
                      "typeString": "struct TokenList.element storage ref"
                    }
                  },
                  "functionReturnParameters": 4734,
                  "id": 4750,
                  "nodeType": "Return",
                  "src": "6561:33:17"
                }
              ]
            },
            "documentation": null,
            "id": 4752,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getById",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4731,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4728,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 4752,
                  "src": "6402:21:17",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                    "typeString": "struct TokenList.tokenMap"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 4727,
                    "name": "tokenMap",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4056,
                    "src": "6402:8:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                      "typeString": "struct TokenList.tokenMap"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4730,
                  "name": "_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4752,
                  "src": "6425:11:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4729,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6425:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6401:36:17"
            },
            "payable": false,
            "returnParameters": {
              "id": 4734,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4733,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4752,
                  "src": "6473:17:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_element_$4035_memory_ptr",
                    "typeString": "struct TokenList.element"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 4732,
                    "name": "TokenList.element",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4035,
                    "src": "6473:17:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                      "typeString": "struct TokenList.element"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6472:19:17"
            },
            "scope": 4973,
            "src": "6385:214:17",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 4786,
              "nodeType": "Block",
              "src": "6739:184:17",
              "statements": [
                {
                  "assignments": [
                    4764
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4764,
                      "name": "_symbolHash",
                      "nodeType": "VariableDeclaration",
                      "scope": 4787,
                      "src": "6745:19:17",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 4763,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "6745:7:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4769,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 4766,
                        "name": "_chainId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4756,
                        "src": "6775:8:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 4767,
                        "name": "_symbol",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4758,
                        "src": "6785:7:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 4765,
                      "name": "getHash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4450,
                      "src": "6767:7:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (uint256,string memory) pure returns (bytes32)"
                      }
                    },
                    "id": 4768,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6767:26:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6745:48:17"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 4772,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4754,
                            "src": "6819:4:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                              "typeString": "struct TokenList.tokenMap storage pointer"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 4773,
                            "name": "_symbolHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4764,
                            "src": "6825:11:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                              "typeString": "struct TokenList.tokenMap storage pointer"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 4771,
                          "name": "existSymbol",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4137,
                          "src": "6807:11:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_struct$_tokenMap_$4056_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (struct TokenList.tokenMap storage pointer,bytes32) view returns (bool)"
                          }
                        },
                        "id": 4774,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6807:30:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "73796d626f6c2064617461206d757374206265206578697374",
                        "id": 4775,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6839:27:17",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_75fd200b9c19399b95c55b1ced6d9e1849bfd7827958b3d4adedd95790fa0096",
                          "typeString": "literal_string \"symbol data must be exist\""
                        },
                        "value": "symbol data must be exist"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_75fd200b9c19399b95c55b1ced6d9e1849bfd7827958b3d4adedd95790fa0096",
                          "typeString": "literal_string \"symbol data must be exist\""
                        }
                      ],
                      "id": 4770,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9044,
                        9045
                      ],
                      "referencedDeclaration": 9045,
                      "src": "6799:7:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 4776,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6799:68:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4777,
                  "nodeType": "ExpressionStatement",
                  "src": "6799:68:17"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4778,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4754,
                        "src": "6880:4:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                          "typeString": "struct TokenList.tokenMap storage pointer"
                        }
                      },
                      "id": 4779,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "list",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4055,
                      "src": "6880:9:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
                        "typeString": "struct TokenList.element storage ref[] storage ref"
                      }
                    },
                    "id": 4784,
                    "indexExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4780,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4754,
                          "src": "6890:4:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                            "typeString": "struct TokenList.tokenMap storage pointer"
                          }
                        },
                        "id": 4781,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "mapSymbol",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4043,
                        "src": "6890:14:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                          "typeString": "mapping(bytes32 => uint256)"
                        }
                      },
                      "id": 4783,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 4782,
                        "name": "_symbolHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4764,
                        "src": "6905:11:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "6890:27:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "6880:38:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_element_$4035_storage",
                      "typeString": "struct TokenList.element storage ref"
                    }
                  },
                  "functionReturnParameters": 4762,
                  "id": 4785,
                  "nodeType": "Return",
                  "src": "6873:45:17"
                }
              ]
            },
            "documentation": null,
            "id": 4787,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getBySymbol",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4759,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4754,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 4787,
                  "src": "6629:21:17",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                    "typeString": "struct TokenList.tokenMap"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 4753,
                    "name": "tokenMap",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4056,
                    "src": "6629:8:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                      "typeString": "struct TokenList.tokenMap"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4756,
                  "name": "_chainId",
                  "nodeType": "VariableDeclaration",
                  "scope": 4787,
                  "src": "6656:16:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4755,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6656:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4758,
                  "name": "_symbol",
                  "nodeType": "VariableDeclaration",
                  "scope": 4787,
                  "src": "6678:14:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 4757,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "6678:6:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6623:73:17"
            },
            "payable": false,
            "returnParameters": {
              "id": 4762,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4761,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4787,
                  "src": "6720:17:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_element_$4035_memory_ptr",
                    "typeString": "struct TokenList.element"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 4760,
                    "name": "TokenList.element",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4035,
                    "src": "6720:17:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                      "typeString": "struct TokenList.element"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6719:19:17"
            },
            "scope": 4973,
            "src": "6603:320:17",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 4821,
              "nodeType": "Block",
              "src": "7063:184:17",
              "statements": [
                {
                  "assignments": [
                    4799
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4799,
                      "name": "_issuerHash",
                      "nodeType": "VariableDeclaration",
                      "scope": 4822,
                      "src": "7069:19:17",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 4798,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "7069:7:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4804,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 4801,
                        "name": "_chainId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4791,
                        "src": "7099:8:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 4802,
                        "name": "_issuer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4793,
                        "src": "7109:7:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 4800,
                      "name": "getHash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4450,
                      "src": "7091:7:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (uint256,string memory) pure returns (bytes32)"
                      }
                    },
                    "id": 4803,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7091:26:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "7069:48:17"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 4807,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4789,
                            "src": "7143:4:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                              "typeString": "struct TokenList.tokenMap storage pointer"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 4808,
                            "name": "_issuerHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4799,
                            "src": "7149:11:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                              "typeString": "struct TokenList.tokenMap storage pointer"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 4806,
                          "name": "existIssuer",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4175,
                          "src": "7131:11:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_struct$_tokenMap_$4056_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (struct TokenList.tokenMap storage pointer,bytes32) view returns (bool)"
                          }
                        },
                        "id": 4809,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7131:30:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6973737565722064617461206d757374206265206578697374",
                        "id": 4810,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7163:27:17",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_1883bfc1645a9f18d8d3f4fa03cbf9b4e202e67b76ba8036769bfa219fb7e913",
                          "typeString": "literal_string \"issuer data must be exist\""
                        },
                        "value": "issuer data must be exist"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_1883bfc1645a9f18d8d3f4fa03cbf9b4e202e67b76ba8036769bfa219fb7e913",
                          "typeString": "literal_string \"issuer data must be exist\""
                        }
                      ],
                      "id": 4805,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9044,
                        9045
                      ],
                      "referencedDeclaration": 9045,
                      "src": "7123:7:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 4811,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7123:68:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4812,
                  "nodeType": "ExpressionStatement",
                  "src": "7123:68:17"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4813,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4789,
                        "src": "7204:4:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                          "typeString": "struct TokenList.tokenMap storage pointer"
                        }
                      },
                      "id": 4814,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "list",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4055,
                      "src": "7204:9:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
                        "typeString": "struct TokenList.element storage ref[] storage ref"
                      }
                    },
                    "id": 4819,
                    "indexExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4815,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4789,
                          "src": "7214:4:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                            "typeString": "struct TokenList.tokenMap storage pointer"
                          }
                        },
                        "id": 4816,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "mapIssuer",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4047,
                        "src": "7214:14:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                          "typeString": "mapping(bytes32 => uint256)"
                        }
                      },
                      "id": 4818,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 4817,
                        "name": "_issuerHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4799,
                        "src": "7229:11:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "7214:27:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "7204:38:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_element_$4035_storage",
                      "typeString": "struct TokenList.element storage ref"
                    }
                  },
                  "functionReturnParameters": 4797,
                  "id": 4820,
                  "nodeType": "Return",
                  "src": "7197:45:17"
                }
              ]
            },
            "documentation": null,
            "id": 4822,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getByIssuer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4794,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4789,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 4822,
                  "src": "6953:21:17",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                    "typeString": "struct TokenList.tokenMap"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 4788,
                    "name": "tokenMap",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4056,
                    "src": "6953:8:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                      "typeString": "struct TokenList.tokenMap"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4791,
                  "name": "_chainId",
                  "nodeType": "VariableDeclaration",
                  "scope": 4822,
                  "src": "6980:16:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4790,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6980:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4793,
                  "name": "_issuer",
                  "nodeType": "VariableDeclaration",
                  "scope": 4822,
                  "src": "7002:14:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 4792,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "7002:6:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6947:73:17"
            },
            "payable": false,
            "returnParameters": {
              "id": 4797,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4796,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4822,
                  "src": "7044:17:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_element_$4035_memory_ptr",
                    "typeString": "struct TokenList.element"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 4795,
                    "name": "TokenList.element",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4035,
                    "src": "7044:17:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                      "typeString": "struct TokenList.element"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7043:19:17"
            },
            "scope": 4973,
            "src": "6927:320:17",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 4898,
              "nodeType": "Block",
              "src": "7414:379:17",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 4834,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4824,
                            "src": "7440:4:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                              "typeString": "struct TokenList.tokenMap storage pointer"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 4835,
                            "name": "_origin",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4826,
                            "src": "7446:7:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                              "typeString": "struct TokenList.tokenMap storage pointer"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 4833,
                          "name": "existIssuer",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4175,
                          "src": "7428:11:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_struct$_tokenMap_$4056_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (struct TokenList.tokenMap storage pointer,bytes32) view returns (bool)"
                          }
                        },
                        "id": 4836,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7428:26:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6f726967696e2064617461206d757374206265206578697374",
                        "id": 4837,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7456:27:17",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_43ade6fbed43f70a45d8cf9646ea156425b17a19cffa70b27fc35093b0c6dc4e",
                          "typeString": "literal_string \"origin data must be exist\""
                        },
                        "value": "origin data must be exist"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_43ade6fbed43f70a45d8cf9646ea156425b17a19cffa70b27fc35093b0c6dc4e",
                          "typeString": "literal_string \"origin data must be exist\""
                        }
                      ],
                      "id": 4832,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9044,
                        9045
                      ],
                      "referencedDeclaration": 9045,
                      "src": "7420:7:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 4838,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7420:64:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4839,
                  "nodeType": "ExpressionStatement",
                  "src": "7420:64:17"
                },
                {
                  "assignments": [
                    4843
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4843,
                      "name": "_arr",
                      "nodeType": "VariableDeclaration",
                      "scope": 4899,
                      "src": "7491:22:17",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                        "typeString": "uint256[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 4841,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "7491:7:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 4842,
                        "length": null,
                        "nodeType": "ArrayTypeName",
                        "src": "7491:9:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                          "typeString": "uint256[]"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4848,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4844,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4824,
                        "src": "7516:4:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                          "typeString": "struct TokenList.tokenMap storage pointer"
                        }
                      },
                      "id": 4845,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "mapToken",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4052,
                      "src": "7516:13:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_uint256_$dyn_storage_$",
                        "typeString": "mapping(bytes32 => uint256[] storage ref)"
                      }
                    },
                    "id": 4847,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 4846,
                      "name": "_origin",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4826,
                      "src": "7530:7:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "7516:22:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                      "typeString": "uint256[] storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "7491:47:17"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 4853,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 4850,
                            "name": "_arr",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4843,
                            "src": "7552:4:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                              "typeString": "uint256[] storage pointer"
                            }
                          },
                          "id": 4851,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "7552:11:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 4852,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "7566:1:17",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "7552:15:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6f726967696e206c69737420686176652064617461",
                        "id": 4854,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7569:23:17",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_f0f483e739bee6157e8ff6bfbe043271c0109d1500c2312c1b234022776613d3",
                          "typeString": "literal_string \"origin list have data\""
                        },
                        "value": "origin list have data"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_f0f483e739bee6157e8ff6bfbe043271c0109d1500c2312c1b234022776613d3",
                          "typeString": "literal_string \"origin list have data\""
                        }
                      ],
                      "id": 4849,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9044,
                        9045
                      ],
                      "referencedDeclaration": 9045,
                      "src": "7544:7:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 4855,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7544:49:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4856,
                  "nodeType": "ExpressionStatement",
                  "src": "7544:49:17"
                },
                {
                  "assignments": [
                    4861
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4861,
                      "name": "res",
                      "nodeType": "VariableDeclaration",
                      "scope": 4899,
                      "src": "7600:30:17",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_element_$4035_memory_$dyn_memory_ptr",
                        "typeString": "struct TokenList.element[]"
                      },
                      "typeName": {
                        "baseType": {
                          "contractScope": null,
                          "id": 4859,
                          "name": "TokenList.element",
                          "nodeType": "UserDefinedTypeName",
                          "referencedDeclaration": 4035,
                          "src": "7600:17:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                            "typeString": "struct TokenList.element"
                          }
                        },
                        "id": 4860,
                        "length": null,
                        "nodeType": "ArrayTypeName",
                        "src": "7600:19:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage_ptr",
                          "typeString": "struct TokenList.element[]"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4868,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4865,
                          "name": "_arr",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4843,
                          "src": "7657:4:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                            "typeString": "uint256[] storage pointer"
                          }
                        },
                        "id": 4866,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "length",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "7657:11:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 4864,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "7633:23:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_element_$4035_memory_$dyn_memory_$",
                        "typeString": "function (uint256) pure returns (struct TokenList.element memory[] memory)"
                      },
                      "typeName": {
                        "baseType": {
                          "contractScope": null,
                          "id": 4862,
                          "name": "TokenList.element",
                          "nodeType": "UserDefinedTypeName",
                          "referencedDeclaration": 4035,
                          "src": "7637:17:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                            "typeString": "struct TokenList.element"
                          }
                        },
                        "id": 4863,
                        "length": null,
                        "nodeType": "ArrayTypeName",
                        "src": "7637:19:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage_ptr",
                          "typeString": "struct TokenList.element[]"
                        }
                      }
                    },
                    "id": 4867,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7633:36:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_element_$4035_memory_$dyn_memory",
                      "typeString": "struct TokenList.element memory[] memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "7600:69:17"
                },
                {
                  "body": {
                    "id": 4894,
                    "nodeType": "Block",
                    "src": "7718:54:17",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 4892,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 4880,
                              "name": "res",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4861,
                              "src": "7726:3:17",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_struct$_element_$4035_memory_$dyn_memory_ptr",
                                "typeString": "struct TokenList.element memory[] memory"
                              }
                            },
                            "id": 4882,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 4881,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4870,
                              "src": "7730:1:17",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "7726:6:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_element_$4035_memory",
                              "typeString": "struct TokenList.element memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 4883,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4824,
                                "src": "7735:4:17",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                                  "typeString": "struct TokenList.tokenMap storage pointer"
                                }
                              },
                              "id": 4884,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "list",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4055,
                              "src": "7735:9:17",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
                                "typeString": "struct TokenList.element storage ref[] storage ref"
                              }
                            },
                            "id": 4891,
                            "indexExpression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 4885,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4824,
                                  "src": "7745:4:17",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                                    "typeString": "struct TokenList.tokenMap storage pointer"
                                  }
                                },
                                "id": 4886,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "mapId",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 4039,
                                "src": "7745:10:17",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                                  "typeString": "mapping(uint256 => uint256)"
                                }
                              },
                              "id": 4890,
                              "indexExpression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 4887,
                                  "name": "_arr",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4843,
                                  "src": "7756:4:17",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                                    "typeString": "uint256[] storage pointer"
                                  }
                                },
                                "id": 4889,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 4888,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4870,
                                  "src": "7761:1:17",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "7756:7:17",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "7745:19:17",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "7735:30:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_element_$4035_storage",
                              "typeString": "struct TokenList.element storage ref"
                            }
                          },
                          "src": "7726:39:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_element_$4035_memory",
                            "typeString": "struct TokenList.element memory"
                          }
                        },
                        "id": 4893,
                        "nodeType": "ExpressionStatement",
                        "src": "7726:39:17"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 4876,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 4873,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4870,
                      "src": "7696:1:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4874,
                        "name": "_arr",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4843,
                        "src": "7700:4:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                          "typeString": "uint256[] storage pointer"
                        }
                      },
                      "id": 4875,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "7700:11:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "7696:15:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 4895,
                  "initializationExpression": {
                    "assignments": [
                      4870
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 4870,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 4899,
                        "src": "7681:9:17",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 4869,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "7681:7:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 4872,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 4871,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "7693:1:17",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "7681:13:17"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 4878,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "7713:3:17",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 4877,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4870,
                        "src": "7713:1:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 4879,
                    "nodeType": "ExpressionStatement",
                    "src": "7713:3:17"
                  },
                  "nodeType": "ForStatement",
                  "src": "7676:96:17"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4896,
                    "name": "res",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 4861,
                    "src": "7785:3:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_element_$4035_memory_$dyn_memory_ptr",
                      "typeString": "struct TokenList.element memory[] memory"
                    }
                  },
                  "functionReturnParameters": 4831,
                  "id": 4897,
                  "nodeType": "Return",
                  "src": "7778:10:17"
                }
              ]
            },
            "documentation": "获取通证跨链映射表",
            "id": 4899,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getCrossList",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4827,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4824,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 4899,
                  "src": "7316:21:17",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                    "typeString": "struct TokenList.tokenMap"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 4823,
                    "name": "tokenMap",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4056,
                    "src": "7316:8:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                      "typeString": "struct TokenList.tokenMap"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4826,
                  "name": "_origin",
                  "nodeType": "VariableDeclaration",
                  "scope": 4899,
                  "src": "7339:15:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4825,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7339:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7315:40:17"
            },
            "payable": false,
            "returnParameters": {
              "id": 4831,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4830,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4899,
                  "src": "7391:19:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_struct$_element_$4035_memory_$dyn_memory_ptr",
                    "typeString": "struct TokenList.element[]"
                  },
                  "typeName": {
                    "baseType": {
                      "contractScope": null,
                      "id": 4828,
                      "name": "TokenList.element",
                      "nodeType": "UserDefinedTypeName",
                      "referencedDeclaration": 4035,
                      "src": "7391:17:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                        "typeString": "struct TokenList.element"
                      }
                    },
                    "id": 4829,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "7391:19:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage_ptr",
                      "typeString": "struct TokenList.element[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7390:21:17"
            },
            "scope": 4973,
            "src": "7294:499:17",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 4971,
              "nodeType": "Block",
              "src": "8035:348:17",
              "statements": [
                {
                  "assignments": [
                    4912
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4912,
                      "name": "_idx",
                      "nodeType": "VariableDeclaration",
                      "scope": 4972,
                      "src": "8041:12:17",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 4911,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "8041:7:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4914,
                  "initialValue": {
                    "argumentTypes": null,
                    "hexValue": "30",
                    "id": 4913,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "8056:1:17",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_0_by_1",
                      "typeString": "int_const 0"
                    },
                    "value": "0"
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8041:16:17"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 4918,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 4916,
                          "name": "_count",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4905,
                          "src": "8071:6:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 4917,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "8080:1:17",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "8071:10:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "72657475726e206e756d626572206d75737420626967676572207468616e2030",
                        "id": 4919,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "8083:34:17",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_77e7c3b7b2e897d6d61c9adadd03e672f46f1501428d9e7f585ea1fd64517a2b",
                          "typeString": "literal_string \"return number must bigger than 0\""
                        },
                        "value": "return number must bigger than 0"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_77e7c3b7b2e897d6d61c9adadd03e672f46f1501428d9e7f585ea1fd64517a2b",
                          "typeString": "literal_string \"return number must bigger than 0\""
                        }
                      ],
                      "id": 4915,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9044,
                        9045
                      ],
                      "referencedDeclaration": 9045,
                      "src": "8063:7:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 4920,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8063:55:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4921,
                  "nodeType": "ExpressionStatement",
                  "src": "8063:55:17"
                },
                {
                  "assignments": [
                    4926
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4926,
                      "name": "res",
                      "nodeType": "VariableDeclaration",
                      "scope": 4972,
                      "src": "8124:30:17",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_element_$4035_memory_$dyn_memory_ptr",
                        "typeString": "struct TokenList.element[]"
                      },
                      "typeName": {
                        "baseType": {
                          "contractScope": null,
                          "id": 4924,
                          "name": "TokenList.element",
                          "nodeType": "UserDefinedTypeName",
                          "referencedDeclaration": 4035,
                          "src": "8124:17:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                            "typeString": "struct TokenList.element"
                          }
                        },
                        "id": 4925,
                        "length": null,
                        "nodeType": "ArrayTypeName",
                        "src": "8124:19:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage_ptr",
                          "typeString": "struct TokenList.element[]"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4932,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 4930,
                        "name": "_count",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4905,
                        "src": "8181:6:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 4929,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "8157:23:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_element_$4035_memory_$dyn_memory_$",
                        "typeString": "function (uint256) pure returns (struct TokenList.element memory[] memory)"
                      },
                      "typeName": {
                        "baseType": {
                          "contractScope": null,
                          "id": 4927,
                          "name": "TokenList.element",
                          "nodeType": "UserDefinedTypeName",
                          "referencedDeclaration": 4035,
                          "src": "8161:17:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                            "typeString": "struct TokenList.element"
                          }
                        },
                        "id": 4928,
                        "length": null,
                        "nodeType": "ArrayTypeName",
                        "src": "8161:19:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage_ptr",
                          "typeString": "struct TokenList.element[]"
                        }
                      }
                    },
                    "id": 4931,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8157:31:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_element_$4035_memory_$dyn_memory",
                      "typeString": "struct TokenList.element memory[] memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8124:64:17"
                },
                {
                  "body": {
                    "id": 4967,
                    "nodeType": "Block",
                    "src": "8245:117:17",
                    "statements": [
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 4947,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 4945,
                            "name": "_idx",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4912,
                            "src": "8257:4:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 4946,
                            "name": "_count",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4905,
                            "src": "8265:6:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "8257:14:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": null,
                        "id": 4950,
                        "nodeType": "IfStatement",
                        "src": "8253:44:17",
                        "trueBody": {
                          "id": 4949,
                          "nodeType": "Block",
                          "src": "8273:24:17",
                          "statements": [
                            {
                              "id": 4948,
                              "nodeType": "Break",
                              "src": "8283:5:17"
                            }
                          ]
                        }
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 4958,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 4951,
                              "name": "res",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4926,
                              "src": "8305:3:17",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_struct$_element_$4035_memory_$dyn_memory_ptr",
                                "typeString": "struct TokenList.element memory[] memory"
                              }
                            },
                            "id": 4953,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 4952,
                              "name": "_idx",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4912,
                              "src": "8309:4:17",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "8305:9:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_element_$4035_memory",
                              "typeString": "struct TokenList.element memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 4954,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4901,
                                "src": "8317:4:17",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                                  "typeString": "struct TokenList.tokenMap storage pointer"
                                }
                              },
                              "id": 4955,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "list",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4055,
                              "src": "8317:9:17",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
                                "typeString": "struct TokenList.element storage ref[] storage ref"
                              }
                            },
                            "id": 4957,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 4956,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4934,
                              "src": "8327:1:17",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "8317:12:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_element_$4035_storage",
                              "typeString": "struct TokenList.element storage ref"
                            }
                          },
                          "src": "8305:24:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_element_$4035_memory",
                            "typeString": "struct TokenList.element memory"
                          }
                        },
                        "id": 4959,
                        "nodeType": "ExpressionStatement",
                        "src": "8305:24:17"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 4965,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 4960,
                            "name": "_idx",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4912,
                            "src": "8337:4:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "31",
                                "id": 4963,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "8353:1:17",
                                "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"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 4961,
                                "name": "_idx",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4912,
                                "src": "8344:4:17",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 4962,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "add",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 5635,
                              "src": "8344:8:17",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                              }
                            },
                            "id": 4964,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8344:11:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "8337:18:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 4966,
                        "nodeType": "ExpressionStatement",
                        "src": "8337:18:17"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 4941,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 4937,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4934,
                      "src": "8218:1:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4938,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4901,
                          "src": "8222:4:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                            "typeString": "struct TokenList.tokenMap storage pointer"
                          }
                        },
                        "id": 4939,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "list",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4055,
                        "src": "8222:9:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
                          "typeString": "struct TokenList.element storage ref[] storage ref"
                        }
                      },
                      "id": 4940,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "8222:16:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "8218:20:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 4968,
                  "initializationExpression": {
                    "assignments": [
                      4934
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 4934,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 4972,
                        "src": "8200:9:17",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 4933,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "8200:7:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 4936,
                    "initialValue": {
                      "argumentTypes": null,
                      "id": 4935,
                      "name": "from",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4903,
                      "src": "8212:4:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "8200:16:17"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 4943,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "8240:3:17",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 4942,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4934,
                        "src": "8240:1:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 4944,
                    "nodeType": "ExpressionStatement",
                    "src": "8240:3:17"
                  },
                  "nodeType": "ForStatement",
                  "src": "8195:167:17"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4969,
                    "name": "res",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 4926,
                    "src": "8375:3:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_element_$4035_memory_$dyn_memory_ptr",
                      "typeString": "struct TokenList.element memory[] memory"
                    }
                  },
                  "functionReturnParameters": 4910,
                  "id": 4970,
                  "nodeType": "Return",
                  "src": "8368:10:17"
                }
              ]
            },
            "documentation": "@dev 从指定位置返回多条（不多于count）地址记录,如果不足则空缺",
            "id": 4972,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getList",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4906,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4901,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 4972,
                  "src": "7920:21:17",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                    "typeString": "struct TokenList.tokenMap"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 4900,
                    "name": "tokenMap",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4056,
                    "src": "7920:8:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                      "typeString": "struct TokenList.tokenMap"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4903,
                  "name": "from",
                  "nodeType": "VariableDeclaration",
                  "scope": 4972,
                  "src": "7947:12:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4902,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7947:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4905,
                  "name": "_count",
                  "nodeType": "VariableDeclaration",
                  "scope": 4972,
                  "src": "7965:14:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4904,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7965:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7914:69:17"
            },
            "payable": false,
            "returnParameters": {
              "id": 4910,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4909,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4972,
                  "src": "8007:19:17",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_struct$_element_$4035_memory_$dyn_memory_ptr",
                    "typeString": "struct TokenList.element[]"
                  },
                  "typeName": {
                    "baseType": {
                      "contractScope": null,
                      "id": 4907,
                      "name": "TokenList.element",
                      "nodeType": "UserDefinedTypeName",
                      "referencedDeclaration": 4035,
                      "src": "8007:17:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                        "typeString": "struct TokenList.element"
                      }
                    },
                    "id": 4908,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "8007:19:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage_ptr",
                      "typeString": "struct TokenList.element[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8006:28:17"
            },
            "scope": 4973,
            "src": "7898:485:17",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          }
        ],
        "scope": 4974,
        "src": "94:8291:17"
      }
    ],
    "src": "0:8386:17"
  },
  "legacyAST": {
    "absolutePath": "/Users/chtian/Documents/01_work/01_develope/jcc/jcc-solidity-utils/contracts/list/TokenList.sol",
    "exportedSymbols": {
      "TokenList": [
        4973
      ]
    },
    "id": 4974,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 4018,
        "literals": [
          "solidity",
          ">=",
          "0.4",
          ".24"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:25:17"
      },
      {
        "absolutePath": "/Users/chtian/Documents/01_work/01_develope/jcc/jcc-solidity-utils/contracts/math/SafeMath.sol",
        "file": "../math/SafeMath.sol",
        "id": 4019,
        "nodeType": "ImportDirective",
        "scope": 4974,
        "sourceUnit": 5658,
        "src": "27:30:17",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "library",
        "documentation": "@dev 通证列表处理",
        "fullyImplemented": true,
        "id": 4973,
        "linearizedBaseContracts": [
          4973
        ],
        "name": "TokenList",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "id": 4022,
            "libraryName": {
              "contractScope": null,
              "id": 4020,
              "name": "SafeMath",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 5657,
              "src": "122:8:17",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_SafeMath_$5657",
                "typeString": "library SafeMath"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "116:27:17",
            "typeName": {
              "id": 4021,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "135:7:17",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            }
          },
          {
            "canonicalName": "TokenList.element",
            "id": 4035,
            "members": [
              {
                "constant": false,
                "id": 4024,
                "name": "idx",
                "nodeType": "VariableDeclaration",
                "scope": 4035,
                "src": "200:11:17",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 4023,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "200:7:17",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4026,
                "name": "id",
                "nodeType": "VariableDeclaration",
                "scope": 4035,
                "src": "243:10:17",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 4025,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "243:7:17",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4028,
                "name": "chainId",
                "nodeType": "VariableDeclaration",
                "scope": 4035,
                "src": "291:15:17",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 4027,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "291:7:17",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4030,
                "name": "origin",
                "nodeType": "VariableDeclaration",
                "scope": 4035,
                "src": "456:14:17",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 4029,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "456:7:17",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4032,
                "name": "issuer",
                "nodeType": "VariableDeclaration",
                "scope": 4035,
                "src": "928:13:17",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_string_storage_ptr",
                  "typeString": "string"
                },
                "typeName": {
                  "id": 4031,
                  "name": "string",
                  "nodeType": "ElementaryTypeName",
                  "src": "928:6:17",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_storage_ptr",
                    "typeString": "string"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4034,
                "name": "symbol",
                "nodeType": "VariableDeclaration",
                "scope": 4035,
                "src": "983:13:17",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_string_storage_ptr",
                  "typeString": "string"
                },
                "typeName": {
                  "id": 4033,
                  "name": "string",
                  "nodeType": "ElementaryTypeName",
                  "src": "983:6:17",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_storage_ptr",
                    "typeString": "string"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "element",
            "nodeType": "StructDefinition",
            "scope": 4973,
            "src": "165:836:17",
            "visibility": "public"
          },
          {
            "canonicalName": "TokenList.tokenMap",
            "id": 4056,
            "members": [
              {
                "constant": false,
                "id": 4039,
                "name": "mapId",
                "nodeType": "VariableDeclaration",
                "scope": 4056,
                "src": "1052:33:17",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                  "typeString": "mapping(uint256 => uint256)"
                },
                "typeName": {
                  "id": 4038,
                  "keyType": {
                    "id": 4036,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1060:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "Mapping",
                  "src": "1052:27:17",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                    "typeString": "mapping(uint256 => uint256)"
                  },
                  "valueType": {
                    "id": 4037,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1071:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4043,
                "name": "mapSymbol",
                "nodeType": "VariableDeclaration",
                "scope": 4056,
                "src": "1127:37:17",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                  "typeString": "mapping(bytes32 => uint256)"
                },
                "typeName": {
                  "id": 4042,
                  "keyType": {
                    "id": 4040,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1135:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "Mapping",
                  "src": "1127:27:17",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                    "typeString": "mapping(bytes32 => uint256)"
                  },
                  "valueType": {
                    "id": 4041,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1146:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4047,
                "name": "mapIssuer",
                "nodeType": "VariableDeclaration",
                "scope": 4056,
                "src": "1206:37:17",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                  "typeString": "mapping(bytes32 => uint256)"
                },
                "typeName": {
                  "id": 4046,
                  "keyType": {
                    "id": 4044,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1214:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "Mapping",
                  "src": "1206:27:17",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                    "typeString": "mapping(bytes32 => uint256)"
                  },
                  "valueType": {
                    "id": 4045,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1225:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4052,
                "name": "mapToken",
                "nodeType": "VariableDeclaration",
                "scope": 4056,
                "src": "1315:38:17",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_uint256_$dyn_storage_$",
                  "typeString": "mapping(bytes32 => uint256[])"
                },
                "typeName": {
                  "id": 4051,
                  "keyType": {
                    "id": 4048,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1323:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "Mapping",
                  "src": "1315:29:17",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_uint256_$dyn_storage_$",
                    "typeString": "mapping(bytes32 => uint256[])"
                  },
                  "valueType": {
                    "baseType": {
                      "id": 4049,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "1334:7:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 4050,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "1334:9:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4055,
                "name": "list",
                "nodeType": "VariableDeclaration",
                "scope": 4056,
                "src": "1377:14:17",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage_ptr",
                  "typeString": "struct TokenList.element[]"
                },
                "typeName": {
                  "baseType": {
                    "contractScope": null,
                    "id": 4053,
                    "name": "element",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4035,
                    "src": "1377:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                      "typeString": "struct TokenList.element"
                    }
                  },
                  "id": 4054,
                  "length": null,
                  "nodeType": "ArrayTypeName",
                  "src": "1377:9:17",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage_ptr",
                    "typeString": "struct TokenList.element[]"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "tokenMap",
            "nodeType": "StructDefinition",
            "scope": 4973,
            "src": "1005:391:17",
            "visibility": "public"
          },
          {
            "body": {
              "id": 4098,
              "nodeType": "Block",
              "src": "1496:162:17",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 4069,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4065,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4058,
                          "src": "1506:4:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                            "typeString": "struct TokenList.tokenMap storage pointer"
                          }
                        },
                        "id": 4066,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "list",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4055,
                        "src": "1506:9:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
                          "typeString": "struct TokenList.element storage ref[] storage ref"
                        }
                      },
                      "id": 4067,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "1506:16:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 4068,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1526:1:17",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "1506:21:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 4072,
                  "nodeType": "IfStatement",
                  "src": "1502:39:17",
                  "trueBody": {
                    "expression": {
                      "argumentTypes": null,
                      "hexValue": "66616c7365",
                      "id": 4070,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1536:5:17",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "false"
                    },
                    "functionReturnParameters": 4064,
                    "id": 4071,
                    "nodeType": "Return",
                    "src": "1529:12:17"
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "components": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 4095,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 4082,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 4073,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4058,
                                  "src": "1555:4:17",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                                    "typeString": "struct TokenList.tokenMap storage pointer"
                                  }
                                },
                                "id": 4074,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "list",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 4055,
                                "src": "1555:9:17",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
                                  "typeString": "struct TokenList.element storage ref[] storage ref"
                                }
                              },
                              "id": 4079,
                              "indexExpression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 4075,
                                    "name": "self",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4058,
                                    "src": "1565:4:17",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                                      "typeString": "struct TokenList.tokenMap storage pointer"
                                    }
                                  },
                                  "id": 4076,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "mapId",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 4039,
                                  "src": "1565:10:17",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                                    "typeString": "mapping(uint256 => uint256)"
                                  }
                                },
                                "id": 4078,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 4077,
                                  "name": "_id",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4060,
                                  "src": "1576:3:17",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "1565:15:17",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "1555:26:17",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_element_$4035_storage",
                                "typeString": "struct TokenList.element storage ref"
                              }
                            },
                            "id": 4080,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "id",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4026,
                            "src": "1555:29:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 4081,
                            "name": "_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4060,
                            "src": "1588:3:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "1555:36:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 4094,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 4084,
                                      "name": "self",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 4058,
                                      "src": "1614:4:17",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                                        "typeString": "struct TokenList.tokenMap storage pointer"
                                      }
                                    },
                                    "id": 4085,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "list",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 4055,
                                    "src": "1614:9:17",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
                                      "typeString": "struct TokenList.element storage ref[] storage ref"
                                    }
                                  },
                                  "id": 4090,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 4086,
                                        "name": "self",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 4058,
                                        "src": "1624:4:17",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                                          "typeString": "struct TokenList.tokenMap storage pointer"
                                        }
                                      },
                                      "id": 4087,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "mapId",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 4039,
                                      "src": "1624:10:17",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                                        "typeString": "mapping(uint256 => uint256)"
                                      }
                                    },
                                    "id": 4089,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "id": 4088,
                                      "name": "_id",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 4060,
                                      "src": "1635:3:17",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "1624:15:17",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "1614:26:17",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_element_$4035_storage",
                                    "typeString": "struct TokenList.element storage ref"
                                  }
                                },
                                "id": 4091,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "symbol",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 4034,
                                "src": "1614:33:17",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_storage",
                                  "typeString": "string storage ref"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_string_storage",
                                  "typeString": "string storage ref"
                                }
                              ],
                              "id": 4083,
                              "name": "getStringLen",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4432,
                              "src": "1601:12:17",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_uint256_$",
                                "typeString": "function (string memory) pure returns (uint256)"
                              }
                            },
                            "id": 4092,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1601:47:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 4093,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1651:1:17",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "1601:51:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "1555:97:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "id": 4096,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "1554:99:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 4064,
                  "id": 4097,
                  "nodeType": "Return",
                  "src": "1547:106:17"
                }
              ]
            },
            "documentation": null,
            "id": 4099,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "existId",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4061,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4058,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 4099,
                  "src": "1417:21:17",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                    "typeString": "struct TokenList.tokenMap"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 4057,
                    "name": "tokenMap",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4056,
                    "src": "1417:8:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                      "typeString": "struct TokenList.tokenMap"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4060,
                  "name": "_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4099,
                  "src": "1440:11:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4059,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1440:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1416:36:17"
            },
            "payable": false,
            "returnParameters": {
              "id": 4064,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4063,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4099,
                  "src": "1488:4:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 4062,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1488:4:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1487:6:17"
            },
            "scope": 4973,
            "src": "1400:258:17",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 4136,
              "nodeType": "Block",
              "src": "1770:172:17",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 4112,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4108,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4101,
                          "src": "1780:4:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                            "typeString": "struct TokenList.tokenMap storage pointer"
                          }
                        },
                        "id": 4109,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "list",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4055,
                        "src": "1780:9:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
                          "typeString": "struct TokenList.element storage ref[] storage ref"
                        }
                      },
                      "id": 4110,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "1780:16:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 4111,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1800:1:17",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "1780:21:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 4115,
                  "nodeType": "IfStatement",
                  "src": "1776:39:17",
                  "trueBody": {
                    "expression": {
                      "argumentTypes": null,
                      "hexValue": "66616c7365",
                      "id": 4113,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1810:5:17",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "false"
                    },
                    "functionReturnParameters": 4107,
                    "id": 4114,
                    "nodeType": "Return",
                    "src": "1803:12:17"
                  }
                },
                {
                  "assignments": [
                    4117
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4117,
                      "name": "e",
                      "nodeType": "VariableDeclaration",
                      "scope": 4137,
                      "src": "1821:17:17",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                        "typeString": "struct TokenList.element"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 4116,
                        "name": "element",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 4035,
                        "src": "1821:7:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                          "typeString": "struct TokenList.element"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4125,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4118,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4101,
                        "src": "1841:4:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                          "typeString": "struct TokenList.tokenMap storage pointer"
                        }
                      },
                      "id": 4119,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "list",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4055,
                      "src": "1841:9:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
                        "typeString": "struct TokenList.element storage ref[] storage ref"
                      }
                    },
                    "id": 4124,
                    "indexExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4120,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4101,
                          "src": "1851:4:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                            "typeString": "struct TokenList.tokenMap storage pointer"
                          }
                        },
                        "id": 4121,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "mapSymbol",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4043,
                        "src": "1851:14:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                          "typeString": "mapping(bytes32 => uint256)"
                        }
                      },
                      "id": 4123,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 4122,
                        "name": "_symbolHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4103,
                        "src": "1866:11:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "1851:27:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "1841:38:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_element_$4035_storage",
                      "typeString": "struct TokenList.element storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1821:58:17"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "components": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 4133,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 4127,
                                "name": "e",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4117,
                                "src": "1901:1:17",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                                  "typeString": "struct TokenList.element storage pointer"
                                }
                              },
                              "id": 4128,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "chainId",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4028,
                              "src": "1901:9:17",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 4129,
                                "name": "e",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4117,
                                "src": "1912:1:17",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                                  "typeString": "struct TokenList.element storage pointer"
                                }
                              },
                              "id": 4130,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "symbol",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4034,
                              "src": "1912:8:17",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_storage",
                                "typeString": "string storage ref"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_string_storage",
                                "typeString": "string storage ref"
                              }
                            ],
                            "id": 4126,
                            "name": "getHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4450,
                            "src": "1893:7:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes32_$",
                              "typeString": "function (uint256,string memory) pure returns (bytes32)"
                            }
                          },
                          "id": 4131,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1893:28:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 4132,
                          "name": "_symbolHash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4103,
                          "src": "1925:11:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "1893:43:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "id": 4134,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "1892:45:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 4107,
                  "id": 4135,
                  "nodeType": "Return",
                  "src": "1885:52:17"
                }
              ]
            },
            "documentation": null,
            "id": 4137,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "existSymbol",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4104,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4101,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 4137,
                  "src": "1683:21:17",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                    "typeString": "struct TokenList.tokenMap"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 4100,
                    "name": "tokenMap",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4056,
                    "src": "1683:8:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                      "typeString": "struct TokenList.tokenMap"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4103,
                  "name": "_symbolHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 4137,
                  "src": "1706:19:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4102,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1706:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1682:44:17"
            },
            "payable": false,
            "returnParameters": {
              "id": 4107,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4106,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4137,
                  "src": "1762:4:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 4105,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1762:4:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1761:6:17"
            },
            "scope": 4973,
            "src": "1662:280:17",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 4174,
              "nodeType": "Block",
              "src": "2054:172:17",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 4150,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4146,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4139,
                          "src": "2064:4:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                            "typeString": "struct TokenList.tokenMap storage pointer"
                          }
                        },
                        "id": 4147,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "list",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4055,
                        "src": "2064:9:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
                          "typeString": "struct TokenList.element storage ref[] storage ref"
                        }
                      },
                      "id": 4148,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "2064:16:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 4149,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2084:1:17",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "2064:21:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 4153,
                  "nodeType": "IfStatement",
                  "src": "2060:39:17",
                  "trueBody": {
                    "expression": {
                      "argumentTypes": null,
                      "hexValue": "66616c7365",
                      "id": 4151,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2094:5:17",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "false"
                    },
                    "functionReturnParameters": 4145,
                    "id": 4152,
                    "nodeType": "Return",
                    "src": "2087:12:17"
                  }
                },
                {
                  "assignments": [
                    4155
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4155,
                      "name": "e",
                      "nodeType": "VariableDeclaration",
                      "scope": 4175,
                      "src": "2105:17:17",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                        "typeString": "struct TokenList.element"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 4154,
                        "name": "element",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 4035,
                        "src": "2105:7:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                          "typeString": "struct TokenList.element"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4163,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4156,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4139,
                        "src": "2125:4:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                          "typeString": "struct TokenList.tokenMap storage pointer"
                        }
                      },
                      "id": 4157,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "list",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4055,
                      "src": "2125:9:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
                        "typeString": "struct TokenList.element storage ref[] storage ref"
                      }
                    },
                    "id": 4162,
                    "indexExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4158,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4139,
                          "src": "2135:4:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                            "typeString": "struct TokenList.tokenMap storage pointer"
                          }
                        },
                        "id": 4159,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "mapIssuer",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4047,
                        "src": "2135:14:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                          "typeString": "mapping(bytes32 => uint256)"
                        }
                      },
                      "id": 4161,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 4160,
                        "name": "_issuerHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4141,
                        "src": "2150:11:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "2135:27:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "2125:38:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_element_$4035_storage",
                      "typeString": "struct TokenList.element storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2105:58:17"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "components": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 4171,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 4165,
                                "name": "e",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4155,
                                "src": "2185:1:17",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                                  "typeString": "struct TokenList.element storage pointer"
                                }
                              },
                              "id": 4166,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "chainId",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4028,
                              "src": "2185:9:17",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 4167,
                                "name": "e",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4155,
                                "src": "2196:1:17",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                                  "typeString": "struct TokenList.element storage pointer"
                                }
                              },
                              "id": 4168,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "issuer",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4032,
                              "src": "2196:8:17",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_storage",
                                "typeString": "string storage ref"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_string_storage",
                                "typeString": "string storage ref"
                              }
                            ],
                            "id": 4164,
                            "name": "getHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4450,
                            "src": "2177:7:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes32_$",
                              "typeString": "function (uint256,string memory) pure returns (bytes32)"
                            }
                          },
                          "id": 4169,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2177:28:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 4170,
                          "name": "_issuerHash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4141,
                          "src": "2209:11:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "2177:43:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "id": 4172,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "2176:45:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 4145,
                  "id": 4173,
                  "nodeType": "Return",
                  "src": "2169:52:17"
                }
              ]
            },
            "documentation": null,
            "id": 4175,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "existIssuer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4142,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4139,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 4175,
                  "src": "1967:21:17",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                    "typeString": "struct TokenList.tokenMap"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 4138,
                    "name": "tokenMap",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4056,
                    "src": "1967:8:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                      "typeString": "struct TokenList.tokenMap"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4141,
                  "name": "_issuerHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 4175,
                  "src": "1990:19:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4140,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1990:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1966:44:17"
            },
            "payable": false,
            "returnParameters": {
              "id": 4145,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4144,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4175,
                  "src": "2046:4:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 4143,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2046:4:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2045:6:17"
            },
            "scope": 4973,
            "src": "1946:280:17",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 4235,
              "nodeType": "Block",
              "src": "2393:250:17",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 4192,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4188,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4177,
                          "src": "2403:4:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                            "typeString": "struct TokenList.tokenMap storage pointer"
                          }
                        },
                        "id": 4189,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "list",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4055,
                        "src": "2403:9:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
                          "typeString": "struct TokenList.element storage ref[] storage ref"
                        }
                      },
                      "id": 4190,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "2403:16:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 4191,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2423:1:17",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "2403:21:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 4197,
                  "nodeType": "IfStatement",
                  "src": "2399:44:17",
                  "trueBody": {
                    "expression": {
                      "argumentTypes": null,
                      "components": [
                        {
                          "argumentTypes": null,
                          "hexValue": "66616c7365",
                          "id": 4193,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2434:5:17",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "false"
                        },
                        {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 4194,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2441:1:17",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        }
                      ],
                      "id": 4195,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "TupleExpression",
                      "src": "2433:10:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$",
                        "typeString": "tuple(bool,int_const 0)"
                      }
                    },
                    "functionReturnParameters": 4187,
                    "id": 4196,
                    "nodeType": "Return",
                    "src": "2426:17:17"
                  }
                },
                {
                  "assignments": [
                    4201
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4201,
                      "name": "_arr",
                      "nodeType": "VariableDeclaration",
                      "scope": 4236,
                      "src": "2450:22:17",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                        "typeString": "uint256[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 4199,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2450:7:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 4200,
                        "length": null,
                        "nodeType": "ArrayTypeName",
                        "src": "2450:9:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                          "typeString": "uint256[]"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4206,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4202,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4177,
                        "src": "2475:4:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                          "typeString": "struct TokenList.tokenMap storage pointer"
                        }
                      },
                      "id": 4203,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "mapToken",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4052,
                      "src": "2475:13:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_uint256_$dyn_storage_$",
                        "typeString": "mapping(bytes32 => uint256[] storage ref)"
                      }
                    },
                    "id": 4205,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 4204,
                      "name": "_origin",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4179,
                      "src": "2489:7:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "2475:22:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                      "typeString": "uint256[] storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2450:47:17"
                },
                {
                  "body": {
                    "id": 4229,
                    "nodeType": "Block",
                    "src": "2546:69:17",
                    "statements": [
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 4222,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 4218,
                              "name": "_arr",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4201,
                              "src": "2558:4:17",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                                "typeString": "uint256[] storage pointer"
                              }
                            },
                            "id": 4220,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 4219,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4208,
                              "src": "2563:1:17",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "2558:7:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 4221,
                            "name": "_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4181,
                            "src": "2569:3:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "2558:14:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": null,
                        "id": 4228,
                        "nodeType": "IfStatement",
                        "src": "2554:55:17",
                        "trueBody": {
                          "id": 4227,
                          "nodeType": "Block",
                          "src": "2574:35:17",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "components": [
                                  {
                                    "argumentTypes": null,
                                    "hexValue": "74727565",
                                    "id": 4223,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "bool",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "2592:4:17",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    },
                                    "value": "true"
                                  },
                                  {
                                    "argumentTypes": null,
                                    "id": 4224,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4208,
                                    "src": "2598:1:17",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "id": 4225,
                                "isConstant": false,
                                "isInlineArray": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "TupleExpression",
                                "src": "2591:9:17",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$",
                                  "typeString": "tuple(bool,uint256)"
                                }
                              },
                              "functionReturnParameters": 4187,
                              "id": 4226,
                              "nodeType": "Return",
                              "src": "2584:16:17"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 4214,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 4211,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4208,
                      "src": "2524:1:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4212,
                        "name": "_arr",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4201,
                        "src": "2528:4:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                          "typeString": "uint256[] storage pointer"
                        }
                      },
                      "id": 4213,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "2528:11:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2524:15:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 4230,
                  "initializationExpression": {
                    "assignments": [
                      4208
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 4208,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 4236,
                        "src": "2509:9:17",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 4207,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2509:7:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 4210,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 4209,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2521:1:17",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "2509:13:17"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 4216,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "2541:3:17",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 4215,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4208,
                        "src": "2541:1:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 4217,
                    "nodeType": "ExpressionStatement",
                    "src": "2541:3:17"
                  },
                  "nodeType": "ForStatement",
                  "src": "2504:111:17"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "components": [
                      {
                        "argumentTypes": null,
                        "hexValue": "66616c7365",
                        "id": 4231,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2629:5:17",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "false"
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 4232,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2636:1:17",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      }
                    ],
                    "id": 4233,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "2628:10:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$",
                      "typeString": "tuple(bool,int_const 0)"
                    }
                  },
                  "functionReturnParameters": 4187,
                  "id": 4234,
                  "nodeType": "Return",
                  "src": "2621:17:17"
                }
              ]
            },
            "documentation": null,
            "id": 4236,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "existToken",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4182,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4177,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 4236,
                  "src": "2291:21:17",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                    "typeString": "struct TokenList.tokenMap"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 4176,
                    "name": "tokenMap",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4056,
                    "src": "2291:8:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                      "typeString": "struct TokenList.tokenMap"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4179,
                  "name": "_origin",
                  "nodeType": "VariableDeclaration",
                  "scope": 4236,
                  "src": "2318:15:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4178,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2318:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4181,
                  "name": "_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4236,
                  "src": "2339:11:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4180,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2339:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2285:69:17"
            },
            "payable": false,
            "returnParameters": {
              "id": 4187,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4184,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4236,
                  "src": "2378:4:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 4183,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2378:4:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4186,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4236,
                  "src": "2384:7:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4185,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2384:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2377:15:17"
            },
            "scope": 4973,
            "src": "2266:377:17",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 4299,
              "nodeType": "Block",
              "src": "2802:314:17",
              "statements": [
                {
                  "assignments": [],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4248,
                      "name": "_exist",
                      "nodeType": "VariableDeclaration",
                      "scope": 4300,
                      "src": "2808:11:17",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "typeName": {
                        "id": 4247,
                        "name": "bool",
                        "nodeType": "ElementaryTypeName",
                        "src": "2808:4:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4249,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2808:11:17"
                },
                {
                  "assignments": [],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4251,
                      "name": "_originIdx",
                      "nodeType": "VariableDeclaration",
                      "scope": 4300,
                      "src": "2825:18:17",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 4250,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "2825:7:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4252,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2825:18:17"
                },
                {
                  "assignments": [
                    4254
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4254,
                      "name": "e",
                      "nodeType": "VariableDeclaration",
                      "scope": 4300,
                      "src": "2849:17:17",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                        "typeString": "struct TokenList.element"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 4253,
                        "name": "element",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 4035,
                        "src": "2849:7:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                          "typeString": "struct TokenList.element"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4259,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4255,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4238,
                        "src": "2869:4:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                          "typeString": "struct TokenList.tokenMap storage pointer"
                        }
                      },
                      "id": 4256,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "list",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4055,
                      "src": "2869:9:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
                        "typeString": "struct TokenList.element storage ref[] storage ref"
                      }
                    },
                    "id": 4258,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 4257,
                      "name": "_idx",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4242,
                      "src": "2879:4:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "2869:15:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_element_$4035_storage",
                      "typeString": "struct TokenList.element storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2849:35:17"
                },
                {
                  "assignments": [
                    4261
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4261,
                      "name": "_origin",
                      "nodeType": "VariableDeclaration",
                      "scope": 4300,
                      "src": "2890:15:17",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 4260,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "2890:7:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4270,
                  "initialValue": {
                    "argumentTypes": null,
                    "condition": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "id": 4265,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4262,
                          "name": "e",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4254,
                          "src": "2908:1:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                            "typeString": "struct TokenList.element storage pointer"
                          }
                        },
                        "id": 4263,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "origin",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4030,
                        "src": "2908:8:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "hexValue": "307830",
                        "id": 4264,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2920:3:17",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0x0"
                      },
                      "src": "2908:15:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4267,
                        "name": "e",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4254,
                        "src": "2940:1:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                          "typeString": "struct TokenList.element storage pointer"
                        }
                      },
                      "id": 4268,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "origin",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4030,
                      "src": "2940:8:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 4269,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "Conditional",
                    "src": "2908:40:17",
                    "trueExpression": {
                      "argumentTypes": null,
                      "id": 4266,
                      "name": "_issuerHash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4240,
                      "src": "2926:11:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2890:58:17"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4280,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "components": [
                        {
                          "argumentTypes": null,
                          "id": 4271,
                          "name": "_exist",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4248,
                          "src": "2956:6:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 4272,
                          "name": "_originIdx",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4251,
                          "src": "2964:10:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "id": 4273,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "TupleExpression",
                      "src": "2955:20:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$",
                        "typeString": "tuple(bool,uint256)"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 4275,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4238,
                          "src": "2989:4:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                            "typeString": "struct TokenList.tokenMap storage pointer"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 4276,
                          "name": "_origin",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4261,
                          "src": "2995:7:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 4277,
                            "name": "e",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4254,
                            "src": "3004:1:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                              "typeString": "struct TokenList.element storage pointer"
                            }
                          },
                          "id": 4278,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "id",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4026,
                          "src": "3004:4:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                            "typeString": "struct TokenList.tokenMap storage pointer"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 4274,
                        "name": "existToken",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4236,
                        "src": "2978:10:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_tokenMap_$4056_storage_ptr_$_t_bytes32_$_t_uint256_$returns$_t_bool_$_t_uint256_$",
                          "typeString": "function (struct TokenList.tokenMap storage pointer,bytes32,uint256) view returns (bool,uint256)"
                        }
                      },
                      "id": 4279,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2978:31:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$",
                        "typeString": "tuple(bool,uint256)"
                      }
                    },
                    "src": "2955:54:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4281,
                  "nodeType": "ExpressionStatement",
                  "src": "2955:54:17"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "id": 4282,
                    "name": "_exist",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 4248,
                    "src": "3019:6:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 4286,
                  "nodeType": "IfStatement",
                  "src": "3015:39:17",
                  "trueBody": {
                    "id": 4285,
                    "nodeType": "Block",
                    "src": "3027:27:17",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "hexValue": "66616c7365",
                          "id": 4283,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3042:5:17",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "false"
                        },
                        "functionReturnParameters": 4246,
                        "id": 4284,
                        "nodeType": "Return",
                        "src": "3035:12:17"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4293,
                          "name": "e",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4254,
                          "src": "3088:1:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                            "typeString": "struct TokenList.element storage pointer"
                          }
                        },
                        "id": 4294,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "id",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4026,
                        "src": "3088:4:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 4287,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4238,
                            "src": "3060:4:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                              "typeString": "struct TokenList.tokenMap storage pointer"
                            }
                          },
                          "id": 4290,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "mapToken",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4052,
                          "src": "3060:13:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_uint256_$dyn_storage_$",
                            "typeString": "mapping(bytes32 => uint256[] storage ref)"
                          }
                        },
                        "id": 4291,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 4289,
                          "name": "_origin",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4261,
                          "src": "3074:7:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "3060:22:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                          "typeString": "uint256[] storage ref"
                        }
                      },
                      "id": 4292,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "push",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "3060:27:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256) returns (uint256)"
                      }
                    },
                    "id": 4295,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3060:33:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4296,
                  "nodeType": "ExpressionStatement",
                  "src": "3060:33:17"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "74727565",
                    "id": 4297,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "3107:4:17",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "true"
                  },
                  "functionReturnParameters": 4246,
                  "id": 4298,
                  "nodeType": "Return",
                  "src": "3100:11:17"
                }
              ]
            },
            "documentation": null,
            "id": 4300,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "insertToken",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4243,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4238,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 4300,
                  "src": "2709:21:17",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                    "typeString": "struct TokenList.tokenMap"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 4237,
                    "name": "tokenMap",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4056,
                    "src": "2709:8:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                      "typeString": "struct TokenList.tokenMap"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4240,
                  "name": "_issuerHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 4300,
                  "src": "2736:19:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4239,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2736:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4242,
                  "name": "_idx",
                  "nodeType": "VariableDeclaration",
                  "scope": 4300,
                  "src": "2761:12:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4241,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2761:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2703:74:17"
            },
            "payable": false,
            "returnParameters": {
              "id": 4246,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4245,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4300,
                  "src": "2796:4:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 4244,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2796:4:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2795:6:17"
            },
            "scope": 4973,
            "src": "2683:433:17",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 4406,
              "nodeType": "Block",
              "src": "3248:625:17",
              "statements": [
                {
                  "assignments": [
                    4310
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4310,
                      "name": "e",
                      "nodeType": "VariableDeclaration",
                      "scope": 4407,
                      "src": "3254:17:17",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                        "typeString": "struct TokenList.element"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 4309,
                        "name": "element",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 4035,
                        "src": "3254:7:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                          "typeString": "struct TokenList.element"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4315,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4311,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4302,
                        "src": "3274:4:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                          "typeString": "struct TokenList.tokenMap storage pointer"
                        }
                      },
                      "id": 4312,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "list",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4055,
                      "src": "3274:9:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
                        "typeString": "struct TokenList.element storage ref[] storage ref"
                      }
                    },
                    "id": 4314,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 4313,
                      "name": "_idx",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4304,
                      "src": "3284:4:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "3274:15:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_element_$4035_storage",
                      "typeString": "struct TokenList.element storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3254:35:17"
                },
                {
                  "assignments": [
                    4317
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4317,
                      "name": "isOrigin",
                      "nodeType": "VariableDeclaration",
                      "scope": 4407,
                      "src": "3295:13:17",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "typeName": {
                        "id": 4316,
                        "name": "bool",
                        "nodeType": "ElementaryTypeName",
                        "src": "3295:4:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4322,
                  "initialValue": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    },
                    "id": 4321,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4318,
                        "name": "e",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4310,
                        "src": "3311:1:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                          "typeString": "struct TokenList.element storage pointer"
                        }
                      },
                      "id": 4319,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "origin",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4030,
                      "src": "3311:8:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "307830",
                      "id": 4320,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "3323:3:17",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0x0"
                    },
                    "src": "3311:15:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3295:31:17"
                },
                {
                  "assignments": [
                    4324
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4324,
                      "name": "_issuerHash",
                      "nodeType": "VariableDeclaration",
                      "scope": 4407,
                      "src": "3332:19:17",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 4323,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "3332:7:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4335,
                  "initialValue": {
                    "argumentTypes": null,
                    "condition": {
                      "argumentTypes": null,
                      "id": 4325,
                      "name": "isOrigin",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4317,
                      "src": "3354:8:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4332,
                        "name": "e",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4310,
                        "src": "3396:1:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                          "typeString": "struct TokenList.element storage pointer"
                        }
                      },
                      "id": 4333,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "origin",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4030,
                      "src": "3396:8:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 4334,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "Conditional",
                    "src": "3354:50:17",
                    "trueExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 4327,
                            "name": "e",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4310,
                            "src": "3373:1:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                              "typeString": "struct TokenList.element storage pointer"
                            }
                          },
                          "id": 4328,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "chainId",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4028,
                          "src": "3373:9:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 4329,
                            "name": "e",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4310,
                            "src": "3384:1:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                              "typeString": "struct TokenList.element storage pointer"
                            }
                          },
                          "id": 4330,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "issuer",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4032,
                          "src": "3384:8:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_storage",
                            "typeString": "string storage ref"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          {
                            "typeIdentifier": "t_string_storage",
                            "typeString": "string storage ref"
                          }
                        ],
                        "id": 4326,
                        "name": "getHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4450,
                        "src": "3365:7:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes32_$",
                          "typeString": "function (uint256,string memory) pure returns (bytes32)"
                        }
                      },
                      "id": 4331,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3365:28:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3332:72:17"
                },
                {
                  "assignments": [],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4337,
                      "name": "_exist",
                      "nodeType": "VariableDeclaration",
                      "scope": 4407,
                      "src": "3411:11:17",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "typeName": {
                        "id": 4336,
                        "name": "bool",
                        "nodeType": "ElementaryTypeName",
                        "src": "3411:4:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4338,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3411:11:17"
                },
                {
                  "assignments": [],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4340,
                      "name": "row2Del",
                      "nodeType": "VariableDeclaration",
                      "scope": 4407,
                      "src": "3428:15:17",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 4339,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "3428:7:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4341,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3428:15:17"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4351,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "components": [
                        {
                          "argumentTypes": null,
                          "id": 4342,
                          "name": "_exist",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4337,
                          "src": "3451:6:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 4343,
                          "name": "row2Del",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4340,
                          "src": "3459:7:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "id": 4344,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "TupleExpression",
                      "src": "3450:17:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$",
                        "typeString": "tuple(bool,uint256)"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 4346,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4302,
                          "src": "3481:4:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                            "typeString": "struct TokenList.tokenMap storage pointer"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 4347,
                          "name": "_issuerHash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4324,
                          "src": "3487:11:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 4348,
                            "name": "e",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4310,
                            "src": "3500:1:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                              "typeString": "struct TokenList.element storage pointer"
                            }
                          },
                          "id": 4349,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "id",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4026,
                          "src": "3500:4:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                            "typeString": "struct TokenList.tokenMap storage pointer"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 4345,
                        "name": "existToken",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4236,
                        "src": "3470:10:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_tokenMap_$4056_storage_ptr_$_t_bytes32_$_t_uint256_$returns$_t_bool_$_t_uint256_$",
                          "typeString": "function (struct TokenList.tokenMap storage pointer,bytes32,uint256) view returns (bool,uint256)"
                        }
                      },
                      "id": 4350,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3470:35:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$",
                        "typeString": "tuple(bool,uint256)"
                      }
                    },
                    "src": "3450:55:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4352,
                  "nodeType": "ExpressionStatement",
                  "src": "3450:55:17"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "id": 4354,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "!",
                    "prefix": true,
                    "src": "3515:7:17",
                    "subExpression": {
                      "argumentTypes": null,
                      "id": 4353,
                      "name": "_exist",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4337,
                      "src": "3516:6:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 4358,
                  "nodeType": "IfStatement",
                  "src": "3511:40:17",
                  "trueBody": {
                    "id": 4357,
                    "nodeType": "Block",
                    "src": "3524:27:17",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "hexValue": "66616c7365",
                          "id": 4355,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3539:5:17",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "false"
                        },
                        "functionReturnParameters": 4308,
                        "id": 4356,
                        "nodeType": "Return",
                        "src": "3532:12:17"
                      }
                    ]
                  }
                },
                {
                  "assignments": [
                    4362
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4362,
                      "name": "_arr",
                      "nodeType": "VariableDeclaration",
                      "scope": 4407,
                      "src": "3557:22:17",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                        "typeString": "uint256[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 4360,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "3557:7:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 4361,
                        "length": null,
                        "nodeType": "ArrayTypeName",
                        "src": "3557:9:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                          "typeString": "uint256[]"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4367,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4363,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4302,
                        "src": "3582:4:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                          "typeString": "struct TokenList.tokenMap storage pointer"
                        }
                      },
                      "id": 4364,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "mapToken",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4052,
                      "src": "3582:13:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_uint256_$dyn_storage_$",
                        "typeString": "mapping(bytes32 => uint256[] storage ref)"
                      }
                    },
                    "id": 4366,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 4365,
                      "name": "_issuerHash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4324,
                      "src": "3596:11:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "3582:26:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                      "typeString": "uint256[] storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3557:51:17"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 4373,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 4368,
                      "name": "isOrigin",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4317,
                      "src": "3674:8:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "&&",
                    "rightExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 4372,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4369,
                          "name": "_arr",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4362,
                          "src": "3686:4:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                            "typeString": "uint256[] storage pointer"
                          }
                        },
                        "id": 4370,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "length",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "3686:11:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": ">",
                      "rightExpression": {
                        "argumentTypes": null,
                        "hexValue": "31",
                        "id": 4371,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3700:1:17",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      },
                      "src": "3686:15:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "3674:27:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 4377,
                  "nodeType": "IfStatement",
                  "src": "3670:60:17",
                  "trueBody": {
                    "id": 4376,
                    "nodeType": "Block",
                    "src": "3703:27:17",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "hexValue": "66616c7365",
                          "id": 4374,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3718:5:17",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "false"
                        },
                        "functionReturnParameters": 4308,
                        "id": 4375,
                        "nodeType": "Return",
                        "src": "3711:12:17"
                      }
                    ]
                  }
                },
                {
                  "assignments": [
                    4379
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4379,
                      "name": "keyToMove",
                      "nodeType": "VariableDeclaration",
                      "scope": 4407,
                      "src": "3736:17:17",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 4378,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "3736:7:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4387,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 4380,
                      "name": "_arr",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4362,
                      "src": "3756:4:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                        "typeString": "uint256[] storage pointer"
                      }
                    },
                    "id": 4386,
                    "indexExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "31",
                          "id": 4384,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3777:1:17",
                          "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"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 4381,
                            "name": "_arr",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4362,
                            "src": "3761:4:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                              "typeString": "uint256[] storage pointer"
                            }
                          },
                          "id": 4382,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "3761:11:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 4383,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sub",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 5611,
                        "src": "3761:15:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 4385,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3761:18:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "3756:24:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3736:44:17"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4392,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 4388,
                        "name": "_arr",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4362,
                        "src": "3787:4:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                          "typeString": "uint256[] storage pointer"
                        }
                      },
                      "id": 4390,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 4389,
                        "name": "row2Del",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4340,
                        "src": "3792:7:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "3787:13:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 4391,
                      "name": "keyToMove",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4379,
                      "src": "3803:9:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3787:25:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4393,
                  "nodeType": "ExpressionStatement",
                  "src": "3787:25:17"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4402,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4394,
                        "name": "_arr",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4362,
                        "src": "3818:4:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                          "typeString": "uint256[] storage pointer"
                        }
                      },
                      "id": 4396,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "3818:11:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "31",
                          "id": 4400,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3848:1:17",
                          "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"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 4397,
                            "name": "_arr",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4362,
                            "src": "3832:4:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                              "typeString": "uint256[] storage pointer"
                            }
                          },
                          "id": 4398,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "3832:11:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 4399,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sub",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 5611,
                        "src": "3832:15:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 4401,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3832:18:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3818:32:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4403,
                  "nodeType": "ExpressionStatement",
                  "src": "3818:32:17"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "74727565",
                    "id": 4404,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "3864:4:17",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "true"
                  },
                  "functionReturnParameters": 4308,
                  "id": 4405,
                  "nodeType": "Return",
                  "src": "3857:11:17"
                }
              ]
            },
            "documentation": null,
            "id": 4407,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "removeToken",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4305,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4302,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 4407,
                  "src": "3177:21:17",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                    "typeString": "struct TokenList.tokenMap"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 4301,
                    "name": "tokenMap",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4056,
                    "src": "3177:8:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                      "typeString": "struct TokenList.tokenMap"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4304,
                  "name": "_idx",
                  "nodeType": "VariableDeclaration",
                  "scope": 4407,
                  "src": "3200:12:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4303,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3200:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3176:37:17"
            },
            "payable": false,
            "returnParameters": {
              "id": 4308,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4307,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4407,
                  "src": "3240:4:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 4306,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "3240:4:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3239:6:17"
            },
            "scope": 4973,
            "src": "3156:717:17",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 4431,
              "nodeType": "Block",
              "src": "3944:130:17",
              "statements": [
                {
                  "assignments": [
                    4415
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4415,
                      "name": "b",
                      "nodeType": "VariableDeclaration",
                      "scope": 4432,
                      "src": "3950:14:17",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_memory_ptr",
                        "typeString": "bytes"
                      },
                      "typeName": {
                        "id": 4414,
                        "name": "bytes",
                        "nodeType": "ElementaryTypeName",
                        "src": "3950:5:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_storage_ptr",
                          "typeString": "bytes"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4419,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 4417,
                        "name": "_str",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4409,
                        "src": "3973:4:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 4416,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "3967:5:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                        "typeString": "type(bytes storage pointer)"
                      },
                      "typeName": "bytes"
                    },
                    "id": 4418,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3967:11:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_memory",
                      "typeString": "bytes memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3950:28:17"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 4424,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 4421,
                            "name": "b",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4415,
                            "src": "3992:1:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          "id": 4422,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "3992:8:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "31303234",
                          "id": 4423,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "4004:4:17",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1024_by_1",
                            "typeString": "int_const 1024"
                          },
                          "value": "1024"
                        },
                        "src": "3992:16:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "746f6f206c6172676520737472696e67206d616b65206f766572666c6f77207269736b",
                        "id": 4425,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4010:37:17",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_a04837239c708b9348717c3349e4803b1f78ce229ff9fadb01d3b10ea6e3573e",
                          "typeString": "literal_string \"too large string make overflow risk\""
                        },
                        "value": "too large string make overflow risk"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_a04837239c708b9348717c3349e4803b1f78ce229ff9fadb01d3b10ea6e3573e",
                          "typeString": "literal_string \"too large string make overflow risk\""
                        }
                      ],
                      "id": 4420,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9044,
                        9045
                      ],
                      "referencedDeclaration": 9045,
                      "src": "3984:7:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 4426,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3984:64:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4427,
                  "nodeType": "ExpressionStatement",
                  "src": "3984:64:17"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 4428,
                      "name": "b",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4415,
                      "src": "4061:1:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_memory_ptr",
                        "typeString": "bytes memory"
                      }
                    },
                    "id": 4429,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "length",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "4061:8:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 4413,
                  "id": 4430,
                  "nodeType": "Return",
                  "src": "4054:15:17"
                }
              ]
            },
            "documentation": null,
            "id": 4432,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getStringLen",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4410,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4409,
                  "name": "_str",
                  "nodeType": "VariableDeclaration",
                  "scope": 4432,
                  "src": "3899:11:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 4408,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "3899:6:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3898:13:17"
            },
            "payable": false,
            "returnParameters": {
              "id": 4413,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4412,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4432,
                  "src": "3935:7:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4411,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3935:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3934:9:17"
            },
            "scope": 4973,
            "src": "3877:197:17",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 4449,
              "nodeType": "Block",
              "src": "4173:62:17",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 4444,
                            "name": "_chainId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4434,
                            "src": "4213:8:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 4445,
                            "name": "_name",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4436,
                            "src": "4223:5:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 4442,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 9028,
                            "src": "4196:3:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 4443,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "4196:16:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 4446,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4196:33:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 4441,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 9035,
                      "src": "4186:9:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 4447,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4186:44:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 4440,
                  "id": 4448,
                  "nodeType": "Return",
                  "src": "4179:51:17"
                }
              ]
            },
            "documentation": null,
            "id": 4450,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getHash",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4437,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4434,
                  "name": "_chainId",
                  "nodeType": "VariableDeclaration",
                  "scope": 4450,
                  "src": "4095:16:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4433,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4095:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4436,
                  "name": "_name",
                  "nodeType": "VariableDeclaration",
                  "scope": 4450,
                  "src": "4113:12:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 4435,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "4113:6:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4094:32:17"
            },
            "payable": false,
            "returnParameters": {
              "id": 4440,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4439,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4450,
                  "src": "4162:7:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4438,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4162:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4161:9:17"
            },
            "scope": 4973,
            "src": "4078:157:17",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 4576,
              "nodeType": "Block",
              "src": "4477:883:17",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 4468,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4452,
                        "src": "4495:4:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                          "typeString": "struct TokenList.tokenMap storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 4469,
                        "name": "_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4454,
                        "src": "4501:3:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                          "typeString": "struct TokenList.tokenMap storage pointer"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 4467,
                      "name": "existId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4099,
                      "src": "4487:7:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_tokenMap_$4056_storage_ptr_$_t_uint256_$returns$_t_bool_$",
                        "typeString": "function (struct TokenList.tokenMap storage pointer,uint256) view returns (bool)"
                      }
                    },
                    "id": 4470,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4487:18:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 4474,
                  "nodeType": "IfStatement",
                  "src": "4483:51:17",
                  "trueBody": {
                    "id": 4473,
                    "nodeType": "Block",
                    "src": "4507:27:17",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "hexValue": "66616c7365",
                          "id": 4471,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "4522:5:17",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "false"
                        },
                        "functionReturnParameters": 4466,
                        "id": 4472,
                        "nodeType": "Return",
                        "src": "4515:12:17"
                      }
                    ]
                  }
                },
                {
                  "assignments": [
                    4476
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4476,
                      "name": "_symbolHash",
                      "nodeType": "VariableDeclaration",
                      "scope": 4577,
                      "src": "4540:19:17",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 4475,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "4540:7:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4481,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 4478,
                        "name": "_chainId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4456,
                        "src": "4570:8:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 4479,
                        "name": "_symbol",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4462,
                        "src": "4580:7:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 4477,
                      "name": "getHash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4450,
                      "src": "4562:7:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (uint256,string memory) pure returns (bytes32)"
                      }
                    },
                    "id": 4480,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4562:26:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4540:48:17"
                },
                {
                  "assignments": [
                    4483
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4483,
                      "name": "_issuerHash",
                      "nodeType": "VariableDeclaration",
                      "scope": 4577,
                      "src": "4594:19:17",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 4482,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "4594:7:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4488,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 4485,
                        "name": "_chainId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4456,
                        "src": "4624:8:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 4486,
                        "name": "_issuer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4460,
                        "src": "4634:7:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 4484,
                      "name": "getHash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4450,
                      "src": "4616:7:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (uint256,string memory) pure returns (bytes32)"
                      }
                    },
                    "id": 4487,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4616:26:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4594:48:17"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 4497,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 4490,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4452,
                          "src": "4665:4:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                            "typeString": "struct TokenList.tokenMap storage pointer"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 4491,
                          "name": "_symbolHash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4476,
                          "src": "4671:11:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                            "typeString": "struct TokenList.tokenMap storage pointer"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 4489,
                        "name": "existSymbol",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4137,
                        "src": "4653:11:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_tokenMap_$4056_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                          "typeString": "function (struct TokenList.tokenMap storage pointer,bytes32) view returns (bool)"
                        }
                      },
                      "id": 4492,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "4653:30:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "||",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 4494,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4452,
                          "src": "4699:4:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                            "typeString": "struct TokenList.tokenMap storage pointer"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 4495,
                          "name": "_issuerHash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4483,
                          "src": "4705:11:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                            "typeString": "struct TokenList.tokenMap storage pointer"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 4493,
                        "name": "existIssuer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4175,
                        "src": "4687:11:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_tokenMap_$4056_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                          "typeString": "function (struct TokenList.tokenMap storage pointer,bytes32) view returns (bool)"
                        }
                      },
                      "id": 4496,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "4687:30:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "4653:64:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 4501,
                  "nodeType": "IfStatement",
                  "src": "4649:97:17",
                  "trueBody": {
                    "id": 4500,
                    "nodeType": "Block",
                    "src": "4719:27:17",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "hexValue": "66616c7365",
                          "id": 4498,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "4734:5:17",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "false"
                        },
                        "functionReturnParameters": 4466,
                        "id": 4499,
                        "nodeType": "Return",
                        "src": "4727:12:17"
                      }
                    ]
                  }
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 4510,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "id": 4504,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 4502,
                        "name": "_origin",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4458,
                        "src": "4796:7:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "!=",
                      "rightExpression": {
                        "argumentTypes": null,
                        "hexValue": "307830",
                        "id": 4503,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4807:3:17",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0x0"
                      },
                      "src": "4796:14:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "&&",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 4509,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "!",
                      "prefix": true,
                      "src": "4814:27:17",
                      "subExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 4506,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4452,
                            "src": "4827:4:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                              "typeString": "struct TokenList.tokenMap storage pointer"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 4507,
                            "name": "_origin",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4458,
                            "src": "4833:7:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                              "typeString": "struct TokenList.tokenMap storage pointer"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 4505,
                          "name": "existIssuer",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4175,
                          "src": "4815:11:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_struct$_tokenMap_$4056_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (struct TokenList.tokenMap storage pointer,bytes32) view returns (bool)"
                          }
                        },
                        "id": 4508,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4815:26:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "4796:45:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 4514,
                  "nodeType": "IfStatement",
                  "src": "4792:78:17",
                  "trueBody": {
                    "id": 4513,
                    "nodeType": "Block",
                    "src": "4843:27:17",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "hexValue": "66616c7365",
                          "id": 4511,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "4858:5:17",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "false"
                        },
                        "functionReturnParameters": 4466,
                        "id": 4512,
                        "nodeType": "Return",
                        "src": "4851:12:17"
                      }
                    ]
                  }
                },
                {
                  "assignments": [
                    4516
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4516,
                      "name": "e",
                      "nodeType": "VariableDeclaration",
                      "scope": 4577,
                      "src": "4876:16:17",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_element_$4035_memory_ptr",
                        "typeString": "struct TokenList.element"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 4515,
                        "name": "element",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 4035,
                        "src": "4876:7:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                          "typeString": "struct TokenList.element"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4527,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 4518,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4452,
                            "src": "4924:4:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                              "typeString": "struct TokenList.tokenMap storage pointer"
                            }
                          },
                          "id": 4519,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "list",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4055,
                          "src": "4924:9:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
                            "typeString": "struct TokenList.element storage ref[] storage ref"
                          }
                        },
                        "id": 4520,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "length",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "4924:16:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 4521,
                        "name": "_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4454,
                        "src": "4954:3:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 4522,
                        "name": "_chainId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4456,
                        "src": "4976:8:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 4523,
                        "name": "_origin",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4458,
                        "src": "5002:7:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 4524,
                        "name": "_issuer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4460,
                        "src": "5027:7:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 4525,
                        "name": "_symbol",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4462,
                        "src": "5052:7:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": null,
                      "id": 4517,
                      "name": "element",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4035,
                      "src": "4901:7:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_struct$_element_$4035_storage_ptr_$",
                        "typeString": "type(struct TokenList.element storage pointer)"
                      }
                    },
                    "id": 4526,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "structConstructorCall",
                    "lValueRequested": false,
                    "names": [
                      "idx",
                      "id",
                      "chainId",
                      "origin",
                      "issuer",
                      "symbol"
                    ],
                    "nodeType": "FunctionCall",
                    "src": "4901:167:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_element_$4035_memory",
                      "typeString": "struct TokenList.element memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4876:192:17"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 4533,
                        "name": "e",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4516,
                        "src": "5090:1:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_element_$4035_memory_ptr",
                          "typeString": "struct TokenList.element memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_element_$4035_memory_ptr",
                          "typeString": "struct TokenList.element memory"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4528,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4452,
                          "src": "5075:4:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                            "typeString": "struct TokenList.tokenMap storage pointer"
                          }
                        },
                        "id": 4531,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "list",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4055,
                        "src": "5075:9:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
                          "typeString": "struct TokenList.element storage ref[] storage ref"
                        }
                      },
                      "id": 4532,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "push",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "5075:14:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_element_$4035_storage_$returns$_t_uint256_$",
                        "typeString": "function (struct TokenList.element storage ref) returns (uint256)"
                      }
                    },
                    "id": 4534,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5075:17:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4535,
                  "nodeType": "ExpressionStatement",
                  "src": "5075:17:17"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4543,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4536,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4452,
                          "src": "5098:4:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                            "typeString": "struct TokenList.tokenMap storage pointer"
                          }
                        },
                        "id": 4539,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "mapId",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4039,
                        "src": "5098:10:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                          "typeString": "mapping(uint256 => uint256)"
                        }
                      },
                      "id": 4540,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 4538,
                        "name": "_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4454,
                        "src": "5109:3:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "5098:15:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4541,
                        "name": "e",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4516,
                        "src": "5116:1:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_element_$4035_memory_ptr",
                          "typeString": "struct TokenList.element memory"
                        }
                      },
                      "id": 4542,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "idx",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4024,
                      "src": "5116:5:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5098:23:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4544,
                  "nodeType": "ExpressionStatement",
                  "src": "5098:23:17"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4552,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4545,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4452,
                          "src": "5127:4:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                            "typeString": "struct TokenList.tokenMap storage pointer"
                          }
                        },
                        "id": 4548,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "mapSymbol",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4043,
                        "src": "5127:14:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                          "typeString": "mapping(bytes32 => uint256)"
                        }
                      },
                      "id": 4549,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 4547,
                        "name": "_symbolHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4476,
                        "src": "5142:11:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "5127:27:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4550,
                        "name": "e",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4516,
                        "src": "5157:1:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_element_$4035_memory_ptr",
                          "typeString": "struct TokenList.element memory"
                        }
                      },
                      "id": 4551,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "idx",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4024,
                      "src": "5157:5:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5127:35:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4553,
                  "nodeType": "ExpressionStatement",
                  "src": "5127:35:17"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4561,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4554,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4452,
                          "src": "5168:4:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                            "typeString": "struct TokenList.tokenMap storage pointer"
                          }
                        },
                        "id": 4557,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "mapIssuer",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4047,
                        "src": "5168:14:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                          "typeString": "mapping(bytes32 => uint256)"
                        }
                      },
                      "id": 4558,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 4556,
                        "name": "_issuerHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4483,
                        "src": "5183:11:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "5168:27:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4559,
                        "name": "e",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4516,
                        "src": "5198:1:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_element_$4035_memory_ptr",
                          "typeString": "struct TokenList.element memory"
                        }
                      },
                      "id": 4560,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "idx",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4024,
                      "src": "5198:5:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5168:35:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4562,
                  "nodeType": "ExpressionStatement",
                  "src": "5168:35:17"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "id": 4569,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "!",
                    "prefix": true,
                    "src": "5271:38:17",
                    "subExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 4564,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4452,
                          "src": "5284:4:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                            "typeString": "struct TokenList.tokenMap storage pointer"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 4565,
                          "name": "_issuerHash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4483,
                          "src": "5290:11:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 4566,
                            "name": "e",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4516,
                            "src": "5303:1:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_element_$4035_memory_ptr",
                              "typeString": "struct TokenList.element memory"
                            }
                          },
                          "id": 4567,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "idx",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4024,
                          "src": "5303:5:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                            "typeString": "struct TokenList.tokenMap storage pointer"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 4563,
                        "name": "insertToken",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4300,
                        "src": "5272:11:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_tokenMap_$4056_storage_ptr_$_t_bytes32_$_t_uint256_$returns$_t_bool_$",
                          "typeString": "function (struct TokenList.tokenMap storage pointer,bytes32,uint256) returns (bool)"
                        }
                      },
                      "id": 4568,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "5272:37:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 4573,
                  "nodeType": "IfStatement",
                  "src": "5267:71:17",
                  "trueBody": {
                    "id": 4572,
                    "nodeType": "Block",
                    "src": "5311:27:17",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "hexValue": "66616c7365",
                          "id": 4570,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "5326:5:17",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "false"
                        },
                        "functionReturnParameters": 4466,
                        "id": 4571,
                        "nodeType": "Return",
                        "src": "5319:12:17"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "74727565",
                    "id": 4574,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "5351:4:17",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "true"
                  },
                  "functionReturnParameters": 4466,
                  "id": 4575,
                  "nodeType": "Return",
                  "src": "5344:11:17"
                }
              ]
            },
            "documentation": "@dev 增加新定时定义，重复的ID返回失败",
            "id": 4577,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "insert",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4463,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4452,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 4577,
                  "src": "4327:21:17",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                    "typeString": "struct TokenList.tokenMap"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 4451,
                    "name": "tokenMap",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4056,
                    "src": "4327:8:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                      "typeString": "struct TokenList.tokenMap"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4454,
                  "name": "_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4577,
                  "src": "4354:11:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4453,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4354:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4456,
                  "name": "_chainId",
                  "nodeType": "VariableDeclaration",
                  "scope": 4577,
                  "src": "4371:16:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4455,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4371:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4458,
                  "name": "_origin",
                  "nodeType": "VariableDeclaration",
                  "scope": 4577,
                  "src": "4393:15:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4457,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4393:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4460,
                  "name": "_issuer",
                  "nodeType": "VariableDeclaration",
                  "scope": 4577,
                  "src": "4414:14:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 4459,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "4414:6:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4462,
                  "name": "_symbol",
                  "nodeType": "VariableDeclaration",
                  "scope": 4577,
                  "src": "4434:14:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 4461,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "4434:6:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4321:131:17"
            },
            "payable": false,
            "returnParameters": {
              "id": 4466,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4465,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4577,
                  "src": "4471:4:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 4464,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "4471:4:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4470:6:17"
            },
            "scope": 4973,
            "src": "4306:1054:17",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 4689,
              "nodeType": "Block",
              "src": "5440:610:17",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "id": 4590,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "!",
                    "prefix": true,
                    "src": "5450:19:17",
                    "subExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 4587,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4579,
                          "src": "5459:4:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                            "typeString": "struct TokenList.tokenMap storage pointer"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 4588,
                          "name": "_id",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4581,
                          "src": "5465:3:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                            "typeString": "struct TokenList.tokenMap storage pointer"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 4586,
                        "name": "existId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4099,
                        "src": "5451:7:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_tokenMap_$4056_storage_ptr_$_t_uint256_$returns$_t_bool_$",
                          "typeString": "function (struct TokenList.tokenMap storage pointer,uint256) view returns (bool)"
                        }
                      },
                      "id": 4589,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "5451:18:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 4594,
                  "nodeType": "IfStatement",
                  "src": "5446:52:17",
                  "trueBody": {
                    "id": 4593,
                    "nodeType": "Block",
                    "src": "5471:27:17",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "hexValue": "66616c7365",
                          "id": 4591,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "5486:5:17",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "false"
                        },
                        "functionReturnParameters": 4585,
                        "id": 4592,
                        "nodeType": "Return",
                        "src": "5479:12:17"
                      }
                    ]
                  }
                },
                {
                  "assignments": [
                    4596
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4596,
                      "name": "row2Del",
                      "nodeType": "VariableDeclaration",
                      "scope": 4690,
                      "src": "5504:15:17",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 4595,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "5504:7:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4601,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4597,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4579,
                        "src": "5522:4:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                          "typeString": "struct TokenList.tokenMap storage pointer"
                        }
                      },
                      "id": 4598,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "mapId",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4039,
                      "src": "5522:10:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                        "typeString": "mapping(uint256 => uint256)"
                      }
                    },
                    "id": 4600,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 4599,
                      "name": "_id",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4581,
                      "src": "5533:3:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "5522:15:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5504:33:17"
                },
                {
                  "assignments": [
                    4603
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4603,
                      "name": "keyToMove",
                      "nodeType": "VariableDeclaration",
                      "scope": 4690,
                      "src": "5544:25:17",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                        "typeString": "struct TokenList.element"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 4602,
                        "name": "element",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 4035,
                        "src": "5544:7:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                          "typeString": "struct TokenList.element"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4613,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4604,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4579,
                        "src": "5572:4:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                          "typeString": "struct TokenList.tokenMap storage pointer"
                        }
                      },
                      "id": 4605,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "list",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4055,
                      "src": "5572:9:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
                        "typeString": "struct TokenList.element storage ref[] storage ref"
                      }
                    },
                    "id": 4612,
                    "indexExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "31",
                          "id": 4610,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "5603:1:17",
                          "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"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 4606,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4579,
                              "src": "5582:4:17",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                                "typeString": "struct TokenList.tokenMap storage pointer"
                              }
                            },
                            "id": 4607,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "list",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4055,
                            "src": "5582:9:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
                              "typeString": "struct TokenList.element storage ref[] storage ref"
                            }
                          },
                          "id": 4608,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "5582:16:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 4609,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sub",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 5611,
                        "src": "5582:20:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 4611,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "5582:23:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "5572:34:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_element_$4035_storage",
                      "typeString": "struct TokenList.element storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5544:62:17"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "id": 4618,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "!",
                    "prefix": true,
                    "src": "5617:27:17",
                    "subExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 4615,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4579,
                          "src": "5630:4:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                            "typeString": "struct TokenList.tokenMap storage pointer"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 4616,
                          "name": "row2Del",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4596,
                          "src": "5636:7:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                            "typeString": "struct TokenList.tokenMap storage pointer"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 4614,
                        "name": "removeToken",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4407,
                        "src": "5618:11:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_tokenMap_$4056_storage_ptr_$_t_uint256_$returns$_t_bool_$",
                          "typeString": "function (struct TokenList.tokenMap storage pointer,uint256) returns (bool)"
                        }
                      },
                      "id": 4617,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "5618:26:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 4622,
                  "nodeType": "IfStatement",
                  "src": "5613:60:17",
                  "trueBody": {
                    "id": 4621,
                    "nodeType": "Block",
                    "src": "5646:27:17",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "hexValue": "66616c7365",
                          "id": 4619,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "5661:5:17",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "false"
                        },
                        "functionReturnParameters": 4585,
                        "id": 4620,
                        "nodeType": "Return",
                        "src": "5654:12:17"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4629,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4623,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4579,
                          "src": "5679:4:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                            "typeString": "struct TokenList.tokenMap storage pointer"
                          }
                        },
                        "id": 4626,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "list",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4055,
                        "src": "5679:9:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
                          "typeString": "struct TokenList.element storage ref[] storage ref"
                        }
                      },
                      "id": 4627,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 4625,
                        "name": "row2Del",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4596,
                        "src": "5689:7:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "5679:18:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_element_$4035_storage",
                        "typeString": "struct TokenList.element storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 4628,
                      "name": "keyToMove",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4603,
                      "src": "5700:9:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                        "typeString": "struct TokenList.element storage pointer"
                      }
                    },
                    "src": "5679:30:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_element_$4035_storage",
                      "typeString": "struct TokenList.element storage ref"
                    }
                  },
                  "id": 4630,
                  "nodeType": "ExpressionStatement",
                  "src": "5679:30:17"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4638,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4631,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4579,
                          "src": "5715:4:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                            "typeString": "struct TokenList.tokenMap storage pointer"
                          }
                        },
                        "id": 4635,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "mapId",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4039,
                        "src": "5715:10:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                          "typeString": "mapping(uint256 => uint256)"
                        }
                      },
                      "id": 4636,
                      "indexExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4633,
                          "name": "keyToMove",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4603,
                          "src": "5726:9:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                            "typeString": "struct TokenList.element storage pointer"
                          }
                        },
                        "id": 4634,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "id",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4026,
                        "src": "5726:12:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "5715:24:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 4637,
                      "name": "row2Del",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4596,
                      "src": "5742:7:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5715:34:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4639,
                  "nodeType": "ExpressionStatement",
                  "src": "5715:34:17"
                },
                {
                  "assignments": [
                    4641
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4641,
                      "name": "_symbolHash",
                      "nodeType": "VariableDeclaration",
                      "scope": 4690,
                      "src": "5755:19:17",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 4640,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "5755:7:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4648,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4643,
                          "name": "keyToMove",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4603,
                          "src": "5785:9:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                            "typeString": "struct TokenList.element storage pointer"
                          }
                        },
                        "id": 4644,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "chainId",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4028,
                        "src": "5785:17:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4645,
                          "name": "keyToMove",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4603,
                          "src": "5804:9:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                            "typeString": "struct TokenList.element storage pointer"
                          }
                        },
                        "id": 4646,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "symbol",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4034,
                        "src": "5804:16:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_storage",
                          "typeString": "string storage ref"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_string_storage",
                          "typeString": "string storage ref"
                        }
                      ],
                      "id": 4642,
                      "name": "getHash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4450,
                      "src": "5777:7:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (uint256,string memory) pure returns (bytes32)"
                      }
                    },
                    "id": 4647,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5777:44:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5755:66:17"
                },
                {
                  "assignments": [
                    4650
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4650,
                      "name": "_issuerHash",
                      "nodeType": "VariableDeclaration",
                      "scope": 4690,
                      "src": "5827:19:17",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 4649,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "5827:7:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4657,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4652,
                          "name": "keyToMove",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4603,
                          "src": "5857:9:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                            "typeString": "struct TokenList.element storage pointer"
                          }
                        },
                        "id": 4653,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "chainId",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4028,
                        "src": "5857:17:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4654,
                          "name": "keyToMove",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4603,
                          "src": "5876:9:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                            "typeString": "struct TokenList.element storage pointer"
                          }
                        },
                        "id": 4655,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "issuer",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4032,
                        "src": "5876:16:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_storage",
                          "typeString": "string storage ref"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_string_storage",
                          "typeString": "string storage ref"
                        }
                      ],
                      "id": 4651,
                      "name": "getHash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4450,
                      "src": "5849:7:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (uint256,string memory) pure returns (bytes32)"
                      }
                    },
                    "id": 4656,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5849:44:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5827:66:17"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4664,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4658,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4579,
                          "src": "5899:4:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                            "typeString": "struct TokenList.tokenMap storage pointer"
                          }
                        },
                        "id": 4661,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "mapSymbol",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4043,
                        "src": "5899:14:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                          "typeString": "mapping(bytes32 => uint256)"
                        }
                      },
                      "id": 4662,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 4660,
                        "name": "_symbolHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4641,
                        "src": "5914:11:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "5899:27:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 4663,
                      "name": "row2Del",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4596,
                      "src": "5929:7:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5899:37:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4665,
                  "nodeType": "ExpressionStatement",
                  "src": "5899:37:17"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4672,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4666,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4579,
                          "src": "5942:4:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                            "typeString": "struct TokenList.tokenMap storage pointer"
                          }
                        },
                        "id": 4669,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "mapIssuer",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4047,
                        "src": "5942:14:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                          "typeString": "mapping(bytes32 => uint256)"
                        }
                      },
                      "id": 4670,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 4668,
                        "name": "_issuerHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4650,
                        "src": "5957:11:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "5942:27:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 4671,
                      "name": "row2Del",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4596,
                      "src": "5972:7:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5942:37:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4673,
                  "nodeType": "ExpressionStatement",
                  "src": "5942:37:17"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4685,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4674,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4579,
                          "src": "5985:4:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                            "typeString": "struct TokenList.tokenMap storage pointer"
                          }
                        },
                        "id": 4677,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "list",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4055,
                        "src": "5985:9:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
                          "typeString": "struct TokenList.element storage ref[] storage ref"
                        }
                      },
                      "id": 4678,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "5985:16:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "31",
                          "id": 4683,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "6025:1:17",
                          "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"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 4679,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4579,
                              "src": "6004:4:17",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                                "typeString": "struct TokenList.tokenMap storage pointer"
                              }
                            },
                            "id": 4680,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "list",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4055,
                            "src": "6004:9:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
                              "typeString": "struct TokenList.element storage ref[] storage ref"
                            }
                          },
                          "id": 4681,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "6004:16:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 4682,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sub",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 5611,
                        "src": "6004:20:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 4684,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "6004:23:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5985:42:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4686,
                  "nodeType": "ExpressionStatement",
                  "src": "5985:42:17"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "74727565",
                    "id": 4687,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "6041:4:17",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "true"
                  },
                  "functionReturnParameters": 4585,
                  "id": 4688,
                  "nodeType": "Return",
                  "src": "6034:11:17"
                }
              ]
            },
            "documentation": null,
            "id": 4690,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "remove",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4582,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4579,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 4690,
                  "src": "5380:21:17",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                    "typeString": "struct TokenList.tokenMap"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 4578,
                    "name": "tokenMap",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4056,
                    "src": "5380:8:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                      "typeString": "struct TokenList.tokenMap"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4581,
                  "name": "_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4690,
                  "src": "5403:11:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4580,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5403:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5379:36:17"
            },
            "payable": false,
            "returnParameters": {
              "id": 4585,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4584,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4690,
                  "src": "5434:4:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 4583,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "5434:4:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5433:6:17"
            },
            "scope": 4973,
            "src": "5364:686:17",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 4701,
              "nodeType": "Block",
              "src": "6124:34:17",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4697,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4692,
                        "src": "6137:4:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                          "typeString": "struct TokenList.tokenMap storage pointer"
                        }
                      },
                      "id": 4698,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "list",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4055,
                      "src": "6137:9:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
                        "typeString": "struct TokenList.element storage ref[] storage ref"
                      }
                    },
                    "id": 4699,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "length",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "6137:16:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 4696,
                  "id": 4700,
                  "nodeType": "Return",
                  "src": "6130:23:17"
                }
              ]
            },
            "documentation": null,
            "id": 4702,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "count",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4693,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4692,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 4702,
                  "src": "6069:21:17",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                    "typeString": "struct TokenList.tokenMap"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 4691,
                    "name": "tokenMap",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4056,
                    "src": "6069:8:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                      "typeString": "struct TokenList.tokenMap"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6068:23:17"
            },
            "payable": false,
            "returnParameters": {
              "id": 4696,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4695,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4702,
                  "src": "6115:7:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4694,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6115:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6114:9:17"
            },
            "scope": 4973,
            "src": "6054:104:17",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 4725,
              "nodeType": "Block",
              "src": "6269:112:17",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 4716,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 4712,
                          "name": "index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4706,
                          "src": "6283:5:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 4713,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4704,
                              "src": "6291:4:17",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                                "typeString": "struct TokenList.tokenMap storage pointer"
                              }
                            },
                            "id": 4714,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "list",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4055,
                            "src": "6291:9:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
                              "typeString": "struct TokenList.element storage ref[] storage ref"
                            }
                          },
                          "id": 4715,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "6291:16:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "6283:24:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "696e646578206d75737420736d616c6c207468616e2063757272656e7420636f756e74",
                        "id": 4717,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6309:37:17",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_ced05a9863658d26be4f7cbaeffebfa53821dabbe1077d21241580b1e9ea74c5",
                          "typeString": "literal_string \"index must small than current count\""
                        },
                        "value": "index must small than current count"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_ced05a9863658d26be4f7cbaeffebfa53821dabbe1077d21241580b1e9ea74c5",
                          "typeString": "literal_string \"index must small than current count\""
                        }
                      ],
                      "id": 4711,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9044,
                        9045
                      ],
                      "referencedDeclaration": 9045,
                      "src": "6275:7:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 4718,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6275:72:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4719,
                  "nodeType": "ExpressionStatement",
                  "src": "6275:72:17"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4720,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4704,
                        "src": "6360:4:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                          "typeString": "struct TokenList.tokenMap storage pointer"
                        }
                      },
                      "id": 4721,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "list",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4055,
                      "src": "6360:9:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
                        "typeString": "struct TokenList.element storage ref[] storage ref"
                      }
                    },
                    "id": 4723,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 4722,
                      "name": "index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4706,
                      "src": "6370:5:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "6360:16:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_element_$4035_storage",
                      "typeString": "struct TokenList.element storage ref"
                    }
                  },
                  "functionReturnParameters": 4710,
                  "id": 4724,
                  "nodeType": "Return",
                  "src": "6353:23:17"
                }
              ]
            },
            "documentation": null,
            "id": 4726,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "get",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4707,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4704,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 4726,
                  "src": "6175:21:17",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                    "typeString": "struct TokenList.tokenMap"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 4703,
                    "name": "tokenMap",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4056,
                    "src": "6175:8:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                      "typeString": "struct TokenList.tokenMap"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4706,
                  "name": "index",
                  "nodeType": "VariableDeclaration",
                  "scope": 4726,
                  "src": "6198:13:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4705,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6198:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6174:38:17"
            },
            "payable": false,
            "returnParameters": {
              "id": 4710,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4709,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4726,
                  "src": "6248:17:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_element_$4035_memory_ptr",
                    "typeString": "struct TokenList.element"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 4708,
                    "name": "TokenList.element",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4035,
                    "src": "6248:17:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                      "typeString": "struct TokenList.element"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6247:19:17"
            },
            "scope": 4973,
            "src": "6162:219:17",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 4751,
              "nodeType": "Block",
              "src": "6494:105:17",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 4737,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4728,
                            "src": "6516:4:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                              "typeString": "struct TokenList.tokenMap storage pointer"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 4738,
                            "name": "_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4730,
                            "src": "6522:3:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                              "typeString": "struct TokenList.tokenMap storage pointer"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 4736,
                          "name": "existId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4099,
                          "src": "6508:7:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_struct$_tokenMap_$4056_storage_ptr_$_t_uint256_$returns$_t_bool_$",
                            "typeString": "function (struct TokenList.tokenMap storage pointer,uint256) view returns (bool)"
                          }
                        },
                        "id": 4739,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6508:18:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "746f6b656e2064617461206d757374206265206578697374",
                        "id": 4740,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6528:26:17",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_52f5db765b8f4977098a032b3fab7ad18ac2500c70e736dccb1caf4bcb129ff6",
                          "typeString": "literal_string \"token data must be exist\""
                        },
                        "value": "token data must be exist"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_52f5db765b8f4977098a032b3fab7ad18ac2500c70e736dccb1caf4bcb129ff6",
                          "typeString": "literal_string \"token data must be exist\""
                        }
                      ],
                      "id": 4735,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9044,
                        9045
                      ],
                      "referencedDeclaration": 9045,
                      "src": "6500:7:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 4741,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6500:55:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4742,
                  "nodeType": "ExpressionStatement",
                  "src": "6500:55:17"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4743,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4728,
                        "src": "6568:4:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                          "typeString": "struct TokenList.tokenMap storage pointer"
                        }
                      },
                      "id": 4744,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "list",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4055,
                      "src": "6568:9:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
                        "typeString": "struct TokenList.element storage ref[] storage ref"
                      }
                    },
                    "id": 4749,
                    "indexExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4745,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4728,
                          "src": "6578:4:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                            "typeString": "struct TokenList.tokenMap storage pointer"
                          }
                        },
                        "id": 4746,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "mapId",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4039,
                        "src": "6578:10:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                          "typeString": "mapping(uint256 => uint256)"
                        }
                      },
                      "id": 4748,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 4747,
                        "name": "_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4730,
                        "src": "6589:3:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "6578:15:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "6568:26:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_element_$4035_storage",
                      "typeString": "struct TokenList.element storage ref"
                    }
                  },
                  "functionReturnParameters": 4734,
                  "id": 4750,
                  "nodeType": "Return",
                  "src": "6561:33:17"
                }
              ]
            },
            "documentation": null,
            "id": 4752,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getById",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4731,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4728,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 4752,
                  "src": "6402:21:17",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                    "typeString": "struct TokenList.tokenMap"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 4727,
                    "name": "tokenMap",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4056,
                    "src": "6402:8:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                      "typeString": "struct TokenList.tokenMap"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4730,
                  "name": "_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 4752,
                  "src": "6425:11:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4729,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6425:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6401:36:17"
            },
            "payable": false,
            "returnParameters": {
              "id": 4734,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4733,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4752,
                  "src": "6473:17:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_element_$4035_memory_ptr",
                    "typeString": "struct TokenList.element"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 4732,
                    "name": "TokenList.element",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4035,
                    "src": "6473:17:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                      "typeString": "struct TokenList.element"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6472:19:17"
            },
            "scope": 4973,
            "src": "6385:214:17",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 4786,
              "nodeType": "Block",
              "src": "6739:184:17",
              "statements": [
                {
                  "assignments": [
                    4764
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4764,
                      "name": "_symbolHash",
                      "nodeType": "VariableDeclaration",
                      "scope": 4787,
                      "src": "6745:19:17",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 4763,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "6745:7:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4769,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 4766,
                        "name": "_chainId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4756,
                        "src": "6775:8:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 4767,
                        "name": "_symbol",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4758,
                        "src": "6785:7:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 4765,
                      "name": "getHash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4450,
                      "src": "6767:7:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (uint256,string memory) pure returns (bytes32)"
                      }
                    },
                    "id": 4768,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6767:26:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6745:48:17"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 4772,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4754,
                            "src": "6819:4:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                              "typeString": "struct TokenList.tokenMap storage pointer"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 4773,
                            "name": "_symbolHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4764,
                            "src": "6825:11:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                              "typeString": "struct TokenList.tokenMap storage pointer"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 4771,
                          "name": "existSymbol",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4137,
                          "src": "6807:11:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_struct$_tokenMap_$4056_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (struct TokenList.tokenMap storage pointer,bytes32) view returns (bool)"
                          }
                        },
                        "id": 4774,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6807:30:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "73796d626f6c2064617461206d757374206265206578697374",
                        "id": 4775,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6839:27:17",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_75fd200b9c19399b95c55b1ced6d9e1849bfd7827958b3d4adedd95790fa0096",
                          "typeString": "literal_string \"symbol data must be exist\""
                        },
                        "value": "symbol data must be exist"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_75fd200b9c19399b95c55b1ced6d9e1849bfd7827958b3d4adedd95790fa0096",
                          "typeString": "literal_string \"symbol data must be exist\""
                        }
                      ],
                      "id": 4770,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9044,
                        9045
                      ],
                      "referencedDeclaration": 9045,
                      "src": "6799:7:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 4776,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6799:68:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4777,
                  "nodeType": "ExpressionStatement",
                  "src": "6799:68:17"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4778,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4754,
                        "src": "6880:4:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                          "typeString": "struct TokenList.tokenMap storage pointer"
                        }
                      },
                      "id": 4779,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "list",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4055,
                      "src": "6880:9:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
                        "typeString": "struct TokenList.element storage ref[] storage ref"
                      }
                    },
                    "id": 4784,
                    "indexExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4780,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4754,
                          "src": "6890:4:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                            "typeString": "struct TokenList.tokenMap storage pointer"
                          }
                        },
                        "id": 4781,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "mapSymbol",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4043,
                        "src": "6890:14:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                          "typeString": "mapping(bytes32 => uint256)"
                        }
                      },
                      "id": 4783,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 4782,
                        "name": "_symbolHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4764,
                        "src": "6905:11:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "6890:27:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "6880:38:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_element_$4035_storage",
                      "typeString": "struct TokenList.element storage ref"
                    }
                  },
                  "functionReturnParameters": 4762,
                  "id": 4785,
                  "nodeType": "Return",
                  "src": "6873:45:17"
                }
              ]
            },
            "documentation": null,
            "id": 4787,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getBySymbol",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4759,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4754,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 4787,
                  "src": "6629:21:17",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                    "typeString": "struct TokenList.tokenMap"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 4753,
                    "name": "tokenMap",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4056,
                    "src": "6629:8:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                      "typeString": "struct TokenList.tokenMap"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4756,
                  "name": "_chainId",
                  "nodeType": "VariableDeclaration",
                  "scope": 4787,
                  "src": "6656:16:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4755,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6656:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4758,
                  "name": "_symbol",
                  "nodeType": "VariableDeclaration",
                  "scope": 4787,
                  "src": "6678:14:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 4757,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "6678:6:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6623:73:17"
            },
            "payable": false,
            "returnParameters": {
              "id": 4762,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4761,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4787,
                  "src": "6720:17:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_element_$4035_memory_ptr",
                    "typeString": "struct TokenList.element"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 4760,
                    "name": "TokenList.element",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4035,
                    "src": "6720:17:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                      "typeString": "struct TokenList.element"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6719:19:17"
            },
            "scope": 4973,
            "src": "6603:320:17",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 4821,
              "nodeType": "Block",
              "src": "7063:184:17",
              "statements": [
                {
                  "assignments": [
                    4799
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4799,
                      "name": "_issuerHash",
                      "nodeType": "VariableDeclaration",
                      "scope": 4822,
                      "src": "7069:19:17",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 4798,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "7069:7:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4804,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 4801,
                        "name": "_chainId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4791,
                        "src": "7099:8:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 4802,
                        "name": "_issuer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4793,
                        "src": "7109:7:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 4800,
                      "name": "getHash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4450,
                      "src": "7091:7:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (uint256,string memory) pure returns (bytes32)"
                      }
                    },
                    "id": 4803,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7091:26:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "7069:48:17"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 4807,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4789,
                            "src": "7143:4:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                              "typeString": "struct TokenList.tokenMap storage pointer"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 4808,
                            "name": "_issuerHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4799,
                            "src": "7149:11:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                              "typeString": "struct TokenList.tokenMap storage pointer"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 4806,
                          "name": "existIssuer",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4175,
                          "src": "7131:11:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_struct$_tokenMap_$4056_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (struct TokenList.tokenMap storage pointer,bytes32) view returns (bool)"
                          }
                        },
                        "id": 4809,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7131:30:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6973737565722064617461206d757374206265206578697374",
                        "id": 4810,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7163:27:17",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_1883bfc1645a9f18d8d3f4fa03cbf9b4e202e67b76ba8036769bfa219fb7e913",
                          "typeString": "literal_string \"issuer data must be exist\""
                        },
                        "value": "issuer data must be exist"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_1883bfc1645a9f18d8d3f4fa03cbf9b4e202e67b76ba8036769bfa219fb7e913",
                          "typeString": "literal_string \"issuer data must be exist\""
                        }
                      ],
                      "id": 4805,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9044,
                        9045
                      ],
                      "referencedDeclaration": 9045,
                      "src": "7123:7:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 4811,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7123:68:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4812,
                  "nodeType": "ExpressionStatement",
                  "src": "7123:68:17"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4813,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4789,
                        "src": "7204:4:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                          "typeString": "struct TokenList.tokenMap storage pointer"
                        }
                      },
                      "id": 4814,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "list",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4055,
                      "src": "7204:9:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
                        "typeString": "struct TokenList.element storage ref[] storage ref"
                      }
                    },
                    "id": 4819,
                    "indexExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4815,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4789,
                          "src": "7214:4:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                            "typeString": "struct TokenList.tokenMap storage pointer"
                          }
                        },
                        "id": 4816,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "mapIssuer",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4047,
                        "src": "7214:14:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                          "typeString": "mapping(bytes32 => uint256)"
                        }
                      },
                      "id": 4818,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 4817,
                        "name": "_issuerHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4799,
                        "src": "7229:11:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "7214:27:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "7204:38:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_element_$4035_storage",
                      "typeString": "struct TokenList.element storage ref"
                    }
                  },
                  "functionReturnParameters": 4797,
                  "id": 4820,
                  "nodeType": "Return",
                  "src": "7197:45:17"
                }
              ]
            },
            "documentation": null,
            "id": 4822,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getByIssuer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4794,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4789,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 4822,
                  "src": "6953:21:17",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                    "typeString": "struct TokenList.tokenMap"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 4788,
                    "name": "tokenMap",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4056,
                    "src": "6953:8:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                      "typeString": "struct TokenList.tokenMap"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4791,
                  "name": "_chainId",
                  "nodeType": "VariableDeclaration",
                  "scope": 4822,
                  "src": "6980:16:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4790,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6980:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4793,
                  "name": "_issuer",
                  "nodeType": "VariableDeclaration",
                  "scope": 4822,
                  "src": "7002:14:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 4792,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "7002:6:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6947:73:17"
            },
            "payable": false,
            "returnParameters": {
              "id": 4797,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4796,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4822,
                  "src": "7044:17:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_element_$4035_memory_ptr",
                    "typeString": "struct TokenList.element"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 4795,
                    "name": "TokenList.element",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4035,
                    "src": "7044:17:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                      "typeString": "struct TokenList.element"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7043:19:17"
            },
            "scope": 4973,
            "src": "6927:320:17",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 4898,
              "nodeType": "Block",
              "src": "7414:379:17",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 4834,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4824,
                            "src": "7440:4:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                              "typeString": "struct TokenList.tokenMap storage pointer"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 4835,
                            "name": "_origin",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4826,
                            "src": "7446:7:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                              "typeString": "struct TokenList.tokenMap storage pointer"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 4833,
                          "name": "existIssuer",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4175,
                          "src": "7428:11:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_struct$_tokenMap_$4056_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (struct TokenList.tokenMap storage pointer,bytes32) view returns (bool)"
                          }
                        },
                        "id": 4836,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7428:26:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6f726967696e2064617461206d757374206265206578697374",
                        "id": 4837,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7456:27:17",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_43ade6fbed43f70a45d8cf9646ea156425b17a19cffa70b27fc35093b0c6dc4e",
                          "typeString": "literal_string \"origin data must be exist\""
                        },
                        "value": "origin data must be exist"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_43ade6fbed43f70a45d8cf9646ea156425b17a19cffa70b27fc35093b0c6dc4e",
                          "typeString": "literal_string \"origin data must be exist\""
                        }
                      ],
                      "id": 4832,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9044,
                        9045
                      ],
                      "referencedDeclaration": 9045,
                      "src": "7420:7:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 4838,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7420:64:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4839,
                  "nodeType": "ExpressionStatement",
                  "src": "7420:64:17"
                },
                {
                  "assignments": [
                    4843
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4843,
                      "name": "_arr",
                      "nodeType": "VariableDeclaration",
                      "scope": 4899,
                      "src": "7491:22:17",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                        "typeString": "uint256[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 4841,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "7491:7:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 4842,
                        "length": null,
                        "nodeType": "ArrayTypeName",
                        "src": "7491:9:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                          "typeString": "uint256[]"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4848,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4844,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4824,
                        "src": "7516:4:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                          "typeString": "struct TokenList.tokenMap storage pointer"
                        }
                      },
                      "id": 4845,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "mapToken",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4052,
                      "src": "7516:13:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_uint256_$dyn_storage_$",
                        "typeString": "mapping(bytes32 => uint256[] storage ref)"
                      }
                    },
                    "id": 4847,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 4846,
                      "name": "_origin",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4826,
                      "src": "7530:7:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "7516:22:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                      "typeString": "uint256[] storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "7491:47:17"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 4853,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 4850,
                            "name": "_arr",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4843,
                            "src": "7552:4:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                              "typeString": "uint256[] storage pointer"
                            }
                          },
                          "id": 4851,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "7552:11:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 4852,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "7566:1:17",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "7552:15:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6f726967696e206c69737420686176652064617461",
                        "id": 4854,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7569:23:17",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_f0f483e739bee6157e8ff6bfbe043271c0109d1500c2312c1b234022776613d3",
                          "typeString": "literal_string \"origin list have data\""
                        },
                        "value": "origin list have data"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_f0f483e739bee6157e8ff6bfbe043271c0109d1500c2312c1b234022776613d3",
                          "typeString": "literal_string \"origin list have data\""
                        }
                      ],
                      "id": 4849,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9044,
                        9045
                      ],
                      "referencedDeclaration": 9045,
                      "src": "7544:7:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 4855,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7544:49:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4856,
                  "nodeType": "ExpressionStatement",
                  "src": "7544:49:17"
                },
                {
                  "assignments": [
                    4861
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4861,
                      "name": "res",
                      "nodeType": "VariableDeclaration",
                      "scope": 4899,
                      "src": "7600:30:17",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_element_$4035_memory_$dyn_memory_ptr",
                        "typeString": "struct TokenList.element[]"
                      },
                      "typeName": {
                        "baseType": {
                          "contractScope": null,
                          "id": 4859,
                          "name": "TokenList.element",
                          "nodeType": "UserDefinedTypeName",
                          "referencedDeclaration": 4035,
                          "src": "7600:17:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                            "typeString": "struct TokenList.element"
                          }
                        },
                        "id": 4860,
                        "length": null,
                        "nodeType": "ArrayTypeName",
                        "src": "7600:19:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage_ptr",
                          "typeString": "struct TokenList.element[]"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4868,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4865,
                          "name": "_arr",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4843,
                          "src": "7657:4:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                            "typeString": "uint256[] storage pointer"
                          }
                        },
                        "id": 4866,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "length",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "7657:11:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 4864,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "7633:23:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_element_$4035_memory_$dyn_memory_$",
                        "typeString": "function (uint256) pure returns (struct TokenList.element memory[] memory)"
                      },
                      "typeName": {
                        "baseType": {
                          "contractScope": null,
                          "id": 4862,
                          "name": "TokenList.element",
                          "nodeType": "UserDefinedTypeName",
                          "referencedDeclaration": 4035,
                          "src": "7637:17:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                            "typeString": "struct TokenList.element"
                          }
                        },
                        "id": 4863,
                        "length": null,
                        "nodeType": "ArrayTypeName",
                        "src": "7637:19:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage_ptr",
                          "typeString": "struct TokenList.element[]"
                        }
                      }
                    },
                    "id": 4867,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7633:36:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_element_$4035_memory_$dyn_memory",
                      "typeString": "struct TokenList.element memory[] memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "7600:69:17"
                },
                {
                  "body": {
                    "id": 4894,
                    "nodeType": "Block",
                    "src": "7718:54:17",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 4892,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 4880,
                              "name": "res",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4861,
                              "src": "7726:3:17",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_struct$_element_$4035_memory_$dyn_memory_ptr",
                                "typeString": "struct TokenList.element memory[] memory"
                              }
                            },
                            "id": 4882,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 4881,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4870,
                              "src": "7730:1:17",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "7726:6:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_element_$4035_memory",
                              "typeString": "struct TokenList.element memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 4883,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4824,
                                "src": "7735:4:17",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                                  "typeString": "struct TokenList.tokenMap storage pointer"
                                }
                              },
                              "id": 4884,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "list",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4055,
                              "src": "7735:9:17",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
                                "typeString": "struct TokenList.element storage ref[] storage ref"
                              }
                            },
                            "id": 4891,
                            "indexExpression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 4885,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4824,
                                  "src": "7745:4:17",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                                    "typeString": "struct TokenList.tokenMap storage pointer"
                                  }
                                },
                                "id": 4886,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "mapId",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 4039,
                                "src": "7745:10:17",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                                  "typeString": "mapping(uint256 => uint256)"
                                }
                              },
                              "id": 4890,
                              "indexExpression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 4887,
                                  "name": "_arr",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4843,
                                  "src": "7756:4:17",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                                    "typeString": "uint256[] storage pointer"
                                  }
                                },
                                "id": 4889,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 4888,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4870,
                                  "src": "7761:1:17",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "7756:7:17",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "7745:19:17",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "7735:30:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_element_$4035_storage",
                              "typeString": "struct TokenList.element storage ref"
                            }
                          },
                          "src": "7726:39:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_element_$4035_memory",
                            "typeString": "struct TokenList.element memory"
                          }
                        },
                        "id": 4893,
                        "nodeType": "ExpressionStatement",
                        "src": "7726:39:17"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 4876,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 4873,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4870,
                      "src": "7696:1:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4874,
                        "name": "_arr",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4843,
                        "src": "7700:4:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                          "typeString": "uint256[] storage pointer"
                        }
                      },
                      "id": 4875,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "7700:11:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "7696:15:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 4895,
                  "initializationExpression": {
                    "assignments": [
                      4870
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 4870,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 4899,
                        "src": "7681:9:17",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 4869,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "7681:7:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 4872,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 4871,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "7693:1:17",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "7681:13:17"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 4878,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "7713:3:17",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 4877,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4870,
                        "src": "7713:1:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 4879,
                    "nodeType": "ExpressionStatement",
                    "src": "7713:3:17"
                  },
                  "nodeType": "ForStatement",
                  "src": "7676:96:17"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4896,
                    "name": "res",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 4861,
                    "src": "7785:3:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_element_$4035_memory_$dyn_memory_ptr",
                      "typeString": "struct TokenList.element memory[] memory"
                    }
                  },
                  "functionReturnParameters": 4831,
                  "id": 4897,
                  "nodeType": "Return",
                  "src": "7778:10:17"
                }
              ]
            },
            "documentation": "获取通证跨链映射表",
            "id": 4899,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getCrossList",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4827,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4824,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 4899,
                  "src": "7316:21:17",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                    "typeString": "struct TokenList.tokenMap"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 4823,
                    "name": "tokenMap",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4056,
                    "src": "7316:8:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                      "typeString": "struct TokenList.tokenMap"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4826,
                  "name": "_origin",
                  "nodeType": "VariableDeclaration",
                  "scope": 4899,
                  "src": "7339:15:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4825,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7339:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7315:40:17"
            },
            "payable": false,
            "returnParameters": {
              "id": 4831,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4830,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4899,
                  "src": "7391:19:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_struct$_element_$4035_memory_$dyn_memory_ptr",
                    "typeString": "struct TokenList.element[]"
                  },
                  "typeName": {
                    "baseType": {
                      "contractScope": null,
                      "id": 4828,
                      "name": "TokenList.element",
                      "nodeType": "UserDefinedTypeName",
                      "referencedDeclaration": 4035,
                      "src": "7391:17:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                        "typeString": "struct TokenList.element"
                      }
                    },
                    "id": 4829,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "7391:19:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage_ptr",
                      "typeString": "struct TokenList.element[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7390:21:17"
            },
            "scope": 4973,
            "src": "7294:499:17",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 4971,
              "nodeType": "Block",
              "src": "8035:348:17",
              "statements": [
                {
                  "assignments": [
                    4912
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4912,
                      "name": "_idx",
                      "nodeType": "VariableDeclaration",
                      "scope": 4972,
                      "src": "8041:12:17",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 4911,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "8041:7:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4914,
                  "initialValue": {
                    "argumentTypes": null,
                    "hexValue": "30",
                    "id": 4913,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "8056:1:17",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_0_by_1",
                      "typeString": "int_const 0"
                    },
                    "value": "0"
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8041:16:17"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 4918,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 4916,
                          "name": "_count",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4905,
                          "src": "8071:6:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 4917,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "8080:1:17",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "8071:10:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "72657475726e206e756d626572206d75737420626967676572207468616e2030",
                        "id": 4919,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "8083:34:17",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_77e7c3b7b2e897d6d61c9adadd03e672f46f1501428d9e7f585ea1fd64517a2b",
                          "typeString": "literal_string \"return number must bigger than 0\""
                        },
                        "value": "return number must bigger than 0"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_77e7c3b7b2e897d6d61c9adadd03e672f46f1501428d9e7f585ea1fd64517a2b",
                          "typeString": "literal_string \"return number must bigger than 0\""
                        }
                      ],
                      "id": 4915,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9044,
                        9045
                      ],
                      "referencedDeclaration": 9045,
                      "src": "8063:7:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 4920,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8063:55:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4921,
                  "nodeType": "ExpressionStatement",
                  "src": "8063:55:17"
                },
                {
                  "assignments": [
                    4926
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4926,
                      "name": "res",
                      "nodeType": "VariableDeclaration",
                      "scope": 4972,
                      "src": "8124:30:17",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_element_$4035_memory_$dyn_memory_ptr",
                        "typeString": "struct TokenList.element[]"
                      },
                      "typeName": {
                        "baseType": {
                          "contractScope": null,
                          "id": 4924,
                          "name": "TokenList.element",
                          "nodeType": "UserDefinedTypeName",
                          "referencedDeclaration": 4035,
                          "src": "8124:17:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                            "typeString": "struct TokenList.element"
                          }
                        },
                        "id": 4925,
                        "length": null,
                        "nodeType": "ArrayTypeName",
                        "src": "8124:19:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage_ptr",
                          "typeString": "struct TokenList.element[]"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4932,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 4930,
                        "name": "_count",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4905,
                        "src": "8181:6:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 4929,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "8157:23:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_element_$4035_memory_$dyn_memory_$",
                        "typeString": "function (uint256) pure returns (struct TokenList.element memory[] memory)"
                      },
                      "typeName": {
                        "baseType": {
                          "contractScope": null,
                          "id": 4927,
                          "name": "TokenList.element",
                          "nodeType": "UserDefinedTypeName",
                          "referencedDeclaration": 4035,
                          "src": "8161:17:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                            "typeString": "struct TokenList.element"
                          }
                        },
                        "id": 4928,
                        "length": null,
                        "nodeType": "ArrayTypeName",
                        "src": "8161:19:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage_ptr",
                          "typeString": "struct TokenList.element[]"
                        }
                      }
                    },
                    "id": 4931,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8157:31:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_element_$4035_memory_$dyn_memory",
                      "typeString": "struct TokenList.element memory[] memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8124:64:17"
                },
                {
                  "body": {
                    "id": 4967,
                    "nodeType": "Block",
                    "src": "8245:117:17",
                    "statements": [
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 4947,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 4945,
                            "name": "_idx",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4912,
                            "src": "8257:4:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 4946,
                            "name": "_count",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4905,
                            "src": "8265:6:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "8257:14:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": null,
                        "id": 4950,
                        "nodeType": "IfStatement",
                        "src": "8253:44:17",
                        "trueBody": {
                          "id": 4949,
                          "nodeType": "Block",
                          "src": "8273:24:17",
                          "statements": [
                            {
                              "id": 4948,
                              "nodeType": "Break",
                              "src": "8283:5:17"
                            }
                          ]
                        }
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 4958,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 4951,
                              "name": "res",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4926,
                              "src": "8305:3:17",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_struct$_element_$4035_memory_$dyn_memory_ptr",
                                "typeString": "struct TokenList.element memory[] memory"
                              }
                            },
                            "id": 4953,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 4952,
                              "name": "_idx",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4912,
                              "src": "8309:4:17",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "8305:9:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_element_$4035_memory",
                              "typeString": "struct TokenList.element memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 4954,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4901,
                                "src": "8317:4:17",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                                  "typeString": "struct TokenList.tokenMap storage pointer"
                                }
                              },
                              "id": 4955,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "list",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 4055,
                              "src": "8317:9:17",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
                                "typeString": "struct TokenList.element storage ref[] storage ref"
                              }
                            },
                            "id": 4957,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 4956,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4934,
                              "src": "8327:1:17",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "8317:12:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_element_$4035_storage",
                              "typeString": "struct TokenList.element storage ref"
                            }
                          },
                          "src": "8305:24:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_element_$4035_memory",
                            "typeString": "struct TokenList.element memory"
                          }
                        },
                        "id": 4959,
                        "nodeType": "ExpressionStatement",
                        "src": "8305:24:17"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 4965,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 4960,
                            "name": "_idx",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4912,
                            "src": "8337:4:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "31",
                                "id": 4963,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "8353:1:17",
                                "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"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 4961,
                                "name": "_idx",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4912,
                                "src": "8344:4:17",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 4962,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "add",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 5635,
                              "src": "8344:8:17",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                              }
                            },
                            "id": 4964,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8344:11:17",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "8337:18:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 4966,
                        "nodeType": "ExpressionStatement",
                        "src": "8337:18:17"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 4941,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 4937,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4934,
                      "src": "8218:1:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4938,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4901,
                          "src": "8222:4:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                            "typeString": "struct TokenList.tokenMap storage pointer"
                          }
                        },
                        "id": 4939,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "list",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4055,
                        "src": "8222:9:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
                          "typeString": "struct TokenList.element storage ref[] storage ref"
                        }
                      },
                      "id": 4940,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "8222:16:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "8218:20:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 4968,
                  "initializationExpression": {
                    "assignments": [
                      4934
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 4934,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 4972,
                        "src": "8200:9:17",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 4933,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "8200:7:17",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 4936,
                    "initialValue": {
                      "argumentTypes": null,
                      "id": 4935,
                      "name": "from",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4903,
                      "src": "8212:4:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "8200:16:17"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 4943,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "8240:3:17",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 4942,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4934,
                        "src": "8240:1:17",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 4944,
                    "nodeType": "ExpressionStatement",
                    "src": "8240:3:17"
                  },
                  "nodeType": "ForStatement",
                  "src": "8195:167:17"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4969,
                    "name": "res",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 4926,
                    "src": "8375:3:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_element_$4035_memory_$dyn_memory_ptr",
                      "typeString": "struct TokenList.element memory[] memory"
                    }
                  },
                  "functionReturnParameters": 4910,
                  "id": 4970,
                  "nodeType": "Return",
                  "src": "8368:10:17"
                }
              ]
            },
            "documentation": "@dev 从指定位置返回多条（不多于count）地址记录,如果不足则空缺",
            "id": 4972,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getList",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4906,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4901,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 4972,
                  "src": "7920:21:17",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                    "typeString": "struct TokenList.tokenMap"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 4900,
                    "name": "tokenMap",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4056,
                    "src": "7920:8:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                      "typeString": "struct TokenList.tokenMap"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4903,
                  "name": "from",
                  "nodeType": "VariableDeclaration",
                  "scope": 4972,
                  "src": "7947:12:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4902,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7947:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4905,
                  "name": "_count",
                  "nodeType": "VariableDeclaration",
                  "scope": 4972,
                  "src": "7965:14:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4904,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7965:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7914:69:17"
            },
            "payable": false,
            "returnParameters": {
              "id": 4910,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4909,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4972,
                  "src": "8007:19:17",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_struct$_element_$4035_memory_$dyn_memory_ptr",
                    "typeString": "struct TokenList.element[]"
                  },
                  "typeName": {
                    "baseType": {
                      "contractScope": null,
                      "id": 4907,
                      "name": "TokenList.element",
                      "nodeType": "UserDefinedTypeName",
                      "referencedDeclaration": 4035,
                      "src": "8007:17:17",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                        "typeString": "struct TokenList.element"
                      }
                    },
                    "id": 4908,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "8007:19:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage_ptr",
                      "typeString": "struct TokenList.element[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8006:28:17"
            },
            "scope": 4973,
            "src": "7898:485:17",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          }
        ],
        "scope": 4974,
        "src": "94:8291:17"
      }
    ],
    "src": "0:8386:17"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.24+commit.e67f0147.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.0.16",
  "updatedAt": "2021-03-06T09:30:01.006Z",
  "devdoc": {
    "methods": {}
  },
  "userdoc": {
    "methods": {}
  }
}