{
  "type": "Program",
  "body": [
    {
      "type": "ImportDeclaration",
      "specifiers": [
        {
          "type": "ImportDefaultSpecifier",
          "local": {
            "type": "Identifier",
            "name": "Collector",
            "range": [
              7,
              16
            ],
            "loc": {
              "start": {
                "line": 1,
                "column": 7
              },
              "end": {
                "line": 1,
                "column": 16
              }
            }
          },
          "range": [
            7,
            16
          ],
          "loc": {
            "start": {
              "line": 1,
              "column": 7
            },
            "end": {
              "line": 1,
              "column": 16
            }
          }
        }
      ],
      "source": {
        "type": "Literal",
        "value": "../Collector",
        "raw": "'../Collector'",
        "range": [
          22,
          36
        ],
        "loc": {
          "start": {
            "line": 1,
            "column": 22
          },
          "end": {
            "line": 1,
            "column": 36
          }
        }
      },
      "range": [
        0,
        37
      ],
      "loc": {
        "start": {
          "line": 1,
          "column": 0
        },
        "end": {
          "line": 1,
          "column": 37
        }
      },
      "trailingComments": [
        {
          "type": "Block",
          "value": "*\n * A collector that captures `median`\n *   - The numeric value separating the higher half of the ordered\n *     sample data from the lower half. If n is odd the median is\n *     the center value.  If n is even the median is the average\n *     of the 2 center values.\n ",
          "range": [
            39,
            313
          ],
          "loc": {
            "start": {
              "line": 3,
              "column": 0
            },
            "end": {
              "line": 9,
              "column": 3
            }
          }
        }
      ]
    },
    {
      "type": "ExportDefaultDeclaration",
      "declaration": {
        "type": "ClassDeclaration",
        "id": {
          "type": "Identifier",
          "name": "Median",
          "range": [
            335,
            341
          ],
          "loc": {
            "start": {
              "line": 10,
              "column": 21
            },
            "end": {
              "line": 10,
              "column": 27
            }
          }
        },
        "superClass": {
          "type": "Identifier",
          "name": "Collector",
          "range": [
            350,
            359
          ],
          "loc": {
            "start": {
              "line": 10,
              "column": 36
            },
            "end": {
              "line": 10,
              "column": 45
            }
          }
        },
        "body": {
          "type": "ClassBody",
          "body": [
            {
              "type": "MethodDefinition",
              "key": {
                "type": "Identifier",
                "name": "constructor",
                "range": [
                  364,
                  375
                ],
                "loc": {
                  "start": {
                    "line": 11,
                    "column": 2
                  },
                  "end": {
                    "line": 11,
                    "column": 13
                  }
                }
              },
              "value": {
                "type": "FunctionExpression",
                "id": null,
                "params": [],
                "body": {
                  "type": "BlockStatement",
                  "body": [
                    {
                      "type": "ExpressionStatement",
                      "expression": {
                        "type": "CallExpression",
                        "callee": {
                          "type": "Super",
                          "range": [
                            384,
                            389
                          ],
                          "loc": {
                            "start": {
                              "line": 12,
                              "column": 4
                            },
                            "end": {
                              "line": 12,
                              "column": 9
                            }
                          }
                        },
                        "arguments": [
                          {
                            "type": "Literal",
                            "value": "median",
                            "raw": "'median'",
                            "range": [
                              390,
                              398
                            ],
                            "loc": {
                              "start": {
                                "line": 12,
                                "column": 10
                              },
                              "end": {
                                "line": 12,
                                "column": 18
                              }
                            }
                          },
                          {
                            "type": "Literal",
                            "value": 0,
                            "raw": "0",
                            "range": [
                              400,
                              401
                            ],
                            "loc": {
                              "start": {
                                "line": 12,
                                "column": 20
                              },
                              "end": {
                                "line": 12,
                                "column": 21
                              }
                            }
                          },
                          {
                            "type": "ArrayExpression",
                            "elements": [
                              {
                                "type": "Literal",
                                "value": "valuesSorted",
                                "raw": "'valuesSorted'",
                                "range": [
                                  404,
                                  418
                                ],
                                "loc": {
                                  "start": {
                                    "line": 12,
                                    "column": 24
                                  },
                                  "end": {
                                    "line": 12,
                                    "column": 38
                                  }
                                }
                              }
                            ],
                            "range": [
                              403,
                              419
                            ],
                            "loc": {
                              "start": {
                                "line": 12,
                                "column": 23
                              },
                              "end": {
                                "line": 12,
                                "column": 39
                              }
                            }
                          }
                        ],
                        "range": [
                          384,
                          420
                        ],
                        "loc": {
                          "start": {
                            "line": 12,
                            "column": 4
                          },
                          "end": {
                            "line": 12,
                            "column": 40
                          }
                        }
                      },
                      "range": [
                        384,
                        421
                      ],
                      "loc": {
                        "start": {
                          "line": 12,
                          "column": 4
                        },
                        "end": {
                          "line": 12,
                          "column": 41
                        }
                      }
                    }
                  ],
                  "range": [
                    378,
                    425
                  ],
                  "loc": {
                    "start": {
                      "line": 11,
                      "column": 16
                    },
                    "end": {
                      "line": 13,
                      "column": 3
                    }
                  }
                },
                "generator": false,
                "expression": false,
                "range": [
                  375,
                  425
                ],
                "loc": {
                  "start": {
                    "line": 11,
                    "column": 13
                  },
                  "end": {
                    "line": 13,
                    "column": 3
                  }
                }
              },
              "kind": "constructor",
              "computed": false,
              "range": [
                364,
                425
              ],
              "loc": {
                "start": {
                  "line": 11,
                  "column": 2
                },
                "end": {
                  "line": 13,
                  "column": 3
                }
              },
              "static": false
            },
            {
              "type": "MethodDefinition",
              "key": {
                "type": "Identifier",
                "name": "handleGet",
                "range": [
                  428,
                  437
                ],
                "loc": {
                  "start": {
                    "line": 14,
                    "column": 2
                  },
                  "end": {
                    "line": 14,
                    "column": 11
                  }
                }
              },
              "value": {
                "type": "FunctionExpression",
                "id": null,
                "params": [
                  {
                    "type": "Identifier",
                    "name": "state",
                    "range": [
                      438,
                      443
                    ],
                    "loc": {
                      "start": {
                        "line": 14,
                        "column": 12
                      },
                      "end": {
                        "line": 14,
                        "column": 17
                      }
                    }
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "body": [
                    {
                      "type": "VariableDeclaration",
                      "declarations": [
                        {
                          "type": "VariableDeclarator",
                          "id": {
                            "type": "Identifier",
                            "name": "len",
                            "range": [
                              457,
                              460
                            ],
                            "loc": {
                              "start": {
                                "line": 15,
                                "column": 10
                              },
                              "end": {
                                "line": 15,
                                "column": 13
                              }
                            }
                          },
                          "init": {
                            "type": "MemberExpression",
                            "computed": false,
                            "object": {
                              "type": "MemberExpression",
                              "computed": false,
                              "object": {
                                "type": "Identifier",
                                "name": "state",
                                "range": [
                                  463,
                                  468
                                ],
                                "loc": {
                                  "start": {
                                    "line": 15,
                                    "column": 16
                                  },
                                  "end": {
                                    "line": 15,
                                    "column": 21
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "name": "valuesSorted",
                                "range": [
                                  469,
                                  481
                                ],
                                "loc": {
                                  "start": {
                                    "line": 15,
                                    "column": 22
                                  },
                                  "end": {
                                    "line": 15,
                                    "column": 34
                                  }
                                }
                              },
                              "range": [
                                463,
                                481
                              ],
                              "loc": {
                                "start": {
                                  "line": 15,
                                  "column": 16
                                },
                                "end": {
                                  "line": 15,
                                  "column": 34
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "name": "length",
                              "range": [
                                482,
                                488
                              ],
                              "loc": {
                                "start": {
                                  "line": 15,
                                  "column": 35
                                },
                                "end": {
                                  "line": 15,
                                  "column": 41
                                }
                              }
                            },
                            "range": [
                              463,
                              488
                            ],
                            "loc": {
                              "start": {
                                "line": 15,
                                "column": 16
                              },
                              "end": {
                                "line": 15,
                                "column": 41
                              }
                            }
                          },
                          "range": [
                            457,
                            488
                          ],
                          "loc": {
                            "start": {
                              "line": 15,
                              "column": 10
                            },
                            "end": {
                              "line": 15,
                              "column": 41
                            }
                          }
                        }
                      ],
                      "kind": "const",
                      "range": [
                        451,
                        489
                      ],
                      "loc": {
                        "start": {
                          "line": 15,
                          "column": 4
                        },
                        "end": {
                          "line": 15,
                          "column": 42
                        }
                      }
                    },
                    {
                      "type": "VariableDeclaration",
                      "declarations": [
                        {
                          "type": "VariableDeclarator",
                          "id": {
                            "type": "Identifier",
                            "name": "center",
                            "range": [
                              500,
                              506
                            ],
                            "loc": {
                              "start": {
                                "line": 16,
                                "column": 10
                              },
                              "end": {
                                "line": 16,
                                "column": 16
                              }
                            }
                          },
                          "init": {
                            "type": "CallExpression",
                            "callee": {
                              "type": "MemberExpression",
                              "computed": false,
                              "object": {
                                "type": "Identifier",
                                "name": "Math",
                                "range": [
                                  509,
                                  513
                                ],
                                "loc": {
                                  "start": {
                                    "line": 16,
                                    "column": 19
                                  },
                                  "end": {
                                    "line": 16,
                                    "column": 23
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "name": "floor",
                                "range": [
                                  514,
                                  519
                                ],
                                "loc": {
                                  "start": {
                                    "line": 16,
                                    "column": 24
                                  },
                                  "end": {
                                    "line": 16,
                                    "column": 29
                                  }
                                }
                              },
                              "range": [
                                509,
                                519
                              ],
                              "loc": {
                                "start": {
                                  "line": 16,
                                  "column": 19
                                },
                                "end": {
                                  "line": 16,
                                  "column": 29
                                }
                              }
                            },
                            "arguments": [
                              {
                                "type": "BinaryExpression",
                                "operator": "/",
                                "left": {
                                  "type": "Identifier",
                                  "name": "len",
                                  "range": [
                                    520,
                                    523
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 16,
                                      "column": 30
                                    },
                                    "end": {
                                      "line": 16,
                                      "column": 33
                                    }
                                  }
                                },
                                "right": {
                                  "type": "Literal",
                                  "value": 2,
                                  "raw": "2",
                                  "range": [
                                    526,
                                    527
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 16,
                                      "column": 36
                                    },
                                    "end": {
                                      "line": 16,
                                      "column": 37
                                    }
                                  }
                                },
                                "range": [
                                  520,
                                  527
                                ],
                                "loc": {
                                  "start": {
                                    "line": 16,
                                    "column": 30
                                  },
                                  "end": {
                                    "line": 16,
                                    "column": 37
                                  }
                                }
                              }
                            ],
                            "range": [
                              509,
                              528
                            ],
                            "loc": {
                              "start": {
                                "line": 16,
                                "column": 19
                              },
                              "end": {
                                "line": 16,
                                "column": 38
                              }
                            }
                          },
                          "range": [
                            500,
                            528
                          ],
                          "loc": {
                            "start": {
                              "line": 16,
                              "column": 10
                            },
                            "end": {
                              "line": 16,
                              "column": 38
                            }
                          }
                        }
                      ],
                      "kind": "const",
                      "range": [
                        494,
                        529
                      ],
                      "loc": {
                        "start": {
                          "line": 16,
                          "column": 4
                        },
                        "end": {
                          "line": 16,
                          "column": 39
                        }
                      }
                    },
                    {
                      "type": "IfStatement",
                      "test": {
                        "type": "BinaryExpression",
                        "operator": "!==",
                        "left": {
                          "type": "BinaryExpression",
                          "operator": "%",
                          "left": {
                            "type": "Identifier",
                            "name": "len",
                            "range": [
                              538,
                              541
                            ],
                            "loc": {
                              "start": {
                                "line": 17,
                                "column": 8
                              },
                              "end": {
                                "line": 17,
                                "column": 11
                              }
                            }
                          },
                          "right": {
                            "type": "Literal",
                            "value": 2,
                            "raw": "2",
                            "range": [
                              544,
                              545
                            ],
                            "loc": {
                              "start": {
                                "line": 17,
                                "column": 14
                              },
                              "end": {
                                "line": 17,
                                "column": 15
                              }
                            }
                          },
                          "range": [
                            538,
                            545
                          ],
                          "loc": {
                            "start": {
                              "line": 17,
                              "column": 8
                            },
                            "end": {
                              "line": 17,
                              "column": 15
                            }
                          }
                        },
                        "right": {
                          "type": "Literal",
                          "value": 0,
                          "raw": "0",
                          "range": [
                            550,
                            551
                          ],
                          "loc": {
                            "start": {
                              "line": 17,
                              "column": 20
                            },
                            "end": {
                              "line": 17,
                              "column": 21
                            }
                          }
                        },
                        "range": [
                          538,
                          551
                        ],
                        "loc": {
                          "start": {
                            "line": 17,
                            "column": 8
                          },
                          "end": {
                            "line": 17,
                            "column": 21
                          }
                        }
                      },
                      "consequent": {
                        "type": "BlockStatement",
                        "body": [
                          {
                            "type": "ReturnStatement",
                            "argument": {
                              "type": "MemberExpression",
                              "computed": true,
                              "object": {
                                "type": "MemberExpression",
                                "computed": false,
                                "object": {
                                  "type": "Identifier",
                                  "name": "state",
                                  "range": [
                                    568,
                                    573
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 18,
                                      "column": 13
                                    },
                                    "end": {
                                      "line": 18,
                                      "column": 18
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "name": "valuesSorted",
                                  "range": [
                                    574,
                                    586
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 18,
                                      "column": 19
                                    },
                                    "end": {
                                      "line": 18,
                                      "column": 31
                                    }
                                  }
                                },
                                "range": [
                                  568,
                                  586
                                ],
                                "loc": {
                                  "start": {
                                    "line": 18,
                                    "column": 13
                                  },
                                  "end": {
                                    "line": 18,
                                    "column": 31
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "name": "center",
                                "range": [
                                  587,
                                  593
                                ],
                                "loc": {
                                  "start": {
                                    "line": 18,
                                    "column": 32
                                  },
                                  "end": {
                                    "line": 18,
                                    "column": 38
                                  }
                                }
                              },
                              "range": [
                                568,
                                594
                              ],
                              "loc": {
                                "start": {
                                  "line": 18,
                                  "column": 13
                                },
                                "end": {
                                  "line": 18,
                                  "column": 39
                                }
                              }
                            },
                            "range": [
                              561,
                              595
                            ],
                            "loc": {
                              "start": {
                                "line": 18,
                                "column": 6
                              },
                              "end": {
                                "line": 18,
                                "column": 40
                              }
                            }
                          }
                        ],
                        "range": [
                          553,
                          601
                        ],
                        "loc": {
                          "start": {
                            "line": 17,
                            "column": 23
                          },
                          "end": {
                            "line": 19,
                            "column": 5
                          }
                        }
                      },
                      "alternate": {
                        "type": "BlockStatement",
                        "body": [
                          {
                            "type": "ReturnStatement",
                            "argument": {
                              "type": "BinaryExpression",
                              "operator": "/",
                              "left": {
                                "type": "BinaryExpression",
                                "operator": "+",
                                "left": {
                                  "type": "MemberExpression",
                                  "computed": true,
                                  "object": {
                                    "type": "MemberExpression",
                                    "computed": false,
                                    "object": {
                                      "type": "Identifier",
                                      "name": "state",
                                      "range": [
                                        623,
                                        628
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 20,
                                          "column": 14
                                        },
                                        "end": {
                                          "line": 20,
                                          "column": 19
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "name": "valuesSorted",
                                      "range": [
                                        629,
                                        641
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 20,
                                          "column": 20
                                        },
                                        "end": {
                                          "line": 20,
                                          "column": 32
                                        }
                                      }
                                    },
                                    "range": [
                                      623,
                                      641
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 20,
                                        "column": 14
                                      },
                                      "end": {
                                        "line": 20,
                                        "column": 32
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "BinaryExpression",
                                    "operator": "-",
                                    "left": {
                                      "type": "Identifier",
                                      "name": "center",
                                      "range": [
                                        642,
                                        648
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 20,
                                          "column": 33
                                        },
                                        "end": {
                                          "line": 20,
                                          "column": 39
                                        }
                                      }
                                    },
                                    "right": {
                                      "type": "Literal",
                                      "value": 1,
                                      "raw": "1",
                                      "range": [
                                        651,
                                        652
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 20,
                                          "column": 42
                                        },
                                        "end": {
                                          "line": 20,
                                          "column": 43
                                        }
                                      }
                                    },
                                    "range": [
                                      642,
                                      652
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 20,
                                        "column": 33
                                      },
                                      "end": {
                                        "line": 20,
                                        "column": 43
                                      }
                                    }
                                  },
                                  "range": [
                                    623,
                                    653
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 20,
                                      "column": 14
                                    },
                                    "end": {
                                      "line": 20,
                                      "column": 44
                                    }
                                  }
                                },
                                "right": {
                                  "type": "MemberExpression",
                                  "computed": true,
                                  "object": {
                                    "type": "MemberExpression",
                                    "computed": false,
                                    "object": {
                                      "type": "Identifier",
                                      "name": "state",
                                      "range": [
                                        656,
                                        661
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 20,
                                          "column": 47
                                        },
                                        "end": {
                                          "line": 20,
                                          "column": 52
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "name": "valuesSorted",
                                      "range": [
                                        662,
                                        674
                                      ],
                                      "loc": {
                                        "start": {
                                          "line": 20,
                                          "column": 53
                                        },
                                        "end": {
                                          "line": 20,
                                          "column": 65
                                        }
                                      }
                                    },
                                    "range": [
                                      656,
                                      674
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 20,
                                        "column": 47
                                      },
                                      "end": {
                                        "line": 20,
                                        "column": 65
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "name": "center",
                                    "range": [
                                      675,
                                      681
                                    ],
                                    "loc": {
                                      "start": {
                                        "line": 20,
                                        "column": 66
                                      },
                                      "end": {
                                        "line": 20,
                                        "column": 72
                                      }
                                    }
                                  },
                                  "range": [
                                    656,
                                    682
                                  ],
                                  "loc": {
                                    "start": {
                                      "line": 20,
                                      "column": 47
                                    },
                                    "end": {
                                      "line": 20,
                                      "column": 73
                                    }
                                  }
                                },
                                "range": [
                                  623,
                                  682
                                ],
                                "loc": {
                                  "start": {
                                    "line": 20,
                                    "column": 14
                                  },
                                  "end": {
                                    "line": 20,
                                    "column": 73
                                  }
                                }
                              },
                              "right": {
                                "type": "Literal",
                                "value": 2,
                                "raw": "2",
                                "range": [
                                  686,
                                  687
                                ],
                                "loc": {
                                  "start": {
                                    "line": 20,
                                    "column": 77
                                  },
                                  "end": {
                                    "line": 20,
                                    "column": 78
                                  }
                                }
                              },
                              "range": [
                                622,
                                687
                              ],
                              "loc": {
                                "start": {
                                  "line": 20,
                                  "column": 13
                                },
                                "end": {
                                  "line": 20,
                                  "column": 78
                                }
                              }
                            },
                            "range": [
                              615,
                              688
                            ],
                            "loc": {
                              "start": {
                                "line": 20,
                                "column": 6
                              },
                              "end": {
                                "line": 20,
                                "column": 79
                              }
                            }
                          }
                        ],
                        "range": [
                          607,
                          694
                        ],
                        "loc": {
                          "start": {
                            "line": 19,
                            "column": 11
                          },
                          "end": {
                            "line": 21,
                            "column": 5
                          }
                        }
                      },
                      "range": [
                        534,
                        694
                      ],
                      "loc": {
                        "start": {
                          "line": 17,
                          "column": 4
                        },
                        "end": {
                          "line": 21,
                          "column": 5
                        }
                      }
                    }
                  ],
                  "range": [
                    445,
                    698
                  ],
                  "loc": {
                    "start": {
                      "line": 14,
                      "column": 19
                    },
                    "end": {
                      "line": 22,
                      "column": 3
                    }
                  }
                },
                "generator": false,
                "expression": false,
                "range": [
                  437,
                  698
                ],
                "loc": {
                  "start": {
                    "line": 14,
                    "column": 11
                  },
                  "end": {
                    "line": 22,
                    "column": 3
                  }
                }
              },
              "kind": "method",
              "computed": false,
              "range": [
                428,
                698
              ],
              "loc": {
                "start": {
                  "line": 14,
                  "column": 2
                },
                "end": {
                  "line": 22,
                  "column": 3
                }
              },
              "static": false
            }
          ],
          "range": [
            360,
            700
          ],
          "loc": {
            "start": {
              "line": 10,
              "column": 46
            },
            "end": {
              "line": 23,
              "column": 1
            }
          }
        },
        "range": [
          329,
          700
        ],
        "loc": {
          "start": {
            "line": 10,
            "column": 15
          },
          "end": {
            "line": 23,
            "column": 1
          }
        },
        "leadingComments": [
          {
            "type": "Block",
            "value": "*\n * A collector that captures `median`\n *   - The numeric value separating the higher half of the ordered\n *     sample data from the lower half. If n is odd the median is\n *     the center value.  If n is even the median is the average\n *     of the 2 center values.\n ",
            "range": [
              39,
              313
            ],
            "loc": {
              "start": {
                "line": 3,
                "column": 0
              },
              "end": {
                "line": 9,
                "column": 3
              }
            }
          }
        ],
        "trailingComments": []
      },
      "range": [
        314,
        700
      ],
      "loc": {
        "start": {
          "line": 10,
          "column": 0
        },
        "end": {
          "line": 23,
          "column": 1
        }
      },
      "leadingComments": [
        {
          "type": "Block",
          "value": "*\n * A collector that captures `median`\n *   - The numeric value separating the higher half of the ordered\n *     sample data from the lower half. If n is odd the median is\n *     the center value.  If n is even the median is the average\n *     of the 2 center values.\n ",
          "range": [
            39,
            313
          ],
          "loc": {
            "start": {
              "line": 3,
              "column": 0
            },
            "end": {
              "line": 9,
              "column": 3
            }
          }
        }
      ]
    }
  ],
  "sourceType": "module",
  "range": [
    0,
    700
  ],
  "loc": {
    "start": {
      "line": 1,
      "column": 0
    },
    "end": {
      "line": 23,
      "column": 1
    }
  },
  "comments": [
    {
      "type": "Block",
      "value": "*\n * A collector that captures `median`\n *   - The numeric value separating the higher half of the ordered\n *     sample data from the lower half. If n is odd the median is\n *     the center value.  If n is even the median is the average\n *     of the 2 center values.\n ",
      "range": [
        39,
        313
      ],
      "loc": {
        "start": {
          "line": 3,
          "column": 0
        },
        "end": {
          "line": 9,
          "column": 3
        }
      }
    }
  ]
}