diff --git a/RDPSign/My Project/Application.Designer.vb b/RDPSign/My Project/Application.Designer.vb
new file mode 100644
index 0000000..88dd01c
--- /dev/null
+++ b/RDPSign/My Project/Application.Designer.vb
@@ -0,0 +1,13 @@
+'------------------------------------------------------------------------------
+'
+' This code was generated by a tool.
+' Runtime Version:4.0.30319.42000
+'
+' Changes to this file may cause incorrect behavior and will be lost if
+' the code is regenerated.
+'
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
diff --git a/RDPSign/My Project/Application.myapp b/RDPSign/My Project/Application.myapp
new file mode 100644
index 0000000..758895d
--- /dev/null
+++ b/RDPSign/My Project/Application.myapp
@@ -0,0 +1,10 @@
+
+
+ false
+ false
+ 0
+ true
+ 0
+ 1
+ true
+
diff --git a/RDPSign/My Project/AssemblyInfo.vb b/RDPSign/My Project/AssemblyInfo.vb
new file mode 100644
index 0000000..75057f9
--- /dev/null
+++ b/RDPSign/My Project/AssemblyInfo.vb
@@ -0,0 +1,35 @@
+Imports System
+Imports System.Reflection
+Imports System.Runtime.InteropServices
+
+' General Information about an assembly is controlled through the following
+' set of attributes. Change these attribute values to modify the information
+' associated with an assembly.
+
+' Review the values of the assembly attributes
+
+
+
+
+
+
+
+
+
+
+'The following GUID is for the ID of the typelib if this project is exposed to COM
+
+
+' Version information for an assembly consists of the following four values:
+'
+' Major Version
+' Minor Version
+' Build Number
+' Revision
+'
+' You can specify all the values or you can default the Build and Revision Numbers
+' by using the '*' as shown below:
+'
+
+
+
diff --git a/RDPSign/My Project/Resources.Designer.vb b/RDPSign/My Project/Resources.Designer.vb
new file mode 100644
index 0000000..2e1730e
--- /dev/null
+++ b/RDPSign/My Project/Resources.Designer.vb
@@ -0,0 +1,63 @@
+'------------------------------------------------------------------------------
+'
+' This code was generated by a tool.
+' Runtime Version:4.0.30319.42000
+'
+' Changes to this file may cause incorrect behavior and will be lost if
+' the code is regenerated.
+'
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
+Imports System
+
+Namespace My.Resources
+
+ 'This class was auto-generated by the StronglyTypedResourceBuilder
+ 'class via a tool like ResGen or Visual Studio.
+ 'To add or remove a member, edit your .ResX file then rerun ResGen
+ 'with the /str option, or rebuild your VS project.
+ '''
+ ''' A strongly-typed resource class, for looking up localized strings, etc.
+ '''
+ _
+ Friend Module Resources
+
+ Private resourceMan As Global.System.Resources.ResourceManager
+
+ Private resourceCulture As Global.System.Globalization.CultureInfo
+
+ '''
+ ''' Returns the cached ResourceManager instance used by this class.
+ '''
+ _
+ Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager
+ Get
+ If Object.ReferenceEquals(resourceMan, Nothing) Then
+ Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("RDPSign.Resources", GetType(Resources).Assembly)
+ resourceMan = temp
+ End If
+ Return resourceMan
+ End Get
+ End Property
+
+ '''
+ ''' Overrides the current thread's CurrentUICulture property for all
+ ''' resource lookups using this strongly typed resource class.
+ '''
+ _
+ Friend Property Culture() As Global.System.Globalization.CultureInfo
+ Get
+ Return resourceCulture
+ End Get
+ Set
+ resourceCulture = value
+ End Set
+ End Property
+ End Module
+End Namespace
diff --git a/RDPSign/My Project/Resources.resx b/RDPSign/My Project/Resources.resx
new file mode 100644
index 0000000..af7dbeb
--- /dev/null
+++ b/RDPSign/My Project/Resources.resx
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/RDPSign/My Project/Settings.Designer.vb b/RDPSign/My Project/Settings.Designer.vb
new file mode 100644
index 0000000..d1e8261
--- /dev/null
+++ b/RDPSign/My Project/Settings.Designer.vb
@@ -0,0 +1,73 @@
+'------------------------------------------------------------------------------
+'
+' This code was generated by a tool.
+' Runtime Version:4.0.30319.42000
+'
+' Changes to this file may cause incorrect behavior and will be lost if
+' the code is regenerated.
+'
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
+
+Namespace My
+
+ _
+ Partial Friend NotInheritable Class MySettings
+ Inherits Global.System.Configuration.ApplicationSettingsBase
+
+ Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings)
+
+#Region "My.Settings Auto-Save Functionality"
+#If _MyType = "WindowsForms" Then
+ Private Shared addedHandler As Boolean
+
+ Private Shared addedHandlerLockObject As New Object
+
+ _
+ Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs)
+ If My.Application.SaveMySettingsOnExit Then
+ My.Settings.Save()
+ End If
+ End Sub
+#End If
+#End Region
+
+ Public Shared ReadOnly Property [Default]() As MySettings
+ Get
+
+#If _MyType = "WindowsForms" Then
+ If Not addedHandler Then
+ SyncLock addedHandlerLockObject
+ If Not addedHandler Then
+ AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings
+ addedHandler = True
+ End If
+ End SyncLock
+ End If
+#End If
+ Return defaultInstance
+ End Get
+ End Property
+ End Class
+End Namespace
+
+Namespace My
+
+ _
+ Friend Module MySettingsProperty
+
+ _
+ Friend ReadOnly Property Settings() As Global.RDPSign.My.MySettings
+ Get
+ Return Global.RDPSign.My.MySettings.Default
+ End Get
+ End Property
+ End Module
+End Namespace
diff --git a/RDPSign/My Project/Settings.settings b/RDPSign/My Project/Settings.settings
new file mode 100644
index 0000000..85b890b
--- /dev/null
+++ b/RDPSign/My Project/Settings.settings
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/RDPSign/RDPSign.vb b/RDPSign/RDPSign.vb
new file mode 100644
index 0000000..303149b
--- /dev/null
+++ b/RDPSign/RDPSign.vb
@@ -0,0 +1,140 @@
+Imports System.Windows.Forms
+
+Public Class RDPSign
+ Public ErrorNumber As Integer = 0
+ Public ErrorString As String = ""
+
+ Sub main()
+
+ End Sub
+
+ '''
+ ''' Get all Certificate friendly names
+ '''
+ ''' String array of Certificate friendly names
+ Function GetCertificateFriendlyName()
+ Dim CertStoreLM As Security.Cryptography.X509Certificates.X509Store
+ Dim CertStoreCU As Security.Cryptography.X509Certificates.X509Store
+ CertStoreLM = GetCertificateStoreLM()
+ CertStoreCU = GetCertificateStoreCU()
+
+ Dim FriendlyNames(CertStoreLM.Certificates.Count + CertStoreCU.Certificates.Count) As String
+ Dim Counter As Integer = 0
+ For Each Certificate In CertStoreLM.Certificates
+ If Certificate.FriendlyName IsNot "" Then
+ FriendlyNames(Counter) = Certificate.FriendlyName
+ Counter = Counter + 1
+ End If
+ Next
+ For Each Certificate In CertStoreCU.Certificates
+ If Certificate.FriendlyName IsNot "" Then
+ FriendlyNames(Counter) = Certificate.FriendlyName
+ Counter = Counter + 1
+ End If
+ Next
+ Array.Resize(FriendlyNames, Counter)
+ Return FriendlyNames
+ End Function
+
+ '''
+ ''' Open the Local Machine certificate store and return it to the calling function/sub
+ '''
+ ''' Certificate Store
+ Function GetCertificateStoreLM()
+ Dim CertStore As New Security.Cryptography.X509Certificates.X509Store(Security.Cryptography.X509Certificates.StoreLocation.LocalMachine)
+ CertStore.Open(Security.Cryptography.X509Certificates.OpenFlags.ReadOnly)
+ Return CertStore
+ End Function
+
+ '''
+ ''' Open the Current User certificate store and return it to the calling function/sub
+ '''
+ ''' Certificate Store
+ Function GetCertificateStoreCU()
+ Dim CertStore As New Security.Cryptography.X509Certificates.X509Store(Security.Cryptography.X509Certificates.StoreLocation.CurrentUser)
+ CertStore.Open(Security.Cryptography.X509Certificates.OpenFlags.ReadOnly)
+ Return CertStore
+ End Function
+
+ '''
+ ''' Given a friendly name, find and return the associated thumbprint
+ '''
+ ''' String of the Friendly Name of a certificate
+ ''' String of the thumbprint of the certificate
+ Function GetThumbprint(FriendlyName As String)
+ Dim Thumbprint As String
+ Dim CertStoreLM As Security.Cryptography.X509Certificates.X509Store
+ CertStoreLM = GetCertificateStoreLM()
+ For Each certificate In CertStoreLM.Certificates
+ If certificate.FriendlyName = FriendlyName Then
+ Thumbprint = certificate.Thumbprint
+ CertStoreLM.Close()
+ Return Thumbprint
+ End If
+ Next
+ CertStoreLM.Close()
+ Dim CertStoreCU As Security.Cryptography.X509Certificates.X509Store
+ CertStoreCU = GetCertificateStoreCU()
+ For Each certificate In CertStoreCU.Certificates
+ If certificate.FriendlyName = FriendlyName Then
+ Thumbprint = certificate.Thumbprint
+ CertStoreCU.Close()
+ Return Thumbprint
+ End If
+ Next
+ ' We could get here if something went wrong such as Certificate was removed from certificate store after it was loaded into the application
+ ' return an invalid thumbprint
+ Return "0000"
+ End Function
+
+ '''
+ ''' Sign an RDP file and make a backup of the unsigned one if requested
+ '''
+ ''' Thumbprint used to sign RDP file
+ ''' Location of RDP file
+ ''' Boolean indicating if a backup should be created or not
+ Sub SignRDP(Thumbprint As String, RDPFileLocation As String, CreateBackup As Boolean)
+ If Thumbprint = "0000" Then
+ 'Invalid thumbprint, this should be handled on the application side, but just as a safety, return without doing any work if invalid thumbprint sent
+ Return
+ End If
+ If CreateBackup Then
+ Dim BackupFile = System.IO.Path.GetDirectoryName(RDPFileLocation) & "\" & System.IO.Path.GetFileNameWithoutExtension(RDPFileLocation) & "-Unsigned.rdp"
+ System.IO.File.Copy(RDPFileLocation, BackupFile, True) 'backup file with overwrite
+ End If
+
+ 'If we get here, we should be good to run the command to sign the RDP file.
+ Dim Command As String = GetSysDir() & "\rdpsign.exe"
+ If My.Computer.FileSystem.FileExists(Command) Then
+ Dim Arguments As String
+ Dim FileVersionInfo As FileVersionInfo = FileVersionInfo.GetVersionInfo(Command)
+ ' On my windows 10 computer, the argument is /sha256 instead of /sha1. /sha1 doesn't work.
+ ' On my windows 10 computer, the Product parts come in at 10.0.18362.1
+ ' On a Windows Server 2008 R2 server I have access to, the argument is /sha1.
+ ' On a Windows Server 2008 R2 server I have access to, the Product parts come in at 6.1.7601.17514 which is lower than the windows 10 ones.
+ ' I do not have other versions of windows to test, so will need external testing for this.
+ ' Not sure where the version number switches over, but also not sure how to determine which method to use otherwise
+ If (FileVersionInfo.ProductMajorPart >= 10) Then
+ Arguments = " /sha256 " & Thumbprint & " """ & RDPFileLocation & """"
+
+ Else
+ Arguments = " /sha1 " & Thumbprint & " """ & RDPFileLocation & """"
+ End If
+ Dim StartInfo As New ProcessStartInfo
+ StartInfo.FileName = Command
+ StartInfo.Arguments = Arguments
+ StartInfo.WindowStyle = ProcessWindowStyle.Hidden
+ Process.Start(StartInfo)
+ Else
+ MessageBox.Show("RDPSign executable not found:" & vbNewLine & vbNewLine & Command, My.Application.Info.AssemblyName, MessageBoxButtons.OK, MessageBoxIcon.Error)
+ End If
+
+ End Sub
+
+ Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
+
+ Function GetSysDir() As String
+ Return Environment.SystemDirectory.ToString
+ End Function
+
+End Class
diff --git a/RDPSign/RDPSign.vbproj b/RDPSign/RDPSign.vbproj
new file mode 100644
index 0000000..0733cbf
--- /dev/null
+++ b/RDPSign/RDPSign.vbproj
@@ -0,0 +1,107 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {57DABB69-B1D3-445F-91E7-B0412ABAC218}
+ Library
+ RDPSign
+ RDPSign
+ 512
+ Windows
+ v4.0
+ true
+
+
+
+ true
+ full
+ true
+ true
+ bin\Debug\
+ RDPSign.xml
+ 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022
+
+
+ pdbonly
+ false
+ true
+ true
+ bin\Release\
+ RDPSign.xml
+ 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022
+
+
+ On
+
+
+ Binary
+
+
+ Off
+
+
+ On
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ True
+ Application.myapp
+
+
+ True
+ True
+ Resources.resx
+
+
+ True
+ Settings.settings
+ True
+
+
+
+
+
+ VbMyResourcesResXFileCodeGenerator
+ Resources.Designer.vb
+ My.Resources
+ Designer
+
+
+
+
+ MyApplicationCodeGenerator
+ Application.Designer.vb
+
+
+ SettingsSingleFileGenerator
+ My
+ Settings.Designer.vb
+
+
+
+
\ No newline at end of file
diff --git a/remoteapp-tool/App.config b/remoteapp-tool/App.config
index 947e0e1..1fc2692 100644
--- a/remoteapp-tool/App.config
+++ b/remoteapp-tool/App.config
@@ -67,6 +67,15 @@
False
+
+ False
+
+
+ False
+
+
+ 0
+
diff --git a/remoteapp-tool/My Project/Settings.Designer.vb b/remoteapp-tool/My Project/Settings.Designer.vb
index b5bc9fb..f815b00 100644
--- a/remoteapp-tool/My Project/Settings.Designer.vb
+++ b/remoteapp-tool/My Project/Settings.Designer.vb
@@ -15,7 +15,7 @@ Option Explicit On
Namespace My
_
Partial Friend NotInheritable Class MySettings
Inherits Global.System.Configuration.ApplicationSettingsBase
@@ -29,7 +29,7 @@ Namespace My
Private Shared addedHandlerLockObject As New Object
_
- Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs)
+ Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs)
If My.Application.SaveMySettingsOnExit Then
My.Settings.Save()
End If
@@ -281,6 +281,42 @@ Namespace My
Me("SavedDisableFTA") = value
End Set
End Property
+
+ _
+ Public Property SavedSignRDP() As Boolean
+ Get
+ Return CType(Me("SavedSignRDP"),Boolean)
+ End Get
+ Set
+ Me("SavedSignRDP") = value
+ End Set
+ End Property
+
+ _
+ Public Property SavedSignedAndUnsigned() As Boolean
+ Get
+ Return CType(Me("SavedSignedAndUnsigned"),Boolean)
+ End Get
+ Set
+ Me("SavedSignedAndUnsigned") = value
+ End Set
+ End Property
+
+ _
+ Public Property SavedCertSelected() As Integer
+ Get
+ Return CType(Me("SavedCertSelected"),Integer)
+ End Get
+ Set
+ Me("SavedCertSelected") = value
+ End Set
+ End Property
End Class
End Namespace
diff --git a/remoteapp-tool/My Project/Settings.settings b/remoteapp-tool/My Project/Settings.settings
index ecf7582..84933ab 100644
--- a/remoteapp-tool/My Project/Settings.settings
+++ b/remoteapp-tool/My Project/Settings.settings
@@ -59,5 +59,14 @@
False
+
+ False
+
+
+ False
+
+
+ 0
+
\ No newline at end of file
diff --git a/remoteapp-tool/RemoteApp Tool.sln b/remoteapp-tool/RemoteApp Tool.sln
index 0c0c61a..43e251d 100644
--- a/remoteapp-tool/RemoteApp Tool.sln
+++ b/remoteapp-tool/RemoteApp Tool.sln
@@ -1,9 +1,12 @@
Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Express 2012 for Windows Desktop
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.29424.173
+MinimumVisualStudioVersion = 10.0.40219.1
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "RemoteApp Tool", "RemoteApp Tool.vbproj", "{2D140FE4-0794-43AC-BE7B-9D918B3F9C61}"
ProjectSection(ProjectDependencies) = postProject
{785B6808-B2FE-4C18-9D63-6DAB46482374} = {785B6808-B2FE-4C18-9D63-6DAB46482374}
+ {57DABB69-B1D3-445F-91E7-B0412ABAC218} = {57DABB69-B1D3-445F-91E7-B0412ABAC218}
{E1CB5F9C-230F-4967-8F19-335F8E4A4906} = {E1CB5F9C-230F-4967-8F19-335F8E4A4906}
{258307D5-A407-4622-BF1A-BDCA8E3D2FAA} = {258307D5-A407-4622-BF1A-BDCA8E3D2FAA}
EndProjectSection
@@ -19,6 +22,8 @@ Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "RDP2MSI", "..\RDP2MSI\RDP2M
EndProject
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "RDPFileLib", "..\RDPFileLib\RDPFileLib.vbproj", "{258307D5-A407-4622-BF1A-BDCA8E3D2FAA}"
EndProject
+Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "RDPSign", "..\RDPSign\RDPSign.vbproj", "{57DABB69-B1D3-445F-91E7-B0412ABAC218}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -45,8 +50,15 @@ Global
{258307D5-A407-4622-BF1A-BDCA8E3D2FAA}.Debug|Any CPU.Build.0 = Debug|Any CPU
{258307D5-A407-4622-BF1A-BDCA8E3D2FAA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{258307D5-A407-4622-BF1A-BDCA8E3D2FAA}.Release|Any CPU.Build.0 = Release|Any CPU
+ {57DABB69-B1D3-445F-91E7-B0412ABAC218}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {57DABB69-B1D3-445F-91E7-B0412ABAC218}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {57DABB69-B1D3-445F-91E7-B0412ABAC218}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {57DABB69-B1D3-445F-91E7-B0412ABAC218}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {A28F1460-A9C1-44A4-A7C9-D8C210745F31}
+ EndGlobalSection
EndGlobal
diff --git a/remoteapp-tool/RemoteApp Tool.vbproj b/remoteapp-tool/RemoteApp Tool.vbproj
index bd5dde1..6f10e15 100644
--- a/remoteapp-tool/RemoteApp Tool.vbproj
+++ b/remoteapp-tool/RemoteApp Tool.vbproj
@@ -276,6 +276,10 @@
{258307d5-a407-4622-bf1a-bdca8e3d2faa}
RDPFileLib
+
+ {57dabb69-b1d3-445f-91e7-b0412abac218}
+ RDPSign
+
{785b6808-b2fe-4c18-9d63-6dab46482374}
RemoteAppLib
diff --git a/remoteapp-tool/RemoteAppCreateClientConnection.Designer.vb b/remoteapp-tool/RemoteAppCreateClientConnection.Designer.vb
index e532e3f..b7198b8 100644
--- a/remoteapp-tool/RemoteAppCreateClientConnection.Designer.vb
+++ b/remoteapp-tool/RemoteAppCreateClientConnection.Designer.vb
@@ -67,16 +67,23 @@ Partial Class RemoteAppCreateClientConnection
Me.FileTypesGroupBox = New System.Windows.Forms.GroupBox()
Me.FTACountLabel = New System.Windows.Forms.Label()
Me.DisabledFTACheckBox = New System.Windows.Forms.CheckBox()
+ Me.GroupBoxSignRDP = New System.Windows.Forms.GroupBox()
+ Me.CheckBoxCreateSignedAndUnsigned = New System.Windows.Forms.CheckBox()
+ Me.CertificateComboBox = New System.Windows.Forms.ComboBox()
+ Me.CertificateLabel = New System.Windows.Forms.Label()
+ Me.CheckBoxSignRDPEnabled = New System.Windows.Forms.CheckBox()
Me.ServerGroupBox.SuspendLayout()
Me.RDGWGroupBox.SuspendLayout()
Me.ClientConnectionGroupBox.SuspendLayout()
Me.MSIGroupBox.SuspendLayout()
Me.Panel1.SuspendLayout()
Me.FileTypesGroupBox.SuspendLayout()
+ Me.GroupBoxSignRDP.SuspendLayout()
Me.SuspendLayout()
'
'EditAfterSave
'
+ Me.EditAfterSave.BackColor = System.Drawing.Color.Transparent
Me.EditAfterSave.ImageIndex = 2
Me.EditAfterSave.ImageList = Me.SmallerIcons
Me.EditAfterSave.Location = New System.Drawing.Point(313, 13)
@@ -85,7 +92,7 @@ Partial Class RemoteAppCreateClientConnection
Me.EditAfterSave.TabIndex = 2
Me.EditAfterSave.Text = "Manually edit RDP file"
Me.EditAfterSave.TextImageRelation = System.Windows.Forms.TextImageRelation.TextBeforeImage
- Me.EditAfterSave.UseVisualStyleBackColor = True
+ Me.EditAfterSave.UseVisualStyleBackColor = False
'
'SmallerIcons
'
@@ -107,10 +114,10 @@ Partial Class RemoteAppCreateClientConnection
Me.CreateButton.Font = New System.Drawing.Font("Segoe UI", 9.0!)
Me.CreateButton.ImageIndex = 6
Me.CreateButton.ImageList = Me.SmallerIcons
- Me.CreateButton.Location = New System.Drawing.Point(416, 482)
+ Me.CreateButton.Location = New System.Drawing.Point(416, 555)
Me.CreateButton.Name = "CreateButton"
Me.CreateButton.Size = New System.Drawing.Size(80, 29)
- Me.CreateButton.TabIndex = 8
+ Me.CreateButton.TabIndex = 9
Me.CreateButton.Text = "Create..."
Me.CreateButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText
Me.CreateButton.UseVisualStyleBackColor = False
@@ -128,10 +135,10 @@ Partial Class RemoteAppCreateClientConnection
Me.CancelEditButton.Font = New System.Drawing.Font("Segoe UI", 9.0!)
Me.CancelEditButton.ImageIndex = 4
Me.CancelEditButton.ImageList = Me.SmallerIcons
- Me.CancelEditButton.Location = New System.Drawing.Point(343, 482)
+ Me.CancelEditButton.Location = New System.Drawing.Point(343, 555)
Me.CancelEditButton.Name = "CancelEditButton"
Me.CancelEditButton.Size = New System.Drawing.Size(67, 29)
- Me.CancelEditButton.TabIndex = 7
+ Me.CancelEditButton.TabIndex = 8
Me.CancelEditButton.Text = "Cancel"
Me.CancelEditButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText
Me.CancelEditButton.UseVisualStyleBackColor = False
@@ -158,7 +165,7 @@ Partial Class RemoteAppCreateClientConnection
Me.Label13.Location = New System.Drawing.Point(7, 54)
Me.Label13.Name = "Label13"
Me.Label13.Size = New System.Drawing.Size(101, 15)
- Me.Label13.TabIndex = 104
+ Me.Label13.TabIndex = 4
Me.Label13.Text = "Alternative server:"
'
'Label14
@@ -167,7 +174,7 @@ Partial Class RemoteAppCreateClientConnection
Me.Label14.Location = New System.Drawing.Point(382, 25)
Me.Label14.Name = "Label14"
Me.Label14.Size = New System.Drawing.Size(32, 15)
- Me.Label14.TabIndex = 105
+ Me.Label14.TabIndex = 2
Me.Label14.Text = "Port:"
'
'Label12
@@ -176,7 +183,7 @@ Partial Class RemoteAppCreateClientConnection
Me.Label12.Location = New System.Drawing.Point(7, 25)
Me.Label12.Name = "Label12"
Me.Label12.Size = New System.Drawing.Size(85, 15)
- Me.Label12.TabIndex = 106
+ Me.Label12.TabIndex = 0
Me.Label12.Text = "Server address:"
'
'ServerPort
@@ -184,7 +191,7 @@ Partial Class RemoteAppCreateClientConnection
Me.ServerPort.Location = New System.Drawing.Point(420, 22)
Me.ServerPort.Name = "ServerPort"
Me.ServerPort.Size = New System.Drawing.Size(53, 23)
- Me.ServerPort.TabIndex = 1
+ Me.ServerPort.TabIndex = 3
Me.ServerPort.Text = "3389"
'
'AltServerAddress
@@ -192,14 +199,14 @@ Partial Class RemoteAppCreateClientConnection
Me.AltServerAddress.Location = New System.Drawing.Point(121, 51)
Me.AltServerAddress.Name = "AltServerAddress"
Me.AltServerAddress.Size = New System.Drawing.Size(352, 23)
- Me.AltServerAddress.TabIndex = 2
+ Me.AltServerAddress.TabIndex = 5
'
'ServerAddress
'
Me.ServerAddress.Location = New System.Drawing.Point(121, 22)
Me.ServerAddress.Name = "ServerAddress"
Me.ServerAddress.Size = New System.Drawing.Size(255, 23)
- Me.ServerAddress.TabIndex = 0
+ Me.ServerAddress.TabIndex = 1
'
'RDGWGroupBox
'
@@ -222,7 +229,7 @@ Partial Class RemoteAppCreateClientConnection
Me.AttemptDirectCheckBox.Location = New System.Drawing.Point(10, 76)
Me.AttemptDirectCheckBox.Name = "AttemptDirectCheckBox"
Me.AttemptDirectCheckBox.Size = New System.Drawing.Size(326, 19)
- Me.AttemptDirectCheckBox.TabIndex = 2
+ Me.AttemptDirectCheckBox.TabIndex = 3
Me.AttemptDirectCheckBox.Text = "Only use RD Gateway if direct connection is unsuccessful"
Me.AttemptDirectCheckBox.UseVisualStyleBackColor = True
'
@@ -243,7 +250,7 @@ Partial Class RemoteAppCreateClientConnection
Me.RDGWLabel.Location = New System.Drawing.Point(7, 50)
Me.RDGWLabel.Name = "RDGWLabel"
Me.RDGWLabel.Size = New System.Drawing.Size(116, 15)
- Me.RDGWLabel.TabIndex = 110
+ Me.RDGWLabel.TabIndex = 1
Me.RDGWLabel.Text = "RD Gateway address:"
'
'GatewayAddress
@@ -252,7 +259,7 @@ Partial Class RemoteAppCreateClientConnection
Me.GatewayAddress.Location = New System.Drawing.Point(145, 47)
Me.GatewayAddress.Name = "GatewayAddress"
Me.GatewayAddress.Size = New System.Drawing.Size(328, 23)
- Me.GatewayAddress.TabIndex = 1
+ Me.GatewayAddress.TabIndex = 2
'
'ClientConnectionGroupBox
'
@@ -293,6 +300,7 @@ Partial Class RemoteAppCreateClientConnection
'
'CreateRAWebIcon
'
+ Me.CreateRAWebIcon.BackColor = System.Drawing.Color.Transparent
Me.CreateRAWebIcon.ImageIndex = 5
Me.CreateRAWebIcon.ImageList = Me.SmallerIcons
Me.CreateRAWebIcon.Location = New System.Drawing.Point(313, 36)
@@ -301,7 +309,7 @@ Partial Class RemoteAppCreateClientConnection
Me.CreateRAWebIcon.TabIndex = 3
Me.CreateRAWebIcon.Text = "Create icon files"
Me.CreateRAWebIcon.TextImageRelation = System.Windows.Forms.TextImageRelation.TextBeforeImage
- Me.CreateRAWebIcon.UseVisualStyleBackColor = True
+ Me.CreateRAWebIcon.UseVisualStyleBackColor = False
'
'FTAButton
'
@@ -311,7 +319,7 @@ Partial Class RemoteAppCreateClientConnection
Me.FTAButton.Location = New System.Drawing.Point(301, 22)
Me.FTAButton.Name = "FTAButton"
Me.FTAButton.Size = New System.Drawing.Size(172, 29)
- Me.FTAButton.TabIndex = 1
+ Me.FTAButton.TabIndex = 2
Me.FTAButton.Text = "File type associations..."
Me.FTAButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText
Me.FTAButton.UseVisualStyleBackColor = False
@@ -367,7 +375,7 @@ Partial Class RemoteAppCreateClientConnection
Me.Panel1.Location = New System.Drawing.Point(89, 76)
Me.Panel1.Name = "Panel1"
Me.Panel1.Size = New System.Drawing.Size(200, 26)
- Me.Panel1.TabIndex = 112
+ Me.Panel1.TabIndex = 9
'
'PerMachineRadioButton
'
@@ -489,10 +497,10 @@ Partial Class RemoteAppCreateClientConnection
Me.ResetButton.Font = New System.Drawing.Font("Segoe UI", 9.0!)
Me.ResetButton.ImageIndex = 3
Me.ResetButton.ImageList = Me.SmallerIcons
- Me.ResetButton.Location = New System.Drawing.Point(126, 482)
+ Me.ResetButton.Location = New System.Drawing.Point(126, 555)
Me.ResetButton.Name = "ResetButton"
Me.ResetButton.Size = New System.Drawing.Size(121, 29)
- Me.ResetButton.TabIndex = 6
+ Me.ResetButton.TabIndex = 7
Me.ResetButton.Text = "Reset to default"
Me.ResetButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText
Me.ResetButton.UseVisualStyleBackColor = False
@@ -504,10 +512,10 @@ Partial Class RemoteAppCreateClientConnection
Me.SaveButton.Font = New System.Drawing.Font("Segoe UI", 9.0!)
Me.SaveButton.ImageIndex = 0
Me.SaveButton.ImageList = Me.SmallerIcons
- Me.SaveButton.Location = New System.Drawing.Point(12, 482)
+ Me.SaveButton.Location = New System.Drawing.Point(12, 555)
Me.SaveButton.Name = "SaveButton"
Me.SaveButton.Size = New System.Drawing.Size(108, 29)
- Me.SaveButton.TabIndex = 5
+ Me.SaveButton.TabIndex = 6
Me.SaveButton.Text = "Save settings"
Me.SaveButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText
Me.SaveButton.UseVisualStyleBackColor = False
@@ -530,7 +538,7 @@ Partial Class RemoteAppCreateClientConnection
Me.FTACountLabel.Location = New System.Drawing.Point(154, 29)
Me.FTACountLabel.Name = "FTACountLabel"
Me.FTACountLabel.Size = New System.Drawing.Size(52, 15)
- Me.FTACountLabel.TabIndex = 2
+ Me.FTACountLabel.TabIndex = 1
Me.FTACountLabel.Text = "Count: 0"
'
'DisabledFTACheckBox
@@ -543,6 +551,58 @@ Partial Class RemoteAppCreateClientConnection
Me.DisabledFTACheckBox.Text = "Disabled"
Me.DisabledFTACheckBox.UseVisualStyleBackColor = True
'
+ 'GroupBoxSignRDP
+ '
+ Me.GroupBoxSignRDP.Controls.Add(Me.CheckBoxCreateSignedAndUnsigned)
+ Me.GroupBoxSignRDP.Controls.Add(Me.CertificateComboBox)
+ Me.GroupBoxSignRDP.Controls.Add(Me.CertificateLabel)
+ Me.GroupBoxSignRDP.Controls.Add(Me.CheckBoxSignRDPEnabled)
+ Me.GroupBoxSignRDP.Location = New System.Drawing.Point(12, 477)
+ Me.GroupBoxSignRDP.Name = "GroupBoxSignRDP"
+ Me.GroupBoxSignRDP.Size = New System.Drawing.Size(482, 68)
+ Me.GroupBoxSignRDP.TabIndex = 5
+ Me.GroupBoxSignRDP.TabStop = False
+ Me.GroupBoxSignRDP.Text = "Digital Signing"
+ '
+ 'CheckBoxCreateSignedAndUnsigned
+ '
+ Me.CheckBoxCreateSignedAndUnsigned.AutoSize = True
+ Me.CheckBoxCreateSignedAndUnsigned.Location = New System.Drawing.Point(10, 41)
+ Me.CheckBoxCreateSignedAndUnsigned.Name = "CheckBoxCreateSignedAndUnsigned"
+ Me.CheckBoxCreateSignedAndUnsigned.Size = New System.Drawing.Size(175, 19)
+ Me.CheckBoxCreateSignedAndUnsigned.TabIndex = 1
+ Me.CheckBoxCreateSignedAndUnsigned.Text = "Create Signed and Unsigned"
+ Me.CheckBoxCreateSignedAndUnsigned.UseVisualStyleBackColor = True
+ '
+ 'CertificateComboBox
+ '
+ Me.CertificateComboBox.BackColor = System.Drawing.Color.WhiteSmoke
+ Me.CertificateComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
+ Me.CertificateComboBox.FormattingEnabled = True
+ Me.CertificateComboBox.Location = New System.Drawing.Point(282, 25)
+ Me.CertificateComboBox.Name = "CertificateComboBox"
+ Me.CertificateComboBox.Size = New System.Drawing.Size(191, 23)
+ Me.CertificateComboBox.TabIndex = 3
+ '
+ 'CertificateLabel
+ '
+ Me.CertificateLabel.AutoSize = True
+ Me.CertificateLabel.Location = New System.Drawing.Point(212, 28)
+ Me.CertificateLabel.Name = "CertificateLabel"
+ Me.CertificateLabel.Size = New System.Drawing.Size(64, 15)
+ Me.CertificateLabel.TabIndex = 2
+ Me.CertificateLabel.Text = "Certificate:"
+ '
+ 'CheckBoxSignRDPEnabled
+ '
+ Me.CheckBoxSignRDPEnabled.AutoSize = True
+ Me.CheckBoxSignRDPEnabled.Location = New System.Drawing.Point(10, 22)
+ Me.CheckBoxSignRDPEnabled.Name = "CheckBoxSignRDPEnabled"
+ Me.CheckBoxSignRDPEnabled.Size = New System.Drawing.Size(93, 19)
+ Me.CheckBoxSignRDPEnabled.TabIndex = 0
+ Me.CheckBoxSignRDPEnabled.Text = "Sign RDP file"
+ Me.CheckBoxSignRDPEnabled.UseVisualStyleBackColor = True
+ '
'RemoteAppCreateClientConnection
'
Me.AcceptButton = Me.CreateButton
@@ -550,7 +610,8 @@ Partial Class RemoteAppCreateClientConnection
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.BackColor = System.Drawing.Color.White
Me.CancelButton = Me.CancelEditButton
- Me.ClientSize = New System.Drawing.Size(507, 523)
+ Me.ClientSize = New System.Drawing.Size(507, 596)
+ Me.Controls.Add(Me.GroupBoxSignRDP)
Me.Controls.Add(Me.FileTypesGroupBox)
Me.Controls.Add(Me.MSIGroupBox)
Me.Controls.Add(Me.ClientConnectionGroupBox)
@@ -579,6 +640,8 @@ Partial Class RemoteAppCreateClientConnection
Me.Panel1.PerformLayout()
Me.FileTypesGroupBox.ResumeLayout(False)
Me.FileTypesGroupBox.PerformLayout()
+ Me.GroupBoxSignRDP.ResumeLayout(False)
+ Me.GroupBoxSignRDP.PerformLayout()
Me.ResumeLayout(False)
End Sub
@@ -625,4 +688,9 @@ Partial Class RemoteAppCreateClientConnection
Friend WithEvents FileTypesGroupBox As System.Windows.Forms.GroupBox
Friend WithEvents DisabledFTACheckBox As System.Windows.Forms.CheckBox
Friend WithEvents FTACountLabel As System.Windows.Forms.Label
+ Friend WithEvents GroupBoxSignRDP As GroupBox
+ Friend WithEvents CheckBoxSignRDPEnabled As CheckBox
+ Friend WithEvents CertificateComboBox As ComboBox
+ Friend WithEvents CertificateLabel As Label
+ Friend WithEvents CheckBoxCreateSignedAndUnsigned As CheckBox
End Class
diff --git a/remoteapp-tool/RemoteAppCreateClientConnection.resx b/remoteapp-tool/RemoteAppCreateClientConnection.resx
index f652c5b..e7ffc8f 100644
--- a/remoteapp-tool/RemoteAppCreateClientConnection.resx
+++ b/remoteapp-tool/RemoteAppCreateClientConnection.resx
@@ -124,152 +124,152 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
- ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAD2
- IQAAAk1TRnQBSQFMAgEBBwEAAdABAQHQAQEBEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA
+ ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADW
+ IQAAAk1TRnQBSQFMAgEBBwEAAQgBAgEIAQIBEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA
AwABIAMAAQEBAAEgBgABIF4AAyABLwMjATMDIwEzAyMBMwMjATMDIwEzAyMBMwMjATMDIwEzAxkBIysA
- AQEDQgF0A1gBwQNYAe8DWAHvA1gBwQNCAXQDAAEBUAADKgFBAwYBCBgAAwYBCAMqAUEUAAMIAQsBagFh
- AVQB8AG2AYQBPgH/AbUBgwE6Af8BtgGCATkB/wG2AYIBOQH/AbYBggE5Af8BtgGCATkB/wG1AYMBOgH/
- AbYBhAE+Af8CWgFYAcAnAAEBA1oBwAOLAf8BuQK6Af8D3AH/A9kB/wO1Af8BhgKHAf8DWgHAAwABAUgA
- AyoBQQFAAT0B8gH/AkABwQH9AwYBCBAAAwYBCAIrAbUB/AEiASAB6gH/AyoBQRAAAykBPwG2AYQBPiH/
- AbYBhAE+Af8YAAG5Ar8B/wG5Ar8B/wGyArcB/wGLAY0BjgH/AY0BjgGNAf8BxQHgAcsB/wHOAeMB0gH/
- Ae4C7wH/AewB7QHsAf8B6gLpAf8D5wH/A4cB/wNCAXREAAMqAUEBSQFHAfUB/wFUAVIB+gH/AUkBRgH2
- Af8BMgExAbkB/AMGAQgIAAMGAQgCKwG2AfwBMgEwAfEB/wE9ATsB9gH/ASIBIAHqAf8DKgFBDAADJwE7
- AbUBgwE6Bf8BAAExAfIB/wEDAVcB8wH/ARYBmgH2Af8BGgGmAfgB/wEJAWYB9AH/AQABLAHyBf8BtQGD
- AToB/xgAA0cBggPYAf8BzQHUAdUB/wFvAXABcQH/A8MB/wFdAbkBbAH/AQABjgEUAf8B3QHrAeAB/wPx
- Af8B1wHlAdoB/wHfAecB4QH/ArcBuAH/A1gBwUQAAx4BKwFMAUkB9gH/AVYBUwH6Af8BYgFhAv8BSgFH
- AfYB/wEyATEBuQH8AwYBCAMGAQgCKwG3AfwBOAE2AfIB/wFUAVMC/wE7ATkB9AH/ASABHgHpAf8DHgEr
- DAADJAE2AbYBgwE6Bf8BHAFDAfIB/wEmAWoB8gH/AR8BkwH0Af8BIwGaAfQB/wEWAWgB8QH/AQABLwHw
- Bf8BtgGDATkB/wMjATMDIwEzAxkBIxAAAyQBNgNHAYIDUQH/A+wB/wP7Af8BEwGYASkB/wFIAbABWQH/
- A/UB/wEAAZABGAH/AVABsQFgAf8B3gHfAd4B/wNYAe9IAAMeASsBTAFKAfYB/wFXAVQB+gH/AWUBYgL/
- AUsBSQH2Af8BMwEyAbkB/AJAAcAB/QFBAT4B9AH/AVkBWAL/AUEBPwH1Af8BJwElAesB/wMeASsIAAMZ
- BCMBMwMxAU8BtgGDAToD/wH8Af8BEAEwAfAB/wFCAXAB8gH/AUMBkwH0Af8BKAGDAfIB/wEMAU4B8AH/
- AQABJAHwA/8B+wH/AbUBgAE2Af8BtQGDAT0B/wG2AYQBPwH/AloBWAHAA0gBhgG+AsQB/wG8AsEB/wG5
- Ab0BvgH/AbcBugG7Af8BtAK4Af8DUgH/A+4B/wFiAb0BcAH/AQkBlAEgAf8B5QHxAeYB/wEAAZABFwH/
- ARcBmgEtAf8B6QHvAeoB/wPiAf8DWAHvTAADHgErAU0BSwH2Af8BWAFVAfoB/wFlAWMC/wFkAWEC/wFh
- AV8C/wFfAV0C/wFIAUYB9wH/ATABLgHuAf8DHgErDAACWgFYAcABtQGFAUAB/wG1AYQBPwH/AbUBggE3
- A/8B+wH/AQEBFQHuAf8BMQFTAfAB/wFOAYUB8wH/AWUBlQH0Af8BgwGaAfYB/wGAAY0B+QP/AfkB/wG1
- AW0BMQn/AbYBhAE+Af8BygHSAdMB/wHJAdIB0wH/AckB0AHTAf8ByAHRAdIB/wHHAdAB0QH/AcYB0AHR
- Af8BbwJyAf8DxgH/Ac8B6QHUAf8B5gH0AekB/wH9Av4B/wHLAeYBzwH/AQABjQESAf8BVAG1AWQB/wHA
- AcEBwAH/A1gBwVAAAx4BKwFOAUwB9wH/AWoBZwL/AUoBRwL/AUgBRQL/AWMBYQL/ATkBNwHwAf8DHgEr
- EAABtQGEAT8F/wH2AfAB6QH/AbIBcAE0A/8B/QH/AgAB7AH/AR4BMQHtAf8BOgFRAfAB/wFNAWQB8gH/
- AV0BbAH0Af8BYwFmAfYD/wH8Af8BvAFtATEB/wEAAa4BgAX/AbYBggE8Af8BygHSAdQB/wGsAq8B/wGG
- AgAB/wGLAgAB/wGHAgAB/wGLAgAB/wGGAh0B/wOQAf8B8gH5AfMJ/wH+Af8B/gH/AcsB5wHRAf8BqwHR
- AbIB/wOPAf8DQgF0UAADBgEIAUoBSQHKAf0BbgFqAv8BTwFMAv8BTAFJAv8BZwFlAv8CQAHDAf0DBgEI
- EAABtAGCATwF/wHnAZsBJgH/AbEBcAE3Bf8CAAHtAf8CAAHuAf8BGAEfAfAB/wEuATYB8gH/AUEBQwH1
- Af8BTwFOAfcF/wHAAW4BNAH/AQABrQGBBf8BtgGCATwB/wHMAdMB1QH/AaoBrAGtAf8BmwEcARIB/wGc
- ASABFAH/AZsBCAEAAf8BqAEIAQAB/wGyAQoBAAH/AZwBcgFtAf8DkAH/A8YB/wPuAf8D7gH/A8YB/wOQ
- Af8DWgHAAwABAUwAAwYBCAFXAVMBvQH8AWEBXgH7Af8BgAFvAv8BbwFsAv8BbQFqAv8BagFoAv8BTwFN
- AfcB/wE1ATMBuQH8AwYBCAwAAbMBggE9Bf8B5gGeAS8B/wGvAYABPQP/AfYD/wHtA/8B6wP/AeoD/wHq
- A/8B6gP/AewD/wHzAf8BwgFuATUB/wEAAasBbwX/AbYBggE8Af8BzAHTAdUB/wGoAqoB/wGlATQBKgH/
- AZ8BHwEUAf8BowEHAQAB/wGyAQoBAAH/AcABEAEAAf8B3wFqAVgB/wG3AYoBggH/AYgBZgFiAf8BWAFS
- AVEB/wFXAVEBTwH/AXECdAH/AY8CkAH/AwABAUwAAwYBCAFfAVwBvwH8AWgBZQH9Af8BhgGCAv8BZwFk
- AfwB/wFVAVMB+AH/AVEBTgH3Af8BXgFbAfoB/wFsAWoC/wFRAU4B9wH/ATUBNAG5AfwDBgEICAABswGC
- AT0F/wHyAaEBIgH/Ab0BiwFGAf8BrwGAAT8B/wGvAXABOQH/AbABbwE3Af8BrwFuATUB/wGxAW4BMwH/
- AbcBcAE2Af8BvQFwATYB/wHBAW8BNgH/AaYBnwFjAf8BZgHTAb0F/wG1AYIBPAH/Ac4B1AHVAf8BogKk
- Af8BrAE7ATIB/wGhARIBBQH/Aa0BBgEAAf8BvgENAQAB/wHPAR0BAwH/AfABmgGLAf8B9wG0AagB/wH5
- Aa4BngH/Af4BtQGnAf8B+AGlAZIB/wHCAc4BzwH/AaoCrAH/TAADBgEIAVcBVAHSAf0BbgFrAf4B/wGK
- AYcC/wFtAWoB/QH/AV0BWgH7Af8DHgErAx4BKwFSAU8B+AH/AV8BXQH6Af8BbgFrAv8BUgFQAfcB/wE2
- ATQBugH8AwQBBQQAAbMBggE9Bf8B8QGXAQ0B/wH4AbIBQwH/Af0BwQFjAf8B/gHKAYIB/wH+Ac4BigH/
- Af0BywGFBf8BvAFwATkB/wEeAcABoAH/AT4ByAGqAf8BVAHJAa8B/wFcAcoBsAX/AbUBgQE7Af8BzQHU
- AdYB/wGhAqMB/wGoASIBGAH/AasBCgEAAf8BwgEQAQAB/wHVAQ8BAAH/AeoBNwEaAf8B/gHBAbQC/wHK
- Ab0C/wHJAbgC/wHPAcAB/wH8Ab8BqwH/AcMBzgHPAf8BrAGuAa8B/0wAAxYBHwFrAWgC/wGBAW8C/wGB
- AW8B/gH/AWUBYgH9Af8DHgErCAADHgErAVMBUAH4Af8BYAFeAfsB/wFvAW0C/wFTAVAB+AH/A0ABbwMB
- AQIBswGDAT0F/wHsAYoBAAH/AfEBoQEnAf8B9QGxAUYB/wH2AbkBVwH/AfcBvwFjAf8B9gG/AWMF/wG6
- AW0BNQH/AQUBrwGLAf8BJQG2AZMB/wE6AboBnQH/AUoBwQGlBf8BtQGCATwB/wHOAdQB1gH/AaACoQH/
- AagBBQEAAf8BuQEJAQAB/wHQARgBAAH/AeIBDgEAAf8B+AFhAUwC/wHmAeAC/wHgAdgC/wHlAdwC/wHr
- AeIB/wH9AdUByAH/AcQBzgHQAf8BrwKyAf9QAAMWAR8BawFoAv8BagFnAf4B/wMeASsQAAMeASsBVQFS
- AfgB/wFbAVkB+QH/AVMBUgFTAagDHQEpBAABtAGDAT4F/wHpAW4BAAH/Ae0BjwEAAf8B7wGeAR0B/wHx
- AagBMwH/AfMBrwFCAf8B9AG1AU8F/wG0AW0BNQP/AfsD/wH2A/8B8wP/AfID/wH4Af8BtQGEAUAB/wHO
- AdQB1gH/AaACoQH/Aa0CAAH/AcQBAwEAAf8B2gEGAQAB/wHyAQoBAAL/AYgBYAL/AdQBvgL/AcYBqgL/
- AcQBpgL/AcABnwH/AfsBrwGNAf8BxQHOAdAB/wGxAbQBtQH/VAADFgEfAx4BKxgAAx4BKwNAAW8DKQE+
- CAABtQGFAUED/wH8A/8B/Qf/Af4D/wH8A/8B+gP/AfcD/wH5Af8BtAGCATwB/wG2AYQBPwH/AbYBgwE9
- Af8BtQGCAT0B/wG1AYMBPQH/AbUBhAFAAf8DVQGwAc4B1AHWAf8BoAKhAf8BoAKhAf8BoAKhAf8BoQGi
- AaMB/wGjAqUB/wGlAqcB/wGsAq8B/wGvArEB/wGxAbQBtQH/AbQCuAH/AbYBuwG8Af8BxQHPAdEB/wGz
- AbcBuAH/eAADBwEKDAABaAFiAVgB7wG1AYUBQQH/AbMBgwE/Af8BswGDAT8B/wGzAYMBPwH/AbMBgwE+
- Af8BswGDAT4B/wGzAYMBPgH/AbUBhAFAAf8CZAFcAecYAANDAXgBzgHUAdYB/wHOAdQB1gH/Ac4B1AHW
- Af8BzQHUAdYB/wHNAdMB1QH/Ac0B0wHVAf8BygHSAdQB/wHKAdIB0wH/AckB0QHTAf8ByAHRAdIB/wHH
- AdAB0QH/AcYBzwHRAf8DTgGVTAADHwEtAzABSwMvAUoDLwFKAy8BSQMyAVEDNgFZAzYBWQM2AVkDNgFZ
- AzYBWQM1AVcDMQFOAyYBOQsAAf8DAAH/AwAB/wsAAf8DAAH/AwAB/wMAAf8DAAH/GAADFAEcAyABLgMg
- AS4DIAEuASIBJQExAf8DWQHHA0IBdAM3AVsDNQFYAzMBUgMvAUoDKwFCAyABLgMUARxIAANSAaQE/wH1
- AfQB8wH/AfYB9QH0Bf8BRAFDAUUB/wEbARoBHQX/AfsC+gH/AvsB+gH/AfsC+gX/ApYBlwH/A1oB2AgA
- A4YB/wPAAf8DAAH/AwAB/wOGCf8DwAH/AQAD/wEAAf8BAAH/AwAB/xgAAeIBuAGZAf8B4gG5AZgB/wHi
- AbgBmQH/AU8BXgGdAf8BRwFXAZIB/wFDAVIBkgH/ATIBVQGeAf8BygGsAZgB/wHiAbgBmAH/AeIBuQGZ
- Af8B4gG5AZgB/wHiAbgBmAH/GAADDAEQA0QBewJdAVoBygFiAVkBQAH1AWIBXgE2AfYCXAFZAcwDRQF9
- Aw0BERQAA1ABngH7AfoB+QH/Ae4C7QH/AfAB7wHuAf8B/gH9AfwB/wFDAUIBRAH/ARoBGQEbAf8C8AHv
- Af8C6AHnAf8C6AHnAf8C6AHnAf8B9QH0AfMB/wGPAY4BjwH/A1oB5AgAA4YB/wPAAf8DAAH/A4YB/wPA
- Af8DwAX/A8AB/wEAAf8BAAH/A8AB/wPAAf8DAAH/FAAB4wG7AZsB/wH4AeABvgH/AfgB4AG+Af8BmwGf
- Aa4B/wFbAW0BqQH/AUkBZQGgAf8BAAFcAbAB/wEAAWUBvwH/AfgB4QG+Af8B+AHgAb8B/wH4AeEBvgH/
- AeMBugGaAf8UAAM0AVQCXQFNAfABgAFWAQEB/wGAAVYBAQH/AYABVgEBAf8BgAFWAQEB/wGAAVYBAQH/
- AWQBXwFKAfMCWAFWAcEDIQEwEAADUAGeAfsC+gH/Ae8B7gHtAf8C8AHvAf8B/gH9AfwB/wGGAYQBhQH/
- AScBJgEnAf8C9QH0Af8C7QHsAf8C7QHsAf8B7gHtAewB/wL6AfkB/wGUAZMBlAH/A1sB4QgAA4YB/wPA
- Af8DAAH/A4YB/wPAAf8DwAH/A8AB/wMAAf8BAAH/AQAD/wEAA/8BAAH/AwAB/xQAAeQBvQGcAf8B+AHh
- Ab8B/wHzAdYBsgH/AcIBuAGuAf8BSAFoAawB/wEaAcAB+AH/AQABlwHXAf8BAAFnAdQB/wEAAWcBwQH/
- AfMB1gGyAf8B+AHhAb8B/wHkAb0BnQH/EAADNAFUAYQBWQECAf8BhwFcAQMB/wGHAVwBAwH/AYcBXAED
- Af8BhwFcAQMB/wF/AWsBEgH+AWEBXQFOAfACWgFXAcUDSwGOAjUBNAFVAwoBDQwAA1ABngH9AfwB+wH/
- AvAB7wH/AfIC8QH/Af4C/QH/AZIBkAGRAf8BGQEXARgB/wGsAasBqgH/AawBqwGqAf8BrAGrAaoB/wGq
- AqkB/wGtAawBqwH/ATEBLwEwAf8DWwHhCAADhgH/A8AB/wMAAf8DhgH/A8AB/wPAA/8BAAH/AwAB/wMA
- Af8DwAH/A8AB/wMAAf8UAAHmAcABnwH/AfgB4gHBAf8B2QG+AZ0B/wHZAb4BngH/AZYBpwGrAf8BAAFj
- AcQB/wEVAdMC/wEAAbMB7gH/AQABZwHUAf8BAAFpAcIB/wH4AeEBwAH/AeYBwAGfAf8MAAMNARIBYQFd
- AU4B8AGQAWMBBgH/AZABYwEGAf8BkAFjAQYB/wGZAWoBBgH/AZYBaAEEAf8BZgFgAVkB6wJZAVYBvgNI
- AYYCMQEwAU0DFAEcAwEBAgwAA1ABngH+Av0B/wHyAfEB8AH/AvMB8gL/Av4B/wGdApwB/wEQAg4B/wEd
- ARsBGgH/AR8BHAEbAf8BHwIcAf8BHAIaAf8BFAISAf8BBgEEAQYB/wNbAeEIAAOGBf8DAAH/A4YD/wEA
- Af8DwAP/AQAB/wEAB/8DwAH/A8AB/wMAAf8DAAH/AwAB/wwAAecBwwGiAf8B+AHjAcIB/wH2Ad0BugH/
- AfgB4wHDAf8B+AHjAcIB/wG2AcUBwwH/AQABYwHEAf8BFQHTAv8BFgHGAfYB/wEAAWcB1AH/AQABbQHK
- Af8B6AHDAaIB/wMAAQEIAANFAX0BmQFqAQcB/wGZAWsBCAH/AZoBawEIAf8BbgFkAVEB8QM7AWMDDQER
- AwoBDQMkATUDKwFCAxABFgMAAQEQAANQAZ4C/wH+Af8B8wLyAf8C9AHzA/8B/gH/AaMCogH/ARsBGAEX
- Af8BQwFBAT8B/wHPAc4BzQH/AccBxQHEAf8BqQGnAaYB/wGdAZsBmgH/AYsBiQGKAf8DWwHhCAADhgX/
- AwAB/wPAAf8DhgP/AQAD/wEAAf8BAAv/AwAB/wPAAf8DwAH/A8AB/wMAAf8IAAHqAcYBpAH/AfgB5AHE
- Af8B3AHCAaQB/wHcAcQBpgH/AdwBxAGmAf8B3AHFAaYB/wGhAa4BrwH/AQABYwHEAf8BmAHsAv8BFgHG
- AfYB/wEAAWcB1AH/Am8BZgH/AygBPAgAAlwBWgHNAaMBggELAf8BowGCAQsB/wGlAYMBCgH/AzsBYxAA
- AwQBBRgAA1ABngT/AfQC8wH/A/UF/wGoAaYBpQH/ARMCEAH/ATUCNAH/AeYC5QH/AfEC8AH/AacBpgGl
- Af8BPQE6ATkB/wGaApgB/wNcAecIAAOGBf8DAAH/A8AB/wPAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wOG
- Af8DhgH/A4YB/wPAAf8DAAH/CAAB7AHKAagB/wH4AeUBxgH/AfkB5AHGAf8B+QHlAcUB/wH5AeQBxgH/
- AfgB5AHGAf8B9wHjAcUB/wG8AcgBxgH/AQABYwHEAf8BlgHqAf4B/wK3AawB/wFfAWABUgH/Am8BZgH/
- CAABbQFiAUIB9QGuAYsBDQH/Aa4BiwENAf8BnwFvAQgB/wMNAREsAANQAZ4E/wL1AfQB/wL3AfYF/wGs
- AqoB/wEYARYBFQH/ATYBNAE1Af8BzwHNAcwB/wHUAdIB0QH/AbQCsgH/AaoBpwGmAf8DagH5A1cBvQgA
- A4YB/wOGAf8DAAH/A8AB/wPAAf8DhgH/A4YB/wOGAf8DhgH/A4YB/wOGAf8DhgH/A4YB/wPAAf8DAAH/
- CAAB7gHNAasB/wH4AeYBxwH/Ad8ByAGqAf8B3gHIAaoB/wHfAcgBqwH/Ad8BxwGrAf8B2wHDAaYB/wHa
- AcIBpAH/AasBsAGrAf8BjgGPAYQB/wHgAeIB0wH/AokBcAH/AQgBVgHeAf8BVQFcAWYB6gQAAW8BZAFC
- AfUBuQGUARAB/wG5AZQBEAH/AacBhAEKAf8DDQERCAADTAGSAakBhgEKAf8BowGCAQkB/wGjAYIBCQH/
- AaMBggEJAf8BowGCAQkB/wFtAV8BSgHzCAADUAGeBP8B9wL2Af8D+AH/A/oB/wPwAf8B6gLpAf8D8AH/
- A/cB/wP2Af8C+gH5Af8DWAG5AxcBIAMHAQkEAAOGCf8DhgH/A8AB/wPAAf8DhgH/A8AB/wPAAf8DwAH/
- A8AB/wPAAf8DwAH/A8AB/wOGAf8DAAH/CAAB8AHQAa0B/wH5AeYByQH/AfgB5gHJAf8B+QHmAckB/wH5
- AeYByQH/AfcB5QHJAf8B8AHZAb0B/wHpAc8BswH/AegBzgGyAf8BzAG5Aa8B/wKJAXAB/wFFAZYB6gH/
- ATMBhQHgAf8BWgJdAdMEAAJcAVoBzQHDAZwBEgH/AcMBnAESAf8BvwGYAREB/wM7AWMIAAMMARACWwFY
- AssBogEUAf8BwwGcARIB/wHDAZwBEgH/AcMBnAESAf8BqQGGAQoB/wgAA1ABngT/AvgB9wH/A/kB/wP6
- Af8C/gH9Ff8DVgGrEAADhgH/A4YB/wOGAf8DhgH/A8AB/wOGAf8BzAI+Av8BzAE+Af8BzAGZAQsB/wHM
- AZkBAAL/AT4BCwH/AcwBPgELBf8DhgH/AwAB/wgAAfEB0wGxAf8B+QHnAcsB/wHiAcwBsAH/AeIBywGv
- Af8B4QHMAa8B/wHhAcoBrwH/AdcBvgGhAf8B1QG6AZwB/wHUAbkBnQH/AdQBuQGdAf8BtgGvAbQB/wFl
- AZIBxAH/A0gBhggAAkYBRQF+AdIBqAEVAf8BzQGkARUB/wHNAaQBFQH/AXIBawFTAfEDOwFjAw0BEQMN
- AREDQQFyAb8BmAEQAf8BzQGkARUB/wHNAaQBFQH/Ac0BpAEVAf8BsAGMAQwB/wgAA1ABngT/AvkB+AH/
- A/oB/wP8Af8D/QH/A/4F/wH8Av0B/wH0AvUB/wP6Af8DVgGzGAADhgn/A4YB/wHMAj4D/wE+Av8BzAE+
- Af8BzAGZAQsB/wHMAZkBAAL/AT4BCwX/A4YB/wMAAf8IAAHzAdcBtAH/AfkB5wHMAf8B+AHnAcwB/wH5
- AegBzAH/AfkB6AHMAf8B9wHlAcoB/wHnAc8BtQH/AfIB3gHGAf8B8wHgAcgB/wH3AegB0wH/A1oBxQHv
- AdABrgH/AwEBAgMAAQEEAAMPARQBagFmAU4B8AHYAa0BFwH/AdcBrAEXAf8B1wGsARcB/wHRAacBFQH/
- Ab0BlwEPAf8BvQGXAQ8B/wHRAacBFQH/AdcBrAEXAf8B1wGsARcB/wHXAawBFwH/AdcBrAEXAf8BtgGR
- AQ0B/wgAA1ABngT/A/oB/wP8Af8D/QH/A/4F/wH+Af8B/gH/A+oB/wLXAdgB/wHdAt4B/wM7AWQcAAOG
- Af8DhgH/A4YB/wHMAj4D/wE+A/8BPgL/AcwBPgH/AcwBmQELAf8BzAGZAQAF/wOGAf8DAAH/CAAB9AHZ
- AbUB/wH5AegBzQH/AeQBzwG0Af8B5AHPAbQB/wHkAc8BtAH/AeMBzgGzAf8B3QHGAakB/wH5AegBzgH/
- AfkB6AHOAf8DXAHMAfEB0wGxAf8DJgE4EAACNQE0AVUB2wGxARcB/wHfAbMBGQH/Ad4BswEZAf8B3gGz
- ARkB/wHeAbMBGQH/Ad4BswEZAf8B3gGzARkB/wHeAbMBGQH/Ad8BswEZAf8B3AGyARcB/wHmAboBGwH/
- AbsBlQEPAf8IAANQAZ4E/wP8Af8D/Qn/A/0B/wL6AfsB/wHrAuwB/wL6AfsB/wNCAXMoAAOGAf8BzAI+
- Av8BzAE+A/8BPgP/AT4C/wHMAT4B/wHMAZkBCwX/A4YB/wMAAf8IAAH2AdsBuAH/AfkB6QHPAf8B+QHp
- Ac4B/wH5AegBzgH/AfgB6AHOAf8B9gHlAcwB/wHuAdoBvwH/AfkB6AHOAf8DYAHeAfQB2QG1Af8DJgE4
- GAACNQE0AVUBbAFoAU4B8AHtAcIBHQH/AeYBuQEbAf8B5gG4ARsB/wHmAbgBGwH/AeYBuQEbAf8B7QHC
- AR0B/wF3AW8BUwHxAjoBOQFgAlsBWAHLAccBoAESAf8IAANUAaYc/wHrAuwB/wNCAXMsAAOGAf8BzAI+
- Af8BzAE+AQsB/wHMAT4BCwH/AcwBPgELAf8BzAE+AQsB/wHMAT4BCwX/A4YB/wMAAf8IAAH3Ad0BugH/
- AfkB6QHPAf8B+QHpAc8B/wH5AekBzwH/AfkB6QHPAf8B9wHmAc0B/wHtAdgBvQH/AfkB6AHOAf8B9wHd
- AbgB/wMmATggAAMMARADRQF9AlwBWQHMAZIBggE+AfgBkAGIATsB+QJeAVwBzgJGAUUBfgMNARIEAAMM
- ARADTAGSCAADJgQ4AVwDOAFcAzgBXAM4AVwDOAFcAzgBXAM4AVwDKQE/MAADhgH/A9cB/wPXAf8D1wH/
- A9cB/wPXAf8D1wH/A9cB/wOGAf8DAAH/CAAB+AHfAbsB/wH4Ad8BuwH/AfgB3wG7Af8B+AHfAbsB/wH4
- Ad8BuwH/AfgB3wG7Af8B+AHfAbsB/wH4Ad8BuwH/AyYBOFQAAUIBTQE+BwABPgMAASgDAAFAAwABIAMA
- AQEBAAEBBgABARYAA/8BAAL/AeABBwH+AQECAALnAcABBwH8AwACwwHAAQcB4AMAAoEBwAEHAeADAAGA
- AQEBwAEAAfADAAHAAQMGAAHgAQcGAAHwAQ8GAAHwAQ8GAAHgAQcDAAEBAgABwAEDAwABAwIAAYABAQMA
- AQMCAAGBAYADAAEDAgABwwHBAwABAwIAAecB4wMAAQMCAAH/AfcBAAE/AQABAwIAAYABAQGMAR8BgAEB
- Av8BgAEBAYABDwHAAQMB8AEPAYABAQGAAQcBwAEDAeABBwGAAQEBgAEHAcABAwHAAQMBgAEBAYABBwHA
- AQMBgAEDAYABAQGAAQEBwAEBAYABBwGAAQEBgAEAAcABAQGDAd8BgAEBAYABAAHAAQEBgwH/AYABAQGA
- AQABwAEAAYMBAQGAAQECAAHAAQABgwEBAYABBwGAAQABwAEBAYABAQGAAQcB4AEAAcABAAGAAQEBgAEH
- AfABAAHAAQMBwAEBAYABDwH8AQABwAEHAeABAQGAAR8B/AEAAcABDwHwAQkBgAE/AfwBAAHAAR8C/ws=
+ AQEDQgF0A1gBwQNYAe8DWAHvA1gBwQNCAXQDAAEBUAADKgFBAwYBCBgAAwYBCAMqAUEUAAMIAQsBYQFd
+ AVQB8AG2AYQBNwH/AbUBgwEzAf8BtgGCATIB/wG2AYIBMgH/AbYBggEyAf8BtgGCATIB/wG1AYMBMwH/
+ AbYBhAE3Af8CWgFYAcAnAAEBA1oBwAOLAf8BuQK6Af8D3AH/A9kB/wO1Af8BhgKHAf8DWgHAAwABAUgA
+ AyoBQQE5ATYB8gH/AkABuAH9AwYBCBAAAwYBCAIrAaYB/AEbARkB6gH/AyoBQRAAAykBPwG2AYQBNyH/
+ AbYBhAE3Af8YAAG5Ar8B/wG5Ar8B/wGyArcB/wGLAY0BjgH/AY0BjgGNAf8BxQHgAcsB/wHOAeMB0gH/
+ Ae4C7wH/AewB7QHsAf8B6gLpAf8D5wH/A4cB/wNCAXREAAMqAUEBQgFAAfUB/wFNAUsB+gH/AUIBPwH2
+ Af8CKwGrAfwDBgEICAADBgEIAisBpwH8ASsBKQHxAf8BNgE0AfYB/wEbARkB6gH/AyoBQQwAAycBOwG1
+ AYMBMwX/AQABKgHyAf8BAAFQAfMB/wEPAZoB9gH/ARMBpgH4Af8BAgFfAfQB/wEAASUB8gX/AbUBgwEz
+ Af8YAANHAYID2AH/Ac0B1AHVAf8BaAFpAWoB/wPDAf8BVgG5AWUB/wEAAY4BDQH/Ad0B6wHgAf8D8QH/
+ AdcB5QHaAf8B3wHnAeEB/wK3AbgB/wNYAcFEAAMeASsBRQFCAfYB/wFPAUwB+gH/AVsBWgL/AUMBQAH2
+ Af8CKwGrAfwDBgEIAwYBCAIrAakB/AExAS8B8gH/AU0BTAL/ATQBMgH0Af8BGQEXAekB/wMeASsMAAMk
+ ATYBtgGDATMF/wEVATwB8gH/AR8BYwHyAf8BGAGTAfQB/wEcAZoB9AH/AQ8BYQHxAf8BAAEoAfAF/wG2
+ AYMBMgH/AyMBMwMjATMDGQEjEAADJAE2A0cBggNKAf8D7AH/A/sB/wEMAZgBIgH/AUEBsAFSAf8D9QH/
+ AQABkAERAf8BSQGxAVkB/wHeAd8B3gH/A1gB70gAAx4BKwFFAUMB9gH/AVABTQH6Af8BXgFbAv8BRAFC
+ AfYB/wEsASsBqwH8AkABuAH9AToBNwH0Af8BUgFRAv8BOgE4AfUB/wEgAR4B6wH/Ax4BKwgAAxkEIwEz
+ AzEBTwG2AYMBMwP/AfwB/wEJASkB8AH/ATsBaQHyAf8BPAGTAfQB/wEhAYMB8gH/AQUBRwHwAf8BAAEd
+ AfAD/wH7Af8BtQGAAS8B/wG1AYMBNgH/AbYBhAE4Af8CWgFYAcADSAGGAb4CxAH/AbwCwQH/AbkBvQG+
+ Af8BtwG6AbsB/wG0ArgB/wNLAf8D7gH/AVsBvQFpAf8BAgGUARkB/wHlAfEB5gH/AQABkAEQAf8BEAGa
+ ASYB/wHpAe8B6gH/A+IB/wNYAe9MAAMeASsBRgFEAfYB/wFRAU4B+gH/AV4BXAL/AV0BWgL/AVoBWAL/
+ AVgBVgL/AUEBPwH3Af8BKQEnAe4B/wMeASsMAAJaAVgBwAG1AYUBOQH/AbUBhAE4Af8BtQGCATAD/wH7
+ Af8BAAEOAe4B/wEqAUwB8AH/AUcBhQHzAf8BXgGVAfQB/wGDAZoB9gH/AYABjQH5A/8B+QH/AbUBZgEq
+ Cf8BtgGEATcB/wHKAdIB0wH/AckB0gHTAf8ByQHQAdMB/wHIAdEB0gH/AccB0AHRAf8BxgHQAdEB/wFo
+ AmsB/wPGAf8BzwHpAdQB/wHmAfQB6QH/Af0C/gH/AcsB5gHPAf8BAAGNAQsB/wFNAbUBXQH/AcABwQHA
+ Af8DWAHBUAADHgErAUcBRQH3Af8BYwFgAv8BQwFAAv8BQQE+Av8BXAFaAv8BMgEwAfAB/wMeASsQAAG1
+ AYQBOAX/AfYB8AHpAf8BsgFpAS0D/wH9Af8CAAHsAf8BFwEqAe0B/wEzAUoB8AH/AUYBXQHyAf8BVgFl
+ AfQB/wFcAV8B9gP/AfwB/wG8AWYBKgH/AQABrgGABf8BtgGCATUB/wHKAdIB1AH/AawCrwH/AYYCAAH/
+ AYsCAAH/AYcCAAH/AYsCAAH/AYYCFgH/A5AB/wHyAfkB8wn/Af4B/wH+Af8BywHnAdEB/wGrAdEBsgH/
+ A48B/wNCAXRQAAMGAQgBQwFCAbsB/QFnAWMC/wFIAUUC/wFFAUIC/wFgAV4C/wJAAbkB/QMGAQgQAAG0
+ AYIBNQX/AecBmwEfAf8BsQFpATAF/wIAAe0B/wIAAe4B/wERARgB8AH/AScBLwHyAf8BOgE8AfUB/wFI
+ AUcB9wX/AcABZwEtAf8BAAGtAYEF/wG2AYIBNQH/AcwB0wHVAf8BqgGsAa0B/wGbARUBCwH/AZwBGQEN
+ Af8BmwEBAQAB/wGoAQEBAAH/AbIBAwEAAf8BnAFrAWYB/wOQAf8DxgH/A+4B/wPuAf8DxgH/A5AB/wNa
+ AcADAAEBTAADBgEIAUsBRQGvAfwBWgFXAfsB/wGAAWgC/wFoAWUC/wFmAWMC/wFjAWEC/wFIAUYB9wH/
+ AS4BLAGrAfwDBgEIDAABswGCATYF/wHmAZ4BKAH/Aa8BgAE2A/8B9gP/Ae0D/wHrA/8B6gP/AeoD/wHq
+ A/8B7AP/AfMB/wHCAWcBLgH/AQABqwFoBf8BtgGCATUB/wHMAdMB1QH/AagCqgH/AaUBLQEjAf8BnwEY
+ AQ0B/wGjAgAB/wGyAQMBAAH/AcABCQEAAf8B3wFjAVEB/wG3AYoBggH/AYgBXwFbAf8BUQFLAUoB/wFQ
+ AUoBSAH/AWoCbQH/AY8CkAH/AwABAUwAAwYBCAFYAVUBsQH8AWEBXgH9Af8BhgGCAv8BYAFdAfwB/wFO
+ AUwB+AH/AUoBRwH3Af8BVwFUAfoB/wFlAWMC/wFKAUcB9wH/AS4BLQGrAfwDBgEICAABswGCATYF/wHy
+ AaEBGwH/Ab0BiwE/Af8BrwGAATgB/wGvAWkBMgH/AbABaAEwAf8BrwFnAS4B/wGxAWcBLAH/AbcBaQEv
+ Af8BvQFpAS8B/wHBAWgBLwH/AaYBnwFcAf8BXwHTAb0F/wG1AYIBNQH/Ac4B1AHVAf8BogKkAf8BrAE0
+ ASsB/wGhAQsBAAH/Aa0CAAH/Ab4BBgEAAf8BzwEWAQAB/wHwAZoBiwH/AfcBtAGoAf8B+QGuAZ4B/wH+
+ AbUBpwH/AfgBpQGSAf8BwgHOAc8B/wGqAqwB/0wAAwYBCAFPAU0BvgH9AWcBZAH+Af8BigGHAv8BZgFj
+ Af0B/wFWAVMB+wH/Ax4BKwMeASsBSwFIAfgB/wFYAVYB+gH/AWcBZAL/AUsBSQH3Af8BLwEtAawB/AME
+ AQUEAAGzAYIBNgX/AfEBlwEGAf8B+AGyATwB/wH9AcEBXAH/Af4BygGCAf8B/gHOAYoB/wH9AcsBhQX/
+ AbwBaQEyAf8BFwHAAaAB/wE3AcgBqgH/AU0ByQGvAf8BVQHKAbAF/wG1AYEBNAH/Ac0B1AHWAf8BoQKj
+ Af8BqAEbAREB/wGrAQMBAAH/AcIBCQEAAf8B1QEIAQAB/wHqATABEwH/Af4BwQG0Av8BygG9Av8ByQG4
+ Av8BzwHAAf8B/AG/AasB/wHDAc4BzwH/AawBrgGvAf9MAAMWAR8BZAFhAv8BgQFoAv8BgQFoAf4B/wFe
+ AVsB/QH/Ax4BKwgAAx4BKwFMAUkB+AH/AVkBVwH7Af8BaAFmAv8BTAFJAfgB/wNAAW8DAQECAbMBgwE2
+ Bf8B7AGKAQAB/wHxAaEBIAH/AfUBsQE/Af8B9gG5AVAB/wH3Ab8BXAH/AfYBvwFcBf8BugFmAS4B/wEA
+ Aa8BiwH/AR4BtgGTAf8BMwG6AZ0B/wFDAcEBpQX/AbUBggE1Af8BzgHUAdYB/wGgAqEB/wGoAgAB/wG5
+ AQIBAAH/AdABEQEAAf8B4gEHAQAB/wH4AVoBRQL/AeYB4AL/AeAB2AL/AeUB3AL/AesB4gH/Af0B1QHI
+ Af8BxAHOAdAB/wGvArIB/1AAAxYBHwFkAWEC/wFjAWAB/gH/Ax4BKxAAAx4BKwFOAUsB+AH/AVQBUgH5
+ Af8BUwFSAVMBqAMdASkEAAG0AYMBNwX/AekBZwEAAf8B7QGPAQAB/wHvAZ4BFgH/AfEBqAEsAf8B8wGv
+ ATsB/wH0AbUBSAX/AbQBZgEuA/8B+wP/AfYD/wHzA/8B8gP/AfgB/wG1AYQBOQH/Ac4B1AHWAf8BoAKh
+ Af8BrQIAAf8BxAIAAf8B2gIAAf8B8gEDAQAC/wGIAVkC/wHUAb4C/wHGAaoC/wHEAaYC/wHAAZ8B/wH7
+ Aa8BjQH/AcUBzgHQAf8BsQG0AbUB/1QAAxYBHwMeASsYAAMeASsDQAFvAykBPggAAbUBhQE6A/8B/AP/
+ Af0H/wH+A/8B/AP/AfoD/wH3A/8B+QH/AbQBggE1Af8BtgGEATgB/wG2AYMBNgH/AbUBggE2Af8BtQGD
+ ATYB/wG1AYQBOQH/A1UBsAHOAdQB1gH/AaACoQH/AaACoQH/AaACoQH/AaEBogGjAf8BowKlAf8BpQKn
+ Af8BrAKvAf8BrwKxAf8BsQG0AbUB/wG0ArgB/wG2AbsBvAH/AcUBzwHRAf8BswG3AbgB/3gAAwcBCgwA
+ AmIBWAHvAbUBhQE6Af8BswGDATgB/wGzAYMBOAH/AbMBgwE4Af8BswGDATcB/wGzAYMBNwH/AbMBgwE3
+ Af8BtQGEATkB/wJkAVwB5xgAA0MBeAHOAdQB1gH/Ac4B1AHWAf8BzgHUAdYB/wHNAdQB1gH/Ac0B0wHV
+ Af8BzQHTAdUB/wHKAdIB1AH/AcoB0gHTAf8ByQHRAdMB/wHIAdEB0gH/AccB0AHRAf8BxgHPAdEB/wNO
+ AZVMAAMfAS0DMAFLAy8BSgMvAUoDLwFJAzIBUQM2AVkDNgFZAzYBWQM2AVkDNgFZAzUBVwMxAU4DJgE5
+ CwAB/wMAAf8DAAH/CwAB/wMAAf8DAAH/AwAB/wMAAf8YAAMUARwDIAEuAyABLgMgAS4BGwEeASoB/wNZ
+ AccDQgF0AzcBWwM1AVgDMwFSAy8BSgMrAUIDIAEuAxQBHEgAA1IBpAT/AfUB9AHzAf8B9gH1AfQF/wE9
+ ATwBPgH/ARQBEwEWBf8B+wL6Af8C+wH6Af8B+wL6Bf8ClgGXAf8DWgHYCAADhgH/A8AB/wMAAf8DAAH/
+ A4YJ/wPAAf8BAAP/AQAB/wEAAf8DAAH/GAAB4gG4AZkB/wHiAbkBmAH/AeIBuAGZAf8BSAFXAZ0B/wFA
+ AVABkgH/ATwBSwGSAf8BKwFOAZ4B/wHKAawBmAH/AeIBuAGYAf8B4gG5AZkB/wHiAbkBmAH/AeIBuAGY
+ Af8YAAMMARADRAF7Al0BWgHKAlkBQgH1AWIBXgFBAfYCXAFZAcwDRQF9Aw0BERQAA1ABngH7AfoB+QH/
+ Ae4C7QH/AfAB7wHuAf8B/gH9AfwB/wE8ATsBPQH/ARMBEgEUAf8C8AHvAf8C6AHnAf8C6AHnAf8C6AHn
+ Af8B9QH0AfMB/wGPAY4BjwH/A1oB5AgAA4YB/wPAAf8DAAH/A4YB/wPAAf8DwAX/A8AB/wEAAf8BAAH/
+ A8AB/wPAAf8DAAH/FAAB4wG7AZsB/wH4AeABvgH/AfgB4AG+Af8BmwGfAa4B/wFUAWYBqQH/AUIBXgGg
+ Af8BAAFVAbAB/wEAAV4BvwH/AfgB4QG+Af8B+AHgAb8B/wH4AeEBvgH/AeMBugGaAf8UAAM0AVQCXQFO
+ AfABgAFPAQAB/wGAAU8BAAH/AYABTwEAAf8BgAFPAQAB/wGAAU8BAAH/Al8BTAHzAlgBVgHBAyEBMBAA
+ A1ABngH7AvoB/wHvAe4B7QH/AvAB7wH/Af4B/QH8Af8BhgGEAYUB/wEgAR8BIAH/AvUB9AH/Au0B7AH/
+ Au0B7AH/Ae4B7QHsAf8C+gH5Af8BlAGTAZQB/wNbAeEIAAOGAf8DwAH/AwAB/wOGAf8DwAH/A8AB/wPA
+ Af8DAAH/AQAB/wEAA/8BAAP/AQAB/wMAAf8UAAHkAb0BnAH/AfgB4QG/Af8B8wHWAbIB/wHCAbgBrgH/
+ AUEBYQGsAf8BEwHAAfgB/wEAAZcB1wH/AQABYAHUAf8BAAFgAcEB/wHzAdYBsgH/AfgB4QG/Af8B5AG9
+ AZ0B/xAAAzQBVAGEAVIBAAH/AYcBVQEAAf8BhwFVAQAB/wGHAVUBAAH/AYcBVQEAAf8BfwFrARIB/gJd
+ AU4B8AJaAVcBxQNLAY4CNQE0AVUDCgENDAADUAGeAf0B/AH7Af8C8AHvAf8B8gLxAf8B/gL9Af8BkgGQ
+ AZEB/wESARABEQH/AawBqwGqAf8BrAGrAaoB/wGsAasBqgH/AaoCqQH/Aa0BrAGrAf8BKgEoASkB/wNb
+ AeEIAAOGAf8DwAH/AwAB/wOGAf8DwAH/A8AD/wEAAf8DAAH/AwAB/wPAAf8DwAH/AwAB/xQAAeYBwAGf
+ Af8B+AHiAcEB/wHZAb4BnQH/AdkBvgGeAf8BlgGnAasB/wEAAVwBxAH/AQ4B0wL/AQABswHuAf8BAAFg
+ AdQB/wEAAWIBwgH/AfgB4QHAAf8B5gHAAZ8B/wwAAw0BEgJdAU4B8AGQAVwBAAH/AZABXAEAAf8BkAFc
+ AQAB/wGZAWMBAAH/AZYBYQEAAf8CYAFZAesCWQFWAb4DSAGGAjEBMAFNAxQBHAMBAQIMAANQAZ4B/gL9
+ Af8B8gHxAfAB/wLzAfIC/wL+Af8BnQKcAf8BCQIHAf8BFgEUARMB/wEYARUBFAH/ARgCFQH/ARUCEwH/
+ AQ0CCwH/AwAB/wNbAeEIAAOGBf8DAAH/A4YD/wEAAf8DwAP/AQAB/wEAB/8DwAH/A8AB/wMAAf8DAAH/
+ AwAB/wwAAecBwwGiAf8B+AHjAcIB/wH2Ad0BugH/AfgB4wHDAf8B+AHjAcIB/wG2AcUBwwH/AQABXAHE
+ Af8BDgHTAv8BDwHGAfYB/wEAAWAB1AH/AQABZgHKAf8B6AHDAaIB/wMAAQEIAANFAX0BmQFjAQAB/wGZ
+ AWQBAQH/AZoBZAEBAf8CZAFTAfEDOwFjAw0BEQMKAQ0DJAE1AysBQgMQARYDAAEBEAADUAGeAv8B/gH/
+ AfMC8gH/AvQB8wP/Af4B/wGjAqIB/wEUAREBEAH/ATwBOgE4Af8BzwHOAc0B/wHHAcUBxAH/AakBpwGm
+ Af8BnQGbAZoB/wGLAYkBigH/A1sB4QgAA4YF/wMAAf8DwAH/A4YD/wEAA/8BAAH/AQAL/wMAAf8DwAH/
+ A8AB/wPAAf8DAAH/CAAB6gHGAaQB/wH4AeQBxAH/AdwBwgGkAf8B3AHEAaYB/wHcAcQBpgH/AdwBxQGm
+ Af8BoQGuAa8B/wEAAVwBxAH/AZgB7AL/AQ8BxgH2Af8BAAFgAdQB/wJoAV8B/wMoATwIAAJcAVoBzQGj
+ AYIBBAH/AaMBggEEAf8BpQGDAQMB/wM7AWMQAAMEAQUYAANQAZ4E/wH0AvMB/wP1Bf8BqAGmAaUB/wEM
+ AgkB/wEuAi0B/wHmAuUB/wHxAvAB/wGnAaYBpQH/ATYBMwEyAf8BmgKYAf8DXAHnCAADhgX/AwAB/wPA
+ Af8DwAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DhgH/A4YB/wOGAf8DwAH/AwAB/wgAAewBygGoAf8B+AHl
+ AcYB/wH5AeQBxgH/AfkB5QHFAf8B+QHkAcYB/wH4AeQBxgH/AfcB4wHFAf8BvAHIAcYB/wEAAVwBxAH/
+ AZYB6gH+Af8CtwGsAf8BWAFZAUsB/wJoAV8B/wgAAWYBWQFCAfUBrgGLAQYB/wGuAYsBBgH/AZ8BaAEB
+ Af8DDQERLAADUAGeBP8C9QH0Af8C9wH2Bf8BrAKqAf8BEQEPAQ4B/wEvAS0BLgH/Ac8BzQHMAf8B1AHS
+ AdEB/wG0ArIB/wGqAacBpgH/A2oB+QNXAb0IAAOGAf8DhgH/AwAB/wPAAf8DwAH/A4YB/wOGAf8DhgH/
+ A4YB/wOGAf8DhgH/A4YB/wOGAf8DwAH/AwAB/wgAAe4BzQGrAf8B+AHmAccB/wHfAcgBqgH/Ad4ByAGq
+ Af8B3wHIAasB/wHfAccBqwH/AdsBwwGmAf8B2gHCAaQB/wGrAbABqwH/AY4BjwGEAf8B4AHiAdMB/wKJ
+ AWkB/wEBAU8B3gH/AVUBXAFeAeoEAAFoAVkBQgH1AbkBlAEJAf8BuQGUAQkB/wGnAYQBAwH/Aw0BEQgA
+ A0wBkgGpAYYBAwH/AaMBggECAf8BowGCAQIB/wGjAYIBAgH/AaMBggECAf8BYgFfAUwB8wgAA1ABngT/
+ AfcC9gH/A/gB/wP6Af8D8AH/AeoC6QH/A/AB/wP3Af8D9gH/AvoB+QH/A1gBuQMXASADBwEJBAADhgn/
+ A4YB/wPAAf8DwAH/A4YB/wPAAf8DwAH/A8AB/wPAAf8DwAH/A8AB/wPAAf8DhgH/AwAB/wgAAfAB0AGt
+ Af8B+QHmAckB/wH4AeYByQH/AfkB5gHJAf8B+QHmAckB/wH3AeUByQH/AfAB2QG9Af8B6QHPAbMB/wHo
+ Ac4BsgH/AcwBuQGvAf8CiQFpAf8BPgGWAeoB/wEsAYUB4AH/AVoCXQHTBAACXAFaAc0BwwGcAQsB/wHD
+ AZwBCwH/Ab8BmAEKAf8DOwFjCAADDAEQAlsBWALLAaIBDQH/AcMBnAELAf8BwwGcAQsB/wHDAZwBCwH/
+ AakBhgEDAf8IAANQAZ4E/wL4AfcB/wP5Af8D+gH/Av4B/RX/A1YBqxAAA4YB/wOGAf8DhgH/A4YB/wPA
+ Af8DhgH/AcwCNwL/AcwBNwH/AcwBmQEEAf8BzAGZAQAC/wE3AQQB/wHMATcBBAX/A4YB/wMAAf8IAAHx
+ AdMBsQH/AfkB5wHLAf8B4gHMAbAB/wHiAcsBrwH/AeEBzAGvAf8B4QHKAa8B/wHXAb4BoQH/AdUBugGc
+ Af8B1AG5AZ0B/wHUAbkBnQH/AbYBrwG0Af8BXgGSAcQB/wNIAYYIAAJGAUUBfgHSAagBDgH/Ac0BpAEO
+ Af8BzQGkAQ4B/wFnAWQBUwHxAzsBYwMNAREDDQERA0EBcgG/AZgBCQH/Ac0BpAEOAf8BzQGkAQ4B/wHN
+ AaQBDgH/AbABjAEFAf8IAANQAZ4E/wL5AfgB/wP6Af8D/AH/A/0B/wP+Bf8B/AL9Af8B9AL1Af8D+gH/
+ A1YBsxgAA4YJ/wOGAf8BzAI3A/8BNwL/AcwBNwH/AcwBmQEEAf8BzAGZAQAC/wE3AQQF/wOGAf8DAAH/
+ CAAB8wHXAbQB/wH5AecBzAH/AfgB5wHMAf8B+QHoAcwB/wH5AegBzAH/AfcB5QHKAf8B5wHPAbUB/wHy
+ Ad4BxgH/AfMB4AHIAf8B9wHoAdMB/wNaAcUB7wHQAa4B/wMBAQIDAAEBBAADDwEUAWEBXQFOAfAB2AGt
+ ARAB/wHXAawBEAH/AdcBrAEQAf8B0QGnAQ4B/wG9AZcBCAH/Ab0BlwEIAf8B0QGnAQ4B/wHXAawBEAH/
+ AdcBrAEQAf8B1wGsARAB/wHXAawBEAH/AbYBkQEGAf8IAANQAZ4E/wP6Af8D/AH/A/0B/wP+Bf8B/gH/
+ Af4B/wPqAf8C1wHYAf8B3QLeAf8DOwFkHAADhgH/A4YB/wOGAf8BzAI3A/8BNwP/ATcC/wHMATcB/wHM
+ AZkBBAH/AcwBmQEABf8DhgH/AwAB/wgAAfQB2QG1Af8B+QHoAc0B/wHkAc8BtAH/AeQBzwG0Af8B5AHP
+ AbQB/wHjAc4BswH/Ad0BxgGpAf8B+QHoAc4B/wH5AegBzgH/A1wBzAHxAdMBsQH/AyYBOBAAAjUBNAFV
+ AdsBsQEQAf8B3wGzARIB/wHeAbMBEgH/Ad4BswESAf8B3gGzARIB/wHeAbMBEgH/Ad4BswESAf8B3gGz
+ ARIB/wHfAbMBEgH/AdwBsgEQAf8B5gG6ARQB/wG7AZUBCAH/CAADUAGeBP8D/AH/A/0J/wP9Af8C+gH7
+ Af8B6wLsAf8C+gH7Af8DQgFzKAADhgH/AcwCNwL/AcwBNwP/ATcD/wE3Av8BzAE3Af8BzAGZAQQF/wOG
+ Af8DAAH/CAAB9gHbAbgB/wH5AekBzwH/AfkB6QHOAf8B+QHoAc4B/wH4AegBzgH/AfYB5QHMAf8B7gHa
+ Ab8B/wH5AegBzgH/A2AB3gH0AdkBtQH/AyYBOBgAAjUBNAFVAWMBXQFOAfAB7QHCARYB/wHmAbkBFAH/
+ AeYBuAEUAf8B5gG4ARQB/wHmAbkBFAH/Ae0BwgEWAf8BawFkAVMB8QI6ATkBYAJbAVgBywHHAaABCwH/
+ CAADVAGmHP8B6wLsAf8DQgFzLAADhgH/AcwCNwH/AcwBNwEEAf8BzAE3AQQB/wHMATcBBAH/AcwBNwEE
+ Af8BzAE3AQQF/wOGAf8DAAH/CAAB9wHdAboB/wH5AekBzwH/AfkB6QHPAf8B+QHpAc8B/wH5AekBzwH/
+ AfcB5gHNAf8B7QHYAb0B/wH5AegBzgH/AfcB3QG4Af8DJgE4IAADDAEQA0UBfQJcAVkBzAF+AXkBPgH4
+ AYgBgQFBAfkCXgFcAc4CRgFFAX4DDQESBAADDAEQA0wBkggAAyYEOAFcAzgBXAM4AVwDOAFcAzgBXAM4
+ AVwDOAFcAykBPzAAA4YB/wPXAf8D1wH/A9cB/wPXAf8D1wH/A9cB/wPXAf8DhgH/AwAB/wgAAfgB3wG7
+ Af8B+AHfAbsB/wH4Ad8BuwH/AfgB3wG7Af8B+AHfAbsB/wH4Ad8BuwH/AfgB3wG7Af8B+AHfAbsB/wMm
+ AThUAAFCAU0BPgcAAT4DAAEoAwABQAMAASADAAEBAQABAQYAAQEWAAP/AQAC/wHgAQcB/gEBAgAC5wHA
+ AQcB/AMAAsMBwAEHAeADAAKBAcABBwHgAwABgAEBAcABAAHwAwABwAEDBgAB4AEHBgAB8AEPBgAB8AEP
+ BgAB4AEHAwABAQIAAcABAwMAAQMCAAGAAQEDAAEDAgABgQGAAwABAwIAAcMBwQMAAQMCAAHnAeMDAAED
+ AgAB/wH3AQABPwEAAQMCAAGAAQEBjAEfAYABAQL/AYABAQGAAQ8BwAEDAfABDwGAAQEBgAEHAcABAwHg
+ AQcBgAEBAYABBwHAAQMBwAEDAYABAQGAAQcBwAEDAYABAwGAAQEBgAEBAcABAQGAAQcBgAEBAYABAAHA
+ AQEBgwHfAYABAQGAAQABwAEBAYMB/wGAAQEBgAEAAcABAAGDAQEBgAEBAgABwAEAAYMBAQGAAQcBgAEA
+ AcABAQGAAQEBgAEHAeABAAHAAQABgAEBAYABBwHwAQABwAEDAcABAQGAAQ8B/AEAAcABBwHgAQEBgAEf
+ AfwBAAHAAQ8B8AEJAYABPwH8AQABwAEfAv8L
diff --git a/remoteapp-tool/RemoteAppCreateClientConnection.vb b/remoteapp-tool/RemoteAppCreateClientConnection.vb
index 046dbe9..f0999ca 100644
--- a/remoteapp-tool/RemoteAppCreateClientConnection.vb
+++ b/remoteapp-tool/RemoteAppCreateClientConnection.vb
@@ -8,9 +8,12 @@ Public Class RemoteAppCreateClientConnection
RemoteApp = SelectedRemoteApp
+ Dim rdpSign As New RDPSign.RDPSign
Dim RemoteAppShortName = RemoteApp.Name
Me.Text = "Create Client Connection for " & RemoteAppShortName
+ CertificateComboBox.Items.AddRange(rdpSign.GetCertificateFriendlyName)
+
SetCCWindowSettings()
If Me.ServerAddress.Text = "" Then Me.ServerAddress.Text = System.Net.Dns.GetHostName
@@ -31,6 +34,12 @@ Public Class RemoteAppCreateClientConnection
MSIRadioButton.Text = "MSI installer (requires WiX Toolset)"
End If
+ If Not My.Computer.FileSystem.FileExists(GetSysDir() & "\rdpsign.exe") Then
+ GroupBoxSignRDP.Enabled = False
+ GroupBoxSignRDP.Text += " (requires rdpsign.exe)"
+ GroupBoxSignRDP.Tag = "noexe"
+ End If
+
If Not RemoteApp.FileTypeAssociations Is Nothing Then _
FTACountLabel.Text = "Count: " & RemoteApp.FileTypeAssociations.Count
@@ -59,6 +68,9 @@ Public Class RemoteAppCreateClientConnection
My.Settings.SavedCreateRAWebIcon = False
My.Settings.SavedMSIPerUser = False
My.Settings.SavedDisableFTA = False
+ My.Settings.SavedSignRDP = False
+ My.Settings.SavedSignedAndUnsigned = False
+ My.Settings.SavedCertSelected = 0
End Sub
Sub SaveCCWindowSettings()
@@ -78,6 +90,9 @@ Public Class RemoteAppCreateClientConnection
My.Settings.SavedCreateRAWebIcon = CreateRAWebIcon.Checked
My.Settings.SavedMSIPerUser = PerUserRadioButton.Checked
My.Settings.SavedDisableFTA = DisabledFTACheckBox.Checked
+ My.Settings.SavedSignRDP = CheckBoxSignRDPEnabled.Checked
+ My.Settings.SavedSignedAndUnsigned = CheckBoxCreateSignedAndUnsigned.Checked
+ My.Settings.SavedCertSelected = CertificateComboBox.SelectedIndex
End Sub
Sub SetCCWindowSettings()
@@ -116,6 +131,20 @@ Public Class RemoteAppCreateClientConnection
PerMachineRadioButton.Checked = False
PerUserRadioButton.Checked = True
End If
+
+ CheckBoxSignRDPEnabled.Checked = My.Settings.SavedSignRDP
+ CertificateComboBox.Enabled = My.Settings.SavedSignRDP
+ CheckBoxCreateSignedAndUnsigned.Checked = My.Settings.SavedSignedAndUnsigned
+
+ If CertificateComboBox.Items.Count >= (My.Settings.SavedCertSelected + 1) Then
+ CertificateComboBox.SelectedIndex() = My.Settings.SavedCertSelected
+ ElseIf CertificateComboBox.Items.Count > 0 Then
+ CertificateComboBox.SelectedIndex() = 0
+ ElseIf Not GroupBoxSignRDP.Tag = "noexe" Then
+ GroupBoxSignRDP.Text += " (No certificates found)"
+ GroupBoxSignRDP.Enabled = False
+ End If
+
End Sub
Private Sub UseRDGatewayCheckBox_CheckedChanged(sender As Object, e As EventArgs) Handles UseRDGatewayCheckBox.CheckedChanged
@@ -137,8 +166,11 @@ Public Class RemoteAppCreateClientConnection
If RDPRadioButton.Checked Then
CreateButton.ImageIndex = 6
+ CheckBoxCreateSignedAndUnsigned.Enabled = True
Else
CreateButton.ImageIndex = 1
+ CheckBoxCreateSignedAndUnsigned.Enabled = False
+ CheckBoxCreateSignedAndUnsigned.Checked = False
End If
End Sub
@@ -147,15 +179,20 @@ Public Class RemoteAppCreateClientConnection
Dim MSIPath = ""
Dim TempMSIPath = ""
+ If CheckBoxSignRDPEnabled.Checked And CertificateComboBox.SelectedItem = "" Then
+ MessageBox.Show("You must select a certificate to sign the RDP file.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
+ Return
+ End If
+
If DisabledFTACheckBox.Checked And Not RemoteApp.FileTypeAssociations Is Nothing Then RemoteApp.FileTypeAssociations.Clear()
If RDPRadioButton.Checked Then
FileSaveRDP.FileName = RemoteApp.Name
- If Not FileSaveRDP.ShowDialog() = Windows.Forms.DialogResult.OK Then Exit Sub
+ If Not FileSaveRDP.ShowDialog() = Windows.Forms.DialogResult.OK Then Return
RDPPath = FileSaveRDP.FileName
Else
FileSaveMSI.FileName = RemoteApp.Name
- If Not FileSaveMSI.ShowDialog() = Windows.Forms.DialogResult.OK Then Exit Sub
+ If Not FileSaveMSI.ShowDialog() = Windows.Forms.DialogResult.OK Then Return
MSIPath = FileSaveMSI.FileName
RDPPath = Environment.GetEnvironmentVariable("TEMP") & "\" & RemoteApp.Name & ".rdp"
TempMSIPath = Environment.GetEnvironmentVariable("TEMP") & "\" & RemoteApp.Name & ".msi"
@@ -186,6 +223,7 @@ Public Class RemoteAppCreateClientConnection
ExtractFTIcon(ProductFileName, FTA)
Next
End If
+ Me.Close()
Else
'!!!!!!! If it's an MSI
Dim RDP As New RDP2MSIlib.RDP
@@ -222,9 +260,8 @@ Public Class RemoteAppCreateClientConnection
RDP.CreateMSI(MSIPath)
DeleteFiles(FilesToDelete)
-
+ Me.Close()
End If
- Me.Close()
End Sub
Private Sub ExtractFTIcon(ProductFileName As String, FTA As RemoteAppLib.FileTypeAssociation)
@@ -285,6 +322,12 @@ Public Class RemoteAppCreateClientConnection
RDPfile.SaveRDPfile(RDPPath)
+ If CheckBoxSignRDPEnabled.Checked Then
+ Dim rdpSign As New RDPSign.RDPSign
+ Dim Thumbprint As String = rdpSign.GetThumbprint(CertificateComboBox.Text)
+ rdpSign.SignRDP(Thumbprint, RDPPath, CheckBoxCreateSignedAndUnsigned.Checked)
+ End If
+
End Sub
Private Function GetFlatFileTypesList(AppName As String, Optional Delim As String = ",") As String
@@ -306,7 +349,7 @@ Public Class RemoteAppCreateClientConnection
End Function
Private Sub FTAButton_Click(sender As Object, e As EventArgs) Handles FTAButton.Click
- MessageBox.Show(Me, "Changes made here to File Type Associations are for this client connection only and will not be saved for next time." & vbCrLf & vbCrLf & _
+ MessageBox.Show(Me, "Changes made here to File Type Associations are for this client connection only and will not be saved for next time." & vbCrLf & vbCrLf &
"To make permanent changes to the File Type Associations for this RemoteApp, edit the RemoteApp.", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information)
RemoteApp = RemoteAppFileTypeAssociation.EditFileTypes(RemoteApp)
If Not RemoteApp.FileTypeAssociations Is Nothing Then _
@@ -354,4 +397,31 @@ Public Class RemoteAppCreateClientConnection
End If
End Sub
+ Private Sub CheckBoxSignRDPEnabled_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBoxSignRDPEnabled.CheckedChanged
+ CertificateComboBox.Enabled = CheckBoxSignRDPEnabled.Checked
+ If (EditAfterSave.Checked And CheckBoxSignRDPEnabled.Checked) Then
+ If MessageBox.Show("You have selected ""Sign RDP file"" and ""Manually edit RDP file""." & vbCrLf & vbCrLf & "If you save any changes to a signed RDP file it will stop working." & vbCrLf & vbCrLf & "Are you sure you want the RDP file to be signed?", "Warning", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) = DialogResult.Yes Then
+ CheckBoxSignRDPEnabled.Checked = True
+ Else
+ CheckBoxSignRDPEnabled.Checked = False
+ End If
+ End If
+ End Sub
+
+ Private Sub EditAfterSave_CheckedChanged(sender As Object, e As EventArgs) Handles EditAfterSave.CheckedChanged
+ If (EditAfterSave.Checked And CheckBoxSignRDPEnabled.Checked) Then
+ If MessageBox.Show("You have selected ""Sign RDP file"" and ""Manually edit RDP file""." & vbCrLf & vbCrLf & "If you save any changes to a signed RDP file it will stop working." & vbCrLf & vbCrLf & "Are you sure you want to edit after saving?", "Warning", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) = DialogResult.Yes Then
+ EditAfterSave.Checked = True
+ Else
+ EditAfterSave.Checked = False
+ End If
+ End If
+
+ End Sub
+
+ Private Sub CheckBoxCreateSignedAndUnsigned_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBoxCreateSignedAndUnsigned.CheckedChanged
+ If CheckBoxCreateSignedAndUnsigned.Checked = True Then
+ CheckBoxSignRDPEnabled.Checked = True
+ End If
+ End Sub
End Class
\ No newline at end of file
diff --git a/remoteapp-tool/RemoteAppEditWindow.Designer.vb b/remoteapp-tool/RemoteAppEditWindow.Designer.vb
index 0994e5c..506691d 100644
--- a/remoteapp-tool/RemoteAppEditWindow.Designer.vb
+++ b/remoteapp-tool/RemoteAppEditWindow.Designer.vb
@@ -151,7 +151,7 @@ Partial Class RemoteAppEditWindow
Me.Label11.Font = New System.Drawing.Font("Segoe UI", 9.0!)
Me.Label11.Location = New System.Drawing.Point(243, 103)
Me.Label11.Name = "Label11"
- Me.Label11.Size = New System.Drawing.Size(64, 15)
+ Me.Label11.Size = New System.Drawing.Size(65, 15)
Me.Label11.TabIndex = 13
Me.Label11.Text = "Icon Index:"
'
@@ -160,7 +160,7 @@ Partial Class RemoteAppEditWindow
Me.Label10.AutoSize = True
Me.Label10.Location = New System.Drawing.Point(232, 160)
Me.Label10.Name = "Label10"
- Me.Label10.Size = New System.Drawing.Size(83, 15)
+ Me.Label10.Size = New System.Drawing.Size(82, 15)
Me.Label10.TabIndex = 21
Me.Label10.Text = "TSWebAccess:"
'
diff --git a/remoteapp-tool/RemoteAppEditWindow.resx b/remoteapp-tool/RemoteAppEditWindow.resx
index 6a9a9f0..3e3a8a0 100644
--- a/remoteapp-tool/RemoteAppEditWindow.resx
+++ b/remoteapp-tool/RemoteAppEditWindow.resx
@@ -125,152 +125,152 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAg
- JAAAAk1TRnQBSQFMAgEBCQEAAUgBAQFIAQEBEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA
- AwABMAMAAQEBAAEgBgABMP8AHwADKgFBAwYBCBgAAwYBCAMqAUHUAAMqAUEBQAE9AfIB/wJAAcEB/QMG
- AQgQAAMGAQgCKwG1AfwBIgEgAeoB/wMqAUHMAAMqAUEBSQFHAfUB/wFUAVIB+gH/AUkBRgH2Af8BMgEx
- AbkB/AMGAQgIAAMGAQgCKwG2AfwBMgEwAfEB/wE9ATsB9gH/ASIBIAHqAf8DKgFByAADHgErAUwBSQH2
- Af8BVgFTAfoB/wFiAWEC/wFKAUcB9gH/ATIBMQG5AfwDBgEIAwYBCAIrAbcB/AE4ATYB8gH/AVQBUwL/
- ATsBOQH0Af8BIAEeAekB/wMeASvMAAMeASsBTAFKAfYB/wFXAVQB+gH/AWUBYgL/AUsBSQH2Af8BMwEy
- AbkB/AJAAcAB/QFBAT4B9AH/AVkBWAL/AUEBPwH1Af8BJwElAesB/wMeASvUAAMeASsBTQFLAfYB/wFY
- AVUB+gH/AWUBYwL/AWQBYQL/AWEBXwL/AV8BXQL/AUgBRgH3Af8BMAEuAe4B/wMeASvcAAMeASsBTgFM
- AfcB/wFqAWcC/wFKAUcC/wFIAUUC/wFjAWEC/wE5ATcB8AH/Ax4BK+AAAwYBCAFKAUkBygH9AW4BagL/
- AU8BTAL/AUwBSQL/AWcBZQL/AkABwwH9AwYBCNwAAwYBCAFXAVMBvQH8AWEBXgH7Af8BgAFvAv8BbwFs
- Av8BbQFqAv8BagFoAv8BTwFNAfcB/wE1ATMBuQH8AwYBCNQAAwYBCAFfAVwBvwH8AWgBZQH9Af8BhgGC
- Av8BZwFkAfwB/wFVAVMB+AH/AVEBTgH3Af8BXgFbAfoB/wFsAWoC/wFRAU4B9wH/ATUBNAG5AfwDBgEI
- zAADBgEIAVcBVAHSAf0BbgFrAf4B/wGKAYcC/wFtAWoB/QH/AV0BWgH7Af8DHgErAx4BKwFSAU8B+AH/
- AV8BXQH6Af8BbgFrAv8BUgFQAfcB/wE2ATQBugH8AwQBBcgAAxYBHwFrAWgC/wGBAW8C/wGBAW8B/gH/
- AWUBYgH9Af8DHgErCAADHgErAVMBUAH4Af8BYAFeAfsB/wFvAW0C/wFTAVAB+AH/A0ABbwMBAQLIAAMW
- AR8BawFoAv8BagFnAf4B/wMeASsQAAMeASsBVQFSAfgB/wFbAVkB+QH/AVMBUgFTAagDHQEp0AADFgEf
+ JAAAAk1TRnQBSQFMAgEBCQEAAVABAQFQAQEBEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA
+ AwABMAMAAQEBAAEgBgABMP8AHwADKgFBAwYBCBgAAwYBCAMqAUHUAAMqAUEBPwE8AfIB/wJAAb4B/QMG
+ AQgQAAMGAQgCKwGzAfwBIQEfAeoB/wMqAUHMAAMqAUEBSAFGAfUB/wFTAVEB+gH/AUgBRQH2Af8BMQEw
+ AbcB/AMGAQgIAAMGAQgCKwG0AfwBMQEvAfEB/wE8AToB9gH/ASEBHwHqAf8DKgFByAADHgErAUsBSAH2
+ Af8BVQFSAfoB/wFhAWAC/wFJAUYB9gH/ATEBMAG3AfwDBgEIAwYBCAIrAbUB/AE3ATUB8gH/AVMBUgL/
+ AToBOAH0Af8BHwEdAekB/wMeASvMAAMeASsBSwFJAfYB/wFWAVMB+gH/AWQBYQL/AUoBSAH2Af8BMgEx
+ AbcB/AJAAb4B/QFAAT0B9AH/AVgBVwL/AUABPgH1Af8BJgEkAesB/wMeASvUAAMeASsBTAFKAfYB/wFX
+ AVQB+gH/AWQBYgL/AWMBYAL/AWABXgL/AV4BXAL/AUcBRQH3Af8BLwEtAe4B/wMeASvcAAMeASsBTQFL
+ AfcB/wFpAWYC/wFJAUYC/wFHAUQC/wFiAWAC/wE4ATYB8AH/Ax4BK+AAAwYBCAFJAUgBxwH9AW0BaQL/
+ AU4BSwL/AUsBSAL/AWYBZAL/AkABwAH9AwYBCNwAAwYBCAFWAVEBuwH8AWABXQH7Af8BgAFuAv8BbgFr
+ Av8BbAFpAv8BaQFnAv8BTgFMAfcB/wE0ATIBtwH8AwYBCNQAAwYBCAFeAVsBvQH8AWcBZAH9Af8BhgGC
+ Av8BZgFjAfwB/wFUAVIB+AH/AVABTQH3Af8BXQFaAfoB/wFrAWkC/wFQAU0B9wH/ATQBMwG3AfwDBgEI
+ zAADBgEIAVUBUwHPAf0BbQFqAf4B/wGKAYcC/wFsAWkB/QH/AVwBWQH7Af8DHgErAx4BKwFRAU4B+AH/
+ AV4BXAH6Af8BbQFqAv8BUQFPAfcB/wE1ATMBuAH8AwQBBcgAAxYBHwFqAWcC/wGBAW4C/wGBAW4B/gH/
+ AWQBYQH9Af8DHgErCAADHgErAVIBTwH4Af8BXwFdAfsB/wFuAWwC/wFSAU8B+AH/A0ABbwMBAQLIAAMW
+ AR8BagFnAv8BaQFmAf4B/wMeASsQAAMeASsBVAFRAfgB/wFaAVgB+QH/AVMBUgFTAagDHQEp0AADFgEf
Ax4BKxgAAx4BKwNAAW8DKQE++AADBwEK2AADIAEvAyMBMwMjATMDIwEzAyMBMwMjATMDIwEzAyMBMwMj
ATMDGQEjGAADIAEvAyMBMwMjATMDIwEzAyMBMwMjATMDIwEzAyMBMwMjATMDGQEjUAADFAEcAyABLgMg
- AS4DIAEuASIBJQExAf8DWQHHA0IBdAM3AVsDNQFYAzMBUgMvAUoDKwFCAyABLgMUARwMAAMIAQsBaQFf
- AVQB8AG2AYQBPQH/AbUBgwE5Af8BtgGCATgB/wG2AYIBOAH/AbYBggE4Af8BtgGCATgB/wG1AYMBOQH/
- AbYBhAE9Af8CWgFYAcAUAAMIAQsBaQFfAVQB8AG1AYQBPQH/AbUBgQE6Af8BtgGBAToB/wG2AYEBOgH/
- AbYBgQE6Af8BtgGBAToB/wG1AYEBOgH/AbUBhAE9Af8CWgFYAcBUAAHiAbgBmQH/AeIBuQGYAf8B4gG4
- AZkB/wFPAV4BnQH/AUcBVwGSAf8BQwFSAZIB/wEyAVUBngH/AcoBrAGYAf8B4gG4AZgB/wHiAbkBmQH/
- AeIBuQGYAf8B4gG4AZgB/xAAAykBPwG2AYQBPSH/AbYBhAE9Af8UAAMpAT8BtQGEAT0h/wG1AYQBPQH/
+ AS4DIAEuASEBJAEwAf8DWQHHA0IBdAM3AVsDNQFYAzMBUgMvAUoDKwFCAyABLgMUARwMAAMIAQsBaAFd
+ AVQB8AG2AYQBPAH/AbUBgwE4Af8BtgGCATcB/wG2AYIBNwH/AbYBggE3Af8BtgGCATcB/wG1AYMBOAH/
+ AbYBhAE8Af8CWgFYAcAUAAMIAQsBaAFdAVQB8AG1AYQBPAH/AbUBgQE5Af8BtgGBATkB/wG2AYEBOQH/
+ AbYBgQE5Af8BtgGBATkB/wG1AYEBOQH/AbUBhAE8Af8CWgFYAcBUAAHiAbgBmQH/AeIBuQGYAf8B4gG4
+ AZkB/wFOAV0BnQH/AUYBVgGSAf8BQgFRAZIB/wExAVQBngH/AcoBrAGYAf8B4gG4AZgB/wHiAbkBmQH/
+ AeIBuQGYAf8B4gG4AZgB/xAAAykBPwG2AYQBPCH/AbYBhAE8Af8UAAMpAT8BtQGEATwh/wG1AYQBPAH/
GAADEgEYA00BlQMAAf8EAAMBAQIIAAMBAQIcAAHjAbsBmwH/AfgB4AG+Af8B+AHgAb4B/wGbAZ8BrgH/
- AVsBbQGpAf8BSQFlAaAB/wEAAVwBsAH/AQABZQG/Af8B+AHhAb4B/wH4AeABvwH/AfgB4QG+Af8B4wG6
- AZoB/xAAAycBOwG1AYMBOQX/AQABMAHyAf8BAgFWAfMB/wEVAZoB9gH/ARkBpgH4Af8BCAFlAfQB/wEA
- ASsB8gX/AbUBgwE5Af8UAAMnATsBtQGCATsF/wEMAaMBZgH/ARcBpgFqAf8BGQGnAWwB/wEbAagBbAH/
- ARoBqQFrAf8BDgGlAWcF/wG1AYIBOwH/EAADHAEoA0gBhQMzAfYDAAH/AwAB/zAAAeQBvQGcAf8B+AHh
- Ab8B/wHzAdYBsgH/AcIBuAGuAf8BSAFoAawB/wEaAcAB+AH/AQABlwHXAf8BAAFnAdQB/wEAAWcBwQH/
- AfMB1gGyAf8B+AHhAb8B/wHkAb0BnQH/EAADJAE2AbYBgwE5Bf8BGwFCAfIB/wElAWkB8gH/AR4BkwH0
- Af8BIgGaAfQB/wEVAWcB8QH/AQABLgHwBf8BtgGDATgB/wMjATMDIwEzAxkBIwgAAyQBNgG1AYEBOwX/
- AR4BvQGNAf8BKAG/AZIB/wEtAcEBlAH/ATUBxgGWAf8BEwFMAYwB/wEpAcMBjwX/AbUBgQE6Af8DIwEz
- AyMBMwMZASMEAAMmAfkDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/xQA
- AeYBwAGfAf8B+AHiAcEB/wHZAb4BnQH/AdkBvgGeAf8BlgGnAasB/wEAAWMBxAH/ARUB0wL/AQABswHu
- Af8BAAFnAdQB/wEAAWkBwgH/AfgB4QHAAf8B5gHAAZ8B/wgAAxkEIwEzAzEBTwG2AYMBOQP/AfwB/wEP
- AS8B8AH/AUEBbwHyAf8BQgGTAfQB/wEnAYMB8gH/AQsBTQHwAf8BAAEjAfAD/wH7Af8BtQGAATUB/wG1
- AYMBPAH/AbYBhAE+Af8CWgFYAcADGQQjATMDMQFPAbQBgQE6Bv8B4QGoAv8B4wGtAv8B5gGwAf8BxAHO
- AZ8B/wEKAYYBgAH/AcABzAGZBf8BtAFvATYB/wG1AYMBPAH/AbYBhAE+Af8CWgFYAcAEAAMHAQkDQAFx
- AyYB+QMAAf8DAAH/GwAB/xQAAecBwwGiAf8B+AHjAcIB/wH2Ad0BugH/AfgB4wHDAf8B+AHjAcIB/wG2
- AcUBwwH/AQABYwHEAf8BFQHTAv8BFgHGAfYB/wEAAWcB1AH/AQABbQHKAf8B6AHDAaIB/wMAAQEEAAJa
- AVgBwAG1AYUBPwH/AbUBhAE+Af8BtQGCATYD/wH7Af8BAAEUAe4B/wEwAVIB8AH/AU0BhQHzAf8BZAGV
- AfQB/wGDAZoB9gH/AYABjQH5A/8B+QH/AbUBbAEwCf8BtgGEAT0B/wJaAVgBwAG2AYUBPwH/AbYBhAE+
- Af8BswFvATcG/wHZAZQC/wHbAZoC/wHeAaAB/wEEAZ8BggH/ARIBogGDAf8BBAGdAW0F/wG1AWsBMQn/
- AbUBhAE9Af8MAAMLAQ8DSAGFAwAB/xsAAf8UAAHqAcYBpAH/AfgB5AHEAf8B3AHCAaQB/wHcAcQBpgH/
- AdwBxAGmAf8B3AHFAaYB/wGhAa4BrwH/AQABYwHEAf8BmAHsAv8BFgHGAfYB/wEAAWcB1AH/Am8BZgH/
- AygBPAQAAbUBhAE+Bf8B9gHwAekB/wGyAW8BMwP/Af0B/wIAAewB/wEdATAB7QH/ATkBUAHwAf8BTAFj
- AfIB/wFcAWsB9AH/AWIBZQH2A/8B/AH/AbwBbAEwAf8BAAGuAYAF/wG2AYIBOwH/AbYBhAE+Bf8B/AHv
- AecB/wG0AWwBMgX/AQQBuAL/AWcBxQHfAv8B1wGNAf8BOgGvAYsB/wESAakBiwH/ATkBrQGGBf8BugFr
- ATIB/wEFAacBbAX/AbUBggE7Af8zAAH/FAAB7AHKAagB/wH4AeUBxgH/AfkB5AHGAf8B+QHlAcUB/wH5
- AeQBxgH/AfgB5AHGAf8B9wHjAcUB/wG8AcgBxgH/AQABYwHEAf8BlgHqAf4B/wK3AawB/wFfAWABUgH/
- Am8BZgH/BAABtAGCATsF/wHnAZsBJQH/AbEBbwE2Bf8CAAHtAf8CAAHuAf8BFwEeAfAB/wEtATUB8gH/
- AUABQgH1Af8BTgFNAfcF/wHAAW0BMwH/AQABrQGBBf8BtgGCATsB/wG1AYIBOwX/ASwBnQFgAf8BtwFs
- ATMF/wFqAccB0AH/AQwByQP/Ac0BagH/AccBwwGFAf8BBwGvAZQB/wHGAcIBgQX/AbsBbAEzAf8BHAHC
- AZMF/wG1AYEBOwH/FwABARsAAf8UAAHuAc0BqwH/AfgB5gHHAf8B3wHIAaoB/wHeAcgBqgH/Ad8ByAGr
- Af8B3wHHAasB/wHbAcMBpgH/AdoBwgGkAf8BqwGwAasB/wGOAY8BhAH/AeAB4gHTAf8CiQFwAf8BCAFW
- Ad4B/wFVAVwBZgHqAbMBggE8Bf8B5gGeAS4B/wGvAYABPAP/AfYD/wHtA/8B6wP/AeoD/wHqA/8B6gP/
- AewD/wHzAf8BwgFtATQB/wEAAasBbgX/AbYBggE7Af8BtAGCATsF/wE5Aa8BbwH/AbYBbQE2A/8B9AL/
- Af4B7QL/Af4B7QL/Af4B8gL/Af4B9AP/AfQC/wH+AfQD/wH3Af8BvQFuATYB/wGzAcsBnAX/AbUBggE7
+ AVoBbAGpAf8BSAFkAaAB/wEAAVsBsAH/AQABZAG/Af8B+AHhAb4B/wH4AeABvwH/AfgB4QG+Af8B4wG6
+ AZoB/xAAAycBOwG1AYMBOAX/AQABLwHyAf8BAQFVAfMB/wEUAZoB9gH/ARgBpgH4Af8BBwFkAfQB/wEA
+ ASoB8gX/AbUBgwE4Af8UAAMnATsBtQGCAToF/wELAaMBZQH/ARYBpgFpAf8BGAGnAWsB/wEaAagBawH/
+ ARkBqQFqAf8BDQGlAWYF/wG1AYIBOgH/EAADHAEoA0gBhQM0AfYDAAH/AwAB/zAAAeQBvQGcAf8B+AHh
+ Ab8B/wHzAdYBsgH/AcIBuAGuAf8BRwFnAawB/wEZAcAB+AH/AQABlwHXAf8BAAFmAdQB/wEAAWYBwQH/
+ AfMB1gGyAf8B+AHhAb8B/wHkAb0BnQH/EAADJAE2AbYBgwE4Bf8BGgFBAfIB/wEkAWgB8gH/AR0BkwH0
+ Af8BIQGaAfQB/wEUAWYB8QH/AQABLQHwBf8BtgGDATcB/wMjATMDIwEzAxkBIwgAAyQBNgG1AYEBOgX/
+ AR0BvQGNAf8BJwG/AZIB/wEsAcEBlAH/ATQBxgGWAf8BEgFLAYwB/wEoAcMBjwX/AbUBgQE5Af8DIwEz
+ AyMBMwMZASMEAAMnAfkDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/xQA
+ AeYBwAGfAf8B+AHiAcEB/wHZAb4BnQH/AdkBvgGeAf8BlgGnAasB/wEAAWIBxAH/ARQB0wL/AQABswHu
+ Af8BAAFmAdQB/wEAAWgBwgH/AfgB4QHAAf8B5gHAAZ8B/wgAAxkEIwEzAzEBTwG2AYMBOAP/AfwB/wEO
+ AS4B8AH/AUABbgHyAf8BQQGTAfQB/wEmAYMB8gH/AQoBTAHwAf8BAAEiAfAD/wH7Af8BtQGAATQB/wG1
+ AYMBOwH/AbYBhAE9Af8CWgFYAcADGQQjATMDMQFPAbQBgQE5Bv8B4QGoAv8B4wGtAv8B5gGwAf8BxAHO
+ AZ8B/wEJAYYBgAH/AcABzAGZBf8BtAFuATUB/wG1AYMBOwH/AbYBhAE9Af8CWgFYAcAEAAMHAQkDQAFx
+ AycB+QMAAf8DAAH/GwAB/xQAAecBwwGiAf8B+AHjAcIB/wH2Ad0BugH/AfgB4wHDAf8B+AHjAcIB/wG2
+ AcUBwwH/AQABYgHEAf8BFAHTAv8BFQHGAfYB/wEAAWYB1AH/AQABbAHKAf8B6AHDAaIB/wMAAQEEAAJa
+ AVgBwAG1AYUBPgH/AbUBhAE9Af8BtQGCATUD/wH7Af8BAAETAe4B/wEvAVEB8AH/AUwBhQHzAf8BYwGV
+ AfQB/wGDAZoB9gH/AYABjQH5A/8B+QH/AbUBawEvCf8BtgGEATwB/wJaAVgBwAG2AYUBPgH/AbYBhAE9
+ Af8BswFuATYG/wHZAZQC/wHbAZoC/wHeAaAB/wEDAZ8BggH/AREBogGDAf8BAwGdAWwF/wG1AWoBMAn/
+ AbUBhAE8Af8MAAMLAQ8DSAGFAwAB/xsAAf8UAAHqAcYBpAH/AfgB5AHEAf8B3AHCAaQB/wHcAcQBpgH/
+ AdwBxAGmAf8B3AHFAaYB/wGhAa4BrwH/AQABYgHEAf8BmAHsAv8BFQHGAfYB/wEAAWYB1AH/Am4BZQH/
+ AygBPAQAAbUBhAE9Bf8B9gHwAekB/wGyAW4BMgP/Af0B/wIAAewB/wEcAS8B7QH/ATgBTwHwAf8BSwFi
+ AfIB/wFbAWoB9AH/AWEBZAH2A/8B/AH/AbwBawEvAf8BAAGuAYAF/wG2AYIBOgH/AbYBhAE9Bf8B/AHv
+ AecB/wG0AWsBMQX/AQMBuAL/AWYBxQHfAv8B1wGNAf8BOQGvAYsB/wERAakBiwH/ATgBrQGGBf8BugFq
+ ATEB/wEEAacBawX/AbUBggE6Af8zAAH/FAAB7AHKAagB/wH4AeUBxgH/AfkB5AHGAf8B+QHlAcUB/wH5
+ AeQBxgH/AfgB5AHGAf8B9wHjAcUB/wG8AcgBxgH/AQABYgHEAf8BlgHqAf4B/wK3AawB/wFeAV8BUQH/
+ Am4BZQH/BAABtAGCAToF/wHnAZsBJAH/AbEBbgE1Bf8CAAHtAf8CAAHuAf8BFgEdAfAB/wEsATQB8gH/
+ AT8BQQH1Af8BTQFMAfcF/wHAAWwBMgH/AQABrQGBBf8BtgGCAToB/wG1AYIBOgX/ASsBnQFfAf8BtwFr
+ ATIF/wFpAccB0AH/AQsByQP/Ac0BaQH/AccBwwGFAf8BBgGvAZQB/wHGAcIBgQX/AbsBawEyAf8BGwHC
+ AZMF/wG1AYEBOgH/FwABARsAAf8UAAHuAc0BqwH/AfgB5gHHAf8B3wHIAaoB/wHeAcgBqgH/Ad8ByAGr
+ Af8B3wHHAasB/wHbAcMBpgH/AdoBwgGkAf8BqwGwAasB/wGOAY8BhAH/AeAB4gHTAf8CiQFvAf8BBwFV
+ Ad4B/wFVAVwBZQHqAbMBggE7Bf8B5gGeAS0B/wGvAYABOwP/AfYD/wHtA/8B6wP/AeoD/wHqA/8B6gP/
+ AewD/wHzAf8BwgFsATMB/wEAAasBbQX/AbYBggE6Af8BtAGCAToF/wE4Aa8BbgH/AbYBbAE1A/8B9AL/
+ Af4B7QL/Af4B7QL/Af4B8gL/Af4B9AP/AfQC/wH+AfQD/wH3Af8BvQFtATUB/wGzAcsBnAX/AbUBggE6
Af8zAAH/FAAB8AHQAa0B/wH5AeYByQH/AfgB5gHJAf8B+QHmAckB/wH5AeYByQH/AfcB5QHJAf8B8AHZ
- Ab0B/wHpAc8BswH/AegBzgGyAf8BzAG5Aa8B/wKJAXAB/wFFAZYB6gH/ATMBhQHgAf8BWgJdAdMBswGC
- ATwF/wHyAaEBIQH/Ab0BiwFFAf8BrwGAAT4B/wGvAW8BOAH/AbABbgE2Af8BrwFtATQB/wGxAW0BMgH/
- AbcBbwE1Af8BvQFvATUB/wHBAW4BNQH/AaYBnwFiAf8BZQHTAb0F/wG1AYIBOwH/AbQBgQE7Bv8B3wGl
- Af8BwwGQAUoB/wG0AWwBNgH/Ab0BbgE2Af8BwQFuATYB/wG8AW0BNAH/AbQBbAE0Af8BsgFuATYB/wG0
- AW4BNwH/Ab4BbwE4Af8BhAGOAVIB/wEAAZ4BbwX/AbUBggE7Af8bAAEBEwABAQMAAf8UAAHxAdMBsQH/
+ Ab0B/wHpAc8BswH/AegBzgGyAf8BzAG5Aa8B/wKJAW8B/wFEAZYB6gH/ATIBhQHgAf8BWgJdAdMBswGC
+ ATsF/wHyAaEBIAH/Ab0BiwFEAf8BrwGAAT0B/wGvAW4BNwH/AbABbQE1Af8BrwFsATMB/wGxAWwBMQH/
+ AbcBbgE0Af8BvQFuATQB/wHBAW0BNAH/AaYBnwFhAf8BZAHTAb0F/wG1AYIBOgH/AbQBgQE6Bv8B3wGl
+ Af8BwwGQAUkB/wG0AWsBNQH/Ab0BbQE1Af8BwQFtATUB/wG8AWwBMwH/AbQBawEzAf8BsgFtATUB/wG0
+ AW0BNgH/Ab4BbgE3Af8BhAGOAVEB/wEAAZ4BbgX/AbUBggE6Af8bAAEBEwABAQMAAf8UAAHxAdMBsQH/
AfkB5wHLAf8B4gHMAbAB/wHiAcsBrwH/AeEBzAGvAf8B4QHKAa8B/wHXAb4BoQH/AdUBugGcAf8B1AG5
- AZ0B/wHUAbkBnQH/AbYBrwG0Af8BZQGSAcQB/wNIAYYEAAGzAYIBPAX/AfEBlwEMAf8B+AGyAUIB/wH9
- AcEBYgH/Af4BygGCAf8B/gHOAYoB/wH9AcsBhQX/AbwBbwE4Af8BHQHAAaAB/wE9AcgBqgH/AVMByQGv
- Af8BWwHKAbAF/wG1AYEBOgH/AbQBgQE6Bv8B2wGXAv8B3wGeAv8B5AGmAf8BAAGjAYcB/wEJAaQBiAH/
- AQABoQGDBf8BsgFuATgC/wHgAZsB/wEyAbMBkQH/AQoBqgGOAf8BNgGtAYYF/wG1AYIBOwH/MwAB/xQA
+ AZ0B/wHUAbkBnQH/AbYBrwG0Af8BZAGSAcQB/wNIAYYEAAGzAYIBOwX/AfEBlwELAf8B+AGyAUEB/wH9
+ AcEBYQH/Af4BygGCAf8B/gHOAYoB/wH9AcsBhQX/AbwBbgE3Af8BHAHAAaAB/wE8AcgBqgH/AVIByQGv
+ Af8BWgHKAbAF/wG1AYEBOQH/AbQBgQE5Bv8B2wGXAv8B3wGeAv8B5AGmAf8BAAGjAYcB/wEIAaQBiAH/
+ AQABoQGDBf8BsgFtATcC/wHgAZsB/wExAbMBkQH/AQkBqgGOAf8BNQGtAYYF/wG1AYIBOgH/MwAB/xQA
AfMB1wG0Af8B+QHnAcwB/wH4AecBzAH/AfkB6AHMAf8B+QHoAcwB/wH3AeUBygH/AecBzwG1Af8B8gHe
- AcYB/wHzAeAByAH/AfcB6AHTAf8DWgHFAe8B0AGuAf8DAQECAwABAQGzAYMBPAX/AewBigEAAf8B8QGh
- ASYB/wH1AbEBRQH/AfYBuQFWAf8B9wG/AWIB/wH2Ab8BYgX/AboBbAE0Af8BBAGvAYsB/wEkAbYBkwH/
- ATkBugGdAf8BSQHBAaUF/wG1AYIBOwH/AbUBgQE6Bf8BBQG5Av8BaAHGAeAC/wHZAY4B/wE5AbABjAH/
- AREBqgGMAf8BOAGuAYcF/wGwAWsBNAL/AdQBhgH/AsUBiAH/AQYBrwGUAf8BxgHCAYEF/wG0AYIBOwH/
+ AcYB/wHzAeAByAH/AfcB6AHTAf8DWgHFAe8B0AGuAf8DAQECAwABAQGzAYMBOwX/AewBigEAAf8B8QGh
+ ASUB/wH1AbEBRAH/AfYBuQFVAf8B9wG/AWEB/wH2Ab8BYQX/AboBawEzAf8BAwGvAYsB/wEjAbYBkwH/
+ ATgBugGdAf8BSAHBAaUF/wG1AYIBOgH/AbUBgQE5Bf8BBAG5Av8BZwHGAeAC/wHZAY4B/wE4AbABjAH/
+ ARABqgGMAf8BNwGuAYcF/wGwAWoBMwL/AdQBhgH/AsUBiAH/AQUBrwGUAf8BxgHCAYEF/wG0AYIBOgH/
SAAB9AHZAbUB/wH5AegBzQH/AeQBzwG0Af8B5AHPAbQB/wHkAc8BtAH/AeMBzgGzAf8B3QHGAakB/wH5
- AegBzgH/AfkB6AHOAf8DXAHMAfEB0wGxAf8DJgE4CAABtAGDAT0F/wHpAW0BAAH/Ae0BjwEAAf8B7wGe
- ARwB/wHxAagBMgH/AfMBrwFBAf8B9AG1AU4F/wG0AWwBNAP/AfsD/wH2A/8B8wP/AfID/wH4Af8BtQGE
- AT8B/wG1AYIBOwX/AWoBxwHQAf8BDAHJA/8BzQFqAf8BxwHDAYUB/wEHAa8BlAH/AcYBwgGBBf8BrwFr
- ATQD/wH7A/8B9wP/AfUD/wH0A/8B+QH/AbUBhAE/Af9IAAH2AdsBuAH/AfkB6QHPAf8B+QHpAc4B/wH5
+ AegBzgH/AfkB6AHOAf8DXAHMAfEB0wGxAf8DJgE4CAABtAGDATwF/wHpAWwBAAH/Ae0BjwEAAf8B7wGe
+ ARsB/wHxAagBMQH/AfMBrwFAAf8B9AG1AU0F/wG0AWsBMwP/AfsD/wH2A/8B8wP/AfID/wH4Af8BtQGE
+ AT4B/wG1AYIBOgX/AWkBxwHQAf8BCwHJA/8BzQFpAf8BxwHDAYUB/wEGAa8BlAH/AcYBwgGBBf8BrwFq
+ ATMD/wH7A/8B9wP/AfUD/wH0A/8B+QH/AbUBhAE+Af9IAAH2AdsBuAH/AfkB6QHPAf8B+QHpAc4B/wH5
AegBzgH/AfgB6AHOAf8B9gHlAcwB/wHuAdoBvwH/AfkB6AHOAf8DYAHeAfQB2QG1Af8DJgE4DAABtQGF
- AUAD/wH8A/8B/Qf/Af4D/wH8A/8B+gP/AfcD/wH5Af8BtAGCATsB/wG2AYQBPgH/AbYBgwE8Af8BtQGC
- ATwB/wG1AYMBPAH/AbUBhAE/Af8DVQGwAbUBhAE+A/8B9wL/Af4B7gL/Af4B7wL/Af4B8wP/AfUD/wH1
- A/8B9AP/AfgB/wGzAYIBOwH/AbQBhAE+Af8BtAGDAT0B/wG1AYIBPAH/AbQBgwE8Af8BtQGEAT8B/wNV
+ AT8D/wH8A/8B/Qf/Af4D/wH8A/8B+gP/AfcD/wH5Af8BtAGCAToB/wG2AYQBPQH/AbYBgwE7Af8BtQGC
+ ATsB/wG1AYMBOwH/AbUBhAE+Af8DVQGwAbUBhAE9A/8B9wL/Af4B7gL/Af4B7wL/Af4B8wP/AfUD/wH1
+ A/8B9AP/AfgB/wGzAYIBOgH/AbQBhAE9Af8BtAGDATwB/wG1AYIBOwH/AbQBgwE7Af8BtQGEAT4B/wNV
AbBIAAH3Ad0BugH/AfkB6QHPAf8B+QHpAc8B/wH5AekBzwH/AfkB6QHPAf8B9wHmAc0B/wHtAdgBvQH/
- AfkB6AHOAf8B9wHdAbgB/wMmATgQAAFmAWIBWAHvAbUBhQFAAf8BswGDAT4B/wGzAYMBPgH/AbMBgwE+
- Af8BswGDAT0B/wGzAYMBPQH/AbMBgwE9Af8BtQGEAT8B/wJkAVwB5xgAAWYBYgFYAe8BtQGEAT8B/wG1
- AYIBOwH/AbUBggE7Af8BtAGCATwB/wG0AYIBPAH/AbUBggE8Af8BtAGDATwB/wG1AYQBPwH/AmQBXAHn
+ AfkB6AHOAf8B9wHdAbgB/wMmATgQAAFlAWIBWAHvAbUBhQE/Af8BswGDAT0B/wGzAYMBPQH/AbMBgwE9
+ Af8BswGDATwB/wGzAYMBPAH/AbMBgwE8Af8BtQGEAT4B/wJkAVwB5xgAAWUBYgFYAe8BtQGEAT4B/wG1
+ AYIBOgH/AbUBggE6Af8BtAGCATsB/wG0AYIBOwH/AbUBggE7Af8BtAGDATsB/wG1AYQBPgH/AmQBXAHn
YAAB+AHfAbsB/wH4Ad8BuwH/AfgB3wG7Af8B+AHfAbsB/wH4Ad8BuwH/AfgB3wG7Af8B+AHfAbsB/wH4
- Ad8BuwH/AyYBODwAAwUBBwNCAXQDAgEDEAADIwEzARoBUAGWAf8BFwFSAZMB/wEaAVABlQH/ARoBUQGT
- Af8BGQFRAZUB/wEaAVEBkwH/yAADRQF9AVsCXgHQAwwBEBAAARsBUQGWAf8BTgG9Ad8B/wFRAbwB4QH/
- AU4BvgHcAf8BUwG+AeEB/wFMAb0B3wH/AZsB2gHuAf8BIAFRAZgB/wEdAVABlwH/AR8BVgGYAf8BHQFU
- AZYB/wEaAVIBlAH/AyMBM6wAA1ABnQEAAb8C/wFZAmcB8gMYASIQAAEgAVIBlQH/AU0BvwHfAf8BUAG+
- Ad8B/wFRAb8B4QH/AU8BvgHgAf8BTgG/AeEB/wGgAdkB8gH/ASkBjwG7Af8BjAG+AdIB/wFHAbEBzAH/
- ATkBpwHJAf8BSAHIAeMB/wEtAZQBtgH/A0UBfUQAA1IBqQHDAY4BWAH/AcABiwFWAf8BvgGIAVQB/wG7
- AYUBUQH/AbkBgwFPAf8BtAFuAUwB/wGyAWwBSgH/AbEBawFIAf8BrgFpAUcB/wGtAWYBRgH/AasBZQFE
- Af8BqQFjAUMB/wGpAWEBQQH/A1IBqRAAA1EBogFSAlMBqAM9AWkDIQEwAxQBGwNVAbUBAAHGAv8BAAHF
- Av8BXAJhAdwDFAEcAwYBCAwAARwBVgGTAf8BUAG+Ad8B/wFOAcEB3gH/AVIBvwHdAf8BUwG+AeEB/wFU
- AbsB3QH/AZ0B2gHuAf8BLQGXAbYB/wFYAb8B3gH/AU8BuAHVAf8BRAGrAc4B/wFRAb0B5AH/ATABkgG5
- Af8DOAFcAyMBMwgAA8AB/wNLAf8DwAH/BAADwAH/A0sB/wPAAf8EAAPAAf8DSwH/A8AB/wwAAcgBkgFc
- Bf8BxwHIAv8BxwHIBv8B1QHtAdgB/wHVAe0B2AX/A+gB/wPpBf8D6gH/A+sF/wGpAWIBQQH/EAADQAFw
- AQcB1wL/AQYB2AL/AQABxwH+Af8BTgJdAfABAQHLAf4B/wEAAcgB/QH/AQAByAL/AVwCXgHOAwoBDgML
- AQ8DAwEECAABHgFSAZcB/wFVAbwB3gH/AVQBvgHdAf8BVQG/Ad4B/wFVAb0B3AH/AYcByQHiAf8BpQHg
- AfQB/wErAZkBuwH/AYYByAHhAf8BhAHAAd4B/wFTAbsB1wH/AYoBzwHqAf8BLAGWAb0B/wMjATMMAANL
- Af8DAAH/A0sB/wQAA0sB/wMAAf8DSwH/BAADSwH/AwAB/wNLAf8MAAHKAZQBXgX/AVsBXwH+Af8BWwFf
- Af4B/wP8Af8BkAHPAZkB/wGQAc8BmQH/A/wB/wPRAf8D0QH/A/sB/wPRAf8D0QX/AaoBYwFDAf8QAAMg
- AS8BCgHSAf0B/wEKAdEB/QH/AQoB0gH+Af8BCQHSAv8BBgHNAf0B/wEDAcwB/QH/AQABzQL/A1YBtgQA
- AwgBCwMEAQYDAAEBBAABHwFXAZcB/wFYAcgB5AH/AYEBxgHnAf8BWAHFAeIB/wGAAcoB5AH/AZQB0wHv
- Af8BrgHjAfgB/wEzAZ0BvgH/AYsBzQHmAf8BjAHMAeUB/wGJAcYB4AH/AZcB2gHvAf8BMwGaAb0B/xAA
- A8AB/wNLAf8DwAH/BAADwAH/A0sB/wPAAf8EAAPAAf8DSwH/A8AB/wwAAcwBlwFfBf8D/gH/A/0B/wP9
- Af8D/QH/A/wB/wP8Af8D/AH/A/wB/wP7Af8D+wH/A/sF/wGsAWUBRAH/EAADBAEFAV4CYQHaAQ4B1gH9
- Af8BDwHWAf0B/wENAdQB/QH/AQsB0gH9Af8BCAHQAf0B/wEGAdEB/gH/AVgCYQHmAyoBQAsAAQEEAAEh
- AVgBmgH/AYsB0AHrAf8BjQHQAesB/wGNAdEB6AH/AY4B0QHoAf8BpAHcAfUB/wGyAecB9AH/AckB9wL/
- AT0BowG/Af8BpgHZAfMB/wGWAc8B6AH/AawB6QHrAf8BOQGeAcIB/0gAAdEBnAFjBf8B6wGwAVAB/wHr
- AbABUAH/A/4B/wPRAf8D0QH/A/0B/wFjAaoC/wFjAaoC/wP8Af8BVwHVAfAB/wFXAdUB8AX/AbABagFI
- Af8UAANWAbQBHwHeAf0B/wESAdoB/QH/ARMB2QH9Af8BEAHXAf0B/wENAdQB/QH/AQoB0QH9Af8BCAHS
- Av8BAQHTAv8DSwGOAwoBDQgAASMBggGdAf8BoQHaAfMB/wGmAdwB8wH/AacB3QH0Af8BpgHcAfUB/wGq
- AeMB+AH/AcUB7wL/Ac0B9gL/AUYBpgHFAf8BrwHjAfAB/wGsAecB+wH/AUIBowHGAf9MAAHUAZ4BZQX/
- AesBsAFQAf8B6wGwAVAF/wPRAf8D0QH/A/4B/wFjAaoC/wFjAaoC/wP9Af8BVwHVAfAB/wFXAdUB8AX/
- AbIBbAFKAf8QAANKAYoBhQHrAf4B/wGDAesB/gH/AR8B4AH9Af8BFgHdAf0B/wEWAdsB/QH/ARIB2AH9
- Af8BCwHVAf0B/wEKAdEB/QH/ARMB1AL/ASsB8gL/AVYCWAHBAwoBDQQAASUBggGgAf8BsQHjAfcB/wG2
- AeAB9wH/AbEB4AH2Af8BtAHjAfkB/wGxAeYB+gH/AcIB7wH8Af8B0AH7Af4B/wFJAa4BxgH/AbgB5QH6
- Af8BwwHyAv8BSgGqAckB/0wAAdUBoAFmFf8D/gH/A/4B/wP+Af8D/QH/A/0B/wP9Af8D/QX/AbUBbgFM
- Af8MAAM1AVYBXAFwAXIB+AGZAfEB/gH/AbYB9QH+Af8BUAHqAf4B/wEYAeAB/QH/ARoB3wH9Af8BGAHc
- Af0B/wEsAd4B/QH/ATEB5QH+Af8BVwJaAb0DLAFEAwcBCgMAAQEEAAEsAYgBowH/AbsB7QH5Af8BvQHw
+ Ad8BuwH/AyYBODwAAwUBBwNCAXQDAgEDEAADIwEzARkBTwGWAf8BFgFRAZMB/wEZAU8BlQH/ARkBUAGT
+ Af8BGAFQAZUB/wEZAVABkwH/yAADRQF9AVsCXgHQAwwBEBAAARoBUAGWAf8BTQG9Ad8B/wFQAbwB4QH/
+ AU0BvgHcAf8BUgG+AeEB/wFLAb0B3wH/AZsB2gHuAf8BHwFQAZgB/wEcAU8BlwH/AR4BVQGYAf8BHAFT
+ AZYB/wEZAVEBlAH/AyMBM6wAA1ABnQEAAb8C/wFZAmcB8gMYASIQAAEfAVEBlQH/AUwBvwHfAf8BTwG+
+ Ad8B/wFQAb8B4QH/AU4BvgHgAf8BTQG/AeEB/wGgAdkB8gH/ASgBjwG7Af8BjAG+AdIB/wFGAbEBzAH/
+ ATgBpwHJAf8BRwHIAeMB/wEsAZQBtgH/A0UBfUQAA1IBqQHDAY4BVwH/AcABiwFVAf8BvgGIAVMB/wG7
+ AYUBUAH/AbkBgwFOAf8BtAFtAUsB/wGyAWsBSQH/AbEBagFHAf8BrgFoAUYB/wGtAWUBRQH/AasBZAFD
+ Af8BqQFiAUIB/wGpAWABQAH/A1IBqRAAA1EBogFSAlMBqAM9AWkDIQEwAxQBGwNVAbUBAAHGAv8BAAHF
+ Av8BXAJhAdwDFAEcAwYBCAwAARsBVQGTAf8BTwG+Ad8B/wFNAcEB3gH/AVEBvwHdAf8BUgG+AeEB/wFT
+ AbsB3QH/AZ0B2gHuAf8BLAGXAbYB/wFXAb8B3gH/AU4BuAHVAf8BQwGrAc4B/wFQAb0B5AH/AS8BkgG5
+ Af8DOAFcAyMBMwgAA8AB/wNKAf8DwAH/BAADwAH/A0oB/wPAAf8EAAPAAf8DSgH/A8AB/wwAAcgBkgFb
+ Bf8BxwHIAv8BxwHIBv8B1QHtAdgB/wHVAe0B2AX/A+gB/wPpBf8D6gH/A+sF/wGpAWEBQAH/EAADQAFw
+ AQYB1wL/AQUB2AL/AQABxwH+Af8BTgJdAfABAAHLAf4B/wEAAcgB/QH/AQAByAL/AVwCXgHOAwoBDgML
+ AQ8DAwEECAABHQFRAZcB/wFUAbwB3gH/AVMBvgHdAf8BVAG/Ad4B/wFUAb0B3AH/AYcByQHiAf8BpQHg
+ AfQB/wEqAZkBuwH/AYYByAHhAf8BhAHAAd4B/wFSAbsB1wH/AYoBzwHqAf8BKwGWAb0B/wMjATMMAANK
+ Af8DAAH/A0oB/wQAA0oB/wMAAf8DSgH/BAADSgH/AwAB/wNKAf8MAAHKAZQBXQX/AVoBXgH+Af8BWgFe
+ Af4B/wP8Af8BkAHPAZkB/wGQAc8BmQH/A/wB/wPRAf8D0QH/A/sB/wPRAf8D0QX/AaoBYgFCAf8QAAMg
+ AS8BCQHSAf0B/wEJAdEB/QH/AQkB0gH+Af8BCAHSAv8BBQHNAf0B/wECAcwB/QH/AQABzQL/A1YBtgQA
+ AwgBCwMEAQYDAAEBBAABHgFWAZcB/wFXAcgB5AH/AYEBxgHnAf8BVwHFAeIB/wGAAcoB5AH/AZQB0wHv
+ Af8BrgHjAfgB/wEyAZ0BvgH/AYsBzQHmAf8BjAHMAeUB/wGJAcYB4AH/AZcB2gHvAf8BMgGaAb0B/xAA
+ A8AB/wNKAf8DwAH/BAADwAH/A0oB/wPAAf8EAAPAAf8DSgH/A8AB/wwAAcwBlwFeBf8D/gH/A/0B/wP9
+ Af8D/QH/A/wB/wP8Af8D/AH/A/wB/wP7Af8D+wH/A/sF/wGsAWQBQwH/EAADBAEFAV4CYQHaAQ0B1gH9
+ Af8BDgHWAf0B/wEMAdQB/QH/AQoB0gH9Af8BBwHQAf0B/wEFAdEB/gH/AVgCYQHmAyoBQAsAAQEEAAEg
+ AVcBmgH/AYsB0AHrAf8BjQHQAesB/wGNAdEB6AH/AY4B0QHoAf8BpAHcAfUB/wGyAecB9AH/AckB9wL/
+ ATwBowG/Af8BpgHZAfMB/wGWAc8B6AH/AawB6QHrAf8BOAGeAcIB/0gAAdEBnAFiBf8B6wGwAU8B/wHr
+ AbABTwH/A/4B/wPRAf8D0QH/A/0B/wFiAaoC/wFiAaoC/wP8Af8BVgHVAfAB/wFWAdUB8AX/AbABaQFH
+ Af8UAANWAbQBHgHeAf0B/wERAdoB/QH/ARIB2QH9Af8BDwHXAf0B/wEMAdQB/QH/AQkB0QH9Af8BBwHS
+ Av8BAAHTAv8DSwGOAwoBDQgAASIBggGdAf8BoQHaAfMB/wGmAdwB8wH/AacB3QH0Af8BpgHcAfUB/wGq
+ AeMB+AH/AcUB7wL/Ac0B9gL/AUUBpgHFAf8BrwHjAfAB/wGsAecB+wH/AUEBowHGAf9MAAHUAZ4BZAX/
+ AesBsAFPAf8B6wGwAU8F/wPRAf8D0QH/A/4B/wFiAaoC/wFiAaoC/wP9Af8BVgHVAfAB/wFWAdUB8AX/
+ AbIBawFJAf8QAANKAYoBhQHrAf4B/wGDAesB/gH/AR4B4AH9Af8BFQHdAf0B/wEVAdsB/QH/AREB2AH9
+ Af8BCgHVAf0B/wEJAdEB/QH/ARIB1AL/ASoB8gL/AVYCWAHBAwoBDQQAASQBggGgAf8BsQHjAfcB/wG2
+ AeAB9wH/AbEB4AH2Af8BtAHjAfkB/wGxAeYB+gH/AcIB7wH8Af8B0AH7Af4B/wFIAa4BxgH/AbgB5QH6
+ Af8BwwHyAv8BSQGqAckB/0wAAdUBoAFlFf8D/gH/A/4B/wP+Af8D/QH/A/0B/wP9Af8D/QX/AbUBbQFL
+ Af8MAAM1AVYBXAFvAXEB+AGZAfEB/gH/AbYB9QH+Af8BTwHqAf4B/wEXAeAB/QH/ARkB3wH9Af8BFwHc
+ Af0B/wErAd4B/QH/ATAB5QH+Af8BVwJaAb0DLAFEAwcBCgMAAQEEAAErAYgBowH/AbsB7QH5Af8BvQHw
AfoB/wG8Ae4B+gH/AcMB7QH6Af8BxQHzAfoB/wHBAfIB/AH/AdQB+gH+Af8BgQG4Ac0B/wHKAesB+wH/
- AcoB9AL/AYMBugHPAf9MAAHYAaIBaQX/A9EB/wPRBf8B6wGwAVAB/wHrAbABUAX/AZABzwGZAf8BkAHP
- AZkB/wP+Af8D0QH/A9EF/wG3AYEBTgH/CAADCgEOAVgCXgHdAZMB8wH+Af8BrwH1Af4B/wGyAfUC/wGd
- AfIC/wGgAfEB/gH/AR4B5AH9Af8BKgHdAfwB/wFaAl0BygMyAVEPAAEBBAABMgGIAacB/wHFAewB+gH/
+ AcoB9AL/AYMBugHPAf9MAAHYAaIBaAX/A9EB/wPRBf8B6wGwAU8B/wHrAbABTwX/AZABzwGZAf8BkAHP
+ AZkB/wP+Af8D0QH/A9EF/wG3AYEBTQH/CAADCgEOAVgCXgHdAZMB8wH+Af8BrwH1Af4B/wGyAfUC/wGd
+ AfIC/wGgAfEB/gH/AR0B5AH9Af8BKQHdAfwB/wFaAl0BygMyAVEPAAEBBAABMQGIAacB/wHFAewB+gH/
AcQB7wH4Af8BwwHtAfkB/wHDAewB+wH/AcUB9wH9Af8ByQHwAf4B/wHXAfwB+gH/AY0BuwHdAf8B1QHw
- Af4B/wHSAfgB/QH/AYYBvAHVAf9MAAHZAaMBaQX/A9EB/wPRBf8B6wGwAVAB/wHrAbABUAX/AZABzwGZ
- Af8BkAHPAZkB/wP+Af8D0QH/A9EF/wG6AYUBUAH/CAABQQJCAXMDYQHhA1sBxgNVAbADTAGTA14BzgHt
- Af0C/wGJAfEC/wElAdIB+AH/Ay4BRxgAATIBiQGlAf8ByAH3Av8BzwH5Av8B0wH3Af0B/wHTAfsC/wHV
- AfgB/AH/AdwB+gL/AeAB+AH+Af8BiQHCAdcB/wHTAe0B/QH/AdUB9gL/AZQBvgHVAf9MAAHbAaQBajX/
- Ab0BhwFTAf8cAAMcAScBawJ6AfkByQH5Av8BWgJhAeQDBgEIGAABMgGMAaYB/wFHAacBxgH/AUQBqQHH
- Af8BSAGmAcUB/wFSAawBzAH/AVgBuwHTAf8BigG9AdEB/wGQAcEB1wH/AdgB8wH9Af8B0gHyAfgB/wHd
- AfoC/wGUAcMB2AH/TAAB3AGnAWsB/wHcAacBawH/AdwBpwFrAf8B3AGnAWsB/wHcAacBawH/AdwBpwFr
- Af8B3AGnAWsB/wHcAacBawH/AdwBpwFrAf8B3AGnAWsB/wHcAacBawH/AdwBpwFrAf8B3AGnAWsB/wHc
- AacBawH/AcABiwFWAf8gAAM9AWgBpQHoAfsB/wFNAk4BlRwAAyMBMwE7AZIBqgH/AdIB9QL/AdUB+QL/
- AdMB+QH9Af8B3gH7Av8B3wH5Av8B3QH2Av8B5AH6Av8B3gH9AfwB/wHdAfwB+wH/AZcBwwHaAf9MAAG5
+ Af4B/wHSAfgB/QH/AYYBvAHVAf9MAAHZAaMBaAX/A9EB/wPRBf8B6wGwAU8B/wHrAbABTwX/AZABzwGZ
+ Af8BkAHPAZkB/wP+Af8D0QH/A9EF/wG6AYUBTwH/CAABQQJCAXMDYQHhA1sBxgNVAbADTAGTA14BzgHt
+ Af0C/wGJAfEC/wEkAdIB+AH/Ay4BRxgAATEBiQGlAf8ByAH3Av8BzwH5Av8B0wH3Af0B/wHTAfsC/wHV
+ AfgB/AH/AdwB+gL/AeAB+AH+Af8BiQHCAdcB/wHTAe0B/QH/AdUB9gL/AZQBvgHVAf9MAAHbAaQBaTX/
+ Ab0BhwFSAf8cAAMcAScBagJ3AfkByQH5Av8BWgJhAeQDBgEIGAABMQGMAaYB/wFGAacBxgH/AUMBqQHH
+ Af8BRwGmAcUB/wFRAawBzAH/AVcBuwHTAf8BigG9AdEB/wGQAcEB1wH/AdgB8wH9Af8B0gHyAfgB/wHd
+ AfoC/wGUAcMB2AH/TAAB3AGnAWoB/wHcAacBagH/AdwBpwFqAf8B3AGnAWoB/wHcAacBagH/AdwBpwFq
+ Af8B3AGnAWoB/wHcAacBagH/AdwBpwFqAf8B3AGnAWoB/wHcAacBagH/AdwBpwFqAf8B3AGnAWoB/wHc
+ AacBagH/AcABiwFVAf8gAAM9AWgBpQHoAfsB/wFNAk4BlRwAAyMBMwE6AZIBqgH/AdIB9QL/AdUB+QL/
+ AdMB+QH9Af8B3gH7Av8B3wH5Av8B3QH2Av8B5AH6Av8B3gH9AfwB/wHdAfwB+wH/AZcBwwHaAf9MAAG4
AagBhQH9AegBuQGSAf8B6AG5AZIB/wHoAbkBkgH/AegBuQGSAf8B6AG5AZIB/wHoAbkBkgH/AegBuQGS
- Af8B6AG5AZIB/wHoAbkBkgH/AegBuQGSAf8B6AG5AZIB/wHoAbkBkgH/AegBuQGSAf8BsAGQAVIB/SQA
- A1YBtAMtAUUgAAMjATMBSwGsAckB/wFSAbABywH/AVYBswHRAf8BjgG+AdYB/wGRAcQB2AH/AZ0BxgHd
- Af8BmgHHAdwB/wGYAckB3wH/AZsBxgHZAf8DIwEzTAADPgFrAX0BcwFlAfQB3AGnAWsB/wHcAaYBagH/
- AdoBpAFqAf8B2AGiAWkB/wHVAaABZgH/AdQBngFlAf8B0gGdAWMB/wHPAZoBYgH/Ac4BmQFgAf8BywGW
- AV8B/wHJAZQBXAH/AXkBagFlAfQDPgFrJAADGgElAw0BEdgAAUIBTQE+BwABPgMAASgDAAFAAwABMAMA
+ Af8B6AG5AZIB/wHoAbkBkgH/AegBuQGSAf8B6AG5AZIB/wHoAbkBkgH/AegBuQGSAf8BrwGQAVEB/SQA
+ A1YBtAMtAUUgAAMjATMBSgGsAckB/wFRAbABywH/AVUBswHRAf8BjgG+AdYB/wGRAcQB2AH/AZ0BxgHd
+ Af8BmgHHAdwB/wGYAckB3wH/AZsBxgHZAf8DIwEzTAADPgFrAXsBcAFlAfQB3AGnAWoB/wHcAaYBaQH/
+ AdoBpAFpAf8B2AGiAWgB/wHVAaABZQH/AdQBngFkAf8B0gGdAWIB/wHPAZoBYQH/Ac4BmQFfAf8BywGW
+ AV4B/wHJAZQBWwH/AXcBZwFlAfQDPgFrJAADGgElAw0BEdgAAUIBTQE+BwABPgMAASgDAAFAAwABMAMA
AQEBAAEBBQABgAEBFgAD/wEAAv8GAALnBgACwwYAAoEGAAGAAQEGAAHAAQMGAAHgAQcGAAHwAQ8GAAHw
AQ8GAAHgAQcGAAHAAQMGAAGAAQEGAAGBAYAGAAHDAcEGAAHnAeMGAAH/AfcGAAHgAQcB4AEHAv8BgAEB
AcABBwHAAQcC/wHAAQMBwAEHAcABBwHiAd8BwAEDAcABBwHAAQcBgwH/AcABAwHAAQABwAEAAYABBwHA