                ("Patreon - Support this project", "https://www.patreon.com/faceswap"),
                ("Discord - The FaceSwap Discord server", "https://discord.gg/VasFUAy"),
                ("Github - Our Source Code", "https://github.com/deepfakes/faceswap")]
  
  _CONFIG_FILES = []
  _CONFIGS = dict()
  _WORKING_DIR = os.path.dirname(os.path.realpath(sys.argv[0]))
  
  
  logger = logging.getLogger(__name__)  # pylint: disable=invalid-name
  
 
</s> remove from .popup_configure import popup_config
 </s> add from .popup_configure import open_popup </s> remove POPUP = dict()
 </s> add _POPUP = []
_CONFIG_FILES = []
_CONFIGS = dict() </s> remove def popup_config(name, configuration):
    """ Open the settings for the requested configuration file and close any already active
    pop-ups.
 </s> add class _State():
    """ Holds the existing config files and the current state of the popup window. """
    def __init__(self):
        self._popup = None
        # The GUI Config cannot be scanned until GUI is launched, so this is populated
        # on the first call to load the settings
        self._configs = dict() </s> remove     def scan_for_plugin_configs(self):
        """ Scan for config.ini file locations """
        global _CONFIGS, _CONFIG_FILES  # pylint:disable=global-statement
        root_path = os.path.abspath(os.path.dirname(sys.argv[0]))
        plugins_path = os.path.join(root_path, "plugins")
        logger.debug("Scanning path: '%s'", plugins_path)
        configs = dict()
        for dirpath, _, filenames in os.walk(plugins_path):
            if "_config.py" in filenames:
                plugin_type = os.path.split(dirpath)[-1]
                config = self.load_config(plugin_type)
                configs[plugin_type] = config
        logger.debug("Configs loaded: %s", sorted(list(configs.keys())))
        keys = list(configs.keys())
        for key in ("extract", "train", "convert"):
            if key in keys:
                _CONFIG_FILES.append(keys.pop(keys.index(key)))
        _CONFIG_FILES.extend([key for key in sorted(keys)])
        _CONFIGS = configs
        return configs

    @staticmethod
    def load_config(plugin_type):
        """ Load the config to generate config file if it doesn't exist and get filename """
        # Load config to generate default if doesn't exist
        mod = ".".join(("plugins", plugin_type, "_config"))
        module = import_module(mod)
        config = module.Config(None)
        logger.debug("Found '%s' config at '%s'", plugin_type, config.configfile)
        return config

 </s> add 
                ("Patreon - Support this project", "https://www.patreon.com/faceswap"),
                ("Discord - The FaceSwap Discord server", "https://discord.gg/VasFUAy"),
                ("Github - Our Source Code", "https://github.com/deepfakes/faceswap")]
  


  _WORKING_DIR = os.path.dirname(os.path.realpath(sys.argv[0]))
  
  
  logger = logging.getLogger(__name__)  # pylint: disable=invalid-name
  
keep keep keep keep replace replace keep keep keep keep keep
 GUI: Consolidate settings to single menu 
lib/gui/menu.py