    return this->kf->get_P().diagonal().array().sqrt();
  }
  
  void Localizer::handle_sensor(double current_time, const cereal::SensorEventData::Reader& log) {
    // TODO does not yet account for double sensor readings in the log
  
    // Ignore empty readings (e.g. in case the magnetometer had no data ready)
 
</s> remove bool Localizer::isGpsOK() {
 </s> add bool Localizer::is_gps_ok() {
bool Localizer::are_inputs_ok() {
  return this->critical_services_valid(this->observation_values_invalid) && !this->observation_timings_invalid;
}

void Localizer::observation_timings_invalid_reset(){
  this->observation_timings_invalid = false;
}

    return this->kf->get_P().diagonal().array().sqrt();
  }
  
bool Localizer::are_inputs_ok() {
  return this->critical_services_valid(this->observation_values_invalid) && !this->observation_timings_invalid;
}

void Localizer::observation_timings_invalid_reset(){
  this->observation_timings_invalid = false;
}

  void Localizer::handle_sensor(double current_time, const cereal::SensorEventData::Reader& log) {
    // TODO does not yet account for double sensor readings in the log
  
    // Ignore empty readings (e.g. in case the magnetometer had no data ready)
keep keep add keep keep keep keep
 [locationd] Add input checks (#26460)

* add input checks with same decay as reset_tracker

* add observation timings check

* typo

* bugfix

* improve offline locationd visibility

* sbugfix offline lld

Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com> 
selfdrive/locationd/locationd.cc