                  if process.poll() is not None:
                      break
                  if timeelapsed > timeout:
                      logger.error("Timeout reached sending Exit Signal")
                      self.terminate_all_children()
          else:
              self.terminate_all_children()
          return True
  
      @staticmethod
 
</s> remove             self.terminate_all_children()
 </s> add             self._terminate_all_children() </s> remove     @staticmethod
    def generate_windows_keypress(character):
        """ Generate an 'Enter' key press to terminate Windows training """
 </s> add     @classmethod
    def _generate_windows_keypress(cls, character: str) -> bytes:
        """ Generate a Windows keypress

        Parameters
        ----------
        character: str
            The caracter to generate the keypress for

        Returns
        -------
        bytes
            The generated Windows keypress
        """ </s> remove             if output == "" and self.process.poll() is not None:
 </s> add             if output == "" and self._process.poll() is not None: </s> remove             timeout = self.config.user_config_dict.get("timeout", 120)
 </s> add             timeout = self._config.user_config_dict.get("timeout", 120) </s> remove             if output == "" and self.process.poll() is not None:
 </s> add             if output == "" and self._process.poll() is not None:
                    self._terminate_all_children()
                  if process.poll() is not None:
                      break
                  if timeelapsed > timeout:
                      logger.error("Timeout reached sending Exit Signal")
                    self._terminate_all_children()
          else:
              self.terminate_all_children()
          return True
  
      @staticmethod
keep keep keep keep replace keep keep keep keep keep
 bugfix: GUI force stdout/stderr reading to utf-8 
lib/gui/wrapper.py