Эх сурвалжийг харах

LoginClient改成BossClient

tanghai 13 жил өмнө
parent
commit
70f558ed83

+ 14 - 5
CSharp/App/LoginClient/LoginClient.cs → CSharp/App/BossClient/BossClient.cs

@@ -1,11 +1,12 @@
 using System;
 using System.Net.Sockets;
+using System.Threading.Tasks;
 using ENet;
 using Log;
 
-namespace LoginClient
+namespace BossClient
 {
-	public class LoginClient : IDisposable
+	public class BossClient : IDisposable
     {
 		private int sessionId;
 		
@@ -28,7 +29,16 @@ namespace LoginClient
 			this.clientHost.Start(timeout);
 		}
 
-		public async void Login(
+		public async void HandleMessages()
+		{
+			if (this.gateSession == null)
+			{
+				throw new BossException("gate session is null");
+			}
+			await this.gateSession.HandleMessages();
+		}
+
+		public async Task Login(
 			string hostName, ushort port, string account, string password)
 		{
 			int loginSessionId = ++this.sessionId;
@@ -47,9 +57,8 @@ namespace LoginClient
 
 				// 登录gate
 				Peer peer = await this.clientHost.ConnectAsync(realmInfo.Item1, realmInfo.Item2);
-				gateSession = new GateSession(loginSessionId, new ENetChannel(peer));
+				this.gateSession = new GateSession(loginSessionId, new ENetChannel(peer));
 				await gateSession.Login(realmInfo.Item3);
-				await gateSession.HandleMessages();
 			}
 			catch (Exception e)
 			{

+ 4 - 4
CSharp/App/LoginClient/LoginClient.csproj → CSharp/App/BossClient/BossClient.csproj

@@ -7,8 +7,8 @@
     <ProjectGuid>{8650195A-7904-4EBC-9D81-B392A7E9B9B3}</ProjectGuid>
     <OutputType>Library</OutputType>
     <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>LoginClient</RootNamespace>
-    <AssemblyName>LoginClient</AssemblyName>
+    <RootNamespace>BossClient</RootNamespace>
+    <AssemblyName>BossClient</AssemblyName>
     <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
     <FileAlignment>512</FileAlignment>
     <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
@@ -42,9 +42,9 @@
     <Compile Include="GateSession.cs" />
     <Compile Include="IMessageChannel.cs" />
     <Compile Include="Messages.cs" />
-    <Compile Include="LoginClient.cs" />
+    <Compile Include="BossClient.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
-    <Compile Include="LoginException.cs" />
+    <Compile Include="BossException.cs" />
     <Compile Include="RealmSession.cs" />
     <Compile Include="SRP6Client.cs" />
     <Compile Include="TcpChannel.cs" />

+ 25 - 0
CSharp/App/BossClient/BossException.cs

@@ -0,0 +1,25 @@
+using System;
+using System.Runtime.Serialization;
+
+namespace BossClient
+{
+	[Serializable]
+	public class BossException: Exception
+	{
+		public BossException()
+		{
+		}
+
+		public BossException(string message): base(message)
+		{
+		}
+
+		public BossException(string message, Exception inner): base(message, inner)
+		{
+		}
+
+		protected BossException(SerializationInfo info, StreamingContext context)
+		{
+		}
+	}
+}

+ 2 - 2
CSharp/App/LoginClient/ENetChannel.cs → CSharp/App/BossClient/ENetChannel.cs

@@ -7,7 +7,7 @@ using ENet;
 using Helper;
 using Log;
 
-namespace LoginClient
+namespace BossClient
 {
 	class ENetChannel: IMessageChannel
 	{
@@ -47,7 +47,7 @@ namespace LoginClient
 				if (flag != 0)
 				{
 					Logger.Debug("packet zip");
-					throw new LoginException("packet zip!");
+					throw new BossException("packet zip!");
 				}
 				var messageBytes = new byte[packet.Length - opcodeSize - flagSize];
 				Array.Copy(bytes, opcodeSize + flagSize, messageBytes, 0, messageBytes.Length);

+ 4 - 4
CSharp/App/LoginClient/GateSession.cs → CSharp/App/BossClient/GateSession.cs

@@ -8,7 +8,7 @@ using ENet;
 using Helper;
 using Log;
 
-namespace LoginClient
+namespace BossClient
 {
 	public class GateSession: IDisposable
 	{
@@ -79,7 +79,7 @@ namespace LoginClient
 
 			if (smsgAuthResponse.ErrorCode != ErrorCode.AUTH_OK)
 			{
-				throw new LoginException(string.Format(
+				throw new BossException(string.Format(
 					"session: {0}, SMSG_Auth_Response: {1}",
 					this.ID, JsonHelper.ToString(smsgAuthResponse)));
 			}
@@ -95,7 +95,7 @@ namespace LoginClient
 			Logger.Debug("message: {0}", message.ToHex());
 			if (opcode != MessageOpcode.SMSG_AUTH_CHALLENGE)
 			{
-				throw new LoginException(string.Format(
+				throw new BossException(string.Format(
 					"session: {0}, opcode: {1}", this.ID, opcode));
 			}
 
@@ -111,7 +111,7 @@ namespace LoginClient
 
 			if (opcode != MessageOpcode.SMSG_AUTH_RESPONSE)
 			{
-				throw new LoginException(string.Format(
+				throw new BossException(string.Format(
 					"session: {0}, opcode: {1}", this.ID, opcode));
 			}
 

+ 1 - 1
CSharp/App/LoginClient/IMessageChannel.cs → CSharp/App/BossClient/IMessageChannel.cs

@@ -4,7 +4,7 @@ using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
 
-namespace LoginClient
+namespace BossClient
 {
 	public interface IMessageChannel : IDisposable
 	{

+ 1 - 1
CSharp/App/LoginClient/Messages.cs → CSharp/App/BossClient/Messages.cs

@@ -1,7 +1,7 @@
 using System.Collections.Generic;
 using System.Runtime.Serialization;
 
-namespace LoginClient
+namespace BossClient
 {
 	public static class MessageOpcode
 	{

+ 0 - 0
CSharp/App/LoginClient/Properties/AssemblyInfo.cs → CSharp/App/BossClient/Properties/AssemblyInfo.cs


+ 9 - 9
CSharp/App/LoginClient/RealmSession.cs → CSharp/App/BossClient/RealmSession.cs

@@ -4,7 +4,7 @@ using System.Threading.Tasks;
 using Helper;
 using Log;
 
-namespace LoginClient
+namespace BossClient
 {
 	public class RealmSession: IDisposable
 	{
@@ -31,7 +31,7 @@ namespace LoginClient
 
 			if (opcode != MessageOpcode.SMSG_PASSWORD_PROTECT_TYPE)
 			{
-				throw new LoginException(string.Format(
+				throw new BossException(string.Format(
 					"session: {0}, opcode: {1}", this.ID, opcode));
 			}
 
@@ -51,7 +51,7 @@ namespace LoginClient
 			if (opcode != MessageOpcode.SMSG_AUTH_LOGON_CHALLENGE_RESPONSE)
 			{
 				Logger.Trace("opcode: {0}", opcode);
-				throw new LoginException(string.Format(
+				throw new BossException(string.Format(
 					"session: {0}, opcode: {1}", this.ID, opcode));
 			}
 			
@@ -69,7 +69,7 @@ namespace LoginClient
 
 			if (opcode != MessageOpcode.SMSG_AUTH_LOGON_PROOF_M2)
 			{
-				throw new LoginException(string.Format(
+				throw new BossException(string.Format(
 					"session: {0}, error opcode: {1}", this.ID, opcode));
 			}
 
@@ -85,7 +85,7 @@ namespace LoginClient
 
 			if (opcode != MessageOpcode.SMSG_REALM_LIST)
 			{
-				throw new LoginException(string.Format(
+				throw new BossException(string.Format(
 					"session: {0}, error opcode: {1}", this.ID, opcode));
 			}
 
@@ -116,7 +116,7 @@ namespace LoginClient
 			var smsgPasswordProtectType = await this.Handle_SMSG_Password_Protect_Type();
 			if (smsgPasswordProtectType.Code != 200)
 			{
-				throw new LoginException(string.Format(
+				throw new BossException(string.Format(
 					"session: {0}, SMSG_Password_Protect_Type: {1}",
 					this.ID, JsonHelper.ToString(smsgPasswordProtectType)));
 			}
@@ -130,7 +130,7 @@ namespace LoginClient
 				await this.Handle_SMSG_Auth_Logon_Challenge_Response();
 			if (smsgAuthLogonChallengeResponse.ErrorCode != ErrorCode.REALM_AUTH_SUCCESS)
 			{
-				throw new LoginException(
+				throw new BossException(
 					string.Format("session: {0}, SMSG_Auth_Logon_Challenge_Response: {1}",
 					this.ID, JsonHelper.ToString(smsgAuthLogonChallengeResponse)));
 			}
@@ -167,7 +167,7 @@ namespace LoginClient
 			var smsgAuthLogonProofM2 = await this.Handle_SMSG_Auth_Logon_Proof_M2();
 			if (smsgAuthLogonProofM2.ErrorCode != ErrorCode.REALM_AUTH_SUCCESS)
 			{
-				throw new LoginException(string.Format(
+				throw new BossException(string.Format(
 					"session: {0}, SMSG_Auth_Logon_Proof_M2: {1}",
 					this.ID, JsonHelper.ToString(smsgAuthLogonProofM2)));
 			}
@@ -186,7 +186,7 @@ namespace LoginClient
 
 			if (split.Length != 2)
 			{
-				throw new LoginException(
+				throw new BossException(
 					string.Format("session: {0}, gate address error, address: {1}",
 					this.ID, address));
 			}

+ 1 - 1
CSharp/App/LoginClient/SRP6Client.cs → CSharp/App/BossClient/SRP6Client.cs

@@ -5,7 +5,7 @@ using System.Security.Cryptography;
 using Helper;
 using Log;
 
-namespace LoginClient
+namespace BossClient
 {
 	public class SRP6Client
 	{

+ 4 - 4
CSharp/App/LoginClient/TcpChannel.cs → CSharp/App/BossClient/TcpChannel.cs

@@ -6,9 +6,9 @@ using System.Text;
 using System.Threading.Tasks;
 using Helper;
 using Log;
-using LoginClient;
+using BossClient;
 
-namespace LoginClient
+namespace BossClient
 {
 	public class TcpChannel: IMessageChannel
 	{
@@ -53,7 +53,7 @@ namespace LoginClient
 					packetBytes, totalReadSize, packetBytes.Length);
 				if (readSize == 0)
 				{
-					throw new LoginException("connection closed");
+					throw new BossException("connection closed");
 				}
 				totalReadSize += readSize;
 			}
@@ -71,7 +71,7 @@ namespace LoginClient
 					contentBytes, totalReadSize, contentBytes.Length);
 				if (readSize == 0)
 				{
-					throw new LoginException("connection closed");
+					throw new BossException("connection closed");
 				}
 				totalReadSize += readSize;
 			}

+ 0 - 25
CSharp/App/LoginClient/LoginException.cs

@@ -1,25 +0,0 @@
-using System;
-using System.Runtime.Serialization;
-
-namespace LoginClient
-{
-	[Serializable]
-	public class LoginException: Exception
-	{
-		public LoginException()
-		{
-		}
-
-		public LoginException(string message): base(message)
-		{
-		}
-
-		public LoginException(string message, Exception inner): base(message, inner)
-		{
-		}
-
-		protected LoginException(SerializationInfo info, StreamingContext context)
-		{
-		}
-	}
-}

+ 4 - 4
CSharp/App/Modules/Robot/Robot.csproj

@@ -70,14 +70,14 @@
       <Project>{72e16572-fc1f-4a9e-bc96-035417239298}</Project>
       <Name>Log</Name>
     </ProjectReference>
+    <ProjectReference Include="..\..\BossClient\BossClient.csproj">
+      <Project>{8650195a-7904-4ebc-9d81-b392a7e9b9b3}</Project>
+      <Name>BossClient</Name>
+    </ProjectReference>
     <ProjectReference Include="..\..\Infrastructure\Infrastructure.csproj">
       <Project>{48a2e149-0dac-41b4-bb54-dfbccd6d42b3}</Project>
       <Name>Infrastructure</Name>
     </ProjectReference>
-    <ProjectReference Include="..\..\LoginClient\LoginClient.csproj">
-      <Project>{8650195A-7904-4EBC-9D81-B392A7E9B9B3}</Project>
-      <Name>LoginClient</Name>
-    </ProjectReference>
   </ItemGroup>
   <ItemGroup>
     <Folder Include="Properties\" />

+ 2 - 1
CSharp/App/Modules/Robot/RobotView.xaml

@@ -21,7 +21,8 @@
 			</StackPanel>
 			<StackPanel Orientation="Horizontal">
 				<TextBox Name="tbCommand" Width="400" Text="{Binding Command}"></TextBox>
-				<Button Name="btnSendCommand" Content="发送" Click="btnSendCommand_Click" IsEnabled="False"></Button>
+				<Button Name="btnSendCommand" Content="发送" Click="btnSendCommand_Click" 
+						IsEnabled="{Binding IsEnableSendCommandButton}"></Button>
 			</StackPanel>
 		</StackPanel>
 	</Grid>

+ 2 - 3
CSharp/App/Modules/Robot/RobotView.xaml.cs

@@ -28,10 +28,9 @@ namespace Modules.Robot
 			}
 		}
 
-		private void btnLogin_Click(object sender, RoutedEventArgs e)
+		private async void btnLogin_Click(object sender, RoutedEventArgs e)
 		{
-			this.ViewModel.Login();
-			this.btnSendCommand.IsEnabled = true;
+			await this.ViewModel.Login();
 		}
 
 		private void btnSendCommand_Click(object sender, RoutedEventArgs e)

+ 28 - 6
CSharp/App/Modules/Robot/RobotViewModel.cs

@@ -1,6 +1,8 @@
 using System;
 using System.ComponentModel.Composition;
+using System.Threading.Tasks;
 using System.Windows.Threading;
+using BossClient;
 using Microsoft.Practices.Prism.ViewModel;
 
 namespace Modules.Robot
@@ -14,7 +16,8 @@ namespace Modules.Robot
 		private string account = "egametang@163.com";
 		private string password = "163bio1";
 		private string command = "";
-		private readonly LoginClient.LoginClient loginClient = new LoginClient.LoginClient();
+		private bool isEnableSendCommandButton;
+		private readonly BossClient.BossClient bossClient = new BossClient.BossClient();
 
 		private readonly DispatcherTimer timer = new DispatcherTimer(DispatcherPriority.Normal)
 		{ Interval = new TimeSpan(0, 0, 0, 0, 50) };
@@ -104,9 +107,26 @@ namespace Modules.Robot
 			}
 		}
 
+		public bool IsEnableSendCommandButton
+		{
+			get
+			{
+				return this.isEnableSendCommandButton;
+			}
+			set
+			{
+				if (this.isEnableSendCommandButton == value)
+				{
+					return;
+				}
+				this.isEnableSendCommandButton = value;
+				this.RaisePropertyChanged("IsEnableSendCommandButton");
+			}
+		}
+
 		public RobotViewModel()
 		{
-			this.timer.Tick += delegate { this.loginClient.RunOnce(); };
+			this.timer.Tick += delegate { this.bossClient.RunOnce(); };
 			this.timer.Start();
 		}
 
@@ -123,18 +143,20 @@ namespace Modules.Robot
 
 		private void Disposing(bool disposing)
 		{
-			this.loginClient.Dispose();
+			this.bossClient.Dispose();
 		}
 
-		public void Login()
+		public async Task Login()
 		{
-			this.loginClient.Login(
+			await this.bossClient.Login(
 				this.LoginIP, this.LoginPort, this.Account, this.Password);
+			this.IsEnableSendCommandButton = true;
+			this.bossClient.HandleMessages();
 		}
 
 		public void SendCommand()
 		{
-			this.loginClient.SendCommand(this.Command);
+			this.bossClient.SendCommand(this.Command);
 		}
 	}
 }

+ 271 - 271
CSharp/CSharp.sln

@@ -1,271 +1,271 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2012
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Modules", "Modules", "{C4C64188-4FAE-4CC3-A9E6-D9D4AF7429B6}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{EAEF8202-B3F6-4F9B-9EFD-41C374433612}"
-	ProjectSection(SolutionItems) = preProject
-		.nuget\NuGet.Config = .nuget\NuGet.Config
-		.nuget\NuGet.exe = .nuget\NuGet.exe
-		.nuget\NuGet.targets = .nuget\NuGet.targets
-	EndProjectSection
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Platform", "Platform", "{ADBF5F67-B480-4A93-9D50-C81856FC61A9}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "App", "App", "{6E9D97F0-4243-452E-B832-1A855B8118EB}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BehaviorTree", "App\Modules\BehaviorTree\BehaviorTree.csproj", "{6CD185D1-08E0-4729-A999-2D5B57BA8193}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Editor", "App\Editor\Editor.csproj", "{C46F3337-0F48-4A72-84AD-8FDD1F159BB0}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Robot", "App\Modules\Robot\Robot.csproj", "{5D6ECBCD-BE14-4DCB-BAEC-57089748B164}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Hooks", "Platform\Hooks\Hooks.csproj", "{3A98B35C-DEA8-489C-9203-263FFB6B065D}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WaiGua", "App\Modules\WaiGua\WaiGua.csproj", "{5AA48F9A-455D-4CD8-A605-A3AC38283E60}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Infrastructure", "App\Infrastructure\Infrastructure.csproj", "{48A2E149-0DAC-41B4-BB54-DFBCCD6D42B3}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Log", "Platform\Log\Log.csproj", "{72E16572-FC1F-4A9E-BC96-035417239298}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tools", "Tools", "{FD5F443E-CBEE-443E-821D-C47C86E09534}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtobufTool", "Tools\ProtobufTool\ProtobufTool.csproj", "{87537C92-B2C7-4E46-A6FB-02B73215C100}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Helper", "Platform\Helper\Helper.csproj", "{24233CD5-A5DF-484B-A482-B79CB7A0D9CB}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Server", "Server", "{4FF1FBF3-F552-4D3D-AD97-E29385069206}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Contract", "Contract", "{01501C44-C95B-45B7-A898-76B4A7AC4EE8}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Realm", "Server\Realm\Realm.csproj", "{15B3E0D2-6217-493A-A690-158C497F5318}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RealmContract", "Contract\RealmContract\RealmContract.csproj", "{E62B0633-1767-44A0-9479-C8E9D19DA4B8}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ENetCpp", "Platform\ENetCpp\ENetCpp.vcxproj", "{C9992B7C-313E-4C9F-A954-640D01EDFB58}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ENet", "Platform\ENet\ENet.csproj", "{D0B4CFAC-A368-4742-9863-68776CFA9938}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ENetTest", "Platform\ENetTest\ENetTest.csproj", "{901A8E5C-C4C6-4C3C-8E18-068D75119F5D}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LoginClient", "App\LoginClient\LoginClient.csproj", "{8650195A-7904-4EBC-9D81-B392A7E9B9B3}"
-EndProject
-Global
-	GlobalSection(SolutionConfigurationPlatforms) = preSolution
-		Debug|Any CPU = Debug|Any CPU
-		Debug|Mixed Platforms = Debug|Mixed Platforms
-		Debug|Win32 = Debug|Win32
-		Debug|x86 = Debug|x86
-		Release|Any CPU = Release|Any CPU
-		Release|Mixed Platforms = Release|Mixed Platforms
-		Release|Win32 = Release|Win32
-		Release|x86 = Release|x86
-	EndGlobalSection
-	GlobalSection(ProjectConfigurationPlatforms) = postSolution
-		{6CD185D1-08E0-4729-A999-2D5B57BA8193}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{6CD185D1-08E0-4729-A999-2D5B57BA8193}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{6CD185D1-08E0-4729-A999-2D5B57BA8193}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
-		{6CD185D1-08E0-4729-A999-2D5B57BA8193}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
-		{6CD185D1-08E0-4729-A999-2D5B57BA8193}.Debug|Win32.ActiveCfg = Debug|Any CPU
-		{6CD185D1-08E0-4729-A999-2D5B57BA8193}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{6CD185D1-08E0-4729-A999-2D5B57BA8193}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{6CD185D1-08E0-4729-A999-2D5B57BA8193}.Release|Any CPU.Build.0 = Release|Any CPU
-		{6CD185D1-08E0-4729-A999-2D5B57BA8193}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
-		{6CD185D1-08E0-4729-A999-2D5B57BA8193}.Release|Mixed Platforms.Build.0 = Release|Any CPU
-		{6CD185D1-08E0-4729-A999-2D5B57BA8193}.Release|Win32.ActiveCfg = Release|Any CPU
-		{6CD185D1-08E0-4729-A999-2D5B57BA8193}.Release|x86.ActiveCfg = Release|Any CPU
-		{C46F3337-0F48-4A72-84AD-8FDD1F159BB0}.Debug|Any CPU.ActiveCfg = Debug|x86
-		{C46F3337-0F48-4A72-84AD-8FDD1F159BB0}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
-		{C46F3337-0F48-4A72-84AD-8FDD1F159BB0}.Debug|Mixed Platforms.Build.0 = Debug|x86
-		{C46F3337-0F48-4A72-84AD-8FDD1F159BB0}.Debug|Win32.ActiveCfg = Debug|x86
-		{C46F3337-0F48-4A72-84AD-8FDD1F159BB0}.Debug|Win32.Build.0 = Debug|x86
-		{C46F3337-0F48-4A72-84AD-8FDD1F159BB0}.Debug|x86.ActiveCfg = Debug|x86
-		{C46F3337-0F48-4A72-84AD-8FDD1F159BB0}.Debug|x86.Build.0 = Debug|x86
-		{C46F3337-0F48-4A72-84AD-8FDD1F159BB0}.Release|Any CPU.ActiveCfg = Release|x86
-		{C46F3337-0F48-4A72-84AD-8FDD1F159BB0}.Release|Mixed Platforms.ActiveCfg = Release|x86
-		{C46F3337-0F48-4A72-84AD-8FDD1F159BB0}.Release|Mixed Platforms.Build.0 = Release|x86
-		{C46F3337-0F48-4A72-84AD-8FDD1F159BB0}.Release|Win32.ActiveCfg = Release|x86
-		{C46F3337-0F48-4A72-84AD-8FDD1F159BB0}.Release|Win32.Build.0 = Release|x86
-		{C46F3337-0F48-4A72-84AD-8FDD1F159BB0}.Release|x86.ActiveCfg = Release|x86
-		{C46F3337-0F48-4A72-84AD-8FDD1F159BB0}.Release|x86.Build.0 = Release|x86
-		{5D6ECBCD-BE14-4DCB-BAEC-57089748B164}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{5D6ECBCD-BE14-4DCB-BAEC-57089748B164}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{5D6ECBCD-BE14-4DCB-BAEC-57089748B164}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
-		{5D6ECBCD-BE14-4DCB-BAEC-57089748B164}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
-		{5D6ECBCD-BE14-4DCB-BAEC-57089748B164}.Debug|Win32.ActiveCfg = Debug|Any CPU
-		{5D6ECBCD-BE14-4DCB-BAEC-57089748B164}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{5D6ECBCD-BE14-4DCB-BAEC-57089748B164}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{5D6ECBCD-BE14-4DCB-BAEC-57089748B164}.Release|Any CPU.Build.0 = Release|Any CPU
-		{5D6ECBCD-BE14-4DCB-BAEC-57089748B164}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
-		{5D6ECBCD-BE14-4DCB-BAEC-57089748B164}.Release|Mixed Platforms.Build.0 = Release|Any CPU
-		{5D6ECBCD-BE14-4DCB-BAEC-57089748B164}.Release|Win32.ActiveCfg = Release|Any CPU
-		{5D6ECBCD-BE14-4DCB-BAEC-57089748B164}.Release|x86.ActiveCfg = Release|Any CPU
-		{3A98B35C-DEA8-489C-9203-263FFB6B065D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{3A98B35C-DEA8-489C-9203-263FFB6B065D}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{3A98B35C-DEA8-489C-9203-263FFB6B065D}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
-		{3A98B35C-DEA8-489C-9203-263FFB6B065D}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
-		{3A98B35C-DEA8-489C-9203-263FFB6B065D}.Debug|Win32.ActiveCfg = Debug|Any CPU
-		{3A98B35C-DEA8-489C-9203-263FFB6B065D}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{3A98B35C-DEA8-489C-9203-263FFB6B065D}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{3A98B35C-DEA8-489C-9203-263FFB6B065D}.Release|Any CPU.Build.0 = Release|Any CPU
-		{3A98B35C-DEA8-489C-9203-263FFB6B065D}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
-		{3A98B35C-DEA8-489C-9203-263FFB6B065D}.Release|Mixed Platforms.Build.0 = Release|Any CPU
-		{3A98B35C-DEA8-489C-9203-263FFB6B065D}.Release|Win32.ActiveCfg = Release|Any CPU
-		{3A98B35C-DEA8-489C-9203-263FFB6B065D}.Release|x86.ActiveCfg = Release|Any CPU
-		{5AA48F9A-455D-4CD8-A605-A3AC38283E60}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{5AA48F9A-455D-4CD8-A605-A3AC38283E60}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{5AA48F9A-455D-4CD8-A605-A3AC38283E60}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
-		{5AA48F9A-455D-4CD8-A605-A3AC38283E60}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
-		{5AA48F9A-455D-4CD8-A605-A3AC38283E60}.Debug|Win32.ActiveCfg = Debug|Any CPU
-		{5AA48F9A-455D-4CD8-A605-A3AC38283E60}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{5AA48F9A-455D-4CD8-A605-A3AC38283E60}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{5AA48F9A-455D-4CD8-A605-A3AC38283E60}.Release|Any CPU.Build.0 = Release|Any CPU
-		{5AA48F9A-455D-4CD8-A605-A3AC38283E60}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
-		{5AA48F9A-455D-4CD8-A605-A3AC38283E60}.Release|Mixed Platforms.Build.0 = Release|Any CPU
-		{5AA48F9A-455D-4CD8-A605-A3AC38283E60}.Release|Win32.ActiveCfg = Release|Any CPU
-		{5AA48F9A-455D-4CD8-A605-A3AC38283E60}.Release|x86.ActiveCfg = Release|Any CPU
-		{48A2E149-0DAC-41B4-BB54-DFBCCD6D42B3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{48A2E149-0DAC-41B4-BB54-DFBCCD6D42B3}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{48A2E149-0DAC-41B4-BB54-DFBCCD6D42B3}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
-		{48A2E149-0DAC-41B4-BB54-DFBCCD6D42B3}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
-		{48A2E149-0DAC-41B4-BB54-DFBCCD6D42B3}.Debug|Win32.ActiveCfg = Debug|Any CPU
-		{48A2E149-0DAC-41B4-BB54-DFBCCD6D42B3}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{48A2E149-0DAC-41B4-BB54-DFBCCD6D42B3}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{48A2E149-0DAC-41B4-BB54-DFBCCD6D42B3}.Release|Any CPU.Build.0 = Release|Any CPU
-		{48A2E149-0DAC-41B4-BB54-DFBCCD6D42B3}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
-		{48A2E149-0DAC-41B4-BB54-DFBCCD6D42B3}.Release|Mixed Platforms.Build.0 = Release|Any CPU
-		{48A2E149-0DAC-41B4-BB54-DFBCCD6D42B3}.Release|Win32.ActiveCfg = Release|Any CPU
-		{48A2E149-0DAC-41B4-BB54-DFBCCD6D42B3}.Release|x86.ActiveCfg = Release|Any CPU
-		{72E16572-FC1F-4A9E-BC96-035417239298}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{72E16572-FC1F-4A9E-BC96-035417239298}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{72E16572-FC1F-4A9E-BC96-035417239298}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
-		{72E16572-FC1F-4A9E-BC96-035417239298}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
-		{72E16572-FC1F-4A9E-BC96-035417239298}.Debug|Win32.ActiveCfg = Debug|Any CPU
-		{72E16572-FC1F-4A9E-BC96-035417239298}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{72E16572-FC1F-4A9E-BC96-035417239298}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{72E16572-FC1F-4A9E-BC96-035417239298}.Release|Any CPU.Build.0 = Release|Any CPU
-		{72E16572-FC1F-4A9E-BC96-035417239298}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
-		{72E16572-FC1F-4A9E-BC96-035417239298}.Release|Mixed Platforms.Build.0 = Release|Any CPU
-		{72E16572-FC1F-4A9E-BC96-035417239298}.Release|Win32.ActiveCfg = Release|Any CPU
-		{72E16572-FC1F-4A9E-BC96-035417239298}.Release|x86.ActiveCfg = Release|Any CPU
-		{87537C92-B2C7-4E46-A6FB-02B73215C100}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{87537C92-B2C7-4E46-A6FB-02B73215C100}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{87537C92-B2C7-4E46-A6FB-02B73215C100}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
-		{87537C92-B2C7-4E46-A6FB-02B73215C100}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
-		{87537C92-B2C7-4E46-A6FB-02B73215C100}.Debug|Win32.ActiveCfg = Debug|Any CPU
-		{87537C92-B2C7-4E46-A6FB-02B73215C100}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{87537C92-B2C7-4E46-A6FB-02B73215C100}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{87537C92-B2C7-4E46-A6FB-02B73215C100}.Release|Any CPU.Build.0 = Release|Any CPU
-		{87537C92-B2C7-4E46-A6FB-02B73215C100}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
-		{87537C92-B2C7-4E46-A6FB-02B73215C100}.Release|Mixed Platforms.Build.0 = Release|Any CPU
-		{87537C92-B2C7-4E46-A6FB-02B73215C100}.Release|Win32.ActiveCfg = Release|Any CPU
-		{87537C92-B2C7-4E46-A6FB-02B73215C100}.Release|x86.ActiveCfg = Release|Any CPU
-		{24233CD5-A5DF-484B-A482-B79CB7A0D9CB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{24233CD5-A5DF-484B-A482-B79CB7A0D9CB}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{24233CD5-A5DF-484B-A482-B79CB7A0D9CB}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
-		{24233CD5-A5DF-484B-A482-B79CB7A0D9CB}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
-		{24233CD5-A5DF-484B-A482-B79CB7A0D9CB}.Debug|Win32.ActiveCfg = Debug|Any CPU
-		{24233CD5-A5DF-484B-A482-B79CB7A0D9CB}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{24233CD5-A5DF-484B-A482-B79CB7A0D9CB}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{24233CD5-A5DF-484B-A482-B79CB7A0D9CB}.Release|Any CPU.Build.0 = Release|Any CPU
-		{24233CD5-A5DF-484B-A482-B79CB7A0D9CB}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
-		{24233CD5-A5DF-484B-A482-B79CB7A0D9CB}.Release|Mixed Platforms.Build.0 = Release|Any CPU
-		{24233CD5-A5DF-484B-A482-B79CB7A0D9CB}.Release|Win32.ActiveCfg = Release|Any CPU
-		{24233CD5-A5DF-484B-A482-B79CB7A0D9CB}.Release|x86.ActiveCfg = Release|Any CPU
-		{15B3E0D2-6217-493A-A690-158C497F5318}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{15B3E0D2-6217-493A-A690-158C497F5318}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{15B3E0D2-6217-493A-A690-158C497F5318}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
-		{15B3E0D2-6217-493A-A690-158C497F5318}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
-		{15B3E0D2-6217-493A-A690-158C497F5318}.Debug|Win32.ActiveCfg = Debug|Any CPU
-		{15B3E0D2-6217-493A-A690-158C497F5318}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{15B3E0D2-6217-493A-A690-158C497F5318}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{15B3E0D2-6217-493A-A690-158C497F5318}.Release|Any CPU.Build.0 = Release|Any CPU
-		{15B3E0D2-6217-493A-A690-158C497F5318}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
-		{15B3E0D2-6217-493A-A690-158C497F5318}.Release|Mixed Platforms.Build.0 = Release|Any CPU
-		{15B3E0D2-6217-493A-A690-158C497F5318}.Release|Win32.ActiveCfg = Release|Any CPU
-		{15B3E0D2-6217-493A-A690-158C497F5318}.Release|x86.ActiveCfg = Release|Any CPU
-		{E62B0633-1767-44A0-9479-C8E9D19DA4B8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{E62B0633-1767-44A0-9479-C8E9D19DA4B8}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{E62B0633-1767-44A0-9479-C8E9D19DA4B8}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
-		{E62B0633-1767-44A0-9479-C8E9D19DA4B8}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
-		{E62B0633-1767-44A0-9479-C8E9D19DA4B8}.Debug|Win32.ActiveCfg = Debug|Any CPU
-		{E62B0633-1767-44A0-9479-C8E9D19DA4B8}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{E62B0633-1767-44A0-9479-C8E9D19DA4B8}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{E62B0633-1767-44A0-9479-C8E9D19DA4B8}.Release|Any CPU.Build.0 = Release|Any CPU
-		{E62B0633-1767-44A0-9479-C8E9D19DA4B8}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
-		{E62B0633-1767-44A0-9479-C8E9D19DA4B8}.Release|Mixed Platforms.Build.0 = Release|Any CPU
-		{E62B0633-1767-44A0-9479-C8E9D19DA4B8}.Release|Win32.ActiveCfg = Release|Any CPU
-		{E62B0633-1767-44A0-9479-C8E9D19DA4B8}.Release|x86.ActiveCfg = Release|Any CPU
-		{C9992B7C-313E-4C9F-A954-640D01EDFB58}.Debug|Any CPU.ActiveCfg = Debug|Win32
-		{C9992B7C-313E-4C9F-A954-640D01EDFB58}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
-		{C9992B7C-313E-4C9F-A954-640D01EDFB58}.Debug|Mixed Platforms.Build.0 = Debug|Win32
-		{C9992B7C-313E-4C9F-A954-640D01EDFB58}.Debug|Win32.ActiveCfg = Debug|Win32
-		{C9992B7C-313E-4C9F-A954-640D01EDFB58}.Debug|Win32.Build.0 = Debug|Win32
-		{C9992B7C-313E-4C9F-A954-640D01EDFB58}.Debug|x86.ActiveCfg = Debug|Win32
-		{C9992B7C-313E-4C9F-A954-640D01EDFB58}.Debug|x86.Build.0 = Debug|Win32
-		{C9992B7C-313E-4C9F-A954-640D01EDFB58}.Release|Any CPU.ActiveCfg = Release|Win32
-		{C9992B7C-313E-4C9F-A954-640D01EDFB58}.Release|Mixed Platforms.ActiveCfg = Release|Win32
-		{C9992B7C-313E-4C9F-A954-640D01EDFB58}.Release|Mixed Platforms.Build.0 = Release|Win32
-		{C9992B7C-313E-4C9F-A954-640D01EDFB58}.Release|Win32.ActiveCfg = Release|Win32
-		{C9992B7C-313E-4C9F-A954-640D01EDFB58}.Release|Win32.Build.0 = Release|Win32
-		{C9992B7C-313E-4C9F-A954-640D01EDFB58}.Release|x86.ActiveCfg = Release|Win32
-		{C9992B7C-313E-4C9F-A954-640D01EDFB58}.Release|x86.Build.0 = Release|Win32
-		{D0B4CFAC-A368-4742-9863-68776CFA9938}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{D0B4CFAC-A368-4742-9863-68776CFA9938}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{D0B4CFAC-A368-4742-9863-68776CFA9938}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
-		{D0B4CFAC-A368-4742-9863-68776CFA9938}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
-		{D0B4CFAC-A368-4742-9863-68776CFA9938}.Debug|Win32.ActiveCfg = Debug|Any CPU
-		{D0B4CFAC-A368-4742-9863-68776CFA9938}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{D0B4CFAC-A368-4742-9863-68776CFA9938}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{D0B4CFAC-A368-4742-9863-68776CFA9938}.Release|Any CPU.Build.0 = Release|Any CPU
-		{D0B4CFAC-A368-4742-9863-68776CFA9938}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
-		{D0B4CFAC-A368-4742-9863-68776CFA9938}.Release|Mixed Platforms.Build.0 = Release|Any CPU
-		{D0B4CFAC-A368-4742-9863-68776CFA9938}.Release|Win32.ActiveCfg = Release|Any CPU
-		{D0B4CFAC-A368-4742-9863-68776CFA9938}.Release|x86.ActiveCfg = Release|Any CPU
-		{901A8E5C-C4C6-4C3C-8E18-068D75119F5D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{901A8E5C-C4C6-4C3C-8E18-068D75119F5D}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{901A8E5C-C4C6-4C3C-8E18-068D75119F5D}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
-		{901A8E5C-C4C6-4C3C-8E18-068D75119F5D}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
-		{901A8E5C-C4C6-4C3C-8E18-068D75119F5D}.Debug|Win32.ActiveCfg = Debug|Any CPU
-		{901A8E5C-C4C6-4C3C-8E18-068D75119F5D}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{901A8E5C-C4C6-4C3C-8E18-068D75119F5D}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{901A8E5C-C4C6-4C3C-8E18-068D75119F5D}.Release|Any CPU.Build.0 = Release|Any CPU
-		{901A8E5C-C4C6-4C3C-8E18-068D75119F5D}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
-		{901A8E5C-C4C6-4C3C-8E18-068D75119F5D}.Release|Mixed Platforms.Build.0 = Release|Any CPU
-		{901A8E5C-C4C6-4C3C-8E18-068D75119F5D}.Release|Win32.ActiveCfg = Release|Any CPU
-		{901A8E5C-C4C6-4C3C-8E18-068D75119F5D}.Release|x86.ActiveCfg = Release|Any CPU
-		{8650195A-7904-4EBC-9D81-B392A7E9B9B3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{8650195A-7904-4EBC-9D81-B392A7E9B9B3}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{8650195A-7904-4EBC-9D81-B392A7E9B9B3}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
-		{8650195A-7904-4EBC-9D81-B392A7E9B9B3}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
-		{8650195A-7904-4EBC-9D81-B392A7E9B9B3}.Debug|Win32.ActiveCfg = Debug|Any CPU
-		{8650195A-7904-4EBC-9D81-B392A7E9B9B3}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{8650195A-7904-4EBC-9D81-B392A7E9B9B3}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{8650195A-7904-4EBC-9D81-B392A7E9B9B3}.Release|Any CPU.Build.0 = Release|Any CPU
-		{8650195A-7904-4EBC-9D81-B392A7E9B9B3}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
-		{8650195A-7904-4EBC-9D81-B392A7E9B9B3}.Release|Mixed Platforms.Build.0 = Release|Any CPU
-		{8650195A-7904-4EBC-9D81-B392A7E9B9B3}.Release|Win32.ActiveCfg = Release|Any CPU
-		{8650195A-7904-4EBC-9D81-B392A7E9B9B3}.Release|x86.ActiveCfg = Release|Any CPU
-	EndGlobalSection
-	GlobalSection(SolutionProperties) = preSolution
-		HideSolutionNode = FALSE
-	EndGlobalSection
-	GlobalSection(NestedProjects) = preSolution
-		{C4C64188-4FAE-4CC3-A9E6-D9D4AF7429B6} = {6E9D97F0-4243-452E-B832-1A855B8118EB}
-		{C46F3337-0F48-4A72-84AD-8FDD1F159BB0} = {6E9D97F0-4243-452E-B832-1A855B8118EB}
-		{48A2E149-0DAC-41B4-BB54-DFBCCD6D42B3} = {6E9D97F0-4243-452E-B832-1A855B8118EB}
-		{8650195A-7904-4EBC-9D81-B392A7E9B9B3} = {6E9D97F0-4243-452E-B832-1A855B8118EB}
-		{3A98B35C-DEA8-489C-9203-263FFB6B065D} = {ADBF5F67-B480-4A93-9D50-C81856FC61A9}
-		{72E16572-FC1F-4A9E-BC96-035417239298} = {ADBF5F67-B480-4A93-9D50-C81856FC61A9}
-		{24233CD5-A5DF-484B-A482-B79CB7A0D9CB} = {ADBF5F67-B480-4A93-9D50-C81856FC61A9}
-		{C9992B7C-313E-4C9F-A954-640D01EDFB58} = {ADBF5F67-B480-4A93-9D50-C81856FC61A9}
-		{D0B4CFAC-A368-4742-9863-68776CFA9938} = {ADBF5F67-B480-4A93-9D50-C81856FC61A9}
-		{901A8E5C-C4C6-4C3C-8E18-068D75119F5D} = {ADBF5F67-B480-4A93-9D50-C81856FC61A9}
-		{6CD185D1-08E0-4729-A999-2D5B57BA8193} = {C4C64188-4FAE-4CC3-A9E6-D9D4AF7429B6}
-		{5D6ECBCD-BE14-4DCB-BAEC-57089748B164} = {C4C64188-4FAE-4CC3-A9E6-D9D4AF7429B6}
-		{5AA48F9A-455D-4CD8-A605-A3AC38283E60} = {C4C64188-4FAE-4CC3-A9E6-D9D4AF7429B6}
-		{87537C92-B2C7-4E46-A6FB-02B73215C100} = {FD5F443E-CBEE-443E-821D-C47C86E09534}
-		{15B3E0D2-6217-493A-A690-158C497F5318} = {4FF1FBF3-F552-4D3D-AD97-E29385069206}
-		{E62B0633-1767-44A0-9479-C8E9D19DA4B8} = {01501C44-C95B-45B7-A898-76B4A7AC4EE8}
-	EndGlobalSection
-EndGlobal
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 2012
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Modules", "Modules", "{C4C64188-4FAE-4CC3-A9E6-D9D4AF7429B6}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{EAEF8202-B3F6-4F9B-9EFD-41C374433612}"
+	ProjectSection(SolutionItems) = preProject
+		.nuget\NuGet.Config = .nuget\NuGet.Config
+		.nuget\NuGet.exe = .nuget\NuGet.exe
+		.nuget\NuGet.targets = .nuget\NuGet.targets
+	EndProjectSection
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Platform", "Platform", "{ADBF5F67-B480-4A93-9D50-C81856FC61A9}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "App", "App", "{6E9D97F0-4243-452E-B832-1A855B8118EB}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BehaviorTree", "App\Modules\BehaviorTree\BehaviorTree.csproj", "{6CD185D1-08E0-4729-A999-2D5B57BA8193}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Editor", "App\Editor\Editor.csproj", "{C46F3337-0F48-4A72-84AD-8FDD1F159BB0}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Robot", "App\Modules\Robot\Robot.csproj", "{5D6ECBCD-BE14-4DCB-BAEC-57089748B164}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Hooks", "Platform\Hooks\Hooks.csproj", "{3A98B35C-DEA8-489C-9203-263FFB6B065D}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WaiGua", "App\Modules\WaiGua\WaiGua.csproj", "{5AA48F9A-455D-4CD8-A605-A3AC38283E60}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Infrastructure", "App\Infrastructure\Infrastructure.csproj", "{48A2E149-0DAC-41B4-BB54-DFBCCD6D42B3}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Log", "Platform\Log\Log.csproj", "{72E16572-FC1F-4A9E-BC96-035417239298}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tools", "Tools", "{FD5F443E-CBEE-443E-821D-C47C86E09534}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtobufTool", "Tools\ProtobufTool\ProtobufTool.csproj", "{87537C92-B2C7-4E46-A6FB-02B73215C100}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Helper", "Platform\Helper\Helper.csproj", "{24233CD5-A5DF-484B-A482-B79CB7A0D9CB}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Server", "Server", "{4FF1FBF3-F552-4D3D-AD97-E29385069206}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Contract", "Contract", "{01501C44-C95B-45B7-A898-76B4A7AC4EE8}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Realm", "Server\Realm\Realm.csproj", "{15B3E0D2-6217-493A-A690-158C497F5318}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RealmContract", "Contract\RealmContract\RealmContract.csproj", "{E62B0633-1767-44A0-9479-C8E9D19DA4B8}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ENetCpp", "Platform\ENetCpp\ENetCpp.vcxproj", "{C9992B7C-313E-4C9F-A954-640D01EDFB58}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ENet", "Platform\ENet\ENet.csproj", "{D0B4CFAC-A368-4742-9863-68776CFA9938}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ENetTest", "Platform\ENetTest\ENetTest.csproj", "{901A8E5C-C4C6-4C3C-8E18-068D75119F5D}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BossClient", "App\BossClient\BossClient.csproj", "{8650195A-7904-4EBC-9D81-B392A7E9B9B3}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Any CPU = Debug|Any CPU
+		Debug|Mixed Platforms = Debug|Mixed Platforms
+		Debug|Win32 = Debug|Win32
+		Debug|x86 = Debug|x86
+		Release|Any CPU = Release|Any CPU
+		Release|Mixed Platforms = Release|Mixed Platforms
+		Release|Win32 = Release|Win32
+		Release|x86 = Release|x86
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{6CD185D1-08E0-4729-A999-2D5B57BA8193}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{6CD185D1-08E0-4729-A999-2D5B57BA8193}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{6CD185D1-08E0-4729-A999-2D5B57BA8193}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+		{6CD185D1-08E0-4729-A999-2D5B57BA8193}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+		{6CD185D1-08E0-4729-A999-2D5B57BA8193}.Debug|Win32.ActiveCfg = Debug|Any CPU
+		{6CD185D1-08E0-4729-A999-2D5B57BA8193}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{6CD185D1-08E0-4729-A999-2D5B57BA8193}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{6CD185D1-08E0-4729-A999-2D5B57BA8193}.Release|Any CPU.Build.0 = Release|Any CPU
+		{6CD185D1-08E0-4729-A999-2D5B57BA8193}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+		{6CD185D1-08E0-4729-A999-2D5B57BA8193}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+		{6CD185D1-08E0-4729-A999-2D5B57BA8193}.Release|Win32.ActiveCfg = Release|Any CPU
+		{6CD185D1-08E0-4729-A999-2D5B57BA8193}.Release|x86.ActiveCfg = Release|Any CPU
+		{C46F3337-0F48-4A72-84AD-8FDD1F159BB0}.Debug|Any CPU.ActiveCfg = Debug|x86
+		{C46F3337-0F48-4A72-84AD-8FDD1F159BB0}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
+		{C46F3337-0F48-4A72-84AD-8FDD1F159BB0}.Debug|Mixed Platforms.Build.0 = Debug|x86
+		{C46F3337-0F48-4A72-84AD-8FDD1F159BB0}.Debug|Win32.ActiveCfg = Debug|x86
+		{C46F3337-0F48-4A72-84AD-8FDD1F159BB0}.Debug|Win32.Build.0 = Debug|x86
+		{C46F3337-0F48-4A72-84AD-8FDD1F159BB0}.Debug|x86.ActiveCfg = Debug|x86
+		{C46F3337-0F48-4A72-84AD-8FDD1F159BB0}.Debug|x86.Build.0 = Debug|x86
+		{C46F3337-0F48-4A72-84AD-8FDD1F159BB0}.Release|Any CPU.ActiveCfg = Release|x86
+		{C46F3337-0F48-4A72-84AD-8FDD1F159BB0}.Release|Mixed Platforms.ActiveCfg = Release|x86
+		{C46F3337-0F48-4A72-84AD-8FDD1F159BB0}.Release|Mixed Platforms.Build.0 = Release|x86
+		{C46F3337-0F48-4A72-84AD-8FDD1F159BB0}.Release|Win32.ActiveCfg = Release|x86
+		{C46F3337-0F48-4A72-84AD-8FDD1F159BB0}.Release|Win32.Build.0 = Release|x86
+		{C46F3337-0F48-4A72-84AD-8FDD1F159BB0}.Release|x86.ActiveCfg = Release|x86
+		{C46F3337-0F48-4A72-84AD-8FDD1F159BB0}.Release|x86.Build.0 = Release|x86
+		{5D6ECBCD-BE14-4DCB-BAEC-57089748B164}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{5D6ECBCD-BE14-4DCB-BAEC-57089748B164}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{5D6ECBCD-BE14-4DCB-BAEC-57089748B164}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+		{5D6ECBCD-BE14-4DCB-BAEC-57089748B164}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+		{5D6ECBCD-BE14-4DCB-BAEC-57089748B164}.Debug|Win32.ActiveCfg = Debug|Any CPU
+		{5D6ECBCD-BE14-4DCB-BAEC-57089748B164}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{5D6ECBCD-BE14-4DCB-BAEC-57089748B164}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{5D6ECBCD-BE14-4DCB-BAEC-57089748B164}.Release|Any CPU.Build.0 = Release|Any CPU
+		{5D6ECBCD-BE14-4DCB-BAEC-57089748B164}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+		{5D6ECBCD-BE14-4DCB-BAEC-57089748B164}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+		{5D6ECBCD-BE14-4DCB-BAEC-57089748B164}.Release|Win32.ActiveCfg = Release|Any CPU
+		{5D6ECBCD-BE14-4DCB-BAEC-57089748B164}.Release|x86.ActiveCfg = Release|Any CPU
+		{3A98B35C-DEA8-489C-9203-263FFB6B065D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{3A98B35C-DEA8-489C-9203-263FFB6B065D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{3A98B35C-DEA8-489C-9203-263FFB6B065D}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+		{3A98B35C-DEA8-489C-9203-263FFB6B065D}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+		{3A98B35C-DEA8-489C-9203-263FFB6B065D}.Debug|Win32.ActiveCfg = Debug|Any CPU
+		{3A98B35C-DEA8-489C-9203-263FFB6B065D}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{3A98B35C-DEA8-489C-9203-263FFB6B065D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{3A98B35C-DEA8-489C-9203-263FFB6B065D}.Release|Any CPU.Build.0 = Release|Any CPU
+		{3A98B35C-DEA8-489C-9203-263FFB6B065D}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+		{3A98B35C-DEA8-489C-9203-263FFB6B065D}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+		{3A98B35C-DEA8-489C-9203-263FFB6B065D}.Release|Win32.ActiveCfg = Release|Any CPU
+		{3A98B35C-DEA8-489C-9203-263FFB6B065D}.Release|x86.ActiveCfg = Release|Any CPU
+		{5AA48F9A-455D-4CD8-A605-A3AC38283E60}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{5AA48F9A-455D-4CD8-A605-A3AC38283E60}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{5AA48F9A-455D-4CD8-A605-A3AC38283E60}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+		{5AA48F9A-455D-4CD8-A605-A3AC38283E60}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+		{5AA48F9A-455D-4CD8-A605-A3AC38283E60}.Debug|Win32.ActiveCfg = Debug|Any CPU
+		{5AA48F9A-455D-4CD8-A605-A3AC38283E60}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{5AA48F9A-455D-4CD8-A605-A3AC38283E60}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{5AA48F9A-455D-4CD8-A605-A3AC38283E60}.Release|Any CPU.Build.0 = Release|Any CPU
+		{5AA48F9A-455D-4CD8-A605-A3AC38283E60}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+		{5AA48F9A-455D-4CD8-A605-A3AC38283E60}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+		{5AA48F9A-455D-4CD8-A605-A3AC38283E60}.Release|Win32.ActiveCfg = Release|Any CPU
+		{5AA48F9A-455D-4CD8-A605-A3AC38283E60}.Release|x86.ActiveCfg = Release|Any CPU
+		{48A2E149-0DAC-41B4-BB54-DFBCCD6D42B3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{48A2E149-0DAC-41B4-BB54-DFBCCD6D42B3}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{48A2E149-0DAC-41B4-BB54-DFBCCD6D42B3}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+		{48A2E149-0DAC-41B4-BB54-DFBCCD6D42B3}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+		{48A2E149-0DAC-41B4-BB54-DFBCCD6D42B3}.Debug|Win32.ActiveCfg = Debug|Any CPU
+		{48A2E149-0DAC-41B4-BB54-DFBCCD6D42B3}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{48A2E149-0DAC-41B4-BB54-DFBCCD6D42B3}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{48A2E149-0DAC-41B4-BB54-DFBCCD6D42B3}.Release|Any CPU.Build.0 = Release|Any CPU
+		{48A2E149-0DAC-41B4-BB54-DFBCCD6D42B3}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+		{48A2E149-0DAC-41B4-BB54-DFBCCD6D42B3}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+		{48A2E149-0DAC-41B4-BB54-DFBCCD6D42B3}.Release|Win32.ActiveCfg = Release|Any CPU
+		{48A2E149-0DAC-41B4-BB54-DFBCCD6D42B3}.Release|x86.ActiveCfg = Release|Any CPU
+		{72E16572-FC1F-4A9E-BC96-035417239298}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{72E16572-FC1F-4A9E-BC96-035417239298}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{72E16572-FC1F-4A9E-BC96-035417239298}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+		{72E16572-FC1F-4A9E-BC96-035417239298}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+		{72E16572-FC1F-4A9E-BC96-035417239298}.Debug|Win32.ActiveCfg = Debug|Any CPU
+		{72E16572-FC1F-4A9E-BC96-035417239298}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{72E16572-FC1F-4A9E-BC96-035417239298}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{72E16572-FC1F-4A9E-BC96-035417239298}.Release|Any CPU.Build.0 = Release|Any CPU
+		{72E16572-FC1F-4A9E-BC96-035417239298}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+		{72E16572-FC1F-4A9E-BC96-035417239298}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+		{72E16572-FC1F-4A9E-BC96-035417239298}.Release|Win32.ActiveCfg = Release|Any CPU
+		{72E16572-FC1F-4A9E-BC96-035417239298}.Release|x86.ActiveCfg = Release|Any CPU
+		{87537C92-B2C7-4E46-A6FB-02B73215C100}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{87537C92-B2C7-4E46-A6FB-02B73215C100}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{87537C92-B2C7-4E46-A6FB-02B73215C100}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+		{87537C92-B2C7-4E46-A6FB-02B73215C100}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+		{87537C92-B2C7-4E46-A6FB-02B73215C100}.Debug|Win32.ActiveCfg = Debug|Any CPU
+		{87537C92-B2C7-4E46-A6FB-02B73215C100}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{87537C92-B2C7-4E46-A6FB-02B73215C100}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{87537C92-B2C7-4E46-A6FB-02B73215C100}.Release|Any CPU.Build.0 = Release|Any CPU
+		{87537C92-B2C7-4E46-A6FB-02B73215C100}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+		{87537C92-B2C7-4E46-A6FB-02B73215C100}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+		{87537C92-B2C7-4E46-A6FB-02B73215C100}.Release|Win32.ActiveCfg = Release|Any CPU
+		{87537C92-B2C7-4E46-A6FB-02B73215C100}.Release|x86.ActiveCfg = Release|Any CPU
+		{24233CD5-A5DF-484B-A482-B79CB7A0D9CB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{24233CD5-A5DF-484B-A482-B79CB7A0D9CB}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{24233CD5-A5DF-484B-A482-B79CB7A0D9CB}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+		{24233CD5-A5DF-484B-A482-B79CB7A0D9CB}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+		{24233CD5-A5DF-484B-A482-B79CB7A0D9CB}.Debug|Win32.ActiveCfg = Debug|Any CPU
+		{24233CD5-A5DF-484B-A482-B79CB7A0D9CB}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{24233CD5-A5DF-484B-A482-B79CB7A0D9CB}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{24233CD5-A5DF-484B-A482-B79CB7A0D9CB}.Release|Any CPU.Build.0 = Release|Any CPU
+		{24233CD5-A5DF-484B-A482-B79CB7A0D9CB}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+		{24233CD5-A5DF-484B-A482-B79CB7A0D9CB}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+		{24233CD5-A5DF-484B-A482-B79CB7A0D9CB}.Release|Win32.ActiveCfg = Release|Any CPU
+		{24233CD5-A5DF-484B-A482-B79CB7A0D9CB}.Release|x86.ActiveCfg = Release|Any CPU
+		{15B3E0D2-6217-493A-A690-158C497F5318}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{15B3E0D2-6217-493A-A690-158C497F5318}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{15B3E0D2-6217-493A-A690-158C497F5318}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+		{15B3E0D2-6217-493A-A690-158C497F5318}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+		{15B3E0D2-6217-493A-A690-158C497F5318}.Debug|Win32.ActiveCfg = Debug|Any CPU
+		{15B3E0D2-6217-493A-A690-158C497F5318}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{15B3E0D2-6217-493A-A690-158C497F5318}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{15B3E0D2-6217-493A-A690-158C497F5318}.Release|Any CPU.Build.0 = Release|Any CPU
+		{15B3E0D2-6217-493A-A690-158C497F5318}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+		{15B3E0D2-6217-493A-A690-158C497F5318}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+		{15B3E0D2-6217-493A-A690-158C497F5318}.Release|Win32.ActiveCfg = Release|Any CPU
+		{15B3E0D2-6217-493A-A690-158C497F5318}.Release|x86.ActiveCfg = Release|Any CPU
+		{E62B0633-1767-44A0-9479-C8E9D19DA4B8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{E62B0633-1767-44A0-9479-C8E9D19DA4B8}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{E62B0633-1767-44A0-9479-C8E9D19DA4B8}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+		{E62B0633-1767-44A0-9479-C8E9D19DA4B8}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+		{E62B0633-1767-44A0-9479-C8E9D19DA4B8}.Debug|Win32.ActiveCfg = Debug|Any CPU
+		{E62B0633-1767-44A0-9479-C8E9D19DA4B8}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{E62B0633-1767-44A0-9479-C8E9D19DA4B8}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{E62B0633-1767-44A0-9479-C8E9D19DA4B8}.Release|Any CPU.Build.0 = Release|Any CPU
+		{E62B0633-1767-44A0-9479-C8E9D19DA4B8}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+		{E62B0633-1767-44A0-9479-C8E9D19DA4B8}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+		{E62B0633-1767-44A0-9479-C8E9D19DA4B8}.Release|Win32.ActiveCfg = Release|Any CPU
+		{E62B0633-1767-44A0-9479-C8E9D19DA4B8}.Release|x86.ActiveCfg = Release|Any CPU
+		{C9992B7C-313E-4C9F-A954-640D01EDFB58}.Debug|Any CPU.ActiveCfg = Debug|Win32
+		{C9992B7C-313E-4C9F-A954-640D01EDFB58}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
+		{C9992B7C-313E-4C9F-A954-640D01EDFB58}.Debug|Mixed Platforms.Build.0 = Debug|Win32
+		{C9992B7C-313E-4C9F-A954-640D01EDFB58}.Debug|Win32.ActiveCfg = Debug|Win32
+		{C9992B7C-313E-4C9F-A954-640D01EDFB58}.Debug|Win32.Build.0 = Debug|Win32
+		{C9992B7C-313E-4C9F-A954-640D01EDFB58}.Debug|x86.ActiveCfg = Debug|Win32
+		{C9992B7C-313E-4C9F-A954-640D01EDFB58}.Debug|x86.Build.0 = Debug|Win32
+		{C9992B7C-313E-4C9F-A954-640D01EDFB58}.Release|Any CPU.ActiveCfg = Release|Win32
+		{C9992B7C-313E-4C9F-A954-640D01EDFB58}.Release|Mixed Platforms.ActiveCfg = Release|Win32
+		{C9992B7C-313E-4C9F-A954-640D01EDFB58}.Release|Mixed Platforms.Build.0 = Release|Win32
+		{C9992B7C-313E-4C9F-A954-640D01EDFB58}.Release|Win32.ActiveCfg = Release|Win32
+		{C9992B7C-313E-4C9F-A954-640D01EDFB58}.Release|Win32.Build.0 = Release|Win32
+		{C9992B7C-313E-4C9F-A954-640D01EDFB58}.Release|x86.ActiveCfg = Release|Win32
+		{C9992B7C-313E-4C9F-A954-640D01EDFB58}.Release|x86.Build.0 = Release|Win32
+		{D0B4CFAC-A368-4742-9863-68776CFA9938}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{D0B4CFAC-A368-4742-9863-68776CFA9938}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{D0B4CFAC-A368-4742-9863-68776CFA9938}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+		{D0B4CFAC-A368-4742-9863-68776CFA9938}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+		{D0B4CFAC-A368-4742-9863-68776CFA9938}.Debug|Win32.ActiveCfg = Debug|Any CPU
+		{D0B4CFAC-A368-4742-9863-68776CFA9938}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{D0B4CFAC-A368-4742-9863-68776CFA9938}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{D0B4CFAC-A368-4742-9863-68776CFA9938}.Release|Any CPU.Build.0 = Release|Any CPU
+		{D0B4CFAC-A368-4742-9863-68776CFA9938}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+		{D0B4CFAC-A368-4742-9863-68776CFA9938}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+		{D0B4CFAC-A368-4742-9863-68776CFA9938}.Release|Win32.ActiveCfg = Release|Any CPU
+		{D0B4CFAC-A368-4742-9863-68776CFA9938}.Release|x86.ActiveCfg = Release|Any CPU
+		{901A8E5C-C4C6-4C3C-8E18-068D75119F5D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{901A8E5C-C4C6-4C3C-8E18-068D75119F5D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{901A8E5C-C4C6-4C3C-8E18-068D75119F5D}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+		{901A8E5C-C4C6-4C3C-8E18-068D75119F5D}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+		{901A8E5C-C4C6-4C3C-8E18-068D75119F5D}.Debug|Win32.ActiveCfg = Debug|Any CPU
+		{901A8E5C-C4C6-4C3C-8E18-068D75119F5D}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{901A8E5C-C4C6-4C3C-8E18-068D75119F5D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{901A8E5C-C4C6-4C3C-8E18-068D75119F5D}.Release|Any CPU.Build.0 = Release|Any CPU
+		{901A8E5C-C4C6-4C3C-8E18-068D75119F5D}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+		{901A8E5C-C4C6-4C3C-8E18-068D75119F5D}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+		{901A8E5C-C4C6-4C3C-8E18-068D75119F5D}.Release|Win32.ActiveCfg = Release|Any CPU
+		{901A8E5C-C4C6-4C3C-8E18-068D75119F5D}.Release|x86.ActiveCfg = Release|Any CPU
+		{8650195A-7904-4EBC-9D81-B392A7E9B9B3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{8650195A-7904-4EBC-9D81-B392A7E9B9B3}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{8650195A-7904-4EBC-9D81-B392A7E9B9B3}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+		{8650195A-7904-4EBC-9D81-B392A7E9B9B3}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+		{8650195A-7904-4EBC-9D81-B392A7E9B9B3}.Debug|Win32.ActiveCfg = Debug|Any CPU
+		{8650195A-7904-4EBC-9D81-B392A7E9B9B3}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{8650195A-7904-4EBC-9D81-B392A7E9B9B3}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{8650195A-7904-4EBC-9D81-B392A7E9B9B3}.Release|Any CPU.Build.0 = Release|Any CPU
+		{8650195A-7904-4EBC-9D81-B392A7E9B9B3}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+		{8650195A-7904-4EBC-9D81-B392A7E9B9B3}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+		{8650195A-7904-4EBC-9D81-B392A7E9B9B3}.Release|Win32.ActiveCfg = Release|Any CPU
+		{8650195A-7904-4EBC-9D81-B392A7E9B9B3}.Release|x86.ActiveCfg = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+	GlobalSection(NestedProjects) = preSolution
+		{C4C64188-4FAE-4CC3-A9E6-D9D4AF7429B6} = {6E9D97F0-4243-452E-B832-1A855B8118EB}
+		{C46F3337-0F48-4A72-84AD-8FDD1F159BB0} = {6E9D97F0-4243-452E-B832-1A855B8118EB}
+		{48A2E149-0DAC-41B4-BB54-DFBCCD6D42B3} = {6E9D97F0-4243-452E-B832-1A855B8118EB}
+		{8650195A-7904-4EBC-9D81-B392A7E9B9B3} = {6E9D97F0-4243-452E-B832-1A855B8118EB}
+		{3A98B35C-DEA8-489C-9203-263FFB6B065D} = {ADBF5F67-B480-4A93-9D50-C81856FC61A9}
+		{72E16572-FC1F-4A9E-BC96-035417239298} = {ADBF5F67-B480-4A93-9D50-C81856FC61A9}
+		{24233CD5-A5DF-484B-A482-B79CB7A0D9CB} = {ADBF5F67-B480-4A93-9D50-C81856FC61A9}
+		{C9992B7C-313E-4C9F-A954-640D01EDFB58} = {ADBF5F67-B480-4A93-9D50-C81856FC61A9}
+		{D0B4CFAC-A368-4742-9863-68776CFA9938} = {ADBF5F67-B480-4A93-9D50-C81856FC61A9}
+		{901A8E5C-C4C6-4C3C-8E18-068D75119F5D} = {ADBF5F67-B480-4A93-9D50-C81856FC61A9}
+		{6CD185D1-08E0-4729-A999-2D5B57BA8193} = {C4C64188-4FAE-4CC3-A9E6-D9D4AF7429B6}
+		{5D6ECBCD-BE14-4DCB-BAEC-57089748B164} = {C4C64188-4FAE-4CC3-A9E6-D9D4AF7429B6}
+		{5AA48F9A-455D-4CD8-A605-A3AC38283E60} = {C4C64188-4FAE-4CC3-A9E6-D9D4AF7429B6}
+		{87537C92-B2C7-4E46-A6FB-02B73215C100} = {FD5F443E-CBEE-443E-821D-C47C86E09534}
+		{15B3E0D2-6217-493A-A690-158C497F5318} = {4FF1FBF3-F552-4D3D-AD97-E29385069206}
+		{E62B0633-1767-44A0-9479-C8E9D19DA4B8} = {01501C44-C95B-45B7-A898-76B4A7AC4EE8}
+	EndGlobalSection
+EndGlobal