{
  "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
        }
      },
      "trailingComments": [
        {
          "type": "Block",
          "value": " tslint:disable:max-line-length ",
          "range": [
            44,
            80
          ],
          "loc": {
            "start": {
              "line": 2,
              "column": 0
            },
            "end": {
              "line": 2,
              "column": 36
            }
          }
        }
      ]
    },
    {
      "type": "ExportNamedDeclaration",
      "declaration": {
        "type": "FunctionDeclaration",
        "id": {
          "type": "Identifier",
          "name": "reduce",
          "range": [
            97,
            103
          ],
          "loc": {
            "start": {
              "line": 3,
              "column": 16
            },
            "end": {
              "line": 3,
              "column": 22
            }
          }
        },
        "params": [
          {
            "type": "Identifier",
            "name": "accumulator",
            "range": [
              104,
              115
            ],
            "loc": {
              "start": {
                "line": 3,
                "column": 23
              },
              "end": {
                "line": 3,
                "column": 34
              }
            }
          },
          {
            "type": "Identifier",
            "name": "seed",
            "range": [
              117,
              121
            ],
            "loc": {
              "start": {
                "line": 3,
                "column": 36
              },
              "end": {
                "line": 3,
                "column": 40
              }
            }
          }
        ],
        "body": {
          "type": "BlockStatement",
          "body": [
            {
              "type": "VariableDeclaration",
              "declarations": [
                {
                  "type": "VariableDeclarator",
                  "id": {
                    "type": "Identifier",
                    "name": "hasSeed",
                    "range": [
                      133,
                      140
                    ],
                    "loc": {
                      "start": {
                        "line": 4,
                        "column": 8
                      },
                      "end": {
                        "line": 4,
                        "column": 15
                      }
                    }
                  },
                  "init": {
                    "type": "Literal",
                    "value": false,
                    "raw": "false",
                    "range": [
                      143,
                      148
                    ],
                    "loc": {
                      "start": {
                        "line": 4,
                        "column": 18
                      },
                      "end": {
                        "line": 4,
                        "column": 23
                      }
                    }
                  },
                  "range": [
                    133,
                    148
                  ],
                  "loc": {
                    "start": {
                      "line": 4,
                      "column": 8
                    },
                    "end": {
                      "line": 4,
                      "column": 23
                    }
                  }
                }
              ],
              "kind": "var",
              "range": [
                129,
                149
              ],
              "loc": {
                "start": {
                  "line": 4,
                  "column": 4
                },
                "end": {
                  "line": 4,
                  "column": 24
                }
              },
              "trailingComments": [
                {
                  "type": "Line",
                  "value": " providing a seed of `undefined` *should* be valid and trigger",
                  "range": [
                    154,
                    218
                  ],
                  "loc": {
                    "start": {
                      "line": 5,
                      "column": 4
                    },
                    "end": {
                      "line": 5,
                      "column": 68
                    }
                  }
                },
                {
                  "type": "Line",
                  "value": " hasSeed! so don't use `seed !== undefined` checks!",
                  "range": [
                    223,
                    276
                  ],
                  "loc": {
                    "start": {
                      "line": 6,
                      "column": 4
                    },
                    "end": {
                      "line": 6,
                      "column": 57
                    }
                  }
                },
                {
                  "type": "Line",
                  "value": " For this reason, we have to check it here at the original call site",
                  "range": [
                    281,
                    351
                  ],
                  "loc": {
                    "start": {
                      "line": 7,
                      "column": 4
                    },
                    "end": {
                      "line": 7,
                      "column": 74
                    }
                  }
                },
                {
                  "type": "Line",
                  "value": " otherwise inside Operator/Subscriber we won't know if `undefined`",
                  "range": [
                    356,
                    424
                  ],
                  "loc": {
                    "start": {
                      "line": 8,
                      "column": 4
                    },
                    "end": {
                      "line": 8,
                      "column": 72
                    }
                  }
                },
                {
                  "type": "Line",
                  "value": " means they didn't provide anything or if they literally provided `undefined`",
                  "range": [
                    429,
                    508
                  ],
                  "loc": {
                    "start": {
                      "line": 9,
                      "column": 4
                    },
                    "end": {
                      "line": 9,
                      "column": 83
                    }
                  }
                }
              ]
            },
            {
              "type": "IfStatement",
              "test": {
                "type": "BinaryExpression",
                "operator": ">=",
                "left": {
                  "type": "MemberExpression",
                  "computed": false,
                  "object": {
                    "type": "Identifier",
                    "name": "arguments",
                    "range": [
                      517,
                      526
                    ],
                    "loc": {
                      "start": {
                        "line": 10,
                        "column": 8
                      },
                      "end": {
                        "line": 10,
                        "column": 17
                      }
                    }
                  },
                  "property": {
                    "type": "Identifier",
                    "name": "length",
                    "range": [
                      527,
                      533
                    ],
                    "loc": {
                      "start": {
                        "line": 10,
                        "column": 18
                      },
                      "end": {
                        "line": 10,
                        "column": 24
                      }
                    }
                  },
                  "range": [
                    517,
                    533
                  ],
                  "loc": {
                    "start": {
                      "line": 10,
                      "column": 8
                    },
                    "end": {
                      "line": 10,
                      "column": 24
                    }
                  }
                },
                "right": {
                  "type": "Literal",
                  "value": 2,
                  "raw": "2",
                  "range": [
                    537,
                    538
                  ],
                  "loc": {
                    "start": {
                      "line": 10,
                      "column": 28
                    },
                    "end": {
                      "line": 10,
                      "column": 29
                    }
                  }
                },
                "range": [
                  517,
                  538
                ],
                "loc": {
                  "start": {
                    "line": 10,
                    "column": 8
                  },
                  "end": {
                    "line": 10,
                    "column": 29
                  }
                }
              },
              "consequent": {
                "type": "BlockStatement",
                "body": [
                  {
                    "type": "ExpressionStatement",
                    "expression": {
                      "type": "AssignmentExpression",
                      "operator": "=",
                      "left": {
                        "type": "Identifier",
                        "name": "hasSeed",
                        "range": [
                          550,
                          557
                        ],
                        "loc": {
                          "start": {
                            "line": 11,
                            "column": 8
                          },
                          "end": {
                            "line": 11,
                            "column": 15
                          }
                        }
                      },
                      "right": {
                        "type": "Literal",
                        "value": true,
                        "raw": "true",
                        "range": [
                          560,
                          564
                        ],
                        "loc": {
                          "start": {
                            "line": 11,
                            "column": 18
                          },
                          "end": {
                            "line": 11,
                            "column": 22
                          }
                        }
                      },
                      "range": [
                        550,
                        564
                      ],
                      "loc": {
                        "start": {
                          "line": 11,
                          "column": 8
                        },
                        "end": {
                          "line": 11,
                          "column": 22
                        }
                      }
                    },
                    "range": [
                      550,
                      565
                    ],
                    "loc": {
                      "start": {
                        "line": 11,
                        "column": 8
                      },
                      "end": {
                        "line": 11,
                        "column": 23
                      }
                    }
                  }
                ],
                "range": [
                  540,
                  571
                ],
                "loc": {
                  "start": {
                    "line": 10,
                    "column": 31
                  },
                  "end": {
                    "line": 12,
                    "column": 5
                  }
                }
              },
              "alternate": null,
              "range": [
                513,
                571
              ],
              "loc": {
                "start": {
                  "line": 10,
                  "column": 4
                },
                "end": {
                  "line": 12,
                  "column": 5
                }
              },
              "leadingComments": [
                {
                  "type": "Line",
                  "value": " providing a seed of `undefined` *should* be valid and trigger",
                  "range": [
                    154,
                    218
                  ],
                  "loc": {
                    "start": {
                      "line": 5,
                      "column": 4
                    },
                    "end": {
                      "line": 5,
                      "column": 68
                    }
                  }
                },
                {
                  "type": "Line",
                  "value": " hasSeed! so don't use `seed !== undefined` checks!",
                  "range": [
                    223,
                    276
                  ],
                  "loc": {
                    "start": {
                      "line": 6,
                      "column": 4
                    },
                    "end": {
                      "line": 6,
                      "column": 57
                    }
                  }
                },
                {
                  "type": "Line",
                  "value": " For this reason, we have to check it here at the original call site",
                  "range": [
                    281,
                    351
                  ],
                  "loc": {
                    "start": {
                      "line": 7,
                      "column": 4
                    },
                    "end": {
                      "line": 7,
                      "column": 74
                    }
                  }
                },
                {
                  "type": "Line",
                  "value": " otherwise inside Operator/Subscriber we won't know if `undefined`",
                  "range": [
                    356,
                    424
                  ],
                  "loc": {
                    "start": {
                      "line": 8,
                      "column": 4
                    },
                    "end": {
                      "line": 8,
                      "column": 72
                    }
                  }
                },
                {
                  "type": "Line",
                  "value": " means they didn't provide anything or if they literally provided `undefined`",
                  "range": [
                    429,
                    508
                  ],
                  "loc": {
                    "start": {
                      "line": 9,
                      "column": 4
                    },
                    "end": {
                      "line": 9,
                      "column": 83
                    }
                  }
                }
              ]
            },
            {
              "type": "ReturnStatement",
              "argument": {
                "type": "CallExpression",
                "callee": {
                  "type": "MemberExpression",
                  "computed": false,
                  "object": {
                    "type": "ThisExpression",
                    "range": [
                      583,
                      587
                    ],
                    "loc": {
                      "start": {
                        "line": 13,
                        "column": 11
                      },
                      "end": {
                        "line": 13,
                        "column": 15
                      }
                    }
                  },
                  "property": {
                    "type": "Identifier",
                    "name": "lift",
                    "range": [
                      588,
                      592
                    ],
                    "loc": {
                      "start": {
                        "line": 13,
                        "column": 16
                      },
                      "end": {
                        "line": 13,
                        "column": 20
                      }
                    }
                  },
                  "range": [
                    583,
                    592
                  ],
                  "loc": {
                    "start": {
                      "line": 13,
                      "column": 11
                    },
                    "end": {
                      "line": 13,
                      "column": 20
                    }
                  }
                },
                "arguments": [
                  {
                    "type": "NewExpression",
                    "callee": {
                      "type": "Identifier",
                      "name": "ReduceOperator",
                      "range": [
                        597,
                        611
                      ],
                      "loc": {
                        "start": {
                          "line": 13,
                          "column": 25
                        },
                        "end": {
                          "line": 13,
                          "column": 39
                        }
                      }
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "name": "accumulator",
                        "range": [
                          612,
                          623
                        ],
                        "loc": {
                          "start": {
                            "line": 13,
                            "column": 40
                          },
                          "end": {
                            "line": 13,
                            "column": 51
                          }
                        }
                      },
                      {
                        "type": "Identifier",
                        "name": "seed",
                        "range": [
                          625,
                          629
                        ],
                        "loc": {
                          "start": {
                            "line": 13,
                            "column": 53
                          },
                          "end": {
                            "line": 13,
                            "column": 57
                          }
                        }
                      },
                      {
                        "type": "Identifier",
                        "name": "hasSeed",
                        "range": [
                          631,
                          638
                        ],
                        "loc": {
                          "start": {
                            "line": 13,
                            "column": 59
                          },
                          "end": {
                            "line": 13,
                            "column": 66
                          }
                        }
                      }
                    ],
                    "range": [
                      593,
                      639
                    ],
                    "loc": {
                      "start": {
                        "line": 13,
                        "column": 21
                      },
                      "end": {
                        "line": 13,
                        "column": 67
                      }
                    }
                  }
                ],
                "range": [
                  583,
                  640
                ],
                "loc": {
                  "start": {
                    "line": 13,
                    "column": 11
                  },
                  "end": {
                    "line": 13,
                    "column": 68
                  }
                }
              },
              "range": [
                576,
                641
              ],
              "loc": {
                "start": {
                  "line": 13,
                  "column": 4
                },
                "end": {
                  "line": 13,
                  "column": 69
                }
              }
            }
          ],
          "range": [
            123,
            643
          ],
          "loc": {
            "start": {
              "line": 3,
              "column": 42
            },
            "end": {
              "line": 14,
              "column": 1
            }
          }
        },
        "generator": false,
        "expression": false,
        "range": [
          88,
          643
        ],
        "loc": {
          "start": {
            "line": 3,
            "column": 7
          },
          "end": {
            "line": 14,
            "column": 1
          }
        },
        "leadingComments": [
          {
            "type": "Block",
            "value": " tslint:disable:max-line-length ",
            "range": [
              44,
              80
            ],
            "loc": {
              "start": {
                "line": 2,
                "column": 0
              },
              "end": {
                "line": 2,
                "column": 36
              }
            }
          }
        ],
        "trailingComments": []
      },
      "specifiers": [],
      "source": null,
      "range": [
        81,
        643
      ],
      "loc": {
        "start": {
          "line": 3,
          "column": 0
        },
        "end": {
          "line": 14,
          "column": 1
        }
      },
      "leadingComments": [
        {
          "type": "Block",
          "value": " tslint:disable:max-line-length ",
          "range": [
            44,
            80
          ],
          "loc": {
            "start": {
              "line": 2,
              "column": 0
            },
            "end": {
              "line": 2,
              "column": 36
            }
          }
        }
      ]
    },
    {
      "type": "ExportNamedDeclaration",
      "declaration": {
        "type": "VariableDeclaration",
        "declarations": [
          {
            "type": "VariableDeclarator",
            "id": {
              "type": "Identifier",
              "name": "ReduceOperator",
              "range": [
                655,
                669
              ],
              "loc": {
                "start": {
                  "line": 15,
                  "column": 11
                },
                "end": {
                  "line": 15,
                  "column": 25
                }
              }
            },
            "init": {
              "type": "CallExpression",
              "callee": {
                "type": "FunctionExpression",
                "id": null,
                "params": [],
                "body": {
                  "type": "BlockStatement",
                  "body": [
                    {
                      "type": "FunctionDeclaration",
                      "id": {
                        "type": "Identifier",
                        "name": "ReduceOperator",
                        "range": [
                          700,
                          714
                        ],
                        "loc": {
                          "start": {
                            "line": 16,
                            "column": 13
                          },
                          "end": {
                            "line": 16,
                            "column": 27
                          }
                        }
                      },
                      "params": [
                        {
                          "type": "Identifier",
                          "name": "accumulator",
                          "range": [
                            715,
                            726
                          ],
                          "loc": {
                            "start": {
                              "line": 16,
                              "column": 28
                            },
                            "end": {
                              "line": 16,
                              "column": 39
                            }
                          }
                        },
                        {
                          "type": "Identifier",
                          "name": "seed",
                          "range": [
                            728,
                            732
                          ],
                          "loc": {
                            "start": {
                              "line": 16,
                              "column": 41
                            },
                            "end": {
                              "line": 16,
                              "column": 45
                            }
                          }
                        },
                        {
                          "type": "Identifier",
                          "name": "hasSeed",
                          "range": [
                            734,
                            741
                          ],
                          "loc": {
                            "start": {
                              "line": 16,
                              "column": 47
                            },
                            "end": {
                              "line": 16,
                              "column": 54
                            }
                          }
                        }
                      ],
                      "body": {
                        "type": "BlockStatement",
                        "body": [
                          {
                            "type": "IfStatement",
                            "test": {
                              "type": "BinaryExpression",
                              "operator": "===",
                              "left": {
                                "type": "Identifier",
                                "name": "hasSeed",
                                "range": [
                                  757,
                                  764
                                ],
                                "loc": {
                                  "start": {
                                    "line": 17,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 17,
                                    "column": 19
                                  }
                                }
                              },
                              "right": {
                                "type": "UnaryExpression",
                                "operator": "void",
                                "argument": {
                                  "type": "Literal",
                                  "value": 0,
                                  "raw": "0",
                                  "range": [
                                    774,
                                    775
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 17,
                                      "column": 29
                                    },
                                    "end": {
                                      "line": 17,
                                      "column": 30
                                    }
                                  }
                                },
                                "prefix": true,
                                "range": [
                                  769,
                                  775
                                ],
                                "loc": {
                                  "start": {
                                    "line": 17,
                                    "column": 24
                                  },
                                  "end": {
                                    "line": 17,
                                    "column": 30
                                  }
                                }
                              },
                              "range": [
                                757,
                                775
                              ],
                              "loc": {
                                "start": {
                                  "line": 17,
                                  "column": 12
                                },
                                "end": {
                                  "line": 17,
                                  "column": 30
                                }
                              }
                            },
                            "consequent": {
                              "type": "BlockStatement",
                              "body": [
                                {
                                  "type": "ExpressionStatement",
                                  "expression": {
                                    "type": "AssignmentExpression",
                                    "operator": "=",
                                    "left": {
                                      "type": "Identifier",
                                      "name": "hasSeed",
                                      "range": [
                                        779,
                                        786
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 17,
                                          "column": 34
                                        },
                                        "end": {
                                          "line": 17,
                                          "column": 41
                                        }
                                      }
                                    },
                                    "right": {
                                      "type": "Literal",
                                      "value": false,
                                      "raw": "false",
                                      "range": [
                                        789,
                                        794
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 17,
                                          "column": 44
                                        },
                                        "end": {
                                          "line": 17,
                                          "column": 49
                                        }
                                      }
                                    },
                                    "range": [
                                      779,
                                      794
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 17,
                                        "column": 34
                                      },
                                      "end": {
                                        "line": 17,
                                        "column": 49
                                      }
                                    }
                                  },
                                  "range": [
                                    779,
                                    795
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 17,
                                      "column": 34
                                    },
                                    "end": {
                                      "line": 17,
                                      "column": 50
                                    }
                                  }
                                }
                              ],
                              "range": [
                                777,
                                797
                              ],
                              "loc": {
                                "start": {
                                  "line": 17,
                                  "column": 32
                                },
                                "end": {
                                  "line": 17,
                                  "column": 52
                                }
                              }
                            },
                            "alternate": null,
                            "range": [
                              753,
                              797
                            ],
                            "loc": {
                              "start": {
                                "line": 17,
                                "column": 8
                              },
                              "end": {
                                "line": 17,
                                "column": 52
                              }
                            }
                          },
                          {
                            "type": "ExpressionStatement",
                            "expression": {
                              "type": "AssignmentExpression",
                              "operator": "=",
                              "left": {
                                "type": "MemberExpression",
                                "computed": false,
                                "object": {
                                  "type": "ThisExpression",
                                  "range": [
                                    806,
                                    810
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 18,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 18,
                                      "column": 12
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "name": "accumulator",
                                  "range": [
                                    811,
                                    822
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 18,
                                      "column": 13
                                    },
                                    "end": {
                                      "line": 18,
                                      "column": 24
                                    }
                                  }
                                },
                                "range": [
                                  806,
                                  822
                                ],
                                "loc": {
                                  "start": {
                                    "line": 18,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 18,
                                    "column": 24
                                  }
                                }
                              },
                              "right": {
                                "type": "Identifier",
                                "name": "accumulator",
                                "range": [
                                  825,
                                  836
                                ],
                                "loc": {
                                  "start": {
                                    "line": 18,
                                    "column": 27
                                  },
                                  "end": {
                                    "line": 18,
                                    "column": 38
                                  }
                                }
                              },
                              "range": [
                                806,
                                836
                              ],
                              "loc": {
                                "start": {
                                  "line": 18,
                                  "column": 8
                                },
                                "end": {
                                  "line": 18,
                                  "column": 38
                                }
                              }
                            },
                            "range": [
                              806,
                              837
                            ],
                            "loc": {
                              "start": {
                                "line": 18,
                                "column": 8
                              },
                              "end": {
                                "line": 18,
                                "column": 39
                              }
                            }
                          },
                          {
                            "type": "ExpressionStatement",
                            "expression": {
                              "type": "AssignmentExpression",
                              "operator": "=",
                              "left": {
                                "type": "MemberExpression",
                                "computed": false,
                                "object": {
                                  "type": "ThisExpression",
                                  "range": [
                                    846,
                                    850
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 19,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 19,
                                      "column": 12
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "name": "seed",
                                  "range": [
                                    851,
                                    855
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 19,
                                      "column": 13
                                    },
                                    "end": {
                                      "line": 19,
                                      "column": 17
                                    }
                                  }
                                },
                                "range": [
                                  846,
                                  855
                                ],
                                "loc": {
                                  "start": {
                                    "line": 19,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 19,
                                    "column": 17
                                  }
                                }
                              },
                              "right": {
                                "type": "Identifier",
                                "name": "seed",
                                "range": [
                                  858,
                                  862
                                ],
                                "loc": {
                                  "start": {
                                    "line": 19,
                                    "column": 20
                                  },
                                  "end": {
                                    "line": 19,
                                    "column": 24
                                  }
                                }
                              },
                              "range": [
                                846,
                                862
                              ],
                              "loc": {
                                "start": {
                                  "line": 19,
                                  "column": 8
                                },
                                "end": {
                                  "line": 19,
                                  "column": 24
                                }
                              }
                            },
                            "range": [
                              846,
                              863
                            ],
                            "loc": {
                              "start": {
                                "line": 19,
                                "column": 8
                              },
                              "end": {
                                "line": 19,
                                "column": 25
                              }
                            }
                          },
                          {
                            "type": "ExpressionStatement",
                            "expression": {
                              "type": "AssignmentExpression",
                              "operator": "=",
                              "left": {
                                "type": "MemberExpression",
                                "computed": false,
                                "object": {
                                  "type": "ThisExpression",
                                  "range": [
                                    872,
                                    876
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 20,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 20,
                                      "column": 12
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "name": "hasSeed",
                                  "range": [
                                    877,
                                    884
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 20,
                                      "column": 13
                                    },
                                    "end": {
                                      "line": 20,
                                      "column": 20
                                    }
                                  }
                                },
                                "range": [
                                  872,
                                  884
                                ],
                                "loc": {
                                  "start": {
                                    "line": 20,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 20,
                                    "column": 20
                                  }
                                }
                              },
                              "right": {
                                "type": "Identifier",
                                "name": "hasSeed",
                                "range": [
                                  887,
                                  894
                                ],
                                "loc": {
                                  "start": {
                                    "line": 20,
                                    "column": 23
                                  },
                                  "end": {
                                    "line": 20,
                                    "column": 30
                                  }
                                }
                              },
                              "range": [
                                872,
                                894
                              ],
                              "loc": {
                                "start": {
                                  "line": 20,
                                  "column": 8
                                },
                                "end": {
                                  "line": 20,
                                  "column": 30
                                }
                              }
                            },
                            "range": [
                              872,
                              895
                            ],
                            "loc": {
                              "start": {
                                "line": 20,
                                "column": 8
                              },
                              "end": {
                                "line": 20,
                                "column": 31
                              }
                            }
                          }
                        ],
                        "range": [
                          743,
                          901
                        ],
                        "loc": {
                          "start": {
                            "line": 16,
                            "column": 56
                          },
                          "end": {
                            "line": 21,
                            "column": 5
                          }
                        }
                      },
                      "generator": false,
                      "expression": false,
                      "range": [
                        691,
                        901
                      ],
                      "loc": {
                        "start": {
                          "line": 16,
                          "column": 4
                        },
                        "end": {
                          "line": 21,
                          "column": 5
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "AssignmentExpression",
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "MemberExpression",
                            "computed": false,
                            "object": {
                              "type": "Identifier",
                              "name": "ReduceOperator",
                              "range": [
                                906,
                                920
                              ],
                              "loc": {
                                "start": {
                                  "line": 22,
                                  "column": 4
                                },
                                "end": {
                                  "line": 22,
                                  "column": 18
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "name": "prototype",
                              "range": [
                                921,
                                930
                              ],
                              "loc": {
                                "start": {
                                  "line": 22,
                                  "column": 19
                                },
                                "end": {
                                  "line": 22,
                                  "column": 28
                                }
                              }
                            },
                            "range": [
                              906,
                              930
                            ],
                            "loc": {
                              "start": {
                                "line": 22,
                                "column": 4
                              },
                              "end": {
                                "line": 22,
                                "column": 28
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "call",
                            "range": [
                              931,
                              935
                            ],
                            "loc": {
                              "start": {
                                "line": 22,
                                "column": 29
                              },
                              "end": {
                                "line": 22,
                                "column": 33
                              }
                            }
                          },
                          "range": [
                            906,
                            935
                          ],
                          "loc": {
                            "start": {
                              "line": 22,
                              "column": 4
                            },
                            "end": {
                              "line": 22,
                              "column": 33
                            }
                          }
                        },
                        "right": {
                          "type": "FunctionExpression",
                          "id": null,
                          "params": [
                            {
                              "type": "Identifier",
                              "name": "subscriber",
                              "range": [
                                948,
                                958
                              ],
                              "loc": {
                                "start": {
                                  "line": 22,
                                  "column": 46
                                },
                                "end": {
                                  "line": 22,
                                  "column": 56
                                }
                              }
                            },
                            {
                              "type": "Identifier",
                              "name": "source",
                              "range": [
                                960,
                                966
                              ],
                              "loc": {
                                "start": {
                                  "line": 22,
                                  "column": 58
                                },
                                "end": {
                                  "line": 22,
                                  "column": 64
                                }
                              }
                            }
                          ],
                          "body": {
                            "type": "BlockStatement",
                            "body": [
                              {
                                "type": "ReturnStatement",
                                "argument": {
                                  "type": "CallExpression",
                                  "callee": {
                                    "type": "MemberExpression",
                                    "computed": false,
                                    "object": {
                                      "type": "Identifier",
                                      "name": "source",
                                      "range": [
                                        985,
                                        991
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 23,
                                          "column": 15
                                        },
                                        "end": {
                                          "line": 23,
                                          "column": 21
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "name": "_subscribe",
                                      "range": [
                                        992,
                                        1002
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 23,
                                          "column": 22
                                        },
                                        "end": {
                                          "line": 23,
                                          "column": 32
                                        }
                                      }
                                    },
                                    "range": [
                                      985,
                                      1002
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 23,
                                        "column": 15
                                      },
                                      "end": {
                                        "line": 23,
                                        "column": 32
                                      }
                                    }
                                  },
                                  "arguments": [
                                    {
                                      "type": "NewExpression",
                                      "callee": {
                                        "type": "Identifier",
                                        "name": "ReduceSubscriber",
                                        "range": [
                                          1007,
                                          1023
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 23,
                                            "column": 37
                                          },
                                          "end": {
                                            "line": 23,
                                            "column": 53
                                          }
                                        }
                                      },
                                      "arguments": [
                                        {
                                          "type": "Identifier",
                                          "name": "subscriber",
                                          "range": [
                                            1024,
                                            1034
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 23,
                                              "column": 54
                                            },
                                            "end": {
                                              "line": 23,
                                              "column": 64
                                            }
                                          }
                                        },
                                        {
                                          "type": "MemberExpression",
                                          "computed": false,
                                          "object": {
                                            "type": "ThisExpression",
                                            "range": [
                                              1036,
                                              1040
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 23,
                                                "column": 66
                                              },
                                              "end": {
                                                "line": 23,
                                                "column": 70
                                              }
                                            }
                                          },
                                          "property": {
                                            "type": "Identifier",
                                            "name": "accumulator",
                                            "range": [
                                              1041,
                                              1052
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 23,
                                                "column": 71
                                              },
                                              "end": {
                                                "line": 23,
                                                "column": 82
                                              }
                                            }
                                          },
                                          "range": [
                                            1036,
                                            1052
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 23,
                                              "column": 66
                                            },
                                            "end": {
                                              "line": 23,
                                              "column": 82
                                            }
                                          }
                                        },
                                        {
                                          "type": "MemberExpression",
                                          "computed": false,
                                          "object": {
                                            "type": "ThisExpression",
                                            "range": [
                                              1054,
                                              1058
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 23,
                                                "column": 84
                                              },
                                              "end": {
                                                "line": 23,
                                                "column": 88
                                              }
                                            }
                                          },
                                          "property": {
                                            "type": "Identifier",
                                            "name": "seed",
                                            "range": [
                                              1059,
                                              1063
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 23,
                                                "column": 89
                                              },
                                              "end": {
                                                "line": 23,
                                                "column": 93
                                              }
                                            }
                                          },
                                          "range": [
                                            1054,
                                            1063
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 23,
                                              "column": 84
                                            },
                                            "end": {
                                              "line": 23,
                                              "column": 93
                                            }
                                          }
                                        },
                                        {
                                          "type": "MemberExpression",
                                          "computed": false,
                                          "object": {
                                            "type": "ThisExpression",
                                            "range": [
                                              1065,
                                              1069
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 23,
                                                "column": 95
                                              },
                                              "end": {
                                                "line": 23,
                                                "column": 99
                                              }
                                            }
                                          },
                                          "property": {
                                            "type": "Identifier",
                                            "name": "hasSeed",
                                            "range": [
                                              1070,
                                              1077
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 23,
                                                "column": 100
                                              },
                                              "end": {
                                                "line": 23,
                                                "column": 107
                                              }
                                            }
                                          },
                                          "range": [
                                            1065,
                                            1077
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 23,
                                              "column": 95
                                            },
                                            "end": {
                                              "line": 23,
                                              "column": 107
                                            }
                                          }
                                        }
                                      ],
                                      "range": [
                                        1003,
                                        1078
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 23,
                                          "column": 33
                                        },
                                        "end": {
                                          "line": 23,
                                          "column": 108
                                        }
                                      }
                                    }
                                  ],
                                  "range": [
                                    985,
                                    1079
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 23,
                                      "column": 15
                                    },
                                    "end": {
                                      "line": 23,
                                      "column": 109
                                    }
                                  }
                                },
                                "range": [
                                  978,
                                  1080
                                ],
                                "loc": {
                                  "start": {
                                    "line": 23,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 23,
                                    "column": 110
                                  }
                                }
                              }
                            ],
                            "range": [
                              968,
                              1086
                            ],
                            "loc": {
                              "start": {
                                "line": 22,
                                "column": 66
                              },
                              "end": {
                                "line": 24,
                                "column": 5
                              }
                            }
                          },
                          "generator": false,
                          "expression": false,
                          "range": [
                            938,
                            1086
                          ],
                          "loc": {
                            "start": {
                              "line": 22,
                              "column": 36
                            },
                            "end": {
                              "line": 24,
                              "column": 5
                            }
                          }
                        },
                        "range": [
                          906,
                          1086
                        ],
                        "loc": {
                          "start": {
                            "line": 22,
                            "column": 4
                          },
                          "end": {
                            "line": 24,
                            "column": 5
                          }
                        }
                      },
                      "range": [
                        906,
                        1087
                      ],
                      "loc": {
                        "start": {
                          "line": 22,
                          "column": 4
                        },
                        "end": {
                          "line": 24,
                          "column": 6
                        }
                      }
                    },
                    {
                      "type": "ReturnStatement",
                      "argument": {
                        "type": "Identifier",
                        "name": "ReduceOperator",
                        "range": [
                          1099,
                          1113
                        ],
                        "loc": {
                          "start": {
                            "line": 25,
                            "column": 11
                          },
                          "end": {
                            "line": 25,
                            "column": 25
                          }
                        }
                      },
                      "range": [
                        1092,
                        1114
                      ],
                      "loc": {
                        "start": {
                          "line": 25,
                          "column": 4
                        },
                        "end": {
                          "line": 25,
                          "column": 26
                        }
                      }
                    }
                  ],
                  "range": [
                    685,
                    1116
                  ],
                  "loc": {
                    "start": {
                      "line": 15,
                      "column": 41
                    },
                    "end": {
                      "line": 26,
                      "column": 1
                    }
                  }
                },
                "generator": false,
                "expression": false,
                "range": [
                  673,
                  1116
                ],
                "loc": {
                  "start": {
                    "line": 15,
                    "column": 29
                  },
                  "end": {
                    "line": 26,
                    "column": 1
                  }
                }
              },
              "arguments": [],
              "range": [
                673,
                1118
              ],
              "loc": {
                "start": {
                  "line": 15,
                  "column": 29
                },
                "end": {
                  "line": 26,
                  "column": 3
                }
              }
            },
            "range": [
              655,
              1119
            ],
            "loc": {
              "start": {
                "line": 15,
                "column": 11
              },
              "end": {
                "line": 26,
                "column": 4
              }
            }
          }
        ],
        "kind": "var",
        "range": [
          651,
          1120
        ],
        "loc": {
          "start": {
            "line": 15,
            "column": 7
          },
          "end": {
            "line": 26,
            "column": 5
          }
        },
        "leadingComments": [],
        "trailingComments": [
          {
            "type": "Block",
            "value": "*\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n ",
            "range": [
              1121,
              1212
            ],
            "loc": {
              "start": {
                "line": 27,
                "column": 0
              },
              "end": {
                "line": 31,
                "column": 3
              }
            }
          }
        ]
      },
      "specifiers": [],
      "source": null,
      "range": [
        644,
        1120
      ],
      "loc": {
        "start": {
          "line": 15,
          "column": 0
        },
        "end": {
          "line": 26,
          "column": 5
        }
      },
      "trailingComments": [
        {
          "type": "Block",
          "value": "*\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n ",
          "range": [
            1121,
            1212
          ],
          "loc": {
            "start": {
              "line": 27,
              "column": 0
            },
            "end": {
              "line": 31,
              "column": 3
            }
          }
        }
      ]
    },
    {
      "type": "ExportNamedDeclaration",
      "declaration": {
        "type": "VariableDeclaration",
        "declarations": [
          {
            "type": "VariableDeclarator",
            "id": {
              "type": "Identifier",
              "name": "ReduceSubscriber",
              "range": [
                1224,
                1240
              ],
              "loc": {
                "start": {
                  "line": 32,
                  "column": 11
                },
                "end": {
                  "line": 32,
                  "column": 27
                }
              }
            },
            "init": {
              "type": "CallExpression",
              "callee": {
                "type": "FunctionExpression",
                "id": null,
                "params": [
                  {
                    "type": "Identifier",
                    "name": "_super",
                    "range": [
                      1254,
                      1260
                    ],
                    "loc": {
                      "start": {
                        "line": 32,
                        "column": 41
                      },
                      "end": {
                        "line": 32,
                        "column": 47
                      }
                    }
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "body": [
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "CallExpression",
                        "callee": {
                          "type": "Identifier",
                          "name": "__extends",
                          "range": [
                            1268,
                            1277
                          ],
                          "loc": {
                            "start": {
                              "line": 33,
                              "column": 4
                            },
                            "end": {
                              "line": 33,
                              "column": 13
                            }
                          }
                        },
                        "arguments": [
                          {
                            "type": "Identifier",
                            "name": "ReduceSubscriber",
                            "range": [
                              1278,
                              1294
                            ],
                            "loc": {
                              "start": {
                                "line": 33,
                                "column": 14
                              },
                              "end": {
                                "line": 33,
                                "column": 30
                              }
                            }
                          },
                          {
                            "type": "Identifier",
                            "name": "_super",
                            "range": [
                              1296,
                              1302
                            ],
                            "loc": {
                              "start": {
                                "line": 33,
                                "column": 32
                              },
                              "end": {
                                "line": 33,
                                "column": 38
                              }
                            }
                          }
                        ],
                        "range": [
                          1268,
                          1303
                        ],
                        "loc": {
                          "start": {
                            "line": 33,
                            "column": 4
                          },
                          "end": {
                            "line": 33,
                            "column": 39
                          }
                        }
                      },
                      "range": [
                        1268,
                        1304
                      ],
                      "loc": {
                        "start": {
                          "line": 33,
                          "column": 4
                        },
                        "end": {
                          "line": 33,
                          "column": 40
                        }
                      }
                    },
                    {
                      "type": "FunctionDeclaration",
                      "id": {
                        "type": "Identifier",
                        "name": "ReduceSubscriber",
                        "range": [
                          1318,
                          1334
                        ],
                        "loc": {
                          "start": {
                            "line": 34,
                            "column": 13
                          },
                          "end": {
                            "line": 34,
                            "column": 29
                          }
                        }
                      },
                      "params": [
                        {
                          "type": "Identifier",
                          "name": "destination",
                          "range": [
                            1335,
                            1346
                          ],
                          "loc": {
                            "start": {
                              "line": 34,
                              "column": 30
                            },
                            "end": {
                              "line": 34,
                              "column": 41
                            }
                          }
                        },
                        {
                          "type": "Identifier",
                          "name": "accumulator",
                          "range": [
                            1348,
                            1359
                          ],
                          "loc": {
                            "start": {
                              "line": 34,
                              "column": 43
                            },
                            "end": {
                              "line": 34,
                              "column": 54
                            }
                          }
                        },
                        {
                          "type": "Identifier",
                          "name": "seed",
                          "range": [
                            1361,
                            1365
                          ],
                          "loc": {
                            "start": {
                              "line": 34,
                              "column": 56
                            },
                            "end": {
                              "line": 34,
                              "column": 60
                            }
                          }
                        },
                        {
                          "type": "Identifier",
                          "name": "hasSeed",
                          "range": [
                            1367,
                            1374
                          ],
                          "loc": {
                            "start": {
                              "line": 34,
                              "column": 62
                            },
                            "end": {
                              "line": 34,
                              "column": 69
                            }
                          }
                        }
                      ],
                      "body": {
                        "type": "BlockStatement",
                        "body": [
                          {
                            "type": "ExpressionStatement",
                            "expression": {
                              "type": "CallExpression",
                              "callee": {
                                "type": "MemberExpression",
                                "computed": false,
                                "object": {
                                  "type": "Identifier",
                                  "name": "_super",
                                  "range": [
                                    1386,
                                    1392
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 35,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 35,
                                      "column": 14
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "name": "call",
                                  "range": [
                                    1393,
                                    1397
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 35,
                                      "column": 15
                                    },
                                    "end": {
                                      "line": 35,
                                      "column": 19
                                    }
                                  }
                                },
                                "range": [
                                  1386,
                                  1397
                                ],
                                "loc": {
                                  "start": {
                                    "line": 35,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 35,
                                    "column": 19
                                  }
                                }
                              },
                              "arguments": [
                                {
                                  "type": "ThisExpression",
                                  "range": [
                                    1398,
                                    1402
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 35,
                                      "column": 20
                                    },
                                    "end": {
                                      "line": 35,
                                      "column": 24
                                    }
                                  }
                                },
                                {
                                  "type": "Identifier",
                                  "name": "destination",
                                  "range": [
                                    1404,
                                    1415
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 35,
                                      "column": 26
                                    },
                                    "end": {
                                      "line": 35,
                                      "column": 37
                                    }
                                  }
                                }
                              ],
                              "range": [
                                1386,
                                1416
                              ],
                              "loc": {
                                "start": {
                                  "line": 35,
                                  "column": 8
                                },
                                "end": {
                                  "line": 35,
                                  "column": 38
                                }
                              }
                            },
                            "range": [
                              1386,
                              1417
                            ],
                            "loc": {
                              "start": {
                                "line": 35,
                                "column": 8
                              },
                              "end": {
                                "line": 35,
                                "column": 39
                              }
                            }
                          },
                          {
                            "type": "ExpressionStatement",
                            "expression": {
                              "type": "AssignmentExpression",
                              "operator": "=",
                              "left": {
                                "type": "MemberExpression",
                                "computed": false,
                                "object": {
                                  "type": "ThisExpression",
                                  "range": [
                                    1426,
                                    1430
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 36,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 36,
                                      "column": 12
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "name": "accumulator",
                                  "range": [
                                    1431,
                                    1442
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 36,
                                      "column": 13
                                    },
                                    "end": {
                                      "line": 36,
                                      "column": 24
                                    }
                                  }
                                },
                                "range": [
                                  1426,
                                  1442
                                ],
                                "loc": {
                                  "start": {
                                    "line": 36,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 36,
                                    "column": 24
                                  }
                                }
                              },
                              "right": {
                                "type": "Identifier",
                                "name": "accumulator",
                                "range": [
                                  1445,
                                  1456
                                ],
                                "loc": {
                                  "start": {
                                    "line": 36,
                                    "column": 27
                                  },
                                  "end": {
                                    "line": 36,
                                    "column": 38
                                  }
                                }
                              },
                              "range": [
                                1426,
                                1456
                              ],
                              "loc": {
                                "start": {
                                  "line": 36,
                                  "column": 8
                                },
                                "end": {
                                  "line": 36,
                                  "column": 38
                                }
                              }
                            },
                            "range": [
                              1426,
                              1457
                            ],
                            "loc": {
                              "start": {
                                "line": 36,
                                "column": 8
                              },
                              "end": {
                                "line": 36,
                                "column": 39
                              }
                            }
                          },
                          {
                            "type": "ExpressionStatement",
                            "expression": {
                              "type": "AssignmentExpression",
                              "operator": "=",
                              "left": {
                                "type": "MemberExpression",
                                "computed": false,
                                "object": {
                                  "type": "ThisExpression",
                                  "range": [
                                    1466,
                                    1470
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 37,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 37,
                                      "column": 12
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "name": "hasSeed",
                                  "range": [
                                    1471,
                                    1478
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 37,
                                      "column": 13
                                    },
                                    "end": {
                                      "line": 37,
                                      "column": 20
                                    }
                                  }
                                },
                                "range": [
                                  1466,
                                  1478
                                ],
                                "loc": {
                                  "start": {
                                    "line": 37,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 37,
                                    "column": 20
                                  }
                                }
                              },
                              "right": {
                                "type": "Identifier",
                                "name": "hasSeed",
                                "range": [
                                  1481,
                                  1488
                                ],
                                "loc": {
                                  "start": {
                                    "line": 37,
                                    "column": 23
                                  },
                                  "end": {
                                    "line": 37,
                                    "column": 30
                                  }
                                }
                              },
                              "range": [
                                1466,
                                1488
                              ],
                              "loc": {
                                "start": {
                                  "line": 37,
                                  "column": 8
                                },
                                "end": {
                                  "line": 37,
                                  "column": 30
                                }
                              }
                            },
                            "range": [
                              1466,
                              1489
                            ],
                            "loc": {
                              "start": {
                                "line": 37,
                                "column": 8
                              },
                              "end": {
                                "line": 37,
                                "column": 31
                              }
                            }
                          },
                          {
                            "type": "ExpressionStatement",
                            "expression": {
                              "type": "AssignmentExpression",
                              "operator": "=",
                              "left": {
                                "type": "MemberExpression",
                                "computed": false,
                                "object": {
                                  "type": "ThisExpression",
                                  "range": [
                                    1498,
                                    1502
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 38,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 38,
                                      "column": 12
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "name": "hasValue",
                                  "range": [
                                    1503,
                                    1511
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 38,
                                      "column": 13
                                    },
                                    "end": {
                                      "line": 38,
                                      "column": 21
                                    }
                                  }
                                },
                                "range": [
                                  1498,
                                  1511
                                ],
                                "loc": {
                                  "start": {
                                    "line": 38,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 38,
                                    "column": 21
                                  }
                                }
                              },
                              "right": {
                                "type": "Literal",
                                "value": false,
                                "raw": "false",
                                "range": [
                                  1514,
                                  1519
                                ],
                                "loc": {
                                  "start": {
                                    "line": 38,
                                    "column": 24
                                  },
                                  "end": {
                                    "line": 38,
                                    "column": 29
                                  }
                                }
                              },
                              "range": [
                                1498,
                                1519
                              ],
                              "loc": {
                                "start": {
                                  "line": 38,
                                  "column": 8
                                },
                                "end": {
                                  "line": 38,
                                  "column": 29
                                }
                              }
                            },
                            "range": [
                              1498,
                              1520
                            ],
                            "loc": {
                              "start": {
                                "line": 38,
                                "column": 8
                              },
                              "end": {
                                "line": 38,
                                "column": 30
                              }
                            }
                          },
                          {
                            "type": "ExpressionStatement",
                            "expression": {
                              "type": "AssignmentExpression",
                              "operator": "=",
                              "left": {
                                "type": "MemberExpression",
                                "computed": false,
                                "object": {
                                  "type": "ThisExpression",
                                  "range": [
                                    1529,
                                    1533
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 39,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 39,
                                      "column": 12
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "name": "acc",
                                  "range": [
                                    1534,
                                    1537
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 39,
                                      "column": 13
                                    },
                                    "end": {
                                      "line": 39,
                                      "column": 16
                                    }
                                  }
                                },
                                "range": [
                                  1529,
                                  1537
                                ],
                                "loc": {
                                  "start": {
                                    "line": 39,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 39,
                                    "column": 16
                                  }
                                }
                              },
                              "right": {
                                "type": "Identifier",
                                "name": "seed",
                                "range": [
                                  1540,
                                  1544
                                ],
                                "loc": {
                                  "start": {
                                    "line": 39,
                                    "column": 19
                                  },
                                  "end": {
                                    "line": 39,
                                    "column": 23
                                  }
                                }
                              },
                              "range": [
                                1529,
                                1544
                              ],
                              "loc": {
                                "start": {
                                  "line": 39,
                                  "column": 8
                                },
                                "end": {
                                  "line": 39,
                                  "column": 23
                                }
                              }
                            },
                            "range": [
                              1529,
                              1545
                            ],
                            "loc": {
                              "start": {
                                "line": 39,
                                "column": 8
                              },
                              "end": {
                                "line": 39,
                                "column": 24
                              }
                            }
                          }
                        ],
                        "range": [
                          1376,
                          1551
                        ],
                        "loc": {
                          "start": {
                            "line": 34,
                            "column": 71
                          },
                          "end": {
                            "line": 40,
                            "column": 5
                          }
                        }
                      },
                      "generator": false,
                      "expression": false,
                      "range": [
                        1309,
                        1551
                      ],
                      "loc": {
                        "start": {
                          "line": 34,
                          "column": 4
                        },
                        "end": {
                          "line": 40,
                          "column": 5
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "AssignmentExpression",
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "MemberExpression",
                            "computed": false,
                            "object": {
                              "type": "Identifier",
                              "name": "ReduceSubscriber",
                              "range": [
                                1556,
                                1572
                              ],
                              "loc": {
                                "start": {
                                  "line": 41,
                                  "column": 4
                                },
                                "end": {
                                  "line": 41,
                                  "column": 20
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "name": "prototype",
                              "range": [
                                1573,
                                1582
                              ],
                              "loc": {
                                "start": {
                                  "line": 41,
                                  "column": 21
                                },
                                "end": {
                                  "line": 41,
                                  "column": 30
                                }
                              }
                            },
                            "range": [
                              1556,
                              1582
                            ],
                            "loc": {
                              "start": {
                                "line": 41,
                                "column": 4
                              },
                              "end": {
                                "line": 41,
                                "column": 30
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "_next",
                            "range": [
                              1583,
                              1588
                            ],
                            "loc": {
                              "start": {
                                "line": 41,
                                "column": 31
                              },
                              "end": {
                                "line": 41,
                                "column": 36
                              }
                            }
                          },
                          "range": [
                            1556,
                            1588
                          ],
                          "loc": {
                            "start": {
                              "line": 41,
                              "column": 4
                            },
                            "end": {
                              "line": 41,
                              "column": 36
                            }
                          }
                        },
                        "right": {
                          "type": "FunctionExpression",
                          "id": null,
                          "params": [
                            {
                              "type": "Identifier",
                              "name": "value",
                              "range": [
                                1601,
                                1606
                              ],
                              "loc": {
                                "start": {
                                  "line": 41,
                                  "column": 49
                                },
                                "end": {
                                  "line": 41,
                                  "column": 54
                                }
                              }
                            }
                          ],
                          "body": {
                            "type": "BlockStatement",
                            "body": [
                              {
                                "type": "IfStatement",
                                "test": {
                                  "type": "LogicalExpression",
                                  "operator": "||",
                                  "left": {
                                    "type": "MemberExpression",
                                    "computed": false,
                                    "object": {
                                      "type": "ThisExpression",
                                      "range": [
                                        1622,
                                        1626
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 42,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 42,
                                          "column": 16
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "name": "hasValue",
                                      "range": [
                                        1627,
                                        1635
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 42,
                                          "column": 17
                                        },
                                        "end": {
                                          "line": 42,
                                          "column": 25
                                        }
                                      }
                                    },
                                    "range": [
                                      1622,
                                      1635
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 42,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 42,
                                        "column": 25
                                      }
                                    }
                                  },
                                  "right": {
                                    "type": "AssignmentExpression",
                                    "operator": "=",
                                    "left": {
                                      "type": "MemberExpression",
                                      "computed": false,
                                      "object": {
                                        "type": "ThisExpression",
                                        "range": [
                                          1640,
                                          1644
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 42,
                                            "column": 30
                                          },
                                          "end": {
                                            "line": 42,
                                            "column": 34
                                          }
                                        }
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "name": "hasValue",
                                        "range": [
                                          1645,
                                          1653
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 42,
                                            "column": 35
                                          },
                                          "end": {
                                            "line": 42,
                                            "column": 43
                                          }
                                        }
                                      },
                                      "range": [
                                        1640,
                                        1653
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 42,
                                          "column": 30
                                        },
                                        "end": {
                                          "line": 42,
                                          "column": 43
                                        }
                                      }
                                    },
                                    "right": {
                                      "type": "MemberExpression",
                                      "computed": false,
                                      "object": {
                                        "type": "ThisExpression",
                                        "range": [
                                          1656,
                                          1660
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 42,
                                            "column": 46
                                          },
                                          "end": {
                                            "line": 42,
                                            "column": 50
                                          }
                                        }
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "name": "hasSeed",
                                        "range": [
                                          1661,
                                          1668
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 42,
                                            "column": 51
                                          },
                                          "end": {
                                            "line": 42,
                                            "column": 58
                                          }
                                        }
                                      },
                                      "range": [
                                        1656,
                                        1668
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 42,
                                          "column": 46
                                        },
                                        "end": {
                                          "line": 42,
                                          "column": 58
                                        }
                                      }
                                    },
                                    "range": [
                                      1640,
                                      1668
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 42,
                                        "column": 30
                                      },
                                      "end": {
                                        "line": 42,
                                        "column": 58
                                      }
                                    }
                                  },
                                  "range": [
                                    1622,
                                    1669
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 42,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 42,
                                      "column": 59
                                    }
                                  }
                                },
                                "consequent": {
                                  "type": "BlockStatement",
                                  "body": [
                                    {
                                      "type": "ExpressionStatement",
                                      "expression": {
                                        "type": "CallExpression",
                                        "callee": {
                                          "type": "MemberExpression",
                                          "computed": false,
                                          "object": {
                                            "type": "ThisExpression",
                                            "range": [
                                              1685,
                                              1689
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 43,
                                                "column": 12
                                              },
                                              "end": {
                                                "line": 43,
                                                "column": 16
                                              }
                                            }
                                          },
                                          "property": {
                                            "type": "Identifier",
                                            "name": "_tryReduce",
                                            "range": [
                                              1690,
                                              1700
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 43,
                                                "column": 17
                                              },
                                              "end": {
                                                "line": 43,
                                                "column": 27
                                              }
                                            }
                                          },
                                          "range": [
                                            1685,
                                            1700
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 43,
                                              "column": 12
                                            },
                                            "end": {
                                              "line": 43,
                                              "column": 27
                                            }
                                          }
                                        },
                                        "arguments": [
                                          {
                                            "type": "Identifier",
                                            "name": "value",
                                            "range": [
                                              1701,
                                              1706
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 43,
                                                "column": 28
                                              },
                                              "end": {
                                                "line": 43,
                                                "column": 33
                                              }
                                            }
                                          }
                                        ],
                                        "range": [
                                          1685,
                                          1707
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 43,
                                            "column": 12
                                          },
                                          "end": {
                                            "line": 43,
                                            "column": 34
                                          }
                                        }
                                      },
                                      "range": [
                                        1685,
                                        1708
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 43,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 43,
                                          "column": 35
                                        }
                                      }
                                    }
                                  ],
                                  "range": [
                                    1671,
                                    1718
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 42,
                                      "column": 61
                                    },
                                    "end": {
                                      "line": 44,
                                      "column": 9
                                    }
                                  }
                                },
                                "alternate": {
                                  "type": "BlockStatement",
                                  "body": [
                                    {
                                      "type": "ExpressionStatement",
                                      "expression": {
                                        "type": "AssignmentExpression",
                                        "operator": "=",
                                        "left": {
                                          "type": "MemberExpression",
                                          "computed": false,
                                          "object": {
                                            "type": "ThisExpression",
                                            "range": [
                                              1746,
                                              1750
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 46,
                                                "column": 12
                                              },
                                              "end": {
                                                "line": 46,
                                                "column": 16
                                              }
                                            }
                                          },
                                          "property": {
                                            "type": "Identifier",
                                            "name": "acc",
                                            "range": [
                                              1751,
                                              1754
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 46,
                                                "column": 17
                                              },
                                              "end": {
                                                "line": 46,
                                                "column": 20
                                              }
                                            }
                                          },
                                          "range": [
                                            1746,
                                            1754
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 46,
                                              "column": 12
                                            },
                                            "end": {
                                              "line": 46,
                                              "column": 20
                                            }
                                          }
                                        },
                                        "right": {
                                          "type": "Identifier",
                                          "name": "value",
                                          "range": [
                                            1757,
                                            1762
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 46,
                                              "column": 23
                                            },
                                            "end": {
                                              "line": 46,
                                              "column": 28
                                            }
                                          }
                                        },
                                        "range": [
                                          1746,
                                          1762
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 46,
                                            "column": 12
                                          },
                                          "end": {
                                            "line": 46,
                                            "column": 28
                                          }
                                        }
                                      },
                                      "range": [
                                        1746,
                                        1763
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 46,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 46,
                                          "column": 29
                                        }
                                      }
                                    },
                                    {
                                      "type": "ExpressionStatement",
                                      "expression": {
                                        "type": "AssignmentExpression",
                                        "operator": "=",
                                        "left": {
                                          "type": "MemberExpression",
                                          "computed": false,
                                          "object": {
                                            "type": "ThisExpression",
                                            "range": [
                                              1776,
                                              1780
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 47,
                                                "column": 12
                                              },
                                              "end": {
                                                "line": 47,
                                                "column": 16
                                              }
                                            }
                                          },
                                          "property": {
                                            "type": "Identifier",
                                            "name": "hasValue",
                                            "range": [
                                              1781,
                                              1789
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 47,
                                                "column": 17
                                              },
                                              "end": {
                                                "line": 47,
                                                "column": 25
                                              }
                                            }
                                          },
                                          "range": [
                                            1776,
                                            1789
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 47,
                                              "column": 12
                                            },
                                            "end": {
                                              "line": 47,
                                              "column": 25
                                            }
                                          }
                                        },
                                        "right": {
                                          "type": "Literal",
                                          "value": true,
                                          "raw": "true",
                                          "range": [
                                            1792,
                                            1796
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 47,
                                              "column": 28
                                            },
                                            "end": {
                                              "line": 47,
                                              "column": 32
                                            }
                                          }
                                        },
                                        "range": [
                                          1776,
                                          1796
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 47,
                                            "column": 12
                                          },
                                          "end": {
                                            "line": 47,
                                            "column": 32
                                          }
                                        }
                                      },
                                      "range": [
                                        1776,
                                        1797
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 47,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 47,
                                          "column": 33
                                        }
                                      }
                                    }
                                  ],
                                  "range": [
                                    1732,
                                    1807
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 45,
                                      "column": 13
                                    },
                                    "end": {
                                      "line": 48,
                                      "column": 9
                                    }
                                  }
                                },
                                "range": [
                                  1618,
                                  1807
                                ],
                                "loc": {
                                  "start": {
                                    "line": 42,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 48,
                                    "column": 9
                                  }
                                }
                              }
                            ],
                            "range": [
                              1608,
                              1813
                            ],
                            "loc": {
                              "start": {
                                "line": 41,
                                "column": 56
                              },
                              "end": {
                                "line": 49,
                                "column": 5
                              }
                            }
                          },
                          "generator": false,
                          "expression": false,
                          "range": [
                            1591,
                            1813
                          ],
                          "loc": {
                            "start": {
                              "line": 41,
                              "column": 39
                            },
                            "end": {
                              "line": 49,
                              "column": 5
                            }
                          }
                        },
                        "range": [
                          1556,
                          1813
                        ],
                        "loc": {
                          "start": {
                            "line": 41,
                            "column": 4
                          },
                          "end": {
                            "line": 49,
                            "column": 5
                          }
                        }
                      },
                      "range": [
                        1556,
                        1814
                      ],
                      "loc": {
                        "start": {
                          "line": 41,
                          "column": 4
                        },
                        "end": {
                          "line": 49,
                          "column": 6
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "AssignmentExpression",
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "MemberExpression",
                            "computed": false,
                            "object": {
                              "type": "Identifier",
                              "name": "ReduceSubscriber",
                              "range": [
                                1819,
                                1835
                              ],
                              "loc": {
                                "start": {
                                  "line": 50,
                                  "column": 4
                                },
                                "end": {
                                  "line": 50,
                                  "column": 20
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "name": "prototype",
                              "range": [
                                1836,
                                1845
                              ],
                              "loc": {
                                "start": {
                                  "line": 50,
                                  "column": 21
                                },
                                "end": {
                                  "line": 50,
                                  "column": 30
                                }
                              }
                            },
                            "range": [
                              1819,
                              1845
                            ],
                            "loc": {
                              "start": {
                                "line": 50,
                                "column": 4
                              },
                              "end": {
                                "line": 50,
                                "column": 30
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "_tryReduce",
                            "range": [
                              1846,
                              1856
                            ],
                            "loc": {
                              "start": {
                                "line": 50,
                                "column": 31
                              },
                              "end": {
                                "line": 50,
                                "column": 41
                              }
                            }
                          },
                          "range": [
                            1819,
                            1856
                          ],
                          "loc": {
                            "start": {
                              "line": 50,
                              "column": 4
                            },
                            "end": {
                              "line": 50,
                              "column": 41
                            }
                          }
                        },
                        "right": {
                          "type": "FunctionExpression",
                          "id": null,
                          "params": [
                            {
                              "type": "Identifier",
                              "name": "value",
                              "range": [
                                1869,
                                1874
                              ],
                              "loc": {
                                "start": {
                                  "line": 50,
                                  "column": 54
                                },
                                "end": {
                                  "line": 50,
                                  "column": 59
                                }
                              }
                            }
                          ],
                          "body": {
                            "type": "BlockStatement",
                            "body": [
                              {
                                "type": "VariableDeclaration",
                                "declarations": [
                                  {
                                    "type": "VariableDeclarator",
                                    "id": {
                                      "type": "Identifier",
                                      "name": "result",
                                      "range": [
                                        1890,
                                        1896
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 51,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 51,
                                          "column": 18
                                        }
                                      }
                                    },
                                    "init": null,
                                    "range": [
                                      1890,
                                      1896
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 51,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 51,
                                        "column": 18
                                      }
                                    }
                                  }
                                ],
                                "kind": "var",
                                "range": [
                                  1886,
                                  1897
                                ],
                                "loc": {
                                  "start": {
                                    "line": 51,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 51,
                                    "column": 19
                                  }
                                }
                              },
                              {
                                "type": "TryStatement",
                                "block": {
                                  "type": "BlockStatement",
                                  "body": [
                                    {
                                      "type": "ExpressionStatement",
                                      "expression": {
                                        "type": "AssignmentExpression",
                                        "operator": "=",
                                        "left": {
                                          "type": "Identifier",
                                          "name": "result",
                                          "range": [
                                            1924,
                                            1930
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 53,
                                              "column": 12
                                            },
                                            "end": {
                                              "line": 53,
                                              "column": 18
                                            }
                                          }
                                        },
                                        "right": {
                                          "type": "CallExpression",
                                          "callee": {
                                            "type": "MemberExpression",
                                            "computed": false,
                                            "object": {
                                              "type": "ThisExpression",
                                              "range": [
                                                1933,
                                                1937
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 53,
                                                  "column": 21
                                                },
                                                "end": {
                                                  "line": 53,
                                                  "column": 25
                                                }
                                              }
                                            },
                                            "property": {
                                              "type": "Identifier",
                                              "name": "accumulator",
                                              "range": [
                                                1938,
                                                1949
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 53,
                                                  "column": 26
                                                },
                                                "end": {
                                                  "line": 53,
                                                  "column": 37
                                                }
                                              }
                                            },
                                            "range": [
                                              1933,
                                              1949
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 53,
                                                "column": 21
                                              },
                                              "end": {
                                                "line": 53,
                                                "column": 37
                                              }
                                            }
                                          },
                                          "arguments": [
                                            {
                                              "type": "MemberExpression",
                                              "computed": false,
                                              "object": {
                                                "type": "ThisExpression",
                                                "range": [
                                                  1950,
                                                  1954
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 53,
                                                    "column": 38
                                                  },
                                                  "end": {
                                                    "line": 53,
                                                    "column": 42
                                                  }
                                                }
                                              },
                                              "property": {
                                                "type": "Identifier",
                                                "name": "acc",
                                                "range": [
                                                  1955,
                                                  1958
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 53,
                                                    "column": 43
                                                  },
                                                  "end": {
                                                    "line": 53,
                                                    "column": 46
                                                  }
                                                }
                                              },
                                              "range": [
                                                1950,
                                                1958
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 53,
                                                  "column": 38
                                                },
                                                "end": {
                                                  "line": 53,
                                                  "column": 46
                                                }
                                              }
                                            },
                                            {
                                              "type": "Identifier",
                                              "name": "value",
                                              "range": [
                                                1960,
                                                1965
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 53,
                                                  "column": 48
                                                },
                                                "end": {
                                                  "line": 53,
                                                  "column": 53
                                                }
                                              }
                                            }
                                          ],
                                          "range": [
                                            1933,
                                            1966
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 53,
                                              "column": 21
                                            },
                                            "end": {
                                              "line": 53,
                                              "column": 54
                                            }
                                          }
                                        },
                                        "range": [
                                          1924,
                                          1966
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 53,
                                            "column": 12
                                          },
                                          "end": {
                                            "line": 53,
                                            "column": 54
                                          }
                                        }
                                      },
                                      "range": [
                                        1924,
                                        1967
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 53,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 53,
                                          "column": 55
                                        }
                                      }
                                    }
                                  ],
                                  "range": [
                                    1910,
                                    1977
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 52,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 54,
                                      "column": 9
                                    }
                                  }
                                },
                                "handler": {
                                  "type": "CatchClause",
                                  "param": {
                                    "type": "Identifier",
                                    "name": "err",
                                    "range": [
                                      1993,
                                      1996
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 55,
                                        "column": 15
                                      },
                                      "end": {
                                        "line": 55,
                                        "column": 18
                                      }
                                    }
                                  },
                                  "body": {
                                    "type": "BlockStatement",
                                    "body": [
                                      {
                                        "type": "ExpressionStatement",
                                        "expression": {
                                          "type": "CallExpression",
                                          "callee": {
                                            "type": "MemberExpression",
                                            "computed": false,
                                            "object": {
                                              "type": "MemberExpression",
                                              "computed": false,
                                              "object": {
                                                "type": "ThisExpression",
                                                "range": [
                                                  2012,
                                                  2016
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 56,
                                                    "column": 12
                                                  },
                                                  "end": {
                                                    "line": 56,
                                                    "column": 16
                                                  }
                                                }
                                              },
                                              "property": {
                                                "type": "Identifier",
                                                "name": "destination",
                                                "range": [
                                                  2017,
                                                  2028
                                                ],
                                                "loc": {
                                                  "start": {
                                                    "line": 56,
                                                    "column": 17
                                                  },
                                                  "end": {
                                                    "line": 56,
                                                    "column": 28
                                                  }
                                                }
                                              },
                                              "range": [
                                                2012,
                                                2028
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 56,
                                                  "column": 12
                                                },
                                                "end": {
                                                  "line": 56,
                                                  "column": 28
                                                }
                                              }
                                            },
                                            "property": {
                                              "type": "Identifier",
                                              "name": "error",
                                              "range": [
                                                2029,
                                                2034
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 56,
                                                  "column": 29
                                                },
                                                "end": {
                                                  "line": 56,
                                                  "column": 34
                                                }
                                              }
                                            },
                                            "range": [
                                              2012,
                                              2034
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 56,
                                                "column": 12
                                              },
                                              "end": {
                                                "line": 56,
                                                "column": 34
                                              }
                                            }
                                          },
                                          "arguments": [
                                            {
                                              "type": "Identifier",
                                              "name": "err",
                                              "range": [
                                                2035,
                                                2038
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 56,
                                                  "column": 35
                                                },
                                                "end": {
                                                  "line": 56,
                                                  "column": 38
                                                }
                                              }
                                            }
                                          ],
                                          "range": [
                                            2012,
                                            2039
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 56,
                                              "column": 12
                                            },
                                            "end": {
                                              "line": 56,
                                              "column": 39
                                            }
                                          }
                                        },
                                        "range": [
                                          2012,
                                          2040
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 56,
                                            "column": 12
                                          },
                                          "end": {
                                            "line": 56,
                                            "column": 40
                                          }
                                        }
                                      },
                                      {
                                        "type": "ReturnStatement",
                                        "argument": null,
                                        "range": [
                                          2053,
                                          2060
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 57,
                                            "column": 12
                                          },
                                          "end": {
                                            "line": 57,
                                            "column": 19
                                          }
                                        }
                                      }
                                    ],
                                    "range": [
                                      1998,
                                      2070
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 55,
                                        "column": 20
                                      },
                                      "end": {
                                        "line": 58,
                                        "column": 9
                                      }
                                    }
                                  },
                                  "range": [
                                    1986,
                                    2070
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 55,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 58,
                                      "column": 9
                                    }
                                  }
                                },
                                "finalizer": null,
                                "range": [
                                  1906,
                                  2070
                                ],
                                "loc": {
                                  "start": {
                                    "line": 52,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 58,
                                    "column": 9
                                  }
                                }
                              },
                              {
                                "type": "ExpressionStatement",
                                "expression": {
                                  "type": "AssignmentExpression",
                                  "operator": "=",
                                  "left": {
                                    "type": "MemberExpression",
                                    "computed": false,
                                    "object": {
                                      "type": "ThisExpression",
                                      "range": [
                                        2079,
                                        2083
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 59,
                                          "column": 8
                                        },
                                        "end": {
                                          "line": 59,
                                          "column": 12
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "name": "acc",
                                      "range": [
                                        2084,
                                        2087
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 59,
                                          "column": 13
                                        },
                                        "end": {
                                          "line": 59,
                                          "column": 16
                                        }
                                      }
                                    },
                                    "range": [
                                      2079,
                                      2087
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 59,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 59,
                                        "column": 16
                                      }
                                    }
                                  },
                                  "right": {
                                    "type": "Identifier",
                                    "name": "result",
                                    "range": [
                                      2090,
                                      2096
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 59,
                                        "column": 19
                                      },
                                      "end": {
                                        "line": 59,
                                        "column": 25
                                      }
                                    }
                                  },
                                  "range": [
                                    2079,
                                    2096
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 59,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 59,
                                      "column": 25
                                    }
                                  }
                                },
                                "range": [
                                  2079,
                                  2097
                                ],
                                "loc": {
                                  "start": {
                                    "line": 59,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 59,
                                    "column": 26
                                  }
                                }
                              }
                            ],
                            "range": [
                              1876,
                              2103
                            ],
                            "loc": {
                              "start": {
                                "line": 50,
                                "column": 61
                              },
                              "end": {
                                "line": 60,
                                "column": 5
                              }
                            }
                          },
                          "generator": false,
                          "expression": false,
                          "range": [
                            1859,
                            2103
                          ],
                          "loc": {
                            "start": {
                              "line": 50,
                              "column": 44
                            },
                            "end": {
                              "line": 60,
                              "column": 5
                            }
                          }
                        },
                        "range": [
                          1819,
                          2103
                        ],
                        "loc": {
                          "start": {
                            "line": 50,
                            "column": 4
                          },
                          "end": {
                            "line": 60,
                            "column": 5
                          }
                        }
                      },
                      "range": [
                        1819,
                        2104
                      ],
                      "loc": {
                        "start": {
                          "line": 50,
                          "column": 4
                        },
                        "end": {
                          "line": 60,
                          "column": 6
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "AssignmentExpression",
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "computed": false,
                          "object": {
                            "type": "MemberExpression",
                            "computed": false,
                            "object": {
                              "type": "Identifier",
                              "name": "ReduceSubscriber",
                              "range": [
                                2109,
                                2125
                              ],
                              "loc": {
                                "start": {
                                  "line": 61,
                                  "column": 4
                                },
                                "end": {
                                  "line": 61,
                                  "column": 20
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "name": "prototype",
                              "range": [
                                2126,
                                2135
                              ],
                              "loc": {
                                "start": {
                                  "line": 61,
                                  "column": 21
                                },
                                "end": {
                                  "line": 61,
                                  "column": 30
                                }
                              }
                            },
                            "range": [
                              2109,
                              2135
                            ],
                            "loc": {
                              "start": {
                                "line": 61,
                                "column": 4
                              },
                              "end": {
                                "line": 61,
                                "column": 30
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "name": "_complete",
                            "range": [
                              2136,
                              2145
                            ],
                            "loc": {
                              "start": {
                                "line": 61,
                                "column": 31
                              },
                              "end": {
                                "line": 61,
                                "column": 40
                              }
                            }
                          },
                          "range": [
                            2109,
                            2145
                          ],
                          "loc": {
                            "start": {
                              "line": 61,
                              "column": 4
                            },
                            "end": {
                              "line": 61,
                              "column": 40
                            }
                          }
                        },
                        "right": {
                          "type": "FunctionExpression",
                          "id": null,
                          "params": [],
                          "body": {
                            "type": "BlockStatement",
                            "body": [
                              {
                                "type": "IfStatement",
                                "test": {
                                  "type": "LogicalExpression",
                                  "operator": "||",
                                  "left": {
                                    "type": "MemberExpression",
                                    "computed": false,
                                    "object": {
                                      "type": "ThisExpression",
                                      "range": [
                                        2174,
                                        2178
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 62,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 62,
                                          "column": 16
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "name": "hasValue",
                                      "range": [
                                        2179,
                                        2187
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 62,
                                          "column": 17
                                        },
                                        "end": {
                                          "line": 62,
                                          "column": 25
                                        }
                                      }
                                    },
                                    "range": [
                                      2174,
                                      2187
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 62,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 62,
                                        "column": 25
                                      }
                                    }
                                  },
                                  "right": {
                                    "type": "MemberExpression",
                                    "computed": false,
                                    "object": {
                                      "type": "ThisExpression",
                                      "range": [
                                        2191,
                                        2195
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 62,
                                          "column": 29
                                        },
                                        "end": {
                                          "line": 62,
                                          "column": 33
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "name": "hasSeed",
                                      "range": [
                                        2196,
                                        2203
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 62,
                                          "column": 34
                                        },
                                        "end": {
                                          "line": 62,
                                          "column": 41
                                        }
                                      }
                                    },
                                    "range": [
                                      2191,
                                      2203
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 62,
                                        "column": 29
                                      },
                                      "end": {
                                        "line": 62,
                                        "column": 41
                                      }
                                    }
                                  },
                                  "range": [
                                    2174,
                                    2203
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 62,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 62,
                                      "column": 41
                                    }
                                  }
                                },
                                "consequent": {
                                  "type": "BlockStatement",
                                  "body": [
                                    {
                                      "type": "ExpressionStatement",
                                      "expression": {
                                        "type": "CallExpression",
                                        "callee": {
                                          "type": "MemberExpression",
                                          "computed": false,
                                          "object": {
                                            "type": "MemberExpression",
                                            "computed": false,
                                            "object": {
                                              "type": "ThisExpression",
                                              "range": [
                                                2219,
                                                2223
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 63,
                                                  "column": 12
                                                },
                                                "end": {
                                                  "line": 63,
                                                  "column": 16
                                                }
                                              }
                                            },
                                            "property": {
                                              "type": "Identifier",
                                              "name": "destination",
                                              "range": [
                                                2224,
                                                2235
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 63,
                                                  "column": 17
                                                },
                                                "end": {
                                                  "line": 63,
                                                  "column": 28
                                                }
                                              }
                                            },
                                            "range": [
                                              2219,
                                              2235
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 63,
                                                "column": 12
                                              },
                                              "end": {
                                                "line": 63,
                                                "column": 28
                                              }
                                            }
                                          },
                                          "property": {
                                            "type": "Identifier",
                                            "name": "next",
                                            "range": [
                                              2236,
                                              2240
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 63,
                                                "column": 29
                                              },
                                              "end": {
                                                "line": 63,
                                                "column": 33
                                              }
                                            }
                                          },
                                          "range": [
                                            2219,
                                            2240
                                          ],
                                          "loc": {
                                            "start": {
                                              "line": 63,
                                              "column": 12
                                            },
                                            "end": {
                                              "line": 63,
                                              "column": 33
                                            }
                                          }
                                        },
                                        "arguments": [
                                          {
                                            "type": "MemberExpression",
                                            "computed": false,
                                            "object": {
                                              "type": "ThisExpression",
                                              "range": [
                                                2241,
                                                2245
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 63,
                                                  "column": 34
                                                },
                                                "end": {
                                                  "line": 63,
                                                  "column": 38
                                                }
                                              }
                                            },
                                            "property": {
                                              "type": "Identifier",
                                              "name": "acc",
                                              "range": [
                                                2246,
                                                2249
                                              ],
                                              "loc": {
                                                "start": {
                                                  "line": 63,
                                                  "column": 39
                                                },
                                                "end": {
                                                  "line": 63,
                                                  "column": 42
                                                }
                                              }
                                            },
                                            "range": [
                                              2241,
                                              2249
                                            ],
                                            "loc": {
                                              "start": {
                                                "line": 63,
                                                "column": 34
                                              },
                                              "end": {
                                                "line": 63,
                                                "column": 42
                                              }
                                            }
                                          }
                                        ],
                                        "range": [
                                          2219,
                                          2250
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 63,
                                            "column": 12
                                          },
                                          "end": {
                                            "line": 63,
                                            "column": 43
                                          }
                                        }
                                      },
                                      "range": [
                                        2219,
                                        2251
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 63,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 63,
                                          "column": 44
                                        }
                                      }
                                    }
                                  ],
                                  "range": [
                                    2205,
                                    2261
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 62,
                                      "column": 43
                                    },
                                    "end": {
                                      "line": 64,
                                      "column": 9
                                    }
                                  }
                                },
                                "alternate": null,
                                "range": [
                                  2170,
                                  2261
                                ],
                                "loc": {
                                  "start": {
                                    "line": 62,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 64,
                                    "column": 9
                                  }
                                }
                              },
                              {
                                "type": "ExpressionStatement",
                                "expression": {
                                  "type": "CallExpression",
                                  "callee": {
                                    "type": "MemberExpression",
                                    "computed": false,
                                    "object": {
                                      "type": "MemberExpression",
                                      "computed": false,
                                      "object": {
                                        "type": "ThisExpression",
                                        "range": [
                                          2270,
                                          2274
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 65,
                                            "column": 8
                                          },
                                          "end": {
                                            "line": 65,
                                            "column": 12
                                          }
                                        }
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "name": "destination",
                                        "range": [
                                          2275,
                                          2286
                                        ],
                                        "loc": {
                                          "start": {
                                            "line": 65,
                                            "column": 13
                                          },
                                          "end": {
                                            "line": 65,
                                            "column": 24
                                          }
                                        }
                                      },
                                      "range": [
                                        2270,
                                        2286
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 65,
                                          "column": 8
                                        },
                                        "end": {
                                          "line": 65,
                                          "column": 24
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "name": "complete",
                                      "range": [
                                        2287,
                                        2295
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 65,
                                          "column": 25
                                        },
                                        "end": {
                                          "line": 65,
                                          "column": 33
                                        }
                                      }
                                    },
                                    "range": [
                                      2270,
                                      2295
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 65,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 65,
                                        "column": 33
                                      }
                                    }
                                  },
                                  "arguments": [],
                                  "range": [
                                    2270,
                                    2297
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 65,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 65,
                                      "column": 35
                                    }
                                  }
                                },
                                "range": [
                                  2270,
                                  2298
                                ],
                                "loc": {
                                  "start": {
                                    "line": 65,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 65,
                                    "column": 36
                                  }
                                }
                              }
                            ],
                            "range": [
                              2160,
                              2304
                            ],
                            "loc": {
                              "start": {
                                "line": 61,
                                "column": 55
                              },
                              "end": {
                                "line": 66,
                                "column": 5
                              }
                            }
                          },
                          "generator": false,
                          "expression": false,
                          "range": [
                            2148,
                            2304
                          ],
                          "loc": {
                            "start": {
                              "line": 61,
                              "column": 43
                            },
                            "end": {
                              "line": 66,
                              "column": 5
                            }
                          }
                        },
                        "range": [
                          2109,
                          2304
                        ],
                        "loc": {
                          "start": {
                            "line": 61,
                            "column": 4
                          },
                          "end": {
                            "line": 66,
                            "column": 5
                          }
                        }
                      },
                      "range": [
                        2109,
                        2305
                      ],
                      "loc": {
                        "start": {
                          "line": 61,
                          "column": 4
                        },
                        "end": {
                          "line": 66,
                          "column": 6
                        }
                      }
                    },
                    {
                      "type": "ReturnStatement",
                      "argument": {
                        "type": "Identifier",
                        "name": "ReduceSubscriber",
                        "range": [
                          2317,
                          2333
                        ],
                        "loc": {
                          "start": {
                            "line": 67,
                            "column": 11
                          },
                          "end": {
                            "line": 67,
                            "column": 27
                          }
                        }
                      },
                      "range": [
                        2310,
                        2334
                      ],
                      "loc": {
                        "start": {
                          "line": 67,
                          "column": 4
                        },
                        "end": {
                          "line": 67,
                          "column": 28
                        }
                      }
                    }
                  ],
                  "range": [
                    1262,
                    2336
                  ],
                  "loc": {
                    "start": {
                      "line": 32,
                      "column": 49
                    },
                    "end": {
                      "line": 68,
                      "column": 1
                    }
                  }
                },
                "generator": false,
                "expression": false,
                "range": [
                  1244,
                  2336
                ],
                "loc": {
                  "start": {
                    "line": 32,
                    "column": 31
                  },
                  "end": {
                    "line": 68,
                    "column": 1
                  }
                }
              },
              "arguments": [
                {
                  "type": "Identifier",
                  "name": "Subscriber",
                  "range": [
                    2337,
                    2347
                  ],
                  "loc": {
                    "start": {
                      "line": 68,
                      "column": 2
                    },
                    "end": {
                      "line": 68,
                      "column": 12
                    }
                  }
                }
              ],
              "range": [
                1244,
                2348
              ],
              "loc": {
                "start": {
                  "line": 32,
                  "column": 31
                },
                "end": {
                  "line": 68,
                  "column": 13
                }
              }
            },
            "range": [
              1224,
              2349
            ],
            "loc": {
              "start": {
                "line": 32,
                "column": 11
              },
              "end": {
                "line": 68,
                "column": 14
              }
            }
          }
        ],
        "kind": "var",
        "range": [
          1220,
          2350
        ],
        "loc": {
          "start": {
            "line": 32,
            "column": 7
          },
          "end": {
            "line": 68,
            "column": 15
          }
        },
        "leadingComments": [
          {
            "type": "Block",
            "value": "*\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n ",
            "range": [
              1121,
              1212
            ],
            "loc": {
              "start": {
                "line": 27,
                "column": 0
              },
              "end": {
                "line": 31,
                "column": 3
              }
            }
          }
        ],
        "trailingComments": [
          {
            "type": "Line",
            "value": "# sourceMappingURL=reduce.js.map",
            "range": [
              2351,
              2385
            ],
            "loc": {
              "start": {
                "line": 69,
                "column": 0
              },
              "end": {
                "line": 69,
                "column": 34
              }
            }
          }
        ]
      },
      "specifiers": [],
      "source": null,
      "range": [
        1213,
        2350
      ],
      "loc": {
        "start": {
          "line": 32,
          "column": 0
        },
        "end": {
          "line": 68,
          "column": 15
        }
      },
      "leadingComments": [
        {
          "type": "Block",
          "value": "*\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n ",
          "range": [
            1121,
            1212
          ],
          "loc": {
            "start": {
              "line": 27,
              "column": 0
            },
            "end": {
              "line": 31,
              "column": 3
            }
          }
        }
      ],
      "trailingComments": [
        {
          "type": "Line",
          "value": "# sourceMappingURL=reduce.js.map",
          "range": [
            2351,
            2385
          ],
          "loc": {
            "start": {
              "line": 69,
              "column": 0
            },
            "end": {
              "line": 69,
              "column": 34
            }
          }
        }
      ]
    }
  ],
  "sourceType": "module",
  "range": [
    0,
    2350
  ],
  "loc": {
    "start": {
      "line": 1,
      "column": 0
    },
    "end": {
      "line": 68,
      "column": 15
    }
  },
  "comments": [
    {
      "type": "Block",
      "value": " tslint:disable:max-line-length ",
      "range": [
        44,
        80
      ],
      "loc": {
        "start": {
          "line": 2,
          "column": 0
        },
        "end": {
          "line": 2,
          "column": 36
        }
      }
    },
    {
      "type": "Line",
      "value": " providing a seed of `undefined` *should* be valid and trigger",
      "range": [
        154,
        218
      ],
      "loc": {
        "start": {
          "line": 5,
          "column": 4
        },
        "end": {
          "line": 5,
          "column": 68
        }
      }
    },
    {
      "type": "Line",
      "value": " hasSeed! so don't use `seed !== undefined` checks!",
      "range": [
        223,
        276
      ],
      "loc": {
        "start": {
          "line": 6,
          "column": 4
        },
        "end": {
          "line": 6,
          "column": 57
        }
      }
    },
    {
      "type": "Line",
      "value": " For this reason, we have to check it here at the original call site",
      "range": [
        281,
        351
      ],
      "loc": {
        "start": {
          "line": 7,
          "column": 4
        },
        "end": {
          "line": 7,
          "column": 74
        }
      }
    },
    {
      "type": "Line",
      "value": " otherwise inside Operator/Subscriber we won't know if `undefined`",
      "range": [
        356,
        424
      ],
      "loc": {
        "start": {
          "line": 8,
          "column": 4
        },
        "end": {
          "line": 8,
          "column": 72
        }
      }
    },
    {
      "type": "Line",
      "value": " means they didn't provide anything or if they literally provided `undefined`",
      "range": [
        429,
        508
      ],
      "loc": {
        "start": {
          "line": 9,
          "column": 4
        },
        "end": {
          "line": 9,
          "column": 83
        }
      }
    },
    {
      "type": "Block",
      "value": "*\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n ",
      "range": [
        1121,
        1212
      ],
      "loc": {
        "start": {
          "line": 27,
          "column": 0
        },
        "end": {
          "line": 31,
          "column": 3
        }
      }
    },
    {
      "type": "Line",
      "value": "# sourceMappingURL=reduce.js.map",
      "range": [
        2351,
        2385
      ],
      "loc": {
        "start": {
          "line": 69,
          "column": 0
        },
        "end": {
          "line": 69,
          "column": 34
        }
      }
    }
  ]
}