  
    while (!do_exit) {
      sm.update();
      if (filterInitialized){
        for (const char* service : service_list) {
          if (sm.updated(service) && sm.valid(service)){
            const cereal::Event::Reader log = sm[service];
            this->handle_msg(log);
          }
        }
 
</s> remove       bool inputsOK = sm.allAliveAndValid();
      bool gpsOK = this->isGpsOK();
 </s> add       bool inputsOK = sm.allAliveAndValid() && this->are_inputs_ok();
      bool gpsOK = this->is_gps_ok();
      this->observation_timings_invalid_reset();
  
    while (!do_exit) {
      sm.update();
      if (filterInitialized){
      this->observation_timings_invalid_reset();
        for (const char* service : service_list) {
          if (sm.updated(service) && sm.valid(service)){
            const cereal::Event::Reader log = sm[service];
            this->handle_msg(log);
          }
        }
keep keep keep add keep keep 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