diff --git a/ChatClient/App.config b/ChatClient/App.config
new file mode 100644
index 00000000..ffaf5407
--- /dev/null
+++ b/ChatClient/App.config
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ChatClient/ChatClient.vbproj b/ChatClient/ChatClient.vbproj
new file mode 100644
index 00000000..aea6dc22
--- /dev/null
+++ b/ChatClient/ChatClient.vbproj
@@ -0,0 +1,123 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {9713484C-6EE3-4D7E-B6E6-F32CF6B6BB6C}
+ WinExe
+ ChatClient.My.MyApplication
+ ChatClient
+ ChatClient
+ 512
+ WindowsForms
+ v4.7.2
+ true
+ true
+
+
+ AnyCPU
+ true
+ full
+ true
+ true
+ bin\Debug\
+ ChatClient.xml
+ 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022
+
+
+ AnyCPU
+ pdbonly
+ false
+ true
+ true
+ bin\Release\
+ ChatClient.xml
+ 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022
+
+
+ On
+
+
+ Binary
+
+
+ Off
+
+
+ On
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Form
+
+
+ Form1.vb
+ Form
+
+
+
+ True
+ Application.myapp
+
+
+ True
+ True
+ Resources.resx
+
+
+ True
+ Settings.settings
+ True
+
+
+
+
+ Form1.vb
+
+
+ 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/ChatClient/Form1.Designer.vb b/ChatClient/Form1.Designer.vb
new file mode 100644
index 00000000..71639aba
--- /dev/null
+++ b/ChatClient/Form1.Designer.vb
@@ -0,0 +1,107 @@
+ _
+Partial Class Form1
+ Inherits System.Windows.Forms.Form
+
+ 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen.
+ _
+ Protected Overrides Sub Dispose(ByVal disposing As Boolean)
+ Try
+ If disposing AndAlso components IsNot Nothing Then
+ components.Dispose()
+ End If
+ Finally
+ MyBase.Dispose(disposing)
+ End Try
+ End Sub
+
+ 'Wird vom Windows Form-Designer benötigt.
+ Private components As System.ComponentModel.IContainer
+
+ 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich.
+ 'Das Bearbeiten ist mit dem Windows Form-Designer möglich.
+ 'Das Bearbeiten mit dem Code-Editor ist nicht möglich.
+ _
+ Private Sub InitializeComponent()
+ Me.Label1 = New System.Windows.Forms.Label()
+ Me.TextBox1 = New System.Windows.Forms.TextBox()
+ Me.Button1 = New System.Windows.Forms.Button()
+ Me.TextBox2 = New System.Windows.Forms.TextBox()
+ Me.TextBox3 = New System.Windows.Forms.TextBox()
+ Me.Button2 = New System.Windows.Forms.Button()
+ Me.SuspendLayout()
+ '
+ 'Label1
+ '
+ Me.Label1.AutoSize = True
+ Me.Label1.Location = New System.Drawing.Point(27, 25)
+ Me.Label1.Name = "Label1"
+ Me.Label1.Size = New System.Drawing.Size(83, 13)
+ Me.Label1.TabIndex = 0
+ Me.Label1.Text = "Your Chat name"
+ '
+ 'TextBox1
+ '
+ Me.TextBox1.Location = New System.Drawing.Point(116, 22)
+ Me.TextBox1.Name = "TextBox1"
+ Me.TextBox1.Size = New System.Drawing.Size(100, 20)
+ Me.TextBox1.TabIndex = 1
+ '
+ 'Button1
+ '
+ Me.Button1.Location = New System.Drawing.Point(116, 48)
+ Me.Button1.Name = "Button1"
+ Me.Button1.Size = New System.Drawing.Size(128, 23)
+ Me.Button1.TabIndex = 2
+ Me.Button1.Text = "Connect to Server"
+ Me.Button1.UseVisualStyleBackColor = True
+ '
+ 'TextBox2
+ '
+ Me.TextBox2.Location = New System.Drawing.Point(30, 87)
+ Me.TextBox2.Multiline = True
+ Me.TextBox2.Name = "TextBox2"
+ Me.TextBox2.ScrollBars = System.Windows.Forms.ScrollBars.Both
+ Me.TextBox2.Size = New System.Drawing.Size(519, 204)
+ Me.TextBox2.TabIndex = 3
+ '
+ 'TextBox3
+ '
+ Me.TextBox3.Location = New System.Drawing.Point(30, 297)
+ Me.TextBox3.Name = "TextBox3"
+ Me.TextBox3.Size = New System.Drawing.Size(519, 20)
+ Me.TextBox3.TabIndex = 4
+ '
+ 'Button2
+ '
+ Me.Button2.Location = New System.Drawing.Point(421, 323)
+ Me.Button2.Name = "Button2"
+ Me.Button2.Size = New System.Drawing.Size(128, 23)
+ Me.Button2.TabIndex = 5
+ Me.Button2.Text = "Send message"
+ Me.Button2.UseVisualStyleBackColor = True
+ '
+ 'Form1
+ '
+ Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
+ Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
+ Me.ClientSize = New System.Drawing.Size(800, 450)
+ Me.Controls.Add(Me.Button2)
+ Me.Controls.Add(Me.TextBox3)
+ Me.Controls.Add(Me.TextBox2)
+ Me.Controls.Add(Me.Button1)
+ Me.Controls.Add(Me.TextBox1)
+ Me.Controls.Add(Me.Label1)
+ Me.Name = "Form1"
+ Me.Text = "Form1"
+ Me.ResumeLayout(False)
+ Me.PerformLayout()
+
+ End Sub
+
+ Friend WithEvents Label1 As Label
+ Friend WithEvents TextBox1 As TextBox
+ Friend WithEvents Button1 As Button
+ Friend WithEvents TextBox2 As TextBox
+ Friend WithEvents TextBox3 As TextBox
+ Friend WithEvents Button2 As Button
+End Class
diff --git a/ChatClient/Form1.resx b/ChatClient/Form1.resx
new file mode 100644
index 00000000..1af7de15
--- /dev/null
+++ b/ChatClient/Form1.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/ChatClient/Form1.vb b/ChatClient/Form1.vb
new file mode 100644
index 00000000..528b8534
--- /dev/null
+++ b/ChatClient/Form1.vb
@@ -0,0 +1,59 @@
+Imports System.Net.Sockets
+Imports System.Text
+Public Class Form1
+ Dim clientSocket As New System.Net.Sockets.TcpClient()
+ Dim serverStream As NetworkStream
+ Dim readData As String
+ Dim infiniteCounter As Integer
+
+ Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
+ readData = "Connected to Chat Server ..."
+ msg()
+ clientSocket.Connect("127.0.0.1", 8888)
+ 'Label1.Text = "Client Socket Program - Server Connected ..."
+ serverStream = clientSocket.GetStream()
+
+ Dim outStream As Byte() =
+ System.Text.Encoding.ASCII.GetBytes(TextBox1.Text + "$")
+ serverStream.Write(outStream, 0, outStream.Length)
+ serverStream.Flush()
+
+ Dim ctThread As Threading.Thread =
+ New Threading.Thread(AddressOf getMessage)
+ ctThread.Start()
+ End Sub
+ Private Sub getMessage()
+ For infiniteCounter = 1 To 2
+ infiniteCounter = 1
+ serverStream = clientSocket.GetStream()
+ Dim buffSize As Integer
+ Dim inStream(10024) As Byte
+ buffSize = clientSocket.ReceiveBufferSize
+ Try
+ serverStream.Read(inStream, 0, buffSize)
+
+ Catch ex As Exception
+
+ End Try
+ Dim returndata As String =
+ System.Text.Encoding.ASCII.GetString(inStream)
+ readData = "" + returndata
+ msg()
+ Next
+ End Sub
+
+ Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
+ Dim outStream As Byte() =
+ System.Text.Encoding.ASCII.GetBytes(TextBox2.Text + "$")
+ serverStream.Write(outStream, 0, outStream.Length)
+ serverStream.Flush()
+ End Sub
+ Private Sub msg()
+ If Me.InvokeRequired Then
+ Me.Invoke(New MethodInvoker(AddressOf msg))
+ Else
+ TextBox2.Text = TextBox2.Text +
+ Environment.NewLine + " >> " + readData
+ End If
+ End Sub
+End Class
diff --git a/ChatClient/My Project/Application.Designer.vb b/ChatClient/My Project/Application.Designer.vb
new file mode 100644
index 00000000..32f36417
--- /dev/null
+++ b/ChatClient/My Project/Application.Designer.vb
@@ -0,0 +1,38 @@
+'------------------------------------------------------------------------------
+'
+' 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
+
+ 'NOTE: This file is auto-generated; do not modify it directly. To make changes,
+ ' or if you encounter build errors in this file, go to the Project Designer
+ ' (go to Project Properties or double-click the My Project node in
+ ' Solution Explorer), and make changes on the Application tab.
+ '
+ Partial Friend Class MyApplication
+
+ _
+ Public Sub New()
+ MyBase.New(Global.Microsoft.VisualBasic.ApplicationServices.AuthenticationMode.Windows)
+ Me.IsSingleInstance = false
+ Me.EnableVisualStyles = true
+ Me.SaveMySettingsOnExit = true
+ Me.ShutDownStyle = Global.Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterMainFormCloses
+ End Sub
+
+ _
+ Protected Overrides Sub OnCreateMainForm()
+ Me.MainForm = Global.ChatClient.Form1
+ End Sub
+ End Class
+End Namespace
diff --git a/ChatClient/My Project/Application.myapp b/ChatClient/My Project/Application.myapp
new file mode 100644
index 00000000..1243847f
--- /dev/null
+++ b/ChatClient/My Project/Application.myapp
@@ -0,0 +1,11 @@
+
+
+ true
+ Form1
+ false
+ 0
+ true
+ 0
+ 0
+ true
+
diff --git a/ChatClient/My Project/AssemblyInfo.vb b/ChatClient/My Project/AssemblyInfo.vb
new file mode 100644
index 00000000..8924c182
--- /dev/null
+++ b/ChatClient/My Project/AssemblyInfo.vb
@@ -0,0 +1,35 @@
+Imports System
+Imports System.Reflection
+Imports System.Runtime.InteropServices
+
+' Allgemeine Informationen über eine Assembly werden über die folgenden
+' Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern,
+' die einer Assembly zugeordnet sind.
+
+' Werte der Assemblyattribute überprüfen
+
+
+
+
+
+
+
+
+
+
+'Die folgende GUID wird für die typelib-ID verwendet, wenn dieses Projekt für COM verfügbar gemacht wird.
+
+
+' Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten:
+'
+' Hauptversion
+' Nebenversion
+' Buildnummer
+' Revision
+'
+' Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden,
+' indem Sie "*" wie unten gezeigt eingeben:
+'
+
+
+
diff --git a/ChatClient/My Project/Resources.Designer.vb b/ChatClient/My Project/Resources.Designer.vb
new file mode 100644
index 00000000..8d2d0ef2
--- /dev/null
+++ b/ChatClient/My Project/Resources.Designer.vb
@@ -0,0 +1,62 @@
+'------------------------------------------------------------------------------
+'
+' 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.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("ChatClient.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(ByVal value As Global.System.Globalization.CultureInfo)
+ resourceCulture = value
+ End Set
+ End Property
+ End Module
+End Namespace
diff --git a/ChatClient/My Project/Resources.resx b/ChatClient/My Project/Resources.resx
new file mode 100644
index 00000000..af7dbebb
--- /dev/null
+++ b/ChatClient/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/ChatClient/My Project/Settings.Designer.vb b/ChatClient/My Project/Settings.Designer.vb
new file mode 100644
index 00000000..cca268a9
--- /dev/null
+++ b/ChatClient/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(ByVal sender As Global.System.Object, ByVal 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.ChatClient.My.MySettings
+ Get
+ Return Global.ChatClient.My.MySettings.Default
+ End Get
+ End Property
+ End Module
+End Namespace
diff --git a/ChatClient/My Project/Settings.settings b/ChatClient/My Project/Settings.settings
new file mode 100644
index 00000000..85b890b3
--- /dev/null
+++ b/ChatClient/My Project/Settings.settings
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/ChatServer/ChatServer.vbproj b/ChatServer/ChatServer.vbproj
new file mode 100644
index 00000000..5afc74e5
--- /dev/null
+++ b/ChatServer/ChatServer.vbproj
@@ -0,0 +1,9 @@
+
+
+
+ Exe
+ ChatServer
+ netcoreapp3.1
+
+
+
diff --git a/ChatServer/Program.vb b/ChatServer/Program.vb
new file mode 100644
index 00000000..22d9ab54
--- /dev/null
+++ b/ChatServer/Program.vb
@@ -0,0 +1,114 @@
+Imports System
+Imports System.Net.Sockets
+Imports System.Text
+Module Program
+ Dim clientsList As New Hashtable
+ Sub Main()
+
+ Dim serverSocket As New TcpListener(8888)
+ Dim clientSocket As TcpClient
+ Dim counter As Integer
+
+ serverSocket.Start()
+ msg("Chat Server Started ....")
+ counter = 0
+
+ While (True)
+ counter += 1
+ clientSocket = serverSocket.AcceptTcpClient()
+
+ Dim bytesFrom(10024) As Byte
+ Dim dataFromClient As String
+
+ Dim networkStream As NetworkStream =
+ clientSocket.GetStream()
+ networkStream.Read(bytesFrom, 0, CInt(clientSocket.ReceiveBufferSize))
+ dataFromClient = System.Text.Encoding.ASCII.GetString(bytesFrom)
+ dataFromClient =
+ dataFromClient.Substring(0, dataFromClient.IndexOf("$"))
+
+ clientsList(dataFromClient) = clientSocket
+
+ broadcast(dataFromClient + " Joined ", dataFromClient, False)
+
+ msg(dataFromClient + " Joined chat room ")
+ Dim client As New handleClinet
+ client.startClient(clientSocket, dataFromClient, clientsList)
+ End While
+
+ clientSocket.Close()
+ serverSocket.Stop()
+ msg("exit")
+ Console.ReadLine()
+ End Sub
+
+ Sub msg(ByVal mesg As String)
+ mesg.Trim()
+ Console.WriteLine(" >> " + mesg)
+ End Sub
+ Private Sub broadcast(ByVal msg As String,
+ ByVal uName As String, ByVal flag As Boolean)
+ Dim Item As DictionaryEntry
+ For Each Item In clientsList
+ Dim broadcastSocket As TcpClient
+ broadcastSocket = CType(Item.Value, TcpClient)
+ Dim broadcastStream As NetworkStream =
+ broadcastSocket.GetStream()
+ Dim broadcastBytes As [Byte]()
+
+ If flag = True Then
+ broadcastBytes = Encoding.ASCII.GetBytes(uName + " says : " + msg)
+ Else
+ broadcastBytes = Encoding.ASCII.GetBytes(msg)
+ End If
+
+ broadcastStream.Write(broadcastBytes, 0, broadcastBytes.Length)
+ broadcastStream.Flush()
+ Next
+ End Sub
+
+ Public Class handleClinet
+ Dim clientSocket As TcpClient
+ Dim clNo As String
+ Dim clientsList As Hashtable
+
+ Public Sub startClient(ByVal inClientSocket As TcpClient,
+ ByVal clineNo As String, ByVal cList As Hashtable)
+ Me.clientSocket = inClientSocket
+ Me.clNo = clineNo
+ Me.clientsList = cList
+ Dim ctThread As Threading.Thread = New Threading.Thread(AddressOf doChat)
+ ctThread.Start()
+ End Sub
+
+ Private Sub doChat()
+ 'Dim infiniteCounter As Integer
+ Dim requestCount As Integer
+ Dim bytesFrom(10024) As Byte
+ Dim dataFromClient As String
+ Dim sendBytes As [Byte]()
+ Dim serverResponse As String
+ Dim rCount As String
+ requestCount = 0
+
+ While (True)
+ Try
+ requestCount = requestCount + 1
+ Dim networkStream As NetworkStream =
+ clientSocket.GetStream()
+ networkStream.Read(bytesFrom, 0, CInt(clientSocket.ReceiveBufferSize))
+ dataFromClient = System.Text.Encoding.ASCII.GetString(bytesFrom)
+ dataFromClient =
+ dataFromClient.Substring(0, dataFromClient.IndexOf("$"))
+ msg("From client - " + clNo + " : " + dataFromClient)
+ rCount = Convert.ToString(requestCount)
+
+ broadcast(dataFromClient, clNo, True)
+ Catch ex As Exception
+ msg($"### ERROR {ex.ToString}")
+ End Try
+ End While
+ End Sub
+
+ End Class
+End Module
diff --git a/DDMonorepo.sln b/DDMonorepo.sln
index 14fb2b72..39372e2f 100644
--- a/DDMonorepo.sln
+++ b/DDMonorepo.sln
@@ -114,6 +114,10 @@ Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "DDEDMLicenseService", "Serv
EndProject
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "GUIs.Test.EDMIBenchmark", "GUIs.Test.EDMIBenchmark\GUIs.Test.EDMIBenchmark.vbproj", "{5FDEC007-7AE0-4829-B1AE-6165E29375DA}"
EndProject
+Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ChatServer", "ChatServer\ChatServer.vbproj", "{C8F9C3DD-9328-49E3-8530-48E6A4C82CAF}"
+EndProject
+Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ChatClient", "ChatClient\ChatClient.vbproj", "{9713484C-6EE3-4D7E-B6E6-F32CF6B6BB6C}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -296,6 +300,14 @@ Global
{5FDEC007-7AE0-4829-B1AE-6165E29375DA}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5FDEC007-7AE0-4829-B1AE-6165E29375DA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5FDEC007-7AE0-4829-B1AE-6165E29375DA}.Release|Any CPU.Build.0 = Release|Any CPU
+ {C8F9C3DD-9328-49E3-8530-48E6A4C82CAF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {C8F9C3DD-9328-49E3-8530-48E6A4C82CAF}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {C8F9C3DD-9328-49E3-8530-48E6A4C82CAF}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {C8F9C3DD-9328-49E3-8530-48E6A4C82CAF}.Release|Any CPU.Build.0 = Release|Any CPU
+ {9713484C-6EE3-4D7E-B6E6-F32CF6B6BB6C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {9713484C-6EE3-4D7E-B6E6-F32CF6B6BB6C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {9713484C-6EE3-4D7E-B6E6-F32CF6B6BB6C}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {9713484C-6EE3-4D7E-B6E6-F32CF6B6BB6C}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -345,6 +357,8 @@ Global
{7DEEC36E-EA5F-4711-AD1E-FD8894F4AD77} = {7AF3F9C2-C939-4A08-95C1-0453207E298A}
{CBE9322E-67A1-4CC5-B25F-4A1B4C9FC55C} = {7AF3F9C2-C939-4A08-95C1-0453207E298A}
{5FDEC007-7AE0-4829-B1AE-6165E29375DA} = {CC368D6A-6AC4-4EB9-A092-14700FABEF7A}
+ {C8F9C3DD-9328-49E3-8530-48E6A4C82CAF} = {3E2008C8-27B1-41DD-9B1A-0C4029F6AECC}
+ {9713484C-6EE3-4D7E-B6E6-F32CF6B6BB6C} = {CC368D6A-6AC4-4EB9-A092-14700FABEF7A}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {C1BE4090-A0FD-48AF-86CB-39099D14B286}