{
  "type": "Program",
  "body": [
    {
      "type": "ImportDeclaration",
      "specifiers": [
        {
          "type": "ImportSpecifier",
          "local": {
            "type": "Identifier",
            "name": "Subscriber",
            "range": [
              9,
              19
            ],
            "loc": {
              "start": {
                "line": 1,
                "column": 9
              },
              "end": {
                "line": 1,
                "column": 19
              }
            }
          },
          "imported": {
            "type": "Identifier",
            "name": "Subscriber",
            "range": [
              9,
              19
            ],
            "loc": {
              "start": {
                "line": 1,
                "column": 9
              },
              "end": {
                "line": 1,
                "column": 19
              }
            }
          },
          "range": [
            9,
            19
          ],
          "loc": {
            "start": {
              "line": 1,
              "column": 9
            },
            "end": {
              "line": 1,
              "column": 19
            }
          }
        }
      ],
      "source": {
        "type": "Literal",
        "value": "../Subscriber",
        "raw": "'../Subscriber'",
        "range": [
          27,
          42
        ],
        "loc": {
          "start": {
            "line": 1,
            "column": 27
          },
          "end": {
            "line": 1,
            "column": 42
          }
        }
      },
      "range": [
        0,
        43
      ],
      "loc": {
        "start": {
          "line": 1,
          "column": 0
        },
        "end": {
          "line": 1,
          "column": 43
        }
      }
    },
    {
      "type": "ImportDeclaration",
      "specifiers": [
        {
          "type": "ImportSpecifier",
          "local": {
            "type": "Identifier",
            "name": "tryCatch",
            "range": [
              53,
              61
            ],
            "loc": {
              "start": {
                "line": 2,
                "column": 9
              },
              "end": {
                "line": 2,
                "column": 17
              }
            }
          },
          "imported": {
            "type": "Identifier",
            "name": "tryCatch",
            "range": [
              53,
              61
            ],
            "loc": {
              "start": {
                "line": 2,
                "column": 9
              },
              "end": {
                "line": 2,
                "column": 17
              }
            }
          },
          "range": [
            53,
            61
          ],
          "loc": {
            "start": {
              "line": 2,
              "column": 9
            },
            "end": {
              "line": 2,
              "column": 17
            }
          }
        }
      ],
      "source": {
        "type": "Literal",
        "value": "../util/tryCatch",
        "raw": "'../util/tryCatch'",
        "range": [
          69,
          87
        ],
        "loc": {
          "start": {
            "line": 2,
            "column": 25
          },
          "end": {
            "line": 2,
            "column": 43
          }
        }
      },
      "range": [
        44,
        88
      ],
      "loc": {
        "start": {
          "line": 2,
          "column": 0
        },
        "end": {
          "line": 2,
          "column": 44
        }
      }
    },
    {
      "type": "ImportDeclaration",
      "specifiers": [
        {
          "type": "ImportSpecifier",
          "local": {
            "type": "Identifier",
            "name": "errorObject",
            "range": [
              98,
              109
            ],
            "loc": {
              "start": {
                "line": 3,
                "column": 9
              },
              "end": {
                "line": 3,
                "column": 20
              }
            }
          },
          "imported": {
            "type": "Identifier",
            "name": "errorObject",
            "range": [
              98,
              109
            ],
            "loc": {
              "start": {
                "line": 3,
                "column": 9
              },
              "end": {
                "line": 3,
                "column": 20
              }
            }
          },
          "range": [
            98,
            109
          ],
          "loc": {
            "start": {
              "line": 3,
              "column": 9
            },
            "end": {
              "line": 3,
              "column": 20
            }
          }
        }
      ],
      "source": {
        "type": "Literal",
        "value": "../util/errorObject",
        "raw": "'../util/errorObject'",
        "range": [
          117,
          138
        ],
        "loc": {
          "start": {
            "line": 3,
            "column": 28
          },
          "end": {
            "line": 3,
            "column": 49
          }
        }
      },
      "range": [
        89,
        139
      ],
      "loc": {
        "start": {
          "line": 3,
          "column": 0
        },
        "end": {
          "line": 3,
          "column": 50
        }
      },
      "trailingComments": [
        {
          "type": "Block",
          "value": " tslint:disable:max-line-length ",
          "range": [
            140,
            176
          ],
          "loc": {
            "start": {
              "line": 4,
              "column": 0
            },
            "end": {
              "line": 4,
              "column": 36
            }
          }
        }
      ]
    },
    {
      "type": "ExportNamedDeclaration",
      "declaration": {
        "type": "FunctionDeclaration",
        "id": {
          "type": "Identifier",
          "name": "distinctUntilChanged",
          "range": [
            193,
            213
          ],
          "loc": {
            "start": {
              "line": 5,
              "column": 16
            },
            "end": {
              "line": 5,
              "column": 36
            }
          }
        },
        "params": [
          {
            "type": "Identifier",
            "name": "compare",
            "range": [
              214,
              221
            ],
            "loc": {
              "start": {
                "line": 5,
                "column": 37
              },
              "end": {
                "line": 5,
                "column": 44
              }
            }
          },
          {
            "type": "Identifier",
            "name": "keySelector",
            "range": [
              223,
              234
            ],
            "loc": {
              "start": {
                "line": 5,
                "column": 46
              },
              "end": {
                "line": 5,
                "column": 57
              }
            }
          }
        ],
        "body": {
          "type": "BlockStatement",
          "body": [
            {
              "type": "ReturnStatement",
              "argument": {
                "type": "CallExpression",
                "callee": {
                  "type": "MemberExpression",
                  "computed": false,
                  "object": {
                    "type": "ThisExpression",
                    "range": [
                      249,
                      253
                    ],
                    "loc": {
                      "start": {
                        "line": 6,
                        "column": 11
                      },
                      "end": {
                        "line": 6,
                        "column": 15
                      }
                    }
                  },
                  "property": {
                    "type": "Identifier",
                    "name": "lift",
                    "range": [
                      254,
                      258
                    ],
                    "loc": {
                      "start": {
                        "line": 6,
                        "column": 16
                      },
                      "end": {
                        "line": 6,
                        "column": 20
                      }
                    }
                  },
                  "range": [
                    249,
                    258
                  ],
                  "loc": {
                    "start": {
                      "line": 6,
                      "column": 11
                    },
                    "end": {
                      "line": 6,
                      "column": 20
                    }
                  }
                },
                "arguments": [
                  {
                    "type": "NewExpression",
                    "callee": {
                      "type": "Identifier",
                      "name": "DistinctUntilChangedOperator",
                      "range": [
                        263,
                        291
                      ],
                      "loc": {
                        "start": {
                          "line": 6,
                          "column": 25
                        },
                        "end": {
                          "line": 6,
                          "column": 53
                        }
                      }
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "name": "compare",
                        "range": [
                          292,
                          299
                        ],
                        "loc": {
                          "start": {
                            "line": 6,
                            "column": 54
                          },
                          "end": {
                            "line": 6,
                            "column": 61
                          }
                        }
                      },
                      {
                        "type": "Identifier",
                        "name": "keySelector",
                        "range": [
                          301,
                          312
                        ],
                        "loc": {
                          "start": {
                            "line": 6,
                            "column": 63
                          },
                          "end": {
                            "line": 6,
                            "column": 74
                          }
                        }
                      }
                    ],
                    "range": [
                      259,
                      313
                    ],
                    "loc": {
                      "start": {
                        "line": 6,
                        "column": 21
                      },
                      "end": {
                        "line": 6,
                        "column": 75
                      }
                    }
                  }
                ],
                "range": [
                  249,
                  314
                ],
                "loc": {
                  "start": {
                    "line": 6,
                    "column": 11
                  },
                  "end": {
                    "line": 6,
                    "column": 76
                  }
                }
              },
              "range": [
                242,
                315
              ],
              "loc": {
                "start": {
                  "line": 6,
                  "column": 4
                },
                "end": {
                  "line": 6,
                  "column": 77
                }
              }
            }
          ],
          "range": [
            236,
            317
          ],
          "loc": {
            "start": {
              "line": 5,
              "column": 59
            },
            "end": {
              "line": 7,
              "column": 1
            }
          }
        },
        "generator": false,
        "expression": false,
        "range": [
          184,
          317
        ],
        "loc": {
          "start": {
            "line": 5,
            "column": 7
          },
          "end": {
            "line": 7,
            "column": 1
          }
        },
        "leadingComments": [
          {
            "type": "Block",
            "value": " tslint:disable:max-line-length ",
            "range": [
              140,
              176
            ],
            "loc": {
              "start": {
                "line": 4,
                "column": 0
              },
              "end": {
                "line": 4,
                "column": 36
              }
            }
          }
        ],
        "trailingComments": []
      },
      "specifiers": [],
      "source": null,
      "range": [
        177,
        317
      ],
      "loc": {
        "start": {
          "line": 5,
          "column": 0
        },
        "end": {
          "line": 7,
          "column": 1
        }
      },
      "leadingComments": [
        {
          "type": "Block",
          "value": " tslint:disable:max-line-length ",
          "range": [
            140,
            176
          ],
          "loc": {
            "start": {
              "line": 4,
              "column": 0
            },
            "end": {
              "line": 4,
              "column": 36
            }
          }
        }
      ]
    },
    {
      "type": "VariableDeclaration",
      "declarations": [
        {
          "type": "VariableDeclarator",
          "id": {
            "type": "Identifier",
            "name": "DistinctUntilChangedOperator",
            "range": [
              322,
              350
            ],
            "loc": {
              "start": {
                "line": 8,
                "column": 4
              },
              "end": {
                "line": 8,
                "column": 32
              }
            }
          },
          "init": {
            "type": "CallExpression",
            "callee": {
              "type": "FunctionExpression",
              "id": null,
              "params": [],
              "body": {
                "type": "BlockStatement",
                "body": [
                  {
                    "type": "FunctionDeclaration",
                    "id": {
                      "type": "Identifier",
                      "name": "DistinctUntilChangedOperator",
                      "range": [
                        381,
                        409
                      ],
                      "loc": {
                        "start": {
                          "line": 9,
                          "column": 13
                        },
                        "end": {
                          "line": 9,
                          "column": 41
                        }
                      }
                    },
                    "params": [
                      {
                        "type": "Identifier",
                        "name": "compare",
                        "range": [
                          410,
                          417
                        ],
                        "loc": {
                          "start": {
                            "line": 9,
                            "column": 42
                          },
                          "end": {
                            "line": 9,
                            "column": 49
                          }
                        }
                      },
                      {
                        "type": "Identifier",
                        "name": "keySelector",
                        "range": [
                          419,
                          430
                        ],
                        "loc": {
                          "start": {
                            "line": 9,
                            "column": 51
                          },
                          "end": {
                            "line": 9,
                            "column": 62
                          }
                        }
                      }
                    ],
                    "body": {
                      "type": "BlockStatement",
                      "body": [
                        {
                          "type": "ExpressionStatement",
                          "expression": {
                            "type": "AssignmentExpression",
                            "operator": "=",
                            "left": {
                              "type": "MemberExpression",
                              "computed": false,
                              "object": {
                                "type": "ThisExpression",
                                "range": [
                                  442,
                                  446
                                ],
                                "loc": {
                                  "start": {
                                    "line": 10,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 10,
                                    "column": 12
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "name": "compare",
                                "range": [
                                  447,
                                  454
                                ],
                                "loc": {
                                  "start": {
                                    "line": 10,
                                    "column": 13
                                  },
                                  "end": {
                                    "line": 10,
                                    "column": 20
                                  }
                                }
                              },
                              "range": [
                                442,
                                454
                              ],
                              "loc": {
                                "start": {
                                  "line": 10,
                                  "column": 8
                                },
                                "end": {
                                  "line": 10,
                                  "column": 20
                                }
                              }
                            },
                            "right": {
                              "type": "Identifier",
                              "name": "compare",
                              "range": [
                                457,
                                464
                              ],
                              "loc": {
                                "start": {
                                  "line": 10,
                                  "column": 23
                                },
                                "end": {
                                  "line": 10,
                                  "column": 30
                                }
                              }
                            },
                            "range": [
                              442,
                              464
                            ],
                            "loc": {
                              "start": {
                                "line": 10,
                                "column": 8
                              },
                              "end": {
                                "line": 10,
                                "column": 30
                              }
                            }
                          },
                          "range": [
                            442,
                            465
                          ],
                          "loc": {
                            "start": {
                              "line": 10,
                              "column": 8
                            },
                            "end": {
                              "line": 10,
                              "column": 31
                            }
                          }
                        },
                        {
                          "type": "ExpressionStatement",
                          "expression": {
                            "type": "AssignmentExpression",
                            "operator": "=",
                            "left": {
                              "type": "MemberExpression",
                              "computed": false,
                              "object": {
                                "type": "ThisExpression",
                                "range": [
                                  474,
                                  478
                                ],
                                "loc": {
                                  "start": {
                                    "line": 11,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 11,
                                    "column": 12
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "name": "keySelector",
                                "range": [
                                  479,
                                  490
                                ],
                                "loc": {
                                  "start": {
                                    "line": 11,
                                    "column": 13
                                  },
                                  "end": {
                                    "line": 11,
                                    "column": 24
                                  }
                                }
                              },
                              "range": [
                                474,
                                490
                              ],
                              "loc": {
                                "start": {
                                  "line": 11,
                                  "column": 8
                                },
                                "end": {
                                  "line": 11,
                                  "column": 24
                                }
                              }
                            },
                            "right": {
                              "type": "Identifier",
                              "name": "keySelector",
                              "range": [
                                493,
                                504
                              ],
                              "loc": {
                                "start": {
                                  "line": 11,
                                  "column": 27
                                },
                                "end": {
                                  "line": 11,
                                  "column": 38
                                }
                              }
                            },
                            "range": [
                              474,
                              504
                            ],
                            "loc": {
                              "start": {
                                "line": 11,
                                "column": 8
                              },
                              "end": {
                                "line": 11,
                                "column": 38
                              }
                            }
                          },
                          "range": [
                            474,
                            505
                          ],
                          "loc": {
                            "start": {
                              "line": 11,
                              "column": 8
                            },
                            "end": {
                              "line": 11,
                              "column": 39
                            }
                          }
                        }
                      ],
                      "range": [
                        432,
                        511
                      ],
                      "loc": {
                        "start": {
                          "line": 9,
                          "column": 64
                        },
                        "end": {
                          "line": 12,
                          "column": 5
                        }
                      }
                    },
                    "generator": false,
                    "expression": false,
                    "range": [
                      372,
                      511
                    ],
                    "loc": {
                      "start": {
                        "line": 9,
                        "column": 4
                      },
                      "end": {
                        "line": 12,
                        "column": 5
                      }
                    }
                  },
                  {
                    "type": "ExpressionStatement",
                    "expression": {
                      "type": "AssignmentExpression",
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "computed": false,
                        "object": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "Identifier",
                            "name": "DistinctUntilChangedOperator",
                            "range": [
                              516,
                              544
                            ],
                            "loc": {
                              "start": {
                                "line": 13,
                                "column": 4
                              },
                              "end": {
                                "line": 13,
                                "column": 32
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "prototype",
                            "range": [
                              545,
                              554
                            ],
                            "loc": {
                              "start": {
                                "line": 13,
                                "column": 33
                              },
                              "end": {
                                "line": 13,
                                "column": 42
                              }
                            }
                          },
                          "range": [
                            516,
                            554
                          ],
                          "loc": {
                            "start": {
                              "line": 13,
                              "column": 4
                            },
                            "end": {
                              "line": 13,
                              "column": 42
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "name": "call",
                          "range": [
                            555,
                            559
                          ],
                          "loc": {
                            "start": {
                              "line": 13,
                              "column": 43
                            },
                            "end": {
                              "line": 13,
                              "column": 47
                            }
                          }
                        },
                        "range": [
                          516,
                          559
                        ],
                        "loc": {
                          "start": {
                            "line": 13,
                            "column": 4
                          },
                          "end": {
                            "line": 13,
                            "column": 47
                          }
                        }
                      },
                      "right": {
                        "type": "FunctionExpression",
                        "id": null,
                        "params": [
                          {
                            "type": "Identifier",
                            "name": "subscriber",
                            "range": [
                              572,
                              582
                            ],
                            "loc": {
                              "start": {
                                "line": 13,
                                "column": 60
                              },
                              "end": {
                                "line": 13,
                                "column": 70
                              }
                            }
                          },
                          {
                            "type": "Identifier",
                            "name": "source",
                            "range": [
                              584,
                              590
                            ],
                            "loc": {
                              "start": {
                                "line": 13,
                                "column": 72
                              },
                              "end": {
                                "line": 13,
                                "column": 78
                              }
                            }
                          }
                        ],
                        "body": {
                          "type": "BlockStatement",
                          "body": [
                            {
                              "type": "ReturnStatement",
                              "argument": {
                                "type": "CallExpression",
                                "callee": {
                                  "type": "MemberExpression",
                                  "computed": false,
                                  "object": {
                                    "type": "Identifier",
                                    "name": "source",
                                    "range": [
                                      609,
                                      615
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 14,
                                        "column": 15
                                      },
                                      "end": {
                                        "line": 14,
                                        "column": 21
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "name": "_subscribe",
                                    "range": [
                                      616,
                                      626
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 14,
                                        "column": 22
                                      },
                                      "end": {
                                        "line": 14,
                                        "column": 32
                                      }
                                    }
                                  },
                                  "range": [
                                    609,
                                    626
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 14,
                                      "column": 15
                                    },
                                    "end": {
                                      "line": 14,
                                      "column": 32
                                    }
                                  }
                                },
                                "arguments": [
                                  {
                                    "type": "NewExpression",
                                    "callee": {
                                      "type": "Identifier",
                                      "name": "DistinctUntilChangedSubscriber",
                                      "range": [
                                        631,
                                        661
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 14,
                                          "column": 37
                                        },
                                        "end": {
                                          "line": 14,
                                          "column": 67
                                        }
                                      }
                                    },
                                    "arguments": [
                                      {
                                        "type": "Identifier",
                                        "name": "subscriber",
                                        "range": [
                                          662,
                                          672
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 14,
                                            "column": 68
                                          },
                                          "end": {
                                            "line": 14,
                                            "column": 78
                                          }
                                        }
                                      },
                                      {
                                        "type": "MemberExpression",
                                        "computed": false,
                                        "object": {
                                          "type": "ThisExpression",
                                          "range": [
                                            674,
                                            678
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 14,
                                              "column": 80
                                            },
                                            "end": {
                                              "line": 14,
                                              "column": 84
                                            }
                                          }
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "name": "compare",
                                          "range": [
                                            679,
                                            686
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 14,
                                              "column": 85
                                            },
                                            "end": {
                                              "line": 14,
                                              "column": 92
                                            }
                                          }
                                        },
                                        "range": [
                                          674,
                                          686
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 14,
                                            "column": 80
                                          },
                                          "end": {
                                            "line": 14,
                                            "column": 92
                                          }
                                        }
                                      },
                                      {
                                        "type": "MemberExpression",
                                        "computed": false,
                                        "object": {
                                          "type": "ThisExpression",
                                          "range": [
                                            688,
                                            692
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 14,
                                              "column": 94
                                            },
                                            "end": {
                                              "line": 14,
                                              "column": 98
                                            }
                                          }
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "name": "keySelector",
                                          "range": [
                                            693,
                                            704
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 14,
                                              "column": 99
                                            },
                                            "end": {
                                              "line": 14,
                                              "column": 110
                                            }
                                          }
                                        },
                                        "range": [
                                          688,
                                          704
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 14,
                                            "column": 94
                                          },
                                          "end": {
                                            "line": 14,
                                            "column": 110
                                          }
                                        }
                                      }
                                    ],
                                    "range": [
                                      627,
                                      705
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 14,
                                        "column": 33
                                      },
                                      "end": {
                                        "line": 14,
                                        "column": 111
                                      }
                                    }
                                  }
                                ],
                                "range": [
                                  609,
                                  706
                                ],
                                "loc": {
                                  "start": {
                                    "line": 14,
                                    "column": 15
                                  },
                                  "end": {
                                    "line": 14,
                                    "column": 112
                                  }
                                }
                              },
                              "range": [
                                602,
                                707
                              ],
                              "loc": {
                                "start": {
                                  "line": 14,
                                  "column": 8
                                },
                                "end": {
                                  "line": 14,
                                  "column": 113
                                }
                              }
                            }
                          ],
                          "range": [
                            592,
                            713
                          ],
                          "loc": {
                            "start": {
                              "line": 13,
                              "column": 80
                            },
                            "end": {
                              "line": 15,
                              "column": 5
                            }
                          }
                        },
                        "generator": false,
                        "expression": false,
                        "range": [
                          562,
                          713
                        ],
                        "loc": {
                          "start": {
                            "line": 13,
                            "column": 50
                          },
                          "end": {
                            "line": 15,
                            "column": 5
                          }
                        }
                      },
                      "range": [
                        516,
                        713
                      ],
                      "loc": {
                        "start": {
                          "line": 13,
                          "column": 4
                        },
                        "end": {
                          "line": 15,
                          "column": 5
                        }
                      }
                    },
                    "range": [
                      516,
                      714
                    ],
                    "loc": {
                      "start": {
                        "line": 13,
                        "column": 4
                      },
                      "end": {
                        "line": 15,
                        "column": 6
                      }
                    }
                  },
                  {
                    "type": "ReturnStatement",
                    "argument": {
                      "type": "Identifier",
                      "name": "DistinctUntilChangedOperator",
                      "range": [
                        726,
                        754
                      ],
                      "loc": {
                        "start": {
                          "line": 16,
                          "column": 11
                        },
                        "end": {
                          "line": 16,
                          "column": 39
                        }
                      }
                    },
                    "range": [
                      719,
                      755
                    ],
                    "loc": {
                      "start": {
                        "line": 16,
                        "column": 4
                      },
                      "end": {
                        "line": 16,
                        "column": 40
                      }
                    }
                  }
                ],
                "range": [
                  366,
                  757
                ],
                "loc": {
                  "start": {
                    "line": 8,
                    "column": 48
                  },
                  "end": {
                    "line": 17,
                    "column": 1
                  }
                }
              },
              "generator": false,
              "expression": false,
              "range": [
                354,
                757
              ],
              "loc": {
                "start": {
                  "line": 8,
                  "column": 36
                },
                "end": {
                  "line": 17,
                  "column": 1
                }
              }
            },
            "arguments": [],
            "range": [
              354,
              759
            ],
            "loc": {
              "start": {
                "line": 8,
                "column": 36
              },
              "end": {
                "line": 17,
                "column": 3
              }
            }
          },
          "range": [
            322,
            760
          ],
          "loc": {
            "start": {
              "line": 8,
              "column": 4
            },
            "end": {
              "line": 17,
              "column": 4
            }
          }
        }
      ],
      "kind": "var",
      "range": [
        318,
        761
      ],
      "loc": {
        "start": {
          "line": 8,
          "column": 0
        },
        "end": {
          "line": 17,
          "column": 5
        }
      },
      "trailingComments": [
        {
          "type": "Block",
          "value": "*\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n ",
          "range": [
            762,
            853
          ],
          "loc": {
            "start": {
              "line": 18,
              "column": 0
            },
            "end": {
              "line": 22,
              "column": 3
            }
          }
        }
      ]
    },
    {
      "type": "VariableDeclaration",
      "declarations": [
        {
          "type": "VariableDeclarator",
          "id": {
            "type": "Identifier",
            "name": "DistinctUntilChangedSubscriber",
            "range": [
              858,
              888
            ],
            "loc": {
              "start": {
                "line": 23,
                "column": 4
              },
              "end": {
                "line": 23,
                "column": 34
              }
            }
          },
          "init": {
            "type": "CallExpression",
            "callee": {
              "type": "FunctionExpression",
              "id": null,
              "params": [
                {
                  "type": "Identifier",
                  "name": "_super",
                  "range": [
                    902,
                    908
                  ],
                  "loc": {
                    "start": {
                      "line": 23,
                      "column": 48
                    },
                    "end": {
                      "line": 23,
                      "column": 54
                    }
                  }
                }
              ],
              "body": {
                "type": "BlockStatement",
                "body": [
                  {
                    "type": "ExpressionStatement",
                    "expression": {
                      "type": "CallExpression",
                      "callee": {
                        "type": "Identifier",
                        "name": "__extends",
                        "range": [
                          916,
                          925
                        ],
                        "loc": {
                          "start": {
                            "line": 24,
                            "column": 4
                          },
                          "end": {
                            "line": 24,
                            "column": 13
                          }
                        }
                      },
                      "arguments": [
                        {
                          "type": "Identifier",
                          "name": "DistinctUntilChangedSubscriber",
                          "range": [
                            926,
                            956
                          ],
                          "loc": {
                            "start": {
                              "line": 24,
                              "column": 14
                            },
                            "end": {
                              "line": 24,
                              "column": 44
                            }
                          }
                        },
                        {
                          "type": "Identifier",
                          "name": "_super",
                          "range": [
                            958,
                            964
                          ],
                          "loc": {
                            "start": {
                              "line": 24,
                              "column": 46
                            },
                            "end": {
                              "line": 24,
                              "column": 52
                            }
                          }
                        }
                      ],
                      "range": [
                        916,
                        965
                      ],
                      "loc": {
                        "start": {
                          "line": 24,
                          "column": 4
                        },
                        "end": {
                          "line": 24,
                          "column": 53
                        }
                      }
                    },
                    "range": [
                      916,
                      966
                    ],
                    "loc": {
                      "start": {
                        "line": 24,
                        "column": 4
                      },
                      "end": {
                        "line": 24,
                        "column": 54
                      }
                    }
                  },
                  {
                    "type": "FunctionDeclaration",
                    "id": {
                      "type": "Identifier",
                      "name": "DistinctUntilChangedSubscriber",
                      "range": [
                        980,
                        1010
                      ],
                      "loc": {
                        "start": {
                          "line": 25,
                          "column": 13
                        },
                        "end": {
                          "line": 25,
                          "column": 43
                        }
                      }
                    },
                    "params": [
                      {
                        "type": "Identifier",
                        "name": "destination",
                        "range": [
                          1011,
                          1022
                        ],
                        "loc": {
                          "start": {
                            "line": 25,
                            "column": 44
                          },
                          "end": {
                            "line": 25,
                            "column": 55
                          }
                        }
                      },
                      {
                        "type": "Identifier",
                        "name": "compare",
                        "range": [
                          1024,
                          1031
                        ],
                        "loc": {
                          "start": {
                            "line": 25,
                            "column": 57
                          },
                          "end": {
                            "line": 25,
                            "column": 64
                          }
                        }
                      },
                      {
                        "type": "Identifier",
                        "name": "keySelector",
                        "range": [
                          1033,
                          1044
                        ],
                        "loc": {
                          "start": {
                            "line": 25,
                            "column": 66
                          },
                          "end": {
                            "line": 25,
                            "column": 77
                          }
                        }
                      }
                    ],
                    "body": {
                      "type": "BlockStatement",
                      "body": [
                        {
                          "type": "ExpressionStatement",
                          "expression": {
                            "type": "CallExpression",
                            "callee": {
                              "type": "MemberExpression",
                              "computed": false,
                              "object": {
                                "type": "Identifier",
                                "name": "_super",
                                "range": [
                                  1056,
                                  1062
                                ],
                                "loc": {
                                  "start": {
                                    "line": 26,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 26,
                                    "column": 14
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "name": "call",
                                "range": [
                                  1063,
                                  1067
                                ],
                                "loc": {
                                  "start": {
                                    "line": 26,
                                    "column": 15
                                  },
                                  "end": {
                                    "line": 26,
                                    "column": 19
                                  }
                                }
                              },
                              "range": [
                                1056,
                                1067
                              ],
                              "loc": {
                                "start": {
                                  "line": 26,
                                  "column": 8
                                },
                                "end": {
                                  "line": 26,
                                  "column": 19
                                }
                              }
                            },
                            "arguments": [
                              {
                                "type": "ThisExpression",
                                "range": [
                                  1068,
                                  1072
                                ],
                                "loc": {
                                  "start": {
                                    "line": 26,
                                    "column": 20
                                  },
                                  "end": {
                                    "line": 26,
                                    "column": 24
                                  }
                                }
                              },
                              {
                                "type": "Identifier",
                                "name": "destination",
                                "range": [
                                  1074,
                                  1085
                                ],
                                "loc": {
                                  "start": {
                                    "line": 26,
                                    "column": 26
                                  },
                                  "end": {
                                    "line": 26,
                                    "column": 37
                                  }
                                }
                              }
                            ],
                            "range": [
                              1056,
                              1086
                            ],
                            "loc": {
                              "start": {
                                "line": 26,
                                "column": 8
                              },
                              "end": {
                                "line": 26,
                                "column": 38
                              }
                            }
                          },
                          "range": [
                            1056,
                            1087
                          ],
                          "loc": {
                            "start": {
                              "line": 26,
                              "column": 8
                            },
                            "end": {
                              "line": 26,
                              "column": 39
                            }
                          }
                        },
                        {
                          "type": "ExpressionStatement",
                          "expression": {
                            "type": "AssignmentExpression",
                            "operator": "=",
                            "left": {
                              "type": "MemberExpression",
                              "computed": false,
                              "object": {
                                "type": "ThisExpression",
                                "range": [
                                  1096,
                                  1100
                                ],
                                "loc": {
                                  "start": {
                                    "line": 27,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 27,
                                    "column": 12
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "name": "keySelector",
                                "range": [
                                  1101,
                                  1112
                                ],
                                "loc": {
                                  "start": {
                                    "line": 27,
                                    "column": 13
                                  },
                                  "end": {
                                    "line": 27,
                                    "column": 24
                                  }
                                }
                              },
                              "range": [
                                1096,
                                1112
                              ],
                              "loc": {
                                "start": {
                                  "line": 27,
                                  "column": 8
                                },
                                "end": {
                                  "line": 27,
                                  "column": 24
                                }
                              }
                            },
                            "right": {
                              "type": "Identifier",
                              "name": "keySelector",
                              "range": [
                                1115,
                                1126
                              ],
                              "loc": {
                                "start": {
                                  "line": 27,
                                  "column": 27
                                },
                                "end": {
                                  "line": 27,
                                  "column": 38
                                }
                              }
                            },
                            "range": [
                              1096,
                              1126
                            ],
                            "loc": {
                              "start": {
                                "line": 27,
                                "column": 8
                              },
                              "end": {
                                "line": 27,
                                "column": 38
                              }
                            }
                          },
                          "range": [
                            1096,
                            1127
                          ],
                          "loc": {
                            "start": {
                              "line": 27,
                              "column": 8
                            },
                            "end": {
                              "line": 27,
                              "column": 39
                            }
                          }
                        },
                        {
                          "type": "ExpressionStatement",
                          "expression": {
                            "type": "AssignmentExpression",
                            "operator": "=",
                            "left": {
                              "type": "MemberExpression",
                              "computed": false,
                              "object": {
                                "type": "ThisExpression",
                                "range": [
                                  1136,
                                  1140
                                ],
                                "loc": {
                                  "start": {
                                    "line": 28,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 28,
                                    "column": 12
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "name": "hasKey",
                                "range": [
                                  1141,
                                  1147
                                ],
                                "loc": {
                                  "start": {
                                    "line": 28,
                                    "column": 13
                                  },
                                  "end": {
                                    "line": 28,
                                    "column": 19
                                  }
                                }
                              },
                              "range": [
                                1136,
                                1147
                              ],
                              "loc": {
                                "start": {
                                  "line": 28,
                                  "column": 8
                                },
                                "end": {
                                  "line": 28,
                                  "column": 19
                                }
                              }
                            },
                            "right": {
                              "type": "Literal",
                              "value": false,
                              "raw": "false",
                              "range": [
                                1150,
                                1155
                              ],
                              "loc": {
                                "start": {
                                  "line": 28,
                                  "column": 22
                                },
                                "end": {
                                  "line": 28,
                                  "column": 27
                                }
                              }
                            },
                            "range": [
                              1136,
                              1155
                            ],
                            "loc": {
                              "start": {
                                "line": 28,
                                "column": 8
                              },
                              "end": {
                                "line": 28,
                                "column": 27
                              }
                            }
                          },
                          "range": [
                            1136,
                            1156
                          ],
                          "loc": {
                            "start": {
                              "line": 28,
                              "column": 8
                            },
                            "end": {
                              "line": 28,
                              "column": 28
                            }
                          }
                        },
                        {
                          "type": "IfStatement",
                          "test": {
                            "type": "BinaryExpression",
                            "operator": "===",
                            "left": {
                              "type": "UnaryExpression",
                              "operator": "typeof",
                              "argument": {
                                "type": "Identifier",
                                "name": "compare",
                                "range": [
                                  1176,
                                  1183
                                ],
                                "loc": {
                                  "start": {
                                    "line": 29,
                                    "column": 19
                                  },
                                  "end": {
                                    "line": 29,
                                    "column": 26
                                  }
                                }
                              },
                              "prefix": true,
                              "range": [
                                1169,
                                1183
                              ],
                              "loc": {
                                "start": {
                                  "line": 29,
                                  "column": 12
                                },
                                "end": {
                                  "line": 29,
                                  "column": 26
                                }
                              }
                            },
                            "right": {
                              "type": "Literal",
                              "value": "function",
                              "raw": "'function'",
                              "range": [
                                1188,
                                1198
                              ],
                              "loc": {
                                "start": {
                                  "line": 29,
                                  "column": 31
                                },
                                "end": {
                                  "line": 29,
                                  "column": 41
                                }
                              }
                            },
                            "range": [
                              1169,
                              1198
                            ],
                            "loc": {
                              "start": {
                                "line": 29,
                                "column": 12
                              },
                              "end": {
                                "line": 29,
                                "column": 41
                              }
                            }
                          },
                          "consequent": {
                            "type": "BlockStatement",
                            "body": [
                              {
                                "type": "ExpressionStatement",
                                "expression": {
                                  "type": "AssignmentExpression",
                                  "operator": "=",
                                  "left": {
                                    "type": "MemberExpression",
                                    "computed": false,
                                    "object": {
                                      "type": "ThisExpression",
                                      "range": [
                                        1214,
                                        1218
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 30,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 30,
                                          "column": 16
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "name": "compare",
                                      "range": [
                                        1219,
                                        1226
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 30,
                                          "column": 17
                                        },
                                        "end": {
                                          "line": 30,
                                          "column": 24
                                        }
                                      }
                                    },
                                    "range": [
                                      1214,
                                      1226
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 30,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 30,
                                        "column": 24
                                      }
                                    }
                                  },
                                  "right": {
                                    "type": "Identifier",
                                    "name": "compare",
                                    "range": [
                                      1229,
                                      1236
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 30,
                                        "column": 27
                                      },
                                      "end": {
                                        "line": 30,
                                        "column": 34
                                      }
                                    }
                                  },
                                  "range": [
                                    1214,
                                    1236
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 30,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 30,
                                      "column": 34
                                    }
                                  }
                                },
                                "range": [
                                  1214,
                                  1237
                                ],
                                "loc": {
                                  "start": {
                                    "line": 30,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 30,
                                    "column": 35
                                  }
                                }
                              }
                            ],
                            "range": [
                              1200,
                              1247
                            ],
                            "loc": {
                              "start": {
                                "line": 29,
                                "column": 43
                              },
                              "end": {
                                "line": 31,
                                "column": 9
                              }
                            }
                          },
                          "alternate": null,
                          "range": [
                            1165,
                            1247
                          ],
                          "loc": {
                            "start": {
                              "line": 29,
                              "column": 8
                            },
                            "end": {
                              "line": 31,
                              "column": 9
                            }
                          }
                        }
                      ],
                      "range": [
                        1046,
                        1253
                      ],
                      "loc": {
                        "start": {
                          "line": 25,
                          "column": 79
                        },
                        "end": {
                          "line": 32,
                          "column": 5
                        }
                      }
                    },
                    "generator": false,
                    "expression": false,
                    "range": [
                      971,
                      1253
                    ],
                    "loc": {
                      "start": {
                        "line": 25,
                        "column": 4
                      },
                      "end": {
                        "line": 32,
                        "column": 5
                      }
                    }
                  },
                  {
                    "type": "ExpressionStatement",
                    "expression": {
                      "type": "AssignmentExpression",
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "computed": false,
                        "object": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "Identifier",
                            "name": "DistinctUntilChangedSubscriber",
                            "range": [
                              1258,
                              1288
                            ],
                            "loc": {
                              "start": {
                                "line": 33,
                                "column": 4
                              },
                              "end": {
                                "line": 33,
                                "column": 34
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "prototype",
                            "range": [
                              1289,
                              1298
                            ],
                            "loc": {
                              "start": {
                                "line": 33,
                                "column": 35
                              },
                              "end": {
                                "line": 33,
                                "column": 44
                              }
                            }
                          },
                          "range": [
                            1258,
                            1298
                          ],
                          "loc": {
                            "start": {
                              "line": 33,
                              "column": 4
                            },
                            "end": {
                              "line": 33,
                              "column": 44
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "name": "compare",
                          "range": [
                            1299,
                            1306
                          ],
                          "loc": {
                            "start": {
                              "line": 33,
                              "column": 45
                            },
                            "end": {
                              "line": 33,
                              "column": 52
                            }
                          }
                        },
                        "range": [
                          1258,
                          1306
                        ],
                        "loc": {
                          "start": {
                            "line": 33,
                            "column": 4
                          },
                          "end": {
                            "line": 33,
                            "column": 52
                          }
                        }
                      },
                      "right": {
                        "type": "FunctionExpression",
                        "id": null,
                        "params": [
                          {
                            "type": "Identifier",
                            "name": "x",
                            "range": [
                              1319,
                              1320
                            ],
                            "loc": {
                              "start": {
                                "line": 33,
                                "column": 65
                              },
                              "end": {
                                "line": 33,
                                "column": 66
                              }
                            }
                          },
                          {
                            "type": "Identifier",
                            "name": "y",
                            "range": [
                              1322,
                              1323
                            ],
                            "loc": {
                              "start": {
                                "line": 33,
                                "column": 68
                              },
                              "end": {
                                "line": 33,
                                "column": 69
                              }
                            }
                          }
                        ],
                        "body": {
                          "type": "BlockStatement",
                          "body": [
                            {
                              "type": "ReturnStatement",
                              "argument": {
                                "type": "BinaryExpression",
                                "operator": "===",
                                "left": {
                                  "type": "Identifier",
                                  "name": "x",
                                  "range": [
                                    1342,
                                    1343
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 34,
                                      "column": 15
                                    },
                                    "end": {
                                      "line": 34,
                                      "column": 16
                                    }
                                  }
                                },
                                "right": {
                                  "type": "Identifier",
                                  "name": "y",
                                  "range": [
                                    1348,
                                    1349
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 34,
                                      "column": 21
                                    },
                                    "end": {
                                      "line": 34,
                                      "column": 22
                                    }
                                  }
                                },
                                "range": [
                                  1342,
                                  1349
                                ],
                                "loc": {
                                  "start": {
                                    "line": 34,
                                    "column": 15
                                  },
                                  "end": {
                                    "line": 34,
                                    "column": 22
                                  }
                                }
                              },
                              "range": [
                                1335,
                                1350
                              ],
                              "loc": {
                                "start": {
                                  "line": 34,
                                  "column": 8
                                },
                                "end": {
                                  "line": 34,
                                  "column": 23
                                }
                              }
                            }
                          ],
                          "range": [
                            1325,
                            1356
                          ],
                          "loc": {
                            "start": {
                              "line": 33,
                              "column": 71
                            },
                            "end": {
                              "line": 35,
                              "column": 5
                            }
                          }
                        },
                        "generator": false,
                        "expression": false,
                        "range": [
                          1309,
                          1356
                        ],
                        "loc": {
                          "start": {
                            "line": 33,
                            "column": 55
                          },
                          "end": {
                            "line": 35,
                            "column": 5
                          }
                        }
                      },
                      "range": [
                        1258,
                        1356
                      ],
                      "loc": {
                        "start": {
                          "line": 33,
                          "column": 4
                        },
                        "end": {
                          "line": 35,
                          "column": 5
                        }
                      }
                    },
                    "range": [
                      1258,
                      1357
                    ],
                    "loc": {
                      "start": {
                        "line": 33,
                        "column": 4
                      },
                      "end": {
                        "line": 35,
                        "column": 6
                      }
                    }
                  },
                  {
                    "type": "ExpressionStatement",
                    "expression": {
                      "type": "AssignmentExpression",
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "computed": false,
                        "object": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "Identifier",
                            "name": "DistinctUntilChangedSubscriber",
                            "range": [
                              1362,
                              1392
                            ],
                            "loc": {
                              "start": {
                                "line": 36,
                                "column": 4
                              },
                              "end": {
                                "line": 36,
                                "column": 34
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "prototype",
                            "range": [
                              1393,
                              1402
                            ],
                            "loc": {
                              "start": {
                                "line": 36,
                                "column": 35
                              },
                              "end": {
                                "line": 36,
                                "column": 44
                              }
                            }
                          },
                          "range": [
                            1362,
                            1402
                          ],
                          "loc": {
                            "start": {
                              "line": 36,
                              "column": 4
                            },
                            "end": {
                              "line": 36,
                              "column": 44
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "name": "_next",
                          "range": [
                            1403,
                            1408
                          ],
                          "loc": {
                            "start": {
                              "line": 36,
                              "column": 45
                            },
                            "end": {
                              "line": 36,
                              "column": 50
                            }
                          }
                        },
                        "range": [
                          1362,
                          1408
                        ],
                        "loc": {
                          "start": {
                            "line": 36,
                            "column": 4
                          },
                          "end": {
                            "line": 36,
                            "column": 50
                          }
                        }
                      },
                      "right": {
                        "type": "FunctionExpression",
                        "id": null,
                        "params": [
                          {
                            "type": "Identifier",
                            "name": "value",
                            "range": [
                              1421,
                              1426
                            ],
                            "loc": {
                              "start": {
                                "line": 36,
                                "column": 63
                              },
                              "end": {
                                "line": 36,
                                "column": 68
                              }
                            }
                          }
                        ],
                        "body": {
                          "type": "BlockStatement",
                          "body": [
                            {
                              "type": "VariableDeclaration",
                              "declarations": [
                                {
                                  "type": "VariableDeclarator",
                                  "id": {
                                    "type": "Identifier",
                                    "name": "keySelector",
                                    "range": [
                                      1442,
                                      1453
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 37,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 37,
                                        "column": 23
                                      }
                                    }
                                  },
                                  "init": {
                                    "type": "MemberExpression",
                                    "computed": false,
                                    "object": {
                                      "type": "ThisExpression",
                                      "range": [
                                        1456,
                                        1460
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 37,
                                          "column": 26
                                        },
                                        "end": {
                                          "line": 37,
                                          "column": 30
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "name": "keySelector",
                                      "range": [
                                        1461,
                                        1472
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 37,
                                          "column": 31
                                        },
                                        "end": {
                                          "line": 37,
                                          "column": 42
                                        }
                                      }
                                    },
                                    "range": [
                                      1456,
                                      1472
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 37,
                                        "column": 26
                                      },
                                      "end": {
                                        "line": 37,
                                        "column": 42
                                      }
                                    }
                                  },
                                  "range": [
                                    1442,
                                    1472
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 37,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 37,
                                      "column": 42
                                    }
                                  }
                                }
                              ],
                              "kind": "var",
                              "range": [
                                1438,
                                1473
                              ],
                              "loc": {
                                "start": {
                                  "line": 37,
                                  "column": 8
                                },
                                "end": {
                                  "line": 37,
                                  "column": 43
                                }
                              }
                            },
                            {
                              "type": "VariableDeclaration",
                              "declarations": [
                                {
                                  "type": "VariableDeclarator",
                                  "id": {
                                    "type": "Identifier",
                                    "name": "key",
                                    "range": [
                                      1486,
                                      1489
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 38,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 38,
                                        "column": 15
                                      }
                                    }
                                  },
                                  "init": {
                                    "type": "Identifier",
                                    "name": "value",
                                    "range": [
                                      1492,
                                      1497
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 38,
                                        "column": 18
                                      },
                                      "end": {
                                        "line": 38,
                                        "column": 23
                                      }
                                    }
                                  },
                                  "range": [
                                    1486,
                                    1497
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 38,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 38,
                                      "column": 23
                                    }
                                  }
                                }
                              ],
                              "kind": "var",
                              "range": [
                                1482,
                                1498
                              ],
                              "loc": {
                                "start": {
                                  "line": 38,
                                  "column": 8
                                },
                                "end": {
                                  "line": 38,
                                  "column": 24
                                }
                              }
                            },
                            {
                              "type": "IfStatement",
                              "test": {
                                "type": "Identifier",
                                "name": "keySelector",
                                "range": [
                                  1511,
                                  1522
                                ],
                                "loc": {
                                  "start": {
                                    "line": 39,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 39,
                                    "column": 23
                                  }
                                }
                              },
                              "consequent": {
                                "type": "BlockStatement",
                                "body": [
                                  {
                                    "type": "ExpressionStatement",
                                    "expression": {
                                      "type": "AssignmentExpression",
                                      "operator": "=",
                                      "left": {
                                        "type": "Identifier",
                                        "name": "key",
                                        "range": [
                                          1538,
                                          1541
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 40,
                                            "column": 12
                                          },
                                          "end": {
                                            "line": 40,
                                            "column": 15
                                          }
                                        }
                                      },
                                      "right": {
                                        "type": "CallExpression",
                                        "callee": {
                                          "type": "CallExpression",
                                          "callee": {
                                            "type": "Identifier",
                                            "name": "tryCatch",
                                            "range": [
                                              1544,
                                              1552
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 40,
                                                "column": 18
                                              },
                                              "end": {
                                                "line": 40,
                                                "column": 26
                                              }
                                            }
                                          },
                                          "arguments": [
                                            {
                                              "type": "MemberExpression",
                                              "computed": false,
                                              "object": {
                                                "type": "ThisExpression",
                                                "range": [
                                                  1553,
                                                  1557
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 40,
                                                    "column": 27
                                                  },
                                                  "end": {
                                                    "line": 40,
                                                    "column": 31
                                                  }
                                                }
                                              },
                                              "property": {
                                                "type": "Identifier",
                                                "name": "keySelector",
                                                "range": [
                                                  1558,
                                                  1569
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 40,
                                                    "column": 32
                                                  },
                                                  "end": {
                                                    "line": 40,
                                                    "column": 43
                                                  }
                                                }
                                              },
                                              "range": [
                                                1553,
                                                1569
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 40,
                                                  "column": 27
                                                },
                                                "end": {
                                                  "line": 40,
                                                  "column": 43
                                                }
                                              }
                                            }
                                          ],
                                          "range": [
                                            1544,
                                            1570
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 40,
                                              "column": 18
                                            },
                                            "end": {
                                              "line": 40,
                                              "column": 44
                                            }
                                          }
                                        },
                                        "arguments": [
                                          {
                                            "type": "Identifier",
                                            "name": "value",
                                            "range": [
                                              1571,
                                              1576
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 40,
                                                "column": 45
                                              },
                                              "end": {
                                                "line": 40,
                                                "column": 50
                                              }
                                            }
                                          }
                                        ],
                                        "range": [
                                          1544,
                                          1577
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 40,
                                            "column": 18
                                          },
                                          "end": {
                                            "line": 40,
                                            "column": 51
                                          }
                                        }
                                      },
                                      "range": [
                                        1538,
                                        1577
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 40,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 40,
                                          "column": 51
                                        }
                                      }
                                    },
                                    "range": [
                                      1538,
                                      1578
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 40,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 40,
                                        "column": 52
                                      }
                                    }
                                  },
                                  {
                                    "type": "IfStatement",
                                    "test": {
                                      "type": "BinaryExpression",
                                      "operator": "===",
                                      "left": {
                                        "type": "Identifier",
                                        "name": "key",
                                        "range": [
                                          1595,
                                          1598
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 41,
                                            "column": 16
                                          },
                                          "end": {
                                            "line": 41,
                                            "column": 19
                                          }
                                        }
                                      },
                                      "right": {
                                        "type": "Identifier",
                                        "name": "errorObject",
                                        "range": [
                                          1603,
                                          1614
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 41,
                                            "column": 24
                                          },
                                          "end": {
                                            "line": 41,
                                            "column": 35
                                          }
                                        }
                                      },
                                      "range": [
                                        1595,
                                        1614
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 41,
                                          "column": 16
                                        },
                                        "end": {
                                          "line": 41,
                                          "column": 35
                                        }
                                      }
                                    },
                                    "consequent": {
                                      "type": "BlockStatement",
                                      "body": [
                                        {
                                          "type": "ReturnStatement",
                                          "argument": {
                                            "type": "CallExpression",
                                            "callee": {
                                              "type": "MemberExpression",
                                              "computed": false,
                                              "object": {
                                                "type": "MemberExpression",
                                                "computed": false,
                                                "object": {
                                                  "type": "ThisExpression",
                                                  "range": [
                                                    1641,
                                                    1645
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 42,
                                                      "column": 23
                                                    },
                                                    "end": {
                                                      "line": 42,
                                                      "column": 27
                                                    }
                                                  }
                                                },
                                                "property": {
                                                  "type": "Identifier",
                                                  "name": "destination",
                                                  "range": [
                                                    1646,
                                                    1657
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 42,
                                                      "column": 28
                                                    },
                                                    "end": {
                                                      "line": 42,
                                                      "column": 39
                                                    }
                                                  }
                                                },
                                                "range": [
                                                  1641,
                                                  1657
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 42,
                                                    "column": 23
                                                  },
                                                  "end": {
                                                    "line": 42,
                                                    "column": 39
                                                  }
                                                }
                                              },
                                              "property": {
                                                "type": "Identifier",
                                                "name": "error",
                                                "range": [
                                                  1658,
                                                  1663
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 42,
                                                    "column": 40
                                                  },
                                                  "end": {
                                                    "line": 42,
                                                    "column": 45
                                                  }
                                                }
                                              },
                                              "range": [
                                                1641,
                                                1663
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 42,
                                                  "column": 23
                                                },
                                                "end": {
                                                  "line": 42,
                                                  "column": 45
                                                }
                                              }
                                            },
                                            "arguments": [
                                              {
                                                "type": "MemberExpression",
                                                "computed": false,
                                                "object": {
                                                  "type": "Identifier",
                                                  "name": "errorObject",
                                                  "range": [
                                                    1664,
                                                    1675
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 42,
                                                      "column": 46
                                                    },
                                                    "end": {
                                                      "line": 42,
                                                      "column": 57
                                                    }
                                                  }
                                                },
                                                "property": {
                                                  "type": "Identifier",
                                                  "name": "e",
                                                  "range": [
                                                    1676,
                                                    1677
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 42,
                                                      "column": 58
                                                    },
                                                    "end": {
                                                      "line": 42,
                                                      "column": 59
                                                    }
                                                  }
                                                },
                                                "range": [
                                                  1664,
                                                  1677
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 42,
                                                    "column": 46
                                                  },
                                                  "end": {
                                                    "line": 42,
                                                    "column": 59
                                                  }
                                                }
                                              }
                                            ],
                                            "range": [
                                              1641,
                                              1678
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 42,
                                                "column": 23
                                              },
                                              "end": {
                                                "line": 42,
                                                "column": 60
                                              }
                                            }
                                          },
                                          "range": [
                                            1634,
                                            1679
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 42,
                                              "column": 16
                                            },
                                            "end": {
                                              "line": 42,
                                              "column": 61
                                            }
                                          }
                                        }
                                      ],
                                      "range": [
                                        1616,
                                        1693
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 41,
                                          "column": 37
                                        },
                                        "end": {
                                          "line": 43,
                                          "column": 13
                                        }
                                      }
                                    },
                                    "alternate": null,
                                    "range": [
                                      1591,
                                      1693
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 41,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 43,
                                        "column": 13
                                      }
                                    }
                                  }
                                ],
                                "range": [
                                  1524,
                                  1703
                                ],
                                "loc": {
                                  "start": {
                                    "line": 39,
                                    "column": 25
                                  },
                                  "end": {
                                    "line": 44,
                                    "column": 9
                                  }
                                }
                              },
                              "alternate": null,
                              "range": [
                                1507,
                                1703
                              ],
                              "loc": {
                                "start": {
                                  "line": 39,
                                  "column": 8
                                },
                                "end": {
                                  "line": 44,
                                  "column": 9
                                }
                              }
                            },
                            {
                              "type": "VariableDeclaration",
                              "declarations": [
                                {
                                  "type": "VariableDeclarator",
                                  "id": {
                                    "type": "Identifier",
                                    "name": "result",
                                    "range": [
                                      1716,
                                      1722
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 45,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 45,
                                        "column": 18
                                      }
                                    }
                                  },
                                  "init": {
                                    "type": "Literal",
                                    "value": false,
                                    "raw": "false",
                                    "range": [
                                      1725,
                                      1730
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 45,
                                        "column": 21
                                      },
                                      "end": {
                                        "line": 45,
                                        "column": 26
                                      }
                                    }
                                  },
                                  "range": [
                                    1716,
                                    1730
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 45,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 45,
                                      "column": 26
                                    }
                                  }
                                }
                              ],
                              "kind": "var",
                              "range": [
                                1712,
                                1731
                              ],
                              "loc": {
                                "start": {
                                  "line": 45,
                                  "column": 8
                                },
                                "end": {
                                  "line": 45,
                                  "column": 27
                                }
                              }
                            },
                            {
                              "type": "IfStatement",
                              "test": {
                                "type": "MemberExpression",
                                "computed": false,
                                "object": {
                                  "type": "ThisExpression",
                                  "range": [
                                    1744,
                                    1748
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 46,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 46,
                                      "column": 16
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "name": "hasKey",
                                  "range": [
                                    1749,
                                    1755
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 46,
                                      "column": 17
                                    },
                                    "end": {
                                      "line": 46,
                                      "column": 23
                                    }
                                  }
                                },
                                "range": [
                                  1744,
                                  1755
                                ],
                                "loc": {
                                  "start": {
                                    "line": 46,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 46,
                                    "column": 23
                                  }
                                }
                              },
                              "consequent": {
                                "type": "BlockStatement",
                                "body": [
                                  {
                                    "type": "ExpressionStatement",
                                    "expression": {
                                      "type": "AssignmentExpression",
                                      "operator": "=",
                                      "left": {
                                        "type": "Identifier",
                                        "name": "result",
                                        "range": [
                                          1771,
                                          1777
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 47,
                                            "column": 12
                                          },
                                          "end": {
                                            "line": 47,
                                            "column": 18
                                          }
                                        }
                                      },
                                      "right": {
                                        "type": "CallExpression",
                                        "callee": {
                                          "type": "CallExpression",
                                          "callee": {
                                            "type": "Identifier",
                                            "name": "tryCatch",
                                            "range": [
                                              1780,
                                              1788
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 47,
                                                "column": 21
                                              },
                                              "end": {
                                                "line": 47,
                                                "column": 29
                                              }
                                            }
                                          },
                                          "arguments": [
                                            {
                                              "type": "MemberExpression",
                                              "computed": false,
                                              "object": {
                                                "type": "ThisExpression",
                                                "range": [
                                                  1789,
                                                  1793
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 47,
                                                    "column": 30
                                                  },
                                                  "end": {
                                                    "line": 47,
                                                    "column": 34
                                                  }
                                                }
                                              },
                                              "property": {
                                                "type": "Identifier",
                                                "name": "compare",
                                                "range": [
                                                  1794,
                                                  1801
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 47,
                                                    "column": 35
                                                  },
                                                  "end": {
                                                    "line": 47,
                                                    "column": 42
                                                  }
                                                }
                                              },
                                              "range": [
                                                1789,
                                                1801
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 47,
                                                  "column": 30
                                                },
                                                "end": {
                                                  "line": 47,
                                                  "column": 42
                                                }
                                              }
                                            }
                                          ],
                                          "range": [
                                            1780,
                                            1802
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 47,
                                              "column": 21
                                            },
                                            "end": {
                                              "line": 47,
                                              "column": 43
                                            }
                                          }
                                        },
                                        "arguments": [
                                          {
                                            "type": "MemberExpression",
                                            "computed": false,
                                            "object": {
                                              "type": "ThisExpression",
                                              "range": [
                                                1803,
                                                1807
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 47,
                                                  "column": 44
                                                },
                                                "end": {
                                                  "line": 47,
                                                  "column": 48
                                                }
                                              }
                                            },
                                            "property": {
                                              "type": "Identifier",
                                              "name": "key",
                                              "range": [
                                                1808,
                                                1811
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 47,
                                                  "column": 49
                                                },
                                                "end": {
                                                  "line": 47,
                                                  "column": 52
                                                }
                                              }
                                            },
                                            "range": [
                                              1803,
                                              1811
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 47,
                                                "column": 44
                                              },
                                              "end": {
                                                "line": 47,
                                                "column": 52
                                              }
                                            }
                                          },
                                          {
                                            "type": "Identifier",
                                            "name": "key",
                                            "range": [
                                              1813,
                                              1816
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 47,
                                                "column": 54
                                              },
                                              "end": {
                                                "line": 47,
                                                "column": 57
                                              }
                                            }
                                          }
                                        ],
                                        "range": [
                                          1780,
                                          1817
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 47,
                                            "column": 21
                                          },
                                          "end": {
                                            "line": 47,
                                            "column": 58
                                          }
                                        }
                                      },
                                      "range": [
                                        1771,
                                        1817
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 47,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 47,
                                          "column": 58
                                        }
                                      }
                                    },
                                    "range": [
                                      1771,
                                      1818
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 47,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 47,
                                        "column": 59
                                      }
                                    }
                                  },
                                  {
                                    "type": "IfStatement",
                                    "test": {
                                      "type": "BinaryExpression",
                                      "operator": "===",
                                      "left": {
                                        "type": "Identifier",
                                        "name": "result",
                                        "range": [
                                          1835,
                                          1841
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 48,
                                            "column": 16
                                          },
                                          "end": {
                                            "line": 48,
                                            "column": 22
                                          }
                                        }
                                      },
                                      "right": {
                                        "type": "Identifier",
                                        "name": "errorObject",
                                        "range": [
                                          1846,
                                          1857
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 48,
                                            "column": 27
                                          },
                                          "end": {
                                            "line": 48,
                                            "column": 38
                                          }
                                        }
                                      },
                                      "range": [
                                        1835,
                                        1857
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 48,
                                          "column": 16
                                        },
                                        "end": {
                                          "line": 48,
                                          "column": 38
                                        }
                                      }
                                    },
                                    "consequent": {
                                      "type": "BlockStatement",
                                      "body": [
                                        {
                                          "type": "ReturnStatement",
                                          "argument": {
                                            "type": "CallExpression",
                                            "callee": {
                                              "type": "MemberExpression",
                                              "computed": false,
                                              "object": {
                                                "type": "MemberExpression",
                                                "computed": false,
                                                "object": {
                                                  "type": "ThisExpression",
                                                  "range": [
                                                    1884,
                                                    1888
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 49,
                                                      "column": 23
                                                    },
                                                    "end": {
                                                      "line": 49,
                                                      "column": 27
                                                    }
                                                  }
                                                },
                                                "property": {
                                                  "type": "Identifier",
                                                  "name": "destination",
                                                  "range": [
                                                    1889,
                                                    1900
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 49,
                                                      "column": 28
                                                    },
                                                    "end": {
                                                      "line": 49,
                                                      "column": 39
                                                    }
                                                  }
                                                },
                                                "range": [
                                                  1884,
                                                  1900
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 49,
                                                    "column": 23
                                                  },
                                                  "end": {
                                                    "line": 49,
                                                    "column": 39
                                                  }
                                                }
                                              },
                                              "property": {
                                                "type": "Identifier",
                                                "name": "error",
                                                "range": [
                                                  1901,
                                                  1906
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 49,
                                                    "column": 40
                                                  },
                                                  "end": {
                                                    "line": 49,
                                                    "column": 45
                                                  }
                                                }
                                              },
                                              "range": [
                                                1884,
                                                1906
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 49,
                                                  "column": 23
                                                },
                                                "end": {
                                                  "line": 49,
                                                  "column": 45
                                                }
                                              }
                                            },
                                            "arguments": [
                                              {
                                                "type": "MemberExpression",
                                                "computed": false,
                                                "object": {
                                                  "type": "Identifier",
                                                  "name": "errorObject",
                                                  "range": [
                                                    1907,
                                                    1918
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 49,
                                                      "column": 46
                                                    },
                                                    "end": {
                                                      "line": 49,
                                                      "column": 57
                                                    }
                                                  }
                                                },
                                                "property": {
                                                  "type": "Identifier",
                                                  "name": "e",
                                                  "range": [
                                                    1919,
                                                    1920
                                                  ],
                                                  "loc": {
                                                    "start": {
                                                      "line": 49,
                                                      "column": 58
                                                    },
                                                    "end": {
                                                      "line": 49,
                                                      "column": 59
                                                    }
                                                  }
                                                },
                                                "range": [
                                                  1907,
                                                  1920
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 49,
                                                    "column": 46
                                                  },
                                                  "end": {
                                                    "line": 49,
                                                    "column": 59
                                                  }
                                                }
                                              }
                                            ],
                                            "range": [
                                              1884,
                                              1921
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 49,
                                                "column": 23
                                              },
                                              "end": {
                                                "line": 49,
                                                "column": 60
                                              }
                                            }
                                          },
                                          "range": [
                                            1877,
                                            1922
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 49,
                                              "column": 16
                                            },
                                            "end": {
                                              "line": 49,
                                              "column": 61
                                            }
                                          }
                                        }
                                      ],
                                      "range": [
                                        1859,
                                        1936
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 48,
                                          "column": 40
                                        },
                                        "end": {
                                          "line": 50,
                                          "column": 13
                                        }
                                      }
                                    },
                                    "alternate": null,
                                    "range": [
                                      1831,
                                      1936
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 48,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 50,
                                        "column": 13
                                      }
                                    }
                                  }
                                ],
                                "range": [
                                  1757,
                                  1946
                                ],
                                "loc": {
                                  "start": {
                                    "line": 46,
                                    "column": 25
                                  },
                                  "end": {
                                    "line": 51,
                                    "column": 9
                                  }
                                }
                              },
                              "alternate": {
                                "type": "BlockStatement",
                                "body": [
                                  {
                                    "type": "ExpressionStatement",
                                    "expression": {
                                      "type": "AssignmentExpression",
                                      "operator": "=",
                                      "left": {
                                        "type": "MemberExpression",
                                        "computed": false,
                                        "object": {
                                          "type": "ThisExpression",
                                          "range": [
                                            1974,
                                            1978
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 53,
                                              "column": 12
                                            },
                                            "end": {
                                              "line": 53,
                                              "column": 16
                                            }
                                          }
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "name": "hasKey",
                                          "range": [
                                            1979,
                                            1985
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 53,
                                              "column": 17
                                            },
                                            "end": {
                                              "line": 53,
                                              "column": 23
                                            }
                                          }
                                        },
                                        "range": [
                                          1974,
                                          1985
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 53,
                                            "column": 12
                                          },
                                          "end": {
                                            "line": 53,
                                            "column": 23
                                          }
                                        }
                                      },
                                      "right": {
                                        "type": "Literal",
                                        "value": true,
                                        "raw": "true",
                                        "range": [
                                          1988,
                                          1992
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 53,
                                            "column": 26
                                          },
                                          "end": {
                                            "line": 53,
                                            "column": 30
                                          }
                                        }
                                      },
                                      "range": [
                                        1974,
                                        1992
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 53,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 53,
                                          "column": 30
                                        }
                                      }
                                    },
                                    "range": [
                                      1974,
                                      1993
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 53,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 53,
                                        "column": 31
                                      }
                                    }
                                  }
                                ],
                                "range": [
                                  1960,
                                  2003
                                ],
                                "loc": {
                                  "start": {
                                    "line": 52,
                                    "column": 13
                                  },
                                  "end": {
                                    "line": 54,
                                    "column": 9
                                  }
                                }
                              },
                              "range": [
                                1740,
                                2003
                              ],
                              "loc": {
                                "start": {
                                  "line": 46,
                                  "column": 8
                                },
                                "end": {
                                  "line": 54,
                                  "column": 9
                                }
                              }
                            },
                            {
                              "type": "IfStatement",
                              "test": {
                                "type": "BinaryExpression",
                                "operator": "===",
                                "left": {
                                  "type": "CallExpression",
                                  "callee": {
                                    "type": "Identifier",
                                    "name": "Boolean",
                                    "range": [
                                      2016,
                                      2023
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 55,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 55,
                                        "column": 19
                                      }
                                    }
                                  },
                                  "arguments": [
                                    {
                                      "type": "Identifier",
                                      "name": "result",
                                      "range": [
                                        2024,
                                        2030
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 55,
                                          "column": 20
                                        },
                                        "end": {
                                          "line": 55,
                                          "column": 26
                                        }
                                      }
                                    }
                                  ],
                                  "range": [
                                    2016,
                                    2031
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 55,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 55,
                                      "column": 27
                                    }
                                  }
                                },
                                "right": {
                                  "type": "Literal",
                                  "value": false,
                                  "raw": "false",
                                  "range": [
                                    2036,
                                    2041
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 55,
                                      "column": 32
                                    },
                                    "end": {
                                      "line": 55,
                                      "column": 37
                                    }
                                  }
                                },
                                "range": [
                                  2016,
                                  2041
                                ],
                                "loc": {
                                  "start": {
                                    "line": 55,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 55,
                                    "column": 37
                                  }
                                }
                              },
                              "consequent": {
                                "type": "BlockStatement",
                                "body": [
                                  {
                                    "type": "ExpressionStatement",
                                    "expression": {
                                      "type": "AssignmentExpression",
                                      "operator": "=",
                                      "left": {
                                        "type": "MemberExpression",
                                        "computed": false,
                                        "object": {
                                          "type": "ThisExpression",
                                          "range": [
                                            2057,
                                            2061
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 56,
                                              "column": 12
                                            },
                                            "end": {
                                              "line": 56,
                                              "column": 16
                                            }
                                          }
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "name": "key",
                                          "range": [
                                            2062,
                                            2065
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 56,
                                              "column": 17
                                            },
                                            "end": {
                                              "line": 56,
                                              "column": 20
                                            }
                                          }
                                        },
                                        "range": [
                                          2057,
                                          2065
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 56,
                                            "column": 12
                                          },
                                          "end": {
                                            "line": 56,
                                            "column": 20
                                          }
                                        }
                                      },
                                      "right": {
                                        "type": "Identifier",
                                        "name": "key",
                                        "range": [
                                          2068,
                                          2071
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 56,
                                            "column": 23
                                          },
                                          "end": {
                                            "line": 56,
                                            "column": 26
                                          }
                                        }
                                      },
                                      "range": [
                                        2057,
                                        2071
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 56,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 56,
                                          "column": 26
                                        }
                                      }
                                    },
                                    "range": [
                                      2057,
                                      2072
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 56,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 56,
                                        "column": 27
                                      }
                                    }
                                  },
                                  {
                                    "type": "ExpressionStatement",
                                    "expression": {
                                      "type": "CallExpression",
                                      "callee": {
                                        "type": "MemberExpression",
                                        "computed": false,
                                        "object": {
                                          "type": "MemberExpression",
                                          "computed": false,
                                          "object": {
                                            "type": "ThisExpression",
                                            "range": [
                                              2085,
                                              2089
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 57,
                                                "column": 12
                                              },
                                              "end": {
                                                "line": 57,
                                                "column": 16
                                              }
                                            }
                                          },
                                          "property": {
                                            "type": "Identifier",
                                            "name": "destination",
                                            "range": [
                                              2090,
                                              2101
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 57,
                                                "column": 17
                                              },
                                              "end": {
                                                "line": 57,
                                                "column": 28
                                              }
                                            }
                                          },
                                          "range": [
                                            2085,
                                            2101
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 57,
                                              "column": 12
                                            },
                                            "end": {
                                              "line": 57,
                                              "column": 28
                                            }
                                          }
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "name": "next",
                                          "range": [
                                            2102,
                                            2106
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 57,
                                              "column": 29
                                            },
                                            "end": {
                                              "line": 57,
                                              "column": 33
                                            }
                                          }
                                        },
                                        "range": [
                                          2085,
                                          2106
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 57,
                                            "column": 12
                                          },
                                          "end": {
                                            "line": 57,
                                            "column": 33
                                          }
                                        }
                                      },
                                      "arguments": [
                                        {
                                          "type": "Identifier",
                                          "name": "value",
                                          "range": [
                                            2107,
                                            2112
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 57,
                                              "column": 34
                                            },
                                            "end": {
                                              "line": 57,
                                              "column": 39
                                            }
                                          }
                                        }
                                      ],
                                      "range": [
                                        2085,
                                        2113
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 57,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 57,
                                          "column": 40
                                        }
                                      }
                                    },
                                    "range": [
                                      2085,
                                      2114
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 57,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 57,
                                        "column": 41
                                      }
                                    }
                                  }
                                ],
                                "range": [
                                  2043,
                                  2124
                                ],
                                "loc": {
                                  "start": {
                                    "line": 55,
                                    "column": 39
                                  },
                                  "end": {
                                    "line": 58,
                                    "column": 9
                                  }
                                }
                              },
                              "alternate": null,
                              "range": [
                                2012,
                                2124
                              ],
                              "loc": {
                                "start": {
                                  "line": 55,
                                  "column": 8
                                },
                                "end": {
                                  "line": 58,
                                  "column": 9
                                }
                              }
                            }
                          ],
                          "range": [
                            1428,
                            2130
                          ],
                          "loc": {
                            "start": {
                              "line": 36,
                              "column": 70
                            },
                            "end": {
                              "line": 59,
                              "column": 5
                            }
                          }
                        },
                        "generator": false,
                        "expression": false,
                        "range": [
                          1411,
                          2130
                        ],
                        "loc": {
                          "start": {
                            "line": 36,
                            "column": 53
                          },
                          "end": {
                            "line": 59,
                            "column": 5
                          }
                        }
                      },
                      "range": [
                        1362,
                        2130
                      ],
                      "loc": {
                        "start": {
                          "line": 36,
                          "column": 4
                        },
                        "end": {
                          "line": 59,
                          "column": 5
                        }
                      }
                    },
                    "range": [
                      1362,
                      2131
                    ],
                    "loc": {
                      "start": {
                        "line": 36,
                        "column": 4
                      },
                      "end": {
                        "line": 59,
                        "column": 6
                      }
                    }
                  },
                  {
                    "type": "ReturnStatement",
                    "argument": {
                      "type": "Identifier",
                      "name": "DistinctUntilChangedSubscriber",
                      "range": [
                        2143,
                        2173
                      ],
                      "loc": {
                        "start": {
                          "line": 60,
                          "column": 11
                        },
                        "end": {
                          "line": 60,
                          "column": 41
                        }
                      }
                    },
                    "range": [
                      2136,
                      2174
                    ],
                    "loc": {
                      "start": {
                        "line": 60,
                        "column": 4
                      },
                      "end": {
                        "line": 60,
                        "column": 42
                      }
                    }
                  }
                ],
                "range": [
                  910,
                  2176
                ],
                "loc": {
                  "start": {
                    "line": 23,
                    "column": 56
                  },
                  "end": {
                    "line": 61,
                    "column": 1
                  }
                }
              },
              "generator": false,
              "expression": false,
              "range": [
                892,
                2176
              ],
              "loc": {
                "start": {
                  "line": 23,
                  "column": 38
                },
                "end": {
                  "line": 61,
                  "column": 1
                }
              }
            },
            "arguments": [
              {
                "type": "Identifier",
                "name": "Subscriber",
                "range": [
                  2177,
                  2187
                ],
                "loc": {
                  "start": {
                    "line": 61,
                    "column": 2
                  },
                  "end": {
                    "line": 61,
                    "column": 12
                  }
                }
              }
            ],
            "range": [
              892,
              2188
            ],
            "loc": {
              "start": {
                "line": 23,
                "column": 38
              },
              "end": {
                "line": 61,
                "column": 13
              }
            }
          },
          "range": [
            858,
            2189
          ],
          "loc": {
            "start": {
              "line": 23,
              "column": 4
            },
            "end": {
              "line": 61,
              "column": 14
            }
          }
        }
      ],
      "kind": "var",
      "range": [
        854,
        2190
      ],
      "loc": {
        "start": {
          "line": 23,
          "column": 0
        },
        "end": {
          "line": 61,
          "column": 15
        }
      },
      "leadingComments": [
        {
          "type": "Block",
          "value": "*\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n ",
          "range": [
            762,
            853
          ],
          "loc": {
            "start": {
              "line": 18,
              "column": 0
            },
            "end": {
              "line": 22,
              "column": 3
            }
          }
        }
      ],
      "trailingComments": [
        {
          "type": "Line",
          "value": "# sourceMappingURL=distinctUntilChanged.js.map",
          "range": [
            2191,
            2239
          ],
          "loc": {
            "start": {
              "line": 62,
              "column": 0
            },
            "end": {
              "line": 62,
              "column": 48
            }
          }
        }
      ]
    }
  ],
  "sourceType": "module",
  "range": [
    0,
    2190
  ],
  "loc": {
    "start": {
      "line": 1,
      "column": 0
    },
    "end": {
      "line": 61,
      "column": 15
    }
  },
  "comments": [
    {
      "type": "Block",
      "value": " tslint:disable:max-line-length ",
      "range": [
        140,
        176
      ],
      "loc": {
        "start": {
          "line": 4,
          "column": 0
        },
        "end": {
          "line": 4,
          "column": 36
        }
      }
    },
    {
      "type": "Block",
      "value": "*\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n ",
      "range": [
        762,
        853
      ],
      "loc": {
        "start": {
          "line": 18,
          "column": 0
        },
        "end": {
          "line": 22,
          "column": 3
        }
      }
    },
    {
      "type": "Line",
      "value": "# sourceMappingURL=distinctUntilChanged.js.map",
      "range": [
        2191,
        2239
      ],
      "loc": {
        "start": {
          "line": 62,
          "column": 0
        },
        "end": {
          "line": 62,
          "column": 48
        }
      }
    }
  ]
}