                     "action": actioncommand,
                     "generate": generatecommand,
                     "consoleclear": consoleclear,
                     "refreshgraph": refreshgraph,
                     "updatepreview": updatepreview}
          logger.debug(tk_vars)
          return tk_vars
  
      def load(self, command=None, filename=None):
          """ Pop up load dialog for a saved config file """
 
</s> remove                 child.kill()
            _, alive = psutil.wait_procs(alive, timeout=10)
            if not alive:
                logger.debug("Killed")
                print("Killed")
            else:
                for child in alive:
                    msg = "Process {} survived SIGKILL. Giving up".format(child)
                    logger.debug(msg)
                    print(msg)
 </s> add                 msg = "Process {} survived SIGKILL. Giving up".format(child)
                logger.debug(msg)
                print(msg) </s> remove             logger.debug("Termination timed out. Killing Process...")
            print("Termination timed out. Killing Process...")
 </s> add     @staticmethod
    def terminate_all_children():
        """ Terminates all children """
        logger.debug("Terminating Process...")
        print("Terminating Process...", flush=True)
        children = psutil.Process().children(recursive=True)
        for child in children:
            child.terminate()
        _, alive = psutil.wait_procs(children, timeout=10)
        if not alive:
            logger.debug("Terminated")
            print("Terminated")
            return

        logger.debug("Termination timed out. Killing Process...")
        print("Termination timed out. Killing Process...", flush=True)
        for child in alive:
            child.kill()
        _, alive = psutil.wait_procs(alive, timeout=10)
        if not alive:
            logger.debug("Killed")
            print("Killed")
        else: </s> remove             except ValueError as err:
                logger.error("Error terminating process", exc_info=True)
                print(err)
 </s> add  </s> remove             logger.debug("Terminating Process...")
            print("Terminating Process...")
            children = psutil.Process().children(recursive=True)
            for child in children:
                child.terminate()
            _, alive = psutil.wait_procs(children, timeout=10)
            if not alive:
                logger.debug("Terminated")
                print("Terminated")
                return
 </s> add             self.terminate_all_children()
                   "updatepreview": updatepreview,
                   "traintimeout": traintimeout}
                     "action": actioncommand,
                     "generate": generatecommand,
                     "consoleclear": consoleclear,
                     "refreshgraph": refreshgraph,
                   "updatepreview": updatepreview,
                   "traintimeout": traintimeout}
          logger.debug(tk_vars)
          return tk_vars
  
      def load(self, command=None, filename=None):
          """ Pop up load dialog for a saved config file """
keep keep keep keep replace keep keep keep keep keep
 Add timeout slider to train tab. Terminate properly on timeout 
lib/gui/utils.py