{
  "type": "Program",
  "body": [
    {
      "type": "ImportDeclaration",
      "specifiers": [
        {
          "type": "ImportSpecifier",
          "local": {
            "type": "Identifier",
            "name": "Subject",
            "range": [
              9,
              16
            ],
            "loc": {
              "start": {
                "line": 1,
                "column": 9
              },
              "end": {
                "line": 1,
                "column": 16
              }
            }
          },
          "imported": {
            "type": "Identifier",
            "name": "Subject",
            "range": [
              9,
              16
            ],
            "loc": {
              "start": {
                "line": 1,
                "column": 9
              },
              "end": {
                "line": 1,
                "column": 16
              }
            }
          },
          "range": [
            9,
            16
          ],
          "loc": {
            "start": {
              "line": 1,
              "column": 9
            },
            "end": {
              "line": 1,
              "column": 16
            }
          }
        }
      ],
      "source": {
        "type": "Literal",
        "value": "../Subject",
        "raw": "'../Subject'",
        "range": [
          24,
          36
        ],
        "loc": {
          "start": {
            "line": 1,
            "column": 24
          },
          "end": {
            "line": 1,
            "column": 36
          }
        }
      },
      "range": [
        0,
        37
      ],
      "loc": {
        "start": {
          "line": 1,
          "column": 0
        },
        "end": {
          "line": 1,
          "column": 37
        }
      }
    },
    {
      "type": "ImportDeclaration",
      "specifiers": [
        {
          "type": "ImportSpecifier",
          "local": {
            "type": "Identifier",
            "name": "tryCatch",
            "range": [
              47,
              55
            ],
            "loc": {
              "start": {
                "line": 2,
                "column": 9
              },
              "end": {
                "line": 2,
                "column": 17
              }
            }
          },
          "imported": {
            "type": "Identifier",
            "name": "tryCatch",
            "range": [
              47,
              55
            ],
            "loc": {
              "start": {
                "line": 2,
                "column": 9
              },
              "end": {
                "line": 2,
                "column": 17
              }
            }
          },
          "range": [
            47,
            55
          ],
          "loc": {
            "start": {
              "line": 2,
              "column": 9
            },
            "end": {
              "line": 2,
              "column": 17
            }
          }
        }
      ],
      "source": {
        "type": "Literal",
        "value": "../util/tryCatch",
        "raw": "'../util/tryCatch'",
        "range": [
          63,
          81
        ],
        "loc": {
          "start": {
            "line": 2,
            "column": 25
          },
          "end": {
            "line": 2,
            "column": 43
          }
        }
      },
      "range": [
        38,
        82
      ],
      "loc": {
        "start": {
          "line": 2,
          "column": 0
        },
        "end": {
          "line": 2,
          "column": 44
        }
      }
    },
    {
      "type": "ImportDeclaration",
      "specifiers": [
        {
          "type": "ImportSpecifier",
          "local": {
            "type": "Identifier",
            "name": "errorObject",
            "range": [
              92,
              103
            ],
            "loc": {
              "start": {
                "line": 3,
                "column": 9
              },
              "end": {
                "line": 3,
                "column": 20
              }
            }
          },
          "imported": {
            "type": "Identifier",
            "name": "errorObject",
            "range": [
              92,
              103
            ],
            "loc": {
              "start": {
                "line": 3,
                "column": 9
              },
              "end": {
                "line": 3,
                "column": 20
              }
            }
          },
          "range": [
            92,
            103
          ],
          "loc": {
            "start": {
              "line": 3,
              "column": 9
            },
            "end": {
              "line": 3,
              "column": 20
            }
          }
        }
      ],
      "source": {
        "type": "Literal",
        "value": "../util/errorObject",
        "raw": "'../util/errorObject'",
        "range": [
          111,
          132
        ],
        "loc": {
          "start": {
            "line": 3,
            "column": 28
          },
          "end": {
            "line": 3,
            "column": 49
          }
        }
      },
      "range": [
        83,
        133
      ],
      "loc": {
        "start": {
          "line": 3,
          "column": 0
        },
        "end": {
          "line": 3,
          "column": 50
        }
      }
    },
    {
      "type": "ImportDeclaration",
      "specifiers": [
        {
          "type": "ImportSpecifier",
          "local": {
            "type": "Identifier",
            "name": "OuterSubscriber",
            "range": [
              143,
              158
            ],
            "loc": {
              "start": {
                "line": 4,
                "column": 9
              },
              "end": {
                "line": 4,
                "column": 24
              }
            }
          },
          "imported": {
            "type": "Identifier",
            "name": "OuterSubscriber",
            "range": [
              143,
              158
            ],
            "loc": {
              "start": {
                "line": 4,
                "column": 9
              },
              "end": {
                "line": 4,
                "column": 24
              }
            }
          },
          "range": [
            143,
            158
          ],
          "loc": {
            "start": {
              "line": 4,
              "column": 9
            },
            "end": {
              "line": 4,
              "column": 24
            }
          }
        }
      ],
      "source": {
        "type": "Literal",
        "value": "../OuterSubscriber",
        "raw": "'../OuterSubscriber'",
        "range": [
          166,
          186
        ],
        "loc": {
          "start": {
            "line": 4,
            "column": 32
          },
          "end": {
            "line": 4,
            "column": 52
          }
        }
      },
      "range": [
        134,
        187
      ],
      "loc": {
        "start": {
          "line": 4,
          "column": 0
        },
        "end": {
          "line": 4,
          "column": 53
        }
      }
    },
    {
      "type": "ImportDeclaration",
      "specifiers": [
        {
          "type": "ImportSpecifier",
          "local": {
            "type": "Identifier",
            "name": "subscribeToResult",
            "range": [
              197,
              214
            ],
            "loc": {
              "start": {
                "line": 5,
                "column": 9
              },
              "end": {
                "line": 5,
                "column": 26
              }
            }
          },
          "imported": {
            "type": "Identifier",
            "name": "subscribeToResult",
            "range": [
              197,
              214
            ],
            "loc": {
              "start": {
                "line": 5,
                "column": 9
              },
              "end": {
                "line": 5,
                "column": 26
              }
            }
          },
          "range": [
            197,
            214
          ],
          "loc": {
            "start": {
              "line": 5,
              "column": 9
            },
            "end": {
              "line": 5,
              "column": 26
            }
          }
        }
      ],
      "source": {
        "type": "Literal",
        "value": "../util/subscribeToResult",
        "raw": "'../util/subscribeToResult'",
        "range": [
          222,
          249
        ],
        "loc": {
          "start": {
            "line": 5,
            "column": 34
          },
          "end": {
            "line": 5,
            "column": 61
          }
        }
      },
      "range": [
        188,
        250
      ],
      "loc": {
        "start": {
          "line": 5,
          "column": 0
        },
        "end": {
          "line": 5,
          "column": 62
        }
      },
      "trailingComments": [
        {
          "type": "Block",
          "value": "*\n * Branch out the source Observable values as a nested Observable using a\n * factory function of closing Observables to determine when to start a new\n * window.\n *\n * <span class=\"informal\">It's like {@link bufferWhen}, but emits a nested\n * Observable instead of an array.</span>\n *\n * <img src=\"./img/windowWhen.png\" width=\"100%\">\n *\n * Returns an Observable that emits windows of items it collects from the source\n * Observable. The output Observable emits connected, non-overlapping windows.\n * It emits the current window and opens a new one whenever the Observable\n * produced by the specified `closingSelector` function emits an item. The first\n * window is opened immediately when subscribing to the output Observable.\n *\n * @example <caption>Emit only the first two clicks events in every window of [1-5] random seconds</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var result = clicks\n *   .windowWhen(() => Rx.Observable.interval(1000 + Math.random() * 4000))\n *   .map(win => win.take(2)) // each window has at most 2 emissions\n *   .mergeAll(); // flatten the Observable-of-Observables\n * result.subscribe(x => console.log(x));\n *\n * @see {@link window}\n * @see {@link windowCount}\n * @see {@link windowTime}\n * @see {@link windowToggle}\n * @see {@link bufferWhen}\n *\n * @param {function(): Observable} closingSelector A function that takes no\n * arguments and returns an Observable that signals (on either `next` or\n * `complete`) when to close the previous window and start a new one.\n * @return {Observable<Observable<T>>} An observable of windows, which in turn\n * are Observables.\n * @method windowWhen\n * @owner Observable\n ",
          "range": [
            251,
            1927
          ],
          "loc": {
            "start": {
              "line": 6,
              "column": 0
            },
            "end": {
              "line": 43,
              "column": 3
            }
          }
        }
      ]
    },
    {
      "type": "ExportNamedDeclaration",
      "declaration": {
        "type": "FunctionDeclaration",
        "id": {
          "type": "Identifier",
          "name": "windowWhen",
          "range": [
            1944,
            1954
          ],
          "loc": {
            "start": {
              "line": 44,
              "column": 16
            },
            "end": {
              "line": 44,
              "column": 26
            }
          }
        },
        "params": [
          {
            "type": "Identifier",
            "name": "closingSelector",
            "range": [
              1955,
              1970
            ],
            "loc": {
              "start": {
                "line": 44,
                "column": 27
              },
              "end": {
                "line": 44,
                "column": 42
              }
            }
          }
        ],
        "body": {
          "type": "BlockStatement",
          "body": [
            {
              "type": "ReturnStatement",
              "argument": {
                "type": "CallExpression",
                "callee": {
                  "type": "MemberExpression",
                  "computed": false,
                  "object": {
                    "type": "ThisExpression",
                    "range": [
                      1985,
                      1989
                    ],
                    "loc": {
                      "start": {
                        "line": 45,
                        "column": 11
                      },
                      "end": {
                        "line": 45,
                        "column": 15
                      }
                    }
                  },
                  "property": {
                    "type": "Identifier",
                    "name": "lift",
                    "range": [
                      1990,
                      1994
                    ],
                    "loc": {
                      "start": {
                        "line": 45,
                        "column": 16
                      },
                      "end": {
                        "line": 45,
                        "column": 20
                      }
                    }
                  },
                  "range": [
                    1985,
                    1994
                  ],
                  "loc": {
                    "start": {
                      "line": 45,
                      "column": 11
                    },
                    "end": {
                      "line": 45,
                      "column": 20
                    }
                  }
                },
                "arguments": [
                  {
                    "type": "NewExpression",
                    "callee": {
                      "type": "Identifier",
                      "name": "WindowOperator",
                      "range": [
                        1999,
                        2013
                      ],
                      "loc": {
                        "start": {
                          "line": 45,
                          "column": 25
                        },
                        "end": {
                          "line": 45,
                          "column": 39
                        }
                      }
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "name": "closingSelector",
                        "range": [
                          2014,
                          2029
                        ],
                        "loc": {
                          "start": {
                            "line": 45,
                            "column": 40
                          },
                          "end": {
                            "line": 45,
                            "column": 55
                          }
                        }
                      }
                    ],
                    "range": [
                      1995,
                      2030
                    ],
                    "loc": {
                      "start": {
                        "line": 45,
                        "column": 21
                      },
                      "end": {
                        "line": 45,
                        "column": 56
                      }
                    }
                  }
                ],
                "range": [
                  1985,
                  2031
                ],
                "loc": {
                  "start": {
                    "line": 45,
                    "column": 11
                  },
                  "end": {
                    "line": 45,
                    "column": 57
                  }
                }
              },
              "range": [
                1978,
                2032
              ],
              "loc": {
                "start": {
                  "line": 45,
                  "column": 4
                },
                "end": {
                  "line": 45,
                  "column": 58
                }
              }
            }
          ],
          "range": [
            1972,
            2034
          ],
          "loc": {
            "start": {
              "line": 44,
              "column": 44
            },
            "end": {
              "line": 46,
              "column": 1
            }
          }
        },
        "generator": false,
        "expression": false,
        "range": [
          1935,
          2034
        ],
        "loc": {
          "start": {
            "line": 44,
            "column": 7
          },
          "end": {
            "line": 46,
            "column": 1
          }
        },
        "leadingComments": [
          {
            "type": "Block",
            "value": "*\n * Branch out the source Observable values as a nested Observable using a\n * factory function of closing Observables to determine when to start a new\n * window.\n *\n * <span class=\"informal\">It's like {@link bufferWhen}, but emits a nested\n * Observable instead of an array.</span>\n *\n * <img src=\"./img/windowWhen.png\" width=\"100%\">\n *\n * Returns an Observable that emits windows of items it collects from the source\n * Observable. The output Observable emits connected, non-overlapping windows.\n * It emits the current window and opens a new one whenever the Observable\n * produced by the specified `closingSelector` function emits an item. The first\n * window is opened immediately when subscribing to the output Observable.\n *\n * @example <caption>Emit only the first two clicks events in every window of [1-5] random seconds</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var result = clicks\n *   .windowWhen(() => Rx.Observable.interval(1000 + Math.random() * 4000))\n *   .map(win => win.take(2)) // each window has at most 2 emissions\n *   .mergeAll(); // flatten the Observable-of-Observables\n * result.subscribe(x => console.log(x));\n *\n * @see {@link window}\n * @see {@link windowCount}\n * @see {@link windowTime}\n * @see {@link windowToggle}\n * @see {@link bufferWhen}\n *\n * @param {function(): Observable} closingSelector A function that takes no\n * arguments and returns an Observable that signals (on either `next` or\n * `complete`) when to close the previous window and start a new one.\n * @return {Observable<Observable<T>>} An observable of windows, which in turn\n * are Observables.\n * @method windowWhen\n * @owner Observable\n ",
            "range": [
              251,
              1927
            ],
            "loc": {
              "start": {
                "line": 6,
                "column": 0
              },
              "end": {
                "line": 43,
                "column": 3
              }
            }
          }
        ],
        "trailingComments": []
      },
      "specifiers": [],
      "source": null,
      "range": [
        1928,
        2034
      ],
      "loc": {
        "start": {
          "line": 44,
          "column": 0
        },
        "end": {
          "line": 46,
          "column": 1
        }
      },
      "leadingComments": [
        {
          "type": "Block",
          "value": "*\n * Branch out the source Observable values as a nested Observable using a\n * factory function of closing Observables to determine when to start a new\n * window.\n *\n * <span class=\"informal\">It's like {@link bufferWhen}, but emits a nested\n * Observable instead of an array.</span>\n *\n * <img src=\"./img/windowWhen.png\" width=\"100%\">\n *\n * Returns an Observable that emits windows of items it collects from the source\n * Observable. The output Observable emits connected, non-overlapping windows.\n * It emits the current window and opens a new one whenever the Observable\n * produced by the specified `closingSelector` function emits an item. The first\n * window is opened immediately when subscribing to the output Observable.\n *\n * @example <caption>Emit only the first two clicks events in every window of [1-5] random seconds</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var result = clicks\n *   .windowWhen(() => Rx.Observable.interval(1000 + Math.random() * 4000))\n *   .map(win => win.take(2)) // each window has at most 2 emissions\n *   .mergeAll(); // flatten the Observable-of-Observables\n * result.subscribe(x => console.log(x));\n *\n * @see {@link window}\n * @see {@link windowCount}\n * @see {@link windowTime}\n * @see {@link windowToggle}\n * @see {@link bufferWhen}\n *\n * @param {function(): Observable} closingSelector A function that takes no\n * arguments and returns an Observable that signals (on either `next` or\n * `complete`) when to close the previous window and start a new one.\n * @return {Observable<Observable<T>>} An observable of windows, which in turn\n * are Observables.\n * @method windowWhen\n * @owner Observable\n ",
          "range": [
            251,
            1927
          ],
          "loc": {
            "start": {
              "line": 6,
              "column": 0
            },
            "end": {
              "line": 43,
              "column": 3
            }
          }
        }
      ]
    },
    {
      "type": "VariableDeclaration",
      "declarations": [
        {
          "type": "VariableDeclarator",
          "id": {
            "type": "Identifier",
            "name": "WindowOperator",
            "range": [
              2039,
              2053
            ],
            "loc": {
              "start": {
                "line": 47,
                "column": 4
              },
              "end": {
                "line": 47,
                "column": 18
              }
            }
          },
          "init": {
            "type": "CallExpression",
            "callee": {
              "type": "FunctionExpression",
              "id": null,
              "params": [],
              "body": {
                "type": "BlockStatement",
                "body": [
                  {
                    "type": "FunctionDeclaration",
                    "id": {
                      "type": "Identifier",
                      "name": "WindowOperator",
                      "range": [
                        2084,
                        2098
                      ],
                      "loc": {
                        "start": {
                          "line": 48,
                          "column": 13
                        },
                        "end": {
                          "line": 48,
                          "column": 27
                        }
                      }
                    },
                    "params": [
                      {
                        "type": "Identifier",
                        "name": "closingSelector",
                        "range": [
                          2099,
                          2114
                        ],
                        "loc": {
                          "start": {
                            "line": 48,
                            "column": 28
                          },
                          "end": {
                            "line": 48,
                            "column": 43
                          }
                        }
                      }
                    ],
                    "body": {
                      "type": "BlockStatement",
                      "body": [
                        {
                          "type": "ExpressionStatement",
                          "expression": {
                            "type": "AssignmentExpression",
                            "operator": "=",
                            "left": {
                              "type": "MemberExpression",
                              "computed": false,
                              "object": {
                                "type": "ThisExpression",
                                "range": [
                                  2126,
                                  2130
                                ],
                                "loc": {
                                  "start": {
                                    "line": 49,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 49,
                                    "column": 12
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "name": "closingSelector",
                                "range": [
                                  2131,
                                  2146
                                ],
                                "loc": {
                                  "start": {
                                    "line": 49,
                                    "column": 13
                                  },
                                  "end": {
                                    "line": 49,
                                    "column": 28
                                  }
                                }
                              },
                              "range": [
                                2126,
                                2146
                              ],
                              "loc": {
                                "start": {
                                  "line": 49,
                                  "column": 8
                                },
                                "end": {
                                  "line": 49,
                                  "column": 28
                                }
                              }
                            },
                            "right": {
                              "type": "Identifier",
                              "name": "closingSelector",
                              "range": [
                                2149,
                                2164
                              ],
                              "loc": {
                                "start": {
                                  "line": 49,
                                  "column": 31
                                },
                                "end": {
                                  "line": 49,
                                  "column": 46
                                }
                              }
                            },
                            "range": [
                              2126,
                              2164
                            ],
                            "loc": {
                              "start": {
                                "line": 49,
                                "column": 8
                              },
                              "end": {
                                "line": 49,
                                "column": 46
                              }
                            }
                          },
                          "range": [
                            2126,
                            2165
                          ],
                          "loc": {
                            "start": {
                              "line": 49,
                              "column": 8
                            },
                            "end": {
                              "line": 49,
                              "column": 47
                            }
                          }
                        }
                      ],
                      "range": [
                        2116,
                        2171
                      ],
                      "loc": {
                        "start": {
                          "line": 48,
                          "column": 45
                        },
                        "end": {
                          "line": 50,
                          "column": 5
                        }
                      }
                    },
                    "generator": false,
                    "expression": false,
                    "range": [
                      2075,
                      2171
                    ],
                    "loc": {
                      "start": {
                        "line": 48,
                        "column": 4
                      },
                      "end": {
                        "line": 50,
                        "column": 5
                      }
                    }
                  },
                  {
                    "type": "ExpressionStatement",
                    "expression": {
                      "type": "AssignmentExpression",
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "computed": false,
                        "object": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "Identifier",
                            "name": "WindowOperator",
                            "range": [
                              2176,
                              2190
                            ],
                            "loc": {
                              "start": {
                                "line": 51,
                                "column": 4
                              },
                              "end": {
                                "line": 51,
                                "column": 18
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "prototype",
                            "range": [
                              2191,
                              2200
                            ],
                            "loc": {
                              "start": {
                                "line": 51,
                                "column": 19
                              },
                              "end": {
                                "line": 51,
                                "column": 28
                              }
                            }
                          },
                          "range": [
                            2176,
                            2200
                          ],
                          "loc": {
                            "start": {
                              "line": 51,
                              "column": 4
                            },
                            "end": {
                              "line": 51,
                              "column": 28
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "name": "call",
                          "range": [
                            2201,
                            2205
                          ],
                          "loc": {
                            "start": {
                              "line": 51,
                              "column": 29
                            },
                            "end": {
                              "line": 51,
                              "column": 33
                            }
                          }
                        },
                        "range": [
                          2176,
                          2205
                        ],
                        "loc": {
                          "start": {
                            "line": 51,
                            "column": 4
                          },
                          "end": {
                            "line": 51,
                            "column": 33
                          }
                        }
                      },
                      "right": {
                        "type": "FunctionExpression",
                        "id": null,
                        "params": [
                          {
                            "type": "Identifier",
                            "name": "subscriber",
                            "range": [
                              2218,
                              2228
                            ],
                            "loc": {
                              "start": {
                                "line": 51,
                                "column": 46
                              },
                              "end": {
                                "line": 51,
                                "column": 56
                              }
                            }
                          },
                          {
                            "type": "Identifier",
                            "name": "source",
                            "range": [
                              2230,
                              2236
                            ],
                            "loc": {
                              "start": {
                                "line": 51,
                                "column": 58
                              },
                              "end": {
                                "line": 51,
                                "column": 64
                              }
                            }
                          }
                        ],
                        "body": {
                          "type": "BlockStatement",
                          "body": [
                            {
                              "type": "ReturnStatement",
                              "argument": {
                                "type": "CallExpression",
                                "callee": {
                                  "type": "MemberExpression",
                                  "computed": false,
                                  "object": {
                                    "type": "Identifier",
                                    "name": "source",
                                    "range": [
                                      2255,
                                      2261
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 52,
                                        "column": 15
                                      },
                                      "end": {
                                        "line": 52,
                                        "column": 21
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "name": "_subscribe",
                                    "range": [
                                      2262,
                                      2272
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 52,
                                        "column": 22
                                      },
                                      "end": {
                                        "line": 52,
                                        "column": 32
                                      }
                                    }
                                  },
                                  "range": [
                                    2255,
                                    2272
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 52,
                                      "column": 15
                                    },
                                    "end": {
                                      "line": 52,
                                      "column": 32
                                    }
                                  }
                                },
                                "arguments": [
                                  {
                                    "type": "NewExpression",
                                    "callee": {
                                      "type": "Identifier",
                                      "name": "WindowSubscriber",
                                      "range": [
                                        2277,
                                        2293
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 52,
                                          "column": 37
                                        },
                                        "end": {
                                          "line": 52,
                                          "column": 53
                                        }
                                      }
                                    },
                                    "arguments": [
                                      {
                                        "type": "Identifier",
                                        "name": "subscriber",
                                        "range": [
                                          2294,
                                          2304
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 52,
                                            "column": 54
                                          },
                                          "end": {
                                            "line": 52,
                                            "column": 64
                                          }
                                        }
                                      },
                                      {
                                        "type": "MemberExpression",
                                        "computed": false,
                                        "object": {
                                          "type": "ThisExpression",
                                          "range": [
                                            2306,
                                            2310
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 52,
                                              "column": 66
                                            },
                                            "end": {
                                              "line": 52,
                                              "column": 70
                                            }
                                          }
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "name": "closingSelector",
                                          "range": [
                                            2311,
                                            2326
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 52,
                                              "column": 71
                                            },
                                            "end": {
                                              "line": 52,
                                              "column": 86
                                            }
                                          }
                                        },
                                        "range": [
                                          2306,
                                          2326
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 52,
                                            "column": 66
                                          },
                                          "end": {
                                            "line": 52,
                                            "column": 86
                                          }
                                        }
                                      }
                                    ],
                                    "range": [
                                      2273,
                                      2327
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 52,
                                        "column": 33
                                      },
                                      "end": {
                                        "line": 52,
                                        "column": 87
                                      }
                                    }
                                  }
                                ],
                                "range": [
                                  2255,
                                  2328
                                ],
                                "loc": {
                                  "start": {
                                    "line": 52,
                                    "column": 15
                                  },
                                  "end": {
                                    "line": 52,
                                    "column": 88
                                  }
                                }
                              },
                              "range": [
                                2248,
                                2329
                              ],
                              "loc": {
                                "start": {
                                  "line": 52,
                                  "column": 8
                                },
                                "end": {
                                  "line": 52,
                                  "column": 89
                                }
                              }
                            }
                          ],
                          "range": [
                            2238,
                            2335
                          ],
                          "loc": {
                            "start": {
                              "line": 51,
                              "column": 66
                            },
                            "end": {
                              "line": 53,
                              "column": 5
                            }
                          }
                        },
                        "generator": false,
                        "expression": false,
                        "range": [
                          2208,
                          2335
                        ],
                        "loc": {
                          "start": {
                            "line": 51,
                            "column": 36
                          },
                          "end": {
                            "line": 53,
                            "column": 5
                          }
                        }
                      },
                      "range": [
                        2176,
                        2335
                      ],
                      "loc": {
                        "start": {
                          "line": 51,
                          "column": 4
                        },
                        "end": {
                          "line": 53,
                          "column": 5
                        }
                      }
                    },
                    "range": [
                      2176,
                      2336
                    ],
                    "loc": {
                      "start": {
                        "line": 51,
                        "column": 4
                      },
                      "end": {
                        "line": 53,
                        "column": 6
                      }
                    }
                  },
                  {
                    "type": "ReturnStatement",
                    "argument": {
                      "type": "Identifier",
                      "name": "WindowOperator",
                      "range": [
                        2348,
                        2362
                      ],
                      "loc": {
                        "start": {
                          "line": 54,
                          "column": 11
                        },
                        "end": {
                          "line": 54,
                          "column": 25
                        }
                      }
                    },
                    "range": [
                      2341,
                      2363
                    ],
                    "loc": {
                      "start": {
                        "line": 54,
                        "column": 4
                      },
                      "end": {
                        "line": 54,
                        "column": 26
                      }
                    }
                  }
                ],
                "range": [
                  2069,
                  2365
                ],
                "loc": {
                  "start": {
                    "line": 47,
                    "column": 34
                  },
                  "end": {
                    "line": 55,
                    "column": 1
                  }
                }
              },
              "generator": false,
              "expression": false,
              "range": [
                2057,
                2365
              ],
              "loc": {
                "start": {
                  "line": 47,
                  "column": 22
                },
                "end": {
                  "line": 55,
                  "column": 1
                }
              }
            },
            "arguments": [],
            "range": [
              2057,
              2367
            ],
            "loc": {
              "start": {
                "line": 47,
                "column": 22
              },
              "end": {
                "line": 55,
                "column": 3
              }
            }
          },
          "range": [
            2039,
            2368
          ],
          "loc": {
            "start": {
              "line": 47,
              "column": 4
            },
            "end": {
              "line": 55,
              "column": 4
            }
          }
        }
      ],
      "kind": "var",
      "range": [
        2035,
        2369
      ],
      "loc": {
        "start": {
          "line": 47,
          "column": 0
        },
        "end": {
          "line": 55,
          "column": 5
        }
      },
      "trailingComments": [
        {
          "type": "Block",
          "value": "*\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n ",
          "range": [
            2370,
            2461
          ],
          "loc": {
            "start": {
              "line": 56,
              "column": 0
            },
            "end": {
              "line": 60,
              "column": 3
            }
          }
        }
      ]
    },
    {
      "type": "VariableDeclaration",
      "declarations": [
        {
          "type": "VariableDeclarator",
          "id": {
            "type": "Identifier",
            "name": "WindowSubscriber",
            "range": [
              2466,
              2482
            ],
            "loc": {
              "start": {
                "line": 61,
                "column": 4
              },
              "end": {
                "line": 61,
                "column": 20
              }
            }
          },
          "init": {
            "type": "CallExpression",
            "callee": {
              "type": "FunctionExpression",
              "id": null,
              "params": [
                {
                  "type": "Identifier",
                  "name": "_super",
                  "range": [
                    2496,
                    2502
                  ],
                  "loc": {
                    "start": {
                      "line": 61,
                      "column": 34
                    },
                    "end": {
                      "line": 61,
                      "column": 40
                    }
                  }
                }
              ],
              "body": {
                "type": "BlockStatement",
                "body": [
                  {
                    "type": "ExpressionStatement",
                    "expression": {
                      "type": "CallExpression",
                      "callee": {
                        "type": "Identifier",
                        "name": "__extends",
                        "range": [
                          2510,
                          2519
                        ],
                        "loc": {
                          "start": {
                            "line": 62,
                            "column": 4
                          },
                          "end": {
                            "line": 62,
                            "column": 13
                          }
                        }
                      },
                      "arguments": [
                        {
                          "type": "Identifier",
                          "name": "WindowSubscriber",
                          "range": [
                            2520,
                            2536
                          ],
                          "loc": {
                            "start": {
                              "line": 62,
                              "column": 14
                            },
                            "end": {
                              "line": 62,
                              "column": 30
                            }
                          }
                        },
                        {
                          "type": "Identifier",
                          "name": "_super",
                          "range": [
                            2538,
                            2544
                          ],
                          "loc": {
                            "start": {
                              "line": 62,
                              "column": 32
                            },
                            "end": {
                              "line": 62,
                              "column": 38
                            }
                          }
                        }
                      ],
                      "range": [
                        2510,
                        2545
                      ],
                      "loc": {
                        "start": {
                          "line": 62,
                          "column": 4
                        },
                        "end": {
                          "line": 62,
                          "column": 39
                        }
                      }
                    },
                    "range": [
                      2510,
                      2546
                    ],
                    "loc": {
                      "start": {
                        "line": 62,
                        "column": 4
                      },
                      "end": {
                        "line": 62,
                        "column": 40
                      }
                    }
                  },
                  {
                    "type": "FunctionDeclaration",
                    "id": {
                      "type": "Identifier",
                      "name": "WindowSubscriber",
                      "range": [
                        2560,
                        2576
                      ],
                      "loc": {
                        "start": {
                          "line": 63,
                          "column": 13
                        },
                        "end": {
                          "line": 63,
                          "column": 29
                        }
                      }
                    },
                    "params": [
                      {
                        "type": "Identifier",
                        "name": "destination",
                        "range": [
                          2577,
                          2588
                        ],
                        "loc": {
                          "start": {
                            "line": 63,
                            "column": 30
                          },
                          "end": {
                            "line": 63,
                            "column": 41
                          }
                        }
                      },
                      {
                        "type": "Identifier",
                        "name": "closingSelector",
                        "range": [
                          2590,
                          2605
                        ],
                        "loc": {
                          "start": {
                            "line": 63,
                            "column": 43
                          },
                          "end": {
                            "line": 63,
                            "column": 58
                          }
                        }
                      }
                    ],
                    "body": {
                      "type": "BlockStatement",
                      "body": [
                        {
                          "type": "ExpressionStatement",
                          "expression": {
                            "type": "CallExpression",
                            "callee": {
                              "type": "MemberExpression",
                              "computed": false,
                              "object": {
                                "type": "Identifier",
                                "name": "_super",
                                "range": [
                                  2617,
                                  2623
                                ],
                                "loc": {
                                  "start": {
                                    "line": 64,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 64,
                                    "column": 14
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "name": "call",
                                "range": [
                                  2624,
                                  2628
                                ],
                                "loc": {
                                  "start": {
                                    "line": 64,
                                    "column": 15
                                  },
                                  "end": {
                                    "line": 64,
                                    "column": 19
                                  }
                                }
                              },
                              "range": [
                                2617,
                                2628
                              ],
                              "loc": {
                                "start": {
                                  "line": 64,
                                  "column": 8
                                },
                                "end": {
                                  "line": 64,
                                  "column": 19
                                }
                              }
                            },
                            "arguments": [
                              {
                                "type": "ThisExpression",
                                "range": [
                                  2629,
                                  2633
                                ],
                                "loc": {
                                  "start": {
                                    "line": 64,
                                    "column": 20
                                  },
                                  "end": {
                                    "line": 64,
                                    "column": 24
                                  }
                                }
                              },
                              {
                                "type": "Identifier",
                                "name": "destination",
                                "range": [
                                  2635,
                                  2646
                                ],
                                "loc": {
                                  "start": {
                                    "line": 64,
                                    "column": 26
                                  },
                                  "end": {
                                    "line": 64,
                                    "column": 37
                                  }
                                }
                              }
                            ],
                            "range": [
                              2617,
                              2647
                            ],
                            "loc": {
                              "start": {
                                "line": 64,
                                "column": 8
                              },
                              "end": {
                                "line": 64,
                                "column": 38
                              }
                            }
                          },
                          "range": [
                            2617,
                            2648
                          ],
                          "loc": {
                            "start": {
                              "line": 64,
                              "column": 8
                            },
                            "end": {
                              "line": 64,
                              "column": 39
                            }
                          }
                        },
                        {
                          "type": "ExpressionStatement",
                          "expression": {
                            "type": "AssignmentExpression",
                            "operator": "=",
                            "left": {
                              "type": "MemberExpression",
                              "computed": false,
                              "object": {
                                "type": "ThisExpression",
                                "range": [
                                  2657,
                                  2661
                                ],
                                "loc": {
                                  "start": {
                                    "line": 65,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 65,
                                    "column": 12
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "name": "destination",
                                "range": [
                                  2662,
                                  2673
                                ],
                                "loc": {
                                  "start": {
                                    "line": 65,
                                    "column": 13
                                  },
                                  "end": {
                                    "line": 65,
                                    "column": 24
                                  }
                                }
                              },
                              "range": [
                                2657,
                                2673
                              ],
                              "loc": {
                                "start": {
                                  "line": 65,
                                  "column": 8
                                },
                                "end": {
                                  "line": 65,
                                  "column": 24
                                }
                              }
                            },
                            "right": {
                              "type": "Identifier",
                              "name": "destination",
                              "range": [
                                2676,
                                2687
                              ],
                              "loc": {
                                "start": {
                                  "line": 65,
                                  "column": 27
                                },
                                "end": {
                                  "line": 65,
                                  "column": 38
                                }
                              }
                            },
                            "range": [
                              2657,
                              2687
                            ],
                            "loc": {
                              "start": {
                                "line": 65,
                                "column": 8
                              },
                              "end": {
                                "line": 65,
                                "column": 38
                              }
                            }
                          },
                          "range": [
                            2657,
                            2688
                          ],
                          "loc": {
                            "start": {
                              "line": 65,
                              "column": 8
                            },
                            "end": {
                              "line": 65,
                              "column": 39
                            }
                          }
                        },
                        {
                          "type": "ExpressionStatement",
                          "expression": {
                            "type": "AssignmentExpression",
                            "operator": "=",
                            "left": {
                              "type": "MemberExpression",
                              "computed": false,
                              "object": {
                                "type": "ThisExpression",
                                "range": [
                                  2697,
                                  2701
                                ],
                                "loc": {
                                  "start": {
                                    "line": 66,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 66,
                                    "column": 12
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "name": "closingSelector",
                                "range": [
                                  2702,
                                  2717
                                ],
                                "loc": {
                                  "start": {
                                    "line": 66,
                                    "column": 13
                                  },
                                  "end": {
                                    "line": 66,
                                    "column": 28
                                  }
                                }
                              },
                              "range": [
                                2697,
                                2717
                              ],
                              "loc": {
                                "start": {
                                  "line": 66,
                                  "column": 8
                                },
                                "end": {
                                  "line": 66,
                                  "column": 28
                                }
                              }
                            },
                            "right": {
                              "type": "Identifier",
                              "name": "closingSelector",
                              "range": [
                                2720,
                                2735
                              ],
                              "loc": {
                                "start": {
                                  "line": 66,
                                  "column": 31
                                },
                                "end": {
                                  "line": 66,
                                  "column": 46
                                }
                              }
                            },
                            "range": [
                              2697,
                              2735
                            ],
                            "loc": {
                              "start": {
                                "line": 66,
                                "column": 8
                              },
                              "end": {
                                "line": 66,
                                "column": 46
                              }
                            }
                          },
                          "range": [
                            2697,
                            2736
                          ],
                          "loc": {
                            "start": {
                              "line": 66,
                              "column": 8
                            },
                            "end": {
                              "line": 66,
                              "column": 47
                            }
                          }
                        },
                        {
                          "type": "ExpressionStatement",
                          "expression": {
                            "type": "CallExpression",
                            "callee": {
                              "type": "MemberExpression",
                              "computed": false,
                              "object": {
                                "type": "ThisExpression",
                                "range": [
                                  2745,
                                  2749
                                ],
                                "loc": {
                                  "start": {
                                    "line": 67,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 67,
                                    "column": 12
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "name": "openWindow",
                                "range": [
                                  2750,
                                  2760
                                ],
                                "loc": {
                                  "start": {
                                    "line": 67,
                                    "column": 13
                                  },
                                  "end": {
                                    "line": 67,
                                    "column": 23
                                  }
                                }
                              },
                              "range": [
                                2745,
                                2760
                              ],
                              "loc": {
                                "start": {
                                  "line": 67,
                                  "column": 8
                                },
                                "end": {
                                  "line": 67,
                                  "column": 23
                                }
                              }
                            },
                            "arguments": [],
                            "range": [
                              2745,
                              2762
                            ],
                            "loc": {
                              "start": {
                                "line": 67,
                                "column": 8
                              },
                              "end": {
                                "line": 67,
                                "column": 25
                              }
                            }
                          },
                          "range": [
                            2745,
                            2763
                          ],
                          "loc": {
                            "start": {
                              "line": 67,
                              "column": 8
                            },
                            "end": {
                              "line": 67,
                              "column": 26
                            }
                          }
                        }
                      ],
                      "range": [
                        2607,
                        2769
                      ],
                      "loc": {
                        "start": {
                          "line": 63,
                          "column": 60
                        },
                        "end": {
                          "line": 68,
                          "column": 5
                        }
                      }
                    },
                    "generator": false,
                    "expression": false,
                    "range": [
                      2551,
                      2769
                    ],
                    "loc": {
                      "start": {
                        "line": 63,
                        "column": 4
                      },
                      "end": {
                        "line": 68,
                        "column": 5
                      }
                    }
                  },
                  {
                    "type": "ExpressionStatement",
                    "expression": {
                      "type": "AssignmentExpression",
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "computed": false,
                        "object": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "Identifier",
                            "name": "WindowSubscriber",
                            "range": [
                              2774,
                              2790
                            ],
                            "loc": {
                              "start": {
                                "line": 69,
                                "column": 4
                              },
                              "end": {
                                "line": 69,
                                "column": 20
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "prototype",
                            "range": [
                              2791,
                              2800
                            ],
                            "loc": {
                              "start": {
                                "line": 69,
                                "column": 21
                              },
                              "end": {
                                "line": 69,
                                "column": 30
                              }
                            }
                          },
                          "range": [
                            2774,
                            2800
                          ],
                          "loc": {
                            "start": {
                              "line": 69,
                              "column": 4
                            },
                            "end": {
                              "line": 69,
                              "column": 30
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "name": "notifyNext",
                          "range": [
                            2801,
                            2811
                          ],
                          "loc": {
                            "start": {
                              "line": 69,
                              "column": 31
                            },
                            "end": {
                              "line": 69,
                              "column": 41
                            }
                          }
                        },
                        "range": [
                          2774,
                          2811
                        ],
                        "loc": {
                          "start": {
                            "line": 69,
                            "column": 4
                          },
                          "end": {
                            "line": 69,
                            "column": 41
                          }
                        }
                      },
                      "right": {
                        "type": "FunctionExpression",
                        "id": null,
                        "params": [
                          {
                            "type": "Identifier",
                            "name": "outerValue",
                            "range": [
                              2824,
                              2834
                            ],
                            "loc": {
                              "start": {
                                "line": 69,
                                "column": 54
                              },
                              "end": {
                                "line": 69,
                                "column": 64
                              }
                            }
                          },
                          {
                            "type": "Identifier",
                            "name": "innerValue",
                            "range": [
                              2836,
                              2846
                            ],
                            "loc": {
                              "start": {
                                "line": 69,
                                "column": 66
                              },
                              "end": {
                                "line": 69,
                                "column": 76
                              }
                            }
                          },
                          {
                            "type": "Identifier",
                            "name": "outerIndex",
                            "range": [
                              2848,
                              2858
                            ],
                            "loc": {
                              "start": {
                                "line": 69,
                                "column": 78
                              },
                              "end": {
                                "line": 69,
                                "column": 88
                              }
                            }
                          },
                          {
                            "type": "Identifier",
                            "name": "innerIndex",
                            "range": [
                              2860,
                              2870
                            ],
                            "loc": {
                              "start": {
                                "line": 69,
                                "column": 90
                              },
                              "end": {
                                "line": 69,
                                "column": 100
                              }
                            }
                          },
                          {
                            "type": "Identifier",
                            "name": "innerSub",
                            "range": [
                              2872,
                              2880
                            ],
                            "loc": {
                              "start": {
                                "line": 69,
                                "column": 102
                              },
                              "end": {
                                "line": 69,
                                "column": 110
                              }
                            }
                          }
                        ],
                        "body": {
                          "type": "BlockStatement",
                          "body": [
                            {
                              "type": "ExpressionStatement",
                              "expression": {
                                "type": "CallExpression",
                                "callee": {
                                  "type": "MemberExpression",
                                  "computed": false,
                                  "object": {
                                    "type": "ThisExpression",
                                    "range": [
                                      2892,
                                      2896
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 70,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 70,
                                        "column": 12
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "name": "openWindow",
                                    "range": [
                                      2897,
                                      2907
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 70,
                                        "column": 13
                                      },
                                      "end": {
                                        "line": 70,
                                        "column": 23
                                      }
                                    }
                                  },
                                  "range": [
                                    2892,
                                    2907
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 70,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 70,
                                      "column": 23
                                    }
                                  }
                                },
                                "arguments": [
                                  {
                                    "type": "Identifier",
                                    "name": "innerSub",
                                    "range": [
                                      2908,
                                      2916
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 70,
                                        "column": 24
                                      },
                                      "end": {
                                        "line": 70,
                                        "column": 32
                                      }
                                    }
                                  }
                                ],
                                "range": [
                                  2892,
                                  2917
                                ],
                                "loc": {
                                  "start": {
                                    "line": 70,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 70,
                                    "column": 33
                                  }
                                }
                              },
                              "range": [
                                2892,
                                2918
                              ],
                              "loc": {
                                "start": {
                                  "line": 70,
                                  "column": 8
                                },
                                "end": {
                                  "line": 70,
                                  "column": 34
                                }
                              }
                            }
                          ],
                          "range": [
                            2882,
                            2924
                          ],
                          "loc": {
                            "start": {
                              "line": 69,
                              "column": 112
                            },
                            "end": {
                              "line": 71,
                              "column": 5
                            }
                          }
                        },
                        "generator": false,
                        "expression": false,
                        "range": [
                          2814,
                          2924
                        ],
                        "loc": {
                          "start": {
                            "line": 69,
                            "column": 44
                          },
                          "end": {
                            "line": 71,
                            "column": 5
                          }
                        }
                      },
                      "range": [
                        2774,
                        2924
                      ],
                      "loc": {
                        "start": {
                          "line": 69,
                          "column": 4
                        },
                        "end": {
                          "line": 71,
                          "column": 5
                        }
                      }
                    },
                    "range": [
                      2774,
                      2925
                    ],
                    "loc": {
                      "start": {
                        "line": 69,
                        "column": 4
                      },
                      "end": {
                        "line": 71,
                        "column": 6
                      }
                    }
                  },
                  {
                    "type": "ExpressionStatement",
                    "expression": {
                      "type": "AssignmentExpression",
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "computed": false,
                        "object": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "Identifier",
                            "name": "WindowSubscriber",
                            "range": [
                              2930,
                              2946
                            ],
                            "loc": {
                              "start": {
                                "line": 72,
                                "column": 4
                              },
                              "end": {
                                "line": 72,
                                "column": 20
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "prototype",
                            "range": [
                              2947,
                              2956
                            ],
                            "loc": {
                              "start": {
                                "line": 72,
                                "column": 21
                              },
                              "end": {
                                "line": 72,
                                "column": 30
                              }
                            }
                          },
                          "range": [
                            2930,
                            2956
                          ],
                          "loc": {
                            "start": {
                              "line": 72,
                              "column": 4
                            },
                            "end": {
                              "line": 72,
                              "column": 30
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "name": "notifyError",
                          "range": [
                            2957,
                            2968
                          ],
                          "loc": {
                            "start": {
                              "line": 72,
                              "column": 31
                            },
                            "end": {
                              "line": 72,
                              "column": 42
                            }
                          }
                        },
                        "range": [
                          2930,
                          2968
                        ],
                        "loc": {
                          "start": {
                            "line": 72,
                            "column": 4
                          },
                          "end": {
                            "line": 72,
                            "column": 42
                          }
                        }
                      },
                      "right": {
                        "type": "FunctionExpression",
                        "id": null,
                        "params": [
                          {
                            "type": "Identifier",
                            "name": "error",
                            "range": [
                              2981,
                              2986
                            ],
                            "loc": {
                              "start": {
                                "line": 72,
                                "column": 55
                              },
                              "end": {
                                "line": 72,
                                "column": 60
                              }
                            }
                          },
                          {
                            "type": "Identifier",
                            "name": "innerSub",
                            "range": [
                              2988,
                              2996
                            ],
                            "loc": {
                              "start": {
                                "line": 72,
                                "column": 62
                              },
                              "end": {
                                "line": 72,
                                "column": 70
                              }
                            }
                          }
                        ],
                        "body": {
                          "type": "BlockStatement",
                          "body": [
                            {
                              "type": "ExpressionStatement",
                              "expression": {
                                "type": "CallExpression",
                                "callee": {
                                  "type": "MemberExpression",
                                  "computed": false,
                                  "object": {
                                    "type": "ThisExpression",
                                    "range": [
                                      3008,
                                      3012
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 73,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 73,
                                        "column": 12
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "name": "_error",
                                    "range": [
                                      3013,
                                      3019
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 73,
                                        "column": 13
                                      },
                                      "end": {
                                        "line": 73,
                                        "column": 19
                                      }
                                    }
                                  },
                                  "range": [
                                    3008,
                                    3019
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 73,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 73,
                                      "column": 19
                                    }
                                  }
                                },
                                "arguments": [
                                  {
                                    "type": "Identifier",
                                    "name": "error",
                                    "range": [
                                      3020,
                                      3025
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 73,
                                        "column": 20
                                      },
                                      "end": {
                                        "line": 73,
                                        "column": 25
                                      }
                                    }
                                  }
                                ],
                                "range": [
                                  3008,
                                  3026
                                ],
                                "loc": {
                                  "start": {
                                    "line": 73,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 73,
                                    "column": 26
                                  }
                                }
                              },
                              "range": [
                                3008,
                                3027
                              ],
                              "loc": {
                                "start": {
                                  "line": 73,
                                  "column": 8
                                },
                                "end": {
                                  "line": 73,
                                  "column": 27
                                }
                              }
                            }
                          ],
                          "range": [
                            2998,
                            3033
                          ],
                          "loc": {
                            "start": {
                              "line": 72,
                              "column": 72
                            },
                            "end": {
                              "line": 74,
                              "column": 5
                            }
                          }
                        },
                        "generator": false,
                        "expression": false,
                        "range": [
                          2971,
                          3033
                        ],
                        "loc": {
                          "start": {
                            "line": 72,
                            "column": 45
                          },
                          "end": {
                            "line": 74,
                            "column": 5
                          }
                        }
                      },
                      "range": [
                        2930,
                        3033
                      ],
                      "loc": {
                        "start": {
                          "line": 72,
                          "column": 4
                        },
                        "end": {
                          "line": 74,
                          "column": 5
                        }
                      }
                    },
                    "range": [
                      2930,
                      3034
                    ],
                    "loc": {
                      "start": {
                        "line": 72,
                        "column": 4
                      },
                      "end": {
                        "line": 74,
                        "column": 6
                      }
                    }
                  },
                  {
                    "type": "ExpressionStatement",
                    "expression": {
                      "type": "AssignmentExpression",
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "computed": false,
                        "object": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "Identifier",
                            "name": "WindowSubscriber",
                            "range": [
                              3039,
                              3055
                            ],
                            "loc": {
                              "start": {
                                "line": 75,
                                "column": 4
                              },
                              "end": {
                                "line": 75,
                                "column": 20
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "prototype",
                            "range": [
                              3056,
                              3065
                            ],
                            "loc": {
                              "start": {
                                "line": 75,
                                "column": 21
                              },
                              "end": {
                                "line": 75,
                                "column": 30
                              }
                            }
                          },
                          "range": [
                            3039,
                            3065
                          ],
                          "loc": {
                            "start": {
                              "line": 75,
                              "column": 4
                            },
                            "end": {
                              "line": 75,
                              "column": 30
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "name": "notifyComplete",
                          "range": [
                            3066,
                            3080
                          ],
                          "loc": {
                            "start": {
                              "line": 75,
                              "column": 31
                            },
                            "end": {
                              "line": 75,
                              "column": 45
                            }
                          }
                        },
                        "range": [
                          3039,
                          3080
                        ],
                        "loc": {
                          "start": {
                            "line": 75,
                            "column": 4
                          },
                          "end": {
                            "line": 75,
                            "column": 45
                          }
                        }
                      },
                      "right": {
                        "type": "FunctionExpression",
                        "id": null,
                        "params": [
                          {
                            "type": "Identifier",
                            "name": "innerSub",
                            "range": [
                              3093,
                              3101
                            ],
                            "loc": {
                              "start": {
                                "line": 75,
                                "column": 58
                              },
                              "end": {
                                "line": 75,
                                "column": 66
                              }
                            }
                          }
                        ],
                        "body": {
                          "type": "BlockStatement",
                          "body": [
                            {
                              "type": "ExpressionStatement",
                              "expression": {
                                "type": "CallExpression",
                                "callee": {
                                  "type": "MemberExpression",
                                  "computed": false,
                                  "object": {
                                    "type": "ThisExpression",
                                    "range": [
                                      3113,
                                      3117
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 76,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 76,
                                        "column": 12
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "name": "openWindow",
                                    "range": [
                                      3118,
                                      3128
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 76,
                                        "column": 13
                                      },
                                      "end": {
                                        "line": 76,
                                        "column": 23
                                      }
                                    }
                                  },
                                  "range": [
                                    3113,
                                    3128
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 76,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 76,
                                      "column": 23
                                    }
                                  }
                                },
                                "arguments": [
                                  {
                                    "type": "Identifier",
                                    "name": "innerSub",
                                    "range": [
                                      3129,
                                      3137
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 76,
                                        "column": 24
                                      },
                                      "end": {
                                        "line": 76,
                                        "column": 32
                                      }
                                    }
                                  }
                                ],
                                "range": [
                                  3113,
                                  3138
                                ],
                                "loc": {
                                  "start": {
                                    "line": 76,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 76,
                                    "column": 33
                                  }
                                }
                              },
                              "range": [
                                3113,
                                3139
                              ],
                              "loc": {
                                "start": {
                                  "line": 76,
                                  "column": 8
                                },
                                "end": {
                                  "line": 76,
                                  "column": 34
                                }
                              }
                            }
                          ],
                          "range": [
                            3103,
                            3145
                          ],
                          "loc": {
                            "start": {
                              "line": 75,
                              "column": 68
                            },
                            "end": {
                              "line": 77,
                              "column": 5
                            }
                          }
                        },
                        "generator": false,
                        "expression": false,
                        "range": [
                          3083,
                          3145
                        ],
                        "loc": {
                          "start": {
                            "line": 75,
                            "column": 48
                          },
                          "end": {
                            "line": 77,
                            "column": 5
                          }
                        }
                      },
                      "range": [
                        3039,
                        3145
                      ],
                      "loc": {
                        "start": {
                          "line": 75,
                          "column": 4
                        },
                        "end": {
                          "line": 77,
                          "column": 5
                        }
                      }
                    },
                    "range": [
                      3039,
                      3146
                    ],
                    "loc": {
                      "start": {
                        "line": 75,
                        "column": 4
                      },
                      "end": {
                        "line": 77,
                        "column": 6
                      }
                    }
                  },
                  {
                    "type": "ExpressionStatement",
                    "expression": {
                      "type": "AssignmentExpression",
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "computed": false,
                        "object": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "Identifier",
                            "name": "WindowSubscriber",
                            "range": [
                              3151,
                              3167
                            ],
                            "loc": {
                              "start": {
                                "line": 78,
                                "column": 4
                              },
                              "end": {
                                "line": 78,
                                "column": 20
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "prototype",
                            "range": [
                              3168,
                              3177
                            ],
                            "loc": {
                              "start": {
                                "line": 78,
                                "column": 21
                              },
                              "end": {
                                "line": 78,
                                "column": 30
                              }
                            }
                          },
                          "range": [
                            3151,
                            3177
                          ],
                          "loc": {
                            "start": {
                              "line": 78,
                              "column": 4
                            },
                            "end": {
                              "line": 78,
                              "column": 30
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "name": "_next",
                          "range": [
                            3178,
                            3183
                          ],
                          "loc": {
                            "start": {
                              "line": 78,
                              "column": 31
                            },
                            "end": {
                              "line": 78,
                              "column": 36
                            }
                          }
                        },
                        "range": [
                          3151,
                          3183
                        ],
                        "loc": {
                          "start": {
                            "line": 78,
                            "column": 4
                          },
                          "end": {
                            "line": 78,
                            "column": 36
                          }
                        }
                      },
                      "right": {
                        "type": "FunctionExpression",
                        "id": null,
                        "params": [
                          {
                            "type": "Identifier",
                            "name": "value",
                            "range": [
                              3196,
                              3201
                            ],
                            "loc": {
                              "start": {
                                "line": 78,
                                "column": 49
                              },
                              "end": {
                                "line": 78,
                                "column": 54
                              }
                            }
                          }
                        ],
                        "body": {
                          "type": "BlockStatement",
                          "body": [
                            {
                              "type": "ExpressionStatement",
                              "expression": {
                                "type": "CallExpression",
                                "callee": {
                                  "type": "MemberExpression",
                                  "computed": false,
                                  "object": {
                                    "type": "MemberExpression",
                                    "computed": false,
                                    "object": {
                                      "type": "ThisExpression",
                                      "range": [
                                        3213,
                                        3217
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 79,
                                          "column": 8
                                        },
                                        "end": {
                                          "line": 79,
                                          "column": 12
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "name": "window",
                                      "range": [
                                        3218,
                                        3224
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 79,
                                          "column": 13
                                        },
                                        "end": {
                                          "line": 79,
                                          "column": 19
                                        }
                                      }
                                    },
                                    "range": [
                                      3213,
                                      3224
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 79,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 79,
                                        "column": 19
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "name": "next",
                                    "range": [
                                      3225,
                                      3229
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 79,
                                        "column": 20
                                      },
                                      "end": {
                                        "line": 79,
                                        "column": 24
                                      }
                                    }
                                  },
                                  "range": [
                                    3213,
                                    3229
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 79,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 79,
                                      "column": 24
                                    }
                                  }
                                },
                                "arguments": [
                                  {
                                    "type": "Identifier",
                                    "name": "value",
                                    "range": [
                                      3230,
                                      3235
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 79,
                                        "column": 25
                                      },
                                      "end": {
                                        "line": 79,
                                        "column": 30
                                      }
                                    }
                                  }
                                ],
                                "range": [
                                  3213,
                                  3236
                                ],
                                "loc": {
                                  "start": {
                                    "line": 79,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 79,
                                    "column": 31
                                  }
                                }
                              },
                              "range": [
                                3213,
                                3237
                              ],
                              "loc": {
                                "start": {
                                  "line": 79,
                                  "column": 8
                                },
                                "end": {
                                  "line": 79,
                                  "column": 32
                                }
                              }
                            }
                          ],
                          "range": [
                            3203,
                            3243
                          ],
                          "loc": {
                            "start": {
                              "line": 78,
                              "column": 56
                            },
                            "end": {
                              "line": 80,
                              "column": 5
                            }
                          }
                        },
                        "generator": false,
                        "expression": false,
                        "range": [
                          3186,
                          3243
                        ],
                        "loc": {
                          "start": {
                            "line": 78,
                            "column": 39
                          },
                          "end": {
                            "line": 80,
                            "column": 5
                          }
                        }
                      },
                      "range": [
                        3151,
                        3243
                      ],
                      "loc": {
                        "start": {
                          "line": 78,
                          "column": 4
                        },
                        "end": {
                          "line": 80,
                          "column": 5
                        }
                      }
                    },
                    "range": [
                      3151,
                      3244
                    ],
                    "loc": {
                      "start": {
                        "line": 78,
                        "column": 4
                      },
                      "end": {
                        "line": 80,
                        "column": 6
                      }
                    }
                  },
                  {
                    "type": "ExpressionStatement",
                    "expression": {
                      "type": "AssignmentExpression",
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "computed": false,
                        "object": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "Identifier",
                            "name": "WindowSubscriber",
                            "range": [
                              3249,
                              3265
                            ],
                            "loc": {
                              "start": {
                                "line": 81,
                                "column": 4
                              },
                              "end": {
                                "line": 81,
                                "column": 20
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "prototype",
                            "range": [
                              3266,
                              3275
                            ],
                            "loc": {
                              "start": {
                                "line": 81,
                                "column": 21
                              },
                              "end": {
                                "line": 81,
                                "column": 30
                              }
                            }
                          },
                          "range": [
                            3249,
                            3275
                          ],
                          "loc": {
                            "start": {
                              "line": 81,
                              "column": 4
                            },
                            "end": {
                              "line": 81,
                              "column": 30
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "name": "_error",
                          "range": [
                            3276,
                            3282
                          ],
                          "loc": {
                            "start": {
                              "line": 81,
                              "column": 31
                            },
                            "end": {
                              "line": 81,
                              "column": 37
                            }
                          }
                        },
                        "range": [
                          3249,
                          3282
                        ],
                        "loc": {
                          "start": {
                            "line": 81,
                            "column": 4
                          },
                          "end": {
                            "line": 81,
                            "column": 37
                          }
                        }
                      },
                      "right": {
                        "type": "FunctionExpression",
                        "id": null,
                        "params": [
                          {
                            "type": "Identifier",
                            "name": "err",
                            "range": [
                              3295,
                              3298
                            ],
                            "loc": {
                              "start": {
                                "line": 81,
                                "column": 50
                              },
                              "end": {
                                "line": 81,
                                "column": 53
                              }
                            }
                          }
                        ],
                        "body": {
                          "type": "BlockStatement",
                          "body": [
                            {
                              "type": "ExpressionStatement",
                              "expression": {
                                "type": "CallExpression",
                                "callee": {
                                  "type": "MemberExpression",
                                  "computed": false,
                                  "object": {
                                    "type": "MemberExpression",
                                    "computed": false,
                                    "object": {
                                      "type": "ThisExpression",
                                      "range": [
                                        3310,
                                        3314
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 82,
                                          "column": 8
                                        },
                                        "end": {
                                          "line": 82,
                                          "column": 12
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "name": "window",
                                      "range": [
                                        3315,
                                        3321
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 82,
                                          "column": 13
                                        },
                                        "end": {
                                          "line": 82,
                                          "column": 19
                                        }
                                      }
                                    },
                                    "range": [
                                      3310,
                                      3321
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 82,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 82,
                                        "column": 19
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "name": "error",
                                    "range": [
                                      3322,
                                      3327
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 82,
                                        "column": 20
                                      },
                                      "end": {
                                        "line": 82,
                                        "column": 25
                                      }
                                    }
                                  },
                                  "range": [
                                    3310,
                                    3327
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 82,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 82,
                                      "column": 25
                                    }
                                  }
                                },
                                "arguments": [
                                  {
                                    "type": "Identifier",
                                    "name": "err",
                                    "range": [
                                      3328,
                                      3331
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 82,
                                        "column": 26
                                      },
                                      "end": {
                                        "line": 82,
                                        "column": 29
                                      }
                                    }
                                  }
                                ],
                                "range": [
                                  3310,
                                  3332
                                ],
                                "loc": {
                                  "start": {
                                    "line": 82,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 82,
                                    "column": 30
                                  }
                                }
                              },
                              "range": [
                                3310,
                                3333
                              ],
                              "loc": {
                                "start": {
                                  "line": 82,
                                  "column": 8
                                },
                                "end": {
                                  "line": 82,
                                  "column": 31
                                }
                              }
                            },
                            {
                              "type": "ExpressionStatement",
                              "expression": {
                                "type": "CallExpression",
                                "callee": {
                                  "type": "MemberExpression",
                                  "computed": false,
                                  "object": {
                                    "type": "MemberExpression",
                                    "computed": false,
                                    "object": {
                                      "type": "ThisExpression",
                                      "range": [
                                        3342,
                                        3346
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 83,
                                          "column": 8
                                        },
                                        "end": {
                                          "line": 83,
                                          "column": 12
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "name": "destination",
                                      "range": [
                                        3347,
                                        3358
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 83,
                                          "column": 13
                                        },
                                        "end": {
                                          "line": 83,
                                          "column": 24
                                        }
                                      }
                                    },
                                    "range": [
                                      3342,
                                      3358
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 83,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 83,
                                        "column": 24
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "name": "error",
                                    "range": [
                                      3359,
                                      3364
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 83,
                                        "column": 25
                                      },
                                      "end": {
                                        "line": 83,
                                        "column": 30
                                      }
                                    }
                                  },
                                  "range": [
                                    3342,
                                    3364
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 83,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 83,
                                      "column": 30
                                    }
                                  }
                                },
                                "arguments": [
                                  {
                                    "type": "Identifier",
                                    "name": "err",
                                    "range": [
                                      3365,
                                      3368
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 83,
                                        "column": 31
                                      },
                                      "end": {
                                        "line": 83,
                                        "column": 34
                                      }
                                    }
                                  }
                                ],
                                "range": [
                                  3342,
                                  3369
                                ],
                                "loc": {
                                  "start": {
                                    "line": 83,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 83,
                                    "column": 35
                                  }
                                }
                              },
                              "range": [
                                3342,
                                3370
                              ],
                              "loc": {
                                "start": {
                                  "line": 83,
                                  "column": 8
                                },
                                "end": {
                                  "line": 83,
                                  "column": 36
                                }
                              }
                            },
                            {
                              "type": "ExpressionStatement",
                              "expression": {
                                "type": "CallExpression",
                                "callee": {
                                  "type": "MemberExpression",
                                  "computed": false,
                                  "object": {
                                    "type": "ThisExpression",
                                    "range": [
                                      3379,
                                      3383
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 84,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 84,
                                        "column": 12
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "name": "unsubscribeClosingNotification",
                                    "range": [
                                      3384,
                                      3414
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 84,
                                        "column": 13
                                      },
                                      "end": {
                                        "line": 84,
                                        "column": 43
                                      }
                                    }
                                  },
                                  "range": [
                                    3379,
                                    3414
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 84,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 84,
                                      "column": 43
                                    }
                                  }
                                },
                                "arguments": [],
                                "range": [
                                  3379,
                                  3416
                                ],
                                "loc": {
                                  "start": {
                                    "line": 84,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 84,
                                    "column": 45
                                  }
                                }
                              },
                              "range": [
                                3379,
                                3417
                              ],
                              "loc": {
                                "start": {
                                  "line": 84,
                                  "column": 8
                                },
                                "end": {
                                  "line": 84,
                                  "column": 46
                                }
                              }
                            }
                          ],
                          "range": [
                            3300,
                            3423
                          ],
                          "loc": {
                            "start": {
                              "line": 81,
                              "column": 55
                            },
                            "end": {
                              "line": 85,
                              "column": 5
                            }
                          }
                        },
                        "generator": false,
                        "expression": false,
                        "range": [
                          3285,
                          3423
                        ],
                        "loc": {
                          "start": {
                            "line": 81,
                            "column": 40
                          },
                          "end": {
                            "line": 85,
                            "column": 5
                          }
                        }
                      },
                      "range": [
                        3249,
                        3423
                      ],
                      "loc": {
                        "start": {
                          "line": 81,
                          "column": 4
                        },
                        "end": {
                          "line": 85,
                          "column": 5
                        }
                      }
                    },
                    "range": [
                      3249,
                      3424
                    ],
                    "loc": {
                      "start": {
                        "line": 81,
                        "column": 4
                      },
                      "end": {
                        "line": 85,
                        "column": 6
                      }
                    }
                  },
                  {
                    "type": "ExpressionStatement",
                    "expression": {
                      "type": "AssignmentExpression",
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "computed": false,
                        "object": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "Identifier",
                            "name": "WindowSubscriber",
                            "range": [
                              3429,
                              3445
                            ],
                            "loc": {
                              "start": {
                                "line": 86,
                                "column": 4
                              },
                              "end": {
                                "line": 86,
                                "column": 20
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "prototype",
                            "range": [
                              3446,
                              3455
                            ],
                            "loc": {
                              "start": {
                                "line": 86,
                                "column": 21
                              },
                              "end": {
                                "line": 86,
                                "column": 30
                              }
                            }
                          },
                          "range": [
                            3429,
                            3455
                          ],
                          "loc": {
                            "start": {
                              "line": 86,
                              "column": 4
                            },
                            "end": {
                              "line": 86,
                              "column": 30
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "name": "_complete",
                          "range": [
                            3456,
                            3465
                          ],
                          "loc": {
                            "start": {
                              "line": 86,
                              "column": 31
                            },
                            "end": {
                              "line": 86,
                              "column": 40
                            }
                          }
                        },
                        "range": [
                          3429,
                          3465
                        ],
                        "loc": {
                          "start": {
                            "line": 86,
                            "column": 4
                          },
                          "end": {
                            "line": 86,
                            "column": 40
                          }
                        }
                      },
                      "right": {
                        "type": "FunctionExpression",
                        "id": null,
                        "params": [],
                        "body": {
                          "type": "BlockStatement",
                          "body": [
                            {
                              "type": "ExpressionStatement",
                              "expression": {
                                "type": "CallExpression",
                                "callee": {
                                  "type": "MemberExpression",
                                  "computed": false,
                                  "object": {
                                    "type": "MemberExpression",
                                    "computed": false,
                                    "object": {
                                      "type": "ThisExpression",
                                      "range": [
                                        3490,
                                        3494
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 87,
                                          "column": 8
                                        },
                                        "end": {
                                          "line": 87,
                                          "column": 12
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "name": "window",
                                      "range": [
                                        3495,
                                        3501
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 87,
                                          "column": 13
                                        },
                                        "end": {
                                          "line": 87,
                                          "column": 19
                                        }
                                      }
                                    },
                                    "range": [
                                      3490,
                                      3501
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 87,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 87,
                                        "column": 19
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "name": "complete",
                                    "range": [
                                      3502,
                                      3510
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 87,
                                        "column": 20
                                      },
                                      "end": {
                                        "line": 87,
                                        "column": 28
                                      }
                                    }
                                  },
                                  "range": [
                                    3490,
                                    3510
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 87,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 87,
                                      "column": 28
                                    }
                                  }
                                },
                                "arguments": [],
                                "range": [
                                  3490,
                                  3512
                                ],
                                "loc": {
                                  "start": {
                                    "line": 87,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 87,
                                    "column": 30
                                  }
                                }
                              },
                              "range": [
                                3490,
                                3513
                              ],
                              "loc": {
                                "start": {
                                  "line": 87,
                                  "column": 8
                                },
                                "end": {
                                  "line": 87,
                                  "column": 31
                                }
                              }
                            },
                            {
                              "type": "ExpressionStatement",
                              "expression": {
                                "type": "CallExpression",
                                "callee": {
                                  "type": "MemberExpression",
                                  "computed": false,
                                  "object": {
                                    "type": "MemberExpression",
                                    "computed": false,
                                    "object": {
                                      "type": "ThisExpression",
                                      "range": [
                                        3522,
                                        3526
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 88,
                                          "column": 8
                                        },
                                        "end": {
                                          "line": 88,
                                          "column": 12
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "name": "destination",
                                      "range": [
                                        3527,
                                        3538
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 88,
                                          "column": 13
                                        },
                                        "end": {
                                          "line": 88,
                                          "column": 24
                                        }
                                      }
                                    },
                                    "range": [
                                      3522,
                                      3538
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 88,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 88,
                                        "column": 24
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "name": "complete",
                                    "range": [
                                      3539,
                                      3547
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 88,
                                        "column": 25
                                      },
                                      "end": {
                                        "line": 88,
                                        "column": 33
                                      }
                                    }
                                  },
                                  "range": [
                                    3522,
                                    3547
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 88,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 88,
                                      "column": 33
                                    }
                                  }
                                },
                                "arguments": [],
                                "range": [
                                  3522,
                                  3549
                                ],
                                "loc": {
                                  "start": {
                                    "line": 88,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 88,
                                    "column": 35
                                  }
                                }
                              },
                              "range": [
                                3522,
                                3550
                              ],
                              "loc": {
                                "start": {
                                  "line": 88,
                                  "column": 8
                                },
                                "end": {
                                  "line": 88,
                                  "column": 36
                                }
                              }
                            },
                            {
                              "type": "ExpressionStatement",
                              "expression": {
                                "type": "CallExpression",
                                "callee": {
                                  "type": "MemberExpression",
                                  "computed": false,
                                  "object": {
                                    "type": "ThisExpression",
                                    "range": [
                                      3559,
                                      3563
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 89,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 89,
                                        "column": 12
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "name": "unsubscribeClosingNotification",
                                    "range": [
                                      3564,
                                      3594
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 89,
                                        "column": 13
                                      },
                                      "end": {
                                        "line": 89,
                                        "column": 43
                                      }
                                    }
                                  },
                                  "range": [
                                    3559,
                                    3594
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 89,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 89,
                                      "column": 43
                                    }
                                  }
                                },
                                "arguments": [],
                                "range": [
                                  3559,
                                  3596
                                ],
                                "loc": {
                                  "start": {
                                    "line": 89,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 89,
                                    "column": 45
                                  }
                                }
                              },
                              "range": [
                                3559,
                                3597
                              ],
                              "loc": {
                                "start": {
                                  "line": 89,
                                  "column": 8
                                },
                                "end": {
                                  "line": 89,
                                  "column": 46
                                }
                              }
                            }
                          ],
                          "range": [
                            3480,
                            3603
                          ],
                          "loc": {
                            "start": {
                              "line": 86,
                              "column": 55
                            },
                            "end": {
                              "line": 90,
                              "column": 5
                            }
                          }
                        },
                        "generator": false,
                        "expression": false,
                        "range": [
                          3468,
                          3603
                        ],
                        "loc": {
                          "start": {
                            "line": 86,
                            "column": 43
                          },
                          "end": {
                            "line": 90,
                            "column": 5
                          }
                        }
                      },
                      "range": [
                        3429,
                        3603
                      ],
                      "loc": {
                        "start": {
                          "line": 86,
                          "column": 4
                        },
                        "end": {
                          "line": 90,
                          "column": 5
                        }
                      }
                    },
                    "range": [
                      3429,
                      3604
                    ],
                    "loc": {
                      "start": {
                        "line": 86,
                        "column": 4
                      },
                      "end": {
                        "line": 90,
                        "column": 6
                      }
                    }
                  },
                  {
                    "type": "ExpressionStatement",
                    "expression": {
                      "type": "AssignmentExpression",
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "computed": false,
                        "object": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "Identifier",
                            "name": "WindowSubscriber",
                            "range": [
                              3609,
                              3625
                            ],
                            "loc": {
                              "start": {
                                "line": 91,
                                "column": 4
                              },
                              "end": {
                                "line": 91,
                                "column": 20
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "prototype",
                            "range": [
                              3626,
                              3635
                            ],
                            "loc": {
                              "start": {
                                "line": 91,
                                "column": 21
                              },
                              "end": {
                                "line": 91,
                                "column": 30
                              }
                            }
                          },
                          "range": [
                            3609,
                            3635
                          ],
                          "loc": {
                            "start": {
                              "line": 91,
                              "column": 4
                            },
                            "end": {
                              "line": 91,
                              "column": 30
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "name": "unsubscribeClosingNotification",
                          "range": [
                            3636,
                            3666
                          ],
                          "loc": {
                            "start": {
                              "line": 91,
                              "column": 31
                            },
                            "end": {
                              "line": 91,
                              "column": 61
                            }
                          }
                        },
                        "range": [
                          3609,
                          3666
                        ],
                        "loc": {
                          "start": {
                            "line": 91,
                            "column": 4
                          },
                          "end": {
                            "line": 91,
                            "column": 61
                          }
                        }
                      },
                      "right": {
                        "type": "FunctionExpression",
                        "id": null,
                        "params": [],
                        "body": {
                          "type": "BlockStatement",
                          "body": [
                            {
                              "type": "IfStatement",
                              "test": {
                                "type": "MemberExpression",
                                "computed": false,
                                "object": {
                                  "type": "ThisExpression",
                                  "range": [
                                    3695,
                                    3699
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 92,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 92,
                                      "column": 16
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "name": "closingNotification",
                                  "range": [
                                    3700,
                                    3719
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 92,
                                      "column": 17
                                    },
                                    "end": {
                                      "line": 92,
                                      "column": 36
                                    }
                                  }
                                },
                                "range": [
                                  3695,
                                  3719
                                ],
                                "loc": {
                                  "start": {
                                    "line": 92,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 92,
                                    "column": 36
                                  }
                                }
                              },
                              "consequent": {
                                "type": "BlockStatement",
                                "body": [
                                  {
                                    "type": "ExpressionStatement",
                                    "expression": {
                                      "type": "CallExpression",
                                      "callee": {
                                        "type": "MemberExpression",
                                        "computed": false,
                                        "object": {
                                          "type": "MemberExpression",
                                          "computed": false,
                                          "object": {
                                            "type": "ThisExpression",
                                            "range": [
                                              3735,
                                              3739
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 93,
                                                "column": 12
                                              },
                                              "end": {
                                                "line": 93,
                                                "column": 16
                                              }
                                            }
                                          },
                                          "property": {
                                            "type": "Identifier",
                                            "name": "closingNotification",
                                            "range": [
                                              3740,
                                              3759
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 93,
                                                "column": 17
                                              },
                                              "end": {
                                                "line": 93,
                                                "column": 36
                                              }
                                            }
                                          },
                                          "range": [
                                            3735,
                                            3759
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 93,
                                              "column": 12
                                            },
                                            "end": {
                                              "line": 93,
                                              "column": 36
                                            }
                                          }
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "name": "unsubscribe",
                                          "range": [
                                            3760,
                                            3771
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 93,
                                              "column": 37
                                            },
                                            "end": {
                                              "line": 93,
                                              "column": 48
                                            }
                                          }
                                        },
                                        "range": [
                                          3735,
                                          3771
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 93,
                                            "column": 12
                                          },
                                          "end": {
                                            "line": 93,
                                            "column": 48
                                          }
                                        }
                                      },
                                      "arguments": [],
                                      "range": [
                                        3735,
                                        3773
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 93,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 93,
                                          "column": 50
                                        }
                                      }
                                    },
                                    "range": [
                                      3735,
                                      3774
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 93,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 93,
                                        "column": 51
                                      }
                                    }
                                  }
                                ],
                                "range": [
                                  3721,
                                  3784
                                ],
                                "loc": {
                                  "start": {
                                    "line": 92,
                                    "column": 38
                                  },
                                  "end": {
                                    "line": 94,
                                    "column": 9
                                  }
                                }
                              },
                              "alternate": null,
                              "range": [
                                3691,
                                3784
                              ],
                              "loc": {
                                "start": {
                                  "line": 92,
                                  "column": 8
                                },
                                "end": {
                                  "line": 94,
                                  "column": 9
                                }
                              }
                            }
                          ],
                          "range": [
                            3681,
                            3790
                          ],
                          "loc": {
                            "start": {
                              "line": 91,
                              "column": 76
                            },
                            "end": {
                              "line": 95,
                              "column": 5
                            }
                          }
                        },
                        "generator": false,
                        "expression": false,
                        "range": [
                          3669,
                          3790
                        ],
                        "loc": {
                          "start": {
                            "line": 91,
                            "column": 64
                          },
                          "end": {
                            "line": 95,
                            "column": 5
                          }
                        }
                      },
                      "range": [
                        3609,
                        3790
                      ],
                      "loc": {
                        "start": {
                          "line": 91,
                          "column": 4
                        },
                        "end": {
                          "line": 95,
                          "column": 5
                        }
                      }
                    },
                    "range": [
                      3609,
                      3791
                    ],
                    "loc": {
                      "start": {
                        "line": 91,
                        "column": 4
                      },
                      "end": {
                        "line": 95,
                        "column": 6
                      }
                    }
                  },
                  {
                    "type": "ExpressionStatement",
                    "expression": {
                      "type": "AssignmentExpression",
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "computed": false,
                        "object": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "Identifier",
                            "name": "WindowSubscriber",
                            "range": [
                              3796,
                              3812
                            ],
                            "loc": {
                              "start": {
                                "line": 96,
                                "column": 4
                              },
                              "end": {
                                "line": 96,
                                "column": 20
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "prototype",
                            "range": [
                              3813,
                              3822
                            ],
                            "loc": {
                              "start": {
                                "line": 96,
                                "column": 21
                              },
                              "end": {
                                "line": 96,
                                "column": 30
                              }
                            }
                          },
                          "range": [
                            3796,
                            3822
                          ],
                          "loc": {
                            "start": {
                              "line": 96,
                              "column": 4
                            },
                            "end": {
                              "line": 96,
                              "column": 30
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "name": "openWindow",
                          "range": [
                            3823,
                            3833
                          ],
                          "loc": {
                            "start": {
                              "line": 96,
                              "column": 31
                            },
                            "end": {
                              "line": 96,
                              "column": 41
                            }
                          }
                        },
                        "range": [
                          3796,
                          3833
                        ],
                        "loc": {
                          "start": {
                            "line": 96,
                            "column": 4
                          },
                          "end": {
                            "line": 96,
                            "column": 41
                          }
                        }
                      },
                      "right": {
                        "type": "FunctionExpression",
                        "id": null,
                        "params": [
                          {
                            "type": "Identifier",
                            "name": "innerSub",
                            "range": [
                              3846,
                              3854
                            ],
                            "loc": {
                              "start": {
                                "line": 96,
                                "column": 54
                              },
                              "end": {
                                "line": 96,
                                "column": 62
                              }
                            }
                          }
                        ],
                        "body": {
                          "type": "BlockStatement",
                          "body": [
                            {
                              "type": "IfStatement",
                              "test": {
                                "type": "BinaryExpression",
                                "operator": "===",
                                "left": {
                                  "type": "Identifier",
                                  "name": "innerSub",
                                  "range": [
                                    3870,
                                    3878
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 97,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 97,
                                      "column": 20
                                    }
                                  }
                                },
                                "right": {
                                  "type": "UnaryExpression",
                                  "operator": "void",
                                  "argument": {
                                    "type": "Literal",
                                    "value": 0,
                                    "raw": "0",
                                    "range": [
                                      3888,
                                      3889
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 97,
                                        "column": 30
                                      },
                                      "end": {
                                        "line": 97,
                                        "column": 31
                                      }
                                    }
                                  },
                                  "prefix": true,
                                  "range": [
                                    3883,
                                    3889
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 97,
                                      "column": 25
                                    },
                                    "end": {
                                      "line": 97,
                                      "column": 31
                                    }
                                  }
                                },
                                "range": [
                                  3870,
                                  3889
                                ],
                                "loc": {
                                  "start": {
                                    "line": 97,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 97,
                                    "column": 31
                                  }
                                }
                              },
                              "consequent": {
                                "type": "BlockStatement",
                                "body": [
                                  {
                                    "type": "ExpressionStatement",
                                    "expression": {
                                      "type": "AssignmentExpression",
                                      "operator": "=",
                                      "left": {
                                        "type": "Identifier",
                                        "name": "innerSub",
                                        "range": [
                                          3893,
                                          3901
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 97,
                                            "column": 35
                                          },
                                          "end": {
                                            "line": 97,
                                            "column": 43
                                          }
                                        }
                                      },
                                      "right": {
                                        "type": "Literal",
                                        "value": null,
                                        "raw": "null",
                                        "range": [
                                          3904,
                                          3908
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 97,
                                            "column": 46
                                          },
                                          "end": {
                                            "line": 97,
                                            "column": 50
                                          }
                                        }
                                      },
                                      "range": [
                                        3893,
                                        3908
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 97,
                                          "column": 35
                                        },
                                        "end": {
                                          "line": 97,
                                          "column": 50
                                        }
                                      }
                                    },
                                    "range": [
                                      3893,
                                      3909
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 97,
                                        "column": 35
                                      },
                                      "end": {
                                        "line": 97,
                                        "column": 51
                                      }
                                    }
                                  }
                                ],
                                "range": [
                                  3891,
                                  3911
                                ],
                                "loc": {
                                  "start": {
                                    "line": 97,
                                    "column": 33
                                  },
                                  "end": {
                                    "line": 97,
                                    "column": 53
                                  }
                                }
                              },
                              "alternate": null,
                              "range": [
                                3866,
                                3911
                              ],
                              "loc": {
                                "start": {
                                  "line": 97,
                                  "column": 8
                                },
                                "end": {
                                  "line": 97,
                                  "column": 53
                                }
                              }
                            },
                            {
                              "type": "IfStatement",
                              "test": {
                                "type": "Identifier",
                                "name": "innerSub",
                                "range": [
                                  3924,
                                  3932
                                ],
                                "loc": {
                                  "start": {
                                    "line": 98,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 98,
                                    "column": 20
                                  }
                                }
                              },
                              "consequent": {
                                "type": "BlockStatement",
                                "body": [
                                  {
                                    "type": "ExpressionStatement",
                                    "expression": {
                                      "type": "CallExpression",
                                      "callee": {
                                        "type": "MemberExpression",
                                        "computed": false,
                                        "object": {
                                          "type": "ThisExpression",
                                          "range": [
                                            3948,
                                            3952
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 99,
                                              "column": 12
                                            },
                                            "end": {
                                              "line": 99,
                                              "column": 16
                                            }
                                          }
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "name": "remove",
                                          "range": [
                                            3953,
                                            3959
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 99,
                                              "column": 17
                                            },
                                            "end": {
                                              "line": 99,
                                              "column": 23
                                            }
                                          }
                                        },
                                        "range": [
                                          3948,
                                          3959
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 99,
                                            "column": 12
                                          },
                                          "end": {
                                            "line": 99,
                                            "column": 23
                                          }
                                        }
                                      },
                                      "arguments": [
                                        {
                                          "type": "Identifier",
                                          "name": "innerSub",
                                          "range": [
                                            3960,
                                            3968
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 99,
                                              "column": 24
                                            },
                                            "end": {
                                              "line": 99,
                                              "column": 32
                                            }
                                          }
                                        }
                                      ],
                                      "range": [
                                        3948,
                                        3969
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 99,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 99,
                                          "column": 33
                                        }
                                      }
                                    },
                                    "range": [
                                      3948,
                                      3970
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 99,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 99,
                                        "column": 34
                                      }
                                    }
                                  },
                                  {
                                    "type": "ExpressionStatement",
                                    "expression": {
                                      "type": "CallExpression",
                                      "callee": {
                                        "type": "MemberExpression",
                                        "computed": false,
                                        "object": {
                                          "type": "Identifier",
                                          "name": "innerSub",
                                          "range": [
                                            3983,
                                            3991
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 100,
                                              "column": 12
                                            },
                                            "end": {
                                              "line": 100,
                                              "column": 20
                                            }
                                          }
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "name": "unsubscribe",
                                          "range": [
                                            3992,
                                            4003
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 100,
                                              "column": 21
                                            },
                                            "end": {
                                              "line": 100,
                                              "column": 32
                                            }
                                          }
                                        },
                                        "range": [
                                          3983,
                                          4003
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 100,
                                            "column": 12
                                          },
                                          "end": {
                                            "line": 100,
                                            "column": 32
                                          }
                                        }
                                      },
                                      "arguments": [],
                                      "range": [
                                        3983,
                                        4005
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 100,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 100,
                                          "column": 34
                                        }
                                      }
                                    },
                                    "range": [
                                      3983,
                                      4006
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 100,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 100,
                                        "column": 35
                                      }
                                    }
                                  }
                                ],
                                "range": [
                                  3934,
                                  4016
                                ],
                                "loc": {
                                  "start": {
                                    "line": 98,
                                    "column": 22
                                  },
                                  "end": {
                                    "line": 101,
                                    "column": 9
                                  }
                                }
                              },
                              "alternate": null,
                              "range": [
                                3920,
                                4016
                              ],
                              "loc": {
                                "start": {
                                  "line": 98,
                                  "column": 8
                                },
                                "end": {
                                  "line": 101,
                                  "column": 9
                                }
                              }
                            },
                            {
                              "type": "VariableDeclaration",
                              "declarations": [
                                {
                                  "type": "VariableDeclarator",
                                  "id": {
                                    "type": "Identifier",
                                    "name": "prevWindow",
                                    "range": [
                                      4029,
                                      4039
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 102,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 102,
                                        "column": 22
                                      }
                                    }
                                  },
                                  "init": {
                                    "type": "MemberExpression",
                                    "computed": false,
                                    "object": {
                                      "type": "ThisExpression",
                                      "range": [
                                        4042,
                                        4046
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 102,
                                          "column": 25
                                        },
                                        "end": {
                                          "line": 102,
                                          "column": 29
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "name": "window",
                                      "range": [
                                        4047,
                                        4053
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 102,
                                          "column": 30
                                        },
                                        "end": {
                                          "line": 102,
                                          "column": 36
                                        }
                                      }
                                    },
                                    "range": [
                                      4042,
                                      4053
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 102,
                                        "column": 25
                                      },
                                      "end": {
                                        "line": 102,
                                        "column": 36
                                      }
                                    }
                                  },
                                  "range": [
                                    4029,
                                    4053
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 102,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 102,
                                      "column": 36
                                    }
                                  }
                                }
                              ],
                              "kind": "var",
                              "range": [
                                4025,
                                4054
                              ],
                              "loc": {
                                "start": {
                                  "line": 102,
                                  "column": 8
                                },
                                "end": {
                                  "line": 102,
                                  "column": 37
                                }
                              }
                            },
                            {
                              "type": "IfStatement",
                              "test": {
                                "type": "Identifier",
                                "name": "prevWindow",
                                "range": [
                                  4067,
                                  4077
                                ],
                                "loc": {
                                  "start": {
                                    "line": 103,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 103,
                                    "column": 22
                                  }
                                }
                              },
                              "consequent": {
                                "type": "BlockStatement",
                                "body": [
                                  {
                                    "type": "ExpressionStatement",
                                    "expression": {
                                      "type": "CallExpression",
                                      "callee": {
                                        "type": "MemberExpression",
                                        "computed": false,
                                        "object": {
                                          "type": "Identifier",
                                          "name": "prevWindow",
                                          "range": [
                                            4093,
                                            4103
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 104,
                                              "column": 12
                                            },
                                            "end": {
                                              "line": 104,
                                              "column": 22
                                            }
                                          }
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "name": "complete",
                                          "range": [
                                            4104,
                                            4112
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 104,
                                              "column": 23
                                            },
                                            "end": {
                                              "line": 104,
                                              "column": 31
                                            }
                                          }
                                        },
                                        "range": [
                                          4093,
                                          4112
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 104,
                                            "column": 12
                                          },
                                          "end": {
                                            "line": 104,
                                            "column": 31
                                          }
                                        }
                                      },
                                      "arguments": [],
                                      "range": [
                                        4093,
                                        4114
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 104,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 104,
                                          "column": 33
                                        }
                                      }
                                    },
                                    "range": [
                                      4093,
                                      4115
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 104,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 104,
                                        "column": 34
                                      }
                                    }
                                  }
                                ],
                                "range": [
                                  4079,
                                  4125
                                ],
                                "loc": {
                                  "start": {
                                    "line": 103,
                                    "column": 24
                                  },
                                  "end": {
                                    "line": 105,
                                    "column": 9
                                  }
                                }
                              },
                              "alternate": null,
                              "range": [
                                4063,
                                4125
                              ],
                              "loc": {
                                "start": {
                                  "line": 103,
                                  "column": 8
                                },
                                "end": {
                                  "line": 105,
                                  "column": 9
                                }
                              }
                            },
                            {
                              "type": "VariableDeclaration",
                              "declarations": [
                                {
                                  "type": "VariableDeclarator",
                                  "id": {
                                    "type": "Identifier",
                                    "name": "window",
                                    "range": [
                                      4138,
                                      4144
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 106,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 106,
                                        "column": 18
                                      }
                                    }
                                  },
                                  "init": {
                                    "type": "AssignmentExpression",
                                    "operator": "=",
                                    "left": {
                                      "type": "MemberExpression",
                                      "computed": false,
                                      "object": {
                                        "type": "ThisExpression",
                                        "range": [
                                          4147,
                                          4151
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 106,
                                            "column": 21
                                          },
                                          "end": {
                                            "line": 106,
                                            "column": 25
                                          }
                                        }
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "name": "window",
                                        "range": [
                                          4152,
                                          4158
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 106,
                                            "column": 26
                                          },
                                          "end": {
                                            "line": 106,
                                            "column": 32
                                          }
                                        }
                                      },
                                      "range": [
                                        4147,
                                        4158
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 106,
                                          "column": 21
                                        },
                                        "end": {
                                          "line": 106,
                                          "column": 32
                                        }
                                      }
                                    },
                                    "right": {
                                      "type": "NewExpression",
                                      "callee": {
                                        "type": "Identifier",
                                        "name": "Subject",
                                        "range": [
                                          4165,
                                          4172
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 106,
                                            "column": 39
                                          },
                                          "end": {
                                            "line": 106,
                                            "column": 46
                                          }
                                        }
                                      },
                                      "arguments": [],
                                      "range": [
                                        4161,
                                        4174
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 106,
                                          "column": 35
                                        },
                                        "end": {
                                          "line": 106,
                                          "column": 48
                                        }
                                      }
                                    },
                                    "range": [
                                      4147,
                                      4174
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 106,
                                        "column": 21
                                      },
                                      "end": {
                                        "line": 106,
                                        "column": 48
                                      }
                                    }
                                  },
                                  "range": [
                                    4138,
                                    4174
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 106,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 106,
                                      "column": 48
                                    }
                                  }
                                }
                              ],
                              "kind": "var",
                              "range": [
                                4134,
                                4175
                              ],
                              "loc": {
                                "start": {
                                  "line": 106,
                                  "column": 8
                                },
                                "end": {
                                  "line": 106,
                                  "column": 49
                                }
                              }
                            },
                            {
                              "type": "ExpressionStatement",
                              "expression": {
                                "type": "CallExpression",
                                "callee": {
                                  "type": "MemberExpression",
                                  "computed": false,
                                  "object": {
                                    "type": "MemberExpression",
                                    "computed": false,
                                    "object": {
                                      "type": "ThisExpression",
                                      "range": [
                                        4184,
                                        4188
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 107,
                                          "column": 8
                                        },
                                        "end": {
                                          "line": 107,
                                          "column": 12
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "name": "destination",
                                      "range": [
                                        4189,
                                        4200
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 107,
                                          "column": 13
                                        },
                                        "end": {
                                          "line": 107,
                                          "column": 24
                                        }
                                      }
                                    },
                                    "range": [
                                      4184,
                                      4200
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 107,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 107,
                                        "column": 24
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "name": "next",
                                    "range": [
                                      4201,
                                      4205
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 107,
                                        "column": 25
                                      },
                                      "end": {
                                        "line": 107,
                                        "column": 29
                                      }
                                    }
                                  },
                                  "range": [
                                    4184,
                                    4205
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 107,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 107,
                                      "column": 29
                                    }
                                  }
                                },
                                "arguments": [
                                  {
                                    "type": "Identifier",
                                    "name": "window",
                                    "range": [
                                      4206,
                                      4212
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 107,
                                        "column": 30
                                      },
                                      "end": {
                                        "line": 107,
                                        "column": 36
                                      }
                                    }
                                  }
                                ],
                                "range": [
                                  4184,
                                  4213
                                ],
                                "loc": {
                                  "start": {
                                    "line": 107,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 107,
                                    "column": 37
                                  }
                                }
                              },
                              "range": [
                                4184,
                                4214
                              ],
                              "loc": {
                                "start": {
                                  "line": 107,
                                  "column": 8
                                },
                                "end": {
                                  "line": 107,
                                  "column": 38
                                }
                              }
                            },
                            {
                              "type": "VariableDeclaration",
                              "declarations": [
                                {
                                  "type": "VariableDeclarator",
                                  "id": {
                                    "type": "Identifier",
                                    "name": "closingNotifier",
                                    "range": [
                                      4227,
                                      4242
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 108,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 108,
                                        "column": 27
                                      }
                                    }
                                  },
                                  "init": {
                                    "type": "CallExpression",
                                    "callee": {
                                      "type": "CallExpression",
                                      "callee": {
                                        "type": "Identifier",
                                        "name": "tryCatch",
                                        "range": [
                                          4245,
                                          4253
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 108,
                                            "column": 30
                                          },
                                          "end": {
                                            "line": 108,
                                            "column": 38
                                          }
                                        }
                                      },
                                      "arguments": [
                                        {
                                          "type": "MemberExpression",
                                          "computed": false,
                                          "object": {
                                            "type": "ThisExpression",
                                            "range": [
                                              4254,
                                              4258
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 108,
                                                "column": 39
                                              },
                                              "end": {
                                                "line": 108,
                                                "column": 43
                                              }
                                            }
                                          },
                                          "property": {
                                            "type": "Identifier",
                                            "name": "closingSelector",
                                            "range": [
                                              4259,
                                              4274
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 108,
                                                "column": 44
                                              },
                                              "end": {
                                                "line": 108,
                                                "column": 59
                                              }
                                            }
                                          },
                                          "range": [
                                            4254,
                                            4274
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 108,
                                              "column": 39
                                            },
                                            "end": {
                                              "line": 108,
                                              "column": 59
                                            }
                                          }
                                        }
                                      ],
                                      "range": [
                                        4245,
                                        4275
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 108,
                                          "column": 30
                                        },
                                        "end": {
                                          "line": 108,
                                          "column": 60
                                        }
                                      }
                                    },
                                    "arguments": [],
                                    "range": [
                                      4245,
                                      4277
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 108,
                                        "column": 30
                                      },
                                      "end": {
                                        "line": 108,
                                        "column": 62
                                      }
                                    }
                                  },
                                  "range": [
                                    4227,
                                    4277
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 108,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 108,
                                      "column": 62
                                    }
                                  }
                                }
                              ],
                              "kind": "var",
                              "range": [
                                4223,
                                4278
                              ],
                              "loc": {
                                "start": {
                                  "line": 108,
                                  "column": 8
                                },
                                "end": {
                                  "line": 108,
                                  "column": 63
                                }
                              }
                            },
                            {
                              "type": "IfStatement",
                              "test": {
                                "type": "BinaryExpression",
                                "operator": "===",
                                "left": {
                                  "type": "Identifier",
                                  "name": "closingNotifier",
                                  "range": [
                                    4291,
                                    4306
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 109,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 109,
                                      "column": 27
                                    }
                                  }
                                },
                                "right": {
                                  "type": "Identifier",
                                  "name": "errorObject",
                                  "range": [
                                    4311,
                                    4322
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 109,
                                      "column": 32
                                    },
                                    "end": {
                                      "line": 109,
                                      "column": 43
                                    }
                                  }
                                },
                                "range": [
                                  4291,
                                  4322
                                ],
                                "loc": {
                                  "start": {
                                    "line": 109,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 109,
                                    "column": 43
                                  }
                                }
                              },
                              "consequent": {
                                "type": "BlockStatement",
                                "body": [
                                  {
                                    "type": "VariableDeclaration",
                                    "declarations": [
                                      {
                                        "type": "VariableDeclarator",
                                        "id": {
                                          "type": "Identifier",
                                          "name": "err",
                                          "range": [
                                            4342,
                                            4345
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 110,
                                              "column": 16
                                            },
                                            "end": {
                                              "line": 110,
                                              "column": 19
                                            }
                                          }
                                        },
                                        "init": {
                                          "type": "MemberExpression",
                                          "computed": false,
                                          "object": {
                                            "type": "Identifier",
                                            "name": "errorObject",
                                            "range": [
                                              4348,
                                              4359
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 110,
                                                "column": 22
                                              },
                                              "end": {
                                                "line": 110,
                                                "column": 33
                                              }
                                            }
                                          },
                                          "property": {
                                            "type": "Identifier",
                                            "name": "e",
                                            "range": [
                                              4360,
                                              4361
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 110,
                                                "column": 34
                                              },
                                              "end": {
                                                "line": 110,
                                                "column": 35
                                              }
                                            }
                                          },
                                          "range": [
                                            4348,
                                            4361
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 110,
                                              "column": 22
                                            },
                                            "end": {
                                              "line": 110,
                                              "column": 35
                                            }
                                          }
                                        },
                                        "range": [
                                          4342,
                                          4361
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 110,
                                            "column": 16
                                          },
                                          "end": {
                                            "line": 110,
                                            "column": 35
                                          }
                                        }
                                      }
                                    ],
                                    "kind": "var",
                                    "range": [
                                      4338,
                                      4362
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 110,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 110,
                                        "column": 36
                                      }
                                    }
                                  },
                                  {
                                    "type": "ExpressionStatement",
                                    "expression": {
                                      "type": "CallExpression",
                                      "callee": {
                                        "type": "MemberExpression",
                                        "computed": false,
                                        "object": {
                                          "type": "MemberExpression",
                                          "computed": false,
                                          "object": {
                                            "type": "ThisExpression",
                                            "range": [
                                              4375,
                                              4379
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 111,
                                                "column": 12
                                              },
                                              "end": {
                                                "line": 111,
                                                "column": 16
                                              }
                                            }
                                          },
                                          "property": {
                                            "type": "Identifier",
                                            "name": "destination",
                                            "range": [
                                              4380,
                                              4391
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 111,
                                                "column": 17
                                              },
                                              "end": {
                                                "line": 111,
                                                "column": 28
                                              }
                                            }
                                          },
                                          "range": [
                                            4375,
                                            4391
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 111,
                                              "column": 12
                                            },
                                            "end": {
                                              "line": 111,
                                              "column": 28
                                            }
                                          }
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "name": "error",
                                          "range": [
                                            4392,
                                            4397
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 111,
                                              "column": 29
                                            },
                                            "end": {
                                              "line": 111,
                                              "column": 34
                                            }
                                          }
                                        },
                                        "range": [
                                          4375,
                                          4397
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 111,
                                            "column": 12
                                          },
                                          "end": {
                                            "line": 111,
                                            "column": 34
                                          }
                                        }
                                      },
                                      "arguments": [
                                        {
                                          "type": "Identifier",
                                          "name": "err",
                                          "range": [
                                            4398,
                                            4401
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 111,
                                              "column": 35
                                            },
                                            "end": {
                                              "line": 111,
                                              "column": 38
                                            }
                                          }
                                        }
                                      ],
                                      "range": [
                                        4375,
                                        4402
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 111,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 111,
                                          "column": 39
                                        }
                                      }
                                    },
                                    "range": [
                                      4375,
                                      4403
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 111,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 111,
                                        "column": 40
                                      }
                                    }
                                  },
                                  {
                                    "type": "ExpressionStatement",
                                    "expression": {
                                      "type": "CallExpression",
                                      "callee": {
                                        "type": "MemberExpression",
                                        "computed": false,
                                        "object": {
                                          "type": "MemberExpression",
                                          "computed": false,
                                          "object": {
                                            "type": "ThisExpression",
                                            "range": [
                                              4416,
                                              4420
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 112,
                                                "column": 12
                                              },
                                              "end": {
                                                "line": 112,
                                                "column": 16
                                              }
                                            }
                                          },
                                          "property": {
                                            "type": "Identifier",
                                            "name": "window",
                                            "range": [
                                              4421,
                                              4427
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 112,
                                                "column": 17
                                              },
                                              "end": {
                                                "line": 112,
                                                "column": 23
                                              }
                                            }
                                          },
                                          "range": [
                                            4416,
                                            4427
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 112,
                                              "column": 12
                                            },
                                            "end": {
                                              "line": 112,
                                              "column": 23
                                            }
                                          }
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "name": "error",
                                          "range": [
                                            4428,
                                            4433
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 112,
                                              "column": 24
                                            },
                                            "end": {
                                              "line": 112,
                                              "column": 29
                                            }
                                          }
                                        },
                                        "range": [
                                          4416,
                                          4433
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 112,
                                            "column": 12
                                          },
                                          "end": {
                                            "line": 112,
                                            "column": 29
                                          }
                                        }
                                      },
                                      "arguments": [
                                        {
                                          "type": "Identifier",
                                          "name": "err",
                                          "range": [
                                            4434,
                                            4437
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 112,
                                              "column": 30
                                            },
                                            "end": {
                                              "line": 112,
                                              "column": 33
                                            }
                                          }
                                        }
                                      ],
                                      "range": [
                                        4416,
                                        4438
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 112,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 112,
                                          "column": 34
                                        }
                                      }
                                    },
                                    "range": [
                                      4416,
                                      4439
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 112,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 112,
                                        "column": 35
                                      }
                                    }
                                  }
                                ],
                                "range": [
                                  4324,
                                  4449
                                ],
                                "loc": {
                                  "start": {
                                    "line": 109,
                                    "column": 45
                                  },
                                  "end": {
                                    "line": 113,
                                    "column": 9
                                  }
                                }
                              },
                              "alternate": {
                                "type": "BlockStatement",
                                "body": [
                                  {
                                    "type": "ExpressionStatement",
                                    "expression": {
                                      "type": "CallExpression",
                                      "callee": {
                                        "type": "MemberExpression",
                                        "computed": false,
                                        "object": {
                                          "type": "ThisExpression",
                                          "range": [
                                            4477,
                                            4481
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 115,
                                              "column": 12
                                            },
                                            "end": {
                                              "line": 115,
                                              "column": 16
                                            }
                                          }
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "name": "add",
                                          "range": [
                                            4482,
                                            4485
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 115,
                                              "column": 17
                                            },
                                            "end": {
                                              "line": 115,
                                              "column": 20
                                            }
                                          }
                                        },
                                        "range": [
                                          4477,
                                          4485
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 115,
                                            "column": 12
                                          },
                                          "end": {
                                            "line": 115,
                                            "column": 20
                                          }
                                        }
                                      },
                                      "arguments": [
                                        {
                                          "type": "AssignmentExpression",
                                          "operator": "=",
                                          "left": {
                                            "type": "MemberExpression",
                                            "computed": false,
                                            "object": {
                                              "type": "ThisExpression",
                                              "range": [
                                                4486,
                                                4490
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 115,
                                                  "column": 21
                                                },
                                                "end": {
                                                  "line": 115,
                                                  "column": 25
                                                }
                                              }
                                            },
                                            "property": {
                                              "type": "Identifier",
                                              "name": "closingNotification",
                                              "range": [
                                                4491,
                                                4510
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 115,
                                                  "column": 26
                                                },
                                                "end": {
                                                  "line": 115,
                                                  "column": 45
                                                }
                                              }
                                            },
                                            "range": [
                                              4486,
                                              4510
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 115,
                                                "column": 21
                                              },
                                              "end": {
                                                "line": 115,
                                                "column": 45
                                              }
                                            }
                                          },
                                          "right": {
                                            "type": "CallExpression",
                                            "callee": {
                                              "type": "Identifier",
                                              "name": "subscribeToResult",
                                              "range": [
                                                4513,
                                                4530
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 115,
                                                  "column": 48
                                                },
                                                "end": {
                                                  "line": 115,
                                                  "column": 65
                                                }
                                              }
                                            },
                                            "arguments": [
                                              {
                                                "type": "ThisExpression",
                                                "range": [
                                                  4531,
                                                  4535
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 115,
                                                    "column": 66
                                                  },
                                                  "end": {
                                                    "line": 115,
                                                    "column": 70
                                                  }
                                                }
                                              },
                                              {
                                                "type": "Identifier",
                                                "name": "closingNotifier",
                                                "range": [
                                                  4537,
                                                  4552
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 115,
                                                    "column": 72
                                                  },
                                                  "end": {
                                                    "line": 115,
                                                    "column": 87
                                                  }
                                                }
                                              }
                                            ],
                                            "range": [
                                              4513,
                                              4553
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 115,
                                                "column": 48
                                              },
                                              "end": {
                                                "line": 115,
                                                "column": 88
                                              }
                                            }
                                          },
                                          "range": [
                                            4486,
                                            4553
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 115,
                                              "column": 21
                                            },
                                            "end": {
                                              "line": 115,
                                              "column": 88
                                            }
                                          }
                                        }
                                      ],
                                      "range": [
                                        4477,
                                        4554
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 115,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 115,
                                          "column": 89
                                        }
                                      }
                                    },
                                    "range": [
                                      4477,
                                      4555
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 115,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 115,
                                        "column": 90
                                      }
                                    }
                                  }
                                ],
                                "range": [
                                  4463,
                                  4565
                                ],
                                "loc": {
                                  "start": {
                                    "line": 114,
                                    "column": 13
                                  },
                                  "end": {
                                    "line": 116,
                                    "column": 9
                                  }
                                }
                              },
                              "range": [
                                4287,
                                4565
                              ],
                              "loc": {
                                "start": {
                                  "line": 109,
                                  "column": 8
                                },
                                "end": {
                                  "line": 116,
                                  "column": 9
                                }
                              }
                            }
                          ],
                          "range": [
                            3856,
                            4571
                          ],
                          "loc": {
                            "start": {
                              "line": 96,
                              "column": 64
                            },
                            "end": {
                              "line": 117,
                              "column": 5
                            }
                          }
                        },
                        "generator": false,
                        "expression": false,
                        "range": [
                          3836,
                          4571
                        ],
                        "loc": {
                          "start": {
                            "line": 96,
                            "column": 44
                          },
                          "end": {
                            "line": 117,
                            "column": 5
                          }
                        }
                      },
                      "range": [
                        3796,
                        4571
                      ],
                      "loc": {
                        "start": {
                          "line": 96,
                          "column": 4
                        },
                        "end": {
                          "line": 117,
                          "column": 5
                        }
                      }
                    },
                    "range": [
                      3796,
                      4572
                    ],
                    "loc": {
                      "start": {
                        "line": 96,
                        "column": 4
                      },
                      "end": {
                        "line": 117,
                        "column": 6
                      }
                    }
                  },
                  {
                    "type": "ReturnStatement",
                    "argument": {
                      "type": "Identifier",
                      "name": "WindowSubscriber",
                      "range": [
                        4584,
                        4600
                      ],
                      "loc": {
                        "start": {
                          "line": 118,
                          "column": 11
                        },
                        "end": {
                          "line": 118,
                          "column": 27
                        }
                      }
                    },
                    "range": [
                      4577,
                      4601
                    ],
                    "loc": {
                      "start": {
                        "line": 118,
                        "column": 4
                      },
                      "end": {
                        "line": 118,
                        "column": 28
                      }
                    }
                  }
                ],
                "range": [
                  2504,
                  4603
                ],
                "loc": {
                  "start": {
                    "line": 61,
                    "column": 42
                  },
                  "end": {
                    "line": 119,
                    "column": 1
                  }
                }
              },
              "generator": false,
              "expression": false,
              "range": [
                2486,
                4603
              ],
              "loc": {
                "start": {
                  "line": 61,
                  "column": 24
                },
                "end": {
                  "line": 119,
                  "column": 1
                }
              }
            },
            "arguments": [
              {
                "type": "Identifier",
                "name": "OuterSubscriber",
                "range": [
                  4604,
                  4619
                ],
                "loc": {
                  "start": {
                    "line": 119,
                    "column": 2
                  },
                  "end": {
                    "line": 119,
                    "column": 17
                  }
                }
              }
            ],
            "range": [
              2486,
              4620
            ],
            "loc": {
              "start": {
                "line": 61,
                "column": 24
              },
              "end": {
                "line": 119,
                "column": 18
              }
            }
          },
          "range": [
            2466,
            4621
          ],
          "loc": {
            "start": {
              "line": 61,
              "column": 4
            },
            "end": {
              "line": 119,
              "column": 19
            }
          }
        }
      ],
      "kind": "var",
      "range": [
        2462,
        4622
      ],
      "loc": {
        "start": {
          "line": 61,
          "column": 0
        },
        "end": {
          "line": 119,
          "column": 20
        }
      },
      "leadingComments": [
        {
          "type": "Block",
          "value": "*\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n ",
          "range": [
            2370,
            2461
          ],
          "loc": {
            "start": {
              "line": 56,
              "column": 0
            },
            "end": {
              "line": 60,
              "column": 3
            }
          }
        }
      ],
      "trailingComments": [
        {
          "type": "Line",
          "value": "# sourceMappingURL=windowWhen.js.map",
          "range": [
            4623,
            4661
          ],
          "loc": {
            "start": {
              "line": 120,
              "column": 0
            },
            "end": {
              "line": 120,
              "column": 38
            }
          }
        }
      ]
    }
  ],
  "sourceType": "module",
  "range": [
    0,
    4622
  ],
  "loc": {
    "start": {
      "line": 1,
      "column": 0
    },
    "end": {
      "line": 119,
      "column": 20
    }
  },
  "comments": [
    {
      "type": "Block",
      "value": "*\n * Branch out the source Observable values as a nested Observable using a\n * factory function of closing Observables to determine when to start a new\n * window.\n *\n * <span class=\"informal\">It's like {@link bufferWhen}, but emits a nested\n * Observable instead of an array.</span>\n *\n * <img src=\"./img/windowWhen.png\" width=\"100%\">\n *\n * Returns an Observable that emits windows of items it collects from the source\n * Observable. The output Observable emits connected, non-overlapping windows.\n * It emits the current window and opens a new one whenever the Observable\n * produced by the specified `closingSelector` function emits an item. The first\n * window is opened immediately when subscribing to the output Observable.\n *\n * @example <caption>Emit only the first two clicks events in every window of [1-5] random seconds</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var result = clicks\n *   .windowWhen(() => Rx.Observable.interval(1000 + Math.random() * 4000))\n *   .map(win => win.take(2)) // each window has at most 2 emissions\n *   .mergeAll(); // flatten the Observable-of-Observables\n * result.subscribe(x => console.log(x));\n *\n * @see {@link window}\n * @see {@link windowCount}\n * @see {@link windowTime}\n * @see {@link windowToggle}\n * @see {@link bufferWhen}\n *\n * @param {function(): Observable} closingSelector A function that takes no\n * arguments and returns an Observable that signals (on either `next` or\n * `complete`) when to close the previous window and start a new one.\n * @return {Observable<Observable<T>>} An observable of windows, which in turn\n * are Observables.\n * @method windowWhen\n * @owner Observable\n ",
      "range": [
        251,
        1927
      ],
      "loc": {
        "start": {
          "line": 6,
          "column": 0
        },
        "end": {
          "line": 43,
          "column": 3
        }
      }
    },
    {
      "type": "Block",
      "value": "*\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n ",
      "range": [
        2370,
        2461
      ],
      "loc": {
        "start": {
          "line": 56,
          "column": 0
        },
        "end": {
          "line": 60,
          "column": 3
        }
      }
    },
    {
      "type": "Line",
      "value": "# sourceMappingURL=windowWhen.js.map",
      "range": [
        4623,
        4661
      ],
      "loc": {
        "start": {
          "line": 120,
          "column": 0
        },
        "end": {
          "line": 120,
          "column": 38
        }
      }
    }
  ]
}