          if not data:
              logger.debug("No data to cache")
              return
  
          timestamps, loss = self._to_numpy(data, len(labels), is_live)
  
          if not is_live or (is_live and session_id not in self._data):
              self._data[session_id] = dict(labels=labels,
                                            loss=zlib.compress(loss),
                                            loss_shape=loss.shape,
 
</s> remove         times, loss = self._process_data(data, times, loss, length_loss, is_live)
 </s> add         times, loss = self._process_data(data, times, loss, is_live) </s> remove     def _process_data(self, data, timestamps, loss, length_loss, is_live):
 </s> add     def _process_data(self, data, timestamps, loss, is_live): </s> remove         if len(loss[-1]) != length_loss:
 </s> add         if len(loss[-1]) != len(self._loss_labels): </s> remove                 logger.debug("Setting carried over data: %s", data)
 </s> add                 logger.debug("Setting carried over data: %s", data[idx])
        if labels:
            logger.debug("Setting loss labels: %s", labels)
            self._loss_labels = labels

        timestamps, loss = self._to_numpy(data, is_live)
          if not data:
              logger.debug("No data to cache")
              return
  
        if labels:
            logger.debug("Setting loss labels: %s", labels)
            self._loss_labels = labels

        timestamps, loss = self._to_numpy(data, is_live)
  
          if not is_live or (is_live and session_id not in self._data):
              self._data[session_id] = dict(labels=labels,
                                            loss=zlib.compress(loss),
                                            loss_shape=loss.shape,
keep keep keep keep replace keep keep keep keep keep
 GUI - Analysis Bugfix
   - Get correct length of loss labels when carrying over raw data 
lib/gui/analysis/event_reader.py