{
  "contractName": "HashList",
  "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/HashList.sol\":\"HashList\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/chtian/Documents/01_work/01_develope/jcc/jcc-solidity-utils/contracts/list/HashList.sol\":{\"keccak256\":\"0xf3dbb1450bc3a8e1d0d97d15d105fff11fa689f705416ae5d314ac16e839cead\",\"urls\":[\"bzzr://3e768231f6e9bb4f62bbbe7f83653a3384732d9419a673d5d82708b6b1ec2c18\"]},\"/Users/chtian/Documents/01_work/01_develope/jcc/jcc-solidity-utils/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x239546071316c89d3bbc9e61b2ccae270a4493bbd2f7c240052f533807d50ab7\",\"urls\":[\"bzzr://267bf48e0a30f7b671aa3c98a6b27ffe7bc64efd6533f49e54188b520baa94c5\"]}},\"version\":1}",
  "bytecode": "0x604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820735cc7feaf7df668d4bff24efd22b0a7451a4521baa4dc7f6832ecc62b729eec0029",
  "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820735cc7feaf7df668d4bff24efd22b0a7451a4521baa4dc7f6832ecc62b729eec0029",
  "sourceMap": "158:1960:16:-;;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": "158:1960:16:-;;;;;;;;",
  "source": "pragma solidity >=0.4.24;\n\nimport \"../math/SafeMath.sol\";\n\n/**\n * @dev 交易列表共通，处理交易列表hash数据，只能顺序增加且不重复\n */\nlibrary HashList {\n  using SafeMath for uint256;\n\n  struct hashMap {\n    mapping(bytes32 => uint256) mapList;\n    bytes32[] list;\n  }\n\n  function exist(hashMap storage self, bytes32 _hash)\n    internal\n    view\n    returns (bool)\n  {\n    if (self.list.length == 0) return false;\n    return (self.list[self.mapList[_hash]] == _hash);\n  }\n\n  /**\n  @dev 增加新地址，重复的地址返回失败\n   */\n  function insert(hashMap storage self, bytes32 _hash) internal returns (bool) {\n    if (exist(self, _hash)) {\n      return false;\n    }\n\n    self.mapList[_hash] = self.list.push(_hash).sub(1);\n\n    return true;\n  }\n\n  /**\n  @dev 删除地址，相应的下标索引数组自动缩减\n   */\n  function remove(hashMap storage self, bytes32 _hash) internal returns (bool) {\n    if (!exist(self, _hash)) {\n      return false;\n    }\n\n    uint256 row2Del = self.mapList[_hash];\n    bytes32 keyToMove = self.list[self.list.length.sub(1)];\n    self.list[row2Del] = keyToMove;\n    self.mapList[keyToMove] = row2Del;\n    self.list.length = self.list.length.sub(1);\n\n    return true;\n  }\n\n  function count(hashMap storage self) internal view returns (uint256) {\n    return self.list.length;\n  }\n\n  function get(hashMap storage self, uint256 index)\n    internal\n    view\n    returns (bytes32)\n  {\n    require(index < self.list.length, \"index must small than current count\");\n    return self.list[index];\n  }\n\n  /**\n  @dev 从指定位置返回多条（不多于count）地址记录,如果不足则空缺\n   */\n  function getList(\n    hashMap storage self,\n    uint256 from,\n    uint256 _count\n  ) internal view returns (bytes32[] memory) {\n    uint256 _idx = 0;\n    require(_count > 0, \"return number must bigger than 0\");\n    bytes32[] memory res = new bytes32[](_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/HashList.sol",
  "ast": {
    "absolutePath": "/Users/chtian/Documents/01_work/01_develope/jcc/jcc-solidity-utils/contracts/list/HashList.sol",
    "exportedSymbols": {
      "HashList": [
        4016
      ]
    },
    "id": 4017,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 3762,
        "literals": [
          "solidity",
          ">=",
          "0.4",
          ".24"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:25:16"
      },
      {
        "absolutePath": "/Users/chtian/Documents/01_work/01_develope/jcc/jcc-solidity-utils/contracts/math/SafeMath.sol",
        "file": "../math/SafeMath.sol",
        "id": 3763,
        "nodeType": "ImportDirective",
        "scope": 4017,
        "sourceUnit": 5658,
        "src": "27:30:16",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "library",
        "documentation": "@dev 交易列表共通，处理交易列表hash数据，只能顺序增加且不重复",
        "fullyImplemented": true,
        "id": 4016,
        "linearizedBaseContracts": [
          4016
        ],
        "name": "HashList",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "id": 3766,
            "libraryName": {
              "contractScope": null,
              "id": 3764,
              "name": "SafeMath",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 5657,
              "src": "185:8:16",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_SafeMath_$5657",
                "typeString": "library SafeMath"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "179:27:16",
            "typeName": {
              "id": 3765,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "198:7:16",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            }
          },
          {
            "canonicalName": "HashList.hashMap",
            "id": 3774,
            "members": [
              {
                "constant": false,
                "id": 3770,
                "name": "mapList",
                "nodeType": "VariableDeclaration",
                "scope": 3774,
                "src": "231:35:16",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                  "typeString": "mapping(bytes32 => uint256)"
                },
                "typeName": {
                  "id": 3769,
                  "keyType": {
                    "id": 3767,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "239:7:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "Mapping",
                  "src": "231:27:16",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                    "typeString": "mapping(bytes32 => uint256)"
                  },
                  "valueType": {
                    "id": 3768,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "250:7:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3773,
                "name": "list",
                "nodeType": "VariableDeclaration",
                "scope": 3774,
                "src": "272:14:16",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                  "typeString": "bytes32[]"
                },
                "typeName": {
                  "baseType": {
                    "id": 3771,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "272:7:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 3772,
                  "length": null,
                  "nodeType": "ArrayTypeName",
                  "src": "272:9:16",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                    "typeString": "bytes32[]"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "hashMap",
            "nodeType": "StructDefinition",
            "scope": 4016,
            "src": "210:81:16",
            "visibility": "public"
          },
          {
            "body": {
              "id": 3802,
              "nodeType": "Block",
              "src": "390:104:16",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 3787,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3783,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3776,
                          "src": "400:4:16",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_hashMap_$3774_storage_ptr",
                            "typeString": "struct HashList.hashMap storage pointer"
                          }
                        },
                        "id": 3784,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "list",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3773,
                        "src": "400:9:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                          "typeString": "bytes32[] storage ref"
                        }
                      },
                      "id": 3785,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "400:16:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 3786,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "420:1:16",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "400:21:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 3790,
                  "nodeType": "IfStatement",
                  "src": "396:39:16",
                  "trueBody": {
                    "expression": {
                      "argumentTypes": null,
                      "hexValue": "66616c7365",
                      "id": 3788,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "430:5:16",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "false"
                    },
                    "functionReturnParameters": 3782,
                    "id": 3789,
                    "nodeType": "Return",
                    "src": "423:12:16"
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "components": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 3799,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3791,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3776,
                              "src": "449:4:16",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_hashMap_$3774_storage_ptr",
                                "typeString": "struct HashList.hashMap storage pointer"
                              }
                            },
                            "id": 3792,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "list",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3773,
                            "src": "449:9:16",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                              "typeString": "bytes32[] storage ref"
                            }
                          },
                          "id": 3797,
                          "indexExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3793,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3776,
                                "src": "459:4:16",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_hashMap_$3774_storage_ptr",
                                  "typeString": "struct HashList.hashMap storage pointer"
                                }
                              },
                              "id": 3794,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "mapList",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 3770,
                              "src": "459:12:16",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                                "typeString": "mapping(bytes32 => uint256)"
                              }
                            },
                            "id": 3796,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 3795,
                              "name": "_hash",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3778,
                              "src": "472:5:16",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "459:19:16",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "449:30:16",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 3798,
                          "name": "_hash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3778,
                          "src": "483:5:16",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "449:39:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "id": 3800,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "448:41:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 3782,
                  "id": 3801,
                  "nodeType": "Return",
                  "src": "441:48:16"
                }
              ]
            },
            "documentation": null,
            "id": 3803,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "exist",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3779,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3776,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 3803,
                  "src": "310:20:16",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_hashMap_$3774_storage_ptr",
                    "typeString": "struct HashList.hashMap"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 3775,
                    "name": "hashMap",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 3774,
                    "src": "310:7:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_hashMap_$3774_storage_ptr",
                      "typeString": "struct HashList.hashMap"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3778,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 3803,
                  "src": "332:13:16",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3777,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "332:7:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "309:37:16"
            },
            "payable": false,
            "returnParameters": {
              "id": 3782,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3781,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3803,
                  "src": "382:4:16",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 3780,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "382:4:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "381:6:16"
            },
            "scope": 4016,
            "src": "295:199:16",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3837,
              "nodeType": "Block",
              "src": "640:136:16",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3813,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3805,
                        "src": "656:4:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_hashMap_$3774_storage_ptr",
                          "typeString": "struct HashList.hashMap storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3814,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3807,
                        "src": "662:5:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_hashMap_$3774_storage_ptr",
                          "typeString": "struct HashList.hashMap storage pointer"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 3812,
                      "name": "exist",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3803,
                      "src": "650:5:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_hashMap_$3774_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                        "typeString": "function (struct HashList.hashMap storage pointer,bytes32) view returns (bool)"
                      }
                    },
                    "id": 3815,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "650:18:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 3819,
                  "nodeType": "IfStatement",
                  "src": "646:51:16",
                  "trueBody": {
                    "id": 3818,
                    "nodeType": "Block",
                    "src": "670:27:16",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "hexValue": "66616c7365",
                          "id": 3816,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "685:5:16",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "false"
                        },
                        "functionReturnParameters": 3811,
                        "id": 3817,
                        "nodeType": "Return",
                        "src": "678:12:16"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3833,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3820,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3805,
                          "src": "703:4:16",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_hashMap_$3774_storage_ptr",
                            "typeString": "struct HashList.hashMap storage pointer"
                          }
                        },
                        "id": 3823,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "mapList",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3770,
                        "src": "703:12:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                          "typeString": "mapping(bytes32 => uint256)"
                        }
                      },
                      "id": 3824,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 3822,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3807,
                        "src": "716:5:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "703:19:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "31",
                          "id": 3831,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "751:1:16",
                          "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,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 3828,
                              "name": "_hash",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3807,
                              "src": "740:5:16",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3825,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3805,
                                "src": "725:4:16",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_hashMap_$3774_storage_ptr",
                                  "typeString": "struct HashList.hashMap storage pointer"
                                }
                              },
                              "id": 3826,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "list",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 3773,
                              "src": "725:9:16",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                "typeString": "bytes32[] storage ref"
                              }
                            },
                            "id": 3827,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "push",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "725:14:16",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_arraypush_nonpayable$_t_bytes32_$returns$_t_uint256_$",
                              "typeString": "function (bytes32) returns (uint256)"
                            }
                          },
                          "id": 3829,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "725:21:16",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 3830,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sub",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 5611,
                        "src": "725:25:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 3832,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "725:28:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "703:50:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3834,
                  "nodeType": "ExpressionStatement",
                  "src": "703:50:16"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "74727565",
                    "id": 3835,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "767:4:16",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "true"
                  },
                  "functionReturnParameters": 3811,
                  "id": 3836,
                  "nodeType": "Return",
                  "src": "760:11:16"
                }
              ]
            },
            "documentation": "@dev 增加新地址，重复的地址返回失败",
            "id": 3838,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "insert",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3808,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3805,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 3838,
                  "src": "579:20:16",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_hashMap_$3774_storage_ptr",
                    "typeString": "struct HashList.hashMap"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 3804,
                    "name": "hashMap",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 3774,
                    "src": "579:7:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_hashMap_$3774_storage_ptr",
                      "typeString": "struct HashList.hashMap"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3807,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 3838,
                  "src": "601:13:16",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3806,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "601:7:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "578:37:16"
            },
            "payable": false,
            "returnParameters": {
              "id": 3811,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3810,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3838,
                  "src": "634:4:16",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 3809,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "634:4:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "633:6:16"
            },
            "scope": 4016,
            "src": "563:213:16",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3906,
              "nodeType": "Block",
              "src": "931:307:16",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "id": 3851,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "!",
                    "prefix": true,
                    "src": "941:19:16",
                    "subExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 3848,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3840,
                          "src": "948:4:16",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_hashMap_$3774_storage_ptr",
                            "typeString": "struct HashList.hashMap storage pointer"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 3849,
                          "name": "_hash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3842,
                          "src": "954:5:16",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_hashMap_$3774_storage_ptr",
                            "typeString": "struct HashList.hashMap storage pointer"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 3847,
                        "name": "exist",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3803,
                        "src": "942:5:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_hashMap_$3774_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                          "typeString": "function (struct HashList.hashMap storage pointer,bytes32) view returns (bool)"
                        }
                      },
                      "id": 3850,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "942:18:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 3855,
                  "nodeType": "IfStatement",
                  "src": "937:52:16",
                  "trueBody": {
                    "id": 3854,
                    "nodeType": "Block",
                    "src": "962:27:16",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "hexValue": "66616c7365",
                          "id": 3852,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "977:5:16",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "false"
                        },
                        "functionReturnParameters": 3846,
                        "id": 3853,
                        "nodeType": "Return",
                        "src": "970:12:16"
                      }
                    ]
                  }
                },
                {
                  "assignments": [
                    3857
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3857,
                      "name": "row2Del",
                      "nodeType": "VariableDeclaration",
                      "scope": 3907,
                      "src": "995:15:16",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3856,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "995:7:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3862,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3858,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3840,
                        "src": "1013:4:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_hashMap_$3774_storage_ptr",
                          "typeString": "struct HashList.hashMap storage pointer"
                        }
                      },
                      "id": 3859,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "mapList",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3770,
                      "src": "1013:12:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                        "typeString": "mapping(bytes32 => uint256)"
                      }
                    },
                    "id": 3861,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 3860,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3842,
                      "src": "1026:5:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "1013:19:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "995:37:16"
                },
                {
                  "assignments": [
                    3864
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3864,
                      "name": "keyToMove",
                      "nodeType": "VariableDeclaration",
                      "scope": 3907,
                      "src": "1038:17:16",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 3863,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "1038:7:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3874,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3865,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3840,
                        "src": "1058:4:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_hashMap_$3774_storage_ptr",
                          "typeString": "struct HashList.hashMap storage pointer"
                        }
                      },
                      "id": 3866,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "list",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3773,
                      "src": "1058:9:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                        "typeString": "bytes32[] storage ref"
                      }
                    },
                    "id": 3873,
                    "indexExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "31",
                          "id": 3871,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1089:1:16",
                          "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": 3867,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3840,
                              "src": "1068:4:16",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_hashMap_$3774_storage_ptr",
                                "typeString": "struct HashList.hashMap storage pointer"
                              }
                            },
                            "id": 3868,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "list",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3773,
                            "src": "1068:9:16",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                              "typeString": "bytes32[] storage ref"
                            }
                          },
                          "id": 3869,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "1068:16:16",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 3870,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sub",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 5611,
                        "src": "1068:20:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 3872,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1068:23:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "1058:34:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1038:54:16"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3881,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3875,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3840,
                          "src": "1098:4:16",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_hashMap_$3774_storage_ptr",
                            "typeString": "struct HashList.hashMap storage pointer"
                          }
                        },
                        "id": 3878,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "list",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3773,
                        "src": "1098:9:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                          "typeString": "bytes32[] storage ref"
                        }
                      },
                      "id": 3879,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 3877,
                        "name": "row2Del",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3857,
                        "src": "1108:7:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1098:18:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 3880,
                      "name": "keyToMove",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3864,
                      "src": "1119:9:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "1098:30:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 3882,
                  "nodeType": "ExpressionStatement",
                  "src": "1098:30:16"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3889,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3883,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3840,
                          "src": "1134:4:16",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_hashMap_$3774_storage_ptr",
                            "typeString": "struct HashList.hashMap storage pointer"
                          }
                        },
                        "id": 3886,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "mapList",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3770,
                        "src": "1134:12:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                          "typeString": "mapping(bytes32 => uint256)"
                        }
                      },
                      "id": 3887,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 3885,
                        "name": "keyToMove",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3864,
                        "src": "1147:9:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1134:23:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 3888,
                      "name": "row2Del",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3857,
                      "src": "1160:7:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1134:33:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3890,
                  "nodeType": "ExpressionStatement",
                  "src": "1134:33:16"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3902,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3891,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3840,
                          "src": "1173:4:16",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_hashMap_$3774_storage_ptr",
                            "typeString": "struct HashList.hashMap storage pointer"
                          }
                        },
                        "id": 3894,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "list",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3773,
                        "src": "1173:9:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                          "typeString": "bytes32[] storage ref"
                        }
                      },
                      "id": 3895,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "1173:16:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "31",
                          "id": 3900,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1213:1:16",
                          "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": 3896,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3840,
                              "src": "1192:4:16",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_hashMap_$3774_storage_ptr",
                                "typeString": "struct HashList.hashMap storage pointer"
                              }
                            },
                            "id": 3897,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "list",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3773,
                            "src": "1192:9:16",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                              "typeString": "bytes32[] storage ref"
                            }
                          },
                          "id": 3898,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "1192:16:16",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 3899,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sub",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 5611,
                        "src": "1192:20:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 3901,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1192:23:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1173:42:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3903,
                  "nodeType": "ExpressionStatement",
                  "src": "1173:42:16"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "74727565",
                    "id": 3904,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "1229:4:16",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "true"
                  },
                  "functionReturnParameters": 3846,
                  "id": 3905,
                  "nodeType": "Return",
                  "src": "1222:11:16"
                }
              ]
            },
            "documentation": "@dev 删除地址，相应的下标索引数组自动缩减",
            "id": 3907,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "remove",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3843,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3840,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 3907,
                  "src": "870:20:16",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_hashMap_$3774_storage_ptr",
                    "typeString": "struct HashList.hashMap"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 3839,
                    "name": "hashMap",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 3774,
                    "src": "870:7:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_hashMap_$3774_storage_ptr",
                      "typeString": "struct HashList.hashMap"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3842,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 3907,
                  "src": "892:13:16",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3841,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "892:7:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "869:37:16"
            },
            "payable": false,
            "returnParameters": {
              "id": 3846,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3845,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3907,
                  "src": "925:4:16",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 3844,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "925:4:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "924:6:16"
            },
            "scope": 4016,
            "src": "854:384:16",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3918,
              "nodeType": "Block",
              "src": "1311:34:16",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3914,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3909,
                        "src": "1324:4:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_hashMap_$3774_storage_ptr",
                          "typeString": "struct HashList.hashMap storage pointer"
                        }
                      },
                      "id": 3915,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "list",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3773,
                      "src": "1324:9:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                        "typeString": "bytes32[] storage ref"
                      }
                    },
                    "id": 3916,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "length",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "1324:16:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 3913,
                  "id": 3917,
                  "nodeType": "Return",
                  "src": "1317:23:16"
                }
              ]
            },
            "documentation": null,
            "id": 3919,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "count",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3910,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3909,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 3919,
                  "src": "1257:20:16",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_hashMap_$3774_storage_ptr",
                    "typeString": "struct HashList.hashMap"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 3908,
                    "name": "hashMap",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 3774,
                    "src": "1257:7:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_hashMap_$3774_storage_ptr",
                      "typeString": "struct HashList.hashMap"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1256:22:16"
            },
            "payable": false,
            "returnParameters": {
              "id": 3913,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3912,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3919,
                  "src": "1302:7:16",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3911,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1302:7:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1301:9:16"
            },
            "scope": 4016,
            "src": "1242:103:16",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3942,
              "nodeType": "Block",
              "src": "1445:112:16",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3933,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 3929,
                          "name": "index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3923,
                          "src": "1459:5:16",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3930,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3921,
                              "src": "1467:4:16",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_hashMap_$3774_storage_ptr",
                                "typeString": "struct HashList.hashMap storage pointer"
                              }
                            },
                            "id": 3931,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "list",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3773,
                            "src": "1467:9:16",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                              "typeString": "bytes32[] storage ref"
                            }
                          },
                          "id": 3932,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "1467:16:16",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "1459:24:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "696e646578206d75737420736d616c6c207468616e2063757272656e7420636f756e74",
                        "id": 3934,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1485:37:16",
                        "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": 3928,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9044,
                        9045
                      ],
                      "referencedDeclaration": 9045,
                      "src": "1451:7:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3935,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1451:72:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3936,
                  "nodeType": "ExpressionStatement",
                  "src": "1451:72:16"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3937,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3921,
                        "src": "1536:4:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_hashMap_$3774_storage_ptr",
                          "typeString": "struct HashList.hashMap storage pointer"
                        }
                      },
                      "id": 3938,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "list",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3773,
                      "src": "1536:9:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                        "typeString": "bytes32[] storage ref"
                      }
                    },
                    "id": 3940,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 3939,
                      "name": "index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3923,
                      "src": "1546:5:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "1536:16:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 3927,
                  "id": 3941,
                  "nodeType": "Return",
                  "src": "1529:23:16"
                }
              ]
            },
            "documentation": null,
            "id": 3943,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "get",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3924,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3921,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 3943,
                  "src": "1362:20:16",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_hashMap_$3774_storage_ptr",
                    "typeString": "struct HashList.hashMap"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 3920,
                    "name": "hashMap",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 3774,
                    "src": "1362:7:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_hashMap_$3774_storage_ptr",
                      "typeString": "struct HashList.hashMap"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3923,
                  "name": "index",
                  "nodeType": "VariableDeclaration",
                  "scope": 3943,
                  "src": "1384:13:16",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3922,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1384:7:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1361:37:16"
            },
            "payable": false,
            "returnParameters": {
              "id": 3927,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3926,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3943,
                  "src": "1434:7:16",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3925,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1434:7:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1433:9:16"
            },
            "scope": 4016,
            "src": "1349:208:16",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 4014,
              "nodeType": "Block",
              "src": "1788:328:16",
              "statements": [
                {
                  "assignments": [
                    3956
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3956,
                      "name": "_idx",
                      "nodeType": "VariableDeclaration",
                      "scope": 4015,
                      "src": "1794:12:16",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3955,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "1794:7:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3958,
                  "initialValue": {
                    "argumentTypes": null,
                    "hexValue": "30",
                    "id": 3957,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "1809:1:16",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_0_by_1",
                      "typeString": "int_const 0"
                    },
                    "value": "0"
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1794:16:16"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3962,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 3960,
                          "name": "_count",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3949,
                          "src": "1824:6:16",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 3961,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1833:1:16",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "1824:10:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "72657475726e206e756d626572206d75737420626967676572207468616e2030",
                        "id": 3963,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1836:34:16",
                        "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": 3959,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9044,
                        9045
                      ],
                      "referencedDeclaration": 9045,
                      "src": "1816:7:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3964,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1816:55:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3965,
                  "nodeType": "ExpressionStatement",
                  "src": "1816:55:16"
                },
                {
                  "assignments": [
                    3969
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3969,
                      "name": "res",
                      "nodeType": "VariableDeclaration",
                      "scope": 4015,
                      "src": "1877:20:16",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                        "typeString": "bytes32[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 3967,
                          "name": "bytes32",
                          "nodeType": "ElementaryTypeName",
                          "src": "1877:7:16",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 3968,
                        "length": null,
                        "nodeType": "ArrayTypeName",
                        "src": "1877:9:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                          "typeString": "bytes32[]"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3975,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3973,
                        "name": "_count",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3949,
                        "src": "1914:6:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 3972,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "1900:13:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_$",
                        "typeString": "function (uint256) pure returns (bytes32[] memory)"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 3970,
                          "name": "bytes32",
                          "nodeType": "ElementaryTypeName",
                          "src": "1904:7:16",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 3971,
                        "length": null,
                        "nodeType": "ArrayTypeName",
                        "src": "1904:9:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                          "typeString": "bytes32[]"
                        }
                      }
                    },
                    "id": 3974,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1900:21:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory",
                      "typeString": "bytes32[] memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1877:44:16"
                },
                {
                  "body": {
                    "id": 4010,
                    "nodeType": "Block",
                    "src": "1978:117:16",
                    "statements": [
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 3990,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 3988,
                            "name": "_idx",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3956,
                            "src": "1990:4:16",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 3989,
                            "name": "_count",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3949,
                            "src": "1998:6:16",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "1990:14:16",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": null,
                        "id": 3993,
                        "nodeType": "IfStatement",
                        "src": "1986:44:16",
                        "trueBody": {
                          "id": 3992,
                          "nodeType": "Block",
                          "src": "2006:24:16",
                          "statements": [
                            {
                              "id": 3991,
                              "nodeType": "Break",
                              "src": "2016:5:16"
                            }
                          ]
                        }
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 4001,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 3994,
                              "name": "res",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3969,
                              "src": "2038:3:16",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                "typeString": "bytes32[] memory"
                              }
                            },
                            "id": 3996,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 3995,
                              "name": "_idx",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3956,
                              "src": "2042:4:16",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "2038:9:16",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3997,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3945,
                                "src": "2050:4:16",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_hashMap_$3774_storage_ptr",
                                  "typeString": "struct HashList.hashMap storage pointer"
                                }
                              },
                              "id": 3998,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "list",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 3773,
                              "src": "2050:9:16",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                "typeString": "bytes32[] storage ref"
                              }
                            },
                            "id": 4000,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 3999,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3977,
                              "src": "2060:1:16",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "2050:12:16",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "2038:24:16",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 4002,
                        "nodeType": "ExpressionStatement",
                        "src": "2038:24:16"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 4008,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 4003,
                            "name": "_idx",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3956,
                            "src": "2070:4:16",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "31",
                                "id": 4006,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "2086:1:16",
                                "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": 4004,
                                "name": "_idx",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3956,
                                "src": "2077:4:16",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 4005,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "add",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 5635,
                              "src": "2077:8:16",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                              }
                            },
                            "id": 4007,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "2077:11:16",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "2070:18:16",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 4009,
                        "nodeType": "ExpressionStatement",
                        "src": "2070:18:16"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 3984,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 3980,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3977,
                      "src": "1951:1:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3981,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3945,
                          "src": "1955:4:16",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_hashMap_$3774_storage_ptr",
                            "typeString": "struct HashList.hashMap storage pointer"
                          }
                        },
                        "id": 3982,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "list",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3773,
                        "src": "1955:9:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                          "typeString": "bytes32[] storage ref"
                        }
                      },
                      "id": 3983,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "1955:16:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1951:20:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 4011,
                  "initializationExpression": {
                    "assignments": [
                      3977
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 3977,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 4015,
                        "src": "1933:9:16",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 3976,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1933:7:16",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 3979,
                    "initialValue": {
                      "argumentTypes": null,
                      "id": 3978,
                      "name": "from",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3947,
                      "src": "1945:4:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "1933:16:16"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 3986,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "1973:3:16",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 3985,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3977,
                        "src": "1973:1:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 3987,
                    "nodeType": "ExpressionStatement",
                    "src": "1973:3:16"
                  },
                  "nodeType": "ForStatement",
                  "src": "1928:167:16"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4012,
                    "name": "res",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3969,
                    "src": "2108:3:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                      "typeString": "bytes32[] memory"
                    }
                  },
                  "functionReturnParameters": 3954,
                  "id": 4013,
                  "nodeType": "Return",
                  "src": "2101:10:16"
                }
              ]
            },
            "documentation": "@dev 从指定位置返回多条（不多于count）地址记录,如果不足则空缺",
            "id": 4015,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getList",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3950,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3945,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 4015,
                  "src": "1684:20:16",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_hashMap_$3774_storage_ptr",
                    "typeString": "struct HashList.hashMap"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 3944,
                    "name": "hashMap",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 3774,
                    "src": "1684:7:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_hashMap_$3774_storage_ptr",
                      "typeString": "struct HashList.hashMap"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3947,
                  "name": "from",
                  "nodeType": "VariableDeclaration",
                  "scope": 4015,
                  "src": "1710:12:16",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3946,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1710:7:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3949,
                  "name": "_count",
                  "nodeType": "VariableDeclaration",
                  "scope": 4015,
                  "src": "1728:14:16",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3948,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1728:7:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1678:68:16"
            },
            "payable": false,
            "returnParameters": {
              "id": 3954,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3953,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4015,
                  "src": "1770:9:16",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 3951,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "1770:7:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 3952,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "1770:9:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1769:18:16"
            },
            "scope": 4016,
            "src": "1662:454:16",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          }
        ],
        "scope": 4017,
        "src": "158:1960:16"
      }
    ],
    "src": "0:2119:16"
  },
  "legacyAST": {
    "absolutePath": "/Users/chtian/Documents/01_work/01_develope/jcc/jcc-solidity-utils/contracts/list/HashList.sol",
    "exportedSymbols": {
      "HashList": [
        4016
      ]
    },
    "id": 4017,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 3762,
        "literals": [
          "solidity",
          ">=",
          "0.4",
          ".24"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:25:16"
      },
      {
        "absolutePath": "/Users/chtian/Documents/01_work/01_develope/jcc/jcc-solidity-utils/contracts/math/SafeMath.sol",
        "file": "../math/SafeMath.sol",
        "id": 3763,
        "nodeType": "ImportDirective",
        "scope": 4017,
        "sourceUnit": 5658,
        "src": "27:30:16",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "library",
        "documentation": "@dev 交易列表共通，处理交易列表hash数据，只能顺序增加且不重复",
        "fullyImplemented": true,
        "id": 4016,
        "linearizedBaseContracts": [
          4016
        ],
        "name": "HashList",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "id": 3766,
            "libraryName": {
              "contractScope": null,
              "id": 3764,
              "name": "SafeMath",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 5657,
              "src": "185:8:16",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_SafeMath_$5657",
                "typeString": "library SafeMath"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "179:27:16",
            "typeName": {
              "id": 3765,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "198:7:16",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            }
          },
          {
            "canonicalName": "HashList.hashMap",
            "id": 3774,
            "members": [
              {
                "constant": false,
                "id": 3770,
                "name": "mapList",
                "nodeType": "VariableDeclaration",
                "scope": 3774,
                "src": "231:35:16",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                  "typeString": "mapping(bytes32 => uint256)"
                },
                "typeName": {
                  "id": 3769,
                  "keyType": {
                    "id": 3767,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "239:7:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "Mapping",
                  "src": "231:27:16",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                    "typeString": "mapping(bytes32 => uint256)"
                  },
                  "valueType": {
                    "id": 3768,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "250:7:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3773,
                "name": "list",
                "nodeType": "VariableDeclaration",
                "scope": 3774,
                "src": "272:14:16",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                  "typeString": "bytes32[]"
                },
                "typeName": {
                  "baseType": {
                    "id": 3771,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "272:7:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 3772,
                  "length": null,
                  "nodeType": "ArrayTypeName",
                  "src": "272:9:16",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                    "typeString": "bytes32[]"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "hashMap",
            "nodeType": "StructDefinition",
            "scope": 4016,
            "src": "210:81:16",
            "visibility": "public"
          },
          {
            "body": {
              "id": 3802,
              "nodeType": "Block",
              "src": "390:104:16",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 3787,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3783,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3776,
                          "src": "400:4:16",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_hashMap_$3774_storage_ptr",
                            "typeString": "struct HashList.hashMap storage pointer"
                          }
                        },
                        "id": 3784,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "list",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3773,
                        "src": "400:9:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                          "typeString": "bytes32[] storage ref"
                        }
                      },
                      "id": 3785,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "400:16:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 3786,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "420:1:16",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "400:21:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 3790,
                  "nodeType": "IfStatement",
                  "src": "396:39:16",
                  "trueBody": {
                    "expression": {
                      "argumentTypes": null,
                      "hexValue": "66616c7365",
                      "id": 3788,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "430:5:16",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "false"
                    },
                    "functionReturnParameters": 3782,
                    "id": 3789,
                    "nodeType": "Return",
                    "src": "423:12:16"
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "components": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 3799,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3791,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3776,
                              "src": "449:4:16",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_hashMap_$3774_storage_ptr",
                                "typeString": "struct HashList.hashMap storage pointer"
                              }
                            },
                            "id": 3792,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "list",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3773,
                            "src": "449:9:16",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                              "typeString": "bytes32[] storage ref"
                            }
                          },
                          "id": 3797,
                          "indexExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3793,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3776,
                                "src": "459:4:16",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_hashMap_$3774_storage_ptr",
                                  "typeString": "struct HashList.hashMap storage pointer"
                                }
                              },
                              "id": 3794,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "mapList",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 3770,
                              "src": "459:12:16",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                                "typeString": "mapping(bytes32 => uint256)"
                              }
                            },
                            "id": 3796,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 3795,
                              "name": "_hash",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3778,
                              "src": "472:5:16",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "459:19:16",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "449:30:16",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 3798,
                          "name": "_hash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3778,
                          "src": "483:5:16",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "449:39:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "id": 3800,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "448:41:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 3782,
                  "id": 3801,
                  "nodeType": "Return",
                  "src": "441:48:16"
                }
              ]
            },
            "documentation": null,
            "id": 3803,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "exist",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3779,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3776,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 3803,
                  "src": "310:20:16",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_hashMap_$3774_storage_ptr",
                    "typeString": "struct HashList.hashMap"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 3775,
                    "name": "hashMap",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 3774,
                    "src": "310:7:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_hashMap_$3774_storage_ptr",
                      "typeString": "struct HashList.hashMap"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3778,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 3803,
                  "src": "332:13:16",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3777,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "332:7:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "309:37:16"
            },
            "payable": false,
            "returnParameters": {
              "id": 3782,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3781,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3803,
                  "src": "382:4:16",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 3780,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "382:4:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "381:6:16"
            },
            "scope": 4016,
            "src": "295:199:16",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3837,
              "nodeType": "Block",
              "src": "640:136:16",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3813,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3805,
                        "src": "656:4:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_hashMap_$3774_storage_ptr",
                          "typeString": "struct HashList.hashMap storage pointer"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3814,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3807,
                        "src": "662:5:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_hashMap_$3774_storage_ptr",
                          "typeString": "struct HashList.hashMap storage pointer"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 3812,
                      "name": "exist",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3803,
                      "src": "650:5:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_hashMap_$3774_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                        "typeString": "function (struct HashList.hashMap storage pointer,bytes32) view returns (bool)"
                      }
                    },
                    "id": 3815,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "650:18:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 3819,
                  "nodeType": "IfStatement",
                  "src": "646:51:16",
                  "trueBody": {
                    "id": 3818,
                    "nodeType": "Block",
                    "src": "670:27:16",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "hexValue": "66616c7365",
                          "id": 3816,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "685:5:16",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "false"
                        },
                        "functionReturnParameters": 3811,
                        "id": 3817,
                        "nodeType": "Return",
                        "src": "678:12:16"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3833,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3820,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3805,
                          "src": "703:4:16",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_hashMap_$3774_storage_ptr",
                            "typeString": "struct HashList.hashMap storage pointer"
                          }
                        },
                        "id": 3823,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "mapList",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3770,
                        "src": "703:12:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                          "typeString": "mapping(bytes32 => uint256)"
                        }
                      },
                      "id": 3824,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 3822,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3807,
                        "src": "716:5:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "703:19:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "31",
                          "id": 3831,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "751:1:16",
                          "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,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 3828,
                              "name": "_hash",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3807,
                              "src": "740:5:16",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3825,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3805,
                                "src": "725:4:16",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_hashMap_$3774_storage_ptr",
                                  "typeString": "struct HashList.hashMap storage pointer"
                                }
                              },
                              "id": 3826,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "list",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 3773,
                              "src": "725:9:16",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                "typeString": "bytes32[] storage ref"
                              }
                            },
                            "id": 3827,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "push",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "725:14:16",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_arraypush_nonpayable$_t_bytes32_$returns$_t_uint256_$",
                              "typeString": "function (bytes32) returns (uint256)"
                            }
                          },
                          "id": 3829,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "725:21:16",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 3830,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sub",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 5611,
                        "src": "725:25:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 3832,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "725:28:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "703:50:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3834,
                  "nodeType": "ExpressionStatement",
                  "src": "703:50:16"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "74727565",
                    "id": 3835,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "767:4:16",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "true"
                  },
                  "functionReturnParameters": 3811,
                  "id": 3836,
                  "nodeType": "Return",
                  "src": "760:11:16"
                }
              ]
            },
            "documentation": "@dev 增加新地址，重复的地址返回失败",
            "id": 3838,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "insert",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3808,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3805,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 3838,
                  "src": "579:20:16",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_hashMap_$3774_storage_ptr",
                    "typeString": "struct HashList.hashMap"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 3804,
                    "name": "hashMap",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 3774,
                    "src": "579:7:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_hashMap_$3774_storage_ptr",
                      "typeString": "struct HashList.hashMap"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3807,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 3838,
                  "src": "601:13:16",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3806,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "601:7:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "578:37:16"
            },
            "payable": false,
            "returnParameters": {
              "id": 3811,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3810,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3838,
                  "src": "634:4:16",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 3809,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "634:4:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "633:6:16"
            },
            "scope": 4016,
            "src": "563:213:16",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3906,
              "nodeType": "Block",
              "src": "931:307:16",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "id": 3851,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "!",
                    "prefix": true,
                    "src": "941:19:16",
                    "subExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 3848,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3840,
                          "src": "948:4:16",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_hashMap_$3774_storage_ptr",
                            "typeString": "struct HashList.hashMap storage pointer"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 3849,
                          "name": "_hash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3842,
                          "src": "954:5:16",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_hashMap_$3774_storage_ptr",
                            "typeString": "struct HashList.hashMap storage pointer"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 3847,
                        "name": "exist",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3803,
                        "src": "942:5:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_hashMap_$3774_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                          "typeString": "function (struct HashList.hashMap storage pointer,bytes32) view returns (bool)"
                        }
                      },
                      "id": 3850,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "942:18:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 3855,
                  "nodeType": "IfStatement",
                  "src": "937:52:16",
                  "trueBody": {
                    "id": 3854,
                    "nodeType": "Block",
                    "src": "962:27:16",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "hexValue": "66616c7365",
                          "id": 3852,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "977:5:16",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "false"
                        },
                        "functionReturnParameters": 3846,
                        "id": 3853,
                        "nodeType": "Return",
                        "src": "970:12:16"
                      }
                    ]
                  }
                },
                {
                  "assignments": [
                    3857
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3857,
                      "name": "row2Del",
                      "nodeType": "VariableDeclaration",
                      "scope": 3907,
                      "src": "995:15:16",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3856,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "995:7:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3862,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3858,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3840,
                        "src": "1013:4:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_hashMap_$3774_storage_ptr",
                          "typeString": "struct HashList.hashMap storage pointer"
                        }
                      },
                      "id": 3859,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "mapList",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3770,
                      "src": "1013:12:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                        "typeString": "mapping(bytes32 => uint256)"
                      }
                    },
                    "id": 3861,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 3860,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3842,
                      "src": "1026:5:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "1013:19:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "995:37:16"
                },
                {
                  "assignments": [
                    3864
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3864,
                      "name": "keyToMove",
                      "nodeType": "VariableDeclaration",
                      "scope": 3907,
                      "src": "1038:17:16",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 3863,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "1038:7:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3874,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3865,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3840,
                        "src": "1058:4:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_hashMap_$3774_storage_ptr",
                          "typeString": "struct HashList.hashMap storage pointer"
                        }
                      },
                      "id": 3866,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "list",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3773,
                      "src": "1058:9:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                        "typeString": "bytes32[] storage ref"
                      }
                    },
                    "id": 3873,
                    "indexExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "31",
                          "id": 3871,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1089:1:16",
                          "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": 3867,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3840,
                              "src": "1068:4:16",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_hashMap_$3774_storage_ptr",
                                "typeString": "struct HashList.hashMap storage pointer"
                              }
                            },
                            "id": 3868,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "list",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3773,
                            "src": "1068:9:16",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                              "typeString": "bytes32[] storage ref"
                            }
                          },
                          "id": 3869,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "1068:16:16",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 3870,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sub",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 5611,
                        "src": "1068:20:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 3872,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1068:23:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "1058:34:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1038:54:16"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3881,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3875,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3840,
                          "src": "1098:4:16",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_hashMap_$3774_storage_ptr",
                            "typeString": "struct HashList.hashMap storage pointer"
                          }
                        },
                        "id": 3878,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "list",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3773,
                        "src": "1098:9:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                          "typeString": "bytes32[] storage ref"
                        }
                      },
                      "id": 3879,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 3877,
                        "name": "row2Del",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3857,
                        "src": "1108:7:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1098:18:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 3880,
                      "name": "keyToMove",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3864,
                      "src": "1119:9:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "1098:30:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 3882,
                  "nodeType": "ExpressionStatement",
                  "src": "1098:30:16"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3889,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3883,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3840,
                          "src": "1134:4:16",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_hashMap_$3774_storage_ptr",
                            "typeString": "struct HashList.hashMap storage pointer"
                          }
                        },
                        "id": 3886,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "mapList",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3770,
                        "src": "1134:12:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                          "typeString": "mapping(bytes32 => uint256)"
                        }
                      },
                      "id": 3887,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 3885,
                        "name": "keyToMove",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3864,
                        "src": "1147:9:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1134:23:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 3888,
                      "name": "row2Del",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3857,
                      "src": "1160:7:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1134:33:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3890,
                  "nodeType": "ExpressionStatement",
                  "src": "1134:33:16"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3902,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3891,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3840,
                          "src": "1173:4:16",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_hashMap_$3774_storage_ptr",
                            "typeString": "struct HashList.hashMap storage pointer"
                          }
                        },
                        "id": 3894,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "list",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3773,
                        "src": "1173:9:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                          "typeString": "bytes32[] storage ref"
                        }
                      },
                      "id": 3895,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "1173:16:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "31",
                          "id": 3900,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1213:1:16",
                          "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": 3896,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3840,
                              "src": "1192:4:16",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_hashMap_$3774_storage_ptr",
                                "typeString": "struct HashList.hashMap storage pointer"
                              }
                            },
                            "id": 3897,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "list",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3773,
                            "src": "1192:9:16",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                              "typeString": "bytes32[] storage ref"
                            }
                          },
                          "id": 3898,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "1192:16:16",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 3899,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sub",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 5611,
                        "src": "1192:20:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 3901,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1192:23:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1173:42:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3903,
                  "nodeType": "ExpressionStatement",
                  "src": "1173:42:16"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "74727565",
                    "id": 3904,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "1229:4:16",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "true"
                  },
                  "functionReturnParameters": 3846,
                  "id": 3905,
                  "nodeType": "Return",
                  "src": "1222:11:16"
                }
              ]
            },
            "documentation": "@dev 删除地址，相应的下标索引数组自动缩减",
            "id": 3907,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "remove",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3843,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3840,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 3907,
                  "src": "870:20:16",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_hashMap_$3774_storage_ptr",
                    "typeString": "struct HashList.hashMap"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 3839,
                    "name": "hashMap",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 3774,
                    "src": "870:7:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_hashMap_$3774_storage_ptr",
                      "typeString": "struct HashList.hashMap"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3842,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 3907,
                  "src": "892:13:16",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3841,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "892:7:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "869:37:16"
            },
            "payable": false,
            "returnParameters": {
              "id": 3846,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3845,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3907,
                  "src": "925:4:16",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 3844,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "925:4:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "924:6:16"
            },
            "scope": 4016,
            "src": "854:384:16",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3918,
              "nodeType": "Block",
              "src": "1311:34:16",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3914,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3909,
                        "src": "1324:4:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_hashMap_$3774_storage_ptr",
                          "typeString": "struct HashList.hashMap storage pointer"
                        }
                      },
                      "id": 3915,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "list",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3773,
                      "src": "1324:9:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                        "typeString": "bytes32[] storage ref"
                      }
                    },
                    "id": 3916,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "length",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "1324:16:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 3913,
                  "id": 3917,
                  "nodeType": "Return",
                  "src": "1317:23:16"
                }
              ]
            },
            "documentation": null,
            "id": 3919,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "count",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3910,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3909,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 3919,
                  "src": "1257:20:16",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_hashMap_$3774_storage_ptr",
                    "typeString": "struct HashList.hashMap"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 3908,
                    "name": "hashMap",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 3774,
                    "src": "1257:7:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_hashMap_$3774_storage_ptr",
                      "typeString": "struct HashList.hashMap"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1256:22:16"
            },
            "payable": false,
            "returnParameters": {
              "id": 3913,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3912,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3919,
                  "src": "1302:7:16",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3911,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1302:7:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1301:9:16"
            },
            "scope": 4016,
            "src": "1242:103:16",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3942,
              "nodeType": "Block",
              "src": "1445:112:16",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3933,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 3929,
                          "name": "index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3923,
                          "src": "1459:5:16",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3930,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3921,
                              "src": "1467:4:16",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_hashMap_$3774_storage_ptr",
                                "typeString": "struct HashList.hashMap storage pointer"
                              }
                            },
                            "id": 3931,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "list",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3773,
                            "src": "1467:9:16",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                              "typeString": "bytes32[] storage ref"
                            }
                          },
                          "id": 3932,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "1467:16:16",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "1459:24:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "696e646578206d75737420736d616c6c207468616e2063757272656e7420636f756e74",
                        "id": 3934,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1485:37:16",
                        "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": 3928,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9044,
                        9045
                      ],
                      "referencedDeclaration": 9045,
                      "src": "1451:7:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3935,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1451:72:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3936,
                  "nodeType": "ExpressionStatement",
                  "src": "1451:72:16"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3937,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3921,
                        "src": "1536:4:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_hashMap_$3774_storage_ptr",
                          "typeString": "struct HashList.hashMap storage pointer"
                        }
                      },
                      "id": 3938,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "list",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3773,
                      "src": "1536:9:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                        "typeString": "bytes32[] storage ref"
                      }
                    },
                    "id": 3940,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 3939,
                      "name": "index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3923,
                      "src": "1546:5:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "1536:16:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 3927,
                  "id": 3941,
                  "nodeType": "Return",
                  "src": "1529:23:16"
                }
              ]
            },
            "documentation": null,
            "id": 3943,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "get",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3924,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3921,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 3943,
                  "src": "1362:20:16",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_hashMap_$3774_storage_ptr",
                    "typeString": "struct HashList.hashMap"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 3920,
                    "name": "hashMap",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 3774,
                    "src": "1362:7:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_hashMap_$3774_storage_ptr",
                      "typeString": "struct HashList.hashMap"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3923,
                  "name": "index",
                  "nodeType": "VariableDeclaration",
                  "scope": 3943,
                  "src": "1384:13:16",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3922,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1384:7:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1361:37:16"
            },
            "payable": false,
            "returnParameters": {
              "id": 3927,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3926,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3943,
                  "src": "1434:7:16",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3925,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1434:7:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1433:9:16"
            },
            "scope": 4016,
            "src": "1349:208:16",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 4014,
              "nodeType": "Block",
              "src": "1788:328:16",
              "statements": [
                {
                  "assignments": [
                    3956
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3956,
                      "name": "_idx",
                      "nodeType": "VariableDeclaration",
                      "scope": 4015,
                      "src": "1794:12:16",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3955,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "1794:7:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3958,
                  "initialValue": {
                    "argumentTypes": null,
                    "hexValue": "30",
                    "id": 3957,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "1809:1:16",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_0_by_1",
                      "typeString": "int_const 0"
                    },
                    "value": "0"
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1794:16:16"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3962,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 3960,
                          "name": "_count",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3949,
                          "src": "1824:6:16",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 3961,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1833:1:16",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "1824:10:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "72657475726e206e756d626572206d75737420626967676572207468616e2030",
                        "id": 3963,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1836:34:16",
                        "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": 3959,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9044,
                        9045
                      ],
                      "referencedDeclaration": 9045,
                      "src": "1816:7:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3964,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1816:55:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3965,
                  "nodeType": "ExpressionStatement",
                  "src": "1816:55:16"
                },
                {
                  "assignments": [
                    3969
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3969,
                      "name": "res",
                      "nodeType": "VariableDeclaration",
                      "scope": 4015,
                      "src": "1877:20:16",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                        "typeString": "bytes32[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 3967,
                          "name": "bytes32",
                          "nodeType": "ElementaryTypeName",
                          "src": "1877:7:16",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 3968,
                        "length": null,
                        "nodeType": "ArrayTypeName",
                        "src": "1877:9:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                          "typeString": "bytes32[]"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3975,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3973,
                        "name": "_count",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3949,
                        "src": "1914:6:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 3972,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "1900:13:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_$",
                        "typeString": "function (uint256) pure returns (bytes32[] memory)"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 3970,
                          "name": "bytes32",
                          "nodeType": "ElementaryTypeName",
                          "src": "1904:7:16",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 3971,
                        "length": null,
                        "nodeType": "ArrayTypeName",
                        "src": "1904:9:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                          "typeString": "bytes32[]"
                        }
                      }
                    },
                    "id": 3974,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1900:21:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory",
                      "typeString": "bytes32[] memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1877:44:16"
                },
                {
                  "body": {
                    "id": 4010,
                    "nodeType": "Block",
                    "src": "1978:117:16",
                    "statements": [
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 3990,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 3988,
                            "name": "_idx",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3956,
                            "src": "1990:4:16",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 3989,
                            "name": "_count",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3949,
                            "src": "1998:6:16",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "1990:14:16",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": null,
                        "id": 3993,
                        "nodeType": "IfStatement",
                        "src": "1986:44:16",
                        "trueBody": {
                          "id": 3992,
                          "nodeType": "Block",
                          "src": "2006:24:16",
                          "statements": [
                            {
                              "id": 3991,
                              "nodeType": "Break",
                              "src": "2016:5:16"
                            }
                          ]
                        }
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 4001,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 3994,
                              "name": "res",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3969,
                              "src": "2038:3:16",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                "typeString": "bytes32[] memory"
                              }
                            },
                            "id": 3996,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 3995,
                              "name": "_idx",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3956,
                              "src": "2042:4:16",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "2038:9:16",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3997,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3945,
                                "src": "2050:4:16",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_hashMap_$3774_storage_ptr",
                                  "typeString": "struct HashList.hashMap storage pointer"
                                }
                              },
                              "id": 3998,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "list",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 3773,
                              "src": "2050:9:16",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                "typeString": "bytes32[] storage ref"
                              }
                            },
                            "id": 4000,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 3999,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3977,
                              "src": "2060:1:16",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "2050:12:16",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "2038:24:16",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 4002,
                        "nodeType": "ExpressionStatement",
                        "src": "2038:24:16"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 4008,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 4003,
                            "name": "_idx",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3956,
                            "src": "2070:4:16",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "31",
                                "id": 4006,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "2086:1:16",
                                "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": 4004,
                                "name": "_idx",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3956,
                                "src": "2077:4:16",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 4005,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "add",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 5635,
                              "src": "2077:8:16",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                              }
                            },
                            "id": 4007,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "2077:11:16",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "2070:18:16",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 4009,
                        "nodeType": "ExpressionStatement",
                        "src": "2070:18:16"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 3984,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 3980,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3977,
                      "src": "1951:1:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3981,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3945,
                          "src": "1955:4:16",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_hashMap_$3774_storage_ptr",
                            "typeString": "struct HashList.hashMap storage pointer"
                          }
                        },
                        "id": 3982,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "list",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3773,
                        "src": "1955:9:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                          "typeString": "bytes32[] storage ref"
                        }
                      },
                      "id": 3983,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "1955:16:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1951:20:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 4011,
                  "initializationExpression": {
                    "assignments": [
                      3977
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 3977,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 4015,
                        "src": "1933:9:16",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 3976,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1933:7:16",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 3979,
                    "initialValue": {
                      "argumentTypes": null,
                      "id": 3978,
                      "name": "from",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3947,
                      "src": "1945:4:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "1933:16:16"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 3986,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "1973:3:16",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 3985,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3977,
                        "src": "1973:1:16",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 3987,
                    "nodeType": "ExpressionStatement",
                    "src": "1973:3:16"
                  },
                  "nodeType": "ForStatement",
                  "src": "1928:167:16"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4012,
                    "name": "res",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3969,
                    "src": "2108:3:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                      "typeString": "bytes32[] memory"
                    }
                  },
                  "functionReturnParameters": 3954,
                  "id": 4013,
                  "nodeType": "Return",
                  "src": "2101:10:16"
                }
              ]
            },
            "documentation": "@dev 从指定位置返回多条（不多于count）地址记录,如果不足则空缺",
            "id": 4015,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getList",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3950,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3945,
                  "name": "self",
                  "nodeType": "VariableDeclaration",
                  "scope": 4015,
                  "src": "1684:20:16",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_hashMap_$3774_storage_ptr",
                    "typeString": "struct HashList.hashMap"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 3944,
                    "name": "hashMap",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 3774,
                    "src": "1684:7:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_hashMap_$3774_storage_ptr",
                      "typeString": "struct HashList.hashMap"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3947,
                  "name": "from",
                  "nodeType": "VariableDeclaration",
                  "scope": 4015,
                  "src": "1710:12:16",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3946,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1710:7:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3949,
                  "name": "_count",
                  "nodeType": "VariableDeclaration",
                  "scope": 4015,
                  "src": "1728:14:16",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3948,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1728:7:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1678:68:16"
            },
            "payable": false,
            "returnParameters": {
              "id": 3954,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3953,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4015,
                  "src": "1770:9:16",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 3951,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "1770:7:16",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 3952,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "1770:9:16",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1769:18:16"
            },
            "scope": 4016,
            "src": "1662:454:16",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          }
        ],
        "scope": 4017,
        "src": "158:1960:16"
      }
    ],
    "src": "0:2119:16"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.24+commit.e67f0147.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.0.16",
  "updatedAt": "2021-03-06T09:30:01.000Z",
  "devdoc": {
    "methods": {}
  },
  "userdoc": {
    "methods": {}
  }
}