{
  "contractName": "IndexedBytesIteratorInteractive",
  "abi": [],
  "bytecode": "0x6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a723058206f485daa122c63dd16729d3661f630f09052200ce1b495d2df9443809748a8660029",
  "deployedBytecode": "0x6080604052600080fd00a165627a7a723058206f485daa122c63dd16729d3661f630f09052200ce1b495d2df9443809748a8660029",
  "sourceMap": "107:7384:79:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;107:7384:79;;;;;;;",
  "deployedSourceMap": "107:7384:79:-;;;;;",
  "source": "pragma solidity ^0.4.19;\n\n/**\n  @title Indexed Bytes Iterator Interactive\n  @author DigixGlobal Pte Ltd\n*/\ncontract IndexedBytesIteratorInteractive {\n\n  /**\n    @notice Lists an indexed Bytes collection from start or end\n    @param _collection_index Index of the Collection to list\n    @param _count Total number of Bytes items to return\n    @param _function_first Function that returns the First Bytes item in the list\n    @param _function_last Function that returns the last Bytes item in the list\n    @param _function_next Function that returns the Next Bytes item in the list\n    @param _function_previous Function that returns previous Bytes item in the list\n    @param _from_start whether to read from start (or end) of the list\n    @return {\"_bytes_items\" : \"Collection of reversed Bytes list\"}\n  */\n  function list_indexed_bytesarray(bytes32 _collection_index, uint256 _count,\n                              function (bytes32) external constant returns (bytes32) _function_first,\n                              function (bytes32) external constant returns (bytes32) _function_last,\n                              function (bytes32, bytes32) external constant returns (bytes32) _function_next,\n                              function (bytes32, bytes32) external constant returns (bytes32) _function_previous,\n                              bool _from_start)\n           internal\n           constant\n           returns (bytes32[] _indexed_bytes_items)\n  {\n    if (_from_start) {\n      _indexed_bytes_items = private_list_indexed_bytes_from_bytes(_collection_index, _function_first(_collection_index), _count, true, _function_last, _function_next);\n    } else {\n      _indexed_bytes_items = private_list_indexed_bytes_from_bytes(_collection_index, _function_last(_collection_index), _count, true, _function_first, _function_previous);\n    }\n  }\n\n  /**\n    @notice Lists an indexed Bytes collection from some `_current_item`, going forwards or backwards depending on `_from_start`\n    @param _collection_index Index of the Collection to list\n    @param _current_item The current Item\n    @param _count Total number of Bytes items to return\n    @param _function_first Function that returns the First Bytes item in the list\n    @param _function_last Function that returns the last Bytes item in the list\n    @param _function_next Function that returns the Next Bytes item in the list\n    @param _function_previous Function that returns previous Bytes item in the list\n    @param _from_start whether to read in the forwards ( or backwards) direction\n    @return {\"_bytes_items\" :\"Collection/list of Bytes\"}\n  */\n  function list_indexed_bytesarray_from(bytes32 _collection_index, bytes32 _current_item, uint256 _count,\n                                function (bytes32) external constant returns (bytes32) _function_first,\n                                function (bytes32) external constant returns (bytes32) _function_last,\n                                function (bytes32, bytes32) external constant returns (bytes32) _function_next,\n                                function (bytes32, bytes32) external constant returns (bytes32) _function_previous,\n                                bool _from_start)\n           internal\n           constant\n           returns (bytes32[] _indexed_bytes_items)\n  {\n    if (_from_start) {\n      _indexed_bytes_items = private_list_indexed_bytes_from_bytes(_collection_index, _current_item, _count, false, _function_last, _function_next);\n    } else {\n      _indexed_bytes_items = private_list_indexed_bytes_from_bytes(_collection_index, _current_item, _count, false, _function_first, _function_previous);\n    }\n  }\n\n  /**\n    @notice a private function to lists an indexed Bytes collection starting from some `_current_item` (which could be included or excluded), in the forwards or backwards direction\n    @param _collection_index Index of the Collection to list\n    @param _current_item The item where we start reading from the list\n    @param _count Total number of Bytes items to return\n    @param _including_current Whether the `_current_item` should be included in the result\n    @param _function_last Function that returns the bytes where we stop reading more bytes\n    @param _function_next Function that returns the next bytes to read after another bytes (could be backwards or forwards in the physical collection)\n    @return {\"_bytes_items\" :\"Collection/list of Bytes\"}\n  */\n  function private_list_indexed_bytes_from_bytes(bytes32 _collection_index, bytes32 _current_item, uint256 _count, bool _including_current,\n                                         function (bytes32) external constant returns (bytes32) _function_last,\n                                         function (bytes32, bytes32) external constant returns (bytes32) _function_next)\n           private\n           constant\n           returns (bytes32[] _indexed_bytes_items)\n  {\n    uint256 _i;\n    uint256 _real_count = 0;\n    bytes32 _last_item;\n\n    _last_item = _function_last(_collection_index);\n    if (_count == 0 || _last_item == bytes32(0x0)) {  // if count is 0 or the collection is empty, returns empty array\n      _indexed_bytes_items = new bytes32[](0);\n    } else {\n      bytes32[] memory _items_temp = new bytes32[](_count);\n      bytes32 _this_item;\n      if (_including_current) {\n        _items_temp[0] = _current_item;\n        _real_count = 1;\n      }\n      _this_item = _current_item;\n      for (_i = _real_count; (_i < _count) && (_this_item != _last_item);_i++) {\n        _this_item = _function_next(_collection_index, _this_item);\n        if (_this_item != bytes32(0x0)) {\n          _real_count++;\n          _items_temp[_i] = _this_item;\n        }\n      }\n\n      _indexed_bytes_items = new bytes32[](_real_count);\n      for(_i = 0;_i < _real_count;_i++) {\n        _indexed_bytes_items[_i] = _items_temp[_i];\n      }\n    }\n  }\n\n\n  // old function, DEPRECATED\n  /*function list_indexed_bytes_from_bytes(bytes32 _collection_index, bytes32 _current_item, uint256 _count,\n                                         function (bytes32) external constant returns (bytes32) _function_last,\n                                         function (bytes32, bytes32) external constant returns (bytes32) _function_next)\n           private\n           constant\n           returns (bytes32[] _indexed_bytes_items)\n  {\n    uint256 _i;\n    uint256 _real_count = 0;\n    if (_count == 0) {\n      _indexed_bytes_items = new bytes32[](0);\n    } else {\n      bytes32[] memory _items_temp = new bytes32[](_count);\n\n      bytes32 _start_item;\n      bytes32 _last_item;\n\n      _last_item = _function_last(_collection_index);\n\n      if (_last_item != _current_item) {\n        _start_item = _function_next(_collection_index, _current_item);\n        if (_start_item != bytes32(0x0)) {\n          _items_temp[0] = _start_item;\n          _real_count = 1;\n          for(_i = 1;(_i <= (_count - 1)) && (_start_item != _last_item);_i++) {\n            _start_item = _function_next(_collection_index, _start_item);\n            if (_start_item != bytes32(0x0)) {\n              _real_count++;\n              _items_temp[_i] = _start_item;\n            }\n          }\n          _indexed_bytes_items = new bytes32[](_real_count);\n          for(_i = 0;_i <= (_real_count - 1);_i++) {\n            _indexed_bytes_items[_i] = _items_temp[_i];\n          }\n        } else {\n          _indexed_bytes_items = new bytes32[](0);\n        }\n      } else {\n        _indexed_bytes_items = new bytes32[](0);\n      }\n    }\n  }*/\n\n\n}\n",
  "sourcePath": "@digix/solidity-collections/contracts/abstract/IndexedBytesIteratorInteractive.sol",
  "ast": {
    "absolutePath": "@digix/solidity-collections/contracts/abstract/IndexedBytesIteratorInteractive.sol",
    "exportedSymbols": {
      "IndexedBytesIteratorInteractive": [
        22474
      ]
    },
    "id": 22475,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 22149,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".19"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:79"
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": "@title Indexed Bytes Iterator Interactive\n@author DigixGlobal Pte Ltd",
        "fullyImplemented": true,
        "id": 22474,
        "linearizedBaseContracts": [
          22474
        ],
        "name": "IndexedBytesIteratorInteractive",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "body": {
              "id": 22227,
              "nodeType": "Block",
              "src": "1454:389:79",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "id": 22197,
                    "name": "_from_start",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 22191,
                    "src": "1464:11:79",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 22225,
                    "nodeType": "Block",
                    "src": "1659:180:79",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 22223,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 22212,
                            "name": "_indexed_bytes_items",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22195,
                            "src": "1667:20:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 22214,
                                "name": "_collection_index",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22151,
                                "src": "1728:17:79",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 22216,
                                    "name": "_collection_index",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 22151,
                                    "src": "1762:17:79",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  ],
                                  "id": 22215,
                                  "name": "_function_last",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 22169,
                                  "src": "1747:14:79",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                                    "typeString": "function (bytes32) view external returns (bytes32)"
                                  }
                                },
                                "id": 22217,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "1747:33:79",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 22218,
                                "name": "_count",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22153,
                                "src": "1782:6:79",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "hexValue": "74727565",
                                "id": 22219,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "bool",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "1790:4:79",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                "value": "true"
                              },
                              {
                                "argumentTypes": null,
                                "id": 22220,
                                "name": "_function_first",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22161,
                                "src": "1796:15:79",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                                  "typeString": "function (bytes32) view external returns (bytes32)"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 22221,
                                "name": "_function_previous",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22189,
                                "src": "1813:18:79",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
                                  "typeString": "function (bytes32,bytes32) view external returns (bytes32)"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                {
                                  "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                                  "typeString": "function (bytes32) view external returns (bytes32)"
                                },
                                {
                                  "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
                                  "typeString": "function (bytes32,bytes32) view external returns (bytes32)"
                                }
                              ],
                              "id": 22213,
                              "name": "private_list_indexed_bytes_from_bytes",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22473,
                              "src": "1690:37:79",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_bool_$_t_function_external_view$_t_bytes32_$returns$_t_bytes32_$_$_t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$",
                                "typeString": "function (bytes32,bytes32,uint256,bool,function (bytes32) view external returns (bytes32),function (bytes32,bytes32) view external returns (bytes32)) view returns (bytes32[] memory)"
                              }
                            },
                            "id": 22222,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1690:142:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "src": "1667:165:79",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                            "typeString": "bytes32[] memory"
                          }
                        },
                        "id": 22224,
                        "nodeType": "ExpressionStatement",
                        "src": "1667:165:79"
                      }
                    ]
                  },
                  "id": 22226,
                  "nodeType": "IfStatement",
                  "src": "1460:379:79",
                  "trueBody": {
                    "id": 22211,
                    "nodeType": "Block",
                    "src": "1477:176:79",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 22209,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 22198,
                            "name": "_indexed_bytes_items",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22195,
                            "src": "1485:20:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 22200,
                                "name": "_collection_index",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22151,
                                "src": "1546:17:79",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 22202,
                                    "name": "_collection_index",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 22151,
                                    "src": "1581:17:79",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  ],
                                  "id": 22201,
                                  "name": "_function_first",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 22161,
                                  "src": "1565:15:79",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                                    "typeString": "function (bytes32) view external returns (bytes32)"
                                  }
                                },
                                "id": 22203,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "1565:34:79",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 22204,
                                "name": "_count",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22153,
                                "src": "1601:6:79",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "hexValue": "74727565",
                                "id": 22205,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "bool",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "1609:4:79",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                "value": "true"
                              },
                              {
                                "argumentTypes": null,
                                "id": 22206,
                                "name": "_function_last",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22169,
                                "src": "1615:14:79",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                                  "typeString": "function (bytes32) view external returns (bytes32)"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 22207,
                                "name": "_function_next",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22179,
                                "src": "1631:14:79",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
                                  "typeString": "function (bytes32,bytes32) view external returns (bytes32)"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                {
                                  "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                                  "typeString": "function (bytes32) view external returns (bytes32)"
                                },
                                {
                                  "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
                                  "typeString": "function (bytes32,bytes32) view external returns (bytes32)"
                                }
                              ],
                              "id": 22199,
                              "name": "private_list_indexed_bytes_from_bytes",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22473,
                              "src": "1508:37:79",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_bool_$_t_function_external_view$_t_bytes32_$returns$_t_bytes32_$_$_t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$",
                                "typeString": "function (bytes32,bytes32,uint256,bool,function (bytes32) view external returns (bytes32),function (bytes32,bytes32) view external returns (bytes32)) view returns (bytes32[] memory)"
                              }
                            },
                            "id": 22208,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1508:138:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "src": "1485:161:79",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                            "typeString": "bytes32[] memory"
                          }
                        },
                        "id": 22210,
                        "nodeType": "ExpressionStatement",
                        "src": "1485:161:79"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": "@notice Lists an indexed Bytes collection from start or end\n@param _collection_index Index of the Collection to list\n@param _count Total number of Bytes items to return\n@param _function_first Function that returns the First Bytes item in the list\n@param _function_last Function that returns the last Bytes item in the list\n@param _function_next Function that returns the Next Bytes item in the list\n@param _function_previous Function that returns previous Bytes item in the list\n@param _from_start whether to read from start (or end) of the list\n@return {\"_bytes_items\" : \"Collection of reversed Bytes list\"}",
            "id": 22228,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "list_indexed_bytesarray",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22192,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22151,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 22228,
                  "src": "842:25:79",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 22150,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "842:7:79",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22153,
                  "name": "_count",
                  "nodeType": "VariableDeclaration",
                  "scope": 22228,
                  "src": "869:14:79",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22152,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "869:7:79",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22161,
                  "name": "_function_first",
                  "nodeType": "VariableDeclaration",
                  "scope": 22228,
                  "src": "915:70:79",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                    "typeString": "function (bytes32) view external returns (bytes32)"
                  },
                  "typeName": {
                    "id": 22160,
                    "isDeclaredConst": true,
                    "nodeType": "FunctionTypeName",
                    "parameterTypes": {
                      "id": 22156,
                      "nodeType": "ParameterList",
                      "parameters": [
                        {
                          "constant": false,
                          "id": 22155,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 22228,
                          "src": "925:7:79",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 22154,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "925:7:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "src": "924:9:79"
                    },
                    "payable": false,
                    "returnParameterTypes": {
                      "id": 22159,
                      "nodeType": "ParameterList",
                      "parameters": [
                        {
                          "constant": false,
                          "id": 22158,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 22228,
                          "src": "961:7:79",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 22157,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "961:7:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "src": "960:9:79"
                    },
                    "src": "915:70:79",
                    "stateMutability": "view",
                    "typeDescriptions": {
                      "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                      "typeString": "function (bytes32) view external returns (bytes32)"
                    },
                    "visibility": "external"
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22169,
                  "name": "_function_last",
                  "nodeType": "VariableDeclaration",
                  "scope": 22228,
                  "src": "1017:69:79",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                    "typeString": "function (bytes32) view external returns (bytes32)"
                  },
                  "typeName": {
                    "id": 22168,
                    "isDeclaredConst": true,
                    "nodeType": "FunctionTypeName",
                    "parameterTypes": {
                      "id": 22164,
                      "nodeType": "ParameterList",
                      "parameters": [
                        {
                          "constant": false,
                          "id": 22163,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 22228,
                          "src": "1027:7:79",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 22162,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "1027:7:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "src": "1026:9:79"
                    },
                    "payable": false,
                    "returnParameterTypes": {
                      "id": 22167,
                      "nodeType": "ParameterList",
                      "parameters": [
                        {
                          "constant": false,
                          "id": 22166,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 22228,
                          "src": "1063:7:79",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 22165,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "1063:7:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "src": "1062:9:79"
                    },
                    "src": "1017:69:79",
                    "stateMutability": "view",
                    "typeDescriptions": {
                      "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                      "typeString": "function (bytes32) view external returns (bytes32)"
                    },
                    "visibility": "external"
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22179,
                  "name": "_function_next",
                  "nodeType": "VariableDeclaration",
                  "scope": 22228,
                  "src": "1118:78:79",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
                    "typeString": "function (bytes32,bytes32) view external returns (bytes32)"
                  },
                  "typeName": {
                    "id": 22178,
                    "isDeclaredConst": true,
                    "nodeType": "FunctionTypeName",
                    "parameterTypes": {
                      "id": 22174,
                      "nodeType": "ParameterList",
                      "parameters": [
                        {
                          "constant": false,
                          "id": 22171,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 22228,
                          "src": "1128:7:79",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 22170,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "1128:7:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        },
                        {
                          "constant": false,
                          "id": 22173,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 22228,
                          "src": "1137:7:79",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 22172,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "1137:7:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "src": "1127:18:79"
                    },
                    "payable": false,
                    "returnParameterTypes": {
                      "id": 22177,
                      "nodeType": "ParameterList",
                      "parameters": [
                        {
                          "constant": false,
                          "id": 22176,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 22228,
                          "src": "1173:7:79",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 22175,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "1173:7:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "src": "1172:9:79"
                    },
                    "src": "1118:78:79",
                    "stateMutability": "view",
                    "typeDescriptions": {
                      "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
                      "typeString": "function (bytes32,bytes32) view external returns (bytes32)"
                    },
                    "visibility": "external"
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22189,
                  "name": "_function_previous",
                  "nodeType": "VariableDeclaration",
                  "scope": 22228,
                  "src": "1228:82:79",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
                    "typeString": "function (bytes32,bytes32) view external returns (bytes32)"
                  },
                  "typeName": {
                    "id": 22188,
                    "isDeclaredConst": true,
                    "nodeType": "FunctionTypeName",
                    "parameterTypes": {
                      "id": 22184,
                      "nodeType": "ParameterList",
                      "parameters": [
                        {
                          "constant": false,
                          "id": 22181,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 22228,
                          "src": "1238:7:79",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 22180,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "1238:7:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        },
                        {
                          "constant": false,
                          "id": 22183,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 22228,
                          "src": "1247:7:79",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 22182,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "1247:7:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "src": "1237:18:79"
                    },
                    "payable": false,
                    "returnParameterTypes": {
                      "id": 22187,
                      "nodeType": "ParameterList",
                      "parameters": [
                        {
                          "constant": false,
                          "id": 22186,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 22228,
                          "src": "1283:7:79",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 22185,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "1283:7:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "src": "1282:9:79"
                    },
                    "src": "1228:82:79",
                    "stateMutability": "view",
                    "typeDescriptions": {
                      "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
                      "typeString": "function (bytes32,bytes32) view external returns (bytes32)"
                    },
                    "visibility": "external"
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22191,
                  "name": "_from_start",
                  "nodeType": "VariableDeclaration",
                  "scope": 22228,
                  "src": "1342:16:79",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 22190,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1342:4:79",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "841:518:79"
            },
            "payable": false,
            "returnParameters": {
              "id": 22196,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22195,
                  "name": "_indexed_bytes_items",
                  "nodeType": "VariableDeclaration",
                  "scope": 22228,
                  "src": "1420:30:79",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 22193,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "1420:7:79",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 22194,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "1420:9:79",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1419:32:79"
            },
            "scope": 22474,
            "src": "809:1034:79",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 22304,
              "nodeType": "Block",
              "src": "3292:350:79",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "id": 22278,
                    "name": "_from_start",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 22272,
                    "src": "3302:11:79",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 22302,
                    "nodeType": "Block",
                    "src": "3477:161:79",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 22300,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 22291,
                            "name": "_indexed_bytes_items",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22276,
                            "src": "3485:20:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 22293,
                                "name": "_collection_index",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22230,
                                "src": "3546:17:79",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 22294,
                                "name": "_current_item",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22232,
                                "src": "3565:13:79",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 22295,
                                "name": "_count",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22234,
                                "src": "3580:6:79",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "hexValue": "66616c7365",
                                "id": 22296,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "bool",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "3588:5:79",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                "value": "false"
                              },
                              {
                                "argumentTypes": null,
                                "id": 22297,
                                "name": "_function_first",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22242,
                                "src": "3595:15:79",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                                  "typeString": "function (bytes32) view external returns (bytes32)"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 22298,
                                "name": "_function_previous",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22270,
                                "src": "3612:18:79",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
                                  "typeString": "function (bytes32,bytes32) view external returns (bytes32)"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                {
                                  "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                                  "typeString": "function (bytes32) view external returns (bytes32)"
                                },
                                {
                                  "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
                                  "typeString": "function (bytes32,bytes32) view external returns (bytes32)"
                                }
                              ],
                              "id": 22292,
                              "name": "private_list_indexed_bytes_from_bytes",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22473,
                              "src": "3508:37:79",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_bool_$_t_function_external_view$_t_bytes32_$returns$_t_bytes32_$_$_t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$",
                                "typeString": "function (bytes32,bytes32,uint256,bool,function (bytes32) view external returns (bytes32),function (bytes32,bytes32) view external returns (bytes32)) view returns (bytes32[] memory)"
                              }
                            },
                            "id": 22299,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3508:123:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "src": "3485:146:79",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                            "typeString": "bytes32[] memory"
                          }
                        },
                        "id": 22301,
                        "nodeType": "ExpressionStatement",
                        "src": "3485:146:79"
                      }
                    ]
                  },
                  "id": 22303,
                  "nodeType": "IfStatement",
                  "src": "3298:340:79",
                  "trueBody": {
                    "id": 22290,
                    "nodeType": "Block",
                    "src": "3315:156:79",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 22288,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 22279,
                            "name": "_indexed_bytes_items",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22276,
                            "src": "3323:20:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 22281,
                                "name": "_collection_index",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22230,
                                "src": "3384:17:79",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 22282,
                                "name": "_current_item",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22232,
                                "src": "3403:13:79",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 22283,
                                "name": "_count",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22234,
                                "src": "3418:6:79",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "hexValue": "66616c7365",
                                "id": 22284,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "bool",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "3426:5:79",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                "value": "false"
                              },
                              {
                                "argumentTypes": null,
                                "id": 22285,
                                "name": "_function_last",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22250,
                                "src": "3433:14:79",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                                  "typeString": "function (bytes32) view external returns (bytes32)"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 22286,
                                "name": "_function_next",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22260,
                                "src": "3449:14:79",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
                                  "typeString": "function (bytes32,bytes32) view external returns (bytes32)"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                {
                                  "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                                  "typeString": "function (bytes32) view external returns (bytes32)"
                                },
                                {
                                  "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
                                  "typeString": "function (bytes32,bytes32) view external returns (bytes32)"
                                }
                              ],
                              "id": 22280,
                              "name": "private_list_indexed_bytes_from_bytes",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22473,
                              "src": "3346:37:79",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_bool_$_t_function_external_view$_t_bytes32_$returns$_t_bytes32_$_$_t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$",
                                "typeString": "function (bytes32,bytes32,uint256,bool,function (bytes32) view external returns (bytes32),function (bytes32,bytes32) view external returns (bytes32)) view returns (bytes32[] memory)"
                              }
                            },
                            "id": 22287,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3346:118:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "src": "3323:141:79",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                            "typeString": "bytes32[] memory"
                          }
                        },
                        "id": 22289,
                        "nodeType": "ExpressionStatement",
                        "src": "3323:141:79"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": "@notice Lists an indexed Bytes collection from some `_current_item`, going forwards or backwards depending on `_from_start`\n@param _collection_index Index of the Collection to list\n@param _current_item The current Item\n@param _count Total number of Bytes items to return\n@param _function_first Function that returns the First Bytes item in the list\n@param _function_last Function that returns the last Bytes item in the list\n@param _function_next Function that returns the Next Bytes item in the list\n@param _function_previous Function that returns previous Bytes item in the list\n@param _from_start whether to read in the forwards ( or backwards) direction\n@return {\"_bytes_items\" :\"Collection/list of Bytes\"}",
            "id": 22305,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "list_indexed_bytesarray_from",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22273,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22230,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 22305,
                  "src": "2647:25:79",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 22229,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2647:7:79",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22232,
                  "name": "_current_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 22305,
                  "src": "2674:21:79",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 22231,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2674:7:79",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22234,
                  "name": "_count",
                  "nodeType": "VariableDeclaration",
                  "scope": 22305,
                  "src": "2697:14:79",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22233,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2697:7:79",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22242,
                  "name": "_function_first",
                  "nodeType": "VariableDeclaration",
                  "scope": 22305,
                  "src": "2745:70:79",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                    "typeString": "function (bytes32) view external returns (bytes32)"
                  },
                  "typeName": {
                    "id": 22241,
                    "isDeclaredConst": true,
                    "nodeType": "FunctionTypeName",
                    "parameterTypes": {
                      "id": 22237,
                      "nodeType": "ParameterList",
                      "parameters": [
                        {
                          "constant": false,
                          "id": 22236,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 22305,
                          "src": "2755:7:79",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 22235,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "2755:7:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "src": "2754:9:79"
                    },
                    "payable": false,
                    "returnParameterTypes": {
                      "id": 22240,
                      "nodeType": "ParameterList",
                      "parameters": [
                        {
                          "constant": false,
                          "id": 22239,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 22305,
                          "src": "2791:7:79",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 22238,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "2791:7:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "src": "2790:9:79"
                    },
                    "src": "2745:70:79",
                    "stateMutability": "view",
                    "typeDescriptions": {
                      "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                      "typeString": "function (bytes32) view external returns (bytes32)"
                    },
                    "visibility": "external"
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22250,
                  "name": "_function_last",
                  "nodeType": "VariableDeclaration",
                  "scope": 22305,
                  "src": "2849:69:79",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                    "typeString": "function (bytes32) view external returns (bytes32)"
                  },
                  "typeName": {
                    "id": 22249,
                    "isDeclaredConst": true,
                    "nodeType": "FunctionTypeName",
                    "parameterTypes": {
                      "id": 22245,
                      "nodeType": "ParameterList",
                      "parameters": [
                        {
                          "constant": false,
                          "id": 22244,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 22305,
                          "src": "2859:7:79",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 22243,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "2859:7:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "src": "2858:9:79"
                    },
                    "payable": false,
                    "returnParameterTypes": {
                      "id": 22248,
                      "nodeType": "ParameterList",
                      "parameters": [
                        {
                          "constant": false,
                          "id": 22247,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 22305,
                          "src": "2895:7:79",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 22246,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "2895:7:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "src": "2894:9:79"
                    },
                    "src": "2849:69:79",
                    "stateMutability": "view",
                    "typeDescriptions": {
                      "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                      "typeString": "function (bytes32) view external returns (bytes32)"
                    },
                    "visibility": "external"
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22260,
                  "name": "_function_next",
                  "nodeType": "VariableDeclaration",
                  "scope": 22305,
                  "src": "2952:78:79",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
                    "typeString": "function (bytes32,bytes32) view external returns (bytes32)"
                  },
                  "typeName": {
                    "id": 22259,
                    "isDeclaredConst": true,
                    "nodeType": "FunctionTypeName",
                    "parameterTypes": {
                      "id": 22255,
                      "nodeType": "ParameterList",
                      "parameters": [
                        {
                          "constant": false,
                          "id": 22252,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 22305,
                          "src": "2962:7:79",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 22251,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "2962:7:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        },
                        {
                          "constant": false,
                          "id": 22254,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 22305,
                          "src": "2971:7:79",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 22253,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "2971:7:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "src": "2961:18:79"
                    },
                    "payable": false,
                    "returnParameterTypes": {
                      "id": 22258,
                      "nodeType": "ParameterList",
                      "parameters": [
                        {
                          "constant": false,
                          "id": 22257,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 22305,
                          "src": "3007:7:79",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 22256,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "3007:7:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "src": "3006:9:79"
                    },
                    "src": "2952:78:79",
                    "stateMutability": "view",
                    "typeDescriptions": {
                      "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
                      "typeString": "function (bytes32,bytes32) view external returns (bytes32)"
                    },
                    "visibility": "external"
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22270,
                  "name": "_function_previous",
                  "nodeType": "VariableDeclaration",
                  "scope": 22305,
                  "src": "3064:82:79",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
                    "typeString": "function (bytes32,bytes32) view external returns (bytes32)"
                  },
                  "typeName": {
                    "id": 22269,
                    "isDeclaredConst": true,
                    "nodeType": "FunctionTypeName",
                    "parameterTypes": {
                      "id": 22265,
                      "nodeType": "ParameterList",
                      "parameters": [
                        {
                          "constant": false,
                          "id": 22262,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 22305,
                          "src": "3074:7:79",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 22261,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "3074:7:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        },
                        {
                          "constant": false,
                          "id": 22264,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 22305,
                          "src": "3083:7:79",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 22263,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "3083:7:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "src": "3073:18:79"
                    },
                    "payable": false,
                    "returnParameterTypes": {
                      "id": 22268,
                      "nodeType": "ParameterList",
                      "parameters": [
                        {
                          "constant": false,
                          "id": 22267,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 22305,
                          "src": "3119:7:79",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 22266,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "3119:7:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "src": "3118:9:79"
                    },
                    "src": "3064:82:79",
                    "stateMutability": "view",
                    "typeDescriptions": {
                      "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
                      "typeString": "function (bytes32,bytes32) view external returns (bytes32)"
                    },
                    "visibility": "external"
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22272,
                  "name": "_from_start",
                  "nodeType": "VariableDeclaration",
                  "scope": 22305,
                  "src": "3180:16:79",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 22271,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "3180:4:79",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2646:551:79"
            },
            "payable": false,
            "returnParameters": {
              "id": 22277,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22276,
                  "name": "_indexed_bytes_items",
                  "nodeType": "VariableDeclaration",
                  "scope": 22305,
                  "src": "3258:30:79",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 22274,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "3258:7:79",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 22275,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "3258:9:79",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3257:32:79"
            },
            "scope": 22474,
            "src": "2609:1033:79",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 22472,
              "nodeType": "Block",
              "src": "4880:971:79",
              "statements": [
                {
                  "assignments": [],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 22338,
                      "name": "_i",
                      "nodeType": "VariableDeclaration",
                      "scope": 22473,
                      "src": "4886:10:79",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 22337,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "4886:7:79",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 22339,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4886:10:79"
                },
                {
                  "assignments": [
                    22341
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 22341,
                      "name": "_real_count",
                      "nodeType": "VariableDeclaration",
                      "scope": 22473,
                      "src": "4902:19:79",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 22340,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "4902:7:79",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 22343,
                  "initialValue": {
                    "argumentTypes": null,
                    "hexValue": "30",
                    "id": 22342,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "4924:1:79",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_0_by_1",
                      "typeString": "int_const 0"
                    },
                    "value": "0"
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4902:23:79"
                },
                {
                  "assignments": [],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 22345,
                      "name": "_last_item",
                      "nodeType": "VariableDeclaration",
                      "scope": 22473,
                      "src": "4931:18:79",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 22344,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "4931:7:79",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 22346,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4931:18:79"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 22351,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 22347,
                      "name": "_last_item",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 22345,
                      "src": "4956:10:79",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 22349,
                          "name": "_collection_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 22307,
                          "src": "4984:17:79",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 22348,
                        "name": "_function_last",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22321,
                        "src": "4969:14:79",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                          "typeString": "function (bytes32) view external returns (bytes32)"
                        }
                      },
                      "id": 22350,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "4969:33:79",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "4956:46:79",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 22352,
                  "nodeType": "ExpressionStatement",
                  "src": "4956:46:79"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 22361,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 22355,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 22353,
                        "name": "_count",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22311,
                        "src": "5012:6:79",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 22354,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5022:1:79",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "src": "5012:11:79",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "||",
                    "rightExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "id": 22360,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 22356,
                        "name": "_last_item",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22345,
                        "src": "5027:10:79",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "307830",
                            "id": 22358,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "5049:3:79",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0x0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 22357,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "5041:7:79",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": "bytes32"
                        },
                        "id": 22359,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5041:12:79",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "src": "5027:26:79",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "5012:41:79",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 22470,
                    "nodeType": "Block",
                    "src": "5181:666:79",
                    "statements": [
                      {
                        "assignments": [
                          22374
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 22374,
                            "name": "_items_temp",
                            "nodeType": "VariableDeclaration",
                            "scope": 22473,
                            "src": "5189:28:79",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[]"
                            },
                            "typeName": {
                              "baseType": {
                                "id": 22372,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "5189:7:79",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "id": 22373,
                              "length": null,
                              "nodeType": "ArrayTypeName",
                              "src": "5189:9:79",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                                "typeString": "bytes32[]"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 22380,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 22378,
                              "name": "_count",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22311,
                              "src": "5234:6:79",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 22377,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "NewExpression",
                            "src": "5220:13:79",
                            "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": 22375,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "5224:7:79",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "id": 22376,
                              "length": null,
                              "nodeType": "ArrayTypeName",
                              "src": "5224:9:79",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                                "typeString": "bytes32[]"
                              }
                            }
                          },
                          "id": 22379,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5220:21:79",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$dyn_memory",
                            "typeString": "bytes32[] memory"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "5189:52:79"
                      },
                      {
                        "assignments": [],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 22382,
                            "name": "_this_item",
                            "nodeType": "VariableDeclaration",
                            "scope": 22473,
                            "src": "5249:18:79",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "typeName": {
                              "id": 22381,
                              "name": "bytes32",
                              "nodeType": "ElementaryTypeName",
                              "src": "5249:7:79",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 22383,
                        "initialValue": null,
                        "nodeType": "VariableDeclarationStatement",
                        "src": "5249:18:79"
                      },
                      {
                        "condition": {
                          "argumentTypes": null,
                          "id": 22384,
                          "name": "_including_current",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 22313,
                          "src": "5279:18:79",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": null,
                        "id": 22396,
                        "nodeType": "IfStatement",
                        "src": "5275:98:79",
                        "trueBody": {
                          "id": 22395,
                          "nodeType": "Block",
                          "src": "5299:74:79",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 22389,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 22385,
                                    "name": "_items_temp",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 22374,
                                    "src": "5309:11:79",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                      "typeString": "bytes32[] memory"
                                    }
                                  },
                                  "id": 22387,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "hexValue": "30",
                                    "id": 22386,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "5321:1:79",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_0_by_1",
                                      "typeString": "int_const 0"
                                    },
                                    "value": "0"
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "5309:14:79",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "id": 22388,
                                  "name": "_current_item",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 22309,
                                  "src": "5326:13:79",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "src": "5309:30:79",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "id": 22390,
                              "nodeType": "ExpressionStatement",
                              "src": "5309:30:79"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 22393,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "id": 22391,
                                  "name": "_real_count",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 22341,
                                  "src": "5349:11:79",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "hexValue": "31",
                                  "id": 22392,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "5363:1:79",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_1_by_1",
                                    "typeString": "int_const 1"
                                  },
                                  "value": "1"
                                },
                                "src": "5349:15:79",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 22394,
                              "nodeType": "ExpressionStatement",
                              "src": "5349:15:79"
                            }
                          ]
                        }
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 22399,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 22397,
                            "name": "_this_item",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22382,
                            "src": "5380:10:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 22398,
                            "name": "_current_item",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22309,
                            "src": "5393:13:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "5380:26:79",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 22400,
                        "nodeType": "ExpressionStatement",
                        "src": "5380:26:79"
                      },
                      {
                        "body": {
                          "id": 22440,
                          "nodeType": "Block",
                          "src": "5487:194:79",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 22422,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "id": 22417,
                                  "name": "_this_item",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 22382,
                                  "src": "5497:10:79",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "id": 22419,
                                      "name": "_collection_index",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 22307,
                                      "src": "5525:17:79",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "id": 22420,
                                      "name": "_this_item",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 22382,
                                      "src": "5544:10:79",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      },
                                      {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    ],
                                    "id": 22418,
                                    "name": "_function_next",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 22331,
                                    "src": "5510:14:79",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
                                      "typeString": "function (bytes32,bytes32) view external returns (bytes32)"
                                    }
                                  },
                                  "id": 22421,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "5510:45:79",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "src": "5497:58:79",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "id": 22423,
                              "nodeType": "ExpressionStatement",
                              "src": "5497:58:79"
                            },
                            {
                              "condition": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                "id": 22428,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 22424,
                                  "name": "_this_item",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 22382,
                                  "src": "5569:10:79",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "!=",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "hexValue": "307830",
                                      "id": 22426,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "5591:3:79",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_0_by_1",
                                        "typeString": "int_const 0"
                                      },
                                      "value": "0x0"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_rational_0_by_1",
                                        "typeString": "int_const 0"
                                      }
                                    ],
                                    "id": 22425,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "5583:7:79",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_bytes32_$",
                                      "typeString": "type(bytes32)"
                                    },
                                    "typeName": "bytes32"
                                  },
                                  "id": 22427,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "5583:12:79",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "src": "5569:26:79",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "falseBody": null,
                              "id": 22439,
                              "nodeType": "IfStatement",
                              "src": "5565:108:79",
                              "trueBody": {
                                "id": 22438,
                                "nodeType": "Block",
                                "src": "5597:76:79",
                                "statements": [
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 22430,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "UnaryOperation",
                                      "operator": "++",
                                      "prefix": false,
                                      "src": "5609:13:79",
                                      "subExpression": {
                                        "argumentTypes": null,
                                        "id": 22429,
                                        "name": "_real_count",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 22341,
                                        "src": "5609:11:79",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "id": 22431,
                                    "nodeType": "ExpressionStatement",
                                    "src": "5609:13:79"
                                  },
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 22436,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftHandSide": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "id": 22432,
                                          "name": "_items_temp",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 22374,
                                          "src": "5634:11:79",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                            "typeString": "bytes32[] memory"
                                          }
                                        },
                                        "id": 22434,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "id": 22433,
                                          "name": "_i",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 22338,
                                          "src": "5646:2:79",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": true,
                                        "nodeType": "IndexAccess",
                                        "src": "5634:15:79",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      },
                                      "nodeType": "Assignment",
                                      "operator": "=",
                                      "rightHandSide": {
                                        "argumentTypes": null,
                                        "id": 22435,
                                        "name": "_this_item",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 22382,
                                        "src": "5652:10:79",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      },
                                      "src": "5634:28:79",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "id": 22437,
                                    "nodeType": "ExpressionStatement",
                                    "src": "5634:28:79"
                                  }
                                ]
                              }
                            }
                          ]
                        },
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "id": 22413,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "components": [
                              {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 22407,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 22405,
                                  "name": "_i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 22338,
                                  "src": "5438:2:79",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "<",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "id": 22406,
                                  "name": "_count",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 22311,
                                  "src": "5443:6:79",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "5438:11:79",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              }
                            ],
                            "id": 22408,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "5437:13:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&&",
                          "rightExpression": {
                            "argumentTypes": null,
                            "components": [
                              {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                "id": 22411,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 22409,
                                  "name": "_this_item",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 22382,
                                  "src": "5455:10:79",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "!=",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "id": 22410,
                                  "name": "_last_item",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 22345,
                                  "src": "5469:10:79",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "src": "5455:24:79",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              }
                            ],
                            "id": 22412,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "5454:26:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "src": "5437:43:79",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 22441,
                        "initializationExpression": {
                          "expression": {
                            "argumentTypes": null,
                            "id": 22403,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "argumentTypes": null,
                              "id": 22401,
                              "name": "_i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22338,
                              "src": "5419:2:79",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "argumentTypes": null,
                              "id": 22402,
                              "name": "_real_count",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22341,
                              "src": "5424:11:79",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "5419:16:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 22404,
                          "nodeType": "ExpressionStatement",
                          "src": "5419:16:79"
                        },
                        "loopExpression": {
                          "expression": {
                            "argumentTypes": null,
                            "id": 22415,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "UnaryOperation",
                            "operator": "++",
                            "prefix": false,
                            "src": "5481:4:79",
                            "subExpression": {
                              "argumentTypes": null,
                              "id": 22414,
                              "name": "_i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22338,
                              "src": "5481:2:79",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 22416,
                          "nodeType": "ExpressionStatement",
                          "src": "5481:4:79"
                        },
                        "nodeType": "ForStatement",
                        "src": "5414:267:79"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 22448,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 22442,
                            "name": "_indexed_bytes_items",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22335,
                            "src": "5689:20:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 22446,
                                "name": "_real_count",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22341,
                                "src": "5726:11:79",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 22445,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "NewExpression",
                              "src": "5712:13:79",
                              "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": 22443,
                                  "name": "bytes32",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "5716:7:79",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "id": 22444,
                                "length": null,
                                "nodeType": "ArrayTypeName",
                                "src": "5716:9:79",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                                  "typeString": "bytes32[]"
                                }
                              }
                            },
                            "id": 22447,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "5712:26:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "src": "5689:49:79",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                            "typeString": "bytes32[] memory"
                          }
                        },
                        "id": 22449,
                        "nodeType": "ExpressionStatement",
                        "src": "5689:49:79"
                      },
                      {
                        "body": {
                          "id": 22468,
                          "nodeType": "Block",
                          "src": "5780:61:79",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 22466,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 22460,
                                    "name": "_indexed_bytes_items",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 22335,
                                    "src": "5790:20:79",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                      "typeString": "bytes32[] memory"
                                    }
                                  },
                                  "id": 22462,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 22461,
                                    "name": "_i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 22338,
                                    "src": "5811:2:79",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "5790:24:79",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 22463,
                                    "name": "_items_temp",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 22374,
                                    "src": "5817:11:79",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                      "typeString": "bytes32[] memory"
                                    }
                                  },
                                  "id": 22465,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 22464,
                                    "name": "_i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 22338,
                                    "src": "5829:2:79",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "5817:15:79",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "src": "5790:42:79",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "id": 22467,
                              "nodeType": "ExpressionStatement",
                              "src": "5790:42:79"
                            }
                          ]
                        },
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 22456,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 22454,
                            "name": "_i",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22338,
                            "src": "5757:2:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 22455,
                            "name": "_real_count",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22341,
                            "src": "5762:11:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "5757:16:79",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 22469,
                        "initializationExpression": {
                          "expression": {
                            "argumentTypes": null,
                            "id": 22452,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "argumentTypes": null,
                              "id": 22450,
                              "name": "_i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22338,
                              "src": "5750:2:79",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 22451,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "5755:1:79",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "src": "5750:6:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 22453,
                          "nodeType": "ExpressionStatement",
                          "src": "5750:6:79"
                        },
                        "loopExpression": {
                          "expression": {
                            "argumentTypes": null,
                            "id": 22458,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "UnaryOperation",
                            "operator": "++",
                            "prefix": false,
                            "src": "5774:4:79",
                            "subExpression": {
                              "argumentTypes": null,
                              "id": 22457,
                              "name": "_i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22338,
                              "src": "5774:2:79",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 22459,
                          "nodeType": "ExpressionStatement",
                          "src": "5774:4:79"
                        },
                        "nodeType": "ForStatement",
                        "src": "5746:95:79"
                      }
                    ]
                  },
                  "id": 22471,
                  "nodeType": "IfStatement",
                  "src": "5008:839:79",
                  "trueBody": {
                    "id": 22370,
                    "nodeType": "Block",
                    "src": "5055:120:79",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 22368,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 22362,
                            "name": "_indexed_bytes_items",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22335,
                            "src": "5129:20:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 22366,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "5166:1:79",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                }
                              ],
                              "id": 22365,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "NewExpression",
                              "src": "5152:13:79",
                              "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": 22363,
                                  "name": "bytes32",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "5156:7:79",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "id": 22364,
                                "length": null,
                                "nodeType": "ArrayTypeName",
                                "src": "5156:9:79",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                                  "typeString": "bytes32[]"
                                }
                              }
                            },
                            "id": 22367,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "5152:16:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "src": "5129:39:79",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                            "typeString": "bytes32[] memory"
                          }
                        },
                        "id": 22369,
                        "nodeType": "ExpressionStatement",
                        "src": "5129:39:79"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": "@notice a private function to lists an indexed Bytes collection starting from some `_current_item` (which could be included or excluded), in the forwards or backwards direction\n@param _collection_index Index of the Collection to list\n@param _current_item The item where we start reading from the list\n@param _count Total number of Bytes items to return\n@param _including_current Whether the `_current_item` should be included in the result\n@param _function_last Function that returns the bytes where we stop reading more bytes\n@param _function_next Function that returns the next bytes to read after another bytes (could be backwards or forwards in the physical collection)\n@return {\"_bytes_items\" :\"Collection/list of Bytes\"}",
            "id": 22473,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "private_list_indexed_bytes_from_bytes",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22332,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22307,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 22473,
                  "src": "4463:25:79",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 22306,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4463:7:79",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22309,
                  "name": "_current_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 22473,
                  "src": "4490:21:79",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 22308,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4490:7:79",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22311,
                  "name": "_count",
                  "nodeType": "VariableDeclaration",
                  "scope": 22473,
                  "src": "4513:14:79",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22310,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4513:7:79",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22313,
                  "name": "_including_current",
                  "nodeType": "VariableDeclaration",
                  "scope": 22473,
                  "src": "4529:23:79",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 22312,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "4529:4:79",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22321,
                  "name": "_function_last",
                  "nodeType": "VariableDeclaration",
                  "scope": 22473,
                  "src": "4595:69:79",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                    "typeString": "function (bytes32) view external returns (bytes32)"
                  },
                  "typeName": {
                    "id": 22320,
                    "isDeclaredConst": true,
                    "nodeType": "FunctionTypeName",
                    "parameterTypes": {
                      "id": 22316,
                      "nodeType": "ParameterList",
                      "parameters": [
                        {
                          "constant": false,
                          "id": 22315,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 22473,
                          "src": "4605:7:79",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 22314,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "4605:7:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "src": "4604:9:79"
                    },
                    "payable": false,
                    "returnParameterTypes": {
                      "id": 22319,
                      "nodeType": "ParameterList",
                      "parameters": [
                        {
                          "constant": false,
                          "id": 22318,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 22473,
                          "src": "4641:7:79",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 22317,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "4641:7:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "src": "4640:9:79"
                    },
                    "src": "4595:69:79",
                    "stateMutability": "view",
                    "typeDescriptions": {
                      "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                      "typeString": "function (bytes32) view external returns (bytes32)"
                    },
                    "visibility": "external"
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22331,
                  "name": "_function_next",
                  "nodeType": "VariableDeclaration",
                  "scope": 22473,
                  "src": "4707:78:79",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
                    "typeString": "function (bytes32,bytes32) view external returns (bytes32)"
                  },
                  "typeName": {
                    "id": 22330,
                    "isDeclaredConst": true,
                    "nodeType": "FunctionTypeName",
                    "parameterTypes": {
                      "id": 22326,
                      "nodeType": "ParameterList",
                      "parameters": [
                        {
                          "constant": false,
                          "id": 22323,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 22473,
                          "src": "4717:7:79",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 22322,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "4717:7:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        },
                        {
                          "constant": false,
                          "id": 22325,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 22473,
                          "src": "4726:7:79",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 22324,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "4726:7:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "src": "4716:18:79"
                    },
                    "payable": false,
                    "returnParameterTypes": {
                      "id": 22329,
                      "nodeType": "ParameterList",
                      "parameters": [
                        {
                          "constant": false,
                          "id": 22328,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 22473,
                          "src": "4762:7:79",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 22327,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "4762:7:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "src": "4761:9:79"
                    },
                    "src": "4707:78:79",
                    "stateMutability": "view",
                    "typeDescriptions": {
                      "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
                      "typeString": "function (bytes32,bytes32) view external returns (bytes32)"
                    },
                    "visibility": "external"
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4462:324:79"
            },
            "payable": false,
            "returnParameters": {
              "id": 22336,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22335,
                  "name": "_indexed_bytes_items",
                  "nodeType": "VariableDeclaration",
                  "scope": 22473,
                  "src": "4846:30:79",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 22333,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "4846:7:79",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 22334,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "4846:9:79",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4845:32:79"
            },
            "scope": 22474,
            "src": "4416:1435:79",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "private"
          }
        ],
        "scope": 22475,
        "src": "107:7384:79"
      }
    ],
    "src": "0:7492:79"
  },
  "legacyAST": {
    "absolutePath": "@digix/solidity-collections/contracts/abstract/IndexedBytesIteratorInteractive.sol",
    "exportedSymbols": {
      "IndexedBytesIteratorInteractive": [
        22474
      ]
    },
    "id": 22475,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 22149,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".19"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:79"
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": "@title Indexed Bytes Iterator Interactive\n@author DigixGlobal Pte Ltd",
        "fullyImplemented": true,
        "id": 22474,
        "linearizedBaseContracts": [
          22474
        ],
        "name": "IndexedBytesIteratorInteractive",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "body": {
              "id": 22227,
              "nodeType": "Block",
              "src": "1454:389:79",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "id": 22197,
                    "name": "_from_start",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 22191,
                    "src": "1464:11:79",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 22225,
                    "nodeType": "Block",
                    "src": "1659:180:79",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 22223,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 22212,
                            "name": "_indexed_bytes_items",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22195,
                            "src": "1667:20:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 22214,
                                "name": "_collection_index",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22151,
                                "src": "1728:17:79",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 22216,
                                    "name": "_collection_index",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 22151,
                                    "src": "1762:17:79",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  ],
                                  "id": 22215,
                                  "name": "_function_last",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 22169,
                                  "src": "1747:14:79",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                                    "typeString": "function (bytes32) view external returns (bytes32)"
                                  }
                                },
                                "id": 22217,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "1747:33:79",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 22218,
                                "name": "_count",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22153,
                                "src": "1782:6:79",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "hexValue": "74727565",
                                "id": 22219,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "bool",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "1790:4:79",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                "value": "true"
                              },
                              {
                                "argumentTypes": null,
                                "id": 22220,
                                "name": "_function_first",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22161,
                                "src": "1796:15:79",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                                  "typeString": "function (bytes32) view external returns (bytes32)"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 22221,
                                "name": "_function_previous",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22189,
                                "src": "1813:18:79",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
                                  "typeString": "function (bytes32,bytes32) view external returns (bytes32)"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                {
                                  "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                                  "typeString": "function (bytes32) view external returns (bytes32)"
                                },
                                {
                                  "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
                                  "typeString": "function (bytes32,bytes32) view external returns (bytes32)"
                                }
                              ],
                              "id": 22213,
                              "name": "private_list_indexed_bytes_from_bytes",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22473,
                              "src": "1690:37:79",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_bool_$_t_function_external_view$_t_bytes32_$returns$_t_bytes32_$_$_t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$",
                                "typeString": "function (bytes32,bytes32,uint256,bool,function (bytes32) view external returns (bytes32),function (bytes32,bytes32) view external returns (bytes32)) view returns (bytes32[] memory)"
                              }
                            },
                            "id": 22222,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1690:142:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "src": "1667:165:79",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                            "typeString": "bytes32[] memory"
                          }
                        },
                        "id": 22224,
                        "nodeType": "ExpressionStatement",
                        "src": "1667:165:79"
                      }
                    ]
                  },
                  "id": 22226,
                  "nodeType": "IfStatement",
                  "src": "1460:379:79",
                  "trueBody": {
                    "id": 22211,
                    "nodeType": "Block",
                    "src": "1477:176:79",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 22209,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 22198,
                            "name": "_indexed_bytes_items",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22195,
                            "src": "1485:20:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 22200,
                                "name": "_collection_index",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22151,
                                "src": "1546:17:79",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 22202,
                                    "name": "_collection_index",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 22151,
                                    "src": "1581:17:79",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  ],
                                  "id": 22201,
                                  "name": "_function_first",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 22161,
                                  "src": "1565:15:79",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                                    "typeString": "function (bytes32) view external returns (bytes32)"
                                  }
                                },
                                "id": 22203,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "1565:34:79",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 22204,
                                "name": "_count",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22153,
                                "src": "1601:6:79",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "hexValue": "74727565",
                                "id": 22205,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "bool",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "1609:4:79",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                "value": "true"
                              },
                              {
                                "argumentTypes": null,
                                "id": 22206,
                                "name": "_function_last",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22169,
                                "src": "1615:14:79",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                                  "typeString": "function (bytes32) view external returns (bytes32)"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 22207,
                                "name": "_function_next",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22179,
                                "src": "1631:14:79",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
                                  "typeString": "function (bytes32,bytes32) view external returns (bytes32)"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                {
                                  "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                                  "typeString": "function (bytes32) view external returns (bytes32)"
                                },
                                {
                                  "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
                                  "typeString": "function (bytes32,bytes32) view external returns (bytes32)"
                                }
                              ],
                              "id": 22199,
                              "name": "private_list_indexed_bytes_from_bytes",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22473,
                              "src": "1508:37:79",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_bool_$_t_function_external_view$_t_bytes32_$returns$_t_bytes32_$_$_t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$",
                                "typeString": "function (bytes32,bytes32,uint256,bool,function (bytes32) view external returns (bytes32),function (bytes32,bytes32) view external returns (bytes32)) view returns (bytes32[] memory)"
                              }
                            },
                            "id": 22208,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1508:138:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "src": "1485:161:79",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                            "typeString": "bytes32[] memory"
                          }
                        },
                        "id": 22210,
                        "nodeType": "ExpressionStatement",
                        "src": "1485:161:79"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": "@notice Lists an indexed Bytes collection from start or end\n@param _collection_index Index of the Collection to list\n@param _count Total number of Bytes items to return\n@param _function_first Function that returns the First Bytes item in the list\n@param _function_last Function that returns the last Bytes item in the list\n@param _function_next Function that returns the Next Bytes item in the list\n@param _function_previous Function that returns previous Bytes item in the list\n@param _from_start whether to read from start (or end) of the list\n@return {\"_bytes_items\" : \"Collection of reversed Bytes list\"}",
            "id": 22228,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "list_indexed_bytesarray",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22192,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22151,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 22228,
                  "src": "842:25:79",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 22150,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "842:7:79",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22153,
                  "name": "_count",
                  "nodeType": "VariableDeclaration",
                  "scope": 22228,
                  "src": "869:14:79",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22152,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "869:7:79",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22161,
                  "name": "_function_first",
                  "nodeType": "VariableDeclaration",
                  "scope": 22228,
                  "src": "915:70:79",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                    "typeString": "function (bytes32) view external returns (bytes32)"
                  },
                  "typeName": {
                    "id": 22160,
                    "isDeclaredConst": true,
                    "nodeType": "FunctionTypeName",
                    "parameterTypes": {
                      "id": 22156,
                      "nodeType": "ParameterList",
                      "parameters": [
                        {
                          "constant": false,
                          "id": 22155,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 22228,
                          "src": "925:7:79",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 22154,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "925:7:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "src": "924:9:79"
                    },
                    "payable": false,
                    "returnParameterTypes": {
                      "id": 22159,
                      "nodeType": "ParameterList",
                      "parameters": [
                        {
                          "constant": false,
                          "id": 22158,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 22228,
                          "src": "961:7:79",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 22157,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "961:7:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "src": "960:9:79"
                    },
                    "src": "915:70:79",
                    "stateMutability": "view",
                    "typeDescriptions": {
                      "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                      "typeString": "function (bytes32) view external returns (bytes32)"
                    },
                    "visibility": "external"
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22169,
                  "name": "_function_last",
                  "nodeType": "VariableDeclaration",
                  "scope": 22228,
                  "src": "1017:69:79",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                    "typeString": "function (bytes32) view external returns (bytes32)"
                  },
                  "typeName": {
                    "id": 22168,
                    "isDeclaredConst": true,
                    "nodeType": "FunctionTypeName",
                    "parameterTypes": {
                      "id": 22164,
                      "nodeType": "ParameterList",
                      "parameters": [
                        {
                          "constant": false,
                          "id": 22163,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 22228,
                          "src": "1027:7:79",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 22162,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "1027:7:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "src": "1026:9:79"
                    },
                    "payable": false,
                    "returnParameterTypes": {
                      "id": 22167,
                      "nodeType": "ParameterList",
                      "parameters": [
                        {
                          "constant": false,
                          "id": 22166,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 22228,
                          "src": "1063:7:79",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 22165,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "1063:7:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "src": "1062:9:79"
                    },
                    "src": "1017:69:79",
                    "stateMutability": "view",
                    "typeDescriptions": {
                      "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                      "typeString": "function (bytes32) view external returns (bytes32)"
                    },
                    "visibility": "external"
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22179,
                  "name": "_function_next",
                  "nodeType": "VariableDeclaration",
                  "scope": 22228,
                  "src": "1118:78:79",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
                    "typeString": "function (bytes32,bytes32) view external returns (bytes32)"
                  },
                  "typeName": {
                    "id": 22178,
                    "isDeclaredConst": true,
                    "nodeType": "FunctionTypeName",
                    "parameterTypes": {
                      "id": 22174,
                      "nodeType": "ParameterList",
                      "parameters": [
                        {
                          "constant": false,
                          "id": 22171,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 22228,
                          "src": "1128:7:79",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 22170,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "1128:7:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        },
                        {
                          "constant": false,
                          "id": 22173,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 22228,
                          "src": "1137:7:79",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 22172,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "1137:7:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "src": "1127:18:79"
                    },
                    "payable": false,
                    "returnParameterTypes": {
                      "id": 22177,
                      "nodeType": "ParameterList",
                      "parameters": [
                        {
                          "constant": false,
                          "id": 22176,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 22228,
                          "src": "1173:7:79",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 22175,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "1173:7:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "src": "1172:9:79"
                    },
                    "src": "1118:78:79",
                    "stateMutability": "view",
                    "typeDescriptions": {
                      "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
                      "typeString": "function (bytes32,bytes32) view external returns (bytes32)"
                    },
                    "visibility": "external"
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22189,
                  "name": "_function_previous",
                  "nodeType": "VariableDeclaration",
                  "scope": 22228,
                  "src": "1228:82:79",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
                    "typeString": "function (bytes32,bytes32) view external returns (bytes32)"
                  },
                  "typeName": {
                    "id": 22188,
                    "isDeclaredConst": true,
                    "nodeType": "FunctionTypeName",
                    "parameterTypes": {
                      "id": 22184,
                      "nodeType": "ParameterList",
                      "parameters": [
                        {
                          "constant": false,
                          "id": 22181,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 22228,
                          "src": "1238:7:79",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 22180,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "1238:7:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        },
                        {
                          "constant": false,
                          "id": 22183,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 22228,
                          "src": "1247:7:79",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 22182,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "1247:7:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "src": "1237:18:79"
                    },
                    "payable": false,
                    "returnParameterTypes": {
                      "id": 22187,
                      "nodeType": "ParameterList",
                      "parameters": [
                        {
                          "constant": false,
                          "id": 22186,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 22228,
                          "src": "1283:7:79",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 22185,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "1283:7:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "src": "1282:9:79"
                    },
                    "src": "1228:82:79",
                    "stateMutability": "view",
                    "typeDescriptions": {
                      "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
                      "typeString": "function (bytes32,bytes32) view external returns (bytes32)"
                    },
                    "visibility": "external"
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22191,
                  "name": "_from_start",
                  "nodeType": "VariableDeclaration",
                  "scope": 22228,
                  "src": "1342:16:79",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 22190,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1342:4:79",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "841:518:79"
            },
            "payable": false,
            "returnParameters": {
              "id": 22196,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22195,
                  "name": "_indexed_bytes_items",
                  "nodeType": "VariableDeclaration",
                  "scope": 22228,
                  "src": "1420:30:79",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 22193,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "1420:7:79",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 22194,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "1420:9:79",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1419:32:79"
            },
            "scope": 22474,
            "src": "809:1034:79",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 22304,
              "nodeType": "Block",
              "src": "3292:350:79",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "id": 22278,
                    "name": "_from_start",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 22272,
                    "src": "3302:11:79",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 22302,
                    "nodeType": "Block",
                    "src": "3477:161:79",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 22300,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 22291,
                            "name": "_indexed_bytes_items",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22276,
                            "src": "3485:20:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 22293,
                                "name": "_collection_index",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22230,
                                "src": "3546:17:79",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 22294,
                                "name": "_current_item",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22232,
                                "src": "3565:13:79",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 22295,
                                "name": "_count",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22234,
                                "src": "3580:6:79",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "hexValue": "66616c7365",
                                "id": 22296,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "bool",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "3588:5:79",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                "value": "false"
                              },
                              {
                                "argumentTypes": null,
                                "id": 22297,
                                "name": "_function_first",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22242,
                                "src": "3595:15:79",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                                  "typeString": "function (bytes32) view external returns (bytes32)"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 22298,
                                "name": "_function_previous",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22270,
                                "src": "3612:18:79",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
                                  "typeString": "function (bytes32,bytes32) view external returns (bytes32)"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                {
                                  "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                                  "typeString": "function (bytes32) view external returns (bytes32)"
                                },
                                {
                                  "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
                                  "typeString": "function (bytes32,bytes32) view external returns (bytes32)"
                                }
                              ],
                              "id": 22292,
                              "name": "private_list_indexed_bytes_from_bytes",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22473,
                              "src": "3508:37:79",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_bool_$_t_function_external_view$_t_bytes32_$returns$_t_bytes32_$_$_t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$",
                                "typeString": "function (bytes32,bytes32,uint256,bool,function (bytes32) view external returns (bytes32),function (bytes32,bytes32) view external returns (bytes32)) view returns (bytes32[] memory)"
                              }
                            },
                            "id": 22299,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3508:123:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "src": "3485:146:79",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                            "typeString": "bytes32[] memory"
                          }
                        },
                        "id": 22301,
                        "nodeType": "ExpressionStatement",
                        "src": "3485:146:79"
                      }
                    ]
                  },
                  "id": 22303,
                  "nodeType": "IfStatement",
                  "src": "3298:340:79",
                  "trueBody": {
                    "id": 22290,
                    "nodeType": "Block",
                    "src": "3315:156:79",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 22288,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 22279,
                            "name": "_indexed_bytes_items",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22276,
                            "src": "3323:20:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 22281,
                                "name": "_collection_index",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22230,
                                "src": "3384:17:79",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 22282,
                                "name": "_current_item",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22232,
                                "src": "3403:13:79",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 22283,
                                "name": "_count",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22234,
                                "src": "3418:6:79",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "hexValue": "66616c7365",
                                "id": 22284,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "bool",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "3426:5:79",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                "value": "false"
                              },
                              {
                                "argumentTypes": null,
                                "id": 22285,
                                "name": "_function_last",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22250,
                                "src": "3433:14:79",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                                  "typeString": "function (bytes32) view external returns (bytes32)"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 22286,
                                "name": "_function_next",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22260,
                                "src": "3449:14:79",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
                                  "typeString": "function (bytes32,bytes32) view external returns (bytes32)"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                {
                                  "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                                  "typeString": "function (bytes32) view external returns (bytes32)"
                                },
                                {
                                  "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
                                  "typeString": "function (bytes32,bytes32) view external returns (bytes32)"
                                }
                              ],
                              "id": 22280,
                              "name": "private_list_indexed_bytes_from_bytes",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22473,
                              "src": "3346:37:79",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_bool_$_t_function_external_view$_t_bytes32_$returns$_t_bytes32_$_$_t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$",
                                "typeString": "function (bytes32,bytes32,uint256,bool,function (bytes32) view external returns (bytes32),function (bytes32,bytes32) view external returns (bytes32)) view returns (bytes32[] memory)"
                              }
                            },
                            "id": 22287,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3346:118:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "src": "3323:141:79",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                            "typeString": "bytes32[] memory"
                          }
                        },
                        "id": 22289,
                        "nodeType": "ExpressionStatement",
                        "src": "3323:141:79"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": "@notice Lists an indexed Bytes collection from some `_current_item`, going forwards or backwards depending on `_from_start`\n@param _collection_index Index of the Collection to list\n@param _current_item The current Item\n@param _count Total number of Bytes items to return\n@param _function_first Function that returns the First Bytes item in the list\n@param _function_last Function that returns the last Bytes item in the list\n@param _function_next Function that returns the Next Bytes item in the list\n@param _function_previous Function that returns previous Bytes item in the list\n@param _from_start whether to read in the forwards ( or backwards) direction\n@return {\"_bytes_items\" :\"Collection/list of Bytes\"}",
            "id": 22305,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "list_indexed_bytesarray_from",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22273,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22230,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 22305,
                  "src": "2647:25:79",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 22229,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2647:7:79",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22232,
                  "name": "_current_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 22305,
                  "src": "2674:21:79",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 22231,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2674:7:79",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22234,
                  "name": "_count",
                  "nodeType": "VariableDeclaration",
                  "scope": 22305,
                  "src": "2697:14:79",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22233,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2697:7:79",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22242,
                  "name": "_function_first",
                  "nodeType": "VariableDeclaration",
                  "scope": 22305,
                  "src": "2745:70:79",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                    "typeString": "function (bytes32) view external returns (bytes32)"
                  },
                  "typeName": {
                    "id": 22241,
                    "isDeclaredConst": true,
                    "nodeType": "FunctionTypeName",
                    "parameterTypes": {
                      "id": 22237,
                      "nodeType": "ParameterList",
                      "parameters": [
                        {
                          "constant": false,
                          "id": 22236,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 22305,
                          "src": "2755:7:79",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 22235,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "2755:7:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "src": "2754:9:79"
                    },
                    "payable": false,
                    "returnParameterTypes": {
                      "id": 22240,
                      "nodeType": "ParameterList",
                      "parameters": [
                        {
                          "constant": false,
                          "id": 22239,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 22305,
                          "src": "2791:7:79",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 22238,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "2791:7:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "src": "2790:9:79"
                    },
                    "src": "2745:70:79",
                    "stateMutability": "view",
                    "typeDescriptions": {
                      "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                      "typeString": "function (bytes32) view external returns (bytes32)"
                    },
                    "visibility": "external"
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22250,
                  "name": "_function_last",
                  "nodeType": "VariableDeclaration",
                  "scope": 22305,
                  "src": "2849:69:79",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                    "typeString": "function (bytes32) view external returns (bytes32)"
                  },
                  "typeName": {
                    "id": 22249,
                    "isDeclaredConst": true,
                    "nodeType": "FunctionTypeName",
                    "parameterTypes": {
                      "id": 22245,
                      "nodeType": "ParameterList",
                      "parameters": [
                        {
                          "constant": false,
                          "id": 22244,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 22305,
                          "src": "2859:7:79",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 22243,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "2859:7:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "src": "2858:9:79"
                    },
                    "payable": false,
                    "returnParameterTypes": {
                      "id": 22248,
                      "nodeType": "ParameterList",
                      "parameters": [
                        {
                          "constant": false,
                          "id": 22247,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 22305,
                          "src": "2895:7:79",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 22246,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "2895:7:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "src": "2894:9:79"
                    },
                    "src": "2849:69:79",
                    "stateMutability": "view",
                    "typeDescriptions": {
                      "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                      "typeString": "function (bytes32) view external returns (bytes32)"
                    },
                    "visibility": "external"
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22260,
                  "name": "_function_next",
                  "nodeType": "VariableDeclaration",
                  "scope": 22305,
                  "src": "2952:78:79",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
                    "typeString": "function (bytes32,bytes32) view external returns (bytes32)"
                  },
                  "typeName": {
                    "id": 22259,
                    "isDeclaredConst": true,
                    "nodeType": "FunctionTypeName",
                    "parameterTypes": {
                      "id": 22255,
                      "nodeType": "ParameterList",
                      "parameters": [
                        {
                          "constant": false,
                          "id": 22252,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 22305,
                          "src": "2962:7:79",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 22251,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "2962:7:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        },
                        {
                          "constant": false,
                          "id": 22254,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 22305,
                          "src": "2971:7:79",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 22253,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "2971:7:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "src": "2961:18:79"
                    },
                    "payable": false,
                    "returnParameterTypes": {
                      "id": 22258,
                      "nodeType": "ParameterList",
                      "parameters": [
                        {
                          "constant": false,
                          "id": 22257,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 22305,
                          "src": "3007:7:79",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 22256,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "3007:7:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "src": "3006:9:79"
                    },
                    "src": "2952:78:79",
                    "stateMutability": "view",
                    "typeDescriptions": {
                      "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
                      "typeString": "function (bytes32,bytes32) view external returns (bytes32)"
                    },
                    "visibility": "external"
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22270,
                  "name": "_function_previous",
                  "nodeType": "VariableDeclaration",
                  "scope": 22305,
                  "src": "3064:82:79",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
                    "typeString": "function (bytes32,bytes32) view external returns (bytes32)"
                  },
                  "typeName": {
                    "id": 22269,
                    "isDeclaredConst": true,
                    "nodeType": "FunctionTypeName",
                    "parameterTypes": {
                      "id": 22265,
                      "nodeType": "ParameterList",
                      "parameters": [
                        {
                          "constant": false,
                          "id": 22262,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 22305,
                          "src": "3074:7:79",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 22261,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "3074:7:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        },
                        {
                          "constant": false,
                          "id": 22264,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 22305,
                          "src": "3083:7:79",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 22263,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "3083:7:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "src": "3073:18:79"
                    },
                    "payable": false,
                    "returnParameterTypes": {
                      "id": 22268,
                      "nodeType": "ParameterList",
                      "parameters": [
                        {
                          "constant": false,
                          "id": 22267,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 22305,
                          "src": "3119:7:79",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 22266,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "3119:7:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "src": "3118:9:79"
                    },
                    "src": "3064:82:79",
                    "stateMutability": "view",
                    "typeDescriptions": {
                      "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
                      "typeString": "function (bytes32,bytes32) view external returns (bytes32)"
                    },
                    "visibility": "external"
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22272,
                  "name": "_from_start",
                  "nodeType": "VariableDeclaration",
                  "scope": 22305,
                  "src": "3180:16:79",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 22271,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "3180:4:79",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2646:551:79"
            },
            "payable": false,
            "returnParameters": {
              "id": 22277,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22276,
                  "name": "_indexed_bytes_items",
                  "nodeType": "VariableDeclaration",
                  "scope": 22305,
                  "src": "3258:30:79",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 22274,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "3258:7:79",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 22275,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "3258:9:79",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3257:32:79"
            },
            "scope": 22474,
            "src": "2609:1033:79",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 22472,
              "nodeType": "Block",
              "src": "4880:971:79",
              "statements": [
                {
                  "assignments": [],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 22338,
                      "name": "_i",
                      "nodeType": "VariableDeclaration",
                      "scope": 22473,
                      "src": "4886:10:79",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 22337,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "4886:7:79",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 22339,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4886:10:79"
                },
                {
                  "assignments": [
                    22341
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 22341,
                      "name": "_real_count",
                      "nodeType": "VariableDeclaration",
                      "scope": 22473,
                      "src": "4902:19:79",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 22340,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "4902:7:79",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 22343,
                  "initialValue": {
                    "argumentTypes": null,
                    "hexValue": "30",
                    "id": 22342,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "4924:1:79",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_0_by_1",
                      "typeString": "int_const 0"
                    },
                    "value": "0"
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4902:23:79"
                },
                {
                  "assignments": [],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 22345,
                      "name": "_last_item",
                      "nodeType": "VariableDeclaration",
                      "scope": 22473,
                      "src": "4931:18:79",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 22344,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "4931:7:79",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 22346,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4931:18:79"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 22351,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 22347,
                      "name": "_last_item",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 22345,
                      "src": "4956:10:79",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 22349,
                          "name": "_collection_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 22307,
                          "src": "4984:17:79",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 22348,
                        "name": "_function_last",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22321,
                        "src": "4969:14:79",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                          "typeString": "function (bytes32) view external returns (bytes32)"
                        }
                      },
                      "id": 22350,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "4969:33:79",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "4956:46:79",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 22352,
                  "nodeType": "ExpressionStatement",
                  "src": "4956:46:79"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 22361,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 22355,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 22353,
                        "name": "_count",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22311,
                        "src": "5012:6:79",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 22354,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5022:1:79",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "src": "5012:11:79",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "||",
                    "rightExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "id": 22360,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 22356,
                        "name": "_last_item",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22345,
                        "src": "5027:10:79",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "307830",
                            "id": 22358,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "5049:3:79",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0x0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 22357,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "5041:7:79",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": "bytes32"
                        },
                        "id": 22359,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5041:12:79",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "src": "5027:26:79",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "5012:41:79",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 22470,
                    "nodeType": "Block",
                    "src": "5181:666:79",
                    "statements": [
                      {
                        "assignments": [
                          22374
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 22374,
                            "name": "_items_temp",
                            "nodeType": "VariableDeclaration",
                            "scope": 22473,
                            "src": "5189:28:79",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[]"
                            },
                            "typeName": {
                              "baseType": {
                                "id": 22372,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "5189:7:79",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "id": 22373,
                              "length": null,
                              "nodeType": "ArrayTypeName",
                              "src": "5189:9:79",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                                "typeString": "bytes32[]"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 22380,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 22378,
                              "name": "_count",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22311,
                              "src": "5234:6:79",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 22377,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "NewExpression",
                            "src": "5220:13:79",
                            "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": 22375,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "5224:7:79",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "id": 22376,
                              "length": null,
                              "nodeType": "ArrayTypeName",
                              "src": "5224:9:79",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                                "typeString": "bytes32[]"
                              }
                            }
                          },
                          "id": 22379,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5220:21:79",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$dyn_memory",
                            "typeString": "bytes32[] memory"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "5189:52:79"
                      },
                      {
                        "assignments": [],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 22382,
                            "name": "_this_item",
                            "nodeType": "VariableDeclaration",
                            "scope": 22473,
                            "src": "5249:18:79",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "typeName": {
                              "id": 22381,
                              "name": "bytes32",
                              "nodeType": "ElementaryTypeName",
                              "src": "5249:7:79",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 22383,
                        "initialValue": null,
                        "nodeType": "VariableDeclarationStatement",
                        "src": "5249:18:79"
                      },
                      {
                        "condition": {
                          "argumentTypes": null,
                          "id": 22384,
                          "name": "_including_current",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 22313,
                          "src": "5279:18:79",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": null,
                        "id": 22396,
                        "nodeType": "IfStatement",
                        "src": "5275:98:79",
                        "trueBody": {
                          "id": 22395,
                          "nodeType": "Block",
                          "src": "5299:74:79",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 22389,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 22385,
                                    "name": "_items_temp",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 22374,
                                    "src": "5309:11:79",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                      "typeString": "bytes32[] memory"
                                    }
                                  },
                                  "id": 22387,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "hexValue": "30",
                                    "id": 22386,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "5321:1:79",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_0_by_1",
                                      "typeString": "int_const 0"
                                    },
                                    "value": "0"
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "5309:14:79",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "id": 22388,
                                  "name": "_current_item",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 22309,
                                  "src": "5326:13:79",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "src": "5309:30:79",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "id": 22390,
                              "nodeType": "ExpressionStatement",
                              "src": "5309:30:79"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 22393,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "id": 22391,
                                  "name": "_real_count",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 22341,
                                  "src": "5349:11:79",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "hexValue": "31",
                                  "id": 22392,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "5363:1:79",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_1_by_1",
                                    "typeString": "int_const 1"
                                  },
                                  "value": "1"
                                },
                                "src": "5349:15:79",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 22394,
                              "nodeType": "ExpressionStatement",
                              "src": "5349:15:79"
                            }
                          ]
                        }
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 22399,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 22397,
                            "name": "_this_item",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22382,
                            "src": "5380:10:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 22398,
                            "name": "_current_item",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22309,
                            "src": "5393:13:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "5380:26:79",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 22400,
                        "nodeType": "ExpressionStatement",
                        "src": "5380:26:79"
                      },
                      {
                        "body": {
                          "id": 22440,
                          "nodeType": "Block",
                          "src": "5487:194:79",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 22422,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "id": 22417,
                                  "name": "_this_item",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 22382,
                                  "src": "5497:10:79",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "id": 22419,
                                      "name": "_collection_index",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 22307,
                                      "src": "5525:17:79",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "id": 22420,
                                      "name": "_this_item",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 22382,
                                      "src": "5544:10:79",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      },
                                      {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    ],
                                    "id": 22418,
                                    "name": "_function_next",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 22331,
                                    "src": "5510:14:79",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
                                      "typeString": "function (bytes32,bytes32) view external returns (bytes32)"
                                    }
                                  },
                                  "id": 22421,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "5510:45:79",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "src": "5497:58:79",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "id": 22423,
                              "nodeType": "ExpressionStatement",
                              "src": "5497:58:79"
                            },
                            {
                              "condition": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                "id": 22428,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 22424,
                                  "name": "_this_item",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 22382,
                                  "src": "5569:10:79",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "!=",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "hexValue": "307830",
                                      "id": 22426,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "5591:3:79",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_0_by_1",
                                        "typeString": "int_const 0"
                                      },
                                      "value": "0x0"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_rational_0_by_1",
                                        "typeString": "int_const 0"
                                      }
                                    ],
                                    "id": 22425,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "5583:7:79",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_bytes32_$",
                                      "typeString": "type(bytes32)"
                                    },
                                    "typeName": "bytes32"
                                  },
                                  "id": 22427,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "5583:12:79",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "src": "5569:26:79",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "falseBody": null,
                              "id": 22439,
                              "nodeType": "IfStatement",
                              "src": "5565:108:79",
                              "trueBody": {
                                "id": 22438,
                                "nodeType": "Block",
                                "src": "5597:76:79",
                                "statements": [
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 22430,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "UnaryOperation",
                                      "operator": "++",
                                      "prefix": false,
                                      "src": "5609:13:79",
                                      "subExpression": {
                                        "argumentTypes": null,
                                        "id": 22429,
                                        "name": "_real_count",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 22341,
                                        "src": "5609:11:79",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "id": 22431,
                                    "nodeType": "ExpressionStatement",
                                    "src": "5609:13:79"
                                  },
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 22436,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftHandSide": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "id": 22432,
                                          "name": "_items_temp",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 22374,
                                          "src": "5634:11:79",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                            "typeString": "bytes32[] memory"
                                          }
                                        },
                                        "id": 22434,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "id": 22433,
                                          "name": "_i",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 22338,
                                          "src": "5646:2:79",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": true,
                                        "nodeType": "IndexAccess",
                                        "src": "5634:15:79",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      },
                                      "nodeType": "Assignment",
                                      "operator": "=",
                                      "rightHandSide": {
                                        "argumentTypes": null,
                                        "id": 22435,
                                        "name": "_this_item",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 22382,
                                        "src": "5652:10:79",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      },
                                      "src": "5634:28:79",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "id": 22437,
                                    "nodeType": "ExpressionStatement",
                                    "src": "5634:28:79"
                                  }
                                ]
                              }
                            }
                          ]
                        },
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "id": 22413,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "components": [
                              {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 22407,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 22405,
                                  "name": "_i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 22338,
                                  "src": "5438:2:79",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "<",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "id": 22406,
                                  "name": "_count",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 22311,
                                  "src": "5443:6:79",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "5438:11:79",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              }
                            ],
                            "id": 22408,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "5437:13:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&&",
                          "rightExpression": {
                            "argumentTypes": null,
                            "components": [
                              {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                "id": 22411,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 22409,
                                  "name": "_this_item",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 22382,
                                  "src": "5455:10:79",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "!=",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "id": 22410,
                                  "name": "_last_item",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 22345,
                                  "src": "5469:10:79",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "src": "5455:24:79",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              }
                            ],
                            "id": 22412,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "5454:26:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "src": "5437:43:79",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 22441,
                        "initializationExpression": {
                          "expression": {
                            "argumentTypes": null,
                            "id": 22403,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "argumentTypes": null,
                              "id": 22401,
                              "name": "_i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22338,
                              "src": "5419:2:79",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "argumentTypes": null,
                              "id": 22402,
                              "name": "_real_count",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22341,
                              "src": "5424:11:79",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "5419:16:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 22404,
                          "nodeType": "ExpressionStatement",
                          "src": "5419:16:79"
                        },
                        "loopExpression": {
                          "expression": {
                            "argumentTypes": null,
                            "id": 22415,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "UnaryOperation",
                            "operator": "++",
                            "prefix": false,
                            "src": "5481:4:79",
                            "subExpression": {
                              "argumentTypes": null,
                              "id": 22414,
                              "name": "_i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22338,
                              "src": "5481:2:79",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 22416,
                          "nodeType": "ExpressionStatement",
                          "src": "5481:4:79"
                        },
                        "nodeType": "ForStatement",
                        "src": "5414:267:79"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 22448,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 22442,
                            "name": "_indexed_bytes_items",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22335,
                            "src": "5689:20:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 22446,
                                "name": "_real_count",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22341,
                                "src": "5726:11:79",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 22445,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "NewExpression",
                              "src": "5712:13:79",
                              "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": 22443,
                                  "name": "bytes32",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "5716:7:79",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "id": 22444,
                                "length": null,
                                "nodeType": "ArrayTypeName",
                                "src": "5716:9:79",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                                  "typeString": "bytes32[]"
                                }
                              }
                            },
                            "id": 22447,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "5712:26:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "src": "5689:49:79",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                            "typeString": "bytes32[] memory"
                          }
                        },
                        "id": 22449,
                        "nodeType": "ExpressionStatement",
                        "src": "5689:49:79"
                      },
                      {
                        "body": {
                          "id": 22468,
                          "nodeType": "Block",
                          "src": "5780:61:79",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 22466,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 22460,
                                    "name": "_indexed_bytes_items",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 22335,
                                    "src": "5790:20:79",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                      "typeString": "bytes32[] memory"
                                    }
                                  },
                                  "id": 22462,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 22461,
                                    "name": "_i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 22338,
                                    "src": "5811:2:79",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "5790:24:79",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 22463,
                                    "name": "_items_temp",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 22374,
                                    "src": "5817:11:79",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                      "typeString": "bytes32[] memory"
                                    }
                                  },
                                  "id": 22465,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 22464,
                                    "name": "_i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 22338,
                                    "src": "5829:2:79",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "5817:15:79",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "src": "5790:42:79",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "id": 22467,
                              "nodeType": "ExpressionStatement",
                              "src": "5790:42:79"
                            }
                          ]
                        },
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 22456,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 22454,
                            "name": "_i",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22338,
                            "src": "5757:2:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 22455,
                            "name": "_real_count",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22341,
                            "src": "5762:11:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "5757:16:79",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 22469,
                        "initializationExpression": {
                          "expression": {
                            "argumentTypes": null,
                            "id": 22452,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "argumentTypes": null,
                              "id": 22450,
                              "name": "_i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22338,
                              "src": "5750:2:79",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 22451,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "5755:1:79",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "src": "5750:6:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 22453,
                          "nodeType": "ExpressionStatement",
                          "src": "5750:6:79"
                        },
                        "loopExpression": {
                          "expression": {
                            "argumentTypes": null,
                            "id": 22458,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "UnaryOperation",
                            "operator": "++",
                            "prefix": false,
                            "src": "5774:4:79",
                            "subExpression": {
                              "argumentTypes": null,
                              "id": 22457,
                              "name": "_i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22338,
                              "src": "5774:2:79",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 22459,
                          "nodeType": "ExpressionStatement",
                          "src": "5774:4:79"
                        },
                        "nodeType": "ForStatement",
                        "src": "5746:95:79"
                      }
                    ]
                  },
                  "id": 22471,
                  "nodeType": "IfStatement",
                  "src": "5008:839:79",
                  "trueBody": {
                    "id": 22370,
                    "nodeType": "Block",
                    "src": "5055:120:79",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 22368,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 22362,
                            "name": "_indexed_bytes_items",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22335,
                            "src": "5129:20:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 22366,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "5166:1:79",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                }
                              ],
                              "id": 22365,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "NewExpression",
                              "src": "5152:13:79",
                              "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": 22363,
                                  "name": "bytes32",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "5156:7:79",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "id": 22364,
                                "length": null,
                                "nodeType": "ArrayTypeName",
                                "src": "5156:9:79",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                                  "typeString": "bytes32[]"
                                }
                              }
                            },
                            "id": 22367,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "5152:16:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "src": "5129:39:79",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                            "typeString": "bytes32[] memory"
                          }
                        },
                        "id": 22369,
                        "nodeType": "ExpressionStatement",
                        "src": "5129:39:79"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": "@notice a private function to lists an indexed Bytes collection starting from some `_current_item` (which could be included or excluded), in the forwards or backwards direction\n@param _collection_index Index of the Collection to list\n@param _current_item The item where we start reading from the list\n@param _count Total number of Bytes items to return\n@param _including_current Whether the `_current_item` should be included in the result\n@param _function_last Function that returns the bytes where we stop reading more bytes\n@param _function_next Function that returns the next bytes to read after another bytes (could be backwards or forwards in the physical collection)\n@return {\"_bytes_items\" :\"Collection/list of Bytes\"}",
            "id": 22473,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "private_list_indexed_bytes_from_bytes",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22332,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22307,
                  "name": "_collection_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 22473,
                  "src": "4463:25:79",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 22306,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4463:7:79",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22309,
                  "name": "_current_item",
                  "nodeType": "VariableDeclaration",
                  "scope": 22473,
                  "src": "4490:21:79",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 22308,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4490:7:79",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22311,
                  "name": "_count",
                  "nodeType": "VariableDeclaration",
                  "scope": 22473,
                  "src": "4513:14:79",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22310,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4513:7:79",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22313,
                  "name": "_including_current",
                  "nodeType": "VariableDeclaration",
                  "scope": 22473,
                  "src": "4529:23:79",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 22312,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "4529:4:79",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22321,
                  "name": "_function_last",
                  "nodeType": "VariableDeclaration",
                  "scope": 22473,
                  "src": "4595:69:79",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                    "typeString": "function (bytes32) view external returns (bytes32)"
                  },
                  "typeName": {
                    "id": 22320,
                    "isDeclaredConst": true,
                    "nodeType": "FunctionTypeName",
                    "parameterTypes": {
                      "id": 22316,
                      "nodeType": "ParameterList",
                      "parameters": [
                        {
                          "constant": false,
                          "id": 22315,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 22473,
                          "src": "4605:7:79",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 22314,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "4605:7:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "src": "4604:9:79"
                    },
                    "payable": false,
                    "returnParameterTypes": {
                      "id": 22319,
                      "nodeType": "ParameterList",
                      "parameters": [
                        {
                          "constant": false,
                          "id": 22318,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 22473,
                          "src": "4641:7:79",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 22317,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "4641:7:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "src": "4640:9:79"
                    },
                    "src": "4595:69:79",
                    "stateMutability": "view",
                    "typeDescriptions": {
                      "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                      "typeString": "function (bytes32) view external returns (bytes32)"
                    },
                    "visibility": "external"
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22331,
                  "name": "_function_next",
                  "nodeType": "VariableDeclaration",
                  "scope": 22473,
                  "src": "4707:78:79",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
                    "typeString": "function (bytes32,bytes32) view external returns (bytes32)"
                  },
                  "typeName": {
                    "id": 22330,
                    "isDeclaredConst": true,
                    "nodeType": "FunctionTypeName",
                    "parameterTypes": {
                      "id": 22326,
                      "nodeType": "ParameterList",
                      "parameters": [
                        {
                          "constant": false,
                          "id": 22323,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 22473,
                          "src": "4717:7:79",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 22322,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "4717:7:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        },
                        {
                          "constant": false,
                          "id": 22325,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 22473,
                          "src": "4726:7:79",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 22324,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "4726:7:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "src": "4716:18:79"
                    },
                    "payable": false,
                    "returnParameterTypes": {
                      "id": 22329,
                      "nodeType": "ParameterList",
                      "parameters": [
                        {
                          "constant": false,
                          "id": 22328,
                          "name": "",
                          "nodeType": "VariableDeclaration",
                          "scope": 22473,
                          "src": "4762:7:79",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 22327,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "4762:7:79",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "value": null,
                          "visibility": "internal"
                        }
                      ],
                      "src": "4761:9:79"
                    },
                    "src": "4707:78:79",
                    "stateMutability": "view",
                    "typeDescriptions": {
                      "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
                      "typeString": "function (bytes32,bytes32) view external returns (bytes32)"
                    },
                    "visibility": "external"
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4462:324:79"
            },
            "payable": false,
            "returnParameters": {
              "id": 22336,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22335,
                  "name": "_indexed_bytes_items",
                  "nodeType": "VariableDeclaration",
                  "scope": 22473,
                  "src": "4846:30:79",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 22333,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "4846:7:79",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 22334,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "4846:9:79",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4845:32:79"
            },
            "scope": 22474,
            "src": "4416:1435:79",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "private"
          }
        ],
        "scope": 22475,
        "src": "107:7384:79"
      }
    ],
    "src": "0:7492:79"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.25+commit.59dbf8f1.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "2.0.2",
  "updatedAt": "2020-03-13T02:38:46.140Z"
}