SEBWIN-491: Implemented basic display configuration monitoring.
This commit is contained in:
parent
b456f0821f
commit
d3bfe958aa
28 changed files with 708 additions and 154 deletions
|
@ -514,6 +514,21 @@ namespace SafeExamBrowser.Client
|
|||
actionCenter.InitializeBounds();
|
||||
taskbar.InitializeBounds();
|
||||
logger.Info("Desktop successfully restored.");
|
||||
|
||||
if (!displayMonitor.IsAllowedConfiguration(Settings.Display))
|
||||
{
|
||||
var continueOption = new LockScreenOption { Text = text.Get(TextKey.LockScreen_DisplayConfigurationContinueOption) };
|
||||
var terminateOption = new LockScreenOption { Text = text.Get(TextKey.LockScreen_DisplayConfigurationTerminateOption) };
|
||||
var message = text.Get(TextKey.LockScreen_DisplayConfigurationMessage);
|
||||
var title = text.Get(TextKey.LockScreen_Title);
|
||||
var result = ShowLockScreen(message, title, new[] { continueOption, terminateOption });
|
||||
|
||||
if (result.OptionId == terminateOption.Id)
|
||||
{
|
||||
logger.Info("Attempting to shutdown as requested by the user...");
|
||||
TryRequestShutdown();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void Operations_ActionRequired(ActionRequiredEventArgs args)
|
||||
|
|
|
@ -20,6 +20,7 @@ namespace SafeExamBrowser.Configuration.ConfigurationData
|
|||
new AudioDataMapper(),
|
||||
new BrowserDataMapper(),
|
||||
new ConfigurationFileDataMapper(),
|
||||
new DisplayDataMapper(),
|
||||
new GeneralDataMapper(),
|
||||
new InputDataMapper(),
|
||||
new ProctoringDataMapper(),
|
||||
|
|
|
@ -0,0 +1,55 @@
|
|||
/*
|
||||
* Copyright (c) 2021 ETH Zürich, Educational Development and Technology (LET)
|
||||
*
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
*/
|
||||
|
||||
using SafeExamBrowser.Settings;
|
||||
|
||||
namespace SafeExamBrowser.Configuration.ConfigurationData.DataMapping
|
||||
{
|
||||
internal class DisplayDataMapper : BaseDataMapper
|
||||
{
|
||||
internal override void Map(string key, object value, AppSettings settings)
|
||||
{
|
||||
switch (key)
|
||||
{
|
||||
case Keys.Display.AllowedDisplays:
|
||||
MapAllowedDisplays(settings, value);
|
||||
break;
|
||||
case Keys.Display.IgnoreError:
|
||||
MapIgnoreError(settings, value);
|
||||
break;
|
||||
case Keys.Display.InternalDisplayOnly:
|
||||
MapInternalDisplayOnly(settings, value);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void MapAllowedDisplays(AppSettings settings, object value)
|
||||
{
|
||||
if (value is int count)
|
||||
{
|
||||
settings.Display.AllowedDisplays = count;
|
||||
}
|
||||
}
|
||||
|
||||
private void MapIgnoreError(AppSettings settings, object value)
|
||||
{
|
||||
if (value is bool ignore)
|
||||
{
|
||||
settings.Display.IgnoreError = ignore;
|
||||
}
|
||||
}
|
||||
|
||||
private void MapInternalDisplayOnly(AppSettings settings, object value)
|
||||
{
|
||||
if (value is bool internalOnly)
|
||||
{
|
||||
settings.Display.InternalDisplayOnly = internalOnly;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -150,6 +150,10 @@ namespace SafeExamBrowser.Configuration.ConfigurationData
|
|||
|
||||
settings.ConfigurationMode = ConfigurationMode.Exam;
|
||||
|
||||
settings.Display.AllowedDisplays = 1;
|
||||
settings.Display.IgnoreError = false;
|
||||
settings.Display.InternalDisplayOnly = false;
|
||||
|
||||
settings.Keyboard.AllowAltEsc = false;
|
||||
settings.Keyboard.AllowAltF4 = false;
|
||||
settings.Keyboard.AllowAltTab = true;
|
||||
|
|
|
@ -170,6 +170,13 @@ namespace SafeExamBrowser.Configuration.ConfigurationData
|
|||
internal const string SessionMode = "sebMode";
|
||||
}
|
||||
|
||||
internal static class Display
|
||||
{
|
||||
internal const string AllowedDisplays = "allowedDisplaysMaxNumber";
|
||||
internal const string IgnoreError = "allowedDisplaysIgnoreFailure";
|
||||
internal const string InternalDisplayOnly = "allowedDisplayBuiltinEnforce";
|
||||
}
|
||||
|
||||
internal static class General
|
||||
{
|
||||
internal const string LogLevel = "logLevel";
|
||||
|
|
|
@ -60,6 +60,7 @@
|
|||
<Compile Include="ConfigurationData\DataMapping\AudioDataMapper.cs" />
|
||||
<Compile Include="ConfigurationData\DataMapping\BrowserDataMapper.cs" />
|
||||
<Compile Include="ConfigurationData\DataMapping\ConfigurationFileDataMapper.cs" />
|
||||
<Compile Include="ConfigurationData\DataMapping\DisplayDataMapper.cs" />
|
||||
<Compile Include="ConfigurationData\DataMapping\GeneralDataMapper.cs" />
|
||||
<Compile Include="ConfigurationData\DataMapping\BaseDataMapper.cs" />
|
||||
<Compile Include="ConfigurationData\DataMapping\InputDataMapper.cs" />
|
||||
|
|
|
@ -52,6 +52,9 @@ namespace SafeExamBrowser.I18n.Contracts
|
|||
LockScreen_ApplicationsAllowOption,
|
||||
LockScreen_ApplicationsMessage,
|
||||
LockScreen_ApplicationsTerminateOption,
|
||||
LockScreen_DisplayConfigurationContinueOption,
|
||||
LockScreen_DisplayConfigurationTerminateOption,
|
||||
LockScreen_DisplayConfigurationMessage,
|
||||
LockScreen_UserSessionContinueOption,
|
||||
LockScreen_UserSessionMessage,
|
||||
LockScreen_UserSessionTerminateOption,
|
||||
|
@ -95,6 +98,8 @@ namespace SafeExamBrowser.I18n.Contracts
|
|||
MessageBox_InvalidUnlockPassword,
|
||||
MessageBox_InvalidUnlockPasswordTitle,
|
||||
MessageBox_NoButton,
|
||||
MessageBox_DisplayConfigurationError,
|
||||
MessageBox_DisplayConfigurationErrorTitle,
|
||||
MessageBox_NotSupportedConfigurationResource,
|
||||
MessageBox_NotSupportedConfigurationResourceTitle,
|
||||
MessageBox_OkButton,
|
||||
|
@ -163,6 +168,7 @@ namespace SafeExamBrowser.I18n.Contracts
|
|||
OperationStatus_TerminateBrowser,
|
||||
OperationStatus_TerminateProctoring,
|
||||
OperationStatus_TerminateShell,
|
||||
OperationStatus_ValidateDisplayConfiguration,
|
||||
OperationStatus_ValidateRemoteSessionPolicy,
|
||||
OperationStatus_ValidateVirtualMachinePolicy,
|
||||
OperationStatus_WaitDisclaimerConfirmation,
|
||||
|
|
|
@ -114,6 +114,15 @@
|
|||
<Entry key="LockScreen_ApplicationsTerminateOption">
|
||||
Safe Exam Browser beenden. WARNUNG: Sie werden keine Möglichkeit haben, Daten zu speichern oder weitere Aktionen auszuführen, SEB wird sofort beendet!
|
||||
</Entry>
|
||||
<Entry key="LockScreen_DisplayConfigurationContinueOption">
|
||||
Bildschirm-Konfiguration temporär erlauben. Dies gilt nur für die momentan laufende Sitzung!
|
||||
</Entry>
|
||||
<Entry key="LockScreen_DisplayConfigurationTerminateOption">
|
||||
Safe Exam Browser beenden. WARNUNG: Sie werden keine Möglichkeit haben, Daten zu speichern oder weitere Aktionen auszuführen, SEB wird sofort beendet!
|
||||
</Entry>
|
||||
<Entry key="LockScreen_DisplayConfigurationMessage">
|
||||
Eine verbotene Bildschirm-Konfiguration wurde detektiert. Bitte wählen Sie eine der verfügbaren Optionen aus und geben Sie das korrekte Passwort ein, um SEB zu entsperren.
|
||||
</Entry>
|
||||
<Entry key="LockScreen_Title">
|
||||
SEB GESPERRT
|
||||
</Entry>
|
||||
|
@ -210,6 +219,12 @@
|
|||
<Entry key="MessageBox_ConfigurationDownloadErrorTitle">
|
||||
Fehler beim Herunterladen
|
||||
</Entry>
|
||||
<Entry key="MessageBox_DisplayConfigurationError">
|
||||
Die aktive Bildschirm-Konfiguration ist nicht erlaubt! Bitte konsultieren Sie das Applikations-Protokoll für mehr Informationen. SEB wird sich nun beenden...
|
||||
</Entry>
|
||||
<Entry key="MessageBox_DisplayConfigurationErrorTitle">
|
||||
Verbotene Bildschirm-Konfiguration
|
||||
</Entry>
|
||||
<Entry key="MessageBox_InvalidConfigurationData">
|
||||
Die Konfigurations-Ressource "%%URI%%" enthält ungültige Daten!
|
||||
</Entry>
|
||||
|
@ -447,6 +462,9 @@
|
|||
<Entry key="OperationStatus_TerminateShell">
|
||||
Beende Benutzeroberfläche
|
||||
</Entry>
|
||||
<Entry key="OperationStatus_ValidateDisplayConfiguration">
|
||||
Validiere Richtlinie für Bildschirm-Konfiguration
|
||||
</Entry>
|
||||
<Entry key="OperationStatus_ValidateRemoteSessionPolicy">
|
||||
Validiere Richtlinie für Remote-Sitzungen
|
||||
</Entry>
|
||||
|
|
|
@ -114,6 +114,15 @@
|
|||
<Entry key="LockScreen_ApplicationsTerminateOption">
|
||||
Terminate Safe Exam Browser. WARNING: There will be no possibility to save data or perform any further actions, the shutdown will be initiated immediately!
|
||||
</Entry>
|
||||
<Entry key="LockScreen_DisplayConfigurationContinueOption">
|
||||
Temporarily allow the display configuration. This applies only to the currently running session!
|
||||
</Entry>
|
||||
<Entry key="LockScreen_DisplayConfigurationTerminateOption">
|
||||
Terminate Safe Exam Browser. WARNING: There will be no possibility to save data or perform any further actions, the shutdown will be initiated immediately!
|
||||
</Entry>
|
||||
<Entry key="LockScreen_DisplayConfigurationMessage">
|
||||
A prohibited display configuration has been detected. In order to unlock SEB, please select one of the available options and enter the correct unlock password.
|
||||
</Entry>
|
||||
<Entry key="LockScreen_Title">
|
||||
SEB LOCKED
|
||||
</Entry>
|
||||
|
@ -210,6 +219,12 @@
|
|||
<Entry key="MessageBox_ConfigurationDownloadErrorTitle">
|
||||
Download Error
|
||||
</Entry>
|
||||
<Entry key="MessageBox_DisplayConfigurationError">
|
||||
The active display configuration is not permitted. Please consult the log files for more information. SEB will now shut down...
|
||||
</Entry>
|
||||
<Entry key="MessageBox_DisplayConfigurationErrorTitle">
|
||||
Prohibited Display Configuration
|
||||
</Entry>
|
||||
<Entry key="MessageBox_InvalidConfigurationData">
|
||||
The configuration resource "%%URI%%" contains invalid data!
|
||||
</Entry>
|
||||
|
@ -447,6 +462,9 @@
|
|||
<Entry key="OperationStatus_TerminateShell">
|
||||
Terminating user interface
|
||||
</Entry>
|
||||
<Entry key="OperationStatus_ValidateDisplayConfiguration">
|
||||
Validating display configuration policy
|
||||
</Entry>
|
||||
<Entry key="OperationStatus_ValidateRemoteSessionPolicy">
|
||||
Validating remote session policy
|
||||
</Entry>
|
||||
|
|
|
@ -58,7 +58,7 @@
|
|||
Annuler
|
||||
</Entry>
|
||||
<Entry key="ExamSelectionDialog_Message">
|
||||
Veuillez sélectionner l'un des examens disponibles sur le serveur SEB :
|
||||
Veuillez sélectionner l'un des examens disponibles sur le serveur SEB:
|
||||
</Entry>
|
||||
<Entry key="ExamSelectionDialog_Select">
|
||||
Selection
|
||||
|
@ -70,10 +70,10 @@
|
|||
Annuler
|
||||
</Entry>
|
||||
<Entry key="FileSystemDialog_LoadError">
|
||||
Echec du chargement des données !
|
||||
Echec du chargement des données!
|
||||
</Entry>
|
||||
<Entry key="FileSystemDialog_Loading">
|
||||
Chargement …
|
||||
Chargement...
|
||||
</Entry>
|
||||
<Entry key="FileSystemDialog_OpenFileMessage">
|
||||
Veuillez sélectionner un fichier à ouvrir.
|
||||
|
@ -82,13 +82,13 @@
|
|||
Veuillez sélectionner un dossier.
|
||||
</Entry>
|
||||
<Entry key="FileSystemDialog_OverwriteWarning">
|
||||
Le fichier sélectionné existe déjà ! Voulez-vous vraiment le remplacer ?
|
||||
Le fichier sélectionné existe déjà ! Voulez-vous vraiment le remplacer?
|
||||
</Entry>
|
||||
<Entry key="FileSystemDialog_OverwriteWarningTitle">
|
||||
Remplacer ?
|
||||
Remplacer?
|
||||
</Entry>
|
||||
<Entry key="FileSystemDialog_SaveAs">
|
||||
Enregistrer sous :
|
||||
Enregistrer sous:
|
||||
</Entry>
|
||||
<Entry key="FileSystemDialog_SaveFileMessage">
|
||||
Veuillez sélectionner un emplacement pour enregistrer le fichier.
|
||||
|
@ -103,16 +103,25 @@
|
|||
Accès au système de fichiers
|
||||
</Entry>
|
||||
<Entry key="FolderDialog_ApplicationLocation">
|
||||
L'application "%%NAME%%" n'a pas pu être trouvée sur le système ! Veuillez localiser le dossier contenant l'exécutable principal "%%EXECUTABLE%%".
|
||||
L'application "%%NAME%%" n'a pas pu être trouvée sur le système! Veuillez localiser le dossier contenant l'exécutable principal "%%EXECUTABLE%%".
|
||||
</Entry>
|
||||
<Entry key="LockScreen_ApplicationsAllowOption">
|
||||
Autoriser temporairement les applications figurant sur la liste noire. Cela ne s'applique qu'aux instances et à la session en cours !
|
||||
Autoriser temporairement les applications figurant sur la liste noire. Cela ne s'applique qu'aux instances et à la session en cours!
|
||||
</Entry>
|
||||
<Entry key="LockScreen_ApplicationsMessage">
|
||||
Les applications sur liste noire énumérées ci-dessous ont été lancées et n’ont pas pu être automatiquement supprimées ! Afin de débloquer SEB, veuillez sélectionner l'une des options disponibles et entrer le mot de passe de déblocage.
|
||||
Les applications sur liste noire énumérées ci-dessous ont été lancées et n’ont pas pu être automatiquement supprimées! Afin de débloquer SEB, veuillez sélectionner l'une des options disponibles et entrer le mot de passe de déblocage.
|
||||
</Entry>
|
||||
<Entry key="LockScreen_ApplicationsTerminateOption">
|
||||
Terminer Safe Exam Browser. AVERTISSEMENT : Il n'y aura pas de possibilité de sauvegarder les données ou d'effectuer d'autres actions, l'arrêt sera déclenché immédiatement !
|
||||
Terminer Safe Exam Browser. AVERTISSEMENT: Il n'y aura pas de possibilité de sauvegarder les données ou d'effectuer d'autres actions, l'arrêt sera déclenché immédiatement!
|
||||
</Entry>
|
||||
<Entry key="LockScreen_DisplayConfigurationContinueOption">
|
||||
Autoriser temporairement la configuration de l'affichage. Ceci s'applique uniquement à la session en cours!
|
||||
</Entry>
|
||||
<Entry key="LockScreen_DisplayConfigurationTerminateOption">
|
||||
Terminez le navigateur Safe Exam. AVERTISSEMENT: Il n'y aura aucune possibilité de sauvegarder des données ou d'effectuer d'autres actions, l'arrêt sera déclenché immédiatement!
|
||||
</Entry>
|
||||
<Entry key="LockScreen_DisplayConfigurationMessage">
|
||||
Une configuration d'affichage interdite a été détectée. Pour déverrouiller SEB, veuillez sélectionner l'une des options disponibles et saisir le mot de passe de déverrouillage correct.
|
||||
</Entry>
|
||||
<Entry key="LockScreen_Title">
|
||||
SEB VEROUILLE
|
||||
|
@ -124,10 +133,10 @@
|
|||
Dévérouiller Safe Exam Browser.
|
||||
</Entry>
|
||||
<Entry key="LockScreen_UserSessionMessage">
|
||||
L'utilisateur actif a changé ou l'ordinateur a été verrouillé ! Afin de déverrouiller SEB, veuillez sélectionner une des options disponibles et entrer le mot de passe de déverrouillage.
|
||||
L'utilisateur actif a changé ou l'ordinateur a été verrouillé! Afin de déverrouiller SEB, veuillez sélectionner une des options disponibles et entrer le mot de passe de déverrouillage.
|
||||
</Entry>
|
||||
<Entry key="LockScreen_UserSessionTerminateOption">
|
||||
Terminer Safe Exam Browser. AVERTISSEMENT : Il n'y aura pas de possibilité de sauvegarder les données ou d'effectuer d'autres actions, l'arrêt sera déclenché immédiatement !
|
||||
Terminer Safe Exam Browser. AVERTISSEMENT: Il n'y aura pas de possibilité de sauvegarder les données ou d'effectuer d'autres actions, l'arrêt sera déclenché immédiatement!
|
||||
</Entry>
|
||||
<Entry key="LogWindow_AlwaysOnTop">
|
||||
Toujours au premier plan
|
||||
|
@ -139,40 +148,40 @@
|
|||
Journal de l’application
|
||||
</Entry>
|
||||
<Entry key="MessageBox_ApplicationAutoTerminationQuestion">
|
||||
Les applications énumérées ci-dessous doivent être terminées avant qu'une nouvelle session puisse être lancée. Souhaitez-vous les clôturer automatiquement maintenant ?
|
||||
Les applications énumérées ci-dessous doivent être terminées avant qu'une nouvelle session puisse être lancée. Souhaitez-vous les clôturer automatiquement maintenant?
|
||||
</Entry>
|
||||
<Entry key="MessageBox_ApplicationAutoTerminationQuestionTitle">
|
||||
Applications en cours d'exécution détectées
|
||||
</Entry>
|
||||
<Entry key="MessageBox_ApplicationAutoTerminationDataLossWarning">
|
||||
AVERTISSEMENT : les données des applications non sauvegardées peuvent être perdues !
|
||||
AVERTISSEMENT : les données des applications non sauvegardées peuvent être perdues!
|
||||
</Entry>
|
||||
<Entry key="MessageBox_ApplicationError">
|
||||
Une erreur irrémédiable s'est produite ! Veuillez consulter les fichiers journaux pour plus d'informations. SEB va maintenant fermer...
|
||||
Une erreur irrémédiable s'est produite! Veuillez consulter les fichiers journaux pour plus d'informations. SEB va maintenant fermer...
|
||||
</Entry>
|
||||
<Entry key="MessageBox_ApplicationErrorTitle">
|
||||
Erreur de l’application
|
||||
</Entry>
|
||||
<Entry key="MessageBox_ApplicationInitializationFailure">
|
||||
L'application %%NAME%% n'a pas pu être initialisée et ne sera donc pas disponible pour la nouvelle session ! Veuillez consulter les fichiers journaux pour plus d'informations.
|
||||
L'application %%NAME%% n'a pas pu être initialisée et ne sera donc pas disponible pour la nouvelle session! Veuillez consulter les fichiers journaux pour plus d'informations.
|
||||
</Entry>
|
||||
<Entry key="MessageBox_ApplicationInitializationFailureTitle">
|
||||
Échec de l'initialisation de l’application
|
||||
</Entry>
|
||||
<Entry key="MessageBox_ApplicationNotFound">
|
||||
L’application %%NAME%% n'a pas pu être trouvée sur le système et ne sera donc pas disponible pour la nouvelle session ! Veuillez consulter les fichiers journaux pour plus d'informations.
|
||||
L’application %%NAME%% n'a pas pu être trouvée sur le système et ne sera donc pas disponible pour la nouvelle session! Veuillez consulter les fichiers journaux pour plus d'informations.
|
||||
</Entry>
|
||||
<Entry key="MessageBox_ApplicationNotFoundTitle">
|
||||
Application non-trouvée
|
||||
</Entry>
|
||||
<Entry key="MessageBox_ApplicationTerminationFailure">
|
||||
Les applications énumérées ci-dessous n'ont pas pu être terminées ! Veuillez les terminer manuellement et réessayer...
|
||||
Les applications énumérées ci-dessous n'ont pas pu être terminées! Veuillez les terminer manuellement et réessayer...
|
||||
</Entry>
|
||||
<Entry key="MessageBox_ApplicationTerminationFailureTitle">
|
||||
Échec de la clôture automatique
|
||||
</Entry>
|
||||
<Entry key="MessageBox_BrowserHomeQuestion">
|
||||
Etes-vous sûr ? (Cette fonction ne vous déconnecte pas si vous êtes connecté sur un site web)
|
||||
Etes-vous sûr? (Cette fonction ne vous déconnecte pas si vous êtes connecté sur un site web)
|
||||
</Entry>
|
||||
<Entry key="MessageBox_BrowserHomeQuestionTitle">
|
||||
Retour au début
|
||||
|
@ -184,7 +193,7 @@
|
|||
Page bloquée
|
||||
</Entry>
|
||||
<Entry key="MessageBox_BrowserQuitUrlConfirmation">
|
||||
L'application du navigateur a détecté une URL de fin ! Vous souhaitez mettre fin à SEB maintenant ?
|
||||
L'application du navigateur a détecté une URL de fin! Vous souhaitez mettre fin à SEB maintenant?
|
||||
</Entry>
|
||||
<Entry key="MessageBox_BrowserQuitUrlConfirmationTitle">
|
||||
URL de fin détectée
|
||||
|
@ -193,13 +202,13 @@
|
|||
Annuler
|
||||
</Entry>
|
||||
<Entry key="MessageBox_ClientConfigurationError">
|
||||
La configuration du client local a échoué ! Veuillez consulter les fichiers journaux pour plus d'informations. SEB va maintenant se fermer....
|
||||
La configuration du client local a échoué! Veuillez consulter les fichiers journaux pour plus d'informations. SEB va maintenant se fermer....
|
||||
</Entry>
|
||||
<Entry key="MessageBox_ClientConfigurationErrorTitle">
|
||||
Erreur de configuration
|
||||
</Entry>
|
||||
<Entry key="MessageBox_ClientConfigurationQuestion">
|
||||
La configuration du client a été enregistrée et sera utilisée lors du prochain démarrage de SEB. Vous voulez quitter maintenant ?
|
||||
La configuration du client a été enregistrée et sera utilisée lors du prochain démarrage de SEB. Vous voulez quitter maintenant?
|
||||
</Entry>
|
||||
<Entry key="MessageBox_ClientConfigurationQuestionTitle">
|
||||
Configuration réussie
|
||||
|
@ -210,8 +219,14 @@
|
|||
<Entry key="MessageBox_ConfigurationDownloadErrorTitle">
|
||||
Erreur de téléchargement
|
||||
</Entry>
|
||||
<Entry key="MessageBox_DisplayConfigurationError">
|
||||
La configuration d'affichage active n'est pas autorisée. Veuillez consulter les fichiers journaux pour plus d'informations. SEB va maintenant s'arrêter...
|
||||
</Entry>
|
||||
<Entry key="MessageBox_DisplayConfigurationErrorTitle">
|
||||
Configuration d'affichage interdite
|
||||
</Entry>
|
||||
<Entry key="MessageBox_InvalidConfigurationData">
|
||||
La ressource de configuration "%%URI%%" contient des données non valides !
|
||||
La ressource de configuration "%%URI%%" contient des données non valides!
|
||||
</Entry>
|
||||
<Entry key="MessageBox_InvalidConfigurationDataTitle">
|
||||
Erreur de configuration
|
||||
|
@ -244,7 +259,7 @@
|
|||
Non
|
||||
</Entry>
|
||||
<Entry key="MessageBox_NotSupportedConfigurationResource">
|
||||
La ressource de configuration "%%URI%%" n'est pas supportée !
|
||||
La ressource de configuration "%%URI%%" n'est pas supportée!
|
||||
</Entry>
|
||||
<Entry key="MessageBox_NotSupportedConfigurationResourceTitle">
|
||||
Erreur de configuration
|
||||
|
@ -259,13 +274,13 @@
|
|||
Session avec surveillance à distance
|
||||
</Entry>
|
||||
<Entry key="MessageBox_Quit">
|
||||
Voulez-vous quitter SEB ?
|
||||
Voulez-vous quitter SEB?
|
||||
</Entry>
|
||||
<Entry key="MessageBox_QuitTitle">
|
||||
Quitter ?
|
||||
</Entry>
|
||||
<Entry key="MessageBox_QuitError">
|
||||
Le client n'a pas réussi à communiquer la demande d'arrêt au serveur d'exécution !
|
||||
Le client n'a pas réussi à communiquer la demande d'arrêt au serveur d'exécution!
|
||||
</Entry>
|
||||
<Entry key="MessageBox_QuitErrorTitle">
|
||||
Erreur de sortie
|
||||
|
@ -277,13 +292,13 @@
|
|||
Reconfiguration refusée
|
||||
</Entry>
|
||||
<Entry key="MessageBox_ReconfigurationError">
|
||||
Le client n'a pas réussi à communiquer la demande de reconfiguration au serveur !
|
||||
Le client n'a pas réussi à communiquer la demande de reconfiguration au serveur!
|
||||
</Entry>
|
||||
<Entry key="MessageBox_ReconfigurationErrorTitle">
|
||||
Erreur de reconfiguration
|
||||
</Entry>
|
||||
<Entry key="MessageBox_ReloadConfirmation">
|
||||
Souhaitez-vous recharger la page actuelle ?
|
||||
Souhaitez-vous recharger la page actuelle?
|
||||
</Entry>
|
||||
<Entry key="MessageBox_ReloadConfirmationTitle">
|
||||
Recharger ?
|
||||
|
@ -295,7 +310,7 @@
|
|||
Session distante détectée
|
||||
</Entry>
|
||||
<Entry key="MessageBox_ServiceUnavailableError">
|
||||
Le service SEB n'a pas été initialisé ! Le service SEB va maintenant se terminer puisque le service obligatoire.
|
||||
Le service SEB n'a pas été initialisé! Le service SEB va maintenant se terminer puisque le service obligatoire.
|
||||
</Entry>
|
||||
<Entry key="MessageBox_ServiceUnavailableErrorTitle">
|
||||
Service indisponible
|
||||
|
@ -307,25 +322,25 @@
|
|||
Service indisponible
|
||||
</Entry>
|
||||
<Entry key="MessageBox_SessionStartError">
|
||||
Le SEB n'a pas réussi à démarrer une nouvelle session ! Veuillez consulter les fichiers journaux pour plus d'informations.
|
||||
Le SEB n'a pas réussi à démarrer une nouvelle session! Veuillez consulter les fichiers journaux pour plus d'informations.
|
||||
</Entry>
|
||||
<Entry key="MessageBox_SessionStartErrorTitle">
|
||||
Erreur de démarrage de session
|
||||
</Entry>
|
||||
<Entry key="MessageBox_ShutdownError">
|
||||
Une erreur inattendue s'est produite lors de la procédure d'arrêt ! Veuillez consulter les fichiers journaux pour plus d'informations.
|
||||
Une erreur inattendue s'est produite lors de la procédure d'arrêt! Veuillez consulter les fichiers journaux pour plus d'informations.
|
||||
</Entry>
|
||||
<Entry key="MessageBox_ShutdownErrorTitle">
|
||||
Erreur de fermeture
|
||||
</Entry>
|
||||
<Entry key="MessageBox_StartupError">
|
||||
Une erreur inattendue s'est produite lors de la procédure de démarrage ! Veuillez consulter les fichiers journaux pour plus d'informations.
|
||||
Une erreur inattendue s'est produite lors de la procédure de démarrage! Veuillez consulter les fichiers journaux pour plus d'informations.
|
||||
</Entry>
|
||||
<Entry key="MessageBox_StartupErrorTitle">
|
||||
Erreur de démarrage
|
||||
</Entry>
|
||||
<Entry key="MessageBox_UnexpectedConfigurationError">
|
||||
Une erreur inattendue s'est produite en essayant de charger la ressource de configuration "%%URI%%" ! Veuillez consulter les fichiers journaux pour plus d'informations.
|
||||
Une erreur inattendue s'est produite en essayant de charger la ressource de configuration "%%URI%%"! Veuillez consulter les fichiers journaux pour plus d'informations.
|
||||
</Entry>
|
||||
<Entry key="MessageBox_UnexpectedConfigurationErrorTitle">
|
||||
Erreur de configuration
|
||||
|
@ -447,6 +462,9 @@
|
|||
<Entry key="OperationStatus_TerminateShell">
|
||||
Arrêt de l’interface utilisateur
|
||||
</Entry>
|
||||
<Entry key="OperationStatus_ValidateDisplayConfiguration">
|
||||
Validation de la politique de configuration d'affichage
|
||||
</Entry>
|
||||
<Entry key="OperationStatus_ValidateRemoteSessionPolicy">
|
||||
Validation de la directive sur la session à distance
|
||||
</Entry>
|
||||
|
@ -466,7 +484,7 @@
|
|||
Attente de la déconnexion du runtime
|
||||
</Entry>
|
||||
<Entry key="PasswordDialog_BrowserHomePasswordRequired">
|
||||
Saisissez le mot de passe pour quitter/redémarrer : (Cette fonction ne vous déconnecte pas si vous êtes connecté sur un site web)
|
||||
Saisissez le mot de passe pour quitter/redémarrer: (Cette fonction ne vous déconnecte pas si vous êtes connecté sur un site web)
|
||||
</Entry>
|
||||
<Entry key="PasswordDialog_BrowserHomePasswordRequiredTitle">
|
||||
Retour au début
|
||||
|
@ -478,7 +496,7 @@
|
|||
Confirmer
|
||||
</Entry>
|
||||
<Entry key="PasswordDialog_LocalAdminPasswordRequired">
|
||||
Veuillez saisir le mot de passe de l'administrateur pour la configuration du client local :
|
||||
Veuillez saisir le mot de passe de l'administrateur pour la configuration du client local:
|
||||
</Entry>
|
||||
<Entry key="PasswordDialog_LocalAdminPasswordRequiredTitle">
|
||||
Mot de passe administrateur requis
|
||||
|
@ -490,7 +508,7 @@
|
|||
Mot de passe des paramètres requis
|
||||
</Entry>
|
||||
<Entry key="PasswordDialog_QuitPasswordRequired">
|
||||
Veuillez saisir le mot de passe pour quitter SEB :
|
||||
Veuillez saisir le mot de passe pour quitter SEB:
|
||||
</Entry>
|
||||
<Entry key="PasswordDialog_QuitPasswordRequiredTitle">
|
||||
Mot de passe de sortie requis
|
||||
|
@ -544,7 +562,7 @@
|
|||
Entièrement chargé (%%CHARGE%%%)
|
||||
</Entry>
|
||||
<Entry key="SystemControl_BatteryChargeCriticalWarning">
|
||||
La charge de la batterie est dangereusement faible. Veuillez brancher votre ordinateur à une source d'alimentation électrique !
|
||||
La charge de la batterie est dangereusement faible. Veuillez brancher votre ordinateur à une source d'alimentation électrique!
|
||||
</Entry>
|
||||
<Entry key="SystemControl_BatteryChargeLowInfo">
|
||||
La charge de la batterie devient faible. Pensez à brancher votre ordinateur sur une alimentation électrique...
|
||||
|
|
|
@ -114,6 +114,15 @@
|
|||
<Entry key="LockScreen_ApplicationsTerminateOption">
|
||||
Chiudi Safe Exam Browser. ATTENZIONE: non ci sarà la possibilità di salvare dati o eseguire ulteriori azioni, lo spegnimento verrà avviato immediatamente!
|
||||
</Entry>
|
||||
<Entry key="LockScreen_DisplayConfigurationContinueOption">
|
||||
Consenti temporaneamente la configurazione del display. Questo vale solo per la sessione attualmente in esecuzione!
|
||||
</Entry>
|
||||
<Entry key="LockScreen_DisplayConfigurationTerminateOption">
|
||||
Termina Browser esame sicuro. ATTENZIONE: non sarà possibile salvare i dati o eseguire ulteriori azioni, lo spegnimento verrà avviato immediatamente!
|
||||
</Entry>
|
||||
<Entry key="LockScreen_DisplayConfigurationMessage">
|
||||
È stata rilevata una configurazione di visualizzazione vietata. Per sbloccare SEB, seleziona una delle opzioni disponibili e inserisci la password di sblocco corretta.
|
||||
</Entry>
|
||||
<Entry key="LockScreen_Title">
|
||||
SEB BLOCCATO
|
||||
</Entry>
|
||||
|
@ -210,6 +219,12 @@
|
|||
<Entry key="MessageBox_ConfigurationDownloadErrorTitle">
|
||||
Errore di download
|
||||
</Entry>
|
||||
<Entry key="MessageBox_DisplayConfigurationError">
|
||||
La configurazione del display attiva non è consentita. Si prega di consultare i file di registro per ulteriori informazioni. SEB ora si spegnerà...
|
||||
</Entry>
|
||||
<Entry key="MessageBox_DisplayConfigurationErrorTitle">
|
||||
Configurazione del display vietata
|
||||
</Entry>
|
||||
<Entry key="MessageBox_InvalidConfigurationData">
|
||||
La risorsa di configurazione "%%URI%%" contiene dati non validi!
|
||||
</Entry>
|
||||
|
@ -447,6 +462,9 @@
|
|||
<Entry key="OperationStatus_TerminateShell">
|
||||
Chiusura dell'interfaccia utente
|
||||
</Entry>
|
||||
<Entry key="OperationStatus_ValidateDisplayConfiguration">
|
||||
Convalida dei criteri di configurazione del display
|
||||
</Entry>
|
||||
<Entry key="OperationStatus_ValidateRemoteSessionPolicy">
|
||||
Convalida dei criteri della sessione remota
|
||||
</Entry>
|
||||
|
|
|
@ -99,6 +99,15 @@
|
|||
<Entry key="LockScreen_TerminateOption">
|
||||
强制关闭防作弊考试专用浏览器。警告:将无法保存数据或执行任何进一步的操作,关闭操作将立即启动。
|
||||
</Entry>
|
||||
<Entry key="LockScreen_DisplayConfigurationContinueOption">
|
||||
暂时允许显示配置。 这仅适用于当前正在运行的会话!
|
||||
</Entry>
|
||||
<Entry key="LockScreen_DisplayConfigurationTerminateOption">
|
||||
终止安全考试浏览器。 警告:将无法保存数据或执行任何进一步操作,将立即启动关机!
|
||||
</Entry>
|
||||
<Entry key="LockScreen_DisplayConfigurationMessage">
|
||||
检测到禁止的显示配置。 要解锁 SEB,请选择可用选项之一并输入正确的解锁密码。
|
||||
</Entry>
|
||||
<Entry key="LockScreen_Title">
|
||||
防作弊考试专用浏览器已锁定
|
||||
</Entry>
|
||||
|
@ -180,6 +189,12 @@
|
|||
<Entry key="MessageBox_ConfigurationDownloadErrorTitle">
|
||||
下载错误
|
||||
</Entry>
|
||||
<Entry key="MessageBox_DisplayConfigurationError">
|
||||
不允许使用活动的显示配置。 请查阅日志文件以获取更多信息。 SEB现在将关闭...
|
||||
</Entry>
|
||||
<Entry key="MessageBox_DisplayConfigurationErrorTitle">
|
||||
禁止的显示配置
|
||||
</Entry>
|
||||
<Entry key="MessageBox_InvalidConfigurationData">
|
||||
配置"%%URI%%" 中包含无效数据。
|
||||
</Entry>
|
||||
|
@ -399,6 +414,9 @@
|
|||
<Entry key="OperationStatus_TerminateShell">
|
||||
终止用户界面
|
||||
</Entry>
|
||||
<Entry key="OperationStatus_ValidateDisplayConfiguration">
|
||||
验证显示配置策略
|
||||
</Entry>
|
||||
<Entry key="OperationStatus_ValidateRemoteSessionPolicy">
|
||||
验证远程会话策略
|
||||
</Entry>
|
||||
|
|
|
@ -7,11 +7,12 @@
|
|||
*/
|
||||
|
||||
using SafeExamBrowser.Monitoring.Contracts.Display.Events;
|
||||
using SafeExamBrowser.Settings.Monitoring;
|
||||
|
||||
namespace SafeExamBrowser.Monitoring.Contracts.Display
|
||||
{
|
||||
/// <summary>
|
||||
/// Monitors the displays of the computer for (setup) changes and provides access to display-related functionality.
|
||||
/// Monitors the displays of the computer for changes and provides access to display-related functionality.
|
||||
/// </summary>
|
||||
public interface IDisplayMonitor
|
||||
{
|
||||
|
@ -25,6 +26,11 @@ namespace SafeExamBrowser.Monitoring.Contracts.Display
|
|||
/// </summary>
|
||||
void InitializePrimaryDisplay(int taskbarHeight);
|
||||
|
||||
/// <summary>
|
||||
/// Indicates whether the currently active display configuration is allowed according to the given settings.
|
||||
/// </summary>
|
||||
bool IsAllowedConfiguration(DisplaySettings settings);
|
||||
|
||||
/// <summary>
|
||||
/// Prevents the computer from entering sleep mode and turning its display(s) off.
|
||||
/// </summary>
|
||||
|
|
18
SafeExamBrowser.Monitoring/Display/Display.cs
Normal file
18
SafeExamBrowser.Monitoring/Display/Display.cs
Normal file
|
@ -0,0 +1,18 @@
|
|||
/*
|
||||
* Copyright (c) 2021 ETH Zürich, Educational Development and Technology (LET)
|
||||
*
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
*/
|
||||
|
||||
namespace SafeExamBrowser.Monitoring.Display
|
||||
{
|
||||
internal class Display
|
||||
{
|
||||
public string Identifier { get; set; }
|
||||
public bool IsActive { get; set; }
|
||||
public bool IsInternal { get; set; }
|
||||
public VideoOutputTechnology Technology { get; set; }
|
||||
}
|
||||
}
|
|
@ -7,12 +7,16 @@
|
|||
*/
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Management;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using Microsoft.Win32;
|
||||
using SafeExamBrowser.Logging.Contracts;
|
||||
using SafeExamBrowser.Monitoring.Contracts.Display;
|
||||
using SafeExamBrowser.Monitoring.Contracts.Display.Events;
|
||||
using SafeExamBrowser.Settings.Monitoring;
|
||||
using SafeExamBrowser.SystemComponents.Contracts;
|
||||
using SafeExamBrowser.WindowsApi.Contracts;
|
||||
using OperatingSystem = SafeExamBrowser.SystemComponents.Contracts.OperatingSystem;
|
||||
|
@ -42,6 +46,41 @@ namespace SafeExamBrowser.Monitoring.Display
|
|||
InitializeWallpaper();
|
||||
}
|
||||
|
||||
public bool IsAllowedConfiguration(DisplaySettings settings)
|
||||
{
|
||||
var allowed = false;
|
||||
|
||||
if (TryLoadDisplays(out var displays))
|
||||
{
|
||||
var active = displays.Where(d => d.IsActive);
|
||||
var count = active.Count();
|
||||
|
||||
allowed = count <= settings.AllowedDisplays;
|
||||
|
||||
if (allowed)
|
||||
{
|
||||
logger.Info($"Detected {count} active displays, {settings.AllowedDisplays} are allowed.");
|
||||
}
|
||||
else
|
||||
{
|
||||
logger.Warn($"Detected {count} active displays but only {settings.AllowedDisplays} are allowed!");
|
||||
}
|
||||
|
||||
if (settings.InternalDisplayOnly && active.Any(d => !d.IsInternal))
|
||||
{
|
||||
allowed = false;
|
||||
logger.Warn("Detected external display but only internal displays are allowed!");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
allowed = settings.IgnoreError;
|
||||
logger.Info("Ignoring display setup validation error and allowing active setup.");
|
||||
}
|
||||
|
||||
return allowed;
|
||||
}
|
||||
|
||||
public void PreventSleepMode()
|
||||
{
|
||||
nativeMethods.PreventSleepMode();
|
||||
|
@ -101,7 +140,7 @@ namespace SafeExamBrowser.Monitoring.Display
|
|||
{
|
||||
var path = nativeMethods.GetWallpaperPath();
|
||||
|
||||
if (!String.IsNullOrEmpty(path))
|
||||
if (!string.IsNullOrEmpty(path))
|
||||
{
|
||||
wallpaper = path;
|
||||
logger.Info($"Saved wallpaper image: {wallpaper}.");
|
||||
|
@ -112,6 +151,70 @@ namespace SafeExamBrowser.Monitoring.Display
|
|||
}
|
||||
}
|
||||
|
||||
private bool TryLoadDisplays(out IList<Display> displays)
|
||||
{
|
||||
var success = true;
|
||||
|
||||
displays = new List<Display>();
|
||||
|
||||
try
|
||||
{
|
||||
using (var searcher = new ManagementObjectSearcher(@"Root\WMI", "SELECT * FROM WmiMonitorBasicDisplayParams"))
|
||||
using (var results = searcher.Get())
|
||||
{
|
||||
var displayParameters = results.Cast<ManagementObject>();
|
||||
|
||||
foreach (var display in displayParameters)
|
||||
{
|
||||
displays.Add(new Display
|
||||
{
|
||||
Identifier = Convert.ToString(display["InstanceName"]),
|
||||
IsActive = Convert.ToBoolean(display["Active"])
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
using (var searcher = new ManagementObjectSearcher(@"Root\WMI", "SELECT * FROM WmiMonitorConnectionParams"))
|
||||
using (var results = searcher.Get())
|
||||
{
|
||||
var connectionParameters = results.Cast<ManagementObject>();
|
||||
|
||||
foreach (var connection in connectionParameters)
|
||||
{
|
||||
var identifier = Convert.ToString(connection["InstanceName"]);
|
||||
var isActive = Convert.ToBoolean(connection["Active"]);
|
||||
var technologyValue = Convert.ToInt64(connection["VideoOutputTechnology"]);
|
||||
var technology = (VideoOutputTechnology) technologyValue;
|
||||
var display = displays.FirstOrDefault(d => d.Identifier?.Equals(identifier, StringComparison.OrdinalIgnoreCase) == true);
|
||||
|
||||
if (!Enum.IsDefined(typeof(VideoOutputTechnology), technology))
|
||||
{
|
||||
logger.Warn($"Detected undefined video output technology '{technologyValue}' for display '{identifier}'!");
|
||||
}
|
||||
|
||||
if (display != default(Display))
|
||||
{
|
||||
display.IsActive &= isActive;
|
||||
display.IsInternal = technology == VideoOutputTechnology.Internal;
|
||||
display.Technology = technology;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
success = false;
|
||||
logger.Error("Failed to query displays!", e);
|
||||
}
|
||||
|
||||
foreach (var display in displays)
|
||||
{
|
||||
logger.Info($"Detected {(display.IsActive ? "active" : "inactive")}, {(display.IsInternal ? "internal" : "external")} display '{display.Identifier}' connected via '{display.Technology}'.");
|
||||
}
|
||||
|
||||
return success;
|
||||
}
|
||||
|
||||
private void ResetWorkingArea()
|
||||
{
|
||||
var identifier = GetIdentifierForPrimaryDisplay();
|
||||
|
@ -138,9 +241,11 @@ namespace SafeExamBrowser.Monitoring.Display
|
|||
|
||||
private string GetIdentifierForPrimaryDisplay()
|
||||
{
|
||||
var display = Screen.PrimaryScreen.DeviceName?.Replace(@"\\.\", string.Empty);
|
||||
var name = Screen.PrimaryScreen.DeviceName?.Replace(@"\\.\", string.Empty);
|
||||
var resolution = $"{Screen.PrimaryScreen.Bounds.Width}x{Screen.PrimaryScreen.Bounds.Height}";
|
||||
var identifier = $"{name} ({resolution})";
|
||||
|
||||
return $"{display} ({Screen.PrimaryScreen.Bounds.Width}x{Screen.PrimaryScreen.Bounds.Height})";
|
||||
return identifier;
|
||||
}
|
||||
|
||||
private void LogWorkingArea(string message, IBounds area)
|
||||
|
|
40
SafeExamBrowser.Monitoring/Display/VideoOutputTechnology.cs
Normal file
40
SafeExamBrowser.Monitoring/Display/VideoOutputTechnology.cs
Normal file
|
@ -0,0 +1,40 @@
|
|||
/*
|
||||
* Copyright (c) 2021 ETH Zürich, Educational Development and Technology (LET)
|
||||
*
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
*/
|
||||
|
||||
namespace SafeExamBrowser.Monitoring.Display
|
||||
{
|
||||
/// <remarks>
|
||||
/// See https://docs.microsoft.com/en-us/windows-hardware/drivers/ddi/d3dkmdt/ne-d3dkmdt-_d3dkmdt_video_output_technology
|
||||
/// </remarks>
|
||||
internal enum VideoOutputTechnology : long
|
||||
{
|
||||
Uninitialized = -2,
|
||||
Other = -1,
|
||||
HD15 = 0,
|
||||
SVideo = 1,
|
||||
CompositeVideo = 2,
|
||||
ComponentVideo = 3,
|
||||
DVI = 4,
|
||||
HDMI = 5,
|
||||
LVDS = 6,
|
||||
DJPN = 8,
|
||||
SDI = 9,
|
||||
DisplayPortExternal = 10,
|
||||
DisplayPortEmbedded = 11,
|
||||
UDIExternal = 12,
|
||||
UDIEmbedded = 13,
|
||||
SDTVDongle = 14,
|
||||
MiraCast = 15,
|
||||
Internal = 0x80000000,
|
||||
SVideo4Pin = SVideo,
|
||||
SVideo7Pin = SVideo,
|
||||
RF = ComponentVideo,
|
||||
RCA3Component = ComponentVideo,
|
||||
BNC = ComponentVideo
|
||||
}
|
||||
}
|
|
@ -51,6 +51,7 @@
|
|||
<ItemGroup>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Management" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="WindowsBase" />
|
||||
|
@ -58,7 +59,9 @@
|
|||
<ItemGroup>
|
||||
<Compile Include="Applications\Window.cs" />
|
||||
<Compile Include="Display\Bounds.cs" />
|
||||
<Compile Include="Display\Display.cs" />
|
||||
<Compile Include="Display\DisplayMonitor.cs" />
|
||||
<Compile Include="Display\VideoOutputTechnology.cs" />
|
||||
<Compile Include="Keyboard\KeyboardInterceptor.cs" />
|
||||
<Compile Include="Mouse\MouseInterceptor.cs" />
|
||||
<Compile Include="Applications\ApplicationMonitor.cs" />
|
||||
|
|
|
@ -24,6 +24,7 @@ using SafeExamBrowser.I18n;
|
|||
using SafeExamBrowser.I18n.Contracts;
|
||||
using SafeExamBrowser.Logging;
|
||||
using SafeExamBrowser.Logging.Contracts;
|
||||
using SafeExamBrowser.Monitoring.Display;
|
||||
using SafeExamBrowser.Runtime.Communication;
|
||||
using SafeExamBrowser.Runtime.Operations;
|
||||
using SafeExamBrowser.Server;
|
||||
|
@ -63,6 +64,7 @@ namespace SafeExamBrowser.Runtime
|
|||
var uiFactory = new UserInterfaceFactory(text);
|
||||
var desktopFactory = new DesktopFactory(ModuleLogger(nameof(DesktopFactory)));
|
||||
var desktopMonitor = new DesktopMonitor(ModuleLogger(nameof(DesktopMonitor)));
|
||||
var displayMonitor = new DisplayMonitor(ModuleLogger(nameof(DisplayMonitor)), nativeMethods, systemInfo);
|
||||
var explorerShell = new ExplorerShell(ModuleLogger(nameof(ExplorerShell)), nativeMethods);
|
||||
var fileSystem = new FileSystem();
|
||||
var processFactory = new ProcessFactory(ModuleLogger(nameof(ProcessFactory)));
|
||||
|
@ -89,6 +91,7 @@ namespace SafeExamBrowser.Runtime
|
|||
sessionOperations.Enqueue(new ServerOperation(args, configuration, fileSystem, logger, sessionContext, server));
|
||||
sessionOperations.Enqueue(new RemoteSessionOperation(remoteSessionDetector, logger, sessionContext));
|
||||
sessionOperations.Enqueue(new VirtualMachineOperation(vmDetector, logger, sessionContext));
|
||||
sessionOperations.Enqueue(new DisplayMonitorOperation(displayMonitor, logger, sessionContext));
|
||||
sessionOperations.Enqueue(new ServiceOperation(logger, runtimeHost, serviceProxy, sessionContext, THIRTY_SECONDS, userInfo));
|
||||
sessionOperations.Enqueue(new ClientTerminationOperation(logger, processFactory, proxyFactory, runtimeHost, sessionContext, THIRTY_SECONDS));
|
||||
sessionOperations.Enqueue(new ProctoringWorkaroundOperation(logger, sessionContext));
|
||||
|
|
|
@ -0,0 +1,76 @@
|
|||
/*
|
||||
* Copyright (c) 2021 ETH Zürich, Educational Development and Technology (LET)
|
||||
*
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
*/
|
||||
|
||||
using SafeExamBrowser.Core.Contracts.OperationModel;
|
||||
using SafeExamBrowser.Core.Contracts.OperationModel.Events;
|
||||
using SafeExamBrowser.I18n.Contracts;
|
||||
using SafeExamBrowser.Logging.Contracts;
|
||||
using SafeExamBrowser.Monitoring.Contracts.Display;
|
||||
using SafeExamBrowser.Runtime.Operations.Events;
|
||||
using SafeExamBrowser.UserInterface.Contracts.MessageBox;
|
||||
|
||||
namespace SafeExamBrowser.Runtime.Operations
|
||||
{
|
||||
internal class DisplayMonitorOperation : SessionOperation
|
||||
{
|
||||
private readonly IDisplayMonitor displayMonitor;
|
||||
private readonly ILogger logger;
|
||||
|
||||
public override event ActionRequiredEventHandler ActionRequired;
|
||||
public override event StatusChangedEventHandler StatusChanged;
|
||||
|
||||
public DisplayMonitorOperation(IDisplayMonitor displayMonitor, ILogger logger, SessionContext context) : base(context)
|
||||
{
|
||||
this.displayMonitor = displayMonitor;
|
||||
this.logger = logger;
|
||||
}
|
||||
|
||||
public override OperationResult Perform()
|
||||
{
|
||||
return CheckDisplayConfiguration();
|
||||
}
|
||||
|
||||
public override OperationResult Repeat()
|
||||
{
|
||||
return CheckDisplayConfiguration();
|
||||
}
|
||||
|
||||
public override OperationResult Revert()
|
||||
{
|
||||
return OperationResult.Success;
|
||||
}
|
||||
|
||||
private OperationResult CheckDisplayConfiguration()
|
||||
{
|
||||
var args = new MessageEventArgs
|
||||
{
|
||||
Action = MessageBoxAction.Ok,
|
||||
Icon = MessageBoxIcon.Error,
|
||||
Message = TextKey.MessageBox_DisplayConfigurationError,
|
||||
Title = TextKey.MessageBox_DisplayConfigurationErrorTitle
|
||||
};
|
||||
var result = OperationResult.Aborted;
|
||||
|
||||
logger.Info("Validating display configuration...");
|
||||
StatusChanged?.Invoke(TextKey.OperationStatus_ValidateDisplayConfiguration);
|
||||
|
||||
if (displayMonitor.IsAllowedConfiguration(Context.Next.Settings.Display))
|
||||
{
|
||||
logger.Info("Display configuration is allowed.");
|
||||
result = OperationResult.Success;
|
||||
}
|
||||
else
|
||||
{
|
||||
logger.Error("Display configuration is not allowed!");
|
||||
ActionRequired?.Invoke(args);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -95,6 +95,7 @@
|
|||
<Compile Include="Operations\ConfigurationBaseOperation.cs" />
|
||||
<Compile Include="Operations\ConfigurationOperation.cs" />
|
||||
<Compile Include="Operations\DisclaimerOperation.cs" />
|
||||
<Compile Include="Operations\DisplayMonitorOperation.cs" />
|
||||
<Compile Include="Operations\Events\ClientConfigurationErrorMessageArgs.cs" />
|
||||
<Compile Include="Operations\Events\ConfigurationCompletedEventArgs.cs" />
|
||||
<Compile Include="Operations\Events\ExamSelectionEventArgs.cs" />
|
||||
|
@ -188,6 +189,14 @@
|
|||
<Project>{e107026c-2011-4552-a7d8-3a0d37881df6}</Project>
|
||||
<Name>SafeExamBrowser.Logging</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\SafeExamBrowser.Monitoring.Contracts\SafeExamBrowser.Monitoring.Contracts.csproj">
|
||||
<Project>{6d563a30-366d-4c35-815b-2c9e6872278b}</Project>
|
||||
<Name>SafeExamBrowser.Monitoring.Contracts</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\SafeExamBrowser.Monitoring\SafeExamBrowser.Monitoring.csproj">
|
||||
<Project>{ef563531-4eb5-44b9-a5ec-d6d6f204469b}</Project>
|
||||
<Name>SafeExamBrowser.Monitoring</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\SafeExamBrowser.Server.Contracts\SafeExamBrowser.Server.Contracts.csproj">
|
||||
<Project>{db701e6f-bddc-4cec-b662-335a9dc11809}</Project>
|
||||
<Name>SafeExamBrowser.Server.Contracts</Name>
|
||||
|
|
|
@ -51,6 +51,11 @@ namespace SafeExamBrowser.Settings
|
|||
/// </summary>
|
||||
public ConfigurationMode ConfigurationMode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// All display-related settings.
|
||||
/// </summary>
|
||||
public DisplaySettings Display { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// All keyboard-related settings.
|
||||
/// </summary>
|
||||
|
@ -107,6 +112,7 @@ namespace SafeExamBrowser.Settings
|
|||
Applications = new ApplicationSettings();
|
||||
Audio = new AudioSettings();
|
||||
Browser = new BrowserSettings();
|
||||
Display = new DisplaySettings();
|
||||
Keyboard = new KeyboardSettings();
|
||||
Mouse = new MouseSettings();
|
||||
Proctoring = new ProctoringSettings();
|
||||
|
|
34
SafeExamBrowser.Settings/Monitoring/DisplaySettings.cs
Normal file
34
SafeExamBrowser.Settings/Monitoring/DisplaySettings.cs
Normal file
|
@ -0,0 +1,34 @@
|
|||
/*
|
||||
* Copyright (c) 2021 ETH Zürich, Educational Development and Technology (LET)
|
||||
*
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
*/
|
||||
|
||||
using System;
|
||||
|
||||
namespace SafeExamBrowser.Settings.Monitoring
|
||||
{
|
||||
/// <summary>
|
||||
/// Defines all settings related to the display configuration monitoring.
|
||||
/// </summary>
|
||||
[Serializable]
|
||||
public class DisplaySettings
|
||||
{
|
||||
/// <summary>
|
||||
/// Defines the number of allowed displays.
|
||||
/// </summary>
|
||||
public int AllowedDisplays { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Determines whether any display configuration may be allowed when the configuration can't be verified due to an error.
|
||||
/// </summary>
|
||||
public bool IgnoreError { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Determines whether only an internal display may be used.
|
||||
/// </summary>
|
||||
public bool InternalDisplayOnly { get; set; }
|
||||
}
|
||||
}
|
|
@ -71,6 +71,7 @@
|
|||
<Compile Include="Browser\Proxy\ProxyProtocol.cs" />
|
||||
<Compile Include="Browser\Proxy\ProxyConfiguration.cs" />
|
||||
<Compile Include="ConfigurationMode.cs" />
|
||||
<Compile Include="Monitoring\DisplaySettings.cs" />
|
||||
<Compile Include="Proctoring\JitsiMeetSettings.cs" />
|
||||
<Compile Include="Proctoring\ProctoringSettings.cs" />
|
||||
<Compile Include="Proctoring\WindowVisibility.cs" />
|
||||
|
|
|
@ -55,7 +55,7 @@ namespace SafeExamBrowser.SystemComponents
|
|||
|
||||
try
|
||||
{
|
||||
using (var searcher = new ManagementObjectSearcher("Select * from Win32_ComputerSystem"))
|
||||
using (var searcher = new ManagementObjectSearcher("SELECT * FROM Win32_ComputerSystem"))
|
||||
using (var results = searcher.Get())
|
||||
using (var system = results.Cast<ManagementObject>().First())
|
||||
{
|
||||
|
|
|
@ -381,7 +381,7 @@ namespace SebWindowsConfig
|
|||
public const String KeyAllowDisplayMirroring = "allowDisplayMirroring";
|
||||
public const String KeyAllowedDisplaysMaxNumber = "allowedDisplaysMaxNumber";
|
||||
public const String KeyAllowedDisplayBuiltin = "allowedDisplayBuiltin";
|
||||
|
||||
public const String KeyAllowedDisplayBuiltinEnforce = "allowedDisplayBuiltinEnforce";
|
||||
|
||||
// Group "Registry"
|
||||
|
||||
|
@ -974,6 +974,7 @@ namespace SebWindowsConfig
|
|||
SEBSettings.settingsDefault.Add(SEBSettings.KeyAllowDisplayMirroring, false);
|
||||
SEBSettings.settingsDefault.Add(SEBSettings.KeyAllowedDisplaysMaxNumber, 1);
|
||||
SEBSettings.settingsDefault.Add(SEBSettings.KeyAllowedDisplayBuiltin, true);
|
||||
SEBSettings.settingsDefault.Add(SEBSettings.KeyAllowedDisplayBuiltinEnforce, false);
|
||||
SEBSettings.settingsDefault.Add(SEBSettings.KeyAllowChromeNotifications, false);
|
||||
SEBSettings.settingsDefault.Add(SEBSettings.KeyAllowWindowsUpdate, false);
|
||||
|
||||
|
|
116
SebWindowsConfig/SebWindowsConfigForm.Designer.cs
generated
116
SebWindowsConfig/SebWindowsConfigForm.Designer.cs
generated
|
@ -30,8 +30,8 @@ namespace SebWindowsConfig
|
|||
{
|
||||
this.components = new System.ComponentModel.Container();
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SebWindowsConfigForm));
|
||||
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();
|
||||
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle();
|
||||
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle();
|
||||
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle();
|
||||
this.openFileDialogSebConfigFile = new System.Windows.Forms.OpenFileDialog();
|
||||
this.saveFileDialogSebConfigFile = new System.Windows.Forms.SaveFileDialog();
|
||||
this.imageListTabIcons = new System.Windows.Forms.ImageList(this.components);
|
||||
|
@ -83,13 +83,13 @@ namespace SebWindowsConfig
|
|||
this.labelSebServicePolicy = new System.Windows.Forms.Label();
|
||||
this.checkBoxAllowScreenSharing = new System.Windows.Forms.CheckBox();
|
||||
this.checkBoxShowLogButton = new System.Windows.Forms.CheckBox();
|
||||
this.comboBoxAllowedDisplaysMaxNumber = new System.Windows.Forms.ComboBox();
|
||||
this.checkBoxAllowLogAccess = new System.Windows.Forms.CheckBox();
|
||||
this.label13 = new System.Windows.Forms.Label();
|
||||
this.checkBoxEnablePrivateClipboard = new System.Windows.Forms.CheckBox();
|
||||
this.groupBox1 = new System.Windows.Forms.GroupBox();
|
||||
this.label14 = new System.Windows.Forms.Label();
|
||||
this.comboBoxMinMacOSVersion = new System.Windows.Forms.ComboBox();
|
||||
this.comboBoxAllowedDisplaysMaxNumber = new System.Windows.Forms.ComboBox();
|
||||
this.label13 = new System.Windows.Forms.Label();
|
||||
this.checkBoxAllowedDisplayBuiltin = new System.Windows.Forms.CheckBox();
|
||||
this.checkBoxAllowDisplayMirroring = new System.Windows.Forms.CheckBox();
|
||||
this.checkBoxDetectStoppedProcess = new System.Windows.Forms.CheckBox();
|
||||
|
@ -456,6 +456,7 @@ namespace SebWindowsConfig
|
|||
this.editDuplicateToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.configureClientToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.applyAndStartSEBToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.checkBoxEnforceBuiltinDisplay = new System.Windows.Forms.CheckBox();
|
||||
this.tabPageHookedKeys.SuspendLayout();
|
||||
this.groupBoxFunctionKeys.SuspendLayout();
|
||||
this.groupBoxSpecialKeys.SuspendLayout();
|
||||
|
@ -1080,9 +1081,12 @@ namespace SebWindowsConfig
|
|||
//
|
||||
// tabPageSecurity
|
||||
//
|
||||
this.tabPageSecurity.Controls.Add(this.checkBoxEnforceBuiltinDisplay);
|
||||
this.tabPageSecurity.Controls.Add(this.groupBoxSebService);
|
||||
this.tabPageSecurity.Controls.Add(this.checkBoxShowLogButton);
|
||||
this.tabPageSecurity.Controls.Add(this.comboBoxAllowedDisplaysMaxNumber);
|
||||
this.tabPageSecurity.Controls.Add(this.checkBoxAllowLogAccess);
|
||||
this.tabPageSecurity.Controls.Add(this.label13);
|
||||
this.tabPageSecurity.Controls.Add(this.checkBoxEnablePrivateClipboard);
|
||||
this.tabPageSecurity.Controls.Add(this.groupBox1);
|
||||
this.tabPageSecurity.Controls.Add(this.groupBox10);
|
||||
|
@ -1196,7 +1200,7 @@ namespace SebWindowsConfig
|
|||
// checkBoxShowLogButton
|
||||
//
|
||||
this.checkBoxShowLogButton.AutoSize = true;
|
||||
this.checkBoxShowLogButton.Location = new System.Drawing.Point(358, 337);
|
||||
this.checkBoxShowLogButton.Location = new System.Drawing.Point(617, 323);
|
||||
this.checkBoxShowLogButton.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.checkBoxShowLogButton.Name = "checkBoxShowLogButton";
|
||||
this.checkBoxShowLogButton.Size = new System.Drawing.Size(180, 17);
|
||||
|
@ -1205,10 +1209,24 @@ namespace SebWindowsConfig
|
|||
this.checkBoxShowLogButton.UseVisualStyleBackColor = true;
|
||||
this.checkBoxShowLogButton.CheckedChanged += new System.EventHandler(this.checkBoxShowLogButton_CheckedChanged);
|
||||
//
|
||||
// comboBoxAllowedDisplaysMaxNumber
|
||||
//
|
||||
this.comboBoxAllowedDisplaysMaxNumber.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.comboBoxAllowedDisplaysMaxNumber.FormattingEnabled = true;
|
||||
this.comboBoxAllowedDisplaysMaxNumber.Location = new System.Drawing.Point(833, 267);
|
||||
this.comboBoxAllowedDisplaysMaxNumber.Margin = new System.Windows.Forms.Padding(2, 1, 2, 1);
|
||||
this.comboBoxAllowedDisplaysMaxNumber.Name = "comboBoxAllowedDisplaysMaxNumber";
|
||||
this.comboBoxAllowedDisplaysMaxNumber.Size = new System.Drawing.Size(57, 21);
|
||||
this.comboBoxAllowedDisplaysMaxNumber.TabIndex = 100;
|
||||
this.toolTip1.SetToolTip(this.comboBoxAllowedDisplaysMaxNumber, "If more displays are connected, these are blanked with an orange full screen wind" +
|
||||
"ow");
|
||||
this.comboBoxAllowedDisplaysMaxNumber.SelectedIndexChanged += new System.EventHandler(this.comboBoxAllowedDisplaysMaxNumber_SelectedIndexChanged);
|
||||
this.comboBoxAllowedDisplaysMaxNumber.TextChanged += new System.EventHandler(this.comboBoxAllowedDisplaysMaxNumber_TextChanged);
|
||||
//
|
||||
// checkBoxAllowLogAccess
|
||||
//
|
||||
this.checkBoxAllowLogAccess.AutoSize = true;
|
||||
this.checkBoxAllowLogAccess.Location = new System.Drawing.Point(328, 317);
|
||||
this.checkBoxAllowLogAccess.Location = new System.Drawing.Point(598, 304);
|
||||
this.checkBoxAllowLogAccess.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.checkBoxAllowLogAccess.Name = "checkBoxAllowLogAccess";
|
||||
this.checkBoxAllowLogAccess.Size = new System.Drawing.Size(199, 17);
|
||||
|
@ -1217,11 +1235,24 @@ namespace SebWindowsConfig
|
|||
this.checkBoxAllowLogAccess.UseVisualStyleBackColor = true;
|
||||
this.checkBoxAllowLogAccess.CheckedChanged += new System.EventHandler(this.checkBoxAllowLogAccess_CheckedChanged);
|
||||
//
|
||||
// label13
|
||||
//
|
||||
this.label13.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.label13.AutoSize = true;
|
||||
this.label13.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.label13.Location = new System.Drawing.Point(595, 270);
|
||||
this.label13.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||
this.label13.Name = "label13";
|
||||
this.label13.Size = new System.Drawing.Size(234, 13);
|
||||
this.label13.TabIndex = 101;
|
||||
this.label13.Text = "Maximum allowed number of connected displays";
|
||||
this.label13.TextAlign = System.Drawing.ContentAlignment.TopRight;
|
||||
//
|
||||
// checkBoxEnablePrivateClipboard
|
||||
//
|
||||
this.checkBoxEnablePrivateClipboard.AutoSize = true;
|
||||
this.checkBoxEnablePrivateClipboard.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.checkBoxEnablePrivateClipboard.Location = new System.Drawing.Point(328, 278);
|
||||
this.checkBoxEnablePrivateClipboard.Location = new System.Drawing.Point(328, 297);
|
||||
this.checkBoxEnablePrivateClipboard.Margin = new System.Windows.Forms.Padding(2, 1, 2, 1);
|
||||
this.checkBoxEnablePrivateClipboard.Name = "checkBoxEnablePrivateClipboard";
|
||||
this.checkBoxEnablePrivateClipboard.Size = new System.Drawing.Size(156, 17);
|
||||
|
@ -1236,8 +1267,6 @@ namespace SebWindowsConfig
|
|||
//
|
||||
this.groupBox1.Controls.Add(this.label14);
|
||||
this.groupBox1.Controls.Add(this.comboBoxMinMacOSVersion);
|
||||
this.groupBox1.Controls.Add(this.comboBoxAllowedDisplaysMaxNumber);
|
||||
this.groupBox1.Controls.Add(this.label13);
|
||||
this.groupBox1.Controls.Add(this.checkBoxAllowedDisplayBuiltin);
|
||||
this.groupBox1.Controls.Add(this.checkBoxAllowDisplayMirroring);
|
||||
this.groupBox1.Controls.Add(this.checkBoxDetectStoppedProcess);
|
||||
|
@ -1280,39 +1309,12 @@ namespace SebWindowsConfig
|
|||
this.comboBoxMinMacOSVersion.SelectedIndexChanged += new System.EventHandler(this.comboBoxMinMacOSVersion_SelectedIndexChanged);
|
||||
this.comboBoxMinMacOSVersion.TextChanged += new System.EventHandler(this.comboBoxMinMacOSVersion_TextChanged);
|
||||
//
|
||||
// comboBoxAllowedDisplaysMaxNumber
|
||||
//
|
||||
this.comboBoxAllowedDisplaysMaxNumber.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.comboBoxAllowedDisplaysMaxNumber.FormattingEnabled = true;
|
||||
this.comboBoxAllowedDisplaysMaxNumber.Location = new System.Drawing.Point(527, 159);
|
||||
this.comboBoxAllowedDisplaysMaxNumber.Margin = new System.Windows.Forms.Padding(2, 1, 2, 1);
|
||||
this.comboBoxAllowedDisplaysMaxNumber.Name = "comboBoxAllowedDisplaysMaxNumber";
|
||||
this.comboBoxAllowedDisplaysMaxNumber.Size = new System.Drawing.Size(93, 21);
|
||||
this.comboBoxAllowedDisplaysMaxNumber.TabIndex = 100;
|
||||
this.toolTip1.SetToolTip(this.comboBoxAllowedDisplaysMaxNumber, "If more displays are connected, these are blanked with an orange full screen wind" +
|
||||
"ow");
|
||||
this.comboBoxAllowedDisplaysMaxNumber.SelectedIndexChanged += new System.EventHandler(this.comboBoxAllowedDisplaysMaxNumber_SelectedIndexChanged);
|
||||
this.comboBoxAllowedDisplaysMaxNumber.TextChanged += new System.EventHandler(this.comboBoxAllowedDisplaysMaxNumber_TextChanged);
|
||||
//
|
||||
// label13
|
||||
//
|
||||
this.label13.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.label13.AutoSize = true;
|
||||
this.label13.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.label13.Location = new System.Drawing.Point(289, 162);
|
||||
this.label13.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||
this.label13.Name = "label13";
|
||||
this.label13.Size = new System.Drawing.Size(234, 13);
|
||||
this.label13.TabIndex = 101;
|
||||
this.label13.Text = "Maximum allowed number of connected displays";
|
||||
this.label13.TextAlign = System.Drawing.ContentAlignment.TopRight;
|
||||
//
|
||||
// checkBoxAllowedDisplayBuiltin
|
||||
//
|
||||
this.checkBoxAllowedDisplayBuiltin.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.checkBoxAllowedDisplayBuiltin.AutoSize = true;
|
||||
this.checkBoxAllowedDisplayBuiltin.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.checkBoxAllowedDisplayBuiltin.Location = new System.Drawing.Point(514, 184);
|
||||
this.checkBoxAllowedDisplayBuiltin.Location = new System.Drawing.Point(15, 181);
|
||||
this.checkBoxAllowedDisplayBuiltin.Margin = new System.Windows.Forms.Padding(2, 1, 2, 1);
|
||||
this.checkBoxAllowedDisplayBuiltin.Name = "checkBoxAllowedDisplayBuiltin";
|
||||
this.checkBoxAllowedDisplayBuiltin.Size = new System.Drawing.Size(113, 17);
|
||||
|
@ -1327,7 +1329,7 @@ namespace SebWindowsConfig
|
|||
//
|
||||
this.checkBoxAllowDisplayMirroring.AutoSize = true;
|
||||
this.checkBoxAllowDisplayMirroring.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.checkBoxAllowDisplayMirroring.Location = new System.Drawing.Point(15, 140);
|
||||
this.checkBoxAllowDisplayMirroring.Location = new System.Drawing.Point(15, 143);
|
||||
this.checkBoxAllowDisplayMirroring.Margin = new System.Windows.Forms.Padding(2, 1, 2, 1);
|
||||
this.checkBoxAllowDisplayMirroring.Name = "checkBoxAllowDisplayMirroring";
|
||||
this.checkBoxAllowDisplayMirroring.Size = new System.Drawing.Size(263, 17);
|
||||
|
@ -1342,7 +1344,7 @@ namespace SebWindowsConfig
|
|||
//
|
||||
this.checkBoxDetectStoppedProcess.AutoSize = true;
|
||||
this.checkBoxDetectStoppedProcess.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.checkBoxDetectStoppedProcess.Location = new System.Drawing.Point(15, 121);
|
||||
this.checkBoxDetectStoppedProcess.Location = new System.Drawing.Point(15, 124);
|
||||
this.checkBoxDetectStoppedProcess.Margin = new System.Windows.Forms.Padding(2, 1, 2, 1);
|
||||
this.checkBoxDetectStoppedProcess.Name = "checkBoxDetectStoppedProcess";
|
||||
this.checkBoxDetectStoppedProcess.Size = new System.Drawing.Size(214, 17);
|
||||
|
@ -1357,7 +1359,7 @@ namespace SebWindowsConfig
|
|||
//
|
||||
this.checkBoxAllowDictation.AutoSize = true;
|
||||
this.checkBoxAllowDictation.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.checkBoxAllowDictation.Location = new System.Drawing.Point(15, 102);
|
||||
this.checkBoxAllowDictation.Location = new System.Drawing.Point(15, 105);
|
||||
this.checkBoxAllowDictation.Margin = new System.Windows.Forms.Padding(2, 1, 2, 1);
|
||||
this.checkBoxAllowDictation.Name = "checkBoxAllowDictation";
|
||||
this.checkBoxAllowDictation.Size = new System.Drawing.Size(126, 17);
|
||||
|
@ -1373,7 +1375,7 @@ namespace SebWindowsConfig
|
|||
this.checkBoxAllowUserAppFolderInstall.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.checkBoxAllowUserAppFolderInstall.AutoSize = true;
|
||||
this.checkBoxAllowUserAppFolderInstall.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.checkBoxAllowUserAppFolderInstall.Location = new System.Drawing.Point(421, 64);
|
||||
this.checkBoxAllowUserAppFolderInstall.Location = new System.Drawing.Point(15, 162);
|
||||
this.checkBoxAllowUserAppFolderInstall.Margin = new System.Windows.Forms.Padding(2, 1, 2, 1);
|
||||
this.checkBoxAllowUserAppFolderInstall.Name = "checkBoxAllowUserAppFolderInstall";
|
||||
this.checkBoxAllowUserAppFolderInstall.Size = new System.Drawing.Size(204, 17);
|
||||
|
@ -1388,7 +1390,7 @@ namespace SebWindowsConfig
|
|||
//
|
||||
this.checkBoxAllowSiri.AutoSize = true;
|
||||
this.checkBoxAllowSiri.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.checkBoxAllowSiri.Location = new System.Drawing.Point(15, 83);
|
||||
this.checkBoxAllowSiri.Location = new System.Drawing.Point(15, 86);
|
||||
this.checkBoxAllowSiri.Margin = new System.Windows.Forms.Padding(2, 1, 2, 1);
|
||||
this.checkBoxAllowSiri.Name = "checkBoxAllowSiri";
|
||||
this.checkBoxAllowSiri.Size = new System.Drawing.Size(100, 17);
|
||||
|
@ -1404,7 +1406,7 @@ namespace SebWindowsConfig
|
|||
//
|
||||
this.checkBoxForceAppFolderInstall.AutoSize = true;
|
||||
this.checkBoxForceAppFolderInstall.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.checkBoxForceAppFolderInstall.Location = new System.Drawing.Point(15, 64);
|
||||
this.checkBoxForceAppFolderInstall.Location = new System.Drawing.Point(15, 67);
|
||||
this.checkBoxForceAppFolderInstall.Margin = new System.Windows.Forms.Padding(2, 1, 2, 1);
|
||||
this.checkBoxForceAppFolderInstall.Name = "checkBoxForceAppFolderInstall";
|
||||
this.checkBoxForceAppFolderInstall.Size = new System.Drawing.Size(205, 17);
|
||||
|
@ -1418,7 +1420,7 @@ namespace SebWindowsConfig
|
|||
//
|
||||
this.checkBoxEnableAppSwitcherCheck.AutoSize = true;
|
||||
this.checkBoxEnableAppSwitcherCheck.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.checkBoxEnableAppSwitcherCheck.Location = new System.Drawing.Point(15, 43);
|
||||
this.checkBoxEnableAppSwitcherCheck.Location = new System.Drawing.Point(15, 46);
|
||||
this.checkBoxEnableAppSwitcherCheck.Margin = new System.Windows.Forms.Padding(2, 1, 2, 1);
|
||||
this.checkBoxEnableAppSwitcherCheck.Name = "checkBoxEnableAppSwitcherCheck";
|
||||
this.checkBoxEnableAppSwitcherCheck.Size = new System.Drawing.Size(220, 17);
|
||||
|
@ -1437,7 +1439,7 @@ namespace SebWindowsConfig
|
|||
this.groupBox10.Controls.Add(this.textBoxLogDirectoryWin);
|
||||
this.groupBox10.Controls.Add(this.label4);
|
||||
this.groupBox10.Controls.Add(this.checkBoxUseStandardDirectory);
|
||||
this.groupBox10.Location = new System.Drawing.Point(583, 259);
|
||||
this.groupBox10.Location = new System.Drawing.Point(23, 381);
|
||||
this.groupBox10.Name = "groupBox10";
|
||||
this.groupBox10.Size = new System.Drawing.Size(555, 142);
|
||||
this.groupBox10.TabIndex = 95;
|
||||
|
@ -1517,7 +1519,7 @@ namespace SebWindowsConfig
|
|||
//
|
||||
this.checkBoxEnableScreenCapture.AutoSize = true;
|
||||
this.checkBoxEnableScreenCapture.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.checkBoxEnableScreenCapture.Location = new System.Drawing.Point(328, 259);
|
||||
this.checkBoxEnableScreenCapture.Location = new System.Drawing.Point(328, 278);
|
||||
this.checkBoxEnableScreenCapture.Margin = new System.Windows.Forms.Padding(2, 1, 2, 1);
|
||||
this.checkBoxEnableScreenCapture.Name = "checkBoxEnableScreenCapture";
|
||||
this.checkBoxEnableScreenCapture.Size = new System.Drawing.Size(191, 17);
|
||||
|
@ -1592,7 +1594,7 @@ namespace SebWindowsConfig
|
|||
//
|
||||
this.checkBoxAllowVirtualMachine.AutoSize = true;
|
||||
this.checkBoxAllowVirtualMachine.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.checkBoxAllowVirtualMachine.Location = new System.Drawing.Point(328, 297);
|
||||
this.checkBoxAllowVirtualMachine.Location = new System.Drawing.Point(328, 316);
|
||||
this.checkBoxAllowVirtualMachine.Margin = new System.Windows.Forms.Padding(2, 1, 2, 1);
|
||||
this.checkBoxAllowVirtualMachine.Name = "checkBoxAllowVirtualMachine";
|
||||
this.checkBoxAllowVirtualMachine.Size = new System.Drawing.Size(185, 17);
|
||||
|
@ -1828,8 +1830,8 @@ namespace SebWindowsConfig
|
|||
//
|
||||
// Type
|
||||
//
|
||||
dataGridViewCellStyle1.BackColor = System.Drawing.Color.Silver;
|
||||
this.Type.DefaultCellStyle = dataGridViewCellStyle1;
|
||||
dataGridViewCellStyle3.BackColor = System.Drawing.Color.Silver;
|
||||
this.Type.DefaultCellStyle = dataGridViewCellStyle3;
|
||||
this.Type.HeaderText = "Type";
|
||||
this.Type.Name = "Type";
|
||||
this.Type.ReadOnly = true;
|
||||
|
@ -4530,8 +4532,8 @@ namespace SebWindowsConfig
|
|||
// spellCheckerDictionaryFilesColumn
|
||||
//
|
||||
this.spellCheckerDictionaryFilesColumn.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
|
||||
dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
|
||||
this.spellCheckerDictionaryFilesColumn.DefaultCellStyle = dataGridViewCellStyle2;
|
||||
dataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
|
||||
this.spellCheckerDictionaryFilesColumn.DefaultCellStyle = dataGridViewCellStyle4;
|
||||
this.spellCheckerDictionaryFilesColumn.HeaderText = "Files";
|
||||
this.spellCheckerDictionaryFilesColumn.Name = "spellCheckerDictionaryFilesColumn";
|
||||
this.spellCheckerDictionaryFilesColumn.ReadOnly = true;
|
||||
|
@ -5928,6 +5930,17 @@ namespace SebWindowsConfig
|
|||
this.applyAndStartSEBToolStripMenuItem.Visible = false;
|
||||
this.applyAndStartSEBToolStripMenuItem.Click += new System.EventHandler(this.applyAndStartSEBToolStripMenuItem_Click);
|
||||
//
|
||||
// checkBoxEnforceBuiltinDisplay
|
||||
//
|
||||
this.checkBoxEnforceBuiltinDisplay.AutoSize = true;
|
||||
this.checkBoxEnforceBuiltinDisplay.Location = new System.Drawing.Point(617, 286);
|
||||
this.checkBoxEnforceBuiltinDisplay.Name = "checkBoxEnforceBuiltinDisplay";
|
||||
this.checkBoxEnforceBuiltinDisplay.Size = new System.Drawing.Size(193, 17);
|
||||
this.checkBoxEnforceBuiltinDisplay.TabIndex = 107;
|
||||
this.checkBoxEnforceBuiltinDisplay.Text = "Allow only internal displays (laptops)";
|
||||
this.checkBoxEnforceBuiltinDisplay.UseVisualStyleBackColor = true;
|
||||
this.checkBoxEnforceBuiltinDisplay.CheckedChanged += new System.EventHandler(this.checkBoxEnforceBuiltinDisplay_CheckedChanged);
|
||||
//
|
||||
// SebWindowsConfigForm
|
||||
//
|
||||
this.AllowDrop = true;
|
||||
|
@ -6485,6 +6498,7 @@ namespace SebWindowsConfig
|
|||
private System.Windows.Forms.DataGridViewComboBoxColumn dataGridViewComboBoxColumn1;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn1;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn2;
|
||||
private System.Windows.Forms.CheckBox checkBoxEnforceBuiltinDisplay;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -812,7 +812,7 @@ namespace SebWindowsConfig
|
|||
checkBoxAllowDisplayMirroring.Checked = (Boolean)SEBSettings.settingsCurrent[SEBSettings.KeyAllowDisplayMirroring];
|
||||
comboBoxAllowedDisplaysMaxNumber.Text = (String)SEBSettings.settingsCurrent[SEBSettings.KeyAllowedDisplaysMaxNumber].ToString();
|
||||
checkBoxAllowedDisplayBuiltin.Checked = (Boolean)SEBSettings.settingsCurrent[SEBSettings.KeyAllowedDisplayBuiltin];
|
||||
|
||||
checkBoxEnforceBuiltinDisplay.Checked = (Boolean)SEBSettings.settingsCurrent[SEBSettings.KeyAllowedDisplayBuiltinEnforce];
|
||||
|
||||
// Group "Registry"
|
||||
checkBoxInsideSebEnableSwitchUser.Checked = (Boolean)SEBSettings.settingsCurrent[SEBSettings.KeyInsideSebEnableSwitchUser];
|
||||
|
@ -4625,5 +4625,10 @@ namespace SebWindowsConfig
|
|||
{
|
||||
SEBSettings.settingsCurrent[SEBSettings.KeyNewBrowserWindowUrlPolicy] = comboBoxUrlPolicyNewWindow.SelectedIndex;
|
||||
}
|
||||
|
||||
private void checkBoxEnforceBuiltinDisplay_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
SEBSettings.settingsCurrent[SEBSettings.KeyAllowedDisplayBuiltinEnforce] = checkBoxEnforceBuiltinDisplay.Checked;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -131,7 +131,7 @@
|
|||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
|
||||
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAi
|
||||
1gAAAk1TRnQBSQFMAgEBDAEAAagBCwGoAQsBIAEAASABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAGA
|
||||
1gAAAk1TRnQBSQFMAgEBDAEAAcABCwHAAQsBIAEAASABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAGA
|
||||
AwABgAMAAQEBAAEgBwABAf8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
|
||||
/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
|
||||
/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A0QABjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGO
|
||||
|
@ -159,8 +159,8 @@
|
|||
Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA
|
||||
Af8DAAH/AwAB/wNUAe4QAAMyAVEDTQH6A00B+gNNAfoDTQH6A00B+gNNAfoDTQH6A00B+gNNAfoDTQH6
|
||||
A00B+gNNAfoDTQH6A00B+gNNAfoDTQH6A00B+gNNAfoDTQH6A00B+gNNAfoDTQH6AzYBWTQAAzIBUANc
|
||||
Ad8BsQGvAa0B/wGlAaIBoQH/AZIBjwGOAf8BhgGDAYIB/wGAATgBNwH/AYABOAE3Af8BgAE4ATcB/wGA
|
||||
ATgBNwH/AYABOAE3Af8BigGHAYYB/wGWAZMBkgH/AaUBogGgAf8BpgGjAaEB/wNUAa8DFwEgGAABjgGL
|
||||
Ad8BsQGvAa0B/wGlAaIBoQH/AZIBjwGOAf8BhgGDAYIB/wGAATUBNAH/AYABNQE0Af8BgAE1ATQB/wGA
|
||||
ATUBNAH/AYABNQE0Af8BigGHAYYB/wGWAZMBkgH/AaUBogGgAf8BpgGjAaEB/wNUAa8DFwEgGAABjgGL
|
||||
AQAB/wGOAYsBAAH/AbsBuQEAAf8C/gH9Af8C/gH9Af8C/gH9Af8C9AHmAf8BwgHAAQAB/wL+Af0B/wL+
|
||||
Af0B/wL+Af0B/wLwAd0B/wHGAcQBAAH/Av4B/QH/Av4B/QH/Av4B/QH/AekB6AHOAf8BqwGoAQAB/wGP
|
||||
AYwBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEA
|
||||
|
@ -168,16 +168,16 @@
|
|||
Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA
|
||||
Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/xAA
|
||||
AzQBVFj/AzgBXCwAAwwBEANRAZ8BtQGyAbAB/wGpAaYBpAH/AZIBjwGNAf8BhAGBAYAB/wGRAY4BjAH/
|
||||
AZkBlgGUAf8BjwGMAYoB/wGEAYEBgAH/AYABOAE3Af8BgAE4ATcB/wGAATgBNwH/AYABOAE3Af8BgAE4
|
||||
ATcB/wGAATgBNwH/AZEBjgGNAf8BpAGhAZ8B/wNiAe8DMgFQFAABjgGLAQAB/wGOAYsBAAH/AbsBuQEA
|
||||
AZkBlgGUAf8BjwGMAYoB/wGEAYEBgAH/AYABNQE0Af8BgAE1ATQB/wGAATUBNAH/AYABNQE0Af8BgAE1
|
||||
ATQB/wGAATUBNAH/AZEBjgGNAf8BpAGhAZ8B/wNiAe8DMgFQFAABjgGLAQAB/wGOAYsBAAH/AbsBuQEA
|
||||
Af8MAAL1AegB/wHCAcABAAH/DAAC8QHfAf8BxgHEAQAB/wwAAeoB6QHPAf8B0gHRAZoB/wG+AbwBAAH/
|
||||
AY8BjAEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGL
|
||||
AQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8DAAH/AwAB/wMAAf8DmgH/
|
||||
A6IB/wOiAf8DogH/A6IB/wOiAf8DogH/A6IB/wOiAf8DogH/A6IB/wOiAf8DogH/A6IB/wOiAf8DogH/
|
||||
A6IB/wOiAf8DogH/A6IB/wOiAf8DogH/A6IB/wOiAf8DogH/A5oB/wMAAf8DAAH/AwAB/xAAAzMBU1j/
|
||||
AzcBWygAAwwBEANcAc8BtwG0AbIB/wGfAZwBmwH/AYsBiAGHAf8BiQGGAYQB/wGYAZUBkwH/AakBpgGk
|
||||
Af8BpwGkAaIB/wGkAaEBnwH/AaIBnwGdAf8BlgGTAZEB/wGFAYIBgQH/AYABOAE3Af8BgAE4ATcB/wGA
|
||||
ATgBNwH/AYABOAE3Af8BgAE4ATcB/wGCAToBOQH/AZ0BmgGYAf8BpQGiAaAB/wM6AWAQAAGOAYsBAAH/
|
||||
Af8BpwGkAaIB/wGkAaEBnwH/AaIBnwGdAf8BlgGTAZEB/wGFAYIBgQH/AYABNQE0Af8BgAE1ATQB/wGA
|
||||
ATUBNAH/AYABNQE0Af8BgAE1ATQB/wGCATcBNgH/AZ0BmgGYAf8BpQGiAaAB/wM6AWAQAAGOAYsBAAH/
|
||||
AY4BiwEAAf8BuwG5AQAB/wwAAvUB6AH/AcIBwAEAAf8MAALxAd8B/wHGAcQBAAH/DAAB6gHpAc8B/wHS
|
||||
AdEBmgH/Ad0B3AGyAf8BxQHDAQAB/wGPAYwBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEA
|
||||
Af8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wMA
|
||||
|
@ -185,7 +185,7 @@
|
|||
Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DkwH/A6IB/wMA
|
||||
Af8DAAH/EAADMwFTWP8DNwFbKAADXAHPAbcBtAGyAf8BmwGYAZYB/wGQAY0BiwH/AY0BigGJAf8BiwGI
|
||||
AYcB/wGoAaUBowH/AaoBpwGlAf8BpwGkAaIB/wGmAaMBoQH/AaMBoAGeAf8BogGfAZ0B/wGdAZoBmAH/
|
||||
AY0BigGJAf8BgQE5ATgB/wGAATgBNwH/AYABOAE3Af8BgAE4ATcB/wGAATgBNwH/AYABOAE3Af8BmAGV
|
||||
AY0BigGJAf8BgQE2ATUB/wGAATUBNAH/AYABNQE0Af8BgAE1ATQB/wGAATUBNAH/AYABNQE0Af8BmAGV
|
||||
AZMB/wGlAaIBoAH/AzoBYAwAAY4BiwEAAf8BjgGLAQAB/wG7AbkBAAH/DAAC9QHoAf8BwgHAAQAB/wwA
|
||||
AvEB3wH/AcYBxAEAAf8MAAHqAekBzwH/AdIB0QGaAf8B3QHcAbIB/wHdAdwBsgH/Ac8BzgGSAf8BjgGL
|
||||
AQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/
|
||||
|
@ -194,7 +194,7 @@
|
|||
AwAB/wMAAf8DAAH/AwAB/wMAAf8DkwH/A5oB/wMAAf8QAAMzAVNY/wM3AVskAANMAY8BuwG4AbcB/wGh
|
||||
AZ4BnAH/AZQBkQGPAf8BkgGPAY0B/wGQAY0BiwH/AY0BigGJAf8BqgGnAaUB/wGqAacBpQH/AagBpQGj
|
||||
Af8BpwGkAaIB/wGkAaEBnwH/AaMBoAGeAf8BoQGeAZwB/wGhAZ4BnAH/AZ4BmwGZAf8BkQGOAYwB/wGC
|
||||
AToBOQH/AYABOAE3Af8BgAE4ATcB/wGAATgBNwH/AYABOAE3Af8BmAGVAZMB/wGlAaIBoAH/AyEBMAgA
|
||||
ATcBNgH/AYABNQE0Af8BgAE1ATQB/wGAATUBNAH/AYABNQE0Af8BmAGVAZMB/wGlAaIBoAH/AyEBMAgA
|
||||
AY4BiwEAAf8BjgGLAQAB/wGfAZwBAAH/AbgBtgEAAf8BuAG2AQAB/wG4AbYBAAH/AbQBsgEAAf8BoQGf
|
||||
AQAB/wG4AbYBAAH/AbgBtgEAAf8BuAG2AQAB/wGyAbABAAH/AacBpAEAAf8BvgG9AQAB/wG+Ab0BAAH/
|
||||
Ab4BvQEAAf8BuAG2AQAB/wHQAc8BlQH/Ad0B3AGyAf8B3QHcAbIB/wLqAdAB/wGOAYsBAAH/AY4BiwEA
|
||||
|
@ -204,7 +204,7 @@
|
|||
Af8DAAH/AwAB/wMAAf8DogH/AwAB/xAAAzMBU1j/AzcBWyAAAyoBQAG8AboBuAH/AasBqAGnAf8BmAGV
|
||||
AZMB/wGWAZMBkQH/AZQBkQGPAf8BkgGPAY0B/wGQAY0BiwH/AasBqAGmAf8BqwGoAaYB/wGpAaYBpAH/
|
||||
AacBpAGiAf8BpQGiAaAB/wGjAaABngH/AaEBngGcAf8BoQGeAZwB/wGhAZ4BnAH/AaEBngGcAf8BmwGY
|
||||
AZYB/wGBATkBOAH/AYABOAE3Af8BgAE4ATcB/wGAATgBNwH/AYIBOgE5Af8BoQGeAZ0B/wNcAc8IAAGO
|
||||
AZYB/wGBATYBNQH/AYABNQE0Af8BgAE1ATQB/wGAATUBNAH/AYIBNwE2Af8BoQGeAZ0B/wNcAc8IAAGO
|
||||
AYsBAAH/AY4BiwEAAf8BuwG5AQAB/wwAAvUB6AH/AcIBwAEAAf8MAALxAd8B/wGzAbEBAAH/AuYBxwH/
|
||||
Ae0B7AHWAf8B7QHsAdYB/wHtAewB1gH/AcQBwgEAAf8BzAHLAYwB/wHdAdwBsgH/AuoB0AH/AY4BiwEA
|
||||
Af8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGO
|
||||
|
@ -213,16 +213,16 @@
|
|||
AwAB/wMAAf8DogH/AwAB/xAAAzMBU1j/AzcBWyAAA1kBvwG6AbcBtQH/AZ0BmgGYAf8BmwGYAZYB/wGY
|
||||
AZUBkwH/AZYBkwGRAf8BlAGRAY8B/wGSAY8BjQH/AagBpQGjAf8BnQGaAZkB/wGqAacBpQH/AagBpQGj
|
||||
Af8BpgGjAaEB/wGkAaEBnwH/AaIBnwGdAf8BoQGeAZwB/wGhAZ4BnAH/AaEBngGcAf8BoQGeAZwB/wGF
|
||||
AYIBgAH/AYABOAE3Af8BgAE4ATcB/wGAATgBNwH/AYABOAE3Af8BigGHAYYB/wGmAaMBoQH/AzoBYAQA
|
||||
AYIBgAH/AYABNQE0Af8BgAE1ATQB/wGAATUBNAH/AYABNQE0Af8BigGHAYYB/wGmAaMBoQH/AzoBYAQA
|
||||
AY4BiwEAAf8BjgGLAQAB/wG7AbkBAAH/DAAC9QHoAf8BwgHAAQAB/wwAAvEB3wH/AcwBywGNAf8B0wHS
|
||||
AZwB/wHuAe0B2AH/Ae4B7QHYAf8B7gHtAdgB/wHuAe0B2AH/AacBpAEAAf8ByQHIAYUB/wLqAdAB/wGO
|
||||
AYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEA
|
||||
Af8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8DAAH/A6IB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA
|
||||
Af8DAAH/AwAB/wMAAf8DyAH/CAAD4wH/A6AB/wOtAf8IAAPIAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA
|
||||
Af8DAAH/AwAB/wMAAf8DogH/AwAB/xAAAzMBU1j/AzcBWxwAAyoBQAHAAb0BvAH/AawBqQGoAf8BnwGc
|
||||
AZoB/wGdAZoBmAH/AZsBmAGWAf8BmAGVAZMB/wExAS8BLQH/AwAB/wMAAf8DAAH/ATQBMQEwAf8BqQGm
|
||||
AZoB/wGdAZoBmAH/AZsBmAGWAf8BmAGVAZMB/wEuASwBKgH/AwAB/wMAAf8DAAH/ATEBLgEtAf8BqQGm
|
||||
AaQB/wGnAaQBogH/AaUBogGgAf8BowGgAZ4B/wGhAZ4BnAH/AaEBngGcAf8BoQGeAZwB/wGhAZ4BnAH/
|
||||
AYUBggGBAf8BgAE4ATcB/wGAATgBNwH/AYABOAE3Af8BgAE4ATcB/wGAATgBNwH/AZ0BmgGZAf8DXAHf
|
||||
AYUBggGBAf8BgAE1ATQB/wGAATUBNAH/AYABNQE0Af8BgAE1ATQB/wGAATUBNAH/AZ0BmgGZAf8DXAHf
|
||||
BAABjgGLAQAB/wGOAYsBAAH/AbsBuQEAAf8MAAL1AegB/wHCAcABAAH/DAAC8QHfAf8BzAHLAY0B/wHb
|
||||
AdoBrgH/EAABugG4AQAB/wHMAcsBjAH/AdYB1QGkAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGL
|
||||
AQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/
|
||||
|
@ -230,9 +230,9 @@
|
|||
Af8DAAH/AwAB/wgAA5EB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A6IB/wMAAf8QAAMz
|
||||
AVMI/wP+Af8D/gH/A/4B/wP+Af8D/gH/A/4B/wP+Af8D/gH/A/4B/wP+Af8D/gH/A/4B/wP+Af8D/gH/
|
||||
A/4B/wP+Af8D/gH/A/4B/wP+Bf8DNwFbHAADUQGfAb0BuwG5Af8BpAGhAZ8B/wGiAZ8BnQH/AZ8BnAGa
|
||||
Af8BnQGaAZgB/wGbAZgBlgH/AwAB/wMAAf8DAAH/AwAB/wEUAR0BIgH/AaoBpwGlAf8BqAGlAaMB/wGm
|
||||
AaMBoQH/AaQBoQGfAf8BogGfAZ0B/wGhAZ4BnAH/AaEBngGcAf8BngGbAZkB/wGAATgBNwH/AYABOAE3
|
||||
Af8BgAE4ATcB/wGAATgBNwH/AYABOAE3Af8BgAE4ATcB/wGMAYkBiAH/AacBpAGiAf8DIQEwAY4BiwEA
|
||||
Af8BnQGaAZgB/wGbAZgBlgH/AwAB/wMAAf8DAAH/AwAB/wERARoBHwH/AaoBpwGlAf8BqAGlAaMB/wGm
|
||||
AaMBoQH/AaQBoQGfAf8BogGfAZ0B/wGhAZ4BnAH/AaEBngGcAf8BngGbAZkB/wGAATUBNAH/AYABNQE0
|
||||
Af8BgAE1ATQB/wGAATUBNAH/AYABNQE0Af8BgAE1ATQB/wGMAYkBiAH/AacBpAGiAf8DIQEwAY4BiwEA
|
||||
Af8BjgGLAQAB/wG7AbkBAAH/DAAC9QHoAf8BwgHAAQAB/wwAAvEB3wH/AcwBywGNAf8B2wHaAa4B/xAA
|
||||
AboBuAEAAf8C3QGzAf8B1AHTAZ4B/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEA
|
||||
Af8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8DAAH/A6IB/wMA
|
||||
|
@ -240,9 +240,9 @@
|
|||
Af8DugH/BAADwAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DogH/AwAB/xAAAzMBUwT/
|
||||
A/4B/wP9Af8D/QH/A/0B/wP9Af8D/QH/A/0B/wP9Af8D/QH/A/0B/wP9Af8D/QH/A/0B/wP9Af8D/QH/
|
||||
A/0B/wP9Af8D/QH/A/0B/wP9Bf8DNwFbHAADXAHfAbYBtAGyAf8BpgGjAaEB/wGkAaEBnwH/AaIBnwGd
|
||||
Af8BnwGcAZoB/wGdAZoBmAH/ARUBEwESAf8DAAH/AQABjwG4Af8BAAGPAb0B/wEdAY0BpAH/AasBqAGm
|
||||
Af8BnwGcAZoB/wGdAZoBmAH/ARIBEAEPAf8DAAH/AQABjwG4Af8BAAGPAb0B/wEaAY0BpAH/AasBqAGm
|
||||
Af8BqQGmAaQB/wGnAaQBogH/AaUBogGgAf8BowGgAZ4B/wGhAZ4BnAH/AaEBngGcAf8BjwGMAYoB/wGE
|
||||
AYEBgAH/AYQBgQGAAf8BgAE4ATcB/wGAATgBNwH/AYABOAE3Af8BgAE4ATcB/wGAATgBNwH/AagBpQGj
|
||||
AYEBgAH/AYQBgQGAAf8BgAE1ATQB/wGAATUBNAH/AYABNQE0Af8BgAE1ATQB/wGAATUBNAH/AagBpQGj
|
||||
Af8DRwGAAY4BiwEAAf8BjgGLAQAB/wGfAZwBAAH/AbgBtgEAAf8BuAG2AQAB/wG4AbYBAAH/AbQBsgEA
|
||||
Af8BpAGhAQAB/wHLAcoBiwH/AcsBygGLAf8BywHKAYsB/wHIAccBgwH/Ab8BvgEAAf8B2wHaAa0B/xAA
|
||||
AboBuAEAAf8C3QGzAf8C6gHQAf8BjgGLAQAB/wGRAY4BAAH/AcwBywGMAf8BlwGUAQAB/wGOAYsBAAH/
|
||||
|
@ -251,10 +251,10 @@
|
|||
Af8DnAH/BAADzgH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DogH/AwAB/xAAAzMBUwP+
|
||||
Af8D/QH/A/0B/wP9Af8D/QH/A/0B/wP9Af8D/QH/A/0B/wP9Af8D/QH/A/0B/wP9Af8D/QH/A/0B/wP9
|
||||
Af8D/QH/A/0B/wP9Af8D/QH/A/0F/wM3AVsYAAMMARABxAHBAcAB/wGyAa8BrQH/AakBpgGkAf8BpgGj
|
||||
AaEB/wGkAaEBnwH/AaIBnwGdAf8BnwGcAZoB/wGDAYABOQH/AwAB/wEEAaQBygH/AQABkAG9Af8BHQGN
|
||||
AaEB/wGkAaEBnwH/AaIBnwGdAf8BnwGcAZoB/wGDAYABNgH/AwAB/wEBAaQBygH/AQABkAG9Af8BGgGN
|
||||
AaQB/wGsAakBpwH/AaoBpwGlAf8BqAGlAaMB/wGmAaMBoQH/AaQBoQGfAf8BngGbAZkB/wGRAY4BjQH/
|
||||
AZQBkQGPAf8BoQGeAZwB/wGgAZ0BmwH/AY8BjAGKAf8BgAE4ATcB/wGAATgBNwH/AYABOAE3Af8BgAE4
|
||||
ATcB/wGfAZwBmgH/A1QBrwGOAYsBAAH/AY4BiwEAAf8BuwG5AQAB/wwAAvUB6AH/AbkBtgEAAf8B1AHT
|
||||
AZQBkQGPAf8BoQGeAZwB/wGgAZ0BmwH/AY8BjAGKAf8BgAE1ATQB/wGAATUBNAH/AYABNQE0Af8BgAE1
|
||||
ATQB/wGfAZwBmgH/A1QBrwGOAYsBAAH/AY4BiwEAAf8BuwG5AQAB/wwAAvUB6AH/AbkBtgEAAf8B1AHT
|
||||
AZ4B/wHZAdgBqAH/AdkB2AGoAf8B2QHYAagB/wHFAcQBAAH/AaQBoQEAAf8BxQHDAQAB/wHFAcMBAAH/
|
||||
AcUBwwEAAf8BxQHDAQAB/wG4AbYBAAH/At0BswH/AuoB0AH/AZEBjgEAAf8C3AGxAf8EAAHrAeoB0QH/
|
||||
AZcBlAEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8DAAH/
|
||||
|
@ -262,10 +262,10 @@
|
|||
AwAB/wMAAf8DAAH/A9wB/wQAA7MB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A6IB/wMA
|
||||
Af8QAAMzAVMD/QH/A/0B/wP8Af8D/AH/A/wB/wP8Af8D/AH/A/wB/wP8Af8D/AH/A/wB/wP8Af8D/AH/
|
||||
A/wB/wP8Af8D/AH/A/wB/wP8Af8D/AH/A/wB/wP8Bf8DNwFbGAADKgFAAcQBwgHBAf8BvgG7AboB/wG2
|
||||
AbMBsQH/AasBqAGmAf8BpgGjAaEB/wGkAaEBnwH/AaIBnwGdAf8BnwGcAZoB/wEKAQgBBwH/AQABgwGZ
|
||||
Af8BAAGmAcoB/wEeAZIBpwH/Aa0BqgGoAf8BqwGoAaYB/wGlAaIBoAH/AZgBlQGTAf8BjwGMAYsB/wGJ
|
||||
AYYBhAH/AZEBjgGNAf8BoQGeAZwB/wGhAZ4BnAH/AaEBngGcAf8BnwGcAZoB/wGBATkBOAH/AYABOAE3
|
||||
Af8BgAE4ATcB/wGAATgBNwH/AZUBkgGQAf8DWQG/AY4BiwEAAf8BjgGLAQAB/wG7AbkBAAH/DAAC9QHo
|
||||
AbMBsQH/AasBqAGmAf8BpgGjAaEB/wGkAaEBnwH/AaIBnwGdAf8BnwGcAZoB/wEHAQUBBAH/AQABgwGZ
|
||||
Af8BAAGmAcoB/wEbAZIBpwH/Aa0BqgGoAf8BqwGoAaYB/wGlAaIBoAH/AZgBlQGTAf8BjwGMAYsB/wGJ
|
||||
AYYBhAH/AZEBjgGNAf8BoQGeAZwB/wGhAZ4BnAH/AaEBngGcAf8BnwGcAZoB/wGBATYBNQH/AYABNQE0
|
||||
Af8BgAE1ATQB/wGAATUBNAH/AZUBkgGQAf8DWQG/AY4BiwEAAf8BjgGLAQAB/wG7AbkBAAH/DAAC9QHo
|
||||
Af8ByAHGAYMB/wHWAdUBowH/AvIB4gH/AvIB4QH/AvIB4QH/AvIB4QH/Aa4BrAEAAf8B2wHaAa0B/wL4
|
||||
Ae8B/wL4Ae8B/wL4Ae8B/wHWAdUBowH/AcUBxAEAAf8B4AHfAbkB/wHcAdsBsQH/DAAB6wHqAdEB/wGX
|
||||
AZQBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wMAAf8DoQH/AwAB/wMA
|
||||
|
@ -273,10 +273,10 @@
|
|||
Af8LAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DoQH/AwAB/xAAAzMBUwP8Af8D+wH/
|
||||
A/oB/wP6Af8D+gH/A/oB/wP6Af8D+gH/A/oB/wP6Af8D+gH/A/oB/wP6Af8D+gH/A/oB/wP6Af8D+gH/
|
||||
A/oB/wP6Af8D+gH/A/oB/wP+Af8DNwFbGAADKgFAAcUBwwHCAf8BxAHBAcAB/wHCAcABvgH/Ab4BuwG6
|
||||
Af8BqgGnAaUB/wGmAaMBoQH/AaQBoQGfAf8BpAGhAZ8B/wGfAZwBmwH/AQABGAEjAf8BAwG9AdoB/wEg
|
||||
Af8BqgGnAaUB/wGmAaMBoQH/AaQBoQGfAf8BpAGhAZ8B/wGfAZwBmwH/AQABFQEgAf8BAAG9AdoB/wEd
|
||||
AZ4BrwH/Aa4BqwGpAf8BogGfAZ0B/wGSAY8BjQH/AZQBkQGPAf8BlAGRAZAB/wGLAYgBhwH/AZ4BmwGZ
|
||||
Af8BoQGeAZwB/wGhAZ4BnAH/AaEBngGcAf8BoQGeAZwB/wGGAYMBggH/AYABOAE3Af8BgAE4ATcB/wGA
|
||||
ATgBNwH/AZUBkgGRAf8DYgHvAY4BiwEAAf8BjgGLAQAB/wG7AbkBAAH/DAAC9QHoAf8ByAHGAYMB/wHZ
|
||||
Af8BoQGeAZwB/wGhAZ4BnAH/AaEBngGcAf8BoQGeAZwB/wGGAYMBggH/AYABNQE0Af8BgAE1ATQB/wGA
|
||||
ATUBNAH/AZUBkgGRAf8DYgHvAY4BiwEAAf8BjgGLAQAB/wG7AbkBAAH/DAAC9QHoAf8ByAHGAYMB/wHZ
|
||||
AdgBqQH/EAABvgG8AQAB/wHTAdIBnAH/AcwBygGLAf8B2wHaAa4B/wHbAdoBrgH/AdsB2gGuAf8BvwG+
|
||||
AQAB/wG7AboBAAH/Av4B/AH/EAABugG4AQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/
|
||||
AY4BiwEAAf8DAAH/A50B/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/
|
||||
|
@ -284,19 +284,19 @@
|
|||
Af8DnQH/AwAB/xAAAzMBUwP6Af8D+QH/A/kB/wP5Af8D+QH/A/kB/wP5Af8D+QH/A/kB/wP5Af8D+QH/
|
||||
A/kB/wP5Af8D+QH/A/kB/wP5Af8D+QH/A/kB/wP5Af8D+QH/A/kB/wP9Af8DNwFbGAADKgFAAccBxQHD
|
||||
Af8BxQHDAcIB/wHDAcABvwH/Ab0CuwH/Aa8BrgGwAf8BrAGqAagB/wGmAaMBoQH/AagBpQGjAf8BtwG0
|
||||
AbIB/wEUARwBHQH/AQABxAHfAf8BCQGpAb4B/wGOAaEBpgH/AZYBkwGRAf8BlAGRAY8B/wGZAZYBlAH/
|
||||
AbIB/wERARkBGgH/AQABxAHfAf8BBgGpAb4B/wGOAaEBpgH/AZYBkwGRAf8BlAGRAY8B/wGZAZYBlAH/
|
||||
AacBpAGiAf8BmwGYAZYB/wGjAaABngH/AaEBngGcAf8BoQGeAZwB/wGhAZ4BnAH/AaEBngGcAf8BhgGD
|
||||
AYIB/wGAATgBNwH/AYABOAE3Af8BgAE4ATcB/wGWAZMBkQH/AasBqAGmAf8BjgGLAQAB/wGOAYsBAAH/
|
||||
AYIB/wGAATUBNAH/AYABNQE0Af8BgAE1ATQB/wGWAZMBkQH/AasBqAGmAf8BjgGLAQAB/wGOAYsBAAH/
|
||||
AbsBuQEAAf8MAAL1AegB/wHIAcYBgwH/AdkB2AGoAf8QAAG+AbwBAAH/AdYB1QGiAf8B6AHnAcoB/wwA
|
||||
AdsB2gGuAf8B1wHWAaUB/wG2AbQBAAH/Av4B/AH/CAABwwHBAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGL
|
||||
AQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wMAAf8DmAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/
|
||||
AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wOwAf8D6wH/CAADngH/AwAB/wMAAf8DAAH/AwAB/wMA
|
||||
Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wOYAf8DAAH/EAADMwFTA/kB/wP5Af8D+AH/A/gB/wP4Af8D+AH/
|
||||
A/gB/wP4Af8D+AH/A/gB/wP4Af8D+AH/A/gB/wP4Af8D+AH/A/gB/wP4Af8D+AH/A/gB/wP4Af8D+AH/
|
||||
A/wB/wM3AVsYAAMqAUABqAHAAcUB/wE6AbIBwAH/AQgBogG8Af8BAAGaAbwB/wEAAZcBugH/ASsBqQG5
|
||||
Af8BrgGrAakB/wGrAagBpgH/AbgBtQGzAf8BOgE3ATYB/wEAAY8BoQH/AQABvwHbAf8BAAGiAcEB/wEu
|
||||
A/wB/wM3AVsYAAMqAUABqAHAAcUB/wE3AbIBwAH/AQUBogG8Af8BAAGaAbwB/wEAAZcBugH/ASgBqQG5
|
||||
Af8BrgGrAakB/wGrAagBpgH/AbgBtQGzAf8BNwE0ATMB/wEAAY8BoQH/AQABvwHbAf8BAAGiAcEB/wEr
|
||||
AZEBnQH/AaABnQGbAf8BnwGcAZoB/wGmAaMBoQH/AaYBowGhAf8BpAGhAZ8B/wGiAZ8BnQH/AaEBngGc
|
||||
Af8BoQGeAZwB/wGhAZ4BnAH/AYgBhQGEAf8BgAE4ATcB/wGAATgBNwH/AYABOAE3Af8BlgGTAZIB/wNZ
|
||||
Af8BoQGeAZwB/wGhAZ4BnAH/AYgBhQGEAf8BgAE1ATQB/wGAATUBNAH/AYABNQE0Af8BlgGTAZIB/wNZ
|
||||
Ab8BjgGLAQAB/wGOAYsBAAH/AZcBlAEAAf8BugG4AQAB/wG9AbwBAAH/Ab0BvAEAAf8BuwG6AQAB/wHG
|
||||
AcQBAAH/AdkB2AGoAf8QAAG+AbwBAAH/AdYB1QGiAf8C5wHKAf8MAAHbAdoBrgH/AuoB0AH/AY4BiwEA
|
||||
Af8BtgG0AQAB/wH+Af0B/AH/AcMBwgEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGO
|
||||
|
@ -304,10 +304,10 @@
|
|||
Af8DAAH/AwAB/wMAAf8DAAH/A7AB/wgAA9UB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/
|
||||
AwAB/wMAAf8DAAH/AwAB/wOUAf8DAAH/EAADMwFTA/gB/wP3Af8D9gH/A/YB/wP2Af8D9gH/A/YB/wP2
|
||||
Af8D9gH/A/YB/wP2Af8D9gH/A/YB/wP2Af8D9gH/A/YB/wP2Af8D9gH/A/YB/wP2Af8D9gH/A/oB/wM3
|
||||
AVsQAAMyAVADVAGvAVgCYgHvAQABmgG8Af8BAAGmAcYB/wEAAbgB1AH/AREBxgHfAf8BEAHCAdwB/wEA
|
||||
AZoBuAH/AboBuAG3Af8BuQG2AbUB/wG1AbMBsgH/ASoBhAGKAf8BAAGEAZwB/wEAAbsB1wH/AQABrgHP
|
||||
Af8BAAGVAb4B/wE6AZQBngH/AaoBpwGlAf8BqQGmAaQB/wGnAaQBogH/AaUBogGgAf8BowGgAZ4B/wGh
|
||||
AZ4BnAH/AaEBngGcAf8BoAGdAZsB/wGGAYMBggH/AYIBOgE5Af8BgAE4ATcB/wGAATgBNwH/AaIBnwGe
|
||||
AVsQAAMyAVADVAGvAVgCYgHvAQABmgG8Af8BAAGmAcYB/wEAAbgB1AH/AQ4BxgHfAf8BDQHCAdwB/wEA
|
||||
AZoBuAH/AboBuAG3Af8BuQG2AbUB/wG1AbMBsgH/AScBhAGKAf8BAAGEAZwB/wEAAbsB1wH/AQABrgHP
|
||||
Af8BAAGVAb4B/wE3AZQBngH/AaoBpwGlAf8BqQGmAaQB/wGnAaQBogH/AaUBogGgAf8BowGgAZ4B/wGh
|
||||
AZ4BnAH/AaEBngGcAf8BoAGdAZsB/wGGAYMBggH/AYIBNwE2Af8BgAE1ATQB/wGAATUBNAH/AaIBnwGe
|
||||
Af8DWQG/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/Aa4BrAEAAf8B3gHdAbQB/wHeAd0BtAH/Ad4B3QG0
|
||||
Af8BzwHOAZMB/wGpAacBAAH/Ab4BvAEAAf8BvgG8AQAB/wG+AbwBAAH/Ab4BvAEAAf8BtgG0AQAB/wHW
|
||||
AdUBogH/AucBygH/DAAB2wHaAa4B/wLqAdAB/wGOAYsBAAH/AY4BiwEAAf8BoQGeAQAB/wGOAYsBAAH/
|
||||
|
@ -316,10 +316,10 @@
|
|||
AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A48B/wMAAf8QAAMz
|
||||
AVMD9gH/A/UB/wP1Af8D9QH/A/UB/wP1Af8D9QH/A/UB/wP1Af8D9QH/A/UB/wP1Af8D9QH/A/UB/wP1
|
||||
Af8D9QH/A/UB/wP1Af8D9QH/A/UB/wP1Af8D+QH/AzcBWxEAAZABvwH/AQABjAG3Af8BAAGyAdIB/wEA
|
||||
AccB4QH/AREByQHhAf8BgQHHAdcB/wGaAcQBzAH/ASQBygHhAf8BAAGhAcIB/wElAZ0BsQH/AR4BmwGy
|
||||
Af8BAAGWAbYB/wEAAaABwgH/AQABrgHMAf8BAAG4AdYB/wEAAbMB0wH/AQABmgHBAf8BCwGIAaUB/wGr
|
||||
AccB4QH/AQ4ByQHhAf8BgQHHAdcB/wGaAcQBzAH/ASEBygHhAf8BAAGhAcIB/wEiAZ0BsQH/ARsBmwGy
|
||||
Af8BAAGWAbYB/wEAAaABwgH/AQABrgHMAf8BAAG4AdYB/wEAAbMB0wH/AQABmgHBAf8BCAGIAaUB/wGr
|
||||
AagBpgH/AaoBpwGlAf8BpwGkAaIB/wGmAaMBoQH/AaMBoAGeAf8BogGfAZ0B/wGhAZ4BnAH/AZ4BmwGZ
|
||||
Af8BhwGEAYIB/wGEAYEBgAH/AYIBOgE5Af8BgAE4ATcB/wGsAakBpwH/A0cBgAGOAYsBAAH/AY4BiwEA
|
||||
Af8BhwGEAYIB/wGEAYEBgAH/AYIBNwE2Af8BgAE1ATQB/wGsAakBpwH/A0cBgAGOAYsBAAH/AY4BiwEA
|
||||
Af8BjgGLAQAB/wGOAYsBAAH/Aa0BqwEAAf8C9gHsAf8C+QHxAf8C+QHxAf8B6wHqAdEB/wHVAdQBoQH/
|
||||
AvkB8QH/AvkB8QH/AvkB8QH/AecB5gHJAf8BtgG0AQAB/wHKAckBhgH/AdoB2QGrAf8B2gHZAasB/wHa
|
||||
AdkBqwH/AcQBwwEAAf8B6gHpAc8B/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEA
|
||||
|
@ -328,8 +328,8 @@
|
|||
AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DigH/AwAB/xAAAzMBUwP1Af8D9QH/A/QB/wP0
|
||||
Af8D9AH/A/QB/wP0Af8D9AH/A/QB/wP0Af8D9AH/A/QB/wP0Af8D9AH/A/QB/wP0Af8D9AH/A/QB/wP0
|
||||
Af8D9AH/A/QB/wP3Af8DNwFbEAABWAJiAe8BAAGeAcUB/wFXAlwB3wNZAb8ByQHHAcYB/wHHAcUBwwH/
|
||||
AcQBwgHBAf8BgQHGAdYB/wEJAbwB1gH/AQABogHDAf8BAAGuAc0B/wEAAbgB1QH/AQABugHXAf8BAAG6
|
||||
AdcB/wEAAboB1wH/AQABtQHVAf8BAAGhAccB/wEBAYsBrQH/AasBqAGmAf8BoQGeAZwB/wGpAaYBpAH/
|
||||
AcQBwgHBAf8BgQHGAdYB/wEGAbwB1gH/AQABogHDAf8BAAGuAc0B/wEAAbgB1QH/AQABugHXAf8BAAG6
|
||||
AdcB/wEAAboB1wH/AQABtQHVAf8BAAGhAccB/wEAAYsBrQH/AasBqAGmAf8BoQGeAZwB/wGpAaYBpAH/
|
||||
AaMBoAGeAf8BnAGZAZcB/wGbAZgBlgH/AZwBmQGXAf8BjwGMAYsB/wGJAYYBhAH/AYcBhAGCAf8BhAGB
|
||||
AYAB/wGRAY4BjQH/AbABrQGrAf8DIQEwAY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGL
|
||||
AQAB/wGcAZoBAAH/Ad8B3gG2Af8B4wHiAb8B/wHjAeIBvwH/Ad8B3gG2Af8BvwG9AQAB/wHjAeIBvwH/
|
||||
|
@ -339,9 +339,9 @@
|
|||
AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A9UB/xwAA/MB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA
|
||||
Af8DAAH/AwAB/wMAAf8DhQH/AwAB/xAAAzMBUwP0Af8D8wH/A/IB/wPyAf8D8gH/A/IB/wPyAf8D8gH/
|
||||
A/IB/wPyAf8D8gH/A/IB/wPyAf8D8gH/A/IB/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EB/wPzAf8DNwFb
|
||||
EAADUQGgAQQBqQHOAf8BWgJdAdMDMgFQAcsByQHIAf8ByAHGAcQB/wHFAcMBwgH/AZgBwgHLAf8BIQHI
|
||||
AeAB/wEAAbsB2QH/AQABuwHYAf8BAAG7AdgB/wEAAbwB2QH/AQABwAHbAf8BAgHFAd8B/wEGAcEB3QH/
|
||||
AQABlQG2Af8BAgEvAYsB/wGeAZsBmQH/AZsBmAGWAf8BoAGdAZsB/wGWAZMBkQH/AZQBkQGPAf8BkgGP
|
||||
EAADUQGgAQEBqQHOAf8BWgJdAdMDMgFQAcsByQHIAf8ByAHGAcQB/wHFAcMBwgH/AZgBwgHLAf8BHgHI
|
||||
AeAB/wEAAbsB2QH/AQABuwHYAf8BAAG7AdgB/wEAAbwB2QH/AQABwAHbAf8BAAHFAd8B/wEDAcEB3QH/
|
||||
AQABlQG2Af8BAAEsAYsB/wGeAZsBmQH/AZsBmAGWAf8BoAGdAZsB/wGWAZMBkQH/AZQBkQGPAf8BkgGP
|
||||
AY0B/wGQAY0BiwH/AY0BigGJAf8BiwGIAYcB/wGJAYYBhAH/AYcBhAGCAf8BoQGeAZwB/wNcAd8EAAGO
|
||||
AYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGdAZoBAAH/AaUBowEA
|
||||
Af8BpQGjAQAB/wGlAaMBAAH/AZwBmQEAAf8BowGhAQAB/wGlAaMBAAH/AaUBowEAAf8BpQGjAQAB/wGb
|
||||
|
@ -350,9 +350,9 @@
|
|||
AY4BiwEAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A5gB/yQAA74B/wMA
|
||||
Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/EAADMwFTA/IB/wPxAf8D8QH/
|
||||
A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EB/wPxAf8D8AH/A+0B/wPqAf8D6AH/
|
||||
A+gB/wPnAf8D5gH/A+cB/wM4AVwQAAM6AWABHQG0AdcB/wEAAZYBugH/AxwBJwNcAd8BygHIAccB/wHG
|
||||
AcQBwwH/AbsBwgHDAf8BIAHKAeEB/wEAAb4B2gH/AQABwQHdAf8BDwHHAeAB/wERAcgB4QH/ARoBwgHX
|
||||
Af8BFAGbAagB/wMAAf8DAAH/AYQBggGAAf8BpQGiAaAB/wGqAacBpQH/AaoBpwGlAf8BoAGdAZsB/wGW
|
||||
A+gB/wPnAf8D5gH/A+cB/wM4AVwQAAM6AWABGgG0AdcB/wEAAZYBugH/AxwBJwNcAd8BygHIAccB/wHG
|
||||
AcQBwwH/AbsBwgHDAf8BHQHKAeEB/wEAAb4B2gH/AQABwQHdAf8BDAHHAeAB/wEOAcgB4QH/ARcBwgHX
|
||||
Af8BEQGbAagB/wMAAf8DAAH/AYQBggGAAf8BpQGiAaAB/wGqAacBpQH/AaoBpwGlAf8BoAGdAZsB/wGW
|
||||
AZMBkQH/AZQBkQGPAf8BkgGPAY0B/wGQAY0BiwH/AY0BigGJAf8BiwGIAYcB/wGRAY4BjAH/AbMBsAGu
|
||||
Af8DRwGABAABjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGL
|
||||
AQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/
|
||||
|
@ -361,8 +361,8 @@
|
|||
Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A9oB/ysAAf8DAAH/AwAB/wMA
|
||||
Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/EAADMwFTA/EB/wPxAf8D8AH/A/AB/wPwAf8D8AH/
|
||||
A/AB/wPwAf8D8AH/A/AB/wPwAf8D8AH/A/AB/wPvAf8D7AH/A+QB/wPYAf8D0AH/A88B/wPQAf8DzAH/
|
||||
A8gB/wM1AVcQAAMMARABJwG3AdoB/wEAAaEBxQH/A0MBdwMyAVABywHJAcgB/wHJAccBxQH/AcUBwwHC
|
||||
Af8BNQHGAdcB/wEAAb8B2wH/AQoBsgHMAf8BjgG+AccB/wGpAbkBvAH/AbkBtwG1Af8BtwG0AbIB/wGk
|
||||
A8gB/wM1AVcQAAMMARABJAG3AdoB/wEAAaEBxQH/A0MBdwMyAVABywHJAcgB/wHJAccBxQH/AcUBwwHC
|
||||
Af8BMgHGAdcB/wEAAb8B2wH/AQcBsgHMAf8BjgG+AccB/wGpAbkBvAH/AbkBtwG1Af8BtwG0AbIB/wGk
|
||||
AaIBoAH/AasBqAGmAf8BsQGvAa0B/wGvAawBqgH/Aa0BqgGoAf8BqwGoAaYB/wGiAZ8BnQH/AZgBlQGT
|
||||
Af8BlgGTAZEB/wGUAZEBjwH/AZIBjwGNAf8BkAGNAYsB/wGNAYoBiQH/Aa0BqgGoAf8DXAHfAwwBEAQA
|
||||
AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGL
|
||||
|
@ -371,8 +371,8 @@
|
|||
AfkB/wGdAZsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8DAAH/AwAB/wMAAf8DAAH/
|
||||
AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/LwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/
|
||||
AwAB/wMAAf8QAAMzAVMD8AH/A+8B/wPuAf8D7gH/A+4B/wPuAf8D7gH/A+4B/wPuAf8D7gH/A+4B/wPu
|
||||
Af8D7gH/A+0B/wPoAf8D1gH/A7gB/wOnAf8DogH/A54B/wOeAf8DYQHmAxQBGxQAA1QBrwEXAbAB0wH/
|
||||
AVoCXQHTBAADVAGvAcsByQHIAf8BxwHFAcQB/wGTAcMBzAH/AQMBwwHeAf8BAAGaAboB/wG9AbsBugH/
|
||||
Af8D7gH/A+0B/wPoAf8D1gH/A7gB/wOnAf8DogH/A54B/wOeAf8DYQHmAxQBGxQAA1QBrwEUAbAB0wH/
|
||||
AVoCXQHTBAADVAGvAcsByQHIAf8BxwHFAcQB/wGTAcMBzAH/AQABwwHeAf8BAAGaAboB/wG9AbsBugH/
|
||||
AbwBugG4Af8BugG3AbYB/wG4AbYBtAH/AbYBswGyAf8BtAGyAbAB/wGyAa8BrQH/AbABrQGrAf8BrgGr
|
||||
AakB/wGrAagBpgH/AZ4BmwGZAf8BmwGYAZYB/wGYAZUBkwH/AZYBkwGRAf8BlAGRAY8B/wGSAY8BjQH/
|
||||
AagBpQGjAf8BtQGzAbEB/wMqAUAIAAGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEA
|
||||
|
@ -382,8 +382,8 @@
|
|||
AY4BiwEAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/
|
||||
AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/
|
||||
AwAB/wMAAf8DAAH/AwAB/xAAAzMBUwPuAf8D7QH/A+0B/wPtAf8D7QH/A+0B/wPtAf8D7QH/A+0B/wPt
|
||||
Af8D7QH/A+0B/wPtAf8D7AH/A+MB/wPKAf8DnQH/A4MB/wOGAf8DmAH/A2IB7wMnATsYAAM6AWABLQG6
|
||||
Ad0B/wEAAZMBugH/AxoBJAMMARADXAHPAY0BuAHEAf8BAgGlAcAB/wEAAbkB1gH/AQABngG+Af8BmAG2
|
||||
Af8D7QH/A+0B/wPtAf8D7AH/A+MB/wPKAf8DnQH/A4MB/wOGAf8DmAH/A2IB7wMnATsYAAM6AWABKgG6
|
||||
Ad0B/wEAAZMBugH/AxoBJAMMARADXAHPAY0BuAHEAf8BAAGlAcAB/wEAAbkB1gH/AQABngG+Af8BmAG2
|
||||
Ab0B/wG9AbsBuQH/Ab0BugG5Af8BuQG3AbUB/wG3AbQBsgH/AbUBsgGxAf8BswGwAa4B/wGxAa8BrQH/
|
||||
Aa0BqgGoAf8BogGfAZ0B/wGfAZwBmgH/AZ0BmgGYAf8BmwGYAZYB/wGYAZUBkwH/AZYBkwGRAf8BpAGh
|
||||
AZ8B/wG4AbUBswH/A0cBgAwAAY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGO
|
||||
|
@ -393,7 +393,7 @@
|
|||
Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/LwAB/wMAAf8DAAH/AwAB/wMA
|
||||
Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8QAAMzAVMD7QH/A+0B/wPsAf8D7AH/A+wB/wPsAf8D7AH/
|
||||
A+wB/wPsAf8D7AH/A+wB/wPsAf8D7AH/A+sB/wPfAf8DyQH/A+0B/wPwAf8D8QH/A2cB8gMrAUIcAAMM
|
||||
ARABOAHBAeIB/wEKAZ4BxwH/AVgCWgHAA1EBogEAAZgBuwH/AQABowHEAf8BAAG1AdMB/wEAAcIB3gH/
|
||||
ARABNQHBAeIB/wEHAZ4BxwH/AVgCWgHAA1EBogEAAZgBuwH/AQABowHEAf8BAAG1AdMB/wEAAcIB3gH/
|
||||
AQABsQHQAf8BoQG3Ab0B/wG+AbwBugH/Ab0BuwG5Af8BvQG6AbkB/wG6AbcBtQH/AbYBswGxAf8BsgGv
|
||||
Aa0B/wGuAasBqQH/AaYBowGhAf8BpAGhAZ8B/wGiAZ8BnQH/AZ8BnAGaAf8BnQGaAZgB/wGdAZoBmAH/
|
||||
Aa4BqwGpAf8BuQG3AbUB/wNRAZ8QAAGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEA
|
||||
|
@ -403,8 +403,8 @@
|
|||
AYsBAAH/AY4BiwEAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA
|
||||
Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA
|
||||
Af8DAAH/AwAB/wMAAf8DAAH/AwAB/xAAAzMBUwPsAf8D7AH/A+sB/wPrAf8D6wH/A+sB/wPrAf8D6wH/
|
||||
A+sB/wPrAf8D6wH/A+sB/wPrAf8D6QH/A9wB/wPHAf8D/gX/A2cB8gMsAUQkAANcAc8BJQG2AdsB/wEE
|
||||
AZcBwgH/AQIBngHGAf8BCwGxAdQB/wEXAb0B3AH/AR4BwAHbAf8BOQHCAdQB/wGjAcIByQH/AcIBwAG+
|
||||
A+sB/wPrAf8D6wH/A+sB/wPrAf8D6QH/A9wB/wPHAf8D/gX/A2cB8gMsAUQkAANcAc8BIgG2AdsB/wEB
|
||||
AZcBwgH/AQABngHGAf8BCAGxAdQB/wEUAb0B3AH/ARsBwAHbAf8BNgHCAdQB/wGjAcIByQH/AcIBwAG+
|
||||
Af8BvwG8AbsB/wG9AbsBuQH/AbsBuAG3Af8BugG3AbUB/wG0AbEBrwH/Aa0BqgGoAf8BqwGoAaYB/wGp
|
||||
AaYBpAH/AaYBowGhAf8BpAGhAZ8B/wGiAZ8BnQH/AacBpAGiAf8BuAG2AbQB/wG8AbkBuAH/A0ABcBQA
|
||||
AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGL
|
||||
|
@ -414,8 +414,8 @@
|
|||
AY4BiwEAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/
|
||||
AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/
|
||||
AwAB/wMAAf8DAAH/AwAB/xAAAzMBUwPqAf8D6gH/A+kB/wPpAf8D6QH/A+kB/wPpAf8D6QH/A+kB/wPp
|
||||
Af8D6QH/A+kB/wPpAf8D5gH/A9gB/wPGAf8D+AH/A2cB8gMtAUUoAANAAXABiwHKAegB/wE0Ab8B4QH/
|
||||
ATABuwHeAf8DVAGvAzoBYAMMARADRwGAA2IB7wHLAckByAH/AcYBxAHDAf8BwQG/Ab0B/wG8AbkBuAH/
|
||||
Af8D6QH/A+kB/wPpAf8D5gH/A9gB/wPGAf8D+AH/A2cB8gMtAUUoAANAAXABiwHKAegB/wExAb8B4QH/
|
||||
AS0BuwHeAf8DVAGvAzoBYAMMARADRwGAA2IB7wHLAckByAH/AcYBxAHDAf8BwQG/Ab0B/wG8AbkBuAH/
|
||||
AboBtwG2Af8BuQG2AbQB/wGvAawBqgH/Aa0BqgGoAf8BqwGoAaYB/wGsAakBpwH/AbABrQGsAf8BuwG4
|
||||
AbYB/wG/AbwBuwH/A1wBzwMhATAYAAGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEA
|
||||
Af8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGOAYsBAAH/AY4BiwEAAf8BjgGLAQAB/wGO
|
||||
|
@ -1053,6 +1053,9 @@
|
|||
<metadata name="toolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
<metadata name="toolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
<data name="labelSebServiceIgnore.Text" xml:space="preserve">
|
||||
<value>IMPORTANT: The SEB Service changes aspects of the system configuration, e.g. to lock down the security screen (CTRL+ALT+DEL). Some anti-virus software providers might falsely identify its operations as malicious, thus it is not recommended to use the SEB Service in uncontrolled environments (e.g. BYOD).</value>
|
||||
</data>
|
||||
|
@ -1066,12 +1069,36 @@
|
|||
<metadata name="dataGridViewTextBoxColumnName.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="Type.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="dataGridViewTextBoxColumnName.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="dataGridViewCheckBoxColumnProtocolEnable.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="dataGridViewTextBoxColumnProtocolType.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="dataGridViewCheckBoxColumnProtocolEnable.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="dataGridViewTextBoxColumnProtocolType.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="Active.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="OS.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="Executable.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="Title.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="Active.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
|
@ -1093,6 +1120,12 @@
|
|||
<metadata name="ArgumentParameter.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="ArgumentActive.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="ArgumentParameter.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<data name="checkBoxPermittedProcessAllowUser.ToolTip" xml:space="preserve">
|
||||
<value>Allow locating third party applications with a file dialog if it cannot be found at the paths specified. Only applications matching other criteria specified (like Original Name, executable) are accepted.</value>
|
||||
</data>
|
||||
|
@ -1108,6 +1141,18 @@
|
|||
<metadata name="dataGridViewTextBoxColumn2.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="dataGridViewCheckBoxColumn1.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="dataGridViewComboBoxColumn1.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="dataGridViewTextBoxColumn1.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="dataGridViewTextBoxColumn2.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<data name="label23.Text" xml:space="preserve">
|
||||
<value>The seb(s):// link to the config file can contain an additional query string, separated from the main URL by '?' or '??' (if the URL itself doesn't contain a query). SEB will then append this query string to the Start URL.</value>
|
||||
</data>
|
||||
|
@ -1140,6 +1185,15 @@ IMPORTANT: Always copy the key(s) as a last step, after the configuration file w
|
|||
<metadata name="spellCheckerDictionaryFilesColumn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="spellCheckerDictionaryEnabledColumn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="spellCheckerDictionaryLocaleColumn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="spellCheckerDictionaryFilesColumn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<data name="radioButtonTouchOptimized.ToolTip" xml:space="preserve">
|
||||
<value>To be used on Windows tablets. In Window 10, Tablet Mode needs to be activated. Not working with the Create New Desktop kiosk mode, you have to reconfigure the SEB client settings to Disable Explorer Shell.</value>
|
||||
</data>
|
||||
|
|
Loading…
Add table
Reference in a new issue