:78 Function create_function() is deprecated [8192]

Merge branch 'master' of https://github.com/DetectiveSquirrel/Pokemon-Go-Rocket-API

Edwin [2016-08-03 21:32:32]
Merge branch 'master' of https://github.com/DetectiveSquirrel/Pokemon-Go-Rocket-API
Filename
MainPokeUi.png
MainSettings2.png
MainWindow.png
Pokemon Go Rocket API.sln
PokemonGo/RocketAPI/Client.cs
PokemonGo/RocketAPI/Console/App.config
PokemonGo/RocketAPI/Console/PokemonGo.RocketAPI.Console.csproj
PokemonGo/RocketAPI/Console/Program.cs
PokemonGo/RocketAPI/Console/Properties/AssemblyInfo.cs
PokemonGo/RocketAPI/Console/Settings.cs
PokemonGo/RocketAPI/Console/packages.config
PokemonGo/RocketAPI/Exceptions/LoginFailedException.cs
PokemonGo/RocketAPI/Extensions/HttpClientExtensions.cs
PokemonGo/RocketAPI/Extensions/LatLongExtensions.cs
PokemonGo/RocketAPI/GeneratedCode/Payloads.cs
PokemonGo/RocketAPI/Helpers/JsonHelper.cs
PokemonGo/RocketAPI/ILatLong.cs
PokemonGo/RocketAPI/ISettings.cs
PokemonGo/RocketAPI/Login/GoogleLogin.cs
PokemonGo/RocketAPI/Login/ILoginType.cs
PokemonGo/RocketAPI/Login/PtcLogin.cs
PokemonGo/RocketAPI/PokemonGo.RocketAPI.csproj
PokemonGo/RocketAPI/ProtoAdditions.cs
PokemonGo/RocketAPI/Window/App.config
PokemonGo/RocketAPI/Window/CueTextBox.cs
PokemonGo/RocketAPI/Window/LocationManager.cs
PokemonGo/RocketAPI/Window/MainForm.Designer.cs
PokemonGo/RocketAPI/Window/MainForm.cs
PokemonGo/RocketAPI/Window/MainForm.resx
PokemonGo/RocketAPI/Window/MapForm.Designer.cs
PokemonGo/RocketAPI/Window/MapForm.cs
PokemonGo/RocketAPI/Window/MapForm.resx
PokemonGo/RocketAPI/Window/PokeUi.Designer.cs
PokemonGo/RocketAPI/Window/PokeUi.cs
PokemonGo/RocketAPI/Window/PokemonForm.cs
PokemonGo/RocketAPI/Window/PokemonGo.RocketAPI.Window.csproj
PokemonGo/RocketAPI/Window/Properties/AssemblyInfo.cs
PokemonGo/RocketAPI/Window/Properties/Resources.Designer.cs
PokemonGo/RocketAPI/Window/Properties/Resources.resx
PokemonGo/RocketAPI/Window/RouteOptimizer.cs
PokemonGo/RocketAPI/Window/S2GMapDrawer.cs
PokemonGo/RocketAPI/Window/Settings.cs
PokemonGo/RocketAPI/Window/SettingsForm.Designer.cs
PokemonGo/RocketAPI/Window/SettingsForm.cs
PokemonGo/RocketAPI/Window/img/Pokemon_1.png
PokemonGo/RocketAPI/Window/img/Pokemon_10.png
PokemonGo/RocketAPI/Window/img/Pokemon_100.png
PokemonGo/RocketAPI/Window/img/Pokemon_101.png
PokemonGo/RocketAPI/Window/img/Pokemon_102.png
PokemonGo/RocketAPI/Window/img/Pokemon_103.png
PokemonGo/RocketAPI/Window/img/Pokemon_104.png
PokemonGo/RocketAPI/Window/img/Pokemon_105.png
PokemonGo/RocketAPI/Window/img/Pokemon_106.png
PokemonGo/RocketAPI/Window/img/Pokemon_107.png
PokemonGo/RocketAPI/Window/img/Pokemon_108.png
PokemonGo/RocketAPI/Window/img/Pokemon_109.png
PokemonGo/RocketAPI/Window/img/Pokemon_11.png
PokemonGo/RocketAPI/Window/img/Pokemon_110.png
PokemonGo/RocketAPI/Window/img/Pokemon_111.png
PokemonGo/RocketAPI/Window/img/Pokemon_112.png
PokemonGo/RocketAPI/Window/img/Pokemon_113.png
PokemonGo/RocketAPI/Window/img/Pokemon_114.png
PokemonGo/RocketAPI/Window/img/Pokemon_115.png
PokemonGo/RocketAPI/Window/img/Pokemon_116.png
PokemonGo/RocketAPI/Window/img/Pokemon_117.png
PokemonGo/RocketAPI/Window/img/Pokemon_118.png
PokemonGo/RocketAPI/Window/img/Pokemon_119.png
PokemonGo/RocketAPI/Window/img/Pokemon_12.png
PokemonGo/RocketAPI/Window/img/Pokemon_120.png
PokemonGo/RocketAPI/Window/img/Pokemon_121.png
PokemonGo/RocketAPI/Window/img/Pokemon_122.png
PokemonGo/RocketAPI/Window/img/Pokemon_123.png
PokemonGo/RocketAPI/Window/img/Pokemon_124.png
PokemonGo/RocketAPI/Window/img/Pokemon_125.png
PokemonGo/RocketAPI/Window/img/Pokemon_126.png
PokemonGo/RocketAPI/Window/img/Pokemon_127.png
PokemonGo/RocketAPI/Window/img/Pokemon_128.png
PokemonGo/RocketAPI/Window/img/Pokemon_129.png
PokemonGo/RocketAPI/Window/img/Pokemon_13.png
PokemonGo/RocketAPI/Window/img/Pokemon_130.png
PokemonGo/RocketAPI/Window/img/Pokemon_131.png
PokemonGo/RocketAPI/Window/img/Pokemon_132.png
PokemonGo/RocketAPI/Window/img/Pokemon_133.png
PokemonGo/RocketAPI/Window/img/Pokemon_134.png
PokemonGo/RocketAPI/Window/img/Pokemon_135.png
PokemonGo/RocketAPI/Window/img/Pokemon_136.png
PokemonGo/RocketAPI/Window/img/Pokemon_137.png
PokemonGo/RocketAPI/Window/img/Pokemon_138.png
PokemonGo/RocketAPI/Window/img/Pokemon_139.png
PokemonGo/RocketAPI/Window/img/Pokemon_14.png
PokemonGo/RocketAPI/Window/img/Pokemon_140.png
PokemonGo/RocketAPI/Window/img/Pokemon_141.png
PokemonGo/RocketAPI/Window/img/Pokemon_142.png
PokemonGo/RocketAPI/Window/img/Pokemon_143.png
PokemonGo/RocketAPI/Window/img/Pokemon_144.png
PokemonGo/RocketAPI/Window/img/Pokemon_145.png
PokemonGo/RocketAPI/Window/img/Pokemon_146.png
PokemonGo/RocketAPI/Window/img/Pokemon_147.png
PokemonGo/RocketAPI/Window/img/Pokemon_148.png
PokemonGo/RocketAPI/Window/img/Pokemon_149.png
PokemonGo/RocketAPI/Window/img/Pokemon_15.png
PokemonGo/RocketAPI/Window/img/Pokemon_150.png
PokemonGo/RocketAPI/Window/img/Pokemon_151.png
PokemonGo/RocketAPI/Window/img/Pokemon_16.png
PokemonGo/RocketAPI/Window/img/Pokemon_17.png
PokemonGo/RocketAPI/Window/img/Pokemon_18.png
PokemonGo/RocketAPI/Window/img/Pokemon_19.png
PokemonGo/RocketAPI/Window/img/Pokemon_2.png
PokemonGo/RocketAPI/Window/img/Pokemon_20.png
PokemonGo/RocketAPI/Window/img/Pokemon_21.png
PokemonGo/RocketAPI/Window/img/Pokemon_22.png
PokemonGo/RocketAPI/Window/img/Pokemon_23.png
PokemonGo/RocketAPI/Window/img/Pokemon_24.png
PokemonGo/RocketAPI/Window/img/Pokemon_25.png
PokemonGo/RocketAPI/Window/img/Pokemon_26.png
PokemonGo/RocketAPI/Window/img/Pokemon_27.png
PokemonGo/RocketAPI/Window/img/Pokemon_28.png
PokemonGo/RocketAPI/Window/img/Pokemon_29.png
PokemonGo/RocketAPI/Window/img/Pokemon_3.png
PokemonGo/RocketAPI/Window/img/Pokemon_30.png
PokemonGo/RocketAPI/Window/img/Pokemon_31.png
PokemonGo/RocketAPI/Window/img/Pokemon_32.png
PokemonGo/RocketAPI/Window/img/Pokemon_33.png
PokemonGo/RocketAPI/Window/img/Pokemon_34.png
PokemonGo/RocketAPI/Window/img/Pokemon_35.png
PokemonGo/RocketAPI/Window/img/Pokemon_36.png
PokemonGo/RocketAPI/Window/img/Pokemon_37.png
PokemonGo/RocketAPI/Window/img/Pokemon_38.png
PokemonGo/RocketAPI/Window/img/Pokemon_39.png
PokemonGo/RocketAPI/Window/img/Pokemon_4.png
PokemonGo/RocketAPI/Window/img/Pokemon_40.png
PokemonGo/RocketAPI/Window/img/Pokemon_41.png
PokemonGo/RocketAPI/Window/img/Pokemon_42.png
PokemonGo/RocketAPI/Window/img/Pokemon_43.png
PokemonGo/RocketAPI/Window/img/Pokemon_44.png
PokemonGo/RocketAPI/Window/img/Pokemon_45.png
PokemonGo/RocketAPI/Window/img/Pokemon_46.png
PokemonGo/RocketAPI/Window/img/Pokemon_47.png
PokemonGo/RocketAPI/Window/img/Pokemon_48.png
PokemonGo/RocketAPI/Window/img/Pokemon_49.png
PokemonGo/RocketAPI/Window/img/Pokemon_5.png
PokemonGo/RocketAPI/Window/img/Pokemon_50.png
PokemonGo/RocketAPI/Window/img/Pokemon_51.png
PokemonGo/RocketAPI/Window/img/Pokemon_52.png
PokemonGo/RocketAPI/Window/img/Pokemon_53.png
PokemonGo/RocketAPI/Window/img/Pokemon_54.png
PokemonGo/RocketAPI/Window/img/Pokemon_55.png
PokemonGo/RocketAPI/Window/img/Pokemon_56.png
PokemonGo/RocketAPI/Window/img/Pokemon_57.png
PokemonGo/RocketAPI/Window/img/Pokemon_58.png
PokemonGo/RocketAPI/Window/img/Pokemon_59.png
PokemonGo/RocketAPI/Window/img/Pokemon_6.png
PokemonGo/RocketAPI/Window/img/Pokemon_60.png
PokemonGo/RocketAPI/Window/img/Pokemon_61.png
PokemonGo/RocketAPI/Window/img/Pokemon_62.png
PokemonGo/RocketAPI/Window/img/Pokemon_63.png
PokemonGo/RocketAPI/Window/img/Pokemon_64.png
PokemonGo/RocketAPI/Window/img/Pokemon_65.png
PokemonGo/RocketAPI/Window/img/Pokemon_66.png
PokemonGo/RocketAPI/Window/img/Pokemon_67.png
PokemonGo/RocketAPI/Window/img/Pokemon_68.png
PokemonGo/RocketAPI/Window/img/Pokemon_69.png
PokemonGo/RocketAPI/Window/img/Pokemon_7.png
PokemonGo/RocketAPI/Window/img/Pokemon_70.png
PokemonGo/RocketAPI/Window/img/Pokemon_71.png
PokemonGo/RocketAPI/Window/img/Pokemon_72.png
PokemonGo/RocketAPI/Window/img/Pokemon_73.png
PokemonGo/RocketAPI/Window/img/Pokemon_74.png
PokemonGo/RocketAPI/Window/img/Pokemon_75.png
PokemonGo/RocketAPI/Window/img/Pokemon_76.png
PokemonGo/RocketAPI/Window/img/Pokemon_77.png
PokemonGo/RocketAPI/Window/img/Pokemon_78.png
PokemonGo/RocketAPI/Window/img/Pokemon_79.png
PokemonGo/RocketAPI/Window/img/Pokemon_8.png
PokemonGo/RocketAPI/Window/img/Pokemon_80.png
PokemonGo/RocketAPI/Window/img/Pokemon_81.png
PokemonGo/RocketAPI/Window/img/Pokemon_82.png
PokemonGo/RocketAPI/Window/img/Pokemon_83.png
PokemonGo/RocketAPI/Window/img/Pokemon_84.png
PokemonGo/RocketAPI/Window/img/Pokemon_85.png
PokemonGo/RocketAPI/Window/img/Pokemon_86.png
PokemonGo/RocketAPI/Window/img/Pokemon_87.png
PokemonGo/RocketAPI/Window/img/Pokemon_88.png
PokemonGo/RocketAPI/Window/img/Pokemon_89.png
PokemonGo/RocketAPI/Window/img/Pokemon_9.png
PokemonGo/RocketAPI/Window/img/Pokemon_90.png
PokemonGo/RocketAPI/Window/img/Pokemon_91.png
PokemonGo/RocketAPI/Window/img/Pokemon_92.png
PokemonGo/RocketAPI/Window/img/Pokemon_93.png
PokemonGo/RocketAPI/Window/img/Pokemon_94.png
PokemonGo/RocketAPI/Window/img/Pokemon_95.png
PokemonGo/RocketAPI/Window/img/Pokemon_96.png
PokemonGo/RocketAPI/Window/img/Pokemon_97.png
PokemonGo/RocketAPI/Window/img/Pokemon_98.png
PokemonGo/RocketAPI/Window/img/Pokemon_99.png
PokemonGo/RocketAPI/Window/packages.config
PokemonGo/RocketAPI/packages.config
README.md
screenshot.png
diff --git a/MainPokeUi.png b/MainPokeUi.png
deleted file mode 100644
index 1756bc3..0000000
Binary files a/MainPokeUi.png and /dev/null differ
diff --git a/MainSettings2.png b/MainSettings2.png
index 2ab0eb8..f6df2f4 100644
Binary files a/MainSettings2.png and b/MainSettings2.png differ
diff --git a/MainWindow.png b/MainWindow.png
index f17bff4..7dd8a00 100644
Binary files a/MainWindow.png and b/MainWindow.png differ
diff --git a/Pokemon Go Rocket API.sln b/Pokemon Go Rocket API.sln
index 7e41e44..13123b8 100644
--- a/Pokemon Go Rocket API.sln
+++ b/Pokemon Go Rocket API.sln
@@ -5,8 +5,6 @@ VisualStudioVersion = 14.0.25420.1
 MinimumVisualStudioVersion = 10.0.40219.1
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PokemonGo.RocketAPI", "PokemonGo\RocketAPI\PokemonGo.RocketAPI.csproj", "{05D2DA44-1B8E-4CF7-94ED-4D52451CD095}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PokemonGo.RocketAPI.Console", "PokemonGo\RocketAPI\Console\PokemonGo.RocketAPI.Console.csproj", "{1FEA147E-F704-497B-A538-00B053B5F672}"
-EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PokemonGo.RocketAPI.Window", "PokemonGo\RocketAPI\Window\PokemonGo.RocketAPI.Window.csproj", "{C85B9D78-9CA3-4830-84CD-6B69090B987F}"
 EndProject
 Global
@@ -19,10 +17,6 @@ Global
 		{05D2DA44-1B8E-4CF7-94ED-4D52451CD095}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{05D2DA44-1B8E-4CF7-94ED-4D52451CD095}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{05D2DA44-1B8E-4CF7-94ED-4D52451CD095}.Release|Any CPU.Build.0 = Release|Any CPU
-		{1FEA147E-F704-497B-A538-00B053B5F672}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{1FEA147E-F704-497B-A538-00B053B5F672}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{1FEA147E-F704-497B-A538-00B053B5F672}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{1FEA147E-F704-497B-A538-00B053B5F672}.Release|Any CPU.Build.0 = Release|Any CPU
 		{C85B9D78-9CA3-4830-84CD-6B69090B987F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{C85B9D78-9CA3-4830-84CD-6B69090B987F}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{C85B9D78-9CA3-4830-84CD-6B69090B987F}.Release|Any CPU.ActiveCfg = Release|Any CPU
diff --git a/PokemonGo/RocketAPI/Client.cs b/PokemonGo/RocketAPI/Client.cs
index c3d5094..b045725 100644
--- a/PokemonGo/RocketAPI/Client.cs
+++ b/PokemonGo/RocketAPI/Client.cs
@@ -20,6 +20,7 @@ using System.Threading;
 using PokemonGo.RocketAPI.Exceptions;
 using System.Text;
 using System.IO;
+using Newtonsoft.Json;

 #endregion

@@ -31,13 +32,17 @@ namespace PokemonGo.RocketAPI
         private ISettings _settings;
         private string _accessToken;
         private string _apiUrl;
-        private AuthType _authType = AuthType.Google;

         private double _currentLat;
         private double _currentLng;
         private Request.Types.UnknownAuth _unknownAuth;
         public static string AccessToken { get; set; } = string.Empty;

+        private readonly ILoginType login;
+
+        public delegate void ConsoleWriteDelegate(ConsoleColor color, string message);
+        public static event ConsoleWriteDelegate OnConsoleWrite;
+
         public Client(ISettings settings)
         {
             _settings = settings;
@@ -57,6 +62,20 @@ namespace PokemonGo.RocketAPI
             _httpClient.DefaultRequestHeaders.TryAddWithoutValidation("Accept", "*/*");
             _httpClient.DefaultRequestHeaders.TryAddWithoutValidation("Content-Type",
                 "application/x-www-form-urlencoded");
+
+            login = CreateLoginType(settings);
+        }
+
+        static ILoginType CreateLoginType(ISettings settings)
+        {
+            switch (settings.AuthType)
+            {
+                case AuthType.Google:
+                    return new GoogleLogin(settings.Email, settings.Password);
+                case AuthType.Ptc:
+                    return new PtcLogin(settings.PtcUsername, settings.PtcPassword);
+            }
+            throw new ArgumentOutOfRangeException(nameof(settings.AuthType), "unknown auth type");
         }

         public async Task<CatchPokemonResponse> CatchPokemon(ulong encounterId, string spawnPointGuid, double pokemonLat,
@@ -85,39 +104,27 @@ namespace PokemonGo.RocketAPI
                         catchPokemonRequest);
         }

-        public async Task DoGoogleLogin()
+        public async Task Login()
         {
-            _authType = AuthType.Google;
-            GoogleLogin.TokenResponseModel tokenResponse = null;
-
-            if (string.IsNullOrEmpty(_settings.GoogleRefreshToken) && string.IsNullOrEmpty(AccessToken))
-            {
-                var deviceCode = await GoogleLogin.GetDeviceCode();
-                tokenResponse = await GoogleLogin.GetAccessToken(deviceCode);
-                _accessToken = tokenResponse.id_token;
-                ColoredConsoleWrite(ConsoleColor.White, $"Put RefreshToken in settings for direct login: {tokenResponse.refresh_token}");
-                _settings.GoogleRefreshToken = tokenResponse.refresh_token;
-                AccessToken = tokenResponse.refresh_token;
-            }
-            else
+            string errorMessage;
+            do
             {
-                if (!string.IsNullOrEmpty(_settings.GoogleRefreshToken))
-                    tokenResponse = await GoogleLogin.GetAccessToken(_settings.GoogleRefreshToken);
-                else
-                    tokenResponse = await GoogleLogin.GetAccessToken(AccessToken);
-                _accessToken = tokenResponse.id_token;
-            }
-        }
+                errorMessage = null;
+
+                try
+                {
+                    _accessToken = await login.GetAccessToken().ConfigureAwait(false);
+                }
+                catch (LoginFailedException) { errorMessage = "Login failed - wrong username or password? - Restarting"; }
+                catch (PtcOfflineException) { errorMessage = "PTC login server is down - Restarting"; }
+                catch (JsonReaderException) { errorMessage = "Json Reader Exception - Server down? - Restarting"; }
+                catch (Exception ex) { errorMessage = ex.ToString() + "Exception - Please report - Restarting"; }
+
+                if (errorMessage != null)
+                    ColoredConsoleWrite(ConsoleColor.White, errorMessage);
+
+            } while (errorMessage != null);

-        public async Task DoPtcLogin(string username, string password)
-        {
-            try
-            {
-                _accessToken = await PtcLogin.GetAccessToken(username, password);
-                _authType = AuthType.Ptc;
-            }
-            catch (Newtonsoft.Json.JsonReaderException) { ColoredConsoleWrite(ConsoleColor.White, "Json Reader Exception - Server down? - Restarting"); DoPtcLogin(username, password); }
-            catch (Exception ex) { ColoredConsoleWrite(ConsoleColor.White, ex.ToString() + "Exception - Please report - Restarting"); DoPtcLogin(username, password); }
         }

         public async Task<EncounterResponse> EncounterPokemon(ulong encounterId, string spawnPointGuid)
@@ -161,26 +168,26 @@ namespace PokemonGo.RocketAPI
         }


-		public async Task<EvolvePokemonOut> PowerUp(ulong pokemonId)
-		{
-			var customRequest = new EvolvePokemon
-			{
-				PokemonId = pokemonId
-			};
-
-			var releasePokemonRequest = RequestBuilder.GetRequest(_unknownAuth, _currentLat, _currentLng, 30,
-				new Request.Types.Requests
-				{
-					Type = (int)RequestType.UPGRADE_POKEMON,
-					Message = customRequest.ToByteString()
-				});
-			return
-				await
-					_httpClient.PostProtoPayload<Request, EvolvePokemonOut>($"https://{_apiUrl}/rpc",
-						releasePokemonRequest);
-		}
-
-		private async Task<MiscEnums.Item> GetBestBall(int? pokemonCP)
+        public async Task<EvolvePokemonOut> PowerUp(ulong pokemonId)
+        {
+            var customRequest = new EvolvePokemon
+            {
+                PokemonId = pokemonId
+            };
+
+            var releasePokemonRequest = RequestBuilder.GetRequest(_unknownAuth, _currentLat, _currentLng, 30,
+                new Request.Types.Requests
+                {
+                    Type = (int)RequestType.UPGRADE_POKEMON,
+                    Message = customRequest.ToByteString()
+                });
+            return
+                await
+                    _httpClient.PostProtoPayload<Request, EvolvePokemonOut>($"https://{_apiUrl}/rpc",
+                        releasePokemonRequest);
+        }
+
+        private async Task<MiscEnums.Item> GetBestBall(int? pokemonCP)
         {
             var inventory = await GetInventory();

@@ -250,9 +257,12 @@ namespace PokemonGo.RocketAPI
         {
             ConsoleColor originalColor = System.Console.ForegroundColor;
             System.Console.ForegroundColor = color;
-            System.Console.WriteLine("[" + DateTime.Now.ToString("HH:mm:ss tt") + "] " + text);
-            File.AppendAllText(AppDomain.CurrentDomain.BaseDirectory + @"\Logs.txt", "[" + DateTime.Now.ToString("HH:mm:ss tt") + "] " + text + "\n");
+            System.Console.WriteLine(text);
             System.Console.ForegroundColor = originalColor;
+            if (OnConsoleWrite != null)
+            {
+                OnConsoleWrite(color, text);
+            }
         }

         public async Task<FortDetailsResponse> GetFort(string fortId, double fortLat, double fortLng)
@@ -328,7 +338,7 @@ namespace PokemonGo.RocketAPI

         public async Task<GetPlayerResponse> GetProfile()
         {
-            var profileRequest = RequestBuilder.GetInitialRequest(_accessToken, _authType, _currentLat, _currentLng, 10,
+            var profileRequest = RequestBuilder.GetInitialRequest(_accessToken, _settings.AuthType, _currentLat, _currentLng, 10,
                 new Request.Types.Requests { Type = (int)RequestType.GET_PLAYER });
             return
                 await _httpClient.PostProtoPayload<Request, GetPlayerResponse>($"https://{_apiUrl}/rpc", profileRequest);
@@ -379,13 +389,13 @@ namespace PokemonGo.RocketAPI
         {
             _currentLat = lat;
             _currentLng = lng;
-//            _settings.DefaultLatitude = lat;
-//            _settings.DefaultLongitude = lng;
+            //            _settings.DefaultLatitude = lat;
+            //            _settings.DefaultLongitude = lng;
         }

         public async Task SetServer()
         {
-            var serverRequest = RequestBuilder.GetInitialRequest(_accessToken, _authType, _currentLat, _currentLng, 10,
+            var serverRequest = RequestBuilder.GetInitialRequest(_accessToken, _settings.AuthType, _currentLat, _currentLng, 10,
                 RequestType.GET_PLAYER, RequestType.GET_HATCHED_OBJECTS, RequestType.GET_INVENTORY,
                 RequestType.CHECK_AWARDED_BADGES, RequestType.DOWNLOAD_SETTINGS);
             var serverResponse = await _httpClient.PostProto(Resources.RpcUrl, serverRequest);
@@ -418,14 +428,20 @@ namespace PokemonGo.RocketAPI
                         releasePokemonRequest);
         }

-        public double getCurrentLat()
+        public double CurrentLatitude
         {
-            return this._currentLat;
+            get
+            {
+                return this._currentLat;
+            }
         }

-        public double getCurrentLong()
+        public double CurrentLongitude
         {
-            return this._currentLng;
+            get
+            {
+                return this._currentLng;
+            }
         }

         public async Task<PlayerUpdateResponse> UpdatePlayerLocation(double lat, double lng)
@@ -532,6 +548,10 @@ namespace PokemonGo.RocketAPI
                 ColoredConsoleWrite(ConsoleColor.Green, $"Using a Razz Berry, we have {RazzBerry.Count} left");
                 await Task.Delay(2000);
             }
+            else
+            {
+                ColoredConsoleWrite(ConsoleColor.Red, $"You don't have any Razz Berry to use.");
+            }
         }

         public async Task<UseItemRequest> UseItemXpBoost(ItemId itemId)
diff --git a/PokemonGo/RocketAPI/Console/App.config b/PokemonGo/RocketAPI/Console/App.config
deleted file mode 100644
index 98a593f..0000000
--- a/PokemonGo/RocketAPI/Console/App.config
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<configuration>
-  <startup>
-    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
-  </startup>
-  <runtime>
-    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
-      <dependentAssembly>
-        <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-9.0.0.0" newVersion="9.0.0.0" />
-      </dependentAssembly>
-    </assemblyBinding>
-  </runtime>
-  <appSettings>
-    <add key="AuthType" value="Google" /> <!--Google/Ptc-->
-    <add key="PtcUsername" value="username" /> <!--Username-->
-    <add key="PtcPassword" value="pw" /> <!--Password-->
-    <add key="GoogleRefreshToken" value="" />
-    <add key="DefaultLatitude" value="45.030152" /> <!--Default Viaduct Harbour, Auckland, New Zealand-->
-    <add key="DefaultLongitude" value="-93.31931" /> <!--Default Viaduct Harbour, Auckland, New Zealand-->
-    <add key="LevelOutput" value="levelup" /> <!--2 Modes: "time": Every XXX seconds and "levelup" every levelup-->
-    <add key="LevelTimeInterval" value="1" /> <!--Pick 1 if levelup and time in seconds if "time"-->
-    <add key="Recycler" value="true" /> <!--Recycler master switch-->
-    <add key="RecycleItemsInterval" value="60" /> <!--Recycle Interval in seconds-->
-    <add key="Language" value="english" /> <!--Languages english/german-->
-    <add key="RazzBerryMode" value="probability" /> <!--When to use RazzBerry cp/probability-->
-    <add key="RazzBerrySetting" value="0.4" /> <!--Cp Mode: Use RazzBerry when Pokemon is over this value; pobability Mode: Use Razzberry when % between 0 and 1 of catching is under this value-->
-    <add key="TransferType" value="duplicate" /> <!--none/cp/iv/leaveStrongest/duplicate/all Whitelists/blackslists for each type is in Program.cs-->
-    <add key="TransferCPThreshold" value="0" /> <!--transfer pokemon with CP less than this value if cp transfer type is selected. Whitelist in Program.cs-->
-    <add key="TransferIVThreshold" value="80" /> <!--transfer pokemon with IV less than this value if iv transfer type is selected. Whitelist in Program.cs-->
-    <add key="EvolveAllGivenPokemons" value="true" />
-    <add key="ClientSettingsProvider.ServiceUri" value="" />
-  </appSettings>
-  <system.web>
-    <membership defaultProvider="ClientAuthenticationMembershipProvider">
-      <providers>
-        <add name="ClientAuthenticationMembershipProvider" type="System.Web.ClientServices.Providers.ClientFormsAuthenticationMembershipProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" />
-      </providers>
-    </membership>
-    <roleManager defaultProvider="ClientRoleProvider" enabled="true">
-      <providers>
-        <add name="ClientRoleProvider" type="System.Web.ClientServices.Providers.ClientRoleProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" cacheTimeout="86400" />
-      </providers>
-    </roleManager>
-  </system.web>
-</configuration>
diff --git a/PokemonGo/RocketAPI/Console/PokemonGo.RocketAPI.Console.csproj b/PokemonGo/RocketAPI/Console/PokemonGo.RocketAPI.Console.csproj
deleted file mode 100644
index 615f12d..0000000
--- a/PokemonGo/RocketAPI/Console/PokemonGo.RocketAPI.Console.csproj
+++ /dev/null
@@ -1,101 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ProjectGuid>{1FEA147E-F704-497B-A538-00B053B5F672}</ProjectGuid>
-    <OutputType>Exe</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>PokemonGo.RocketAPI.Console</RootNamespace>
-    <AssemblyName>PokemonGo.RocketAPI.Console</AssemblyName>
-    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
-    <FileAlignment>512</FileAlignment>
-    <PublishUrl>publish\</PublishUrl>
-    <Install>true</Install>
-    <InstallFrom>Disk</InstallFrom>
-    <UpdateEnabled>false</UpdateEnabled>
-    <UpdateMode>Foreground</UpdateMode>
-    <UpdateInterval>7</UpdateInterval>
-    <UpdateIntervalUnits>Days</UpdateIntervalUnits>
-    <UpdatePeriodically>false</UpdatePeriodically>
-    <UpdateRequired>false</UpdateRequired>
-    <MapFileExtensions>true</MapFileExtensions>
-    <ApplicationRevision>0</ApplicationRevision>
-    <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
-    <IsWebBootstrapper>false</IsWebBootstrapper>
-    <UseApplicationTrust>false</UseApplicationTrust>
-    <BootstrapperEnabled>true</BootstrapperEnabled>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-    <PlatformTarget>AnyCPU</PlatformTarget>
-    <DebugSymbols>true</DebugSymbols>
-    <DebugType>full</DebugType>
-    <Optimize>false</Optimize>
-    <OutputPath>bin\Debug\</OutputPath>
-    <DefineConstants>DEBUG;TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-    <UseVSHostingProcess>false</UseVSHostingProcess>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-    <PlatformTarget>AnyCPU</PlatformTarget>
-    <DebugType>pdbonly</DebugType>
-    <Optimize>true</Optimize>
-    <OutputPath>bin\Release\</OutputPath>
-    <DefineConstants>TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <ItemGroup>
-    <Reference Include="Google.Protobuf, Version=3.0.0.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604, processorArchitecture=MSIL">
-      <HintPath>..\..\..\packages\Google.Protobuf.3.0.0-beta3\lib\dotnet\Google.Protobuf.dll</HintPath>
-      <Private>True</Private>
-    </Reference>
-    <Reference Include="System" />
-    <Reference Include="System.Configuration" />
-    <Reference Include="System.Core" />
-    <Reference Include="System.Web.Extensions" />
-    <Reference Include="System.Xml.Linq" />
-    <Reference Include="System.Data.DataSetExtensions" />
-    <Reference Include="Microsoft.CSharp" />
-    <Reference Include="System.Data" />
-    <Reference Include="System.Net.Http" />
-    <Reference Include="System.Xml" />
-  </ItemGroup>
-  <ItemGroup>
-    <Compile Include="Program.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
-    <Compile Include="Settings.cs" />
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="App.config" />
-    <None Include="packages.config" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\PokemonGo.RocketAPI.csproj">
-      <Project>{05D2DA44-1B8E-4CF7-94ED-4D52451CD095}</Project>
-      <Name>PokemonGo.RocketAPI</Name>
-    </ProjectReference>
-  </ItemGroup>
-  <ItemGroup>
-    <BootstrapperPackage Include=".NETFramework,Version=v4.5">
-      <Visible>False</Visible>
-      <ProductName>Microsoft .NET Framework 4.5 %28x86 and x64%29</ProductName>
-      <Install>true</Install>
-    </BootstrapperPackage>
-    <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
-      <Visible>False</Visible>
-      <ProductName>.NET Framework 3.5 SP1</ProductName>
-      <Install>false</Install>
-    </BootstrapperPackage>
-  </ItemGroup>
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-  <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
-       Other similar extension points exist, see Microsoft.Common.targets.
-  <Target Name="BeforeBuild">
-  </Target>
-  <Target Name="AfterBuild">
-  </Target>
-  -->
-</Project>
\ No newline at end of file
diff --git a/PokemonGo/RocketAPI/Console/Program.cs b/PokemonGo/RocketAPI/Console/Program.cs
deleted file mode 100644
index d7fc3e5..0000000
--- a/PokemonGo/RocketAPI/Console/Program.cs
+++ /dev/null
@@ -1,741 +0,0 @@
-#region
-
-using System;
-using System.Collections.Generic;
-using System.Diagnostics;
-using System.Linq;
-using System.Net;
-using System.Reflection;
-using System.Text.RegularExpressions;
-using System.Threading;
-using System.Threading.Tasks;
-using AllEnum;
-using System.Xml;
-using PokemonGo.RocketAPI.Enums;
-using PokemonGo.RocketAPI.Exceptions;
-using PokemonGo.RocketAPI.Extensions;
-using PokemonGo.RocketAPI.GeneratedCode;
-using System.Net.Http;
-using System.Text;
-using Google.Protobuf;
-using PokemonGo.RocketAPI.Helpers;
-using System.IO;
-
-
-#endregion
-
-namespace PokemonGo.RocketAPI.Console
-{
-    internal class Program
-    {
-        private static ISettings ClientSettings = new Settings();
-        private static int Currentlevel = -1;
-        private static int TotalExperience = 0;
-        private static int TotalPokemon = 0;
-        private static DateTime TimeStarted = DateTime.Now;
-        public static DateTime InitSessionDateTime = DateTime.Now;
-
-        public static double GetRuntime()
-        {
-            return ((DateTime.Now - TimeStarted).TotalSeconds) / 3600;
-        }
-
-        public static void CheckVersion()
-        {
-            try
-            {
-                var match =
-                    new Regex(
-                        @"\[assembly\: AssemblyVersion\(""(\d{1,})\.(\d{1,})\.(\d{1,})\.(\d{1,})""\)\]")
-                        .Match(DownloadServerVersion());
-
-                if (!match.Success) return;
-                var gitVersion =
-                    new Version(
-                        string.Format(
-                            "{0}.{1}.{2}.{3}",
-                            match.Groups[1],
-                            match.Groups[2],
-                            match.Groups[3],
-                            match.Groups[4]));
-                if (gitVersion <= Assembly.GetExecutingAssembly().GetName().Version)
-                {
-                    ColoredConsoleWrite(ConsoleColor.Green, "Awesome! You have already got the newest version! " + Assembly.GetExecutingAssembly().GetName().Version);
-                    return;
-                }
-
-                ColoredConsoleWrite(ConsoleColor.Red, "There is a new Version available: " + gitVersion);
-                ColoredConsoleWrite(ConsoleColor.Red, "You can find it at https://github.com/DetectiveSquirrel/Pokemon-Go-Rocket-API");
-            }
-            catch (Exception)
-            {
-                ColoredConsoleWrite(ConsoleColor.Red, "Unable to check for updates now...");
-            }
-        }
-
-        private static string DownloadServerVersion()
-        {
-            using (var wC = new WebClient())
-                return
-                    wC.DownloadString(
-                        "https://raw.githubusercontent.com/DetectiveSquirrel/Pokemon-Go-Rocket-API/master/PokemonGo/RocketAPI/Console/Properties/AssemblyInfo.cs");
-        }
-
-        public static void ColoredConsoleWrite(ConsoleColor color, string text)
-        {
-            ConsoleColor originalColor = System.Console.ForegroundColor;
-            System.Console.ForegroundColor = color;
-            System.Console.WriteLine("[" + DateTime.Now.ToString("HH:mm:ss tt") + "] " + text);
-            File.AppendAllText(AppDomain.CurrentDomain.BaseDirectory + @"\Logs.txt", "[" + DateTime.Now.ToString("HH:mm:ss tt") + "] " + text + "\n");
-            System.Console.ForegroundColor = originalColor;
-        }
-
-        private static async Task EvolveAllGivenPokemons(Client client, IEnumerable<PokemonData> pokemonToEvolve)
-        {
-            foreach (var pokemon in pokemonToEvolve)
-            {
-                /*
-                enum Holoholo.Rpc.Types.EvolvePokemonOutProto.Result {
-	                UNSET = 0;
-	                SUCCESS = 1;
-	                FAILED_POKEMON_MISSING = 2;
-	                FAILED_INSUFFICIENT_RESOURCES = 3;
-	                FAILED_POKEMON_CANNOT_EVOLVE = 4;
-	                FAILED_POKEMON_IS_DEPLOYED = 5;
-                }
-                }*/
-
-                var countOfEvolvedUnits = 0;
-                var xpCount = 0;
-
-                EvolvePokemonOut evolvePokemonOutProto;
-                do
-                {
-                    evolvePokemonOutProto = await client.EvolvePokemon(pokemon.Id);
-                    //todo: someone check whether this still works
-
-                    if (evolvePokemonOutProto.Result == 1)
-                    {
-                        ColoredConsoleWrite(ConsoleColor.Cyan,
-                            $"Evolved {pokemon.PokemonId} successfully for {evolvePokemonOutProto.ExpAwarded}xp");
-
-                        countOfEvolvedUnits++;
-                        xpCount += evolvePokemonOutProto.ExpAwarded;
-                    }
-                    else
-                    {
-                        var result = evolvePokemonOutProto.Result;
-                        /*
-                        ColoredConsoleWrite(ConsoleColor.White, $"Failed to evolve {pokemon.PokemonId}. " +
-                                                 $"EvolvePokemonOutProto.Result was {result}");
-
-                        ColoredConsoleWrite(ConsoleColor.White, $"Due to above error, stopping evolving {pokemon.PokemonId}");
-                        */
-                    }
-                } while (evolvePokemonOutProto.Result == 1);
-                if (countOfEvolvedUnits > 0)
-                    ColoredConsoleWrite(ConsoleColor.Cyan,
-                        $"Evolved {countOfEvolvedUnits} pieces of {pokemon.PokemonId} for {xpCount}xp");
-
-                await Task.Delay(3000);
-            }
-        }
-
-        private static async void Execute()
-        {
-            var client = new Client(ClientSettings);
-            try
-            {
-                switch (ClientSettings.AuthType)
-                {
-                    case AuthType.Ptc:
-                        await client.DoPtcLogin(ClientSettings.PtcUsername, ClientSettings.PtcPassword);
-                        break;
-                    case AuthType.Google:
-                        await client.DoGoogleLogin();
-                        break;
-                }
-
-                await client.SetServer();
-                var profile = await client.GetProfile();
-                var settings = await client.GetSettings();
-                var mapObjects = await client.GetMapObjects();
-                var inventory = await client.GetInventory();
-                var pokemons =
-                    inventory.InventoryDelta.InventoryItems.Select(i => i.InventoryItemData?.Pokemon)
-                        .Where(p => p != null && p?.PokemonId > 0);
-
-                ConsoleLevelTitle(profile.Profile.Username, client);
-
-                // Write the players ingame details
-                ColoredConsoleWrite(ConsoleColor.Yellow, "----------------------------");
-                if (ClientSettings.AuthType == AuthType.Ptc)
-                {
-                    ColoredConsoleWrite(ConsoleColor.Cyan, "Account: " + ClientSettings.PtcUsername);
-                    ColoredConsoleWrite(ConsoleColor.Cyan, "Password: " + ClientSettings.PtcPassword + "\n");
-                }
-                ColoredConsoleWrite(ConsoleColor.DarkGray, "Name: " + profile.Profile.Username);
-                ColoredConsoleWrite(ConsoleColor.DarkGray, "Team: " + profile.Profile.Team);
-                if (profile.Profile.Currency.ToArray()[0].Amount > 0) // If player has any pokecoins it will show how many they have.
-                    ColoredConsoleWrite(ConsoleColor.DarkGray, "Pokecoins: " + profile.Profile.Currency.ToArray()[0].Amount);
-                ColoredConsoleWrite(ConsoleColor.DarkGray, "Stardust: " + profile.Profile.Currency.ToArray()[1].Amount + "\n");
-                ColoredConsoleWrite(ConsoleColor.DarkGray, "Latitude: " + ClientSettings.DefaultLatitude);
-                ColoredConsoleWrite(ConsoleColor.DarkGray, "Longitude: " + ClientSettings.DefaultLongitude);
-                try
-                {
-                    ColoredConsoleWrite(ConsoleColor.DarkGray, "Area: " + CallAPI("place", ClientSettings.DefaultLatitude, ClientSettings.DefaultLongitude));
-                    ColoredConsoleWrite(ConsoleColor.DarkGray, "Country: " + CallAPI("country", ClientSettings.DefaultLatitude, ClientSettings.DefaultLongitude));
-                }
-                catch (Exception)
-                {
-                    ColoredConsoleWrite(ConsoleColor.DarkGray,  "Unable to get Country/Place");
-                }
-
-                ColoredConsoleWrite(ConsoleColor.Yellow, "----------------------------");
-
-                // I believe a switch is more efficient and easier to read.
-                switch (ClientSettings.TransferType)
-                {
-                    case "leaveStrongest":
-                        await TransferAllButStrongestUnwantedPokemon(client);
-                        break;
-                    case "all":
-                        await TransferAllGivenPokemons(client, pokemons);
-                        break;
-                    case "duplicate":
-                        await TransferDuplicatePokemon(client);
-                        break;
-                    case "cp":
-                        await TransferAllWeakPokemon(client, ClientSettings.TransferCPThreshold);
-                        break;
-                    case "iv":
-                        await TransferAllGivenPokemons(client, pokemons, ClientSettings.TransferIVThreshold);
-                        break;
-                    default:
-                        ColoredConsoleWrite(ConsoleColor.DarkGray, "Transfering pokemon disabled");
-                        break;
-                }
-
-                if (ClientSettings.EvolveAllGivenPokemons)
-                    await EvolveAllGivenPokemons(client, pokemons);
-                if (ClientSettings.Recycler)
-                    client.RecycleItems(client);
-
-                await Task.Delay(5000);
-                PrintLevel(client);
-                await ExecuteFarmingPokestopsAndPokemons(client);
-                ColoredConsoleWrite(ConsoleColor.Red, $"No nearby useful locations found. Please wait 10 seconds.");
-                await Task.Delay(10000);
-                CheckVersion();
-                Execute();
-            }
-            catch (TaskCanceledException) { ColoredConsoleWrite(ConsoleColor.Red, "Task Canceled Exception - Restarting"); Execute(); }
-            catch (UriFormatException) { ColoredConsoleWrite(ConsoleColor.Red, "System URI Format Exception - Restarting"); Execute(); }
-            catch (ArgumentOutOfRangeException) { ColoredConsoleWrite(ConsoleColor.Red, "ArgumentOutOfRangeException - Restarting"); Execute(); }
-            catch (ArgumentNullException) { ColoredConsoleWrite(ConsoleColor.Red, "Argument Null Refference - Restarting"); Execute(); }
-            catch (NullReferenceException) { ColoredConsoleWrite(ConsoleColor.Red, "Null Refference - Restarting"); Execute(); }
-            catch (Exception ex) { ColoredConsoleWrite(ConsoleColor.Red, ex.ToString()); Execute(); }
-        }
-
-        private static string CallAPI(string elem, double lat, double lon)
-        {
-            using (XmlReader reader = XmlReader.Create(@"http://api.geonames.org/findNearby?lat=" + lat + "&lng=" + lon + "&username=demo"))
-            {
-                while (reader.Read())
-                {
-                    if (reader.IsStartElement())
-                    {
-                        switch (elem)
-                        {
-                            case "country":
-                                if (reader.Name == "countryName")
-                                {
-                                    return reader.ReadString();
-                                }
-                                break;
-
-                            case "place":
-                                if (reader.Name == "toponymName")
-                                {
-                                    return reader.ReadString();
-                                }
-                                break;
-                            default:
-                                return "N/A";
-                                break;
-                        }
-                    }
-                }
-            }
-            return "Error";
-        }
-
-        private static async Task ExecuteCatchAllNearbyPokemons(Client client)
-        {
-            var mapObjects = await client.GetMapObjects();
-
-            var pokemons = mapObjects.MapCells.SelectMany(i => i.CatchablePokemons);
-
-            var inventory2 = await client.GetInventory();
-            var pokemons2 = inventory2.InventoryDelta.InventoryItems
-                .Select(i => i.InventoryItemData?.Pokemon)
-                .Where(p => p != null && p?.PokemonId > 0)
-                .ToArray();
-
-            foreach (var pokemon in pokemons)
-            {
-                var update = await client.UpdatePlayerLocation(pokemon.Latitude, pokemon.Longitude);
-                var encounterPokemonResponse = await client.EncounterPokemon(pokemon.EncounterId, pokemon.SpawnpointId);
-                var pokemonCP = encounterPokemonResponse?.WildPokemon?.PokemonData?.Cp;
-                var pokemonIV = Perfect(encounterPokemonResponse?.WildPokemon?.PokemonData);
-                CatchPokemonResponse caughtPokemonResponse;
-                do
-                {
-                    if (ClientSettings.RazzBerryMode == "cp")
-                        if (pokemonCP > ClientSettings.RazzBerrySetting)
-                            await client.UseRazzBerry(client, pokemon.EncounterId, pokemon.SpawnpointId);
-                    if (ClientSettings.RazzBerryMode == "probability")
-                        if (encounterPokemonResponse.CaptureProbability.CaptureProbability_.First() < ClientSettings.RazzBerrySetting)
-                            await client.UseRazzBerry(client, pokemon.EncounterId, pokemon.SpawnpointId);
-                    caughtPokemonResponse = await client.CatchPokemon(pokemon.EncounterId, pokemon.SpawnpointId, pokemon.Latitude, pokemon.Longitude, MiscEnums.Item.ITEM_POKE_BALL, pokemonCP); ; //note: reverted from settings because this should not be part of settings but part of logic
-                } while (caughtPokemonResponse.Status == CatchPokemonResponse.Types.CatchStatus.CatchMissed || caughtPokemonResponse.Status == CatchPokemonResponse.Types.CatchStatus.CatchEscape);
-
-                string pokemonName;
-                if (ClientSettings.Language == "german")
-                {
-                    string name_english = Convert.ToString(pokemon.PokemonId);
-                    var request = (HttpWebRequest)WebRequest.Create("http://boosting-service.de/pokemon/index.php?pokeName=" + name_english);
-                    var response = (HttpWebResponse)request.GetResponse();
-                    pokemonName = new StreamReader(response.GetResponseStream()).ReadToEnd();
-                }
-                else
-                    pokemonName = Convert.ToString(pokemon.PokemonId);
-
-                if (caughtPokemonResponse.Status == CatchPokemonResponse.Types.CatchStatus.CatchSuccess)
-                {
-                    ColoredConsoleWrite(ConsoleColor.Green, $"We caught a {pokemonName} with {pokemonCP} CP and {pokemonIV}% IV");
-                    foreach (int xp in caughtPokemonResponse.Scores.Xp)
-                        TotalExperience += xp;
-                    TotalPokemon += 1;
-                }
-                else
-                    ColoredConsoleWrite(ConsoleColor.Red, $"{pokemonName} with {pokemonCP} CP and {pokemonIV}% IV");
-
-                if (ClientSettings.TransferType == "leaveStrongest")
-                    await TransferAllButStrongestUnwantedPokemon(client);
-                else if (ClientSettings.TransferType == "all")
-                    await TransferAllGivenPokemons(client, pokemons2);
-                else if (ClientSettings.TransferType == "duplicate")
-                    await TransferDuplicatePokemon(client);
-                else if (ClientSettings.TransferType == "cp")
-                    await TransferAllWeakPokemon(client, ClientSettings.TransferCPThreshold);
-                else if (ClientSettings.TransferType == "iv")
-                    await TransferAllGivenPokemons(client, pokemons2, ClientSettings.TransferIVThreshold);
-
-                await Task.Delay(3000);
-            }
-        }
-
-        private static async Task ExecuteFarmingPokestopsAndPokemons(Client client)
-        {
-            var mapObjects = await client.GetMapObjects();
-
-            var pokeStops = mapObjects.MapCells.SelectMany(i => i.Forts).Where(i => i.Type == FortType.Checkpoint && i.CooldownCompleteTimestampMs < DateTime.UtcNow.ToUnixTime());
-
-            foreach (var pokeStop in pokeStops)
-            {
-                var update = await client.UpdatePlayerLocation(pokeStop.Latitude, pokeStop.Longitude);
-                var fortInfo = await client.GetFort(pokeStop.Id, pokeStop.Latitude, pokeStop.Longitude);
-                var fortSearch = await client.SearchFort(pokeStop.Id, pokeStop.Latitude, pokeStop.Longitude);
-
-                StringWriter PokeStopOutput = new StringWriter();
-                PokeStopOutput.Write($"");
-                if (fortInfo.Name != string.Empty)
-                    PokeStopOutput.Write("PokeStop: " + fortInfo.Name);
-                if (fortSearch.ExperienceAwarded != 0)
-                    PokeStopOutput.Write($", XP: {fortSearch.ExperienceAwarded}");
-                if (fortSearch.GemsAwarded != 0)
-                    PokeStopOutput.Write($", Gems: {fortSearch.GemsAwarded}");
-                if (fortSearch.PokemonDataEgg != null)
-                    PokeStopOutput.Write($", Eggs: {fortSearch.PokemonDataEgg}");
-                if (GetFriendlyItemsString(fortSearch.ItemsAwarded) != string.Empty)
-                    PokeStopOutput.Write($", Items: {GetFriendlyItemsString(fortSearch.ItemsAwarded)} ");
-                ColoredConsoleWrite(ConsoleColor.Cyan, PokeStopOutput.ToString());
-
-                if (fortSearch.ExperienceAwarded != 0)
-                    TotalExperience += (fortSearch.ExperienceAwarded);
-                await Task.Delay(15000);
-                await ExecuteCatchAllNearbyPokemons(client);
-            }
-        }
-
-        private static string GetFriendlyItemsString(IEnumerable<FortSearchResponse.Types.ItemAward> items)
-        {
-            var enumerable = items as IList<FortSearchResponse.Types.ItemAward> ?? items.ToList();
-
-            if (!enumerable.Any())
-                return string.Empty;
-
-            return enumerable.GroupBy(i => i.ItemId)
-                    .Select(kvp => new { ItemName = kvp.Key.ToString().Substring(4), Amount = kvp.Sum(x => x.ItemCount) })
-                    .Select(y => $"{y.Amount}x {y.ItemName}")
-                    .Aggregate((a, b) => $"{a}, {b}");
-        }
-
-        private static void Main(string[] args)
-        {
-            Task.Run(() =>
-            {
-                try
-                {
-                    //ColoredConsoleWrite(ConsoleColor.White, "Coded by Ferox - edited by NecronomiconCoding");
-                    CheckVersion();
-                    Execute();
-                }
-                catch (PtcOfflineException)
-                {
-                    ColoredConsoleWrite(ConsoleColor.Red, "PTC Servers are probably down OR your credentials are wrong. Try google");
-                }
-                catch (Exception ex)
-                {
-                    ColoredConsoleWrite(ConsoleColor.Red, $"Unhandled exception: {ex}");
-                }
-            });
-            System.Console.ReadLine();
-        }
-
-        private static async Task TransferAllButStrongestUnwantedPokemon(Client client)
-        {
-            //ColoredConsoleWrite(ConsoleColor.White, $"Firing up the meat grinder");
-
-            var unwantedPokemonTypes = new[]
-            {
-                PokemonId.Pidgey,
-                PokemonId.Rattata,
-                PokemonId.Weedle,
-                PokemonId.Zubat,
-                PokemonId.Caterpie,
-                PokemonId.Pidgeotto,
-                PokemonId.NidoranFemale,
-                PokemonId.Paras,
-                PokemonId.Venonat,
-                PokemonId.Psyduck,
-                PokemonId.Poliwag,
-                PokemonId.Slowpoke,
-                PokemonId.Drowzee,
-                PokemonId.Gastly,
-                PokemonId.Goldeen,
-                PokemonId.Staryu,
-                PokemonId.Magikarp,
-                PokemonId.Clefairy,
-                PokemonId.Eevee,
-                PokemonId.Tentacool,
-                PokemonId.Dratini,
-                PokemonId.Ekans,
-                PokemonId.Jynx,
-                PokemonId.Lickitung,
-                PokemonId.Spearow,
-                PokemonId.NidoranFemale,
-                PokemonId.NidoranMale
-            };
-
-            var inventory = await client.GetInventory();
-            var pokemons = inventory.InventoryDelta.InventoryItems
-                .Select(i => i.InventoryItemData?.Pokemon)
-                .Where(p => p != null && p?.PokemonId > 0)
-                .ToArray();
-
-            foreach (var unwantedPokemonType in unwantedPokemonTypes)
-            {
-                var pokemonOfDesiredType = pokemons.Where(p => p.PokemonId == unwantedPokemonType)
-                    .OrderByDescending(p => p.Cp)
-                    .ToList();
-
-                var unwantedPokemon =
-                    pokemonOfDesiredType.Skip(1) // keep the strongest one for potential battle-evolving
-                        .ToList();
-
-                //ColoredConsoleWrite(ConsoleColor.White, $"Grinding {unwantedPokemon.Count} pokemons of type {unwantedPokemonType}");
-                await TransferAllGivenPokemons(client, unwantedPokemon);
-            }
-
-            //ColoredConsoleWrite(ConsoleColor.White, $"Finished grinding all the meat");
-        }
-
-        public static float Perfect(PokemonData poke)
-        {
-            return ((float)(poke.IndividualAttack + poke.IndividualDefense + poke.IndividualStamina) / (3.0f * 15.0f)) * 100.0f;
-        }
-
-        private static async Task TransferAllGivenPokemons(Client client, IEnumerable<PokemonData> unwantedPokemons, float keepPerfectPokemonLimit = 80.0f)
-        {
-            foreach (var pokemon in unwantedPokemons)
-            {
-                if (Perfect(pokemon) >= keepPerfectPokemonLimit) continue;
-                ColoredConsoleWrite(ConsoleColor.White, $"Pokemon {pokemon.PokemonId} with {pokemon.Cp} CP has IV percent less than {keepPerfectPokemonLimit}%");
-
-                if (pokemon.Favorite == 0)
-                {
-                    var transferPokemonResponse = await client.TransferPokemon(pokemon.Id);
-
-                    /*
-                    ReleasePokemonOutProto.Status {
-                        UNSET = 0;
-                        SUCCESS = 1;
-                        POKEMON_DEPLOYED = 2;
-                        FAILED = 3;
-                        ERROR_POKEMON_IS_EGG = 4;
-                    }*/
-                    string pokemonName;
-                    if (ClientSettings.Language == "german")
-                    {
-                        ColoredConsoleWrite(ConsoleColor.DarkCyan, "german");
-                        string name_english = Convert.ToString(pokemon.PokemonId);
-                        var request = (HttpWebRequest)WebRequest.Create("http://boosting-service.de/pokemon/index.php?pokeName=" + name_english);
-                        var response = (HttpWebResponse)request.GetResponse();
-                        pokemonName = new StreamReader(response.GetResponseStream()).ReadToEnd();
-                    }
-                    else
-                        pokemonName = Convert.ToString(pokemon.PokemonId);
-                    if (transferPokemonResponse.Status == 1)
-                    {
-                        ColoredConsoleWrite(ConsoleColor.Magenta, $"Transferred {pokemonName} with {pokemon.Cp} CP");
-                    }
-                    else
-                    {
-                        var status = transferPokemonResponse.Status;
-
-                        ColoredConsoleWrite(ConsoleColor.Red, $"Somehow failed to transfer {pokemonName} with {pokemon.Cp} CP. " +
-                                                 $"ReleasePokemonOutProto.Status was {status}");
-                    }
-
-                    await Task.Delay(3000);
-                }
-            }
-        }
-
-        private static async Task TransferDuplicatePokemon(Client client)
-        {
-
-            //ColoredConsoleWrite(ConsoleColor.White, $"Check for duplicates");
-            var inventory = await client.GetInventory();
-            var allpokemons =
-                inventory.InventoryDelta.InventoryItems.Select(i => i.InventoryItemData?.Pokemon)
-                    .Where(p => p != null && p?.PokemonId > 0);
-
-            var dupes = allpokemons.OrderBy(x => x.Cp).Select((x, i) => new { index = i, value = x })
-                .GroupBy(x => x.value.PokemonId)
-                .Where(x => x.Skip(1).Any());
-
-            for (var i = 0; i < dupes.Count(); i++)
-            {
-                for (var j = 0; j < dupes.ElementAt(i).Count() - 1; j++)
-                {
-                    var dubpokemon = dupes.ElementAt(i).ElementAt(j).value;
-                    if (dubpokemon.Favorite == 0)
-                    {
-                        var transfer = await client.TransferPokemon(dubpokemon.Id);
-                        string pokemonName;
-                        if (ClientSettings.Language == "german")
-                        {
-                            string name_english = Convert.ToString(dubpokemon.PokemonId);
-                            var request = (HttpWebRequest)WebRequest.Create("http://boosting-service.de/pokemon/index.php?pokeName=" + name_english);
-                            var response = (HttpWebResponse)request.GetResponse();
-                            pokemonName = new StreamReader(response.GetResponseStream()).ReadToEnd();
-                        }
-                        else
-                            pokemonName = Convert.ToString(dubpokemon.PokemonId);
-                        ColoredConsoleWrite(ConsoleColor.DarkGreen,
-                            $"Transferred {pokemonName} with {dubpokemon.Cp} CP (Highest is {dupes.ElementAt(i).Last().value.Cp})");
-
-                    }
-                }
-            }
-        }
-
-        private static async Task TransferAllWeakPokemon(Client client, int cpThreshold)
-        {
-            //ColoredConsoleWrite(ConsoleColor.White, $"Firing up the meat grinder");
-
-            PokemonId[] doNotTransfer = new[] //these will not be transferred even when below the CP threshold
-            { // DO NOT EMPTY THIS ARRAY
-                //PokemonId.Pidgey,
-                //PokemonId.Rattata,
-                //PokemonId.Weedle,
-                //PokemonId.Zubat,
-                //PokemonId.Caterpie,
-                //PokemonId.Pidgeotto,
-                //PokemonId.NidoranFemale,
-                //PokemonId.Paras,
-                //PokemonId.Venonat,
-                //PokemonId.Psyduck,
-                //PokemonId.Poliwag,
-                //PokemonId.Slowpoke,
-                //PokemonId.Drowzee,
-                //PokemonId.Gastly,
-                //PokemonId.Goldeen,
-                //PokemonId.Staryu,
-                PokemonId.Magikarp,
-                PokemonId.Eevee//,
-                //PokemonId.Dratini
-            };
-
-            var inventory = await client.GetInventory();
-            var pokemons = inventory.InventoryDelta.InventoryItems
-                                .Select(i => i.InventoryItemData?.Pokemon)
-                                .Where(p => p != null && p?.PokemonId > 0)
-                                .ToArray();
-
-            //foreach (var unwantedPokemonType in unwantedPokemonTypes)
-            {
-                List<PokemonData> pokemonToDiscard;
-                if (doNotTransfer.Count() != 0)
-                    pokemonToDiscard = pokemons.Where(p => !doNotTransfer.Contains(p.PokemonId) && p.Cp < cpThreshold).OrderByDescending(p => p.Cp).ToList();
-                else
-                    pokemonToDiscard = pokemons.Where(p => p.Cp < cpThreshold).OrderByDescending(p => p.Cp).ToList();
-
-
-                //var unwantedPokemon = pokemonOfDesiredType.Skip(1) // keep the strongest one for potential battle-evolving
-                //                                          .ToList();
-                ColoredConsoleWrite(ConsoleColor.Gray, $"Grinding {pokemonToDiscard.Count} pokemon below {cpThreshold} CP.");
-                await TransferAllGivenPokemons(client, pokemonToDiscard);
-
-            }
-
-            ColoredConsoleWrite(ConsoleColor.Gray, $"Finished grinding all the meat");
-        }
-
-        public static async Task PrintLevel(Client client)
-        {
-            var inventory = await client.GetInventory();
-            var stats = inventory.InventoryDelta.InventoryItems.Select(i => i.InventoryItemData?.PlayerStats).ToArray();
-            foreach (var v in stats)
-                if (v != null)
-                {
-                    int XpDiff = GetXpDiff(client, v.Level);
-                    if (ClientSettings.LevelOutput == "time")
-                        ColoredConsoleWrite(ConsoleColor.Yellow, $"Current Level: " + v.Level + " (" + (v.Experience - XpDiff) + "/" + (v.NextLevelXp - XpDiff) + ")");
-                    else if (ClientSettings.LevelOutput == "levelup")
-                        if (Currentlevel != v.Level)
-                        {
-                            Currentlevel = v.Level;
-                            ColoredConsoleWrite(ConsoleColor.Magenta, $"Current Level: " + v.Level + ". XP needed for next Level: " + (v.NextLevelXp - v.Experience));
-                        }
-                }
-            if (ClientSettings.LevelOutput == "levelup")
-                await Task.Delay(1000);
-            else
-                await Task.Delay(ClientSettings.LevelTimeInterval * 1000);
-            PrintLevel(client);
-        }
-
-        // Pulled from NecronomiconCoding
-        public static string _getSessionRuntimeInTimeFormat()
-        {
-            return (DateTime.Now - InitSessionDateTime).ToString(@"dd\.hh\:mm\:ss");
-        }
-
-        public static async Task ConsoleLevelTitle(string Username, Client client)
-        {
-            var inventory = await client.GetInventory();
-            var stats = inventory.InventoryDelta.InventoryItems.Select(i => i.InventoryItemData?.PlayerStats).ToArray();
-            var profile = await client.GetProfile();
-            foreach (var v in stats)
-                if (v != null)
-                {
-                    int XpDiff = GetXpDiff(client, v.Level);
-                    System.Console.Title = string.Format(Username + " | Level: {0:0} - ({2:0} / {3:0}) | Runtime {1} | Stardust: {4:0}", v.Level, _getSessionRuntimeInTimeFormat(), (v.Experience - v.PrevLevelXp - XpDiff), (v.NextLevelXp - v.PrevLevelXp - XpDiff), profile.Profile.Currency.ToArray()[1].Amount) + " | XP/Hour: " + Math.Round(TotalExperience / GetRuntime()) + " | Pokemon/Hour: " + Math.Round(TotalPokemon / GetRuntime());
-                }
-            await Task.Delay(1000);
-            ConsoleLevelTitle(Username, client);
-        }
-
-        public static int GetXpDiff(Client client, int Level)
-        {
-            switch (Level)
-            {
-                case 1:
-                    return 0;
-                case 2:
-                    return 1000;
-                case 3:
-                    return 2000;
-                case 4:
-                    return 3000;
-                case 5:
-                    return 4000;
-                case 6:
-                    return 5000;
-                case 7:
-                    return 6000;
-                case 8:
-                    return 7000;
-                case 9:
-                    return 8000;
-                case 10:
-                    return 9000;
-                case 11:
-                    return 10000;
-                case 12:
-                    return 10000;
-                case 13:
-                    return 10000;
-                case 14:
-                    return 10000;
-                case 15:
-                    return 15000;
-                case 16:
-                    return 20000;
-                case 17:
-                    return 20000;
-                case 18:
-                    return 20000;
-                case 19:
-                    return 25000;
-                case 20:
-                    return 25000;
-                case 21:
-                    return 50000;
-                case 22:
-                    return 75000;
-                case 23:
-                    return 100000;
-                case 24:
-                    return 125000;
-                case 25:
-                    return 150000;
-                case 26:
-                    return 190000;
-                case 27:
-                    return 200000;
-                case 28:
-                    return 250000;
-                case 29:
-                    return 300000;
-                case 30:
-                    return 350000;
-                case 31:
-                    return 500000;
-                case 32:
-                    return 500000;
-                case 33:
-                    return 750000;
-                case 34:
-                    return 1000000;
-                case 35:
-                    return 1250000;
-                case 36:
-                    return 1500000;
-                case 37:
-                    return 2000000;
-                case 38:
-                    return 2500000;
-                case 39:
-                    return 1000000;
-                case 40:
-                    return 1000000;
-            }
-            return 0;
-        }
-    }
-}
diff --git a/PokemonGo/RocketAPI/Console/Properties/AssemblyInfo.cs b/PokemonGo/RocketAPI/Console/Properties/AssemblyInfo.cs
deleted file mode 100644
index 291154c..0000000
--- a/PokemonGo/RocketAPI/Console/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,43 +0,0 @@
-#region
-
-using System.Reflection;
-using System.Runtime.InteropServices;
-
-#endregion
-
-// 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.
-
-[assembly: AssemblyTitle("PokemonGoRocketAPI.Console")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("PokemonGoRocketAPI.Console")]
-[assembly: AssemblyCopyright("Copyright ©  2016")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible
-// to COM components.  If you need to access a type in this assembly from
-// COM, set the ComVisible attribute to true on that type.
-
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-
-[assembly: Guid("1fea147e-f704-497b-a538-00b053b5f672")]
-
-// 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:
-// [assembly: AssemblyVersion("1.0.*")]
-
-[assembly: AssemblyVersion("1.2.2.7")]
-[assembly: AssemblyFileVersion("1.2.2.7")]
diff --git a/PokemonGo/RocketAPI/Console/Settings.cs b/PokemonGo/RocketAPI/Console/Settings.cs
deleted file mode 100644
index 250d797..0000000
--- a/PokemonGo/RocketAPI/Console/Settings.cs
+++ /dev/null
@@ -1,109 +0,0 @@
-#region
-
-using System.Configuration;
-using System.Globalization;
-using System.Runtime.CompilerServices;
-using PokemonGo.RocketAPI.Enums;
-using System.Collections.Generic;
-using AllEnum;
-using System;
-
-#endregion
-
-namespace PokemonGo.RocketAPI.Console
-{
-    public class Settings : ISettings
-    {
-        /// <summary>
-        ///     Don't touch. User settings are in Console/App.config
-        /// </summary>
-        public string TransferType => GetSetting() != string.Empty ? GetSetting() : "none";
-        public int TransferCPThreshold => GetSetting() != string.Empty ? int.Parse(GetSetting(), CultureInfo.InvariantCulture) : 0;
-        public int TransferIVThreshold => GetSetting() != string.Empty ? int.Parse(GetSetting(), CultureInfo.InvariantCulture) : 0;
-        public int TravelSpeed => GetSetting() != string.Empty ? int.Parse(GetSetting(), CultureInfo.InvariantCulture) : 60;
-        public bool EvolveAllGivenPokemons => GetSetting() != string.Empty ? System.Convert.ToBoolean(GetSetting(), CultureInfo.InvariantCulture) : false;
-        public bool CatchPokemon => GetSetting() != string.Empty ? System.Convert.ToBoolean(GetSetting(), CultureInfo.InvariantCulture) : false;
-
-
-        public AuthType AuthType => (GetSetting() != string.Empty ? GetSetting() : "Ptc") == "Ptc" ? AuthType.Ptc : AuthType.Google;
-        public string PtcUsername => GetSetting() != string.Empty ? GetSetting() : "username";
-        public string PtcPassword => GetSetting() != string.Empty ? GetSetting() : "password";
-
-        public double DefaultLatitude
-        {
-            get { return GetSetting() != string.Empty ? double.Parse(GetSetting(), CultureInfo.InvariantCulture) : 51.22640; }
-            set { SetSetting(value); }
-        }
-
-
-        public double DefaultLongitude
-        {
-            get { return GetSetting() != string.Empty ? double.Parse(GetSetting(), CultureInfo.InvariantCulture) : 6.77874; }
-            set { SetSetting(value); }
-        }
-
-
-        public string LevelOutput => GetSetting() != string.Empty ? GetSetting() : "time";
-
-        public int LevelTimeInterval => GetSetting() != string.Empty ? System.Convert.ToInt16(GetSetting()) : 600;
-
-        public bool Recycler => GetSetting() != string.Empty ? System.Convert.ToBoolean(GetSetting(), CultureInfo.InvariantCulture) : false;
-
-        ICollection<KeyValuePair<ItemId, int>> ISettings.ItemRecycleFilter
-        {
-            get
-            {
-                //Type and amount to keep
-                return new[]
-                {
-                    new KeyValuePair<ItemId, int>(ItemId.ItemPokeBall, 20),
-                    new KeyValuePair<ItemId, int>(ItemId.ItemGreatBall, 50),
-                    new KeyValuePair<ItemId, int>(ItemId.ItemUltraBall, 100),
-                    new KeyValuePair<ItemId, int>(ItemId.ItemMasterBall, 200),
-                    new KeyValuePair<ItemId, int>(ItemId.ItemRazzBerry, 20),
-                    new KeyValuePair<ItemId, int>(ItemId.ItemRevive, 20),
-                    new KeyValuePair<ItemId, int>(ItemId.ItemMaxRevive, 40),
-                    new KeyValuePair<ItemId, int>(ItemId.ItemPotion, 0),
-                    new KeyValuePair<ItemId, int>(ItemId.ItemSuperPotion, 0),
-                    new KeyValuePair<ItemId, int>(ItemId.ItemHyperPotion, 50)
-                };
-            }
-        }
-
-        public int RecycleItemsInterval => GetSetting() != string.Empty ? Convert.ToInt16(GetSetting()) : 60;
-
-        public string Language => GetSetting() != string.Empty ? GetSetting() : "english";
-
-        public string RazzBerryMode => GetSetting() != string.Empty ? GetSetting() : "cp";
-
-        public double RazzBerrySetting => GetSetting() != string.Empty ? double.Parse(GetSetting(), CultureInfo.InvariantCulture) : 500;
-
-        public string GoogleRefreshToken
-        {
-            get { return GetSetting() != string.Empty ? GetSetting() : string.Empty; }
-            set { SetSetting(value); }
-        }
-
-        private string GetSetting([CallerMemberName] string key = null)
-        {
-            return ConfigurationManager.AppSettings[key];
-        }
-
-        private void SetSetting(string value, [CallerMemberName] string key = null)
-        {
-            var configFile = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
-            if (key != null) configFile.AppSettings.Settings[key].Value = value;
-            configFile.Save();
-        }
-
-        private void SetSetting(double value, [CallerMemberName] string key = null)
-        {
-            CultureInfo customCulture = (CultureInfo)System.Threading.Thread.CurrentThread.CurrentCulture.Clone();
-            customCulture.NumberFormat.NumberDecimalSeparator = ".";
-            System.Threading.Thread.CurrentThread.CurrentCulture = customCulture;
-            var configFile = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
-            if (key != null) configFile.AppSettings.Settings[key].Value = value.ToString();
-            configFile.Save();
-        }
-    }
-}
diff --git a/PokemonGo/RocketAPI/Console/packages.config b/PokemonGo/RocketAPI/Console/packages.config
deleted file mode 100644
index cb70682..0000000
--- a/PokemonGo/RocketAPI/Console/packages.config
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<packages>
-  <package id="Google.Protobuf" version="3.0.0-beta3" targetFramework="net45" />
-</packages>
\ No newline at end of file
diff --git a/PokemonGo/RocketAPI/Exceptions/LoginFailedException.cs b/PokemonGo/RocketAPI/Exceptions/LoginFailedException.cs
new file mode 100644
index 0000000..37bd893
--- /dev/null
+++ b/PokemonGo/RocketAPI/Exceptions/LoginFailedException.cs
@@ -0,0 +1,8 @@
+using System;
+
+namespace PokemonGo.RocketAPI.Exceptions
+{
+    public class LoginFailedException : Exception
+    {
+    }
+}
\ No newline at end of file
diff --git a/PokemonGo/RocketAPI/Extensions/HttpClientExtensions.cs b/PokemonGo/RocketAPI/Extensions/HttpClientExtensions.cs
index ce6c5d7..e543a7a 100644
--- a/PokemonGo/RocketAPI/Extensions/HttpClientExtensions.cs
+++ b/PokemonGo/RocketAPI/Extensions/HttpClientExtensions.cs
@@ -1,4 +1,4 @@
-#region
+#region

 using System.Net.Http;
 using System.Threading.Tasks;
@@ -28,16 +28,36 @@ namespace PokemonGo.RocketAPI.Extensions
             return decodedResponse;
         }

+        private static bool waitingForResponse = false;
         public static async Task<TResponsePayload> PostProtoPayload<TRequest, TResponsePayload>(this HttpClient client,
             string url, TRequest request) where TRequest : IMessage<TRequest>
             where TResponsePayload : IMessage<TResponsePayload>, new()
         {
-      //      ColoredConsoleWrite(ConsoleColor.Red, ($"[DEBUG] [{DateTime.Now.ToString("HH:mm:ss")}] requesting {typeof(TResponsePayload).Name}"));
-            var response = await PostProto(client, url, request);
+            ByteString payload = null;
+
+            while (waitingForResponse)
+                await Task.Delay(30);
+            waitingForResponse = true;
+
+            Response response = null;
+            int count = 0;
+            do
+            {
+                count++;
+                ColoredConsoleWrite(ConsoleColor.Red, "ArgumentOutOfRangeException - Restarting");
+                ColoredConsoleWrite(ConsoleColor.Red, ($"[DEBUG] [{DateTime.Now.ToString("HH:mm:ss")}] requesting {typeof(TResponsePayload).Name}"));
+                response = await PostProto(client, url, request);
+                waitingForResponse = false;
+
+
+
+                //Decode payload
+                //todo: multi-payload support
+
+                await Task.Delay(30);// request every 30ms, up this value for not spam their server
+            } while (response.Payload.Count < 1 && count < 30);
+            payload = response.Payload[0];

-            //Decode payload
-            //todo: multi-payload support
-            var payload = response.Payload[0];
             var parsedPayload = new TResponsePayload();
             parsedPayload.MergeFrom(payload);

diff --git a/PokemonGo/RocketAPI/Extensions/LatLongExtensions.cs b/PokemonGo/RocketAPI/Extensions/LatLongExtensions.cs
new file mode 100644
index 0000000..94c98cd
--- /dev/null
+++ b/PokemonGo/RocketAPI/Extensions/LatLongExtensions.cs
@@ -0,0 +1,25 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace PokemonGo.RocketAPI.Extensions
+{
+    public static class LatLongExtensions
+    {
+        public static double distanceFrom(this ILatLong c1, ILatLong c2)
+        {
+            double R = 6371e3;
+            Func<double, float> toRad = x => (float)(x * (Math.PI / 180));
+            float lat1 = toRad(c1.Latitude);
+            float lat2 = toRad(c2.Latitude);
+            float dLat = toRad(c2.Latitude - c1.Latitude);
+            float dLng = toRad(c2.Longitude - c1.Longitude);
+            double h = Math.Sin(dLat / 2) * Math.Sin(dLat / 2) + Math.Cos(lat1) * Math.Cos(lat2) * Math.Sin(dLng / 2) * Math.Sin(dLng / 2);
+            double c = 2 * Math.Atan2(Math.Sqrt(h), Math.Sqrt(1 - h));
+            return R * c;
+        }
+    }
+}
+
diff --git a/PokemonGo/RocketAPI/GeneratedCode/Payloads.cs b/PokemonGo/RocketAPI/GeneratedCode/Payloads.cs
index 388738d..589c206 100644
--- a/PokemonGo/RocketAPI/GeneratedCode/Payloads.cs
+++ b/PokemonGo/RocketAPI/GeneratedCode/Payloads.cs
@@ -495,7 +495,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                     "dEFQSS5HZW5lcmF0ZWRDb2RlLlBva2Vtb24SEgoKRXhwQXdhcmRlZBgDIAEo",
                     "BRIUCgxDYW5keUF3YXJkZWQYBCABKAViBnByb3RvMw=="));
             descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
-                new pbr::FileDescriptor[] {global::AllEnum.AllEnumReflection.Descriptor,},
+                new pbr::FileDescriptor[] { global::AllEnum.AllEnumReflection.Descriptor, },
                 new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[]
                 {
                     new pbr::GeneratedClrTypeInfo(typeof(global::PokemonGo.RocketAPI.GeneratedCode.GetPlayerResponse),
@@ -1135,19 +1135,19 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 8:
-                    {
-                        Unknown1 = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            Unknown1 = input.ReadInt32();
+                            break;
+                        }
                     case 18:
-                    {
-                        if (profile_ == null)
                         {
-                            profile_ = new global::PokemonGo.RocketAPI.GeneratedCode.Profile();
+                            if (profile_ == null)
+                            {
+                                profile_ = new global::PokemonGo.RocketAPI.GeneratedCode.Profile();
+                            }
+                            input.ReadMessage(profile_);
+                            break;
                         }
-                        input.ReadMessage(profile_);
-                        break;
-                    }
                 }
             }
         }
@@ -1373,7 +1373,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             if (Team != 0)
             {
                 output.WriteRawTag(40);
-                output.WriteEnum((int) Team);
+                output.WriteEnum((int)Team);
             }
             if (Tutorial.Length != 0)
             {
@@ -1426,7 +1426,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             }
             if (Team != 0)
             {
-                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Team);
+                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int)Team);
             }
             if (Tutorial.Length != 0)
             {
@@ -1528,68 +1528,68 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 8:
-                    {
-                        CreationTime = input.ReadInt64();
-                        break;
-                    }
+                        {
+                            CreationTime = input.ReadInt64();
+                            break;
+                        }
                     case 18:
-                    {
-                        Username = input.ReadString();
-                        break;
-                    }
+                        {
+                            Username = input.ReadString();
+                            break;
+                        }
                     case 40:
-                    {
-                        team_ = (global::AllEnum.TeamColor) input.ReadEnum();
-                        break;
-                    }
+                        {
+                            team_ = (global::AllEnum.TeamColor)input.ReadEnum();
+                            break;
+                        }
                     case 58:
-                    {
-                        Tutorial = input.ReadBytes();
-                        break;
-                    }
+                        {
+                            Tutorial = input.ReadBytes();
+                            break;
+                        }
                     case 66:
-                    {
-                        if (avatar_ == null)
                         {
-                            avatar_ = new global::PokemonGo.RocketAPI.GeneratedCode.AvatarDetails();
+                            if (avatar_ == null)
+                            {
+                                avatar_ = new global::PokemonGo.RocketAPI.GeneratedCode.AvatarDetails();
+                            }
+                            input.ReadMessage(avatar_);
+                            break;
                         }
-                        input.ReadMessage(avatar_);
-                        break;
-                    }
                     case 72:
-                    {
-                        PokeStorage = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            PokeStorage = input.ReadInt32();
+                            break;
+                        }
                     case 80:
-                    {
-                        ItemStorage = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            ItemStorage = input.ReadInt32();
+                            break;
+                        }
                     case 90:
-                    {
-                        if (dailyBonus_ == null)
                         {
-                            dailyBonus_ = new global::PokemonGo.RocketAPI.GeneratedCode.DailyBonus();
+                            if (dailyBonus_ == null)
+                            {
+                                dailyBonus_ = new global::PokemonGo.RocketAPI.GeneratedCode.DailyBonus();
+                            }
+                            input.ReadMessage(dailyBonus_);
+                            break;
                         }
-                        input.ReadMessage(dailyBonus_);
-                        break;
-                    }
                     case 98:
-                    {
-                        Unknown12 = input.ReadBytes();
-                        break;
-                    }
+                        {
+                            Unknown12 = input.ReadBytes();
+                            break;
+                        }
                     case 106:
-                    {
-                        Unknown13 = input.ReadBytes();
-                        break;
-                    }
+                        {
+                            Unknown13 = input.ReadBytes();
+                            break;
+                        }
                     case 114:
-                    {
-                        currency_.AddEntriesFrom(input, _repeated_currency_codec);
-                        break;
-                    }
+                        {
+                            currency_.AddEntriesFrom(input, _repeated_currency_codec);
+                            break;
+                        }
                 }
             }
         }
@@ -1752,15 +1752,15 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 8:
-                    {
-                        NextCollectTimestampMs = input.ReadInt64();
-                        break;
-                    }
+                        {
+                            NextCollectTimestampMs = input.ReadInt64();
+                            break;
+                        }
                     case 16:
-                    {
-                        NextDefenderBonusCollectTimestampMs = input.ReadInt64();
-                        break;
-                    }
+                        {
+                            NextDefenderBonusCollectTimestampMs = input.ReadInt64();
+                            break;
+                        }
                 }
             }
         }
@@ -1914,15 +1914,15 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 10:
-                    {
-                        Type = input.ReadString();
-                        break;
-                    }
+                        {
+                            Type = input.ReadString();
+                            break;
+                        }
                     case 16:
-                    {
-                        Amount = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            Amount = input.ReadInt32();
+                            break;
+                        }
                 }
             }
         }
@@ -2126,25 +2126,25 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 16:
-                    {
-                        Unknown2 = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            Unknown2 = input.ReadInt32();
+                            break;
+                        }
                     case 24:
-                    {
-                        Unknown3 = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            Unknown3 = input.ReadInt32();
+                            break;
+                        }
                     case 72:
-                    {
-                        Unknown9 = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            Unknown9 = input.ReadInt32();
+                            break;
+                        }
                     case 80:
-                    {
-                        Unknown10 = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            Unknown10 = input.ReadInt32();
+                            break;
+                        }
                 }
             }
         }
@@ -2275,10 +2275,10 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 10:
-                    {
-                        Hash = input.ReadString();
-                        break;
-                    }
+                        {
+                            Hash = input.ReadString();
+                            break;
+                        }
                 }
             }
         }
@@ -2435,19 +2435,19 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 8:
-                    {
-                        Success = input.ReadBool();
-                        break;
-                    }
+                        {
+                            Success = input.ReadBool();
+                            break;
+                        }
                     case 18:
-                    {
-                        if (inventoryDelta_ == null)
                         {
-                            inventoryDelta_ = new global::PokemonGo.RocketAPI.GeneratedCode.InventoryDelta();
+                            if (inventoryDelta_ == null)
+                            {
+                                inventoryDelta_ = new global::PokemonGo.RocketAPI.GeneratedCode.InventoryDelta();
+                            }
+                            input.ReadMessage(inventoryDelta_);
+                            break;
                         }
-                        input.ReadMessage(inventoryDelta_);
-                        break;
-                    }
                 }
             }
         }
@@ -2621,20 +2621,20 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 8:
-                    {
-                        OriginalTimestampMs = input.ReadInt64();
-                        break;
-                    }
+                        {
+                            OriginalTimestampMs = input.ReadInt64();
+                            break;
+                        }
                     case 16:
-                    {
-                        NewTimestampMs = input.ReadInt64();
-                        break;
-                    }
+                        {
+                            NewTimestampMs = input.ReadInt64();
+                            break;
+                        }
                     case 26:
-                    {
-                        inventoryItems_.AddEntriesFrom(input, _repeated_inventoryItems_codec);
-                        break;
-                    }
+                        {
+                            inventoryItems_.AddEntriesFrom(input, _repeated_inventoryItems_codec);
+                            break;
+                        }
                 }
             }
         }
@@ -2818,24 +2818,24 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 8:
-                    {
-                        ModifiedTimestampMs = input.ReadInt64();
-                        break;
-                    }
+                        {
+                            ModifiedTimestampMs = input.ReadInt64();
+                            break;
+                        }
                     case 16:
-                    {
-                        DeletedItemKey = input.ReadInt64();
-                        break;
-                    }
+                        {
+                            DeletedItemKey = input.ReadInt64();
+                            break;
+                        }
                     case 26:
-                    {
-                        if (inventoryItemData_ == null)
                         {
-                            inventoryItemData_ = new global::PokemonGo.RocketAPI.GeneratedCode.InventoryItemData();
+                            if (inventoryItemData_ == null)
+                            {
+                                inventoryItemData_ = new global::PokemonGo.RocketAPI.GeneratedCode.InventoryItemData();
+                            }
+                            input.ReadMessage(inventoryItemData_);
+                            break;
                         }
-                        input.ReadMessage(inventoryItemData_);
-                        break;
-                    }
                 }
             }
         }
@@ -3391,95 +3391,95 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 10:
-                    {
-                        if (pokemon_ == null)
                         {
-                            pokemon_ = new global::PokemonGo.RocketAPI.GeneratedCode.PokemonData();
+                            if (pokemon_ == null)
+                            {
+                                pokemon_ = new global::PokemonGo.RocketAPI.GeneratedCode.PokemonData();
+                            }
+                            input.ReadMessage(pokemon_);
+                            break;
                         }
-                        input.ReadMessage(pokemon_);
-                        break;
-                    }
                     case 18:
-                    {
-                        if (item_ == null)
                         {
-                            item_ = new global::PokemonGo.RocketAPI.GeneratedCode.Item();
+                            if (item_ == null)
+                            {
+                                item_ = new global::PokemonGo.RocketAPI.GeneratedCode.Item();
+                            }
+                            input.ReadMessage(item_);
+                            break;
                         }
-                        input.ReadMessage(item_);
-                        break;
-                    }
                     case 26:
-                    {
-                        if (pokedexEntry_ == null)
                         {
-                            pokedexEntry_ = new global::PokemonGo.RocketAPI.GeneratedCode.PokedexEntry();
+                            if (pokedexEntry_ == null)
+                            {
+                                pokedexEntry_ = new global::PokemonGo.RocketAPI.GeneratedCode.PokedexEntry();
+                            }
+                            input.ReadMessage(pokedexEntry_);
+                            break;
                         }
-                        input.ReadMessage(pokedexEntry_);
-                        break;
-                    }
                     case 34:
-                    {
-                        if (playerStats_ == null)
                         {
-                            playerStats_ = new global::PokemonGo.RocketAPI.GeneratedCode.PlayerStats();
+                            if (playerStats_ == null)
+                            {
+                                playerStats_ = new global::PokemonGo.RocketAPI.GeneratedCode.PlayerStats();
+                            }
+                            input.ReadMessage(playerStats_);
+                            break;
                         }
-                        input.ReadMessage(playerStats_);
-                        break;
-                    }
                     case 42:
-                    {
-                        if (playerCurrency_ == null)
                         {
-                            playerCurrency_ = new global::PokemonGo.RocketAPI.GeneratedCode.PlayerCurrency();
+                            if (playerCurrency_ == null)
+                            {
+                                playerCurrency_ = new global::PokemonGo.RocketAPI.GeneratedCode.PlayerCurrency();
+                            }
+                            input.ReadMessage(playerCurrency_);
+                            break;
                         }
-                        input.ReadMessage(playerCurrency_);
-                        break;
-                    }
                     case 50:
-                    {
-                        if (playerCamera_ == null)
                         {
-                            playerCamera_ = new global::PokemonGo.RocketAPI.GeneratedCode.PlayerCamera();
+                            if (playerCamera_ == null)
+                            {
+                                playerCamera_ = new global::PokemonGo.RocketAPI.GeneratedCode.PlayerCamera();
+                            }
+                            input.ReadMessage(playerCamera_);
+                            break;
                         }
-                        input.ReadMessage(playerCamera_);
-                        break;
-                    }
                     case 58:
-                    {
-                        if (inventoryUpgrades_ == null)
                         {
-                            inventoryUpgrades_ = new global::PokemonGo.RocketAPI.GeneratedCode.InventoryUpgrades();
+                            if (inventoryUpgrades_ == null)
+                            {
+                                inventoryUpgrades_ = new global::PokemonGo.RocketAPI.GeneratedCode.InventoryUpgrades();
+                            }
+                            input.ReadMessage(inventoryUpgrades_);
+                            break;
                         }
-                        input.ReadMessage(inventoryUpgrades_);
-                        break;
-                    }
                     case 66:
-                    {
-                        if (appliedItems_ == null)
                         {
-                            appliedItems_ = new global::PokemonGo.RocketAPI.GeneratedCode.AppliedItems();
+                            if (appliedItems_ == null)
+                            {
+                                appliedItems_ = new global::PokemonGo.RocketAPI.GeneratedCode.AppliedItems();
+                            }
+                            input.ReadMessage(appliedItems_);
+                            break;
                         }
-                        input.ReadMessage(appliedItems_);
-                        break;
-                    }
                     case 74:
-                    {
-                        if (eggIncubators_ == null)
                         {
-                            eggIncubators_ = new global::PokemonGo.RocketAPI.GeneratedCode.EggIncubators();
+                            if (eggIncubators_ == null)
+                            {
+                                eggIncubators_ = new global::PokemonGo.RocketAPI.GeneratedCode.EggIncubators();
+                            }
+                            input.ReadMessage(eggIncubators_);
+                            break;
                         }
-                        input.ReadMessage(eggIncubators_);
-                        break;
-                    }
                     case 82:
-                    {
-                        if (pokemonFamily_ == null)
                         {
-                            pokemonFamily_ = new global::PokemonGo.RocketAPI.GeneratedCode.PokemonFamily();
+                            if (pokemonFamily_ == null)
+                            {
+                                pokemonFamily_ = new global::PokemonGo.RocketAPI.GeneratedCode.PokemonFamily();
+                            }
+                            input.ReadMessage(pokemonFamily_);
+                            break;
                         }
-                        input.ReadMessage(pokemonFamily_);
-                        break;
-                    }
                 }
             }
         }
@@ -3930,7 +3930,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             if (PokemonType != 0)
             {
                 output.WriteRawTag(16);
-                output.WriteEnum((int) PokemonType);
+                output.WriteEnum((int)PokemonType);
             }
             if (Cp != 0)
             {
@@ -3950,12 +3950,12 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             if (Move1 != 0)
             {
                 output.WriteRawTag(48);
-                output.WriteEnum((int) Move1);
+                output.WriteEnum((int)Move1);
             }
             if (Move2 != 0)
             {
                 output.WriteRawTag(56);
-                output.WriteEnum((int) Move2);
+                output.WriteEnum((int)Move2);
             }
             if (DeployedFortId != 0)
             {
@@ -4083,7 +4083,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             }
             if (PokemonType != 0)
             {
-                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) PokemonType);
+                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int)PokemonType);
             }
             if (Cp != 0)
             {
@@ -4099,11 +4099,11 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             }
             if (Move1 != 0)
             {
-                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Move1);
+                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int)Move1);
             }
             if (Move2 != 0)
             {
-                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Move2);
+                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int)Move2);
             }
             if (DeployedFortId != 0)
             {
@@ -4339,155 +4339,155 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 8:
-                    {
-                        Id = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            Id = input.ReadInt32();
+                            break;
+                        }
                     case 16:
-                    {
-                        pokemonType_ = (global::AllEnum.PokemonId) input.ReadEnum();
-                        break;
-                    }
+                        {
+                            pokemonType_ = (global::AllEnum.PokemonId)input.ReadEnum();
+                            break;
+                        }
                     case 24:
-                    {
-                        Cp = input.ReadInt32();
-                        break;
-                    }
-                    case 32:
-                    {
-                        Stamina = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            Cp = input.ReadInt32();
+                            break;
+                        }
+                    case 32:
+                        {
+                            Stamina = input.ReadInt32();
+                            break;
+                        }
                     case 40:
-                    {
-                        StaminaMax = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            StaminaMax = input.ReadInt32();
+                            break;
+                        }
                     case 48:
-                    {
-                        move1_ = (global::AllEnum.PokemonMove) input.ReadEnum();
-                        break;
-                    }
+                        {
+                            move1_ = (global::AllEnum.PokemonMove)input.ReadEnum();
+                            break;
+                        }
                     case 56:
-                    {
-                        move2_ = (global::AllEnum.PokemonMove) input.ReadEnum();
-                        break;
-                    }
+                        {
+                            move2_ = (global::AllEnum.PokemonMove)input.ReadEnum();
+                            break;
+                        }
                     case 64:
-                    {
-                        DeployedFortId = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            DeployedFortId = input.ReadInt32();
+                            break;
+                        }
                     case 74:
-                    {
-                        OwnerName = input.ReadString();
-                        break;
-                    }
+                        {
+                            OwnerName = input.ReadString();
+                            break;
+                        }
                     case 80:
-                    {
-                        IsEgg = input.ReadBool();
-                        break;
-                    }
+                        {
+                            IsEgg = input.ReadBool();
+                            break;
+                        }
                     case 88:
-                    {
-                        EggKmWalkedTarget = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            EggKmWalkedTarget = input.ReadInt32();
+                            break;
+                        }
                     case 96:
-                    {
-                        EggKmWalkedStart = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            EggKmWalkedStart = input.ReadInt32();
+                            break;
+                        }
                     case 112:
-                    {
-                        Origin = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            Origin = input.ReadInt32();
+                            break;
+                        }
                     case 125:
-                    {
-                        HeightM = input.ReadFloat();
-                        break;
-                    }
+                        {
+                            HeightM = input.ReadFloat();
+                            break;
+                        }
                     case 133:
-                    {
-                        WeightKg = input.ReadFloat();
-                        break;
-                    }
+                        {
+                            WeightKg = input.ReadFloat();
+                            break;
+                        }
                     case 136:
-                    {
-                        IndividualAttack = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            IndividualAttack = input.ReadInt32();
+                            break;
+                        }
                     case 144:
-                    {
-                        IndividualDefense = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            IndividualDefense = input.ReadInt32();
+                            break;
+                        }
                     case 152:
-                    {
-                        IndividualStamina = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            IndividualStamina = input.ReadInt32();
+                            break;
+                        }
                     case 160:
-                    {
-                        CpMultiplier = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            CpMultiplier = input.ReadInt32();
+                            break;
+                        }
                     case 168:
-                    {
-                        Pokeball = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            Pokeball = input.ReadInt32();
+                            break;
+                        }
                     case 176:
-                    {
-                        CapturedCellId = input.ReadUInt64();
-                        break;
-                    }
+                        {
+                            CapturedCellId = input.ReadUInt64();
+                            break;
+                        }
                     case 184:
-                    {
-                        BattlesAttacked = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            BattlesAttacked = input.ReadInt32();
+                            break;
+                        }
                     case 192:
-                    {
-                        BattlesDefended = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            BattlesDefended = input.ReadInt32();
+                            break;
+                        }
                     case 200:
-                    {
-                        EggIncubatorId = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            EggIncubatorId = input.ReadInt32();
+                            break;
+                        }
                     case 208:
-                    {
-                        CreationTimeMs = input.ReadUInt64();
-                        break;
-                    }
+                        {
+                            CreationTimeMs = input.ReadUInt64();
+                            break;
+                        }
                     case 216:
-                    {
-                        NumUpgrades = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            NumUpgrades = input.ReadInt32();
+                            break;
+                        }
                     case 224:
-                    {
-                        AdditionalCpMultiplier = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            AdditionalCpMultiplier = input.ReadInt32();
+                            break;
+                        }
                     case 232:
-                    {
-                        Favorite = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            Favorite = input.ReadInt32();
+                            break;
+                        }
                     case 242:
-                    {
-                        Nickname = input.ReadString();
-                        break;
-                    }
+                        {
+                            Nickname = input.ReadString();
+                            break;
+                        }
                     case 248:
-                    {
-                        FromFort = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            FromFort = input.ReadInt32();
+                            break;
+                        }
                 }
             }
         }
@@ -4629,7 +4629,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             if (Item_ != 0)
             {
                 output.WriteRawTag(8);
-                output.WriteEnum((int) Item_);
+                output.WriteEnum((int)Item_);
             }
             if (Count != 0)
             {
@@ -4648,7 +4648,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             var size = 0;
             if (Item_ != 0)
             {
-                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Item_);
+                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int)Item_);
             }
             if (Count != 0)
             {
@@ -4692,20 +4692,20 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 8:
-                    {
-                        item_ = (global::AllEnum.ItemType) input.ReadEnum();
-                        break;
-                    }
+                        {
+                            item_ = (global::AllEnum.ItemType)input.ReadEnum();
+                            break;
+                        }
                     case 16:
-                    {
-                        Count = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            Count = input.ReadInt32();
+                            break;
+                        }
                     case 24:
-                    {
-                        Unseen = input.ReadBool();
-                        break;
-                    }
+                        {
+                            Unseen = input.ReadBool();
+                            break;
+                        }
                 }
             }
         }
@@ -4935,30 +4935,30 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 8:
-                    {
-                        PokedexEntryNumber = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            PokedexEntryNumber = input.ReadInt32();
+                            break;
+                        }
                     case 16:
-                    {
-                        TimesEncountered = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            TimesEncountered = input.ReadInt32();
+                            break;
+                        }
                     case 24:
-                    {
-                        TimesCaptured = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            TimesCaptured = input.ReadInt32();
+                            break;
+                        }
                     case 32:
-                    {
-                        EvolutionStonePieces = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            EvolutionStonePieces = input.ReadInt32();
+                            break;
+                        }
                     case 40:
-                    {
-                        EvolutionStones = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            EvolutionStones = input.ReadInt32();
+                            break;
+                        }
                 }
             }
         }
@@ -5643,120 +5643,120 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 8:
-                    {
-                        Level = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            Level = input.ReadInt32();
+                            break;
+                        }
                     case 16:
-                    {
-                        Experience = input.ReadInt64();
-                        break;
-                    }
+                        {
+                            Experience = input.ReadInt64();
+                            break;
+                        }
                     case 24:
-                    {
-                        PrevLevelXp = input.ReadInt64();
-                        break;
-                    }
+                        {
+                            PrevLevelXp = input.ReadInt64();
+                            break;
+                        }
                     case 32:
-                    {
-                        NextLevelXp = input.ReadInt64();
-                        break;
-                    }
+                        {
+                            NextLevelXp = input.ReadInt64();
+                            break;
+                        }
                     case 45:
-                    {
-                        KmWalked = input.ReadFloat();
-                        break;
-                    }
+                        {
+                            KmWalked = input.ReadFloat();
+                            break;
+                        }
                     case 48:
-                    {
-                        PokemonsEncountered = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            PokemonsEncountered = input.ReadInt32();
+                            break;
+                        }
                     case 56:
-                    {
-                        UniquePokedexEntries = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            UniquePokedexEntries = input.ReadInt32();
+                            break;
+                        }
                     case 64:
-                    {
-                        PokemonsCaptured = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            PokemonsCaptured = input.ReadInt32();
+                            break;
+                        }
                     case 72:
-                    {
-                        Evolutions = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            Evolutions = input.ReadInt32();
+                            break;
+                        }
                     case 80:
-                    {
-                        PokeStopVisits = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            PokeStopVisits = input.ReadInt32();
+                            break;
+                        }
                     case 88:
-                    {
-                        PokeballsThrown = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            PokeballsThrown = input.ReadInt32();
+                            break;
+                        }
                     case 96:
-                    {
-                        EggsHatched = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            EggsHatched = input.ReadInt32();
+                            break;
+                        }
                     case 104:
-                    {
-                        BigMagikarpCaught = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            BigMagikarpCaught = input.ReadInt32();
+                            break;
+                        }
                     case 112:
-                    {
-                        BattleAttackWon = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            BattleAttackWon = input.ReadInt32();
+                            break;
+                        }
                     case 120:
-                    {
-                        BattleAttackTotal = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            BattleAttackTotal = input.ReadInt32();
+                            break;
+                        }
                     case 128:
-                    {
-                        BattleDefendedWon = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            BattleDefendedWon = input.ReadInt32();
+                            break;
+                        }
                     case 136:
-                    {
-                        BattleTrainingWon = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            BattleTrainingWon = input.ReadInt32();
+                            break;
+                        }
                     case 144:
-                    {
-                        BattleTrainingTotal = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            BattleTrainingTotal = input.ReadInt32();
+                            break;
+                        }
                     case 152:
-                    {
-                        PrestigeRaisedTotal = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            PrestigeRaisedTotal = input.ReadInt32();
+                            break;
+                        }
                     case 160:
-                    {
-                        PrestigeDroppedTotal = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            PrestigeDroppedTotal = input.ReadInt32();
+                            break;
+                        }
                     case 168:
-                    {
-                        PokemonDeployed = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            PokemonDeployed = input.ReadInt32();
+                            break;
+                        }
                     case 178:
-                    {
-                        PokemonCaughtByType = input.ReadBytes();
-                        break;
-                    }
+                        {
+                            PokemonCaughtByType = input.ReadBytes();
+                            break;
+                        }
                     case 184:
-                    {
-                        SmallRattataCaught = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            SmallRattataCaught = input.ReadInt32();
+                            break;
+                        }
                 }
             }
         }
@@ -5906,10 +5906,10 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 8:
-                    {
-                        Gems = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            Gems = input.ReadInt32();
+                            break;
+                        }
                 }
             }
         }
@@ -6037,10 +6037,10 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 8:
-                    {
-                        IsDefaultCamera = input.ReadBool();
-                        break;
-                    }
+                        {
+                            IsDefaultCamera = input.ReadBool();
+                            break;
+                        }
                 }
             }
         }
@@ -6162,10 +6162,10 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 10:
-                    {
-                        inventoryUpgrades_.AddEntriesFrom(input, _repeated_inventoryUpgrades_codec);
-                        break;
-                    }
+                        {
+                            inventoryUpgrades_.AddEntriesFrom(input, _repeated_inventoryUpgrades_codec);
+                            break;
+                        }
                 }
             }
         }
@@ -6280,12 +6280,12 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             if (Item != 0)
             {
                 output.WriteRawTag(8);
-                output.WriteEnum((int) Item);
+                output.WriteEnum((int)Item);
             }
             if (UpgradeType != 0)
             {
                 output.WriteRawTag(16);
-                output.WriteEnum((int) UpgradeType);
+                output.WriteEnum((int)UpgradeType);
             }
             if (AdditionalStorage != 0)
             {
@@ -6299,11 +6299,11 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             var size = 0;
             if (Item != 0)
             {
-                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Item);
+                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int)Item);
             }
             if (UpgradeType != 0)
             {
-                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UpgradeType);
+                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int)UpgradeType);
             }
             if (AdditionalStorage != 0)
             {
@@ -6343,20 +6343,20 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 8:
-                    {
-                        item_ = (global::AllEnum.ItemType) input.ReadEnum();
-                        break;
-                    }
+                        {
+                            item_ = (global::AllEnum.ItemType)input.ReadEnum();
+                            break;
+                        }
                     case 16:
-                    {
-                        upgradeType_ = (global::AllEnum.InventoryUpgradeType) input.ReadEnum();
-                        break;
-                    }
+                        {
+                            upgradeType_ = (global::AllEnum.InventoryUpgradeType)input.ReadEnum();
+                            break;
+                        }
                     case 24:
-                    {
-                        AdditionalStorage = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            AdditionalStorage = input.ReadInt32();
+                            break;
+                        }
                 }
             }
         }
@@ -6490,14 +6490,14 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 34:
-                    {
-                        if (item_ == null)
                         {
-                            item_ = new global::PokemonGo.RocketAPI.GeneratedCode.AppliedItem();
+                            if (item_ == null)
+                            {
+                                item_ = new global::PokemonGo.RocketAPI.GeneratedCode.AppliedItem();
+                            }
+                            input.ReadMessage(item_);
+                            break;
                         }
-                        input.ReadMessage(item_);
-                        break;
-                    }
                 }
             }
         }
@@ -6624,12 +6624,12 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             if (ItemType != 0)
             {
                 output.WriteRawTag(8);
-                output.WriteEnum((int) ItemType);
+                output.WriteEnum((int)ItemType);
             }
             if (ItemTypeCategory != 0)
             {
                 output.WriteRawTag(16);
-                output.WriteEnum((int) ItemTypeCategory);
+                output.WriteEnum((int)ItemTypeCategory);
             }
             if (ExpireMs != 0L)
             {
@@ -6648,11 +6648,11 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             var size = 0;
             if (ItemType != 0)
             {
-                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) ItemType);
+                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int)ItemType);
             }
             if (ItemTypeCategory != 0)
             {
-                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) ItemTypeCategory);
+                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int)ItemTypeCategory);
             }
             if (ExpireMs != 0L)
             {
@@ -6700,25 +6700,25 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 8:
-                    {
-                        itemType_ = (global::AllEnum.ItemId) input.ReadEnum();
-                        break;
-                    }
+                        {
+                            itemType_ = (global::AllEnum.ItemId)input.ReadEnum();
+                            break;
+                        }
                     case 16:
-                    {
-                        itemTypeCategory_ = (global::AllEnum.ItemType) input.ReadEnum();
-                        break;
-                    }
+                        {
+                            itemTypeCategory_ = (global::AllEnum.ItemType)input.ReadEnum();
+                            break;
+                        }
                     case 24:
-                    {
-                        ExpireMs = input.ReadInt64();
-                        break;
-                    }
+                        {
+                            ExpireMs = input.ReadInt64();
+                            break;
+                        }
                     case 32:
-                    {
-                        AppliedMs = input.ReadInt64();
-                        break;
-                    }
+                        {
+                            AppliedMs = input.ReadInt64();
+                            break;
+                        }
                 }
             }
         }
@@ -6853,14 +6853,14 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 10:
-                    {
-                        if (eggIncubator_ == null)
                         {
-                            eggIncubator_ = new global::PokemonGo.RocketAPI.GeneratedCode.EggIncubator();
+                            if (eggIncubator_ == null)
+                            {
+                                eggIncubator_ = new global::PokemonGo.RocketAPI.GeneratedCode.EggIncubator();
+                            }
+                            input.ReadMessage(eggIncubator_);
+                            break;
                         }
-                        input.ReadMessage(eggIncubator_);
-                        break;
-                    }
                 }
             }
         }
@@ -7031,12 +7031,12 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             if (ItemType != 0)
             {
                 output.WriteRawTag(16);
-                output.WriteEnum((int) ItemType);
+                output.WriteEnum((int)ItemType);
             }
             if (IncubatorType != 0)
             {
                 output.WriteRawTag(24);
-                output.WriteEnum((int) IncubatorType);
+                output.WriteEnum((int)IncubatorType);
             }
             if (UsesRemaining != 0)
             {
@@ -7069,11 +7069,11 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             }
             if (ItemType != 0)
             {
-                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) ItemType);
+                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int)ItemType);
             }
             if (IncubatorType != 0)
             {
-                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) IncubatorType);
+                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int)IncubatorType);
             }
             if (UsesRemaining != 0)
             {
@@ -7141,40 +7141,40 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 10:
-                    {
-                        ItemId = input.ReadString();
-                        break;
-                    }
+                        {
+                            ItemId = input.ReadString();
+                            break;
+                        }
                     case 16:
-                    {
-                        itemType_ = (global::AllEnum.ItemType) input.ReadEnum();
-                        break;
-                    }
+                        {
+                            itemType_ = (global::AllEnum.ItemType)input.ReadEnum();
+                            break;
+                        }
                     case 24:
-                    {
-                        incubatorType_ = (global::AllEnum.EggIncubatorType) input.ReadEnum();
-                        break;
-                    }
+                        {
+                            incubatorType_ = (global::AllEnum.EggIncubatorType)input.ReadEnum();
+                            break;
+                        }
                     case 32:
-                    {
-                        UsesRemaining = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            UsesRemaining = input.ReadInt32();
+                            break;
+                        }
                     case 40:
-                    {
-                        PokemonId = input.ReadInt64();
-                        break;
-                    }
+                        {
+                            PokemonId = input.ReadInt64();
+                            break;
+                        }
                     case 49:
-                    {
-                        StartKmWalked = input.ReadDouble();
-                        break;
-                    }
+                        {
+                            StartKmWalked = input.ReadDouble();
+                            break;
+                        }
                     case 57:
-                    {
-                        TargetKmWalked = input.ReadDouble();
-                        break;
-                    }
+                        {
+                            TargetKmWalked = input.ReadDouble();
+                            break;
+                        }
                 }
             }
         }
@@ -7283,7 +7283,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             if (FamilyId != 0)
             {
                 output.WriteRawTag(8);
-                output.WriteEnum((int) FamilyId);
+                output.WriteEnum((int)FamilyId);
             }
             if (Candy != 0)
             {
@@ -7297,7 +7297,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             var size = 0;
             if (FamilyId != 0)
             {
-                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) FamilyId);
+                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int)FamilyId);
             }
             if (Candy != 0)
             {
@@ -7333,15 +7333,15 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 8:
-                    {
-                        familyId_ = (global::AllEnum.PokemonFamilyId) input.ReadEnum();
-                        break;
-                    }
+                        {
+                            familyId_ = (global::AllEnum.PokemonFamilyId)input.ReadEnum();
+                            break;
+                        }
                     case 16:
-                    {
-                        Candy = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            Candy = input.ReadInt32();
+                            break;
+                        }
                 }
             }
         }
@@ -7545,25 +7545,25 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 10:
-                    {
-                        CellId = input.ReadBytes();
-                        break;
-                    }
+                        {
+                            CellId = input.ReadBytes();
+                            break;
+                        }
                     case 18:
-                    {
-                        SinceTimestampMs = input.ReadBytes();
-                        break;
-                    }
+                        {
+                            SinceTimestampMs = input.ReadBytes();
+                            break;
+                        }
                     case 25:
-                    {
-                        Latitude = input.ReadDouble();
-                        break;
-                    }
+                        {
+                            Latitude = input.ReadDouble();
+                            break;
+                        }
                     case 33:
-                    {
-                        Longitude = input.ReadDouble();
-                        break;
-                    }
+                        {
+                            Longitude = input.ReadDouble();
+                            break;
+                        }
                 }
             }
         }
@@ -7675,7 +7675,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             if (Status != 0)
             {
                 output.WriteRawTag(16);
-                output.WriteEnum((int) Status);
+                output.WriteEnum((int)Status);
             }
         }

@@ -7685,7 +7685,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             size += mapCells_.CalculateSize(_repeated_mapCells_codec);
             if (Status != 0)
             {
-                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Status);
+                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int)Status);
             }
             return size;
         }
@@ -7714,16 +7714,16 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 10:
-                    {
-                        mapCells_.AddEntriesFrom(input, _repeated_mapCells_codec);
-                        break;
-                    }
+                        {
+                            mapCells_.AddEntriesFrom(input, _repeated_mapCells_codec);
+                            break;
+                        }
                     case 16:
-                    {
-                        status_ = (global::AllEnum.MapObjectsStatus) input.ReadEnum();
-                        break;
-                    }
-                }
+                        {
+                            status_ = (global::AllEnum.MapObjectsStatus)input.ReadEnum();
+                            break;
+                        }
+                }
             }
         }

@@ -8070,60 +8070,60 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 8:
-                    {
-                        S2CellId = input.ReadUInt64();
-                        break;
-                    }
+                        {
+                            S2CellId = input.ReadUInt64();
+                            break;
+                        }
                     case 16:
-                    {
-                        CurrentTimestampMs = input.ReadInt64();
-                        break;
-                    }
+                        {
+                            CurrentTimestampMs = input.ReadInt64();
+                            break;
+                        }
                     case 26:
-                    {
-                        forts_.AddEntriesFrom(input, _repeated_forts_codec);
-                        break;
-                    }
+                        {
+                            forts_.AddEntriesFrom(input, _repeated_forts_codec);
+                            break;
+                        }
                     case 34:
-                    {
-                        spawnPoints_.AddEntriesFrom(input, _repeated_spawnPoints_codec);
-                        break;
-                    }
+                        {
+                            spawnPoints_.AddEntriesFrom(input, _repeated_spawnPoints_codec);
+                            break;
+                        }
                     case 42:
-                    {
-                        wildPokemons_.AddEntriesFrom(input, _repeated_wildPokemons_codec);
-                        break;
-                    }
+                        {
+                            wildPokemons_.AddEntriesFrom(input, _repeated_wildPokemons_codec);
+                            break;
+                        }
                     case 50:
-                    {
-                        deletedObjects_.AddEntriesFrom(input, _repeated_deletedObjects_codec);
-                        break;
-                    }
+                        {
+                            deletedObjects_.AddEntriesFrom(input, _repeated_deletedObjects_codec);
+                            break;
+                        }
                     case 56:
-                    {
-                        IsTruncatedList = input.ReadBool();
-                        break;
-                    }
+                        {
+                            IsTruncatedList = input.ReadBool();
+                            break;
+                        }
                     case 66:
-                    {
-                        fortSummaries_.AddEntriesFrom(input, _repeated_fortSummaries_codec);
-                        break;
-                    }
+                        {
+                            fortSummaries_.AddEntriesFrom(input, _repeated_fortSummaries_codec);
+                            break;
+                        }
                     case 74:
-                    {
-                        decimatedSpawnPoints_.AddEntriesFrom(input, _repeated_decimatedSpawnPoints_codec);
-                        break;
-                    }
+                        {
+                            decimatedSpawnPoints_.AddEntriesFrom(input, _repeated_decimatedSpawnPoints_codec);
+                            break;
+                        }
                     case 82:
-                    {
-                        catchablePokemons_.AddEntriesFrom(input, _repeated_catchablePokemons_codec);
-                        break;
-                    }
+                        {
+                            catchablePokemons_.AddEntriesFrom(input, _repeated_catchablePokemons_codec);
+                            break;
+                        }
                     case 90:
-                    {
-                        nearbyPokemons_.AddEntriesFrom(input, _repeated_nearbyPokemons_codec);
-                        break;
-                    }
+                        {
+                            nearbyPokemons_.AddEntriesFrom(input, _repeated_nearbyPokemons_codec);
+                            break;
+                        }
                 }
             }
         }
@@ -8442,12 +8442,12 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             if (OwnedByTeam != 0)
             {
                 output.WriteRawTag(40);
-                output.WriteEnum((int) OwnedByTeam);
+                output.WriteEnum((int)OwnedByTeam);
             }
             if (GuardPokemonId != 0)
             {
                 output.WriteRawTag(48);
-                output.WriteEnum((int) GuardPokemonId);
+                output.WriteEnum((int)GuardPokemonId);
             }
             if (GuardPokemonCp != 0)
             {
@@ -8462,7 +8462,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             if (Type != 0)
             {
                 output.WriteRawTag(72);
-                output.WriteEnum((int) Type);
+                output.WriteEnum((int)Type);
             }
             if (GymPoints != 0L)
             {
@@ -8492,12 +8492,12 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             if (Sponsor != 0)
             {
                 output.WriteRawTag(120);
-                output.WriteEnum((int) Sponsor);
+                output.WriteEnum((int)Sponsor);
             }
             if (RenderingType != 0)
             {
                 output.WriteRawTag(128, 1);
-                output.WriteEnum((int) RenderingType);
+                output.WriteEnum((int)RenderingType);
             }
         }

@@ -8526,15 +8526,15 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             }
             if (Type != 0)
             {
-                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Type);
+                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int)Type);
             }
             if (OwnedByTeam != 0)
             {
-                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) OwnedByTeam);
+                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int)OwnedByTeam);
             }
             if (GuardPokemonId != 0)
             {
-                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) GuardPokemonId);
+                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int)GuardPokemonId);
             }
             if (GuardPokemonCp != 0)
             {
@@ -8554,11 +8554,11 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             }
             if (Sponsor != 0)
             {
-                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Sponsor);
+                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int)Sponsor);
             }
             if (RenderingType != 0)
             {
-                size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) RenderingType);
+                size += 2 + pb::CodedOutputStream.ComputeEnumSize((int)RenderingType);
             }
             if (ActiveFortModifier.Length != 0)
             {
@@ -8658,89 +8658,89 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 10:
-                    {
-                        Id = input.ReadString();
-                        break;
-                    }
+                        {
+                            Id = input.ReadString();
+                            break;
+                        }
                     case 16:
-                    {
-                        LastModifiedTimestampMs = input.ReadInt64();
-                        break;
-                    }
+                        {
+                            LastModifiedTimestampMs = input.ReadInt64();
+                            break;
+                        }
                     case 25:
-                    {
-                        Latitude = input.ReadDouble();
-                        break;
-                    }
+                        {
+                            Latitude = input.ReadDouble();
+                            break;
+                        }
                     case 33:
-                    {
-                        Longitude = input.ReadDouble();
-                        break;
-                    }
+                        {
+                            Longitude = input.ReadDouble();
+                            break;
+                        }
                     case 40:
-                    {
-                        ownedByTeam_ = (global::AllEnum.TeamColor) input.ReadEnum();
-                        break;
-                    }
+                        {
+                            ownedByTeam_ = (global::AllEnum.TeamColor)input.ReadEnum();
+                            break;
+                        }
                     case 48:
-                    {
-                        guardPokemonId_ = (global::AllEnum.PokemonId) input.ReadEnum();
-                        break;
-                    }
+                        {
+                            guardPokemonId_ = (global::AllEnum.PokemonId)input.ReadEnum();
+                            break;
+                        }
                     case 56:
-                    {
-                        GuardPokemonCp = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            GuardPokemonCp = input.ReadInt32();
+                            break;
+                        }
                     case 64:
-                    {
-                        Enabled = input.ReadBool();
-                        break;
-                    }
+                        {
+                            Enabled = input.ReadBool();
+                            break;
+                        }
                     case 72:
-                    {
-                        type_ = (global::AllEnum.FortType) input.ReadEnum();
-                        break;
-                    }
+                        {
+                            type_ = (global::AllEnum.FortType)input.ReadEnum();
+                            break;
+                        }
                     case 80:
-                    {
-                        GymPoints = input.ReadInt64();
-                        break;
-                    }
+                        {
+                            GymPoints = input.ReadInt64();
+                            break;
+                        }
                     case 88:
-                    {
-                        IsInBattle = input.ReadBool();
-                        break;
-                    }
+                        {
+                            IsInBattle = input.ReadBool();
+                            break;
+                        }
                     case 98:
-                    {
-                        ActiveFortModifier = input.ReadBytes();
-                        break;
-                    }
+                        {
+                            ActiveFortModifier = input.ReadBytes();
+                            break;
+                        }
                     case 106:
-                    {
-                        if (lureInfo_ == null)
                         {
-                            lureInfo_ = new global::PokemonGo.RocketAPI.GeneratedCode.FortLureInfo();
+                            if (lureInfo_ == null)
+                            {
+                                lureInfo_ = new global::PokemonGo.RocketAPI.GeneratedCode.FortLureInfo();
+                            }
+                            input.ReadMessage(lureInfo_);
+                            break;
                         }
-                        input.ReadMessage(lureInfo_);
-                        break;
-                    }
                     case 112:
-                    {
-                        CooldownCompleteTimestampMs = input.ReadInt64();
-                        break;
-                    }
+                        {
+                            CooldownCompleteTimestampMs = input.ReadInt64();
+                            break;
+                        }
                     case 120:
-                    {
-                        sponsor_ = (global::AllEnum.FortSponsor) input.ReadEnum();
-                        break;
-                    }
+                        {
+                            sponsor_ = (global::AllEnum.FortSponsor)input.ReadEnum();
+                            break;
+                        }
                     case 128:
-                    {
-                        renderingType_ = (global::AllEnum.FortRenderingType) input.ReadEnum();
-                        break;
-                    }
+                        {
+                            renderingType_ = (global::AllEnum.FortRenderingType)input.ReadEnum();
+                            break;
+                        }
                 }
             }
         }
@@ -8892,7 +8892,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             if (ActivePokemonId != 0)
             {
                 output.WriteRawTag(24);
-                output.WriteEnum((int) ActivePokemonId);
+                output.WriteEnum((int)ActivePokemonId);
             }
             if (LureExpiresTimestampMs != 0L)
             {
@@ -8914,7 +8914,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             }
             if (ActivePokemonId != 0)
             {
-                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) ActivePokemonId);
+                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int)ActivePokemonId);
             }
             if (LureExpiresTimestampMs != 0L)
             {
@@ -8958,25 +8958,25 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 10:
-                    {
-                        FortId = input.ReadString();
-                        break;
-                    }
+                        {
+                            FortId = input.ReadString();
+                            break;
+                        }
                     case 17:
-                    {
-                        Unknown2 = input.ReadDouble();
-                        break;
-                    }
+                        {
+                            Unknown2 = input.ReadDouble();
+                            break;
+                        }
                     case 24:
-                    {
-                        activePokemonId_ = (global::AllEnum.PokemonId) input.ReadEnum();
-                        break;
-                    }
+                        {
+                            activePokemonId_ = (global::AllEnum.PokemonId)input.ReadEnum();
+                            break;
+                        }
                     case 32:
-                    {
-                        LureExpiresTimestampMs = input.ReadInt64();
-                        break;
-                    }
+                        {
+                            LureExpiresTimestampMs = input.ReadInt64();
+                            break;
+                        }
                 }
             }
         }
@@ -9132,15 +9132,15 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 17:
-                    {
-                        Latitude = input.ReadDouble();
-                        break;
-                    }
+                        {
+                            Latitude = input.ReadDouble();
+                            break;
+                        }
                     case 25:
-                    {
-                        Longitude = input.ReadDouble();
-                        break;
-                    }
+                        {
+                            Longitude = input.ReadDouble();
+                            break;
+                        }
                 }
             }
         }
@@ -9344,25 +9344,25 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 8:
-                    {
-                        FortSummaryId = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            FortSummaryId = input.ReadInt32();
+                            break;
+                        }
                     case 16:
-                    {
-                        LastModifiedTimestampMs = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            LastModifiedTimestampMs = input.ReadInt32();
+                            break;
+                        }
                     case 24:
-                    {
-                        Latitude = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            Latitude = input.ReadInt32();
+                            break;
+                        }
                     case 32:
-                    {
-                        Longitude = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            Longitude = input.ReadInt32();
+                            break;
+                        }
                 }
             }
         }
@@ -9647,44 +9647,44 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 9:
-                    {
-                        EncounterId = input.ReadFixed64();
-                        break;
-                    }
+                        {
+                            EncounterId = input.ReadFixed64();
+                            break;
+                        }
                     case 16:
-                    {
-                        LastModifiedTimestampMs = input.ReadInt64();
-                        break;
-                    }
+                        {
+                            LastModifiedTimestampMs = input.ReadInt64();
+                            break;
+                        }
                     case 25:
-                    {
-                        Latitude = input.ReadDouble();
-                        break;
-                    }
+                        {
+                            Latitude = input.ReadDouble();
+                            break;
+                        }
                     case 33:
-                    {
-                        Longitude = input.ReadDouble();
-                        break;
-                    }
+                        {
+                            Longitude = input.ReadDouble();
+                            break;
+                        }
                     case 42:
-                    {
-                        SpawnpointId = input.ReadString();
-                        break;
-                    }
-                    case 58:
-                    {
-                        if (pokemonData_ == null)
                         {
-                            pokemonData_ = new global::PokemonGo.RocketAPI.GeneratedCode.PokemonData();
+                            SpawnpointId = input.ReadString();
+                            break;
+                        }
+                    case 58:
+                        {
+                            if (pokemonData_ == null)
+                            {
+                                pokemonData_ = new global::PokemonGo.RocketAPI.GeneratedCode.PokemonData();
+                            }
+                            input.ReadMessage(pokemonData_);
+                            break;
                         }
-                        input.ReadMessage(pokemonData_);
-                        break;
-                    }
                     case 88:
-                    {
-                        TimeTillHiddenMs = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            TimeTillHiddenMs = input.ReadInt32();
+                            break;
+                        }
                 }
             }
         }
@@ -10071,6 +10071,11 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             set { fromFort_ = value; }
         }

+        public float GetIV()
+        {
+            return ((float)(IndividualAttack + IndividualDefense + IndividualStamina) / (45.0f));
+        }
+
         pbr::MessageDescriptor pb::IMessage.Descriptor
         {
             get { return Descriptor; }
@@ -10134,7 +10139,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             if (PokemonId != 0)
             {
                 output.WriteRawTag(16);
-                output.WriteEnum((int) PokemonId);
+                output.WriteEnum((int)PokemonId);
             }
             if (Cp != 0)
             {
@@ -10154,12 +10159,12 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             if (Move1 != 0)
             {
                 output.WriteRawTag(48);
-                output.WriteEnum((int) Move1);
+                output.WriteEnum((int)Move1);
             }
             if (Move2 != 0)
             {
                 output.WriteRawTag(56);
-                output.WriteEnum((int) Move2);
+                output.WriteEnum((int)Move2);
             }
             if (DeployedFortId != 0)
             {
@@ -10287,7 +10292,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             }
             if (PokemonId != 0)
             {
-                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) PokemonId);
+                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int)PokemonId);
             }
             if (Cp != 0)
             {
@@ -10303,11 +10308,11 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             }
             if (Move1 != 0)
             {
-                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Move1);
+                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int)Move1);
             }
             if (Move2 != 0)
             {
-                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Move2);
+                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int)Move2);
             }
             if (DeployedFortId != 0)
             {
@@ -10543,155 +10548,155 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 9:
-                    {
-                        Id = input.ReadFixed64();
-                        break;
-                    }
+                        {
+                            Id = input.ReadFixed64();
+                            break;
+                        }
                     case 16:
-                    {
-                        pokemonId_ = (global::AllEnum.PokemonId) input.ReadEnum();
-                        break;
-                    }
+                        {
+                            pokemonId_ = (global::AllEnum.PokemonId)input.ReadEnum();
+                            break;
+                        }
                     case 24:
-                    {
-                        Cp = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            Cp = input.ReadInt32();
+                            break;
+                        }
                     case 32:
-                    {
-                        Stamina = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            Stamina = input.ReadInt32();
+                            break;
+                        }
                     case 40:
-                    {
-                        StaminaMax = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            StaminaMax = input.ReadInt32();
+                            break;
+                        }
                     case 48:
-                    {
-                        move1_ = (global::AllEnum.PokemonMove) input.ReadEnum();
-                        break;
-                    }
+                        {
+                            move1_ = (global::AllEnum.PokemonMove)input.ReadEnum();
+                            break;
+                        }
                     case 56:
-                    {
-                        move2_ = (global::AllEnum.PokemonMove) input.ReadEnum();
-                        break;
-                    }
+                        {
+                            move2_ = (global::AllEnum.PokemonMove)input.ReadEnum();
+                            break;
+                        }
                     case 64:
-                    {
-                        DeployedFortId = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            DeployedFortId = input.ReadInt32();
+                            break;
+                        }
                     case 74:
-                    {
-                        OwnerName = input.ReadString();
-                        break;
-                    }
+                        {
+                            OwnerName = input.ReadString();
+                            break;
+                        }
                     case 80:
-                    {
-                        IsEgg = input.ReadBool();
-                        break;
-                    }
+                        {
+                            IsEgg = input.ReadBool();
+                            break;
+                        }
                     case 88:
-                    {
-                        EggKmWalkedTarget = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            EggKmWalkedTarget = input.ReadInt32();
+                            break;
+                        }
                     case 96:
-                    {
-                        EggKmWalkedStart = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            EggKmWalkedStart = input.ReadInt32();
+                            break;
+                        }
                     case 112:
-                    {
-                        Origin = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            Origin = input.ReadInt32();
+                            break;
+                        }
                     case 125:
-                    {
-                        HeightM = input.ReadFloat();
-                        break;
-                    }
+                        {
+                            HeightM = input.ReadFloat();
+                            break;
+                        }
                     case 133:
-                    {
-                        WeightKg = input.ReadFloat();
-                        break;
-                    }
+                        {
+                            WeightKg = input.ReadFloat();
+                            break;
+                        }
                     case 136:
-                    {
-                        IndividualAttack = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            IndividualAttack = input.ReadInt32();
+                            break;
+                        }
                     case 144:
-                    {
-                        IndividualDefense = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            IndividualDefense = input.ReadInt32();
+                            break;
+                        }
                     case 152:
-                    {
-                        IndividualStamina = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            IndividualStamina = input.ReadInt32();
+                            break;
+                        }
                     case 160:
-                    {
-                        CpMultiplier = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            CpMultiplier = input.ReadInt32();
+                            break;
+                        }
                     case 168:
-                    {
-                        Pokeball = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            Pokeball = input.ReadInt32();
+                            break;
+                        }
                     case 176:
-                    {
-                        CapturedCellId = input.ReadUInt64();
-                        break;
-                    }
+                        {
+                            CapturedCellId = input.ReadUInt64();
+                            break;
+                        }
                     case 184:
-                    {
-                        BattlesAttacked = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            BattlesAttacked = input.ReadInt32();
+                            break;
+                        }
                     case 192:
-                    {
-                        BattlesDefended = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            BattlesDefended = input.ReadInt32();
+                            break;
+                        }
                     case 200:
-                    {
-                        EggIncubatorId = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            EggIncubatorId = input.ReadInt32();
+                            break;
+                        }
                     case 208:
-                    {
-                        CreationTimeMs = input.ReadUInt64();
-                        break;
-                    }
+                        {
+                            CreationTimeMs = input.ReadUInt64();
+                            break;
+                        }
                     case 216:
-                    {
-                        NumUpgrades = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            NumUpgrades = input.ReadInt32();
+                            break;
+                        }
                     case 224:
-                    {
-                        AdditionalCpMultiplier = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            AdditionalCpMultiplier = input.ReadInt32();
+                            break;
+                        }
                     case 232:
-                    {
-                        Favorite = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            Favorite = input.ReadInt32();
+                            break;
+                        }
                     case 242:
-                    {
-                        Nickname = input.ReadString();
-                        break;
-                    }
+                        {
+                            Nickname = input.ReadString();
+                            break;
+                        }
                     case 248:
-                    {
-                        FromFort = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            FromFort = input.ReadInt32();
+                            break;
+                        }
                 }
             }
         }
@@ -10884,7 +10889,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             if (PokemonId != 0)
             {
                 output.WriteRawTag(24);
-                output.WriteEnum((int) PokemonId);
+                output.WriteEnum((int)PokemonId);
             }
             if (ExpirationTimestampMs != 0L)
             {
@@ -10916,7 +10921,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             }
             if (PokemonId != 0)
             {
-                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) PokemonId);
+                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int)PokemonId);
             }
             if (ExpirationTimestampMs != 0L)
             {
@@ -10976,35 +10981,35 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 10:
-                    {
-                        SpawnpointId = input.ReadString();
-                        break;
-                    }
+                        {
+                            SpawnpointId = input.ReadString();
+                            break;
+                        }
                     case 17:
-                    {
-                        EncounterId = input.ReadFixed64();
-                        break;
-                    }
+                        {
+                            EncounterId = input.ReadFixed64();
+                            break;
+                        }
                     case 24:
-                    {
-                        pokemonId_ = (global::AllEnum.PokemonId) input.ReadEnum();
-                        break;
-                    }
+                        {
+                            pokemonId_ = (global::AllEnum.PokemonId)input.ReadEnum();
+                            break;
+                        }
                     case 32:
-                    {
-                        ExpirationTimestampMs = input.ReadInt64();
-                        break;
-                    }
+                        {
+                            ExpirationTimestampMs = input.ReadInt64();
+                            break;
+                        }
                     case 41:
-                    {
-                        Latitude = input.ReadDouble();
-                        break;
-                    }
+                        {
+                            Latitude = input.ReadDouble();
+                            break;
+                        }
                     case 49:
-                    {
-                        Longitude = input.ReadDouble();
-                        break;
-                    }
+                        {
+                            Longitude = input.ReadDouble();
+                            break;
+                        }
                 }
             }
         }
@@ -11124,7 +11129,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             if (PokemonId != 0)
             {
                 output.WriteRawTag(8);
-                output.WriteEnum((int) PokemonId);
+                output.WriteEnum((int)PokemonId);
             }
             if (DistanceInMeters != 0F)
             {
@@ -11143,7 +11148,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             var size = 0;
             if (PokemonId != 0)
             {
-                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) PokemonId);
+                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int)PokemonId);
             }
             if (DistanceInMeters != 0F)
             {
@@ -11187,20 +11192,20 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 8:
-                    {
-                        pokemonId_ = (global::AllEnum.PokemonId) input.ReadEnum();
-                        break;
-                    }
+                        {
+                            pokemonId_ = (global::AllEnum.PokemonId)input.ReadEnum();
+                            break;
+                        }
                     case 21:
-                    {
-                        DistanceInMeters = input.ReadFloat();
-                        break;
-                    }
+                        {
+                            DistanceInMeters = input.ReadFloat();
+                            break;
+                        }
                     case 25:
-                    {
-                        EncounterId = input.ReadFixed64();
-                        break;
-                    }
+                        {
+                            EncounterId = input.ReadFixed64();
+                            break;
+                        }
                 }
             }
         }
@@ -11384,24 +11389,24 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 10:
-                    {
-                        Error = input.ReadString();
-                        break;
-                    }
+                        {
+                            Error = input.ReadString();
+                            break;
+                        }
                     case 18:
-                    {
-                        Hash = input.ReadString();
-                        break;
-                    }
+                        {
+                            Hash = input.ReadString();
+                            break;
+                        }
                     case 26:
-                    {
-                        if (settings_ == null)
                         {
-                            settings_ = new global::PokemonGo.RocketAPI.GeneratedCode.GlobalSettings();
+                            if (settings_ == null)
+                            {
+                                settings_ = new global::PokemonGo.RocketAPI.GeneratedCode.GlobalSettings();
+                            }
+                            input.ReadMessage(settings_);
+                            break;
                         }
-                        input.ReadMessage(settings_);
-                        break;
-                    }
                 }
             }
         }
@@ -11647,46 +11652,46 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 18:
-                    {
-                        if (fortSettings_ == null)
                         {
-                            fortSettings_ = new global::PokemonGo.RocketAPI.GeneratedCode.FortSettings();
+                            if (fortSettings_ == null)
+                            {
+                                fortSettings_ = new global::PokemonGo.RocketAPI.GeneratedCode.FortSettings();
+                            }
+                            input.ReadMessage(fortSettings_);
+                            break;
                         }
-                        input.ReadMessage(fortSettings_);
-                        break;
-                    }
                     case 26:
-                    {
-                        if (mapSettings_ == null)
                         {
-                            mapSettings_ = new global::PokemonGo.RocketAPI.GeneratedCode.MapSettings();
+                            if (mapSettings_ == null)
+                            {
+                                mapSettings_ = new global::PokemonGo.RocketAPI.GeneratedCode.MapSettings();
+                            }
+                            input.ReadMessage(mapSettings_);
+                            break;
                         }
-                        input.ReadMessage(mapSettings_);
-                        break;
-                    }
                     case 34:
-                    {
-                        if (levelSettings_ == null)
                         {
-                            levelSettings_ = new global::PokemonGo.RocketAPI.GeneratedCode.LevelSettings();
+                            if (levelSettings_ == null)
+                            {
+                                levelSettings_ = new global::PokemonGo.RocketAPI.GeneratedCode.LevelSettings();
+                            }
+                            input.ReadMessage(levelSettings_);
+                            break;
                         }
-                        input.ReadMessage(levelSettings_);
-                        break;
-                    }
                     case 42:
-                    {
-                        if (inventorySettings_ == null)
                         {
-                            inventorySettings_ = new global::PokemonGo.RocketAPI.GeneratedCode.InventorySettings();
-                        }
-                        input.ReadMessage(inventorySettings_);
-                        break;
-                    }
-                    case 50:
-                    {
-                        MinimumClientVersion = input.ReadString();
-                        break;
-                    }
+                            if (inventorySettings_ == null)
+                            {
+                                inventorySettings_ = new global::PokemonGo.RocketAPI.GeneratedCode.InventorySettings();
+                            }
+                            input.ReadMessage(inventorySettings_);
+                            break;
+                        }
+                    case 50:
+                        {
+                            MinimumClientVersion = input.ReadString();
+                            break;
+                        }
                 }
             }
         }
@@ -11943,35 +11948,35 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 9:
-                    {
-                        InteractionRangeMeters = input.ReadDouble();
-                        break;
-                    }
+                        {
+                            InteractionRangeMeters = input.ReadDouble();
+                            break;
+                        }
                     case 16:
-                    {
-                        MaxTotalDeployedPokemon = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            MaxTotalDeployedPokemon = input.ReadInt32();
+                            break;
+                        }
                     case 24:
-                    {
-                        MaxPlayerDeployedPokemon = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            MaxPlayerDeployedPokemon = input.ReadInt32();
+                            break;
+                        }
                     case 33:
-                    {
-                        DeployStaminaMultiplier = input.ReadDouble();
-                        break;
-                    }
+                        {
+                            DeployStaminaMultiplier = input.ReadDouble();
+                            break;
+                        }
                     case 41:
-                    {
-                        DeployAttackMultiplier = input.ReadDouble();
-                        break;
-                    }
+                        {
+                            DeployAttackMultiplier = input.ReadDouble();
+                            break;
+                        }
                     case 49:
-                    {
-                        FarInteractionRangeMeters = input.ReadDouble();
-                        break;
-                    }
+                        {
+                            FarInteractionRangeMeters = input.ReadDouble();
+                            break;
+                        }
                 }
             }
         }
@@ -12254,40 +12259,40 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 9:
-                    {
-                        PokemonVisibleRange = input.ReadDouble();
-                        break;
-                    }
+                        {
+                            PokemonVisibleRange = input.ReadDouble();
+                            break;
+                        }
                     case 17:
-                    {
-                        PokeNavRangeMeters = input.ReadDouble();
-                        break;
-                    }
+                        {
+                            PokeNavRangeMeters = input.ReadDouble();
+                            break;
+                        }
                     case 25:
-                    {
-                        EncounterRangeMeters = input.ReadDouble();
-                        break;
-                    }
+                        {
+                            EncounterRangeMeters = input.ReadDouble();
+                            break;
+                        }
                     case 37:
-                    {
-                        GetMapObjectsMinRefreshSeconds = input.ReadFloat();
-                        break;
-                    }
+                        {
+                            GetMapObjectsMinRefreshSeconds = input.ReadFloat();
+                            break;
+                        }
                     case 45:
-                    {
-                        GetMapObjectsMaxRefreshSeconds = input.ReadFloat();
-                        break;
-                    }
+                        {
+                            GetMapObjectsMaxRefreshSeconds = input.ReadFloat();
+                            break;
+                        }
                     case 53:
-                    {
-                        GetMapObjectsMinDistanceMeters = input.ReadFloat();
-                        break;
-                    }
+                        {
+                            GetMapObjectsMinDistanceMeters = input.ReadFloat();
+                            break;
+                        }
                     case 58:
-                    {
-                        GoogleMapsApiKey = input.ReadString();
-                        break;
-                    }
+                        {
+                            GoogleMapsApiKey = input.ReadString();
+                            break;
+                        }
                 }
             }
         }
@@ -12446,15 +12451,15 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 17:
-                    {
-                        TrainerCpModifier = input.ReadDouble();
-                        break;
-                    }
+                        {
+                            TrainerCpModifier = input.ReadDouble();
+                            break;
+                        }
                     case 25:
-                    {
-                        TrainerDifficultyModifier = input.ReadDouble();
-                        break;
-                    }
+                        {
+                            TrainerDifficultyModifier = input.ReadDouble();
+                            break;
+                        }
                 }
             }
         }
@@ -12683,30 +12688,30 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 8:
-                    {
-                        MaxPokemon = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            MaxPokemon = input.ReadInt32();
+                            break;
+                        }
                     case 16:
-                    {
-                        MaxBagItems = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            MaxBagItems = input.ReadInt32();
+                            break;
+                        }
                     case 24:
-                    {
-                        BasePokemon = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            BasePokemon = input.ReadInt32();
+                            break;
+                        }
                     case 32:
-                    {
-                        BaseBagItems = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            BaseBagItems = input.ReadInt32();
+                            break;
+                        }
                     case 40:
-                    {
-                        BaseEggs = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            BaseEggs = input.ReadInt32();
+                            break;
+                        }
                 }
             }
         }
@@ -12863,15 +12868,15 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 9:
-                    {
-                        Latitude = input.ReadDouble();
-                        break;
-                    }
+                        {
+                            Latitude = input.ReadDouble();
+                            break;
+                        }
                     case 17:
-                    {
-                        Longitude = input.ReadDouble();
-                        break;
-                    }
+                        {
+                            Longitude = input.ReadDouble();
+                            break;
+                        }
                 }
             }
         }
@@ -13039,20 +13044,20 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 10:
-                    {
-                        wildPokemons_.AddEntriesFrom(input, _repeated_wildPokemons_codec);
-                        break;
-                    }
+                        {
+                            wildPokemons_.AddEntriesFrom(input, _repeated_wildPokemons_codec);
+                            break;
+                        }
                     case 18:
-                    {
-                        forts_.AddEntriesFrom(input, _repeated_forts_codec);
-                        break;
-                    }
+                        {
+                            forts_.AddEntriesFrom(input, _repeated_forts_codec);
+                            break;
+                        }
                     case 24:
-                    {
-                        FortsNearby = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            FortsNearby = input.ReadInt32();
+                            break;
+                        }
                 }
             }
         }
@@ -13338,20 +13343,20 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 8:
-                    {
-                        Success = input.ReadBool();
-                        break;
-                    }
+                        {
+                            Success = input.ReadBool();
+                            break;
+                        }
                     case 18:
-                    {
-                        itemTemplates_.AddEntriesFrom(input, _repeated_itemTemplates_codec);
-                        break;
-                    }
+                        {
+                            itemTemplates_.AddEntriesFrom(input, _repeated_itemTemplates_codec);
+                            break;
+                        }
                     case 24:
-                    {
-                        TimestampMs = input.ReadUInt64();
-                        break;
-                    }
+                        {
+                            TimestampMs = input.ReadUInt64();
+                            break;
+                        }
                 }
             }
         }
@@ -13928,150 +13933,150 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                                 input.SkipLastField();
                                 break;
                             case 10:
-                            {
-                                TemplateId = input.ReadString();
-                                break;
-                            }
+                                {
+                                    TemplateId = input.ReadString();
+                                    break;
+                                }
                             case 18:
-                            {
-                                if (pokemonSettings_ == null)
                                 {
-                                    pokemonSettings_ = new global::PokemonGo.RocketAPI.GeneratedCode.PokemonSettings();
+                                    if (pokemonSettings_ == null)
+                                    {
+                                        pokemonSettings_ = new global::PokemonGo.RocketAPI.GeneratedCode.PokemonSettings();
+                                    }
+                                    input.ReadMessage(pokemonSettings_);
+                                    break;
                                 }
-                                input.ReadMessage(pokemonSettings_);
-                                break;
-                            }
                             case 26:
-                            {
-                                if (itemSettings_ == null)
                                 {
-                                    itemSettings_ = new global::PokemonGo.RocketAPI.GeneratedCode.ItemSettings();
+                                    if (itemSettings_ == null)
+                                    {
+                                        itemSettings_ = new global::PokemonGo.RocketAPI.GeneratedCode.ItemSettings();
+                                    }
+                                    input.ReadMessage(itemSettings_);
+                                    break;
                                 }
-                                input.ReadMessage(itemSettings_);
-                                break;
-                            }
                             case 34:
-                            {
-                                if (moveSettings_ == null)
                                 {
-                                    moveSettings_ = new global::PokemonGo.RocketAPI.GeneratedCode.MoveSettings();
+                                    if (moveSettings_ == null)
+                                    {
+                                        moveSettings_ = new global::PokemonGo.RocketAPI.GeneratedCode.MoveSettings();
+                                    }
+                                    input.ReadMessage(moveSettings_);
+                                    break;
                                 }
-                                input.ReadMessage(moveSettings_);
-                                break;
-                            }
                             case 42:
-                            {
-                                if (moveSequenceSettings_ == null)
                                 {
-                                    moveSequenceSettings_ =
-                                        new global::PokemonGo.RocketAPI.GeneratedCode.MoveSequenceSettings();
+                                    if (moveSequenceSettings_ == null)
+                                    {
+                                        moveSequenceSettings_ =
+                                            new global::PokemonGo.RocketAPI.GeneratedCode.MoveSequenceSettings();
+                                    }
+                                    input.ReadMessage(moveSequenceSettings_);
+                                    break;
                                 }
-                                input.ReadMessage(moveSequenceSettings_);
-                                break;
-                            }
                             case 66:
-                            {
-                                if (typeEffective_ == null)
                                 {
-                                    typeEffective_ =
-                                        new global::PokemonGo.RocketAPI.GeneratedCode.TypeEffectiveSettings();
+                                    if (typeEffective_ == null)
+                                    {
+                                        typeEffective_ =
+                                            new global::PokemonGo.RocketAPI.GeneratedCode.TypeEffectiveSettings();
+                                    }
+                                    input.ReadMessage(typeEffective_);
+                                    break;
                                 }
-                                input.ReadMessage(typeEffective_);
-                                break;
-                            }
                             case 82:
-                            {
-                                if (badgeSettings_ == null)
                                 {
-                                    badgeSettings_ = new global::PokemonGo.RocketAPI.GeneratedCode.BadgeSettings();
+                                    if (badgeSettings_ == null)
+                                    {
+                                        badgeSettings_ = new global::PokemonGo.RocketAPI.GeneratedCode.BadgeSettings();
+                                    }
+                                    input.ReadMessage(badgeSettings_);
+                                    break;
                                 }
-                                input.ReadMessage(badgeSettings_);
-                                break;
-                            }
                             case 90:
-                            {
-                                if (camera_ == null)
                                 {
-                                    camera_ = new global::PokemonGo.RocketAPI.GeneratedCode.CameraSettings();
+                                    if (camera_ == null)
+                                    {
+                                        camera_ = new global::PokemonGo.RocketAPI.GeneratedCode.CameraSettings();
+                                    }
+                                    input.ReadMessage(camera_);
+                                    break;
                                 }
-                                input.ReadMessage(camera_);
-                                break;
-                            }
                             case 98:
-                            {
-                                if (playerLevel_ == null)
                                 {
-                                    playerLevel_ = new global::PokemonGo.RocketAPI.GeneratedCode.PlayerLevelSettings();
+                                    if (playerLevel_ == null)
+                                    {
+                                        playerLevel_ = new global::PokemonGo.RocketAPI.GeneratedCode.PlayerLevelSettings();
+                                    }
+                                    input.ReadMessage(playerLevel_);
+                                    break;
                                 }
-                                input.ReadMessage(playerLevel_);
-                                break;
-                            }
                             case 106:
-                            {
-                                if (gymLevel_ == null)
                                 {
-                                    gymLevel_ = new global::PokemonGo.RocketAPI.GeneratedCode.GymLevelSettings();
+                                    if (gymLevel_ == null)
+                                    {
+                                        gymLevel_ = new global::PokemonGo.RocketAPI.GeneratedCode.GymLevelSettings();
+                                    }
+                                    input.ReadMessage(gymLevel_);
+                                    break;
                                 }
-                                input.ReadMessage(gymLevel_);
-                                break;
-                            }
                             case 114:
-                            {
-                                if (battleSettings_ == null)
                                 {
-                                    battleSettings_ = new global::PokemonGo.RocketAPI.GeneratedCode.GymBattleSettings();
+                                    if (battleSettings_ == null)
+                                    {
+                                        battleSettings_ = new global::PokemonGo.RocketAPI.GeneratedCode.GymBattleSettings();
+                                    }
+                                    input.ReadMessage(battleSettings_);
+                                    break;
                                 }
-                                input.ReadMessage(battleSettings_);
-                                break;
-                            }
                             case 122:
-                            {
-                                if (encounterSettings_ == null)
                                 {
-                                    encounterSettings_ =
-                                        new global::PokemonGo.RocketAPI.GeneratedCode.EncounterSettings();
+                                    if (encounterSettings_ == null)
+                                    {
+                                        encounterSettings_ =
+                                            new global::PokemonGo.RocketAPI.GeneratedCode.EncounterSettings();
+                                    }
+                                    input.ReadMessage(encounterSettings_);
+                                    break;
                                 }
-                                input.ReadMessage(encounterSettings_);
-                                break;
-                            }
                             case 130:
-                            {
-                                if (iapItemDisplay_ == null)
                                 {
-                                    iapItemDisplay_ = new global::PokemonGo.RocketAPI.GeneratedCode.IapItemDisplay();
+                                    if (iapItemDisplay_ == null)
+                                    {
+                                        iapItemDisplay_ = new global::PokemonGo.RocketAPI.GeneratedCode.IapItemDisplay();
+                                    }
+                                    input.ReadMessage(iapItemDisplay_);
+                                    break;
                                 }
-                                input.ReadMessage(iapItemDisplay_);
-                                break;
-                            }
                             case 138:
-                            {
-                                if (iapSettings_ == null)
                                 {
-                                    iapSettings_ = new global::PokemonGo.RocketAPI.GeneratedCode.IapSettings();
+                                    if (iapSettings_ == null)
+                                    {
+                                        iapSettings_ = new global::PokemonGo.RocketAPI.GeneratedCode.IapSettings();
+                                    }
+                                    input.ReadMessage(iapSettings_);
+                                    break;
                                 }
-                                input.ReadMessage(iapSettings_);
-                                break;
-                            }
                             case 146:
-                            {
-                                if (pokemonUpgrades_ == null)
                                 {
-                                    pokemonUpgrades_ =
-                                        new global::PokemonGo.RocketAPI.GeneratedCode.PokemonUpgradeSettings();
+                                    if (pokemonUpgrades_ == null)
+                                    {
+                                        pokemonUpgrades_ =
+                                            new global::PokemonGo.RocketAPI.GeneratedCode.PokemonUpgradeSettings();
+                                    }
+                                    input.ReadMessage(pokemonUpgrades_);
+                                    break;
                                 }
-                                input.ReadMessage(pokemonUpgrades_);
-                                break;
-                            }
                             case 154:
-                            {
-                                if (equippedBadges_ == null)
                                 {
-                                    equippedBadges_ =
-                                        new global::PokemonGo.RocketAPI.GeneratedCode.EquippedBadgeSettings();
+                                    if (equippedBadges_ == null)
+                                    {
+                                        equippedBadges_ =
+                                            new global::PokemonGo.RocketAPI.GeneratedCode.EquippedBadgeSettings();
+                                    }
+                                    input.ReadMessage(equippedBadges_);
+                                    break;
                                 }
-                                input.ReadMessage(equippedBadges_);
-                                break;
-                            }
                         }
                     }
                 }
@@ -14205,7 +14210,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             if (ItemId != 0)
             {
                 output.WriteRawTag(8);
-                output.WriteEnum((int) ItemId);
+                output.WriteEnum((int)ItemId);
             }
             if (EncounterId != 0UL)
             {
@@ -14224,7 +14229,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             var size = 0;
             if (ItemId != 0)
             {
-                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) ItemId);
+                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int)ItemId);
             }
             if (EncounterId != 0UL)
             {
@@ -14268,20 +14273,20 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 8:
-                    {
-                        itemId_ = (global::AllEnum.ItemId) input.ReadEnum();
-                        break;
-                    }
+                        {
+                            itemId_ = (global::AllEnum.ItemId)input.ReadEnum();
+                            break;
+                        }
                     case 17:
-                    {
-                        EncounterId = input.ReadFixed64();
-                        break;
-                    }
+                        {
+                            EncounterId = input.ReadFixed64();
+                            break;
+                        }
                     case 26:
-                    {
-                        SpawnPointGuid = input.ReadString();
-                        break;
-                    }
+                        {
+                            SpawnPointGuid = input.ReadString();
+                            break;
+                        }
                 }
             }
         }
@@ -14316,7 +14321,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode

         private static readonly pb::MessageParser<UseItemRequest> _parser =
             new pb::MessageParser<UseItemRequest>(() => new UseItemRequest());
-
+
         private global::AllEnum.ItemId itemId_ = 0;

         public UseItemRequest()
@@ -14692,40 +14697,40 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 8:
-                    {
-                        Success = input.ReadBool();
-                        break;
-                    }
+                        {
+                            Success = input.ReadBool();
+                            break;
+                        }
                     case 17:
-                    {
-                        ItemCaptureMult = input.ReadDouble();
-                        break;
-                    }
+                        {
+                            ItemCaptureMult = input.ReadDouble();
+                            break;
+                        }
                     case 25:
-                    {
-                        ItemFleeMult = input.ReadDouble();
-                        break;
-                    }
+                        {
+                            ItemFleeMult = input.ReadDouble();
+                            break;
+                        }
                     case 32:
-                    {
-                        StopMovement = input.ReadBool();
-                        break;
-                    }
+                        {
+                            StopMovement = input.ReadBool();
+                            break;
+                        }
                     case 40:
-                    {
-                        StopAttack = input.ReadBool();
-                        break;
-                    }
+                        {
+                            StopAttack = input.ReadBool();
+                            break;
+                        }
                     case 48:
-                    {
-                        TargetMax = input.ReadBool();
-                        break;
-                    }
+                        {
+                            TargetMax = input.ReadBool();
+                            break;
+                        }
                     case 56:
-                    {
-                        TargetSlow = input.ReadBool();
-                        break;
-                    }
+                        {
+                            TargetSlow = input.ReadBool();
+                            break;
+                        }
                 }
             }
         }
@@ -14859,10 +14864,10 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 9:
-                    {
-                        PokemonId = input.ReadFixed64();
-                        break;
-                    }
+                        {
+                            PokemonId = input.ReadFixed64();
+                            break;
+                        }
                 }
             }
         }
@@ -14965,7 +14970,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             if (Result != 0)
             {
                 output.WriteRawTag(8);
-                output.WriteEnum((int) Result);
+                output.WriteEnum((int)Result);
             }
             if (CandyAwarded != 0)
             {
@@ -14979,7 +14984,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             var size = 0;
             if (Result != 0)
             {
-                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Result);
+                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int)Result);
             }
             if (CandyAwarded != 0)
             {
@@ -15015,17 +15020,17 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 8:
-                    {
-                        result_ =
-                            (global::PokemonGo.RocketAPI.GeneratedCode.ReleasePokemonResponse.Types.Result)
-                                input.ReadEnum();
-                        break;
-                    }
+                        {
+                            result_ =
+                                (global::PokemonGo.RocketAPI.GeneratedCode.ReleasePokemonResponse.Types.Result)
+                                    input.ReadEnum();
+                            break;
+                        }
                     case 16:
-                    {
-                        CandyAwarded = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            CandyAwarded = input.ReadInt32();
+                            break;
+                        }
                 }
             }
         }
@@ -15058,11 +15063,16 @@ namespace PokemonGo.RocketAPI.GeneratedCode
         {
             public enum Result
             {
-                [pbr::OriginalName("UNSET")] Unset = 0,
-                [pbr::OriginalName("SUCCESS")] Success = 1,
-                [pbr::OriginalName("POKEMON_DEPLOYED")] PokemonDeployed = 2,
-                [pbr::OriginalName("FAILED")] Failed = 3,
-                [pbr::OriginalName("ERROR_POKEMON_IS_EGG")] ErrorPokemonIsEgg = 4,
+                [pbr::OriginalName("UNSET")]
+                Unset = 0,
+                [pbr::OriginalName("SUCCESS")]
+                Success = 1,
+                [pbr::OriginalName("POKEMON_DEPLOYED")]
+                PokemonDeployed = 2,
+                [pbr::OriginalName("FAILED")]
+                Failed = 3,
+                [pbr::OriginalName("ERROR_POKEMON_IS_EGG")]
+                ErrorPokemonIsEgg = 4,
             }
         }

@@ -15348,34 +15358,34 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 8:
-                    {
-                        Success = input.ReadBool();
-                        break;
-                    }
+                        {
+                            Success = input.ReadBool();
+                            break;
+                        }
                     case 18:
                     case 16:
-                    {
-                        pokemonId_.AddEntriesFrom(input, _repeated_pokemonId_codec);
-                        break;
-                    }
+                        {
+                            pokemonId_.AddEntriesFrom(input, _repeated_pokemonId_codec);
+                            break;
+                        }
                     case 26:
                     case 24:
-                    {
-                        experienceAwarded_.AddEntriesFrom(input, _repeated_experienceAwarded_codec);
-                        break;
-                    }
+                        {
+                            experienceAwarded_.AddEntriesFrom(input, _repeated_experienceAwarded_codec);
+                            break;
+                        }
                     case 34:
                     case 32:
-                    {
-                        candyAwarded_.AddEntriesFrom(input, _repeated_candyAwarded_codec);
-                        break;
-                    }
+                        {
+                            candyAwarded_.AddEntriesFrom(input, _repeated_candyAwarded_codec);
+                            break;
+                        }
                     case 42:
                     case 40:
-                    {
-                        stardustAwarded_.AddEntriesFrom(input, _repeated_stardustAwarded_codec);
-                        break;
-                    }
+                        {
+                            stardustAwarded_.AddEntriesFrom(input, _repeated_stardustAwarded_codec);
+                            break;
+                        }
                 }
             }
         }
@@ -15607,30 +15617,30 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 10:
-                    {
-                        FortId = input.ReadString();
-                        break;
-                    }
+                        {
+                            FortId = input.ReadString();
+                            break;
+                        }
                     case 17:
-                    {
-                        PlayerLatitude = input.ReadDouble();
-                        break;
-                    }
+                        {
+                            PlayerLatitude = input.ReadDouble();
+                            break;
+                        }
                     case 25:
-                    {
-                        PlayerLongitude = input.ReadDouble();
-                        break;
-                    }
+                        {
+                            PlayerLongitude = input.ReadDouble();
+                            break;
+                        }
                     case 33:
-                    {
-                        FortLatitude = input.ReadDouble();
-                        break;
-                    }
+                        {
+                            FortLatitude = input.ReadDouble();
+                            break;
+                        }
                     case 41:
-                    {
-                        FortLongitude = input.ReadDouble();
-                        break;
-                    }
+                        {
+                            FortLongitude = input.ReadDouble();
+                            break;
+                        }
                 }
             }
         }
@@ -15807,7 +15817,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             if (Result != 0)
             {
                 output.WriteRawTag(8);
-                output.WriteEnum((int) Result);
+                output.WriteEnum((int)Result);
             }
             itemsAwarded_.WriteTo(output, _repeated_itemsAwarded_codec);
             if (GemsAwarded != 0)
@@ -15842,7 +15852,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             var size = 0;
             if (Result != 0)
             {
-                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Result);
+                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int)Result);
             }
             size += itemsAwarded_.CalculateSize(_repeated_itemsAwarded_codec);
             if (GemsAwarded != 0)
@@ -15916,45 +15926,45 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 8:
-                    {
-                        result_ =
-                            (global::PokemonGo.RocketAPI.GeneratedCode.FortSearchResponse.Types.Result) input.ReadEnum();
-                        break;
-                    }
+                        {
+                            result_ =
+                                (global::PokemonGo.RocketAPI.GeneratedCode.FortSearchResponse.Types.Result)input.ReadEnum();
+                            break;
+                        }
                     case 18:
-                    {
-                        itemsAwarded_.AddEntriesFrom(input, _repeated_itemsAwarded_codec);
-                        break;
-                    }
+                        {
+                            itemsAwarded_.AddEntriesFrom(input, _repeated_itemsAwarded_codec);
+                            break;
+                        }
                     case 24:
-                    {
-                        GemsAwarded = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            GemsAwarded = input.ReadInt32();
+                            break;
+                        }
                     case 34:
-                    {
-                        if (pokemonDataEgg_ == null)
                         {
-                            pokemonDataEgg_ = new global::PokemonGo.RocketAPI.GeneratedCode.PokemonData();
+                            if (pokemonDataEgg_ == null)
+                            {
+                                pokemonDataEgg_ = new global::PokemonGo.RocketAPI.GeneratedCode.PokemonData();
+                            }
+                            input.ReadMessage(pokemonDataEgg_);
+                            break;
                         }
-                        input.ReadMessage(pokemonDataEgg_);
-                        break;
-                    }
                     case 40:
-                    {
-                        ExperienceAwarded = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            ExperienceAwarded = input.ReadInt32();
+                            break;
+                        }
                     case 48:
-                    {
-                        CooldownCompleteTimestampMs = input.ReadInt64();
-                        break;
-                    }
+                        {
+                            CooldownCompleteTimestampMs = input.ReadInt64();
+                            break;
+                        }
                     case 56:
-                    {
-                        ChainHackSequenceNumber = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            ChainHackSequenceNumber = input.ReadInt32();
+                            break;
+                        }
                 }
             }
         }
@@ -15992,11 +16002,16 @@ namespace PokemonGo.RocketAPI.GeneratedCode
         {
             public enum Result
             {
-                [pbr::OriginalName("NO_RESULT_SET")] NoResultSet = 0,
-                [pbr::OriginalName("SUCCESS")] Success = 1,
-                [pbr::OriginalName("OUT_OF_RANGE")] OutOfRange = 2,
-                [pbr::OriginalName("IN_COOLDOWN_PERIOD")] InCooldownPeriod = 3,
-                [pbr::OriginalName("INVENTORY_FULL")] InventoryFull = 4,
+                [pbr::OriginalName("NO_RESULT_SET")]
+                NoResultSet = 0,
+                [pbr::OriginalName("SUCCESS")]
+                Success = 1,
+                [pbr::OriginalName("OUT_OF_RANGE")]
+                OutOfRange = 2,
+                [pbr::OriginalName("IN_COOLDOWN_PERIOD")]
+                InCooldownPeriod = 3,
+                [pbr::OriginalName("INVENTORY_FULL")]
+                InventoryFull = 4,
             }

             [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
@@ -16080,7 +16095,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                     if (ItemId != 0)
                     {
                         output.WriteRawTag(8);
-                        output.WriteEnum((int) ItemId);
+                        output.WriteEnum((int)ItemId);
                     }
                     if (ItemCount != 0)
                     {
@@ -16094,7 +16109,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                     var size = 0;
                     if (ItemId != 0)
                     {
-                        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) ItemId);
+                        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int)ItemId);
                     }
                     if (ItemCount != 0)
                     {
@@ -16130,15 +16145,15 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                                 input.SkipLastField();
                                 break;
                             case 8:
-                            {
-                                itemId_ = (global::AllEnum.ItemId) input.ReadEnum();
-                                break;
-                            }
+                                {
+                                    itemId_ = (global::AllEnum.ItemId)input.ReadEnum();
+                                    break;
+                                }
                             case 16:
-                            {
-                                ItemCount = input.ReadInt32();
-                                break;
-                            }
+                                {
+                                    ItemCount = input.ReadInt32();
+                                    break;
+                                }
                         }
                     }
                 }
@@ -16321,20 +16336,20 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 10:
-                    {
-                        FortId = input.ReadString();
-                        break;
-                    }
+                        {
+                            FortId = input.ReadString();
+                            break;
+                        }
                     case 17:
-                    {
-                        Latitude = input.ReadDouble();
-                        break;
-                    }
+                        {
+                            Latitude = input.ReadDouble();
+                            break;
+                        }
                     case 25:
-                    {
-                        Longitude = input.ReadDouble();
-                        break;
-                    }
+                        {
+                            Longitude = input.ReadDouble();
+                            break;
+                        }
                 }
             }
         }
@@ -16584,7 +16599,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             if (TeamColor != 0)
             {
                 output.WriteRawTag(16);
-                output.WriteEnum((int) TeamColor);
+                output.WriteEnum((int)TeamColor);
             }
             if (pokemonData_ != null)
             {
@@ -16615,7 +16630,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             if (Type != 0)
             {
                 output.WriteRawTag(72);
-                output.WriteEnum((int) Type);
+                output.WriteEnum((int)Type);
             }
             if (Latitude != 0D)
             {
@@ -16644,7 +16659,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             }
             if (TeamColor != 0)
             {
-                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) TeamColor);
+                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int)TeamColor);
             }
             if (pokemonData_ != null)
             {
@@ -16669,7 +16684,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             }
             if (Type != 0)
             {
-                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Type);
+                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int)Type);
             }
             if (Latitude != 0D)
             {
@@ -16756,74 +16771,74 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 10:
-                    {
-                        FortId = input.ReadString();
-                        break;
-                    }
+                        {
+                            FortId = input.ReadString();
+                            break;
+                        }
                     case 16:
-                    {
-                        teamColor_ = (global::AllEnum.TeamColor) input.ReadEnum();
-                        break;
-                    }
+                        {
+                            teamColor_ = (global::AllEnum.TeamColor)input.ReadEnum();
+                            break;
+                        }
                     case 26:
-                    {
-                        if (pokemonData_ == null)
                         {
-                            pokemonData_ = new global::PokemonGo.RocketAPI.GeneratedCode.PokemonData();
+                            if (pokemonData_ == null)
+                            {
+                                pokemonData_ = new global::PokemonGo.RocketAPI.GeneratedCode.PokemonData();
+                            }
+                            input.ReadMessage(pokemonData_);
+                            break;
                         }
-                        input.ReadMessage(pokemonData_);
-                        break;
-                    }
                     case 34:
-                    {
-                        Name = input.ReadString();
-                        break;
-                    }
+                        {
+                            Name = input.ReadString();
+                            break;
+                        }
                     case 42:
-                    {
-                        imageUrls_.AddEntriesFrom(input, _repeated_imageUrls_codec);
-                        break;
-                    }
+                        {
+                            imageUrls_.AddEntriesFrom(input, _repeated_imageUrls_codec);
+                            break;
+                        }
                     case 48:
-                    {
-                        Fp = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            Fp = input.ReadInt32();
+                            break;
+                        }
                     case 56:
-                    {
-                        Stamina = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            Stamina = input.ReadInt32();
+                            break;
+                        }
                     case 64:
-                    {
-                        MaxStamina = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            MaxStamina = input.ReadInt32();
+                            break;
+                        }
                     case 72:
-                    {
-                        type_ = (global::AllEnum.FortType) input.ReadEnum();
-                        break;
-                    }
+                        {
+                            type_ = (global::AllEnum.FortType)input.ReadEnum();
+                            break;
+                        }
                     case 81:
-                    {
-                        Latitude = input.ReadDouble();
-                        break;
-                    }
+                        {
+                            Latitude = input.ReadDouble();
+                            break;
+                        }
                     case 89:
-                    {
-                        Longitude = input.ReadDouble();
-                        break;
-                    }
+                        {
+                            Longitude = input.ReadDouble();
+                            break;
+                        }
                     case 98:
-                    {
-                        Description = input.ReadString();
-                        break;
-                    }
+                        {
+                            Description = input.ReadString();
+                            break;
+                        }
                     case 106:
-                    {
-                        modifiers_.AddEntriesFrom(input, _repeated_modifiers_codec);
-                        break;
-                    }
+                        {
+                            modifiers_.AddEntriesFrom(input, _repeated_modifiers_codec);
+                            break;
+                        }
                 }
             }
         }
@@ -16950,7 +16965,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             if (ItemId != 0)
             {
                 output.WriteRawTag(8);
-                output.WriteEnum((int) ItemId);
+                output.WriteEnum((int)ItemId);
             }
             if (ExpirationTimestampMs != 0L)
             {
@@ -16969,7 +16984,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             var size = 0;
             if (ItemId != 0)
             {
-                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) ItemId);
+                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int)ItemId);
             }
             if (ExpirationTimestampMs != 0L)
             {
@@ -17013,20 +17028,20 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 8:
-                    {
-                        itemId_ = (global::AllEnum.ItemId) input.ReadEnum();
-                        break;
-                    }
+                        {
+                            itemId_ = (global::AllEnum.ItemId)input.ReadEnum();
+                            break;
+                        }
                     case 16:
-                    {
-                        ExpirationTimestampMs = input.ReadInt64();
-                        break;
-                    }
+                        {
+                            ExpirationTimestampMs = input.ReadInt64();
+                            break;
+                        }
                     case 26:
-                    {
-                        DeployerPlayerCodename = input.ReadString();
-                        break;
-                    }
+                        {
+                            DeployerPlayerCodename = input.ReadString();
+                            break;
+                        }
                 }
             }
         }
@@ -17231,25 +17246,25 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 9:
-                    {
-                        EncounterId = input.ReadFixed64();
-                        break;
-                    }
+                        {
+                            EncounterId = input.ReadFixed64();
+                            break;
+                        }
                     case 18:
-                    {
-                        SpawnpointId = input.ReadString();
-                        break;
-                    }
+                        {
+                            SpawnpointId = input.ReadString();
+                            break;
+                        }
                     case 25:
-                    {
-                        PlayerLatitude = input.ReadDouble();
-                        break;
-                    }
+                        {
+                            PlayerLatitude = input.ReadDouble();
+                            break;
+                        }
                     case 33:
-                    {
-                        PlayerLongitude = input.ReadDouble();
-                        break;
-                    }
+                        {
+                            PlayerLongitude = input.ReadDouble();
+                            break;
+                        }
                 }
             }
         }
@@ -17384,12 +17399,12 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             if (Background != 0)
             {
                 output.WriteRawTag(16);
-                output.WriteEnum((int) Background);
+                output.WriteEnum((int)Background);
             }
             if (Status != 0)
             {
                 output.WriteRawTag(24);
-                output.WriteEnum((int) Status);
+                output.WriteEnum((int)Status);
             }
             if (captureProbability_ != null)
             {
@@ -17407,11 +17422,11 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             }
             if (Background != 0)
             {
-                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Background);
+                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int)Background);
             }
             if (Status != 0)
             {
-                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Status);
+                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int)Status);
             }
             if (captureProbability_ != null)
             {
@@ -17463,36 +17478,36 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 10:
-                    {
-                        if (wildPokemon_ == null)
                         {
-                            wildPokemon_ = new global::PokemonGo.RocketAPI.GeneratedCode.WildPokemon();
+                            if (wildPokemon_ == null)
+                            {
+                                wildPokemon_ = new global::PokemonGo.RocketAPI.GeneratedCode.WildPokemon();
+                            }
+                            input.ReadMessage(wildPokemon_);
+                            break;
                         }
-                        input.ReadMessage(wildPokemon_);
-                        break;
-                    }
                     case 16:
-                    {
-                        background_ =
-                            (global::PokemonGo.RocketAPI.GeneratedCode.EncounterResponse.Types.Background)
-                                input.ReadEnum();
-                        break;
-                    }
+                        {
+                            background_ =
+                                (global::PokemonGo.RocketAPI.GeneratedCode.EncounterResponse.Types.Background)
+                                    input.ReadEnum();
+                            break;
+                        }
                     case 24:
-                    {
-                        status_ =
-                            (global::PokemonGo.RocketAPI.GeneratedCode.EncounterResponse.Types.Status) input.ReadEnum();
-                        break;
-                    }
+                        {
+                            status_ =
+                                (global::PokemonGo.RocketAPI.GeneratedCode.EncounterResponse.Types.Status)input.ReadEnum();
+                            break;
+                        }
                     case 34:
-                    {
-                        if (captureProbability_ == null)
                         {
-                            captureProbability_ = new global::PokemonGo.RocketAPI.GeneratedCode.CaptureProbability();
+                            if (captureProbability_ == null)
+                            {
+                                captureProbability_ = new global::PokemonGo.RocketAPI.GeneratedCode.CaptureProbability();
+                            }
+                            input.ReadMessage(captureProbability_);
+                            break;
                         }
-                        input.ReadMessage(captureProbability_);
-                        break;
-                    }
                 }
             }
         }
@@ -17527,20 +17542,30 @@ namespace PokemonGo.RocketAPI.GeneratedCode
         {
             public enum Background
             {
-                [pbr::OriginalName("PARK")] Park = 0,
-                [pbr::OriginalName("DESERT")] Desert = 1,
+                [pbr::OriginalName("PARK")]
+                Park = 0,
+                [pbr::OriginalName("DESERT")]
+                Desert = 1,
             }

             public enum Status
             {
-                [pbr::OriginalName("ENCOUNTER_ERROR")] EncounterError = 0,
-                [pbr::OriginalName("ENCOUNTER_SUCCESS")] EncounterSuccess = 1,
-                [pbr::OriginalName("ENCOUNTER_NOT_FOUND")] EncounterNotFound = 2,
-                [pbr::OriginalName("ENCOUNTER_CLOSED")] EncounterClosed = 3,
-                [pbr::OriginalName("ENCOUNTER_POKEMON_FLED")] EncounterPokemonFled = 4,
-                [pbr::OriginalName("ENCOUNTER_NOT_IN_RANGE")] EncounterNotInRange = 5,
-                [pbr::OriginalName("ENCOUNTER_ALREADY_HAPPENED")] EncounterAlreadyHappened = 6,
-                [pbr::OriginalName("POKEMON_INVENTORY_FULL")] PokemonInventoryFull = 7,
+                [pbr::OriginalName("ENCOUNTER_ERROR")]
+                EncounterError = 0,
+                [pbr::OriginalName("ENCOUNTER_SUCCESS")]
+                EncounterSuccess = 1,
+                [pbr::OriginalName("ENCOUNTER_NOT_FOUND")]
+                EncounterNotFound = 2,
+                [pbr::OriginalName("ENCOUNTER_CLOSED")]
+                EncounterClosed = 3,
+                [pbr::OriginalName("ENCOUNTER_POKEMON_FLED")]
+                EncounterPokemonFled = 4,
+                [pbr::OriginalName("ENCOUNTER_NOT_IN_RANGE")]
+                EncounterNotInRange = 5,
+                [pbr::OriginalName("ENCOUNTER_ALREADY_HAPPENED")]
+                EncounterAlreadyHappened = 6,
+                [pbr::OriginalName("POKEMON_INVENTORY_FULL")]
+                PokemonInventoryFull = 7,
             }
         }

@@ -17563,7 +17588,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             new pb::MessageParser<CaptureProbability>(() => new CaptureProbability());

         private static readonly pb::FieldCodec<global::AllEnum.ItemId> _repeated_pokeballType_codec
-            = pb::FieldCodec.ForEnum(10, x => (int) x, x => (global::AllEnum.ItemId) x);
+            = pb::FieldCodec.ForEnum(10, x => (int)x, x => (global::AllEnum.ItemId)x);

         private static readonly pb::FieldCodec<float> _repeated_captureProbability_codec
             = pb::FieldCodec.ForFloat(18);
@@ -17688,21 +17713,21 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         break;
                     case 10:
                     case 8:
-                    {
-                        pokeballType_.AddEntriesFrom(input, _repeated_pokeballType_codec);
-                        break;
-                    }
+                        {
+                            pokeballType_.AddEntriesFrom(input, _repeated_pokeballType_codec);
+                            break;
+                        }
                     case 18:
                     case 21:
-                    {
-                        captureProbability_.AddEntriesFrom(input, _repeated_captureProbability_codec);
-                        break;
-                    }
+                        {
+                            captureProbability_.AddEntriesFrom(input, _repeated_captureProbability_codec);
+                            break;
+                        }
                     case 97:
-                    {
-                        ReticleDifficultyScale = input.ReadDouble();
-                        break;
-                    }
+                        {
+                            ReticleDifficultyScale = input.ReadDouble();
+                            break;
+                        }
                 }
             }
         }
@@ -17907,25 +17932,25 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 9:
-                    {
-                        EncounterId = input.ReadFixed64();
-                        break;
-                    }
+                        {
+                            EncounterId = input.ReadFixed64();
+                            break;
+                        }
                     case 18:
-                    {
-                        FortId = input.ReadString();
-                        break;
-                    }
+                        {
+                            FortId = input.ReadString();
+                            break;
+                        }
                     case 25:
-                    {
-                        PlayerLatitude = input.ReadDouble();
-                        break;
-                    }
+                        {
+                            PlayerLatitude = input.ReadDouble();
+                            break;
+                        }
                     case 33:
-                    {
-                        PlayerLongitude = input.ReadDouble();
-                        break;
-                    }
+                        {
+                            PlayerLongitude = input.ReadDouble();
+                            break;
+                        }
                 }
             }
         }
@@ -18043,7 +18068,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             if (Result != 0)
             {
                 output.WriteRawTag(8);
-                output.WriteEnum((int) Result);
+                output.WriteEnum((int)Result);
             }
             if (pokemonData_ != null)
             {
@@ -18062,7 +18087,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             var size = 0;
             if (Result != 0)
             {
-                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Result);
+                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int)Result);
             }
             if (pokemonData_ != null)
             {
@@ -18114,30 +18139,30 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 8:
-                    {
-                        result_ =
-                            (global::PokemonGo.RocketAPI.GeneratedCode.DiskEncounterResponse.Types.Result)
-                                input.ReadEnum();
-                        break;
-                    }
+                        {
+                            result_ =
+                                (global::PokemonGo.RocketAPI.GeneratedCode.DiskEncounterResponse.Types.Result)
+                                    input.ReadEnum();
+                            break;
+                        }
                     case 18:
-                    {
-                        if (pokemonData_ == null)
                         {
-                            pokemonData_ = new global::PokemonGo.RocketAPI.GeneratedCode.PokemonData();
+                            if (pokemonData_ == null)
+                            {
+                                pokemonData_ = new global::PokemonGo.RocketAPI.GeneratedCode.PokemonData();
+                            }
+                            input.ReadMessage(pokemonData_);
+                            break;
                         }
-                        input.ReadMessage(pokemonData_);
-                        break;
-                    }
                     case 26:
-                    {
-                        if (captureProbability_ == null)
                         {
-                            captureProbability_ = new global::PokemonGo.RocketAPI.GeneratedCode.CaptureProbability();
+                            if (captureProbability_ == null)
+                            {
+                                captureProbability_ = new global::PokemonGo.RocketAPI.GeneratedCode.CaptureProbability();
+                            }
+                            input.ReadMessage(captureProbability_);
+                            break;
                         }
-                        input.ReadMessage(captureProbability_);
-                        break;
-                    }
                 }
             }
         }
@@ -18171,12 +18196,18 @@ namespace PokemonGo.RocketAPI.GeneratedCode
         {
             public enum Result
             {
-                [pbr::OriginalName("UNKNOWN")] Unknown = 0,
-                [pbr::OriginalName("SUCCESS")] Success = 1,
-                [pbr::OriginalName("NOT_AVAILABLE")] NotAvailable = 2,
-                [pbr::OriginalName("NOT_IN_RANGE")] NotInRange = 3,
-                [pbr::OriginalName("ENCOUNTER_ALREADY_FINISHED")] EncounterAlreadyFinished = 4,
-                [pbr::OriginalName("POKEMON_INVENTORY_FULL")] PokemonInventoryFull = 5,
+                [pbr::OriginalName("UNKNOWN")]
+                Unknown = 0,
+                [pbr::OriginalName("SUCCESS")]
+                Success = 1,
+                [pbr::OriginalName("NOT_AVAILABLE")]
+                NotAvailable = 2,
+                [pbr::OriginalName("NOT_IN_RANGE")]
+                NotInRange = 3,
+                [pbr::OriginalName("ENCOUNTER_ALREADY_FINISHED")]
+                EncounterAlreadyFinished = 4,
+                [pbr::OriginalName("POKEMON_INVENTORY_FULL")]
+                PokemonInventoryFull = 5,
             }
         }

@@ -18436,40 +18467,40 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 9:
-                    {
-                        EncounterId = input.ReadFixed64();
-                        break;
-                    }
+                        {
+                            EncounterId = input.ReadFixed64();
+                            break;
+                        }
                     case 16:
-                    {
-                        Pokeball = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            Pokeball = input.ReadInt32();
+                            break;
+                        }
                     case 25:
-                    {
-                        NormalizedReticleSize = input.ReadDouble();
-                        break;
-                    }
+                        {
+                            NormalizedReticleSize = input.ReadDouble();
+                            break;
+                        }
                     case 34:
-                    {
-                        SpawnPointGuid = input.ReadString();
-                        break;
-                    }
+                        {
+                            SpawnPointGuid = input.ReadString();
+                            break;
+                        }
                     case 40:
-                    {
-                        HitPokemon = input.ReadBool();
-                        break;
-                    }
+                        {
+                            HitPokemon = input.ReadBool();
+                            break;
+                        }
                     case 49:
-                    {
-                        SpinModifier = input.ReadDouble();
-                        break;
-                    }
+                        {
+                            SpinModifier = input.ReadDouble();
+                            break;
+                        }
                     case 57:
-                    {
-                        NormalizedHitPosition = input.ReadDouble();
-                        break;
-                    }
+                        {
+                            NormalizedHitPosition = input.ReadDouble();
+                            break;
+                        }
                 }
             }
         }
@@ -18602,7 +18633,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             if (Status != 0)
             {
                 output.WriteRawTag(8);
-                output.WriteEnum((int) Status);
+                output.WriteEnum((int)Status);
             }
             if (MissPercent != 0D)
             {
@@ -18626,7 +18657,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             var size = 0;
             if (Status != 0)
             {
-                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Status);
+                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int)Status);
             }
             if (MissPercent != 0D)
             {
@@ -18682,31 +18713,31 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 8:
-                    {
-                        status_ =
-                            (global::PokemonGo.RocketAPI.GeneratedCode.CatchPokemonResponse.Types.CatchStatus)
-                                input.ReadEnum();
-                        break;
-                    }
+                        {
+                            status_ =
+                                (global::PokemonGo.RocketAPI.GeneratedCode.CatchPokemonResponse.Types.CatchStatus)
+                                    input.ReadEnum();
+                            break;
+                        }
                     case 17:
-                    {
-                        MissPercent = input.ReadDouble();
-                        break;
-                    }
+                        {
+                            MissPercent = input.ReadDouble();
+                            break;
+                        }
                     case 24:
-                    {
-                        CapturedPokemonId = input.ReadUInt64();
-                        break;
-                    }
+                        {
+                            CapturedPokemonId = input.ReadUInt64();
+                            break;
+                        }
                     case 34:
-                    {
-                        if (scores_ == null)
                         {
-                            scores_ = new global::PokemonGo.RocketAPI.GeneratedCode.CaptureScore();
+                            if (scores_ == null)
+                            {
+                                scores_ = new global::PokemonGo.RocketAPI.GeneratedCode.CaptureScore();
+                            }
+                            input.ReadMessage(scores_);
+                            break;
                         }
-                        input.ReadMessage(scores_);
-                        break;
-                    }
                 }
             }
         }
@@ -18741,11 +18772,16 @@ namespace PokemonGo.RocketAPI.GeneratedCode
         {
             public enum CatchStatus
             {
-                [pbr::OriginalName("CATCH_ERROR")] CatchError = 0,
-                [pbr::OriginalName("CATCH_SUCCESS")] CatchSuccess = 1,
-                [pbr::OriginalName("CATCH_ESCAPE")] CatchEscape = 2,
-                [pbr::OriginalName("CATCH_FLEE")] CatchFlee = 3,
-                [pbr::OriginalName("CATCH_MISSED")] CatchMissed = 4,
+                [pbr::OriginalName("CATCH_ERROR")]
+                CatchError = 0,
+                [pbr::OriginalName("CATCH_SUCCESS")]
+                CatchSuccess = 1,
+                [pbr::OriginalName("CATCH_ESCAPE")]
+                CatchEscape = 2,
+                [pbr::OriginalName("CATCH_FLEE")]
+                CatchFlee = 3,
+                [pbr::OriginalName("CATCH_MISSED")]
+                CatchMissed = 4,
             }
         }

@@ -18771,7 +18807,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             new pb::MessageParser<CaptureScore>(() => new CaptureScore());

         private static readonly pb::FieldCodec<global::AllEnum.ActivityType> _repeated_activityType_codec
-            = pb::FieldCodec.ForEnum(10, x => (int) x, x => (global::AllEnum.ActivityType) x);
+            = pb::FieldCodec.ForEnum(10, x => (int)x, x => (global::AllEnum.ActivityType)x);

         private static readonly pb::FieldCodec<int> _repeated_xp_codec
             = pb::FieldCodec.ForInt32(18);
@@ -18901,28 +18937,28 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         break;
                     case 10:
                     case 8:
-                    {
-                        activityType_.AddEntriesFrom(input, _repeated_activityType_codec);
-                        break;
-                    }
+                        {
+                            activityType_.AddEntriesFrom(input, _repeated_activityType_codec);
+                            break;
+                        }
                     case 18:
                     case 16:
-                    {
-                        xp_.AddEntriesFrom(input, _repeated_xp_codec);
-                        break;
-                    }
+                        {
+                            xp_.AddEntriesFrom(input, _repeated_xp_codec);
+                            break;
+                        }
                     case 26:
                     case 24:
-                    {
-                        candy_.AddEntriesFrom(input, _repeated_candy_codec);
-                        break;
-                    }
+                        {
+                            candy_.AddEntriesFrom(input, _repeated_candy_codec);
+                            break;
+                        }
                     case 34:
                     case 32:
-                    {
-                        stardust_.AddEntriesFrom(input, _repeated_stardust_codec);
-                        break;
-                    }
+                        {
+                            stardust_.AddEntriesFrom(input, _repeated_stardust_codec);
+                            break;
+                        }
                 }
             }
         }
@@ -19072,7 +19108,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             new pb::MessageParser<CheckAwardedBadgesResponse>(() => new CheckAwardedBadgesResponse());

         private static readonly pb::FieldCodec<global::AllEnum.BadgeType> _repeated_awardedBadges_codec
-            = pb::FieldCodec.ForEnum(18, x => (int) x, x => (global::AllEnum.BadgeType) x);
+            = pb::FieldCodec.ForEnum(18, x => (int)x, x => (global::AllEnum.BadgeType)x);

         private static readonly pb::FieldCodec<int> _repeated_awardedBadgeLevels_codec
             = pb::FieldCodec.ForInt32(26);
@@ -19196,22 +19232,22 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 8:
-                    {
-                        Success = input.ReadBool();
-                        break;
-                    }
+                        {
+                            Success = input.ReadBool();
+                            break;
+                        }
                     case 18:
                     case 16:
-                    {
-                        awardedBadges_.AddEntriesFrom(input, _repeated_awardedBadges_codec);
-                        break;
-                    }
+                        {
+                            awardedBadges_.AddEntriesFrom(input, _repeated_awardedBadges_codec);
+                            break;
+                        }
                     case 26:
                     case 24:
-                    {
-                        awardedBadgeLevels_.AddEntriesFrom(input, _repeated_awardedBadgeLevels_codec);
-                        break;
-                    }
+                        {
+                            awardedBadgeLevels_.AddEntriesFrom(input, _repeated_awardedBadgeLevels_codec);
+                            break;
+                        }
                 }
             }
         }
@@ -19375,22 +19411,22 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 8:
-                    {
-                        EquipBadgeCooldownMs = input.ReadInt64();
-                        break;
-                    }
+                        {
+                            EquipBadgeCooldownMs = input.ReadInt64();
+                            break;
+                        }
                     case 18:
                     case 21:
-                    {
-                        catchProbabilityBonus_.AddEntriesFrom(input, _repeated_catchProbabilityBonus_codec);
-                        break;
-                    }
+                        {
+                            catchProbabilityBonus_.AddEntriesFrom(input, _repeated_catchProbabilityBonus_codec);
+                            break;
+                        }
                     case 26:
                     case 29:
-                    {
-                        fleeProbabilityBonus_.AddEntriesFrom(input, _repeated_fleeProbabilityBonus_codec);
-                        break;
-                    }
+                        {
+                            fleeProbabilityBonus_.AddEntriesFrom(input, _repeated_fleeProbabilityBonus_codec);
+                            break;
+                        }
                 }
             }
         }
@@ -19579,27 +19615,27 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 8:
-                    {
-                        UpgradesPerLevel = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            UpgradesPerLevel = input.ReadInt32();
+                            break;
+                        }
                     case 16:
-                    {
-                        AllowedLevelsAbovePlayer = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            AllowedLevelsAbovePlayer = input.ReadInt32();
+                            break;
+                        }
                     case 26:
                     case 24:
-                    {
-                        candyCost_.AddEntriesFrom(input, _repeated_candyCost_codec);
-                        break;
-                    }
+                        {
+                            candyCost_.AddEntriesFrom(input, _repeated_candyCost_codec);
+                            break;
+                        }
                     case 34:
                     case 32:
-                    {
-                        stardustCost_.AddEntriesFrom(input, _repeated_stardustCost_codec);
-                        break;
-                    }
+                        {
+                            stardustCost_.AddEntriesFrom(input, _repeated_stardustCost_codec);
+                            break;
+                        }
                 }
             }
         }
@@ -19864,41 +19900,41 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 8:
-                    {
-                        DailyBonusCoins = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            DailyBonusCoins = input.ReadInt32();
+                            break;
+                        }
                     case 18:
                     case 16:
-                    {
-                        dailyDefenderBonusPerPokemon_.AddEntriesFrom(input, _repeated_dailyDefenderBonusPerPokemon_codec);
-                        break;
-                    }
+                        {
+                            dailyDefenderBonusPerPokemon_.AddEntriesFrom(input, _repeated_dailyDefenderBonusPerPokemon_codec);
+                            break;
+                        }
                     case 24:
-                    {
-                        DailyDefenderBonusMaxDefenders = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            DailyDefenderBonusMaxDefenders = input.ReadInt32();
+                            break;
+                        }
                     case 34:
-                    {
-                        dailyDefenderBonusCurrency_.AddEntriesFrom(input, _repeated_dailyDefenderBonusCurrency_codec);
-                        break;
-                    }
+                        {
+                            dailyDefenderBonusCurrency_.AddEntriesFrom(input, _repeated_dailyDefenderBonusCurrency_codec);
+                            break;
+                        }
                     case 40:
-                    {
-                        MinTimeBetweenClaimsMs = input.ReadInt64();
-                        break;
-                    }
+                        {
+                            MinTimeBetweenClaimsMs = input.ReadInt64();
+                            break;
+                        }
                     case 48:
-                    {
-                        DailyBonusEnabled = input.ReadBool();
-                        break;
-                    }
+                        {
+                            DailyBonusEnabled = input.ReadBool();
+                            break;
+                        }
                     case 56:
-                    {
-                        DailyDefenderBonusEnabled = input.ReadBool();
-                        break;
-                    }
+                        {
+                            DailyDefenderBonusEnabled = input.ReadBool();
+                            break;
+                        }
                 }
             }
         }
@@ -19951,7 +19987,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             new pb::MessageParser<IapItemDisplay>(() => new IapItemDisplay());

         private static readonly pb::FieldCodec<global::AllEnum.ItemId> _repeated_itemIds_codec
-            = pb::FieldCodec.ForEnum(34, x => (int) x, x => (global::AllEnum.ItemId) x);
+            = pb::FieldCodec.ForEnum(34, x => (int)x, x => (global::AllEnum.ItemId)x);

         private static readonly pb::FieldCodec<int> _repeated_counts_codec
             = pb::FieldCodec.ForInt32(42);
@@ -20055,7 +20091,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             if (Category != 0)
             {
                 output.WriteRawTag(16);
-                output.WriteEnum((int) Category);
+                output.WriteEnum((int)Category);
             }
             if (SortOrder != 0)
             {
@@ -20075,7 +20111,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             }
             if (Category != 0)
             {
-                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Category);
+                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int)Category);
             }
             if (SortOrder != 0)
             {
@@ -20119,32 +20155,32 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 10:
-                    {
-                        Sku = input.ReadString();
-                        break;
-                    }
+                        {
+                            Sku = input.ReadString();
+                            break;
+                        }
                     case 16:
-                    {
-                        category_ = (global::AllEnum.HoloIapItemCategory) input.ReadEnum();
-                        break;
-                    }
+                        {
+                            category_ = (global::AllEnum.HoloIapItemCategory)input.ReadEnum();
+                            break;
+                        }
                     case 24:
-                    {
-                        SortOrder = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            SortOrder = input.ReadInt32();
+                            break;
+                        }
                     case 34:
                     case 32:
-                    {
-                        itemIds_.AddEntriesFrom(input, _repeated_itemIds_codec);
-                        break;
-                    }
+                        {
+                            itemIds_.AddEntriesFrom(input, _repeated_itemIds_codec);
+                            break;
+                        }
                     case 42:
                     case 40:
-                    {
-                        counts_.AddEntriesFrom(input, _repeated_counts_codec);
-                        break;
-                    }
+                        {
+                            counts_.AddEntriesFrom(input, _repeated_counts_codec);
+                            break;
+                        }
                 }
             }
         }
@@ -20376,30 +20412,30 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 13:
-                    {
-                        SpinBonusThreshold = input.ReadFloat();
-                        break;
-                    }
+                        {
+                            SpinBonusThreshold = input.ReadFloat();
+                            break;
+                        }
                     case 21:
-                    {
-                        ExcellentThrowThreshold = input.ReadFloat();
-                        break;
-                    }
+                        {
+                            ExcellentThrowThreshold = input.ReadFloat();
+                            break;
+                        }
                     case 29:
-                    {
-                        GreatThrowThreshold = input.ReadFloat();
-                        break;
-                    }
+                        {
+                            GreatThrowThreshold = input.ReadFloat();
+                            break;
+                        }
                     case 37:
-                    {
-                        NiceThrowThreshold = input.ReadFloat();
-                        break;
-                    }
+                        {
+                            NiceThrowThreshold = input.ReadFloat();
+                            break;
+                        }
                     case 40:
-                    {
-                        MilestoneThreshold = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            MilestoneThreshold = input.ReadInt32();
+                            break;
+                        }
                 }
             }
         }
@@ -20856,75 +20892,75 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 13:
-                    {
-                        EnergyPerSec = input.ReadFloat();
-                        break;
-                    }
+                        {
+                            EnergyPerSec = input.ReadFloat();
+                            break;
+                        }
                     case 21:
-                    {
-                        DodgeEnergyCost = input.ReadFloat();
-                        break;
-                    }
+                        {
+                            DodgeEnergyCost = input.ReadFloat();
+                            break;
+                        }
                     case 29:
-                    {
-                        RetargetSeconds = input.ReadFloat();
-                        break;
-                    }
+                        {
+                            RetargetSeconds = input.ReadFloat();
+                            break;
+                        }
                     case 37:
-                    {
-                        EnemyAttackInterval = input.ReadFloat();
-                        break;
-                    }
+                        {
+                            EnemyAttackInterval = input.ReadFloat();
+                            break;
+                        }
                     case 45:
-                    {
-                        AttackServerInterval = input.ReadFloat();
-                        break;
-                    }
+                        {
+                            AttackServerInterval = input.ReadFloat();
+                            break;
+                        }
                     case 53:
-                    {
-                        RoundDurationSeconds = input.ReadFloat();
-                        break;
-                    }
+                        {
+                            RoundDurationSeconds = input.ReadFloat();
+                            break;
+                        }
                     case 61:
-                    {
-                        BonusTimePerAllySeconds = input.ReadFloat();
-                        break;
-                    }
+                        {
+                            BonusTimePerAllySeconds = input.ReadFloat();
+                            break;
+                        }
                     case 64:
-                    {
-                        MaximumAttackersPerBattle = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            MaximumAttackersPerBattle = input.ReadInt32();
+                            break;
+                        }
                     case 77:
-                    {
-                        SameTypeAttackBonusMultiplier = input.ReadFloat();
-                        break;
-                    }
+                        {
+                            SameTypeAttackBonusMultiplier = input.ReadFloat();
+                            break;
+                        }
                     case 80:
-                    {
-                        MaximumEnergy = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            MaximumEnergy = input.ReadInt32();
+                            break;
+                        }
                     case 93:
-                    {
-                        EnergyDeltaPerHealthLost = input.ReadFloat();
-                        break;
-                    }
+                        {
+                            EnergyDeltaPerHealthLost = input.ReadFloat();
+                            break;
+                        }
                     case 96:
-                    {
-                        DodgeDurationMs = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            DodgeDurationMs = input.ReadInt32();
+                            break;
+                        }
                     case 104:
-                    {
-                        MinimumPlayerLevel = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            MinimumPlayerLevel = input.ReadInt32();
+                            break;
+                        }
                     case 112:
-                    {
-                        SwapDurationMs = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            SwapDurationMs = input.ReadInt32();
+                            break;
+                        }
                 }
             }
         }
@@ -21109,28 +21145,28 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         break;
                     case 10:
                     case 8:
-                    {
-                        requiredExperience_.AddEntriesFrom(input, _repeated_requiredExperience_codec);
-                        break;
-                    }
+                        {
+                            requiredExperience_.AddEntriesFrom(input, _repeated_requiredExperience_codec);
+                            break;
+                        }
                     case 18:
                     case 16:
-                    {
-                        leaderSlots_.AddEntriesFrom(input, _repeated_leaderSlots_codec);
-                        break;
-                    }
+                        {
+                            leaderSlots_.AddEntriesFrom(input, _repeated_leaderSlots_codec);
+                            break;
+                        }
                     case 26:
                     case 24:
-                    {
-                        trainerSlots_.AddEntriesFrom(input, _repeated_trainerSlots_codec);
-                        break;
-                    }
+                        {
+                            trainerSlots_.AddEntriesFrom(input, _repeated_trainerSlots_codec);
+                            break;
+                        }
                     case 34:
                     case 32:
-                    {
-                        searchRollBonus_.AddEntriesFrom(input, _repeated_searchRollBonus_codec);
-                        break;
-                    }
+                        {
+                            searchRollBonus_.AddEntriesFrom(input, _repeated_searchRollBonus_codec);
+                            break;
+                        }
                 }
             }
         }
@@ -21338,32 +21374,32 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         break;
                     case 10:
                     case 8:
-                    {
-                        rankNum_.AddEntriesFrom(input, _repeated_rankNum_codec);
-                        break;
-                    }
+                        {
+                            rankNum_.AddEntriesFrom(input, _repeated_rankNum_codec);
+                            break;
+                        }
                     case 18:
                     case 16:
-                    {
-                        requiredExperience_.AddEntriesFrom(input, _repeated_requiredExperience_codec);
-                        break;
-                    }
+                        {
+                            requiredExperience_.AddEntriesFrom(input, _repeated_requiredExperience_codec);
+                            break;
+                        }
                     case 26:
                     case 29:
-                    {
-                        cpMultiplier_.AddEntriesFrom(input, _repeated_cpMultiplier_codec);
-                        break;
-                    }
+                        {
+                            cpMultiplier_.AddEntriesFrom(input, _repeated_cpMultiplier_codec);
+                            break;
+                        }
                     case 32:
-                    {
-                        MaxEggPlayerLevel = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            MaxEggPlayerLevel = input.ReadInt32();
+                            break;
+                        }
                     case 40:
-                    {
-                        MaxEncounterPlayerLevel = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            MaxEncounterPlayerLevel = input.ReadInt32();
+                            break;
+                        }
                 }
             }
         }
@@ -21447,10 +21483,10 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             new pb::MessageParser<CameraSettings>(() => new CameraSettings());

         private static readonly pb::FieldCodec<global::AllEnum.CameraInterpolation> _repeated_interpolation_codec
-            = pb::FieldCodec.ForEnum(18, x => (int) x, x => (global::AllEnum.CameraInterpolation) x);
+            = pb::FieldCodec.ForEnum(18, x => (int)x, x => (global::AllEnum.CameraInterpolation)x);

         private static readonly pb::FieldCodec<global::AllEnum.CameraTarget> _repeated_targetType_codec
-            = pb::FieldCodec.ForEnum(26, x => (int) x, x => (global::AllEnum.CameraTarget) x);
+            = pb::FieldCodec.ForEnum(26, x => (int)x, x => (global::AllEnum.CameraTarget)x);

         private static readonly pb::FieldCodec<float> _repeated_easeInSpeed_codec
             = pb::FieldCodec.ForFloat(34);
@@ -21756,100 +21792,100 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 10:
-                    {
-                        NextCamera = input.ReadString();
-                        break;
-                    }
+                        {
+                            NextCamera = input.ReadString();
+                            break;
+                        }
                     case 18:
                     case 16:
-                    {
-                        interpolation_.AddEntriesFrom(input, _repeated_interpolation_codec);
-                        break;
-                    }
+                        {
+                            interpolation_.AddEntriesFrom(input, _repeated_interpolation_codec);
+                            break;
+                        }
                     case 26:
                     case 24:
-                    {
-                        targetType_.AddEntriesFrom(input, _repeated_targetType_codec);
-                        break;
-                    }
+                        {
+                            targetType_.AddEntriesFrom(input, _repeated_targetType_codec);
+                            break;
+                        }
                     case 34:
                     case 37:
-                    {
-                        easeInSpeed_.AddEntriesFrom(input, _repeated_easeInSpeed_codec);
-                        break;
-                    }
+                        {
+                            easeInSpeed_.AddEntriesFrom(input, _repeated_easeInSpeed_codec);
+                            break;
+                        }
                     case 42:
                     case 45:
-                    {
-                        eastOutSpeed_.AddEntriesFrom(input, _repeated_eastOutSpeed_codec);
-                        break;
-                    }
+                        {
+                            eastOutSpeed_.AddEntriesFrom(input, _repeated_eastOutSpeed_codec);
+                            break;
+                        }
                     case 50:
                     case 53:
-                    {
-                        durationSeconds_.AddEntriesFrom(input, _repeated_durationSeconds_codec);
-                        break;
-                    }
+                        {
+                            durationSeconds_.AddEntriesFrom(input, _repeated_durationSeconds_codec);
+                            break;
+                        }
                     case 58:
                     case 61:
-                    {
-                        waitSeconds_.AddEntriesFrom(input, _repeated_waitSeconds_codec);
-                        break;
-                    }
+                        {
+                            waitSeconds_.AddEntriesFrom(input, _repeated_waitSeconds_codec);
+                            break;
+                        }
                     case 66:
                     case 69:
-                    {
-                        transitionSeconds_.AddEntriesFrom(input, _repeated_transitionSeconds_codec);
-                        break;
-                    }
+                        {
+                            transitionSeconds_.AddEntriesFrom(input, _repeated_transitionSeconds_codec);
+                            break;
+                        }
                     case 74:
                     case 77:
-                    {
-                        angleDegree_.AddEntriesFrom(input, _repeated_angleDegree_codec);
-                        break;
-                    }
+                        {
+                            angleDegree_.AddEntriesFrom(input, _repeated_angleDegree_codec);
+                            break;
+                        }
                     case 82:
                     case 85:
-                    {
-                        angleOffsetDegree_.AddEntriesFrom(input, _repeated_angleOffsetDegree_codec);
-                        break;
-                    }
+                        {
+                            angleOffsetDegree_.AddEntriesFrom(input, _repeated_angleOffsetDegree_codec);
+                            break;
+                        }
                     case 90:
                     case 93:
-                    {
-                        pitchDegree_.AddEntriesFrom(input, _repeated_pitchDegree_codec);
-                        break;
-                    }
+                        {
+                            pitchDegree_.AddEntriesFrom(input, _repeated_pitchDegree_codec);
+                            break;
+                        }
                     case 98:
                     case 101:
-                    {
-                        pitchOffsetDegree_.AddEntriesFrom(input, _repeated_pitchOffsetDegree_codec);
-                        break;
-                    }
+                        {
+                            pitchOffsetDegree_.AddEntriesFrom(input, _repeated_pitchOffsetDegree_codec);
+                            break;
+                        }
                     case 106:
                     case 109:
-                    {
-                        rollDegree_.AddEntriesFrom(input, _repeated_rollDegree_codec);
-                        break;
-                    }
+                        {
+                            rollDegree_.AddEntriesFrom(input, _repeated_rollDegree_codec);
+                            break;
+                        }
                     case 114:
                     case 117:
-                    {
-                        distanceMeters_.AddEntriesFrom(input, _repeated_distanceMeters_codec);
-                        break;
-                    }
+                        {
+                            distanceMeters_.AddEntriesFrom(input, _repeated_distanceMeters_codec);
+                            break;
+                        }
                     case 122:
                     case 125:
-                    {
-                        heightPercent_.AddEntriesFrom(input, _repeated_heightPercent_codec);
-                        break;
-                    }
+                        {
+                            heightPercent_.AddEntriesFrom(input, _repeated_heightPercent_codec);
+                            break;
+                        }
                     case 130:
                     case 133:
-                    {
-                        vertCtrRatio_.AddEntriesFrom(input, _repeated_vertCtrRatio_codec);
-                        break;
-                    }
+                        {
+                            vertCtrRatio_.AddEntriesFrom(input, _repeated_vertCtrRatio_codec);
+                            break;
+                        }
                 }
             }
         }
@@ -21981,7 +22017,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             if (BadgeType != 0)
             {
                 output.WriteRawTag(8);
-                output.WriteEnum((int) BadgeType);
+                output.WriteEnum((int)BadgeType);
             }
             if (BadgeRank != 0)
             {
@@ -21996,7 +22032,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             var size = 0;
             if (BadgeType != 0)
             {
-                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) BadgeType);
+                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int)BadgeType);
             }
             if (BadgeRank != 0)
             {
@@ -22034,21 +22070,21 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 8:
-                    {
-                        badgeType_ = (global::AllEnum.BadgeType) input.ReadEnum();
-                        break;
-                    }
+                        {
+                            badgeType_ = (global::AllEnum.BadgeType)input.ReadEnum();
+                            break;
+                        }
                     case 16:
-                    {
-                        BadgeRank = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            BadgeRank = input.ReadInt32();
+                            break;
+                        }
                     case 26:
                     case 24:
-                    {
-                        targets_.AddEntriesFrom(input, _repeated_targets_codec);
-                        break;
-                    }
+                        {
+                            targets_.AddEntriesFrom(input, _repeated_targets_codec);
+                            break;
+                        }
                 }
             }
         }
@@ -22156,7 +22192,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             if (AttackType != 0)
             {
                 output.WriteRawTag(16);
-                output.WriteEnum((int) AttackType);
+                output.WriteEnum((int)AttackType);
             }
         }

@@ -22166,7 +22202,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             size += attackScalar_.CalculateSize(_repeated_attackScalar_codec);
             if (AttackType != 0)
             {
-                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) AttackType);
+                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int)AttackType);
             }
             return size;
         }
@@ -22196,15 +22232,15 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         break;
                     case 10:
                     case 13:
-                    {
-                        attackScalar_.AddEntriesFrom(input, _repeated_attackScalar_codec);
-                        break;
-                    }
+                        {
+                            attackScalar_.AddEntriesFrom(input, _repeated_attackScalar_codec);
+                            break;
+                        }
                     case 16:
-                    {
-                        attackType_ = (global::AllEnum.PokemonType) input.ReadEnum();
-                        break;
-                    }
+                        {
+                            attackType_ = (global::AllEnum.PokemonType)input.ReadEnum();
+                            break;
+                        }
                 }
             }
         }
@@ -22325,10 +22361,10 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 10:
-                    {
-                        sequence_.AddEntriesFrom(input, _repeated_sequence_codec);
-                        break;
-                    }
+                        {
+                            sequence_.AddEntriesFrom(input, _repeated_sequence_codec);
+                            break;
+                        }
                 }
             }
         }
@@ -22587,7 +22623,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             if (MovementId != 0)
             {
                 output.WriteRawTag(8);
-                output.WriteEnum((int) MovementId);
+                output.WriteEnum((int)MovementId);
             }
             if (AnimationId != 0)
             {
@@ -22597,7 +22633,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             if (PokemonType != 0)
             {
                 output.WriteRawTag(24);
-                output.WriteEnum((int) PokemonType);
+                output.WriteEnum((int)PokemonType);
             }
             if (Power != 0F)
             {
@@ -22666,7 +22702,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             var size = 0;
             if (MovementId != 0)
             {
-                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) MovementId);
+                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int)MovementId);
             }
             if (AnimationId != 0)
             {
@@ -22674,7 +22710,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             }
             if (PokemonType != 0)
             {
-                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) PokemonType);
+                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int)PokemonType);
             }
             if (Power != 0F)
             {
@@ -22806,80 +22842,80 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 8:
-                    {
-                        movementId_ = (global::AllEnum.PokemonMovementType) input.ReadEnum();
-                        break;
-                    }
+                        {
+                            movementId_ = (global::AllEnum.PokemonMovementType)input.ReadEnum();
+                            break;
+                        }
                     case 16:
-                    {
-                        AnimationId = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            AnimationId = input.ReadInt32();
+                            break;
+                        }
                     case 24:
-                    {
-                        pokemonType_ = (global::AllEnum.PokemonType) input.ReadEnum();
-                        break;
-                    }
+                        {
+                            pokemonType_ = (global::AllEnum.PokemonType)input.ReadEnum();
+                            break;
+                        }
                     case 37:
-                    {
-                        Power = input.ReadFloat();
-                        break;
-                    }
+                        {
+                            Power = input.ReadFloat();
+                            break;
+                        }
                     case 45:
-                    {
-                        AccuracyChance = input.ReadFloat();
-                        break;
-                    }
+                        {
+                            AccuracyChance = input.ReadFloat();
+                            break;
+                        }
                     case 53:
-                    {
-                        CriticalChance = input.ReadFloat();
-                        break;
-                    }
+                        {
+                            CriticalChance = input.ReadFloat();
+                            break;
+                        }
                     case 61:
-                    {
-                        HealScalar = input.ReadFloat();
-                        break;
-                    }
+                        {
+                            HealScalar = input.ReadFloat();
+                            break;
+                        }
                     case 69:
-                    {
-                        StaminaLossScalar = input.ReadFloat();
-                        break;
-                    }
+                        {
+                            StaminaLossScalar = input.ReadFloat();
+                            break;
+                        }
                     case 72:
-                    {
-                        TrainerLevelMin = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            TrainerLevelMin = input.ReadInt32();
+                            break;
+                        }
                     case 80:
-                    {
-                        TrainerLevelMax = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            TrainerLevelMax = input.ReadInt32();
+                            break;
+                        }
                     case 90:
-                    {
-                        VfxName = input.ReadString();
-                        break;
-                    }
+                        {
+                            VfxName = input.ReadString();
+                            break;
+                        }
                     case 96:
-                    {
-                        DurationMs = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            DurationMs = input.ReadInt32();
+                            break;
+                        }
                     case 104:
-                    {
-                        DamageWindowStartMs = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            DamageWindowStartMs = input.ReadInt32();
+                            break;
+                        }
                     case 112:
-                    {
-                        DamageWindowEndMs = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            DamageWindowEndMs = input.ReadInt32();
+                            break;
+                        }
                     case 120:
-                    {
-                        EnergyDelta = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            EnergyDelta = input.ReadInt32();
+                            break;
+                        }
                 }
             }
         }
@@ -22988,16 +23024,16 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             new pb::MessageParser<PokemonSettings>(() => new PokemonSettings());

         private static readonly pb::FieldCodec<global::AllEnum.PokemonMove> _repeated_quickMoves_codec
-            = pb::FieldCodec.ForEnum(74, x => (int) x, x => (global::AllEnum.PokemonMove) x);
+            = pb::FieldCodec.ForEnum(74, x => (int)x, x => (global::AllEnum.PokemonMove)x);

         private static readonly pb::FieldCodec<global::AllEnum.PokemonMove> _repeated_cinematicMoves_codec
-            = pb::FieldCodec.ForEnum(82, x => (int) x, x => (global::AllEnum.PokemonMove) x);
+            = pb::FieldCodec.ForEnum(82, x => (int)x, x => (global::AllEnum.PokemonMove)x);

         private static readonly pb::FieldCodec<float> _repeated_animationTime_codec
             = pb::FieldCodec.ForFloat(90);

         private static readonly pb::FieldCodec<global::AllEnum.PokemonId> _repeated_evolutionIds_codec
-            = pb::FieldCodec.ForEnum(98, x => (int) x, x => (global::AllEnum.PokemonId) x);
+            = pb::FieldCodec.ForEnum(98, x => (int)x, x => (global::AllEnum.PokemonId)x);

         private readonly pbc::RepeatedField<float> animationTime_ = new pbc::RepeatedField<float>();

@@ -23239,7 +23275,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             if (PokemonId != 0)
             {
                 output.WriteRawTag(8);
-                output.WriteEnum((int) PokemonId);
+                output.WriteEnum((int)PokemonId);
             }
             if (ModelScale != 0F)
             {
@@ -23249,12 +23285,12 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             if (Type != 0)
             {
                 output.WriteRawTag(32);
-                output.WriteEnum((int) Type);
+                output.WriteEnum((int)Type);
             }
             if (Type2 != 0)
             {
                 output.WriteRawTag(40);
-                output.WriteEnum((int) Type2);
+                output.WriteEnum((int)Type2);
             }
             if (camera_ != null)
             {
@@ -23283,7 +23319,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             if (Class != 0)
             {
                 output.WriteRawTag(112);
-                output.WriteEnum((int) Class);
+                output.WriteEnum((int)Class);
             }
             if (PokedexHeightM != 0F)
             {
@@ -23298,7 +23334,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             if (ParentPokemonId != 0)
             {
                 output.WriteRawTag(136, 1);
-                output.WriteEnum((int) ParentPokemonId);
+                output.WriteEnum((int)ParentPokemonId);
             }
             if (HeightStdDev != 0F)
             {
@@ -23318,7 +23354,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             if (FamilyId != 0)
             {
                 output.WriteRawTag(168, 1);
-                output.WriteEnum((int) FamilyId);
+                output.WriteEnum((int)FamilyId);
             }
             if (CandyToEvolve != 0)
             {
@@ -23332,7 +23368,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             var size = 0;
             if (PokemonId != 0)
             {
-                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) PokemonId);
+                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int)PokemonId);
             }
             if (ModelScale != 0F)
             {
@@ -23340,11 +23376,11 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             }
             if (Type != 0)
             {
-                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Type);
+                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int)Type);
             }
             if (Type2 != 0)
             {
-                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Type2);
+                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int)Type2);
             }
             if (camera_ != null)
             {
@@ -23368,7 +23404,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             }
             if (Class != 0)
             {
-                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Class);
+                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int)Class);
             }
             if (PokedexHeightM != 0F)
             {
@@ -23380,7 +23416,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             }
             if (ParentPokemonId != 0)
             {
-                size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) ParentPokemonId);
+                size += 2 + pb::CodedOutputStream.ComputeEnumSize((int)ParentPokemonId);
             }
             if (HeightStdDev != 0F)
             {
@@ -23396,7 +23432,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             }
             if (FamilyId != 0)
             {
-                size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) FamilyId);
+                size += 2 + pb::CodedOutputStream.ComputeEnumSize((int)FamilyId);
             }
             if (CandyToEvolve != 0)
             {
@@ -23508,126 +23544,126 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 8:
-                    {
-                        pokemonId_ = (global::AllEnum.PokemonId) input.ReadEnum();
-                        break;
-                    }
+                        {
+                            pokemonId_ = (global::AllEnum.PokemonId)input.ReadEnum();
+                            break;
+                        }
                     case 29:
-                    {
-                        ModelScale = input.ReadFloat();
-                        break;
-                    }
+                        {
+                            ModelScale = input.ReadFloat();
+                            break;
+                        }
                     case 32:
-                    {
-                        type_ = (global::AllEnum.PokemonType) input.ReadEnum();
-                        break;
-                    }
+                        {
+                            type_ = (global::AllEnum.PokemonType)input.ReadEnum();
+                            break;
+                        }
                     case 40:
-                    {
-                        type2_ = (global::AllEnum.PokemonType) input.ReadEnum();
-                        break;
-                    }
+                        {
+                            type2_ = (global::AllEnum.PokemonType)input.ReadEnum();
+                            break;
+                        }
                     case 50:
-                    {
-                        if (camera_ == null)
                         {
-                            camera_ = new global::PokemonGo.RocketAPI.GeneratedCode.CameraAttributes();
+                            if (camera_ == null)
+                            {
+                                camera_ = new global::PokemonGo.RocketAPI.GeneratedCode.CameraAttributes();
+                            }
+                            input.ReadMessage(camera_);
+                            break;
                         }
-                        input.ReadMessage(camera_);
-                        break;
-                    }
                     case 58:
-                    {
-                        if (encounter_ == null)
                         {
-                            encounter_ = new global::PokemonGo.RocketAPI.GeneratedCode.EncounterAttributes();
+                            if (encounter_ == null)
+                            {
+                                encounter_ = new global::PokemonGo.RocketAPI.GeneratedCode.EncounterAttributes();
+                            }
+                            input.ReadMessage(encounter_);
+                            break;
                         }
-                        input.ReadMessage(encounter_);
-                        break;
-                    }
                     case 66:
-                    {
-                        if (stats_ == null)
                         {
-                            stats_ = new global::PokemonGo.RocketAPI.GeneratedCode.StatsAttributes();
+                            if (stats_ == null)
+                            {
+                                stats_ = new global::PokemonGo.RocketAPI.GeneratedCode.StatsAttributes();
+                            }
+                            input.ReadMessage(stats_);
+                            break;
                         }
-                        input.ReadMessage(stats_);
-                        break;
-                    }
                     case 74:
                     case 72:
-                    {
-                        quickMoves_.AddEntriesFrom(input, _repeated_quickMoves_codec);
-                        break;
-                    }
+                        {
+                            quickMoves_.AddEntriesFrom(input, _repeated_quickMoves_codec);
+                            break;
+                        }
                     case 82:
                     case 80:
-                    {
-                        cinematicMoves_.AddEntriesFrom(input, _repeated_cinematicMoves_codec);
-                        break;
-                    }
+                        {
+                            cinematicMoves_.AddEntriesFrom(input, _repeated_cinematicMoves_codec);
+                            break;
+                        }
                     case 90:
                     case 93:
-                    {
-                        animationTime_.AddEntriesFrom(input, _repeated_animationTime_codec);
-                        break;
-                    }
+                        {
+                            animationTime_.AddEntriesFrom(input, _repeated_animationTime_codec);
+                            break;
+                        }
                     case 98:
                     case 96:
-                    {
-                        evolutionIds_.AddEntriesFrom(input, _repeated_evolutionIds_codec);
-                        break;
-                    }
+                        {
+                            evolutionIds_.AddEntriesFrom(input, _repeated_evolutionIds_codec);
+                            break;
+                        }
                     case 104:
-                    {
-                        EvolutionPips = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            EvolutionPips = input.ReadInt32();
+                            break;
+                        }
                     case 112:
-                    {
-                        class_ = (global::AllEnum.PokemonClass) input.ReadEnum();
-                        break;
-                    }
+                        {
+                            class_ = (global::AllEnum.PokemonClass)input.ReadEnum();
+                            break;
+                        }
                     case 125:
-                    {
-                        PokedexHeightM = input.ReadFloat();
-                        break;
-                    }
+                        {
+                            PokedexHeightM = input.ReadFloat();
+                            break;
+                        }
                     case 133:
-                    {
-                        PokedexWeightKg = input.ReadFloat();
-                        break;
-                    }
+                        {
+                            PokedexWeightKg = input.ReadFloat();
+                            break;
+                        }
                     case 136:
-                    {
-                        parentPokemonId_ = (global::AllEnum.PokemonId) input.ReadEnum();
-                        break;
-                    }
+                        {
+                            parentPokemonId_ = (global::AllEnum.PokemonId)input.ReadEnum();
+                            break;
+                        }
                     case 149:
-                    {
-                        HeightStdDev = input.ReadFloat();
-                        break;
-                    }
+                        {
+                            HeightStdDev = input.ReadFloat();
+                            break;
+                        }
                     case 157:
-                    {
-                        WeightStdDev = input.ReadFloat();
-                        break;
-                    }
+                        {
+                            WeightStdDev = input.ReadFloat();
+                            break;
+                        }
                     case 165:
-                    {
-                        KmDistanceToHatch = input.ReadFloat();
-                        break;
-                    }
+                        {
+                            KmDistanceToHatch = input.ReadFloat();
+                            break;
+                        }
                     case 168:
-                    {
-                        familyId_ = (global::AllEnum.PokemonFamilyId) input.ReadEnum();
-                        break;
-                    }
+                        {
+                            familyId_ = (global::AllEnum.PokemonFamilyId)input.ReadEnum();
+                            break;
+                        }
                     case 176:
-                    {
-                        CandyToEvolve = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            CandyToEvolve = input.ReadInt32();
+                            break;
+                        }
                 }
             }
         }
@@ -23875,30 +23911,30 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 13:
-                    {
-                        DiskRadiusM = input.ReadFloat();
-                        break;
-                    }
+                        {
+                            DiskRadiusM = input.ReadFloat();
+                            break;
+                        }
                     case 21:
-                    {
-                        CylinderRadiusM = input.ReadFloat();
-                        break;
-                    }
+                        {
+                            CylinderRadiusM = input.ReadFloat();
+                            break;
+                        }
                     case 29:
-                    {
-                        CylinderHeightM = input.ReadFloat();
-                        break;
-                    }
+                        {
+                            CylinderHeightM = input.ReadFloat();
+                            break;
+                        }
                     case 37:
-                    {
-                        CylinderGroundM = input.ReadFloat();
-                        break;
-                    }
+                        {
+                            CylinderGroundM = input.ReadFloat();
+                            break;
+                        }
                     case 45:
-                    {
-                        ShoulderModeScale = input.ReadFloat();
-                        break;
-                    }
+                        {
+                            ShoulderModeScale = input.ReadFloat();
+                            break;
+                        }
                 }
             }
         }
@@ -24114,7 +24150,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             if (MovementType != 0)
             {
                 output.WriteRawTag(48);
-                output.WriteEnum((int) MovementType);
+                output.WriteEnum((int)MovementType);
             }
             if (MovementTimerS != 0F)
             {
@@ -24158,7 +24194,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             }
             if (MovementType != 0)
             {
-                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) MovementType);
+                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int)MovementType);
             }
             if (MovementTimerS != 0F)
             {
@@ -24230,50 +24266,50 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 13:
-                    {
-                        BaseCaptureRate = input.ReadFloat();
-                        break;
-                    }
+                        {
+                            BaseCaptureRate = input.ReadFloat();
+                            break;
+                        }
                     case 21:
-                    {
-                        BaseFleeRate = input.ReadFloat();
-                        break;
-                    }
+                        {
+                            BaseFleeRate = input.ReadFloat();
+                            break;
+                        }
                     case 29:
-                    {
-                        CollisionRadiusM = input.ReadFloat();
-                        break;
-                    }
+                        {
+                            CollisionRadiusM = input.ReadFloat();
+                            break;
+                        }
                     case 37:
-                    {
-                        CollisionHeightM = input.ReadFloat();
-                        break;
-                    }
+                        {
+                            CollisionHeightM = input.ReadFloat();
+                            break;
+                        }
                     case 45:
-                    {
-                        CollisionHeadRadiusM = input.ReadFloat();
-                        break;
-                    }
+                        {
+                            CollisionHeadRadiusM = input.ReadFloat();
+                            break;
+                        }
                     case 48:
-                    {
-                        movementType_ = (global::AllEnum.PokemonMovementType) input.ReadEnum();
-                        break;
-                    }
+                        {
+                            movementType_ = (global::AllEnum.PokemonMovementType)input.ReadEnum();
+                            break;
+                        }
                     case 61:
-                    {
-                        MovementTimerS = input.ReadFloat();
-                        break;
-                    }
+                        {
+                            MovementTimerS = input.ReadFloat();
+                            break;
+                        }
                     case 69:
-                    {
-                        JumpTimeS = input.ReadFloat();
-                        break;
-                    }
+                        {
+                            JumpTimeS = input.ReadFloat();
+                            break;
+                        }
                     case 77:
-                    {
-                        AttackTimerS = input.ReadFloat();
-                        break;
-                    }
+                        {
+                            AttackTimerS = input.ReadFloat();
+                            break;
+                        }
                 }
             }
         }
@@ -24484,25 +24520,25 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 8:
-                    {
-                        BaseStamina = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            BaseStamina = input.ReadInt32();
+                            break;
+                        }
                     case 16:
-                    {
-                        BaseAttack = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            BaseAttack = input.ReadInt32();
+                            break;
+                        }
                     case 24:
-                    {
-                        BaseDefense = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            BaseDefense = input.ReadInt32();
+                            break;
+                        }
                     case 64:
-                    {
-                        DodgeEnergyDelta = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            DodgeEnergyDelta = input.ReadInt32();
+                            break;
+                        }
                 }
             }
         }
@@ -24764,17 +24800,17 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             if (ItemId != 0)
             {
                 output.WriteRawTag(8);
-                output.WriteEnum((int) ItemId);
+                output.WriteEnum((int)ItemId);
             }
             if (ItemType != 0)
             {
                 output.WriteRawTag(16);
-                output.WriteEnum((int) ItemType);
+                output.WriteEnum((int)ItemType);
             }
             if (Category != 0)
             {
                 output.WriteRawTag(24);
-                output.WriteEnum((int) Category);
+                output.WriteEnum((int)Category);
             }
             if (DropFreq != 0F)
             {
@@ -24843,15 +24879,15 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             var size = 0;
             if (ItemId != 0)
             {
-                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) ItemId);
+                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int)ItemId);
             }
             if (ItemType != 0)
             {
-                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) ItemType);
+                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int)ItemType);
             }
             if (Category != 0)
             {
-                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Category);
+                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int)Category);
             }
             if (DropFreq != 0F)
             {
@@ -25023,121 +25059,121 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 8:
-                    {
-                        itemId_ = (global::AllEnum.ItemId) input.ReadEnum();
-                        break;
-                    }
+                        {
+                            itemId_ = (global::AllEnum.ItemId)input.ReadEnum();
+                            break;
+                        }
                     case 16:
-                    {
-                        itemType_ = (global::AllEnum.ItemType) input.ReadEnum();
-                        break;
-                    }
+                        {
+                            itemType_ = (global::AllEnum.ItemType)input.ReadEnum();
+                            break;
+                        }
                     case 24:
-                    {
-                        category_ = (global::AllEnum.ItemCategory) input.ReadEnum();
-                        break;
-                    }
+                        {
+                            category_ = (global::AllEnum.ItemCategory)input.ReadEnum();
+                            break;
+                        }
                     case 37:
-                    {
-                        DropFreq = input.ReadFloat();
-                        break;
-                    }
+                        {
+                            DropFreq = input.ReadFloat();
+                            break;
+                        }
                     case 40:
-                    {
-                        DropTrainerLevel = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            DropTrainerLevel = input.ReadInt32();
+                            break;
+                        }
                     case 50:
-                    {
-                        if (pokeball_ == null)
                         {
-                            pokeball_ = new global::PokemonGo.RocketAPI.GeneratedCode.PokeballAttributes();
+                            if (pokeball_ == null)
+                            {
+                                pokeball_ = new global::PokemonGo.RocketAPI.GeneratedCode.PokeballAttributes();
+                            }
+                            input.ReadMessage(pokeball_);
+                            break;
                         }
-                        input.ReadMessage(pokeball_);
-                        break;
-                    }
                     case 58:
-                    {
-                        if (potion_ == null)
                         {
-                            potion_ = new global::PokemonGo.RocketAPI.GeneratedCode.PotionAttributes();
+                            if (potion_ == null)
+                            {
+                                potion_ = new global::PokemonGo.RocketAPI.GeneratedCode.PotionAttributes();
+                            }
+                            input.ReadMessage(potion_);
+                            break;
                         }
-                        input.ReadMessage(potion_);
-                        break;
-                    }
                     case 66:
-                    {
-                        if (revive_ == null)
                         {
-                            revive_ = new global::PokemonGo.RocketAPI.GeneratedCode.ReviveAttributes();
+                            if (revive_ == null)
+                            {
+                                revive_ = new global::PokemonGo.RocketAPI.GeneratedCode.ReviveAttributes();
+                            }
+                            input.ReadMessage(revive_);
+                            break;
                         }
-                        input.ReadMessage(revive_);
-                        break;
-                    }
                     case 74:
-                    {
-                        if (battle_ == null)
                         {
-                            battle_ = new global::PokemonGo.RocketAPI.GeneratedCode.BattleAttributes();
+                            if (battle_ == null)
+                            {
+                                battle_ = new global::PokemonGo.RocketAPI.GeneratedCode.BattleAttributes();
+                            }
+                            input.ReadMessage(battle_);
+                            break;
                         }
-                        input.ReadMessage(battle_);
-                        break;
-                    }
                     case 82:
-                    {
-                        if (food_ == null)
                         {
-                            food_ = new global::PokemonGo.RocketAPI.GeneratedCode.FoodAttributes();
+                            if (food_ == null)
+                            {
+                                food_ = new global::PokemonGo.RocketAPI.GeneratedCode.FoodAttributes();
+                            }
+                            input.ReadMessage(food_);
+                            break;
                         }
-                        input.ReadMessage(food_);
-                        break;
-                    }
                     case 90:
-                    {
-                        if (inventoryUpgrade_ == null)
                         {
-                            inventoryUpgrade_ =
-                                new global::PokemonGo.RocketAPI.GeneratedCode.InventoryUpgradeAttributes();
+                            if (inventoryUpgrade_ == null)
+                            {
+                                inventoryUpgrade_ =
+                                    new global::PokemonGo.RocketAPI.GeneratedCode.InventoryUpgradeAttributes();
+                            }
+                            input.ReadMessage(inventoryUpgrade_);
+                            break;
                         }
-                        input.ReadMessage(inventoryUpgrade_);
-                        break;
-                    }
                     case 98:
-                    {
-                        if (xpBoost_ == null)
                         {
-                            xpBoost_ = new global::PokemonGo.RocketAPI.GeneratedCode.ExperienceBoostAttributes();
+                            if (xpBoost_ == null)
+                            {
+                                xpBoost_ = new global::PokemonGo.RocketAPI.GeneratedCode.ExperienceBoostAttributes();
+                            }
+                            input.ReadMessage(xpBoost_);
+                            break;
                         }
-                        input.ReadMessage(xpBoost_);
-                        break;
-                    }
                     case 106:
-                    {
-                        if (incense_ == null)
                         {
-                            incense_ = new global::PokemonGo.RocketAPI.GeneratedCode.IncenseAttributes();
+                            if (incense_ == null)
+                            {
+                                incense_ = new global::PokemonGo.RocketAPI.GeneratedCode.IncenseAttributes();
+                            }
+                            input.ReadMessage(incense_);
+                            break;
                         }
-                        input.ReadMessage(incense_);
-                        break;
-                    }
                     case 114:
-                    {
-                        if (eggIncubator_ == null)
                         {
-                            eggIncubator_ = new global::PokemonGo.RocketAPI.GeneratedCode.EggIncubatorAttributes();
+                            if (eggIncubator_ == null)
+                            {
+                                eggIncubator_ = new global::PokemonGo.RocketAPI.GeneratedCode.EggIncubatorAttributes();
+                            }
+                            input.ReadMessage(eggIncubator_);
+                            break;
                         }
-                        input.ReadMessage(eggIncubator_);
-                        break;
-                    }
                     case 122:
-                    {
-                        if (fortModifier_ == null)
                         {
-                            fortModifier_ = new global::PokemonGo.RocketAPI.GeneratedCode.FortModifierAttributes();
+                            if (fortModifier_ == null)
+                            {
+                                fortModifier_ = new global::PokemonGo.RocketAPI.GeneratedCode.FortModifierAttributes();
+                            }
+                            input.ReadMessage(fortModifier_);
+                            break;
                         }
-                        input.ReadMessage(fortModifier_);
-                        break;
-                    }
                 }
             }
         }
@@ -25279,10 +25315,10 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 13:
-                    {
-                        StaPercent = input.ReadFloat();
-                        break;
-                    }
+                        {
+                            StaPercent = input.ReadFloat();
+                            break;
+                        }
                 }
             }
         }
@@ -25397,7 +25433,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             if (IncubatorType != 0)
             {
                 output.WriteRawTag(8);
-                output.WriteEnum((int) IncubatorType);
+                output.WriteEnum((int)IncubatorType);
             }
             if (Uses != 0)
             {
@@ -25416,7 +25452,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             var size = 0;
             if (IncubatorType != 0)
             {
-                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) IncubatorType);
+                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int)IncubatorType);
             }
             if (Uses != 0)
             {
@@ -25460,20 +25496,20 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 8:
-                    {
-                        incubatorType_ = (global::AllEnum.EggIncubatorType) input.ReadEnum();
-                        break;
-                    }
+                        {
+                            incubatorType_ = (global::AllEnum.EggIncubatorType)input.ReadEnum();
+                            break;
+                        }
                     case 16:
-                    {
-                        Uses = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            Uses = input.ReadInt32();
+                            break;
+                        }
                     case 29:
-                    {
-                        DistanceMultiplier = input.ReadFloat();
-                        break;
-                    }
+                        {
+                            DistanceMultiplier = input.ReadFloat();
+                            break;
+                        }
                 }
             }
         }
@@ -25628,15 +25664,15 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 13:
-                    {
-                        XpMultiplier = input.ReadFloat();
-                        break;
-                    }
+                        {
+                            XpMultiplier = input.ReadFloat();
+                            break;
+                        }
                     case 16:
-                    {
-                        BoostDurationMs = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            BoostDurationMs = input.ReadInt32();
+                            break;
+                        }
                 }
             }
         }
@@ -25678,7 +25714,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             new pb::MessageParser<FoodAttributes>(() => new FoodAttributes());

         private static readonly pb::FieldCodec<global::AllEnum.ItemEffect> _repeated_itemEffect_codec
-            = pb::FieldCodec.ForEnum(10, x => (int) x, x => (global::AllEnum.ItemEffect) x);
+            = pb::FieldCodec.ForEnum(10, x => (int)x, x => (global::AllEnum.ItemEffect)x);

         private static readonly pb::FieldCodec<float> _repeated_itemEffectPercent_codec
             = pb::FieldCodec.ForFloat(18);
@@ -25802,21 +25838,21 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         break;
                     case 10:
                     case 8:
-                    {
-                        itemEffect_.AddEntriesFrom(input, _repeated_itemEffect_codec);
-                        break;
-                    }
+                        {
+                            itemEffect_.AddEntriesFrom(input, _repeated_itemEffect_codec);
+                            break;
+                        }
                     case 18:
                     case 21:
-                    {
-                        itemEffectPercent_.AddEntriesFrom(input, _repeated_itemEffectPercent_codec);
-                        break;
-                    }
+                        {
+                            itemEffectPercent_.AddEntriesFrom(input, _repeated_itemEffectPercent_codec);
+                            break;
+                        }
                     case 29:
-                    {
-                        GrowthPercent = input.ReadFloat();
-                        break;
-                    }
+                        {
+                            GrowthPercent = input.ReadFloat();
+                            break;
+                        }
                 }
             }
         }
@@ -25971,15 +26007,15 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 8:
-                    {
-                        ModifierLifetimeSeconds = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            ModifierLifetimeSeconds = input.ReadInt32();
+                            break;
+                        }
                     case 16:
-                    {
-                        TroyDiskNumPokemonSpawned = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            TroyDiskNumPokemonSpawned = input.ReadInt32();
+                            break;
+                        }
                 }
             }
         }
@@ -26033,7 +26069,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             new pb::MessageParser<IncenseAttributes>(() => new IncenseAttributes());

         private static readonly pb::FieldCodec<global::AllEnum.PokemonType> _repeated_pokemonType_codec
-            = pb::FieldCodec.ForEnum(18, x => (int) x, x => (global::AllEnum.PokemonType) x);
+            = pb::FieldCodec.ForEnum(18, x => (int)x, x => (global::AllEnum.PokemonType)x);

         private readonly pbc::RepeatedField<global::AllEnum.PokemonType> pokemonType_ =
             new pbc::RepeatedField<global::AllEnum.PokemonType>();
@@ -26253,41 +26289,41 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 8:
-                    {
-                        IncenseLifetimeSeconds = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            IncenseLifetimeSeconds = input.ReadInt32();
+                            break;
+                        }
                     case 18:
                     case 16:
-                    {
-                        pokemonType_.AddEntriesFrom(input, _repeated_pokemonType_codec);
-                        break;
-                    }
+                        {
+                            pokemonType_.AddEntriesFrom(input, _repeated_pokemonType_codec);
+                            break;
+                        }
                     case 29:
-                    {
-                        PokemonIncenseTypeProbability = input.ReadFloat();
-                        break;
-                    }
+                        {
+                            PokemonIncenseTypeProbability = input.ReadFloat();
+                            break;
+                        }
                     case 32:
-                    {
-                        StandingTimeBetweenEncountersSeconds = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            StandingTimeBetweenEncountersSeconds = input.ReadInt32();
+                            break;
+                        }
                     case 40:
-                    {
-                        MovingTimeBetweenEncounterSeconds = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            MovingTimeBetweenEncounterSeconds = input.ReadInt32();
+                            break;
+                        }
                     case 48:
-                    {
-                        DistanceRequiredForShorterIntervalMeters = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            DistanceRequiredForShorterIntervalMeters = input.ReadInt32();
+                            break;
+                        }
                     case 56:
-                    {
-                        PokemonAttractedLengthSec = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            PokemonAttractedLengthSec = input.ReadInt32();
+                            break;
+                        }
                 }
             }
         }
@@ -26402,7 +26438,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             if (UpgradeType != 0)
             {
                 output.WriteRawTag(16);
-                output.WriteEnum((int) UpgradeType);
+                output.WriteEnum((int)UpgradeType);
             }
         }

@@ -26415,7 +26451,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             }
             if (UpgradeType != 0)
             {
-                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) UpgradeType);
+                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int)UpgradeType);
             }
             return size;
         }
@@ -26447,15 +26483,15 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 8:
-                    {
-                        AdditionalStorage = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            AdditionalStorage = input.ReadInt32();
+                            break;
+                        }
                     case 16:
-                    {
-                        upgradeType_ = (global::AllEnum.InventoryUpgradeType) input.ReadEnum();
-                        break;
-                    }
+                        {
+                            upgradeType_ = (global::AllEnum.InventoryUpgradeType)input.ReadEnum();
+                            break;
+                        }
                 }
             }
         }
@@ -26583,7 +26619,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             if (ItemEffect != 0)
             {
                 output.WriteRawTag(8);
-                output.WriteEnum((int) ItemEffect);
+                output.WriteEnum((int)ItemEffect);
             }
             if (CaptureMulti != 0F)
             {
@@ -26607,7 +26643,7 @@ namespace PokemonGo.RocketAPI.GeneratedCode
             var size = 0;
             if (ItemEffect != 0)
             {
-                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) ItemEffect);
+                size += 1 + pb::CodedOutputStream.ComputeEnumSize((int)ItemEffect);
             }
             if (CaptureMulti != 0F)
             {
@@ -26659,25 +26695,25 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 8:
-                    {
-                        itemEffect_ = (global::AllEnum.ItemEffect) input.ReadEnum();
-                        break;
-                    }
+                        {
+                            itemEffect_ = (global::AllEnum.ItemEffect)input.ReadEnum();
+                            break;
+                        }
                     case 21:
-                    {
-                        CaptureMulti = input.ReadFloat();
-                        break;
-                    }
+                        {
+                            CaptureMulti = input.ReadFloat();
+                            break;
+                        }
                     case 29:
-                    {
-                        CaptureMultiEffect = input.ReadFloat();
-                        break;
-                    }
+                        {
+                            CaptureMultiEffect = input.ReadFloat();
+                            break;
+                        }
                     case 37:
-                    {
-                        ItemEffectMod = input.ReadFloat();
-                        break;
-                    }
+                        {
+                            ItemEffectMod = input.ReadFloat();
+                            break;
+                        }
                 }
             }
         }
@@ -26833,15 +26869,15 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 13:
-                    {
-                        StaPercent = input.ReadFloat();
-                        break;
-                    }
+                        {
+                            StaPercent = input.ReadFloat();
+                            break;
+                        }
                     case 16:
-                    {
-                        StaAmount = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            StaAmount = input.ReadInt32();
+                            break;
+                        }
                 }
             }
         }
@@ -26970,10 +27006,10 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 13:
-                    {
-                        StaPercent = input.ReadFloat();
-                        break;
-                    }
+                        {
+                            StaPercent = input.ReadFloat();
+                            break;
+                        }
                 }
             }
         }
@@ -27104,10 +27140,10 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 9:
-                    {
-                        PokemonId = input.ReadFixed64();
-                        break;
-                    }
+                        {
+                            PokemonId = input.ReadFixed64();
+                            break;
+                        }
                 }
             }
         }
@@ -27260,15 +27296,15 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 8:
-                    {
-                        Status = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            Status = input.ReadInt32();
+                            break;
+                        }
                     case 16:
-                    {
-                        CandyAwarded = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            CandyAwarded = input.ReadInt32();
+                            break;
+                        }
                 }
             }
         }
@@ -27400,10 +27436,10 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 9:
-                    {
-                        PokemonId = input.ReadFixed64();
-                        break;
-                    }
+                        {
+                            PokemonId = input.ReadFixed64();
+                            break;
+                        }
                 }
             }
         }
@@ -27610,29 +27646,29 @@ namespace PokemonGo.RocketAPI.GeneratedCode
                         input.SkipLastField();
                         break;
                     case 8:
-                    {
-                        Result = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            Result = input.ReadInt32();
+                            break;
+                        }
                     case 18:
-                    {
-                        if (evolvedPokemon_ == null)
                         {
-                            evolvedPokemon_ = new global::PokemonGo.RocketAPI.GeneratedCode.Pokemon();
+                            if (evolvedPokemon_ == null)
+                            {
+                                evolvedPokemon_ = new global::PokemonGo.RocketAPI.GeneratedCode.Pokemon();
+                            }
+                            input.ReadMessage(evolvedPokemon_);
+                            break;
                         }
-                        input.ReadMessage(evolvedPokemon_);
-                        break;
-                    }
                     case 24:
-                    {
-                        ExpAwarded = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            ExpAwarded = input.ReadInt32();
+                            break;
+                        }
                     case 32:
-                    {
-                        CandyAwarded = input.ReadInt32();
-                        break;
-                    }
+                        {
+                            CandyAwarded = input.ReadInt32();
+                            break;
+                        }
                 }
             }
         }
diff --git a/PokemonGo/RocketAPI/Helpers/JsonHelper.cs b/PokemonGo/RocketAPI/Helpers/JsonHelper.cs
deleted file mode 100644
index 2dd2fcd..0000000
--- a/PokemonGo/RocketAPI/Helpers/JsonHelper.cs
+++ /dev/null
@@ -1,17 +0,0 @@
-#region
-
-using Newtonsoft.Json.Linq;
-
-#endregion
-
-namespace PokemonGo.RocketAPI.Helpers
-{
-    public class JsonHelper
-    {
-        public static string GetValue(string json, string key)
-        {
-            var jObject = JObject.Parse(json);
-            return jObject[key].ToString();
-        }
-    }
-}
\ No newline at end of file
diff --git a/PokemonGo/RocketAPI/ILatLong.cs b/PokemonGo/RocketAPI/ILatLong.cs
new file mode 100644
index 0000000..c0fd3fc
--- /dev/null
+++ b/PokemonGo/RocketAPI/ILatLong.cs
@@ -0,0 +1,36 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace PokemonGo.RocketAPI
+{
+    public interface ILatLong
+    {
+        double Latitude { get; }
+        double Longitude { get; }
+    }
+
+    public class LatLong : Tuple<double, double>, ILatLong
+    {
+        public LatLong(double item1, double item2) : base(item1, item2)
+        {
+        }
+
+        public double Latitude
+        {
+            get
+            {
+                return this.Item1;
+            }
+        }
+        public double Longitude
+        {
+            get
+            {
+                return this.Item2;
+            }
+        }
+    }
+}
diff --git a/PokemonGo/RocketAPI/ISettings.cs b/PokemonGo/RocketAPI/ISettings.cs
index 9fc20db..6174471 100644
--- a/PokemonGo/RocketAPI/ISettings.cs
+++ b/PokemonGo/RocketAPI/ISettings.cs
@@ -18,11 +18,14 @@ namespace PokemonGo.RocketAPI
         string GoogleRefreshToken { get; set; }
         string PtcPassword { get; }
         string PtcUsername { get; }
+        string Email { get; }
+        string Password { get; }
         bool EvolveAllGivenPokemons { get; }
         string TransferType { get; }
         int TransferCPThreshold { get; }
         int TransferIVThreshold { get; }
         int TravelSpeed { get; }
+        int ImageSize { get; }
         bool Recycler { get; }
         ICollection<KeyValuePair<AllEnum.ItemId, int>> ItemRecycleFilter { get; }
         int RecycleItemsInterval { get; }
diff --git a/PokemonGo/RocketAPI/Login/GoogleLogin.cs b/PokemonGo/RocketAPI/Login/GoogleLogin.cs
index c91f726..10c9c70 100644
--- a/PokemonGo/RocketAPI/Login/GoogleLogin.cs
+++ b/PokemonGo/RocketAPI/Login/GoogleLogin.cs
@@ -1,115 +1,180 @@
-#region
-
+using PokemonGo.RocketAPI.Exceptions;
 using System;
 using System.Collections.Generic;
-using System.Diagnostics;
-using System.Threading;
+using System.Linq;
+using System.Net;
+using System.Net.Http;
+using System.Security.Cryptography;
+using System.Text;
 using System.Threading.Tasks;
-using System.Windows.Forms;
-using PokemonGo.RocketAPI.Helpers;
-using System.IO;
-
-
-#endregion

 namespace PokemonGo.RocketAPI.Login
 {
-    public static class GoogleLogin
+    public class GoogleLogin : ILoginType
     {
-        private const string OauthTokenEndpoint = "https://www.googleapis.com/oauth2/v4/token";
-        private const string OauthEndpoint = "https://accounts.google.com/o/oauth2/device/code";
-        private const string ClientId = "848232511240-73ri3t7plvk96pj4f85uj8otdat2alem.apps.googleusercontent.com";
-        private const string ClientSecret = "NCjF1TLi2CcY6t5mt0ZveuL7";
-
-        /// <summary>
-        ///     Gets the access token from Google
-        /// </summary>
-        /// <param name="deviceCode"></param>
-        /// <returns>tokenResponse</returns>
-        public static async Task<TokenResponseModel> GetAccessToken(DeviceCodeModel deviceCode)
-        {
-            //Poll until user submitted code..
-            TokenResponseModel tokenResponse;
-            do
-            {
-                await Task.Delay(2000);
-                tokenResponse = await PollSubmittedToken(deviceCode.device_code);
-            } while (tokenResponse.access_token == null || tokenResponse.refresh_token == null);
+        private readonly string password;
+        private readonly string email;

-            return tokenResponse;
+        public GoogleLogin(string email, string password)
+        {
+            this.email = email;
+            this.password = password;
         }

-        public static async Task<TokenResponseModel> GetAccessToken(string refreshToken)
+        public async Task<string> GetAccessToken()
         {
-            return await HttpClientHelper.PostFormEncodedAsync<TokenResponseModel>(OauthTokenEndpoint,
-                new KeyValuePair<string, string>("access_type", "offline"),
-                new KeyValuePair<string, string>("client_id", ClientId),
-                new KeyValuePair<string, string>("client_secret", ClientSecret),
-                new KeyValuePair<string, string>("refresh_token", refreshToken),
-                new KeyValuePair<string, string>("grant_type", "refresh_token"),
-                new KeyValuePair<string, string>("scope", "openid email https://www.googleapis.com/auth/userinfo.email"));
+            var _GPSOresponse = await PerformMasterLoginAsync(email, password).ConfigureAwait(false);
+            string token;
+            if (!_GPSOresponse.TryGetValue("Token", out token))
+                throw new LoginFailedException();
+
+            var oauthResponse = await PerformOAuthAsync(
+            token,
+            "audience:server:client_id:848232511240-7so421jotr2609rmqakceuu1luuq0ptb.apps.googleusercontent.com",
+            "com.nianticlabs.pokemongo",
+            "321187995bc7cdc2b5fc91b11a96e2baa8602c62",
+            email).ConfigureAwait(false);
+            return oauthResponse["Auth"];
         }

-        public static async Task<DeviceCodeModel> GetDeviceCode()
-        {
-            var deviceCode = await HttpClientHelper.PostFormEncodedAsync<DeviceCodeModel>(OauthEndpoint,
-            new KeyValuePair<string, string>("client_id", ClientId),
-            new KeyValuePair<string, string>("scope", "openid email https://www.googleapis.com/auth/userinfo.email"));
+        private static string b64Key = "AAAAgMom/1a/v0lblO2Ubrt60J2gcuXSljGFQXgcyZWveWLEwo6prwgi3" +
+            "iJIZdodyhKZQrNWp5nKJ3srRXcUW+F1BD3baEVGcmEgqaLZUNBjm057pK" +
+            "RI16kB0YppeGx5qIQ5QjKzsR8ETQbKLNWgRY0QRNVz34kMJR3P/LgHax/" +
+            "6rmf5AAAAAwEAAQ==";
+
+        private static RSAParameters androidKey = GoogleKeyUtils.KeyFromB64(b64Key);

-            try
+        private static string version = "0.0.5";
+        private static string authUrl = "https://android.clients.google.com/auth";
+        private static string userAgent = "GPSOAuthSharp/" + version;
+
+        private async static Task<IDictionary<string, string>> PerformAuthRequestAsync(IDictionary<string, string> data)
+        {
+            var handler = new HttpClientHandler
             {
-                //ColoredConsoleWrite("Google Device Code copied to clipboard");
-                System.Console.WriteLine($"Goto: http://www.google.com/device & enter {deviceCode.user_code}");
-                File.AppendAllText(AppDomain.CurrentDomain.BaseDirectory + @"\Logs.txt", "[" + DateTime.Now.ToString("HH:mm:ss tt") + $"] Goto: http://www.google.com/device & enter {deviceCode.user_code}");
-                Process.Start(@"http://www.google.com/device");
-                var thread = new Thread(() => Clipboard.SetText(deviceCode.user_code)); //Copy device code
-                thread.SetApartmentState(ApartmentState.STA); //Set the thread to STA
-                thread.Start();
-                thread.Join();
-            }
-            catch (Exception)
+                AutomaticDecompression = DecompressionMethods.GZip,
+                AllowAutoRedirect = false
+            };
+            using (var tempHttpClient = new HttpClient(handler))
             {
-                //System.Console.WriteLine("Couldnt copy to clipboard, do it manually");
-                //System.Console.WriteLine($"Goto: http://www.google.com/device & enter {deviceCode.user_code}");
+                tempHttpClient.DefaultRequestHeaders.UserAgent.ParseAdd(userAgent);
+
+                HttpResponseMessage response;
+                using (var formUrlEncodedContent = new FormUrlEncodedContent(data))
+                {
+                    response = await tempHttpClient.PostAsync(authUrl, formUrlEncodedContent).ConfigureAwait(false);
+                }
+
+                var content = await response.Content.ReadAsStringAsync().ConfigureAwait(false);
+                return GoogleKeyUtils.ParseAuthResponse(content);
             }
+        }

-            return deviceCode;
+        private static IDictionary<string, string> GenerateBaseRequest(string email, string encryptedPassword, string service)
+            => new Dictionary<string, string> {
+                { "accountType", "HOSTED_OR_GOOGLE" },
+                { "Email", email },
+                { "has_permission", "1" },
+                { "EncryptedPasswd",  encryptedPassword},
+                { "service", service },
+                { "source", "android" },
+                { "device_country", "us" },
+                { "operatorCountry", "us" },
+                { "lang", "en" },
+                { "sdk_version", "21" }
+            };
+
+        private static Task<IDictionary<string, string>> PerformMasterLoginAsync(string email, string password)
+        {
+            var signature = GoogleKeyUtils.CreateSignature(email, password, androidKey);
+            var request = GenerateBaseRequest(email, signature, "ac2dm");
+            request.Add("add_account", "1");
+            return PerformAuthRequestAsync(request);
         }

-        private static async Task<TokenResponseModel> PollSubmittedToken(string deviceCode)
+        private static Task<IDictionary<string, string>> PerformOAuthAsync(string masterToken, string service, string app, string clientSig, string email)
         {
-            return await HttpClientHelper.PostFormEncodedAsync<TokenResponseModel>(OauthTokenEndpoint,
-                new KeyValuePair<string, string>("client_id", ClientId),
-                new KeyValuePair<string, string>("client_secret", ClientSecret),
-                new KeyValuePair<string, string>("code", deviceCode),
-                new KeyValuePair<string, string>("grant_type", "http://oauth.net/grant_type/device/1.0"),
-                new KeyValuePair<string, string>("scope", "openid email https://www.googleapis.com/auth/userinfo.email"));
+            var request = GenerateBaseRequest(email, masterToken, service);
+            request.Add("app", app);
+            request.Add("client_sig", clientSig);
+            return PerformAuthRequestAsync(request);
         }
+    }

+    internal class GoogleKeyUtils
+    {
+        // key_from_b64
+        // BitConverter has different endianness, hence the Reverse()
+        public static RSAParameters KeyFromB64(string b64Key)
+        {
+            var decoded = Convert.FromBase64String(b64Key);
+            var modLength = BitConverter.ToInt32(decoded.Take(4).Reverse().ToArray(), 0);
+            var mod = decoded.Skip(4).Take(modLength).ToArray();
+            var expLength = BitConverter.ToInt32(decoded.Skip(modLength + 4).Take(4).Reverse().ToArray(), 0);
+            var exponent = decoded.Skip(modLength + 8).Take(expLength).ToArray();
+            var rsaKeyInfo = new RSAParameters
+            {
+                Modulus = mod,
+                Exponent = exponent
+            };
+            return rsaKeyInfo;
+        }

-        internal class ErrorResponseModel
+        // key_to_struct
+        // Python version returns a string, but we use byte[] to get the same results
+        public static byte[] KeyToStruct(RSAParameters key)
         {
-            public string error { get; set; }
-            public string error_description { get; set; }
+            byte[] modLength = { 0x00, 0x00, 0x00, 0x80 };
+            var mod = key.Modulus;
+            byte[] expLength = { 0x00, 0x00, 0x00, 0x03 };
+            var exponent = key.Exponent;
+            return DataTypeUtils.CombineBytes(modLength, mod, expLength, exponent);
         }

-        public class TokenResponseModel
+        // parse_auth_response
+        public static Dictionary<string, string> ParseAuthResponse(string text)
         {
-            public string access_token { get; set; }
-            public string token_type { get; set; }
-            public int expires_in { get; set; }
-            public string refresh_token { get; set; }
-            public string id_token { get; set; }
+            var responseData = new Dictionary<string, string>();
+            foreach (string line in text.Split(new string[] { "\n", "\r\n" }, StringSplitOptions.RemoveEmptyEntries))
+            {
+                var parts = line.Split('=');
+                responseData.Add(parts[0], parts[1]);
+            }
+            return responseData;
         }

+        // signature
+        public static string CreateSignature(string email, string password, RSAParameters key)
+        {
+            using (var rsa = new RSACryptoServiceProvider())
+            {
+                rsa.ImportParameters(key);
+                var sha1 = SHA1.Create();
+                byte[] prefix = { 0x00 };
+                var hash = sha1.ComputeHash(GoogleKeyUtils.KeyToStruct(key)).Take(4).ToArray();
+                var encrypted = rsa.Encrypt(Encoding.UTF8.GetBytes(email + "\x00" + password), true);
+                return DataTypeUtils.UrlSafeBase64(DataTypeUtils.CombineBytes(prefix, hash, encrypted));
+            }
+        }

-        public class DeviceCodeModel
+        private class DataTypeUtils
         {
-            public string verification_url { get; set; }
-            public int expires_in { get; set; }
-            public int interval { get; set; }
-            public string device_code { get; set; }
-            public string user_code { get; set; }
+            public static string UrlSafeBase64(byte[] byteArray)
+            {
+                return Convert.ToBase64String(byteArray).Replace('+', '-').Replace('/', '_');
+            }
+
+            public static byte[] CombineBytes(params byte[][] arrays)
+            {
+                var rv = new byte[arrays.Sum(a => a.Length)];
+                var offset = 0;
+                foreach (byte[] array in arrays)
+                {
+                    Buffer.BlockCopy(array, 0, rv, offset, array.Length);
+                    offset += array.Length;
+                }
+                return rv;
+            }
         }
     }
 }
\ No newline at end of file
diff --git a/PokemonGo/RocketAPI/Login/ILoginType.cs b/PokemonGo/RocketAPI/Login/ILoginType.cs
new file mode 100644
index 0000000..0c102a0
--- /dev/null
+++ b/PokemonGo/RocketAPI/Login/ILoginType.cs
@@ -0,0 +1,16 @@
+using System.Threading.Tasks;
+
+namespace PokemonGo.RocketAPI.Login
+{
+    /// <summary>
+    /// Interface for the login into the game using either Google or PTC
+    /// </summary>
+    interface ILoginType
+    {
+        /// <summary>
+        /// Gets the access token.
+        /// </summary>
+        /// <returns></returns>
+        Task<string> GetAccessToken();
+    }
+}
\ No newline at end of file
diff --git a/PokemonGo/RocketAPI/Login/PtcLogin.cs b/PokemonGo/RocketAPI/Login/PtcLogin.cs
index 7a3c900..0cf6b04 100644
--- a/PokemonGo/RocketAPI/Login/PtcLogin.cs
+++ b/PokemonGo/RocketAPI/Login/PtcLogin.cs
@@ -1,20 +1,24 @@
-#region
-
+using Newtonsoft.Json;
+using PokemonGo.RocketAPI.Exceptions;
 using System.Collections.Generic;
 using System.Net;
 using System.Net.Http;
 using System.Threading.Tasks;
 using System.Web;
-using PokemonGo.RocketAPI.Exceptions;
-using PokemonGo.RocketAPI.Helpers;
-
-#endregion

 namespace PokemonGo.RocketAPI.Login
 {
-    internal static class PtcLogin
+    class PtcLogin : ILoginType
     {
-        public static async Task<string> GetAccessToken(string username, string password)
+        readonly string password;
+        readonly string username;
+
+        public PtcLogin(string username, string password)
+        {
+            this.username = username;
+            this.password = password;
+        }
+        public async Task<string> GetAccessToken()
         {
             var handler = new HttpClientHandler
             {
@@ -25,44 +29,88 @@ namespace PokemonGo.RocketAPI.Login
             using (var tempHttpClient = new HttpClient(handler))
             {
                 //Get session cookie
-                var sessionResp = await tempHttpClient.GetAsync(Resources.PtcLoginUrl);
-                var data = await sessionResp.Content.ReadAsStringAsync();
-                var lt = JsonHelper.GetValue(data, "lt");
-                var executionId = JsonHelper.GetValue(data, "execution");
+                var sessionData = await GetSessionCookie(tempHttpClient).ConfigureAwait(false);

                 //Login
-                var loginResp = await tempHttpClient.PostAsync(Resources.PtcLoginUrl,
-                    new FormUrlEncodedContent(
-                        new[]
-                        {
-                            new KeyValuePair<string, string>("lt", lt),
-                            new KeyValuePair<string, string>("execution", executionId),
-                            new KeyValuePair<string, string>("_eventId", "submit"),
-                            new KeyValuePair<string, string>("username", username),
-                            new KeyValuePair<string, string>("password", password)
-                        }));
-
-                var ticketId = HttpUtility.ParseQueryString(loginResp.Headers.Location.Query)["ticket"];
-                if (ticketId == null)
-                    throw new PtcOfflineException();
-
-                //Get tokenvar
-                var tokenResp = await tempHttpClient.PostAsync(Resources.PtcLoginOauth,
-                    new FormUrlEncodedContent(
-                        new[]
-                        {
-                            new KeyValuePair<string, string>("client_id", "mobile-app_pokemon-go"),
-                            new KeyValuePair<string, string>("redirect_uri",
-                                "https://www.nianticlabs.com/pokemongo/error"),
-                            new KeyValuePair<string, string>("client_secret",
-                                "w8ScCUXJQc6kXKw8FiOhd8Fixzht18Dq3PEVkUCP5ZPxtgyWsbTvWHFLm2wNY0JR"),
-                            new KeyValuePair<string, string>("grant_type", "refresh_token"),
-                            new KeyValuePair<string, string>("code", ticketId)
-                        }));
-
-                var tokenData = await tokenResp.Content.ReadAsStringAsync();
-                return HttpUtility.ParseQueryString(tokenData)["access_token"];
+                var ticketId = await GetLoginTicket(username, password, tempHttpClient, sessionData).ConfigureAwait(false);
+
+                //Get tokenvar
+                return await GetToken(tempHttpClient, ticketId).ConfigureAwait(false);
+            }
+        }
+
+        private static string ExtracktTicketFromResponse(HttpResponseMessage loginResp)
+        {
+            var location = loginResp.Headers.Location;
+            if (location == null)
+                throw new LoginFailedException();
+
+            var ticketId = HttpUtility.ParseQueryString(location.Query)["ticket"];
+
+            if (ticketId == null)
+                throw new PtcOfflineException();
+
+            return ticketId;
+        }
+
+        private static IDictionary<string, string> GenerateLoginRequest(SessionData sessionData, string user, string pass)
+            => new Dictionary<string, string>
+            {
+                { "lt", sessionData.Lt },
+                { "execution", sessionData.Execution },
+                { "_eventId", "submit" },
+                { "username", user },
+                { "password", pass }
+            };
+
+        private static IDictionary<string, string> GenerateTokenVarRequest(string ticketId)
+            => new Dictionary<string, string>
+            {
+                {"client_id", "mobile-app_pokemon-go"},
+                {"redirect_uri", "https://www.nianticlabs.com/pokemongo/error"},
+                {"client_secret", "w8ScCUXJQc6kXKw8FiOhd8Fixzht18Dq3PEVkUCP5ZPxtgyWsbTvWHFLm2wNY0JR"},
+                {"grant_type", "refresh_token"},
+                {"code", ticketId}
+            };
+
+        private static async Task<string> GetLoginTicket(string username, string password, HttpClient tempHttpClient, SessionData sessionData)
+        {
+            HttpResponseMessage loginResp;
+            var loginRequest = GenerateLoginRequest(sessionData, username, password);
+            using (var formUrlEncodedContent = new FormUrlEncodedContent(loginRequest))
+            {
+                loginResp = await tempHttpClient.PostAsync(Resources.PtcLoginUrl, formUrlEncodedContent).ConfigureAwait(false);
             }
+
+            var ticketId = ExtracktTicketFromResponse(loginResp);
+            return ticketId;
+        }
+
+        private static async Task<SessionData> GetSessionCookie(HttpClient tempHttpClient)
+        {
+            var sessionResp = await tempHttpClient.GetAsync(Resources.PtcLoginUrl).ConfigureAwait(false);
+            var data = await sessionResp.Content.ReadAsStringAsync().ConfigureAwait(false);
+            var sessionData = JsonConvert.DeserializeObject<SessionData>(data);
+            return sessionData;
+        }
+
+        private static async Task<string> GetToken(HttpClient tempHttpClient, string ticketId)
+        {
+            HttpResponseMessage tokenResp;
+            var tokenRequest = GenerateTokenVarRequest(ticketId);
+            using (var formUrlEncodedContent = new FormUrlEncodedContent(tokenRequest))
+            {
+                tokenResp = await tempHttpClient.PostAsync(Resources.PtcLoginOauth, formUrlEncodedContent).ConfigureAwait(false);
+            }
+
+            var tokenData = await tokenResp.Content.ReadAsStringAsync().ConfigureAwait(false);
+            return HttpUtility.ParseQueryString(tokenData)["access_token"];
+        }
+
+        private class SessionData
+        {
+            public string Lt { get; set; }
+            public string Execution { get; set; }
         }
     }
-}
+}
\ No newline at end of file
diff --git a/PokemonGo/RocketAPI/PokemonGo.RocketAPI.csproj b/PokemonGo/RocketAPI/PokemonGo.RocketAPI.csproj
index 1099e44..3dc6681 100644
--- a/PokemonGo/RocketAPI/PokemonGo.RocketAPI.csproj
+++ b/PokemonGo/RocketAPI/PokemonGo.RocketAPI.csproj
@@ -44,12 +44,13 @@
       <Private>True</Private>
     </Reference>
     <Reference Include="S2Geometry, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\S2Geometry.1.0.1\lib\portable-net45+wp8+win8\S2Geometry.dll</HintPath>
+      <HintPath>..\..\packages\S2Geometry.1.0.3\lib\portable-net45+wp8+win8\S2Geometry.dll</HintPath>
       <Private>True</Private>
     </Reference>
     <Reference Include="System" />
     <Reference Include="System.Configuration" />
     <Reference Include="System.Core" />
+    <Reference Include="System.Drawing" />
     <Reference Include="System.Net.Http.Formatting, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
       <HintPath>..\..\packages\Microsoft.AspNet.WebApi.Client.5.2.3\lib\net45\System.Net.Http.Formatting.dll</HintPath>
       <Private>True</Private>
@@ -68,9 +69,12 @@
     <Reference Include="System.Xml" />
   </ItemGroup>
   <ItemGroup>
+    <Compile Include="Extensions\LatLongExtensions.cs" />
+    <Compile Include="ILatLong.cs" />
     <Compile Include="Enums\AuthType.cs" />
     <Compile Include="Enums\MiscEnums.cs" />
     <Compile Include="Enums\RequestType.cs" />
+    <Compile Include="Exceptions\LoginFailedException.cs" />
     <Compile Include="Exceptions\PtcOfflineException.cs" />
     <Compile Include="Extensions\DateTimeExtensions.cs" />
     <Compile Include="GeneratedCode\AllEnum.cs" />
@@ -78,19 +82,20 @@
     <Compile Include="GeneratedCode\Request.cs" />
     <Compile Include="GeneratedCode\Response.cs" />
     <Compile Include="Helpers\HttpClientHelper.cs" />
-    <Compile Include="Helpers\JsonHelper.cs" />
     <Compile Include="Helpers\ProtoHelper.cs" />
     <Compile Include="Helpers\RetryHandler.cs" />
     <Compile Include="Helpers\S2Helper.cs" />
     <Compile Include="Helpers\Utils.cs" />
     <Compile Include="ISettings.cs" />
     <Compile Include="Login\GoogleLogin.cs" />
+    <Compile Include="Login\ILoginType.cs" />
     <Compile Include="Login\PtcLogin.cs" />
     <None Include="app.config" />
     <Compile Include="Client.cs" />
     <Compile Include="Extensions\HttpClientExtensions.cs" />
     <Compile Include="Helpers\RandomHelper.cs" />
     <Compile Include="Helpers\RequestBuilder.cs" />
+    <Compile Include="ProtoAdditions.cs" />
     <Compile Include="Resources.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
   </ItemGroup>
@@ -102,7 +107,6 @@
     <None Include="Proto\Response.proto" />
     <None Include="Proto\Request.proto" />
   </ItemGroup>
-  <ItemGroup />
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
   <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
        Other similar extension points exist, see Microsoft.Common.targets.
diff --git a/PokemonGo/RocketAPI/ProtoAdditions.cs b/PokemonGo/RocketAPI/ProtoAdditions.cs
new file mode 100644
index 0000000..ea0ecf2
--- /dev/null
+++ b/PokemonGo/RocketAPI/ProtoAdditions.cs
@@ -0,0 +1,17 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace PokemonGo.RocketAPI.GeneratedCode
+{
+    public partial class FortData : ILatLong { }
+
+    public partial class MapPokemon : ILatLong { }
+
+    public partial class WildPokemon : ILatLong { }
+
+    public partial class SpawnPoint : ILatLong { }
+
+}
diff --git a/PokemonGo/RocketAPI/Window/App.config b/PokemonGo/RocketAPI/Window/App.config
index 924e21b..3842152 100644
--- a/PokemonGo/RocketAPI/Window/App.config
+++ b/PokemonGo/RocketAPI/Window/App.config
@@ -1,8 +1,8 @@
-<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8"?>
 <configuration>
-    <startup>
-        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
-    </startup>
+  <startup>
+    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
+  </startup>
   <runtime>
     <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
       <dependentAssembly>
@@ -18,6 +18,10 @@
     <!--Username-->
     <add key="PtcPassword" value="" />
     <!--Password-->
+    <add key="Email" value="" />
+    <!--Google E-mail-->
+    <add key="Password" value="" />
+    <!--E-mail Password-->
     <add key="GoogleRefreshToken" value="" />
     <add key="DefaultLatitude" value="-36.714359" />
     <!--Default Viaduct Harbour, Auckland, New Zealand-->
@@ -45,9 +49,23 @@
     <!--transfer pokemon with IV less than this value if iv transfer type is selected. Whitelist in Program.cs-->
     <add key="TravelSpeed" value="60"/>
     <!--The speed to travel in km/h-->
+    <add key="ImageSize" value="50"/>
+    <!--PokeUi image size-->
     <add key="CatchPokemon" value="true"/>
     <!--Only visit pokestop and collect items-->
     <add key="EvolveAllGivenPokemons" value="false" />
     <add key="ClientSettingsProvider.ServiceUri" value="" />
+
+    <add key="MaxItemPokeBall" value="100"/>
+    <add key="MaxItemGreatBall" value="100"/>
+    <add key="MaxItemUltraBall" value="100"/>
+    <add key="MaxItemMasterBall" value="200"/>
+    <add key="MaxItemRazzBerry" value="100"/>
+    <add key="MaxItemRevive" value="20"/>
+    <add key="MaxItemPotion" value="0"/>
+    <add key="MaxItemSuperPotion" value="0"/>
+    <add key="MaxItemHyperPotion" value="50"/>
+    <add key="MaxItemMaxPotion" value="100"/>
+
   </appSettings>
 </configuration>
\ No newline at end of file
diff --git a/PokemonGo/RocketAPI/Window/CueTextBox.cs b/PokemonGo/RocketAPI/Window/CueTextBox.cs
deleted file mode 100644
index 546e909..0000000
--- a/PokemonGo/RocketAPI/Window/CueTextBox.cs
+++ /dev/null
@@ -1,35 +0,0 @@
-using System;
-using System.ComponentModel;
-using System.Runtime.InteropServices;
-using System.Windows.Forms;
-
-namespace PokemonGo.RocketAPI.Window
-{
-    class CueTextBox : TextBox
-    {
-        [Localizable(true)]
-        public string Cue
-        {
-            get { return mCue; }
-            set { mCue = value; updateCue(); }
-        }
-
-        private void updateCue()
-        {
-            if (this.IsHandleCreated && mCue != null)
-            {
-                SendMessage(this.Handle, 0x1501, (IntPtr)1, mCue);
-            }
-        }
-        protected override void OnHandleCreated(EventArgs e)
-        {
-            base.OnHandleCreated(e);
-            updateCue();
-        }
-        private string mCue;
-
-        // PInvoke
-        [DllImport("user32.dll", CharSet = CharSet.Unicode)]
-        private static extern IntPtr SendMessage(IntPtr hWnd, int msg, IntPtr wp, string lp);
-    }
-}
diff --git a/PokemonGo/RocketAPI/Window/LocationManager.cs b/PokemonGo/RocketAPI/Window/LocationManager.cs
index 065febc..6b6f3b5 100644
--- a/PokemonGo/RocketAPI/Window/LocationManager.cs
+++ b/PokemonGo/RocketAPI/Window/LocationManager.cs
@@ -3,59 +3,34 @@ using System.Collections.Generic;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
+using PokemonGo.RocketAPI;
+using PokemonGo.RocketAPI.Extensions;

 namespace PokemonGo.RocketAPI.Window
 {
     public class LocationManager
     {
         private Client client;
-        private double kilometersPerMillisecond;
+        private double metersPerMillisecond;

         public LocationManager(Client client, double speed)
         {
             this.client = client;
-            this.kilometersPerMillisecond = speed / 3600000;
+            this.metersPerMillisecond = speed / 3600;
         }

         public double getDistance(double lat, double lng)
         {
-            Coordinate currentLoc = new Coordinate(client.getCurrentLat(), client.getCurrentLong());
-            return currentLoc.distanceFrom(new Coordinate(lat, lng));
+            LatLong currentLoc = new LatLong(client.CurrentLatitude, client.CurrentLongitude);
+            return currentLoc.distanceFrom(new LatLong(lat, lng));
         }

         public async Task update(double lat, double lng)
         {
-            double waitTime = getDistance(lat, lng)/this.kilometersPerMillisecond;
+            double waitTime = getDistance(lat, lng) / this.metersPerMillisecond;
             await Task.Delay((int)Math.Ceiling(waitTime));
             await client.UpdatePlayerLocation(lat, lng);
         }
-
-        public struct Coordinate
-        {
-
-            public Coordinate(double lat, double lng)
-            {
-                this.latitude = lat;
-                this.longitude = lng;
-            }
-            public double latitude;
-            public double longitude;
-
-            //returns distance in kilometers
-            public double distanceFrom(Coordinate c2)
-            {
-                double R = 6371;
-                Func<double, double> toRad = x => x * (Math.PI / 180);
-                double dLat = toRad(c2.latitude - this.latitude);
-                double dLong = toRad(c2.longitude - c2.longitude);
-                double lat1 = toRad(this.latitude);
-                double lat2 = toRad(c2.latitude);
-                double a = Math.Sin(dLat / 2) * Math.Sin(dLat / 2) +
-                    Math.Sin(dLong / 2) * Math.Sin(dLong / 2) * Math.Cos(lat1) * Math.Cos(lat2);
-                double c = 2 * Math.Atan2(Math.Sqrt(a), Math.Sqrt(1 - a));
-                return R * c;
-            }
-        }
     }

-}
+}
\ No newline at end of file
diff --git a/PokemonGo/RocketAPI/Window/MainForm.Designer.cs b/PokemonGo/RocketAPI/Window/MainForm.Designer.cs
index addeace..bfeb935 100644
--- a/PokemonGo/RocketAPI/Window/MainForm.Designer.cs
+++ b/PokemonGo/RocketAPI/Window/MainForm.Designer.cs
@@ -28,42 +28,66 @@
         /// </summary>
         private void InitializeComponent()
         {
+            this.components = new System.ComponentModel.Container();
             System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));
             this.logTextBox = new System.Windows.Forms.RichTextBox();
             this.statusStrip1 = new System.Windows.Forms.StatusStrip();
             this.statusLabel = new System.Windows.Forms.ToolStripStatusLabel();
             this.menuStrip1 = new System.Windows.Forms.MenuStrip();
+            this.startStopBotToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
             this.todoToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
-            this.startBotToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
-            this.pokemonToolStripMenuItem2 = new System.Windows.Forms.ToolStripMenuItem();
             this.useLuckyEggToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+            this.forceUnbanToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
             this.showAllToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
             this.showAllToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
-            this.forceUnbanToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+            this.gMapControl1 = new GMap.NET.WindowsForms.GMapControl();
+            this.objectListView1 = new BrightIdeasSoftware.ObjectListView();
+            this.pkmnName = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn()));
+            this.pkmnCP = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn()));
+            this.pkmnAtkIV = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn()));
+            this.pkmnDefIV = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn()));
+            this.pkmnStaIV = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn()));
+            this.pkmnIV = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn()));
+            this.pkmnTransferButton = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn()));
+            this.pkmnPowerUpButton = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn()));
+            this.pkmnEvolveButton = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn()));
+            this.largePokemonImageList = new System.Windows.Forms.ImageList(this.components);
+            this.smallPokemonImageList = new System.Windows.Forms.ImageList(this.components);
+            this.button1 = new System.Windows.Forms.Button();
+            this.tabControl1 = new System.Windows.Forms.TabControl();
+            this.tabPage1 = new System.Windows.Forms.TabPage();
+            this.label1 = new System.Windows.Forms.Label();
+            this.tabPage2 = new System.Windows.Forms.TabPage();
             this.statusStrip1.SuspendLayout();
             this.menuStrip1.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.objectListView1)).BeginInit();
+            this.tabControl1.SuspendLayout();
+            this.tabPage1.SuspendLayout();
             this.SuspendLayout();
             //
             // logTextBox
             //
             this.logTextBox.BackColor = System.Drawing.Color.Black;
-            this.logTextBox.Dock = System.Windows.Forms.DockStyle.Fill;
-            this.logTextBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.logTextBox.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
+            this.logTextBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
             this.logTextBox.ForeColor = System.Drawing.Color.White;
-            this.logTextBox.Location = new System.Drawing.Point(0, 25);
+            this.logTextBox.ImeMode = System.Windows.Forms.ImeMode.Off;
+            this.logTextBox.Location = new System.Drawing.Point(0, 24);
             this.logTextBox.Name = "logTextBox";
-            this.logTextBox.Size = new System.Drawing.Size(905, 430);
+            this.logTextBox.ReadOnly = true;
+            this.logTextBox.Size = new System.Drawing.Size(668, 338);
             this.logTextBox.TabIndex = 0;
             this.logTextBox.Text = "";
             this.logTextBox.TextChanged += new System.EventHandler(this.logTextBox_TextChanged);
             //
             // statusStrip1
             //
+            this.statusStrip1.ImageScalingSize = new System.Drawing.Size(20, 20);
             this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
             this.statusLabel});
-            this.statusStrip1.Location = new System.Drawing.Point(0, 455);
+            this.statusStrip1.Location = new System.Drawing.Point(0, 615);
             this.statusStrip1.Name = "statusStrip1";
-            this.statusStrip1.Size = new System.Drawing.Size(905, 22);
+            this.statusStrip1.Size = new System.Drawing.Size(1012, 22);
             this.statusStrip1.TabIndex = 1;
             this.statusStrip1.Text = "statusStrip1";
             //
@@ -75,39 +99,32 @@
             //
             // menuStrip1
             //
+            this.menuStrip1.ImageScalingSize = new System.Drawing.Size(20, 20);
             this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
-            this.startBotToolStripMenuItem,
+            this.startStopBotToolStripMenuItem,
             this.todoToolStripMenuItem,
-            this.pokemonToolStripMenuItem2,
             this.useLuckyEggToolStripMenuItem,
             this.forceUnbanToolStripMenuItem});
             this.menuStrip1.Location = new System.Drawing.Point(0, 0);
             this.menuStrip1.Name = "menuStrip1";
-            this.menuStrip1.Size = new System.Drawing.Size(905, 25);
+            this.menuStrip1.Size = new System.Drawing.Size(1012, 25);
             this.menuStrip1.TabIndex = 2;
             this.menuStrip1.Text = "menuStrip1";
             //
+            // startStopBotToolStripMenuItem
+            //
+            this.startStopBotToolStripMenuItem.Name = "startStopBotToolStripMenuItem";
+            this.startStopBotToolStripMenuItem.Size = new System.Drawing.Size(85, 21);
+            this.startStopBotToolStripMenuItem.Text = "▶ Start Bot";
+            this.startStopBotToolStripMenuItem.Click += new System.EventHandler(this.startStopBotToolStripMenuItem_Click);
+            //
             // todoToolStripMenuItem
             //
             this.todoToolStripMenuItem.Name = "todoToolStripMenuItem";
-            this.todoToolStripMenuItem.Size = new System.Drawing.Size(61, 20);
+            this.todoToolStripMenuItem.Size = new System.Drawing.Size(66, 21);
             this.todoToolStripMenuItem.Text = "Settings";
             this.todoToolStripMenuItem.Click += new System.EventHandler(this.todoToolStripMenuItem_Click);
             //
-            // startBotToolStripMenuItem
-            //
-            this.startBotToolStripMenuItem.Name = "startBotToolStripMenuItem";
-            this.startBotToolStripMenuItem.Size = new System.Drawing.Size(64, 20);
-            this.startBotToolStripMenuItem.Text = "Start Bot";
-            this.startBotToolStripMenuItem.Click += new System.EventHandler(this.startBotToolStripMenuItem_Click);
-            //
-            // pokemonToolStripMenuItem2
-            //
-            this.pokemonToolStripMenuItem2.Name = "pokemonToolStripMenuItem2";
-            this.pokemonToolStripMenuItem2.Size = new System.Drawing.Size(70, 20);
-            this.pokemonToolStripMenuItem2.Text = "Pokemon";
-            this.pokemonToolStripMenuItem2.Click += new System.EventHandler(this.pokemonToolStripMenuItem2_Click);
-            //
             // useLuckyEggToolStripMenuItem
             //
             this.useLuckyEggToolStripMenuItem.Name = "useLuckyEggToolStripMenuItem";
@@ -115,6 +132,13 @@
             this.useLuckyEggToolStripMenuItem.Text = "Use Lucky Egg";
             this.useLuckyEggToolStripMenuItem.Click += new System.EventHandler(this.useLuckyEggToolStripMenuItem_Click);
             //
+            // forceUnbanToolStripMenuItem
+            //
+            this.forceUnbanToolStripMenuItem.Name = "forceUnbanToolStripMenuItem";
+            this.forceUnbanToolStripMenuItem.Size = new System.Drawing.Size(94, 21);
+            this.forceUnbanToolStripMenuItem.Text = "Force Unban";
+            this.forceUnbanToolStripMenuItem.Click += new System.EventHandler(this.forceUnbanToolStripMenuItem_Click);
+            //
             // showAllToolStripMenuItem
             //
             this.showAllToolStripMenuItem.Name = "showAllToolStripMenuItem";
@@ -125,31 +149,235 @@
             this.showAllToolStripMenuItem1.Name = "showAllToolStripMenuItem1";
             this.showAllToolStripMenuItem1.Size = new System.Drawing.Size(32, 19);
             //
-            // forceUnbanToolStripMenuItem
+            // gMapControl1
             //
-            this.forceUnbanToolStripMenuItem.Name = "forceUnbanToolStripMenuItem";
-            this.forceUnbanToolStripMenuItem.Size = new System.Drawing.Size(94, 21);
-            this.forceUnbanToolStripMenuItem.Text = "Force Unban";
-            this.forceUnbanToolStripMenuItem.Click += new System.EventHandler(this.forceUnbanToolStripMenuItem_Click);
+            this.gMapControl1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+            this.gMapControl1.Bearing = 0F;
+            this.gMapControl1.CanDragMap = true;
+            this.gMapControl1.EmptyTileColor = System.Drawing.Color.Navy;
+            this.gMapControl1.GrayScaleMode = false;
+            this.gMapControl1.HelperLineOption = GMap.NET.WindowsForms.HelperLineOptions.DontShow;
+            this.gMapControl1.LevelsKeepInMemmory = 5;
+            this.gMapControl1.Location = new System.Drawing.Point(674, 24);
+            this.gMapControl1.MarkersEnabled = true;
+            this.gMapControl1.MaxZoom = 2;
+            this.gMapControl1.MinZoom = 2;
+            this.gMapControl1.MouseWheelZoomType = GMap.NET.MouseWheelZoomType.MousePositionAndCenter;
+            this.gMapControl1.Name = "gMapControl1";
+            this.gMapControl1.NegativeMode = false;
+            this.gMapControl1.PolygonsEnabled = true;
+            this.gMapControl1.RetryLoadTile = 0;
+            this.gMapControl1.RoutesEnabled = true;
+            this.gMapControl1.ScaleMode = GMap.NET.WindowsForms.ScaleModes.Integer;
+            this.gMapControl1.SelectedAreaFillColor = System.Drawing.Color.FromArgb(((int)(((byte)(33)))), ((int)(((byte)(65)))), ((int)(((byte)(105)))), ((int)(((byte)(225)))));
+            this.gMapControl1.ShowTileGridLines = false;
+            this.gMapControl1.Size = new System.Drawing.Size(338, 338);
+            this.gMapControl1.TabIndex = 23;
+            this.gMapControl1.Zoom = 0D;
+            //
+            // objectListView1
+            //
+            this.objectListView1.AllColumns.Add(this.pkmnName);
+            this.objectListView1.AllColumns.Add(this.pkmnCP);
+            this.objectListView1.AllColumns.Add(this.pkmnAtkIV);
+            this.objectListView1.AllColumns.Add(this.pkmnDefIV);
+            this.objectListView1.AllColumns.Add(this.pkmnStaIV);
+            this.objectListView1.AllColumns.Add(this.pkmnIV);
+            this.objectListView1.AllColumns.Add(this.pkmnTransferButton);
+            this.objectListView1.AllColumns.Add(this.pkmnPowerUpButton);
+            this.objectListView1.AllColumns.Add(this.pkmnEvolveButton);
+            this.objectListView1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+            | System.Windows.Forms.AnchorStyles.Left)
+            | System.Windows.Forms.AnchorStyles.Right)));
+            this.objectListView1.CellEditUseWholeCell = false;
+            this.objectListView1.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
+            this.pkmnName,
+            this.pkmnCP,
+            this.pkmnAtkIV,
+            this.pkmnDefIV,
+            this.pkmnStaIV,
+            this.pkmnIV,
+            this.pkmnTransferButton,
+            this.pkmnPowerUpButton,
+            this.pkmnEvolveButton});
+            this.objectListView1.Cursor = System.Windows.Forms.Cursors.Default;
+            this.objectListView1.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.objectListView1.FullRowSelect = true;
+            this.objectListView1.GridLines = true;
+            this.objectListView1.LargeImageList = this.largePokemonImageList;
+            this.objectListView1.Location = new System.Drawing.Point(0, 368);
+            this.objectListView1.MultiSelect = false;
+            this.objectListView1.Name = "objectListView1";
+            this.objectListView1.RowHeight = 32;
+            this.objectListView1.ShowGroups = false;
+            this.objectListView1.Size = new System.Drawing.Size(668, 220);
+            this.objectListView1.SmallImageList = this.smallPokemonImageList;
+            this.objectListView1.TabIndex = 25;
+            this.objectListView1.UseCompatibleStateImageBehavior = false;
+            this.objectListView1.View = System.Windows.Forms.View.Details;
+            //
+            // pkmnName
+            //
+            this.pkmnName.AspectName = "PokemonId";
+            this.pkmnName.AspectToStringFormat = "";
+            this.pkmnName.Text = "Name";
+            this.pkmnName.Width = 120;
+            //
+            // pkmnCP
+            //
+            this.pkmnCP.AspectName = "Cp";
+            this.pkmnCP.Text = "CP";
+            this.pkmnCP.Width = 50;
+            //
+            // pkmnAtkIV
+            //
+            this.pkmnAtkIV.AspectName = "IndividualAttack";
+            this.pkmnAtkIV.Text = "Atk IV";
+            this.pkmnAtkIV.Width = 50;
+            //
+            // pkmnDefIV
+            //
+            this.pkmnDefIV.AspectName = "IndividualDefense";
+            this.pkmnDefIV.Text = "Def IV";
+            this.pkmnDefIV.Width = 50;
+            //
+            // pkmnStaIV
+            //
+            this.pkmnStaIV.AspectName = "IndividualStamina";
+            this.pkmnStaIV.Text = "Sta IV";
+            this.pkmnStaIV.Width = 50;
+            //
+            // pkmnIV
+            //
+            this.pkmnIV.AspectName = "GetIV";
+            this.pkmnIV.AspectToStringFormat = "{0:P2}";
+            this.pkmnIV.Text = "IV %";
+            this.pkmnIV.Width = 50;
+            //
+            // pkmnTransferButton
+            //
+            this.pkmnTransferButton.AspectName = "Id";
+            this.pkmnTransferButton.AspectToStringFormat = "Transfer";
+            this.pkmnTransferButton.ButtonSizing = BrightIdeasSoftware.OLVColumn.ButtonSizingMode.CellBounds;
+            this.pkmnTransferButton.IsButton = true;
+            this.pkmnTransferButton.Text = "";
+            //
+            // pkmnPowerUpButton
+            //
+            this.pkmnPowerUpButton.AspectName = "Id";
+            this.pkmnPowerUpButton.AspectToStringFormat = "Power Up";
+            this.pkmnPowerUpButton.ButtonSizing = BrightIdeasSoftware.OLVColumn.ButtonSizingMode.CellBounds;
+            this.pkmnPowerUpButton.IsButton = true;
+            this.pkmnPowerUpButton.Text = "";
+            //
+            // pkmnEvolveButton
+            //
+            this.pkmnEvolveButton.AspectName = "Id";
+            this.pkmnEvolveButton.AspectToStringFormat = "Evolve";
+            this.pkmnEvolveButton.ButtonSizing = BrightIdeasSoftware.OLVColumn.ButtonSizingMode.CellBounds;
+            this.pkmnEvolveButton.IsButton = true;
+            this.pkmnEvolveButton.Text = "";
+            //
+            // largePokemonImageList
+            //
+            this.largePokemonImageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit;
+            this.largePokemonImageList.ImageSize = new System.Drawing.Size(96, 96);
+            this.largePokemonImageList.TransparentColor = System.Drawing.Color.Transparent;
+            //
+            // smallPokemonImageList
+            //
+            this.smallPokemonImageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit;
+            this.smallPokemonImageList.ImageSize = new System.Drawing.Size(32, 32);
+            this.smallPokemonImageList.TransparentColor = System.Drawing.Color.Transparent;
+            //
+            // button1
+            //
+            this.button1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
+            | System.Windows.Forms.AnchorStyles.Right)));
+            this.button1.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
+            this.button1.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.button1.Location = new System.Drawing.Point(0, 588);
+            this.button1.Name = "button1";
+            this.button1.Size = new System.Drawing.Size(668, 26);
+            this.button1.TabIndex = 26;
+            this.button1.Text = "Refresh";
+            this.button1.UseVisualStyleBackColor = true;
+            this.button1.Click += new System.EventHandler(this.button1_Click);
+            //
+            // tabControl1
+            //
+            this.tabControl1.Alignment = System.Windows.Forms.TabAlignment.Bottom;
+            this.tabControl1.Controls.Add(this.tabPage1);
+            this.tabControl1.Controls.Add(this.tabPage2);
+            this.tabControl1.Enabled = false;
+            this.tabControl1.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.tabControl1.Location = new System.Drawing.Point(674, 368);
+            this.tabControl1.Name = "tabControl1";
+            this.tabControl1.RightToLeft = System.Windows.Forms.RightToLeft.No;
+            this.tabControl1.SelectedIndex = 0;
+            this.tabControl1.Size = new System.Drawing.Size(338, 244);
+            this.tabControl1.TabIndex = 27;
+            //
+            // tabPage1
+            //
+            this.tabPage1.Controls.Add(this.label1);
+            this.tabPage1.Location = new System.Drawing.Point(4, 4);
+            this.tabPage1.Name = "tabPage1";
+            this.tabPage1.Padding = new System.Windows.Forms.Padding(3);
+            this.tabPage1.Size = new System.Drawing.Size(330, 216);
+            this.tabPage1.TabIndex = 0;
+            this.tabPage1.Text = "Incoming Feature";
+            this.tabPage1.UseVisualStyleBackColor = true;
+            //
+            // label1
+            //
+            this.label1.AutoSize = true;
+            this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 15.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.label1.Location = new System.Drawing.Point(67, 102);
+            this.label1.Name = "label1";
+            this.label1.Size = new System.Drawing.Size(189, 25);
+            this.label1.TabIndex = 0;
+            this.label1.Text = "Incoming Features";
+            //
+            // tabPage2
+            //
+            this.tabPage2.Location = new System.Drawing.Point(4, 4);
+            this.tabPage2.Name = "tabPage2";
+            this.tabPage2.Padding = new System.Windows.Forms.Padding(3);
+            this.tabPage2.Size = new System.Drawing.Size(330, 216);
+            this.tabPage2.TabIndex = 1;
+            this.tabPage2.Text = ":3";
+            this.tabPage2.UseVisualStyleBackColor = true;
             //
             // MainForm
             //
             this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-            this.ClientSize = new System.Drawing.Size(905, 477);
+            this.ClientSize = new System.Drawing.Size(1012, 637);
+            this.Controls.Add(this.gMapControl1);
             this.Controls.Add(this.logTextBox);
+            this.Controls.Add(this.button1);
+            this.Controls.Add(this.objectListView1);
             this.Controls.Add(this.statusStrip1);
             this.Controls.Add(this.menuStrip1);
+            this.Controls.Add(this.tabControl1);
             this.ForeColor = System.Drawing.SystemColors.ControlText;
+            this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D;
             this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
             this.MainMenuStrip = this.menuStrip1;
+            this.MaximizeBox = false;
             this.Name = "MainForm";
+            this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
             this.Text = "PokemonGo Rocket API";
             this.Load += new System.EventHandler(this.MainForm_Load);
             this.statusStrip1.ResumeLayout(false);
             this.statusStrip1.PerformLayout();
             this.menuStrip1.ResumeLayout(false);
             this.menuStrip1.PerformLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.objectListView1)).EndInit();
+            this.tabControl1.ResumeLayout(false);
+            this.tabPage1.ResumeLayout(false);
+            this.tabPage1.PerformLayout();
             this.ResumeLayout(false);
             this.PerformLayout();

@@ -162,12 +390,28 @@
         private System.Windows.Forms.MenuStrip menuStrip1;
         private System.Windows.Forms.ToolStripMenuItem todoToolStripMenuItem;
         private System.Windows.Forms.ToolStripStatusLabel statusLabel;
-        private System.Windows.Forms.ToolStripMenuItem startBotToolStripMenuItem;
+        private System.Windows.Forms.ToolStripMenuItem startStopBotToolStripMenuItem;
         private System.Windows.Forms.ToolStripMenuItem showAllToolStripMenuItem;
         private System.Windows.Forms.ToolStripMenuItem showAllToolStripMenuItem1;
-        private System.Windows.Forms.ToolStripMenuItem pokemonToolStripMenuItem2;
         private System.Windows.Forms.ToolStripMenuItem useLuckyEggToolStripMenuItem;
         private System.Windows.Forms.ToolStripMenuItem forceUnbanToolStripMenuItem;
+        private GMap.NET.WindowsForms.GMapControl gMapControl1;
+        private BrightIdeasSoftware.ObjectListView objectListView1;
+        private BrightIdeasSoftware.OLVColumn pkmnName;
+        private BrightIdeasSoftware.OLVColumn pkmnCP;
+        private BrightIdeasSoftware.OLVColumn pkmnAtkIV;
+        private BrightIdeasSoftware.OLVColumn pkmnDefIV;
+        private BrightIdeasSoftware.OLVColumn pkmnStaIV;
+        private BrightIdeasSoftware.OLVColumn pkmnIV;
+        private BrightIdeasSoftware.OLVColumn pkmnTransferButton;
+        private System.Windows.Forms.Button button1;
+        private System.Windows.Forms.ImageList smallPokemonImageList;
+        private System.Windows.Forms.ImageList largePokemonImageList;
+        private BrightIdeasSoftware.OLVColumn pkmnPowerUpButton;
+        private BrightIdeasSoftware.OLVColumn pkmnEvolveButton;
+        private System.Windows.Forms.TabControl tabControl1;
+        private System.Windows.Forms.TabPage tabPage1;
+        private System.Windows.Forms.TabPage tabPage2;
+        private System.Windows.Forms.Label label1;
     }
 }
-
diff --git a/PokemonGo/RocketAPI/Window/MainForm.cs b/PokemonGo/RocketAPI/Window/MainForm.cs
index 6fb4b26..e330388 100644
--- a/PokemonGo/RocketAPI/Window/MainForm.cs
+++ b/PokemonGo/RocketAPI/Window/MainForm.cs
@@ -1,4 +1,4 @@
-using System;
+using System;
 using System.Collections.Generic;
 using System.ComponentModel;
 using System.Data;
@@ -18,35 +18,103 @@ using PokemonGo.RocketAPI.Enums;
 using PokemonGo.RocketAPI.Exceptions;
 using PokemonGo.RocketAPI.Extensions;
 using PokemonGo.RocketAPI.GeneratedCode;
+using System.Configuration;
+using GMap.NET;
+using GMap.NET.MapProviders;
+using GMap.NET.WindowsForms;
+using GMap.NET.WindowsForms.Markers;
+using GMap.NET.WindowsForms.ToolTips;
+using System.Threading;
+using BrightIdeasSoftware;
+using PokemonGo.RocketAPI.Helpers;

 namespace PokemonGo.RocketAPI.Window
 {
     public partial class MainForm : Form
     {
+        public static MainForm Instance;
+        public static SynchronizationContext synchronizationContext;
+
+        GMapOverlay searchAreaOverlay = new GMapOverlay("areas");
+        GMapOverlay pokestopsOverlay = new GMapOverlay("pokestops");
+        GMapOverlay pokemonsOverlay = new GMapOverlay("pokemons");
+        GMapOverlay playerOverlay = new GMapOverlay("players");
+
+        GMarkerGoogle playerMarker;
+
+        IEnumerable<FortData> pokeStops;
+        IEnumerable<WildPokemon> wildPokemons;
+
         public MainForm()
         {
             InitializeComponent();
+            synchronizationContext = SynchronizationContext.Current;
             ClientSettings = Settings.Instance;
+            Client.OnConsoleWrite += Client_OnConsoleWrite;
+            Instance = this;
         }

         private void MainForm_Load(object sender, EventArgs e)
         {
+            gMapControl1.MapProvider = GoogleMapProvider.Instance;
+            gMapControl1.Manager.Mode = AccessMode.ServerOnly;
+            GMapProvider.WebProxy = null;
+            gMapControl1.Position = new PointLatLng(ClientSettings.DefaultLatitude, ClientSettings.DefaultLongitude);
+            gMapControl1.DragButton = MouseButtons.Left;
+
+            gMapControl1.MinZoom = 1;
+            gMapControl1.MaxZoom = 20;
+            gMapControl1.Zoom = 15;
+
+            gMapControl1.Overlays.Add(searchAreaOverlay);
+            gMapControl1.Overlays.Add(pokestopsOverlay);
+            gMapControl1.Overlays.Add(pokemonsOverlay);
+            gMapControl1.Overlays.Add(playerOverlay);
+
+            playerMarker = new GMarkerGoogle(new PointLatLng(ClientSettings.DefaultLatitude, ClientSettings.DefaultLongitude),
+                GMarkerGoogleType.orange_small);
+            playerOverlay.Markers.Add(playerMarker);
+
+            InitializeMap();
+            InitializePokemonForm();
+        }
+
+        public void Restart()
+        {
+            InitializeMap();
+            InitializePokemonForm();
+        }
+
+        private void InitializeMap()
+        {
+            playerMarker.Position = new PointLatLng(ClientSettings.DefaultLatitude, ClientSettings.DefaultLongitude);
+            searchAreaOverlay.Polygons.Clear();
+            S2GMapDrawer.DrawS2Cells(S2Helper.GetNearbyCellIds(ClientSettings.DefaultLongitude, ClientSettings.DefaultLatitude), searchAreaOverlay);
+        }

+        public static void ResetMap()
+        {
+            Instance.gMapControl1.Position = new PointLatLng(ClientSettings.DefaultLatitude, ClientSettings.DefaultLongitude);
+            Instance.playerMarker.Position = new PointLatLng(ClientSettings.DefaultLatitude, ClientSettings.DefaultLongitude);
+            Instance.searchAreaOverlay.Polygons.Clear();
+            S2GMapDrawer.DrawS2Cells(S2Helper.GetNearbyCellIds(ClientSettings.DefaultLongitude, ClientSettings.DefaultLatitude), Instance.searchAreaOverlay);
         }

         public static ISettings ClientSettings;
         private static int Currentlevel = -1;
         private static int TotalExperience = 0;
         private static int TotalPokemon = 0;
+        private static bool Stopping = false;
         private static bool ForceUnbanning = false;
         private static bool FarmingStops = false;
         private static bool FarmingPokemons = false;
         private static DateTime TimeStarted = DateTime.Now;
         public static DateTime InitSessionDateTime = DateTime.Now;
-

         Client client;
+        Client client2;
         LocationManager locationManager;
+
         public static double GetRuntime()
         {
             return ((DateTime.Now - TimeStarted).TotalSeconds) / 3600;
@@ -73,7 +141,7 @@ namespace PokemonGo.RocketAPI.Window
                 // makes sense to display your version and say what the current one is on github
                 ColoredConsoleWrite(Color.Green, "Your version is " + Assembly.GetExecutingAssembly().GetName().Version);
                 ColoredConsoleWrite(Color.Green, "Github version is " + gitVersion);
-                ColoredConsoleWrite(Color.Green, "You can find it at www.GitHub.com/DetectiveSquirrel/Pokemon-Go-Rocket-API");
+                ColoredConsoleWrite(Color.Green, "You can find it at www.GitHub.com/1461748123/Pokemon-Go-Rocket-API/releases");
             }
             catch (Exception)
             {
@@ -86,27 +154,44 @@ namespace PokemonGo.RocketAPI.Window
             using (var wC = new WebClient())
                 return
                     wC.DownloadString(
-                        "https://raw.githubusercontent.com/DetectiveSquirrel/Pokemon-Go-Rocket-API/master/PokemonGo/RocketAPI/Window/Properties/AssemblyInfo.cs");
+                        "https://raw.githubusercontent.com/1461748123/Pokemon-Go-Rocket-API/master/PokemonGo/RocketAPI/Window/Properties/AssemblyInfo.cs");
         }

-        public void ColoredConsoleWrite(Color color, string text)
+        public static void ColoredConsoleWrite(Color color, string text)
         {
-            if (InvokeRequired)
+            if (MainForm.Instance.InvokeRequired)
             {
-                Invoke(new Action<Color, string>(ColoredConsoleWrite), color, text);
+                MainForm.Instance.Invoke(new Action<Color, string>(ColoredConsoleWrite), color, text);
                 return;
             }
+
+            MainForm.Instance.logTextBox.Select(MainForm.Instance.logTextBox.Text.Length, 1); // Reset cursor to last
+
             string textToAppend = "[" + DateTime.Now.ToString("HH:mm:ss tt") + "] " + text + "\r\n";
-            logTextBox.SelectionColor = color;
-            logTextBox.AppendText(textToAppend);
+            MainForm.Instance.logTextBox.SelectionColor = color;
+            MainForm.Instance.logTextBox.AppendText(textToAppend);

             object syncRoot = new object();
             lock (syncRoot) // Added locking to prevent text file trying to be accessed by two things at the same time
             {
-                File.AppendAllText(AppDomain.CurrentDomain.BaseDirectory + @"\Logs.txt", "[" + DateTime.Now.ToString("HH:mm:ss tt") + "] " + text + "\n");
+                var dir = AppDomain.CurrentDomain.BaseDirectory + @"\Logs";
+                if (!Directory.Exists(dir))
+                    Directory.CreateDirectory(dir);
+                File.AppendAllText(dir + @"\" + DateTime.Today.ToString("yyyyMMdd") + ".txt", "[" + DateTime.Now.ToString("HH:mm:ss tt") + "] " + text + "\r\n");
             }
         }

+        public void ConsoleClear()
+        {
+            if (InvokeRequired)
+            {
+                Invoke(new Action(ConsoleClear));
+                return;
+            }
+
+            logTextBox.Clear();
+        }
+
         public void SetStatusText(string text)
         {
             if (InvokeRequired)
@@ -132,17 +217,6 @@ namespace PokemonGo.RocketAPI.Window
         {
             foreach (var pokemon in pokemonToEvolve)
             {
-                /*
-                enum Holoholo.Rpc.Types.EvolvePokemonOutProto.Result {
-	                UNSET = 0;
-	                SUCCESS = 1;
-	                FAILED_POKEMON_MISSING = 2;
-	                FAILED_INSUFFICIENT_RESOURCES = 3;
-	                FAILED_POKEMON_CANNOT_EVOLVE = 4;
-	                FAILED_POKEMON_IS_DEPLOYED = 5;
-                }
-                }*/
-
                 var countOfEvolvedUnits = 0;
                 var xpCount = 0;

@@ -154,23 +228,12 @@ namespace PokemonGo.RocketAPI.Window

                     if (evolvePokemonOutProto.Result == 1)
                     {
-                        ColoredConsoleWrite(Color.Cyan,
-                            $"Evolved {pokemon.PokemonId} successfully for {evolvePokemonOutProto.ExpAwarded}xp");
-
                         countOfEvolvedUnits++;
                         xpCount += evolvePokemonOutProto.ExpAwarded;
-                    }
-                    else
-                    {
-                        var result = evolvePokemonOutProto.Result;
-                        /*
-                        ColoredConsoleWrite(ConsoleColor.White, $"Failed to evolve {pokemon.PokemonId}. " +
-                                                 $"EvolvePokemonOutProto.Result was {result}");
-
-                        ColoredConsoleWrite(ConsoleColor.White, $"Due to above error, stopping evolving {pokemon.PokemonId}");
-                        */
+                        TotalExperience += evolvePokemonOutProto.ExpAwarded;
                     }
                 } while (evolvePokemonOutProto.Result == 1);
+
                 if (countOfEvolvedUnits > 0)
                     ColoredConsoleWrite(Color.Cyan,
                         $"Evolved {countOfEvolvedUnits} pieces of {pokemon.PokemonId} for {xpCount}xp");
@@ -189,17 +252,13 @@ namespace PokemonGo.RocketAPI.Window
                 {
                     case AuthType.Ptc:
                         ColoredConsoleWrite(Color.Green, "Login Type: Pokemon Trainers Club");
-                        await client.DoPtcLogin(ClientSettings.PtcUsername, ClientSettings.PtcPassword);
                         break;
                     case AuthType.Google:
                         ColoredConsoleWrite(Color.Green, "Login Type: Google");
-                        if (ClientSettings.GoogleRefreshToken == "")
-                            ColoredConsoleWrite(Color.Green, "Now opening www.Google.com/device and copying the 8 digit code to your clipboard");
-
-                        await client.DoGoogleLogin();
                         break;
                 }

+                await client.Login();
                 await client.SetServer();
                 var profile = await client.GetProfile();
                 var settings = await client.GetSettings();
@@ -209,15 +268,23 @@ namespace PokemonGo.RocketAPI.Window
                     inventory.InventoryDelta.InventoryItems.Select(i => i.InventoryItemData?.Pokemon)
                         .Where(p => p != null && p?.PokemonId > 0);

-                ConsoleLevelTitle(profile.Profile.Username, client);
+                updateUserStatusBar(client);

                 // Write the players ingame details
                 ColoredConsoleWrite(Color.Yellow, "----------------------------");
-                if (ClientSettings.AuthType == AuthType.Ptc)
+                /*// dont actually want to display info but keeping here incase people want to \O_O/
+                 * if (ClientSettings.AuthType == AuthType.Ptc)
                 {
                     ColoredConsoleWrite(Color.Cyan, "Account: " + ClientSettings.PtcUsername);
                     ColoredConsoleWrite(Color.Cyan, "Password: " + ClientSettings.PtcPassword + "\n");
                 }
+                else
+                {
+                    ColoredConsoleWrite(Color.Cyan, "Email: " + ClientSettings.Email);
+                    ColoredConsoleWrite(Color.Cyan, "Password: " + ClientSettings.Password + "\n");
+                }*/
+                string lat2 = System.Convert.ToString(ClientSettings.DefaultLatitude);
+                string longit2 = System.Convert.ToString(ClientSettings.DefaultLongitude);
                 ColoredConsoleWrite(Color.DarkGray, "Name: " + profile.Profile.Username);
                 ColoredConsoleWrite(Color.DarkGray, "Team: " + profile.Profile.Team);
                 if (profile.Profile.Currency.ToArray()[0].Amount > 0) // If player has any pokecoins it will show how many they have.
@@ -227,14 +294,15 @@ namespace PokemonGo.RocketAPI.Window
                 ColoredConsoleWrite(Color.DarkGray, "Longitude: " + ClientSettings.DefaultLongitude);
                 try
                 {
-                    ColoredConsoleWrite(Color.DarkGray, "Country: " + CallAPI("country", ClientSettings.DefaultLatitude, ClientSettings.DefaultLongitude));
-                    ColoredConsoleWrite(Color.DarkGray, "Area: " + CallAPI("place", ClientSettings.DefaultLatitude, ClientSettings.DefaultLongitude));
+                    ColoredConsoleWrite(Color.DarkGray, "Country: " + CallAPI("country", lat2.Replace(',', '.'), longit2.Replace(',', '.')));
+                    ColoredConsoleWrite(Color.DarkGray, "Area: " + CallAPI("place", lat2.Replace(',', '.'), longit2.Replace(',', '.')));
                 }
                 catch (Exception)
                 {
                     ColoredConsoleWrite(Color.DarkGray, "Unable to get Country/Place");
                 }

+
                 ColoredConsoleWrite(Color.Yellow, "----------------------------");

                 // I believe a switch is more efficient and easier to read.
@@ -277,22 +345,36 @@ namespace PokemonGo.RocketAPI.Window
                     await Task.Delay(25);

                 // await ForceUnban(client);
-                ColoredConsoleWrite(Color.Red, $"No nearby useful locations found. Please wait 10 seconds.");
-                await Task.Delay(10000);
-                CheckVersion();
-                Execute();
+                if (!Stopping)
+                {
+                    ColoredConsoleWrite(Color.Red, $"No nearby useful locations found. Please wait 10 seconds.");
+                    await Task.Delay(10000);
+                    Execute();
+                }
+                else
+                {
+                    ConsoleClear();
+                    pokestopsOverlay.Routes.Clear();
+                    pokestopsOverlay.Markers.Clear();
+                    ColoredConsoleWrite(Color.Red, $"Bot successfully stopped.");
+                    startStopBotToolStripMenuItem.Text = "Start";
+                    Stopping = false;
+                    bot_started = false;
+                    pokeStops = null;
+                }
             }
-            catch (TaskCanceledException) { ColoredConsoleWrite(Color.Red, "Task Canceled Exception - Restarting"); Execute(); }
-            catch (UriFormatException) { ColoredConsoleWrite(Color.Red, "System URI Format Exception - Restarting"); Execute(); }
-            catch (ArgumentOutOfRangeException) { ColoredConsoleWrite(Color.Red, "ArgumentOutOfRangeException - Restarting"); Execute(); }
-            catch (ArgumentNullException) { ColoredConsoleWrite(Color.Red, "Argument Null Refference - Restarting"); Execute(); }
-            catch (NullReferenceException) { ColoredConsoleWrite(Color.Red, "Null Refference - Restarting"); Execute(); }
-            catch (Exception ex) { ColoredConsoleWrite(Color.Red, ex.ToString()); Execute(); }
+            catch (TaskCanceledException) { ColoredConsoleWrite(Color.Red, "Task Canceled Exception - Restarting"); if (!Stopping) Execute(); }
+            catch (UriFormatException) { ColoredConsoleWrite(Color.Red, "System URI Format Exception - Restarting"); if (!Stopping) Execute(); }
+            catch (ArgumentOutOfRangeException) { ColoredConsoleWrite(Color.Red, "ArgumentOutOfRangeException - Restarting"); if (!Stopping) Execute(); }
+            catch (ArgumentNullException) { ColoredConsoleWrite(Color.Red, "Argument Null Refference - Restarting"); if (!Stopping) Execute(); }
+            catch (NullReferenceException) { ColoredConsoleWrite(Color.Red, "Null Refference - Restarting"); if (!Stopping) Execute(); }
+            catch (Exception ex) { ColoredConsoleWrite(Color.Red, ex.ToString()); if (!Stopping) Execute(); }
         }

-        private static string CallAPI(string elem, double lat, double lon)
+        private static string CallAPI(string elem, string lat, string lon)
         {
-            using (XmlReader reader = XmlReader.Create(@"http://api.geonames.org/findNearby?lat=" + lat + "&lng=" + lon + "&username=demo"))
+
+            using (XmlReader reader = XmlReader.Create(@"http://api.geonames.org/findNearby?lat=" + lat + "&lng=" + lon + "&username=pokemongobot"))
             {
                 while (reader.Read())
                 {
@@ -308,7 +390,7 @@ namespace PokemonGo.RocketAPI.Window
                                 break;

                             case "place":
-                                if (reader.Name == "toponymName")
+                                if (reader.Name == "name")
                                 {
                                     return reader.ReadString();
                                 }
@@ -322,6 +404,7 @@ namespace PokemonGo.RocketAPI.Window
             }
             return "Error";
         }
+
         private async Task ExecuteCatchAllNearbyPokemons(Client client)
         {
             var mapObjects = await client.GetMapObjects();
@@ -335,16 +418,32 @@ namespace PokemonGo.RocketAPI.Window

             foreach (var pokemon in pokemons)
             {
-                if (ForceUnbanning)
+                if (ForceUnbanning || Stopping)
                     break;

                 FarmingPokemons = true;

                 await locationManager.update(pokemon.Latitude, pokemon.Longitude);
+
+                string pokemonName;
+                if (ClientSettings.Language == "german")
+                {
+                    string name_english = Convert.ToString(pokemon.PokemonId);
+                    var request = (HttpWebRequest)WebRequest.Create("http://boosting-service.de/pokemon/index.php?pokeName=" + name_english);
+                    var response = (HttpWebResponse)request.GetResponse();
+                    pokemonName = new StreamReader(response.GetResponseStream()).ReadToEnd();
+                }
+                else
+                    pokemonName = Convert.ToString(pokemon.PokemonId);
+
+                await client.UpdatePlayerLocation(pokemon.Latitude, pokemon.Longitude);
+                UpdatePlayerLocation(pokemon.Latitude, pokemon.Longitude);
+                UpdateMap();
                 var encounterPokemonResponse = await client.EncounterPokemon(pokemon.EncounterId, pokemon.SpawnpointId);
                 var pokemonCP = encounterPokemonResponse?.WildPokemon?.PokemonData?.Cp;
                 var pokemonIV = Math.Round(Perfect(encounterPokemonResponse?.WildPokemon?.PokemonData));
                 CatchPokemonResponse caughtPokemonResponse;
+                ColoredConsoleWrite(Color.Green, $"Encounter a {pokemonName} with {pokemonCP} CP and {pokemonIV}% IV");
                 do
                 {
                     if (ClientSettings.RazzBerryMode == "cp")
@@ -356,20 +455,14 @@ namespace PokemonGo.RocketAPI.Window
                     caughtPokemonResponse = await client.CatchPokemon(pokemon.EncounterId, pokemon.SpawnpointId, pokemon.Latitude, pokemon.Longitude, MiscEnums.Item.ITEM_POKE_BALL, pokemonCP); ; //note: reverted from settings because this should not be part of settings but part of logic
                 } while (caughtPokemonResponse.Status == CatchPokemonResponse.Types.CatchStatus.CatchMissed || caughtPokemonResponse.Status == CatchPokemonResponse.Types.CatchStatus.CatchEscape);

-                string pokemonName;
-                if (ClientSettings.Language == "german")
-                {
-                    string name_english = Convert.ToString(pokemon.PokemonId);
-                    var request = (HttpWebRequest)WebRequest.Create("http://boosting-service.de/pokemon/index.php?pokeName=" + name_english);
-                    var response = (HttpWebResponse)request.GetResponse();
-                    pokemonName = new StreamReader(response.GetResponseStream()).ReadToEnd();
-                }
-                else
-                    pokemonName = Convert.ToString(pokemon.PokemonId);
-
                 if (caughtPokemonResponse.Status == CatchPokemonResponse.Types.CatchStatus.CatchSuccess)
                 {
-                    ColoredConsoleWrite(Color.Green, $"We caught a {pokemonName} with {pokemonCP} CP and {pokemonIV}% IV");
+                    Color c = Color.LimeGreen;
+                    if (pokemonIV >= 80)
+                    {
+                        c = Color.Yellow;
+                    }
+                    ColoredConsoleWrite(c, $"We caught a {pokemonName} with {pokemonCP} CP and {pokemonIV}% IV");
                     foreach (int xp in caughtPokemonResponse.Scores.Xp)
                         TotalExperience += xp;
                     TotalPokemon += 1;
@@ -407,31 +500,95 @@ namespace PokemonGo.RocketAPI.Window
                 FarmingPokemons = false;
                 await Task.Delay(3000);
             }
+            pokemons = null;
+        }
+
+        private void UpdatePlayerLocation(double latitude, double longitude)
+        {
+            synchronizationContext.Post(new SendOrPostCallback(o =>
+            {
+                playerMarker.Position = (PointLatLng)o;
+
+                searchAreaOverlay.Polygons.Clear();
+
+            }), new PointLatLng(latitude, longitude));
+
+            ColoredConsoleWrite(Color.Gray, $"Moving player location to Lat: {latitude}, Lng: {longitude}");
+        }
+
+        private void UpdateMap()
+        {
+            synchronizationContext.Post(new SendOrPostCallback(o =>
+            {
+                pokestopsOverlay.Markers.Clear();
+                List<PointLatLng> routePoint = new List<PointLatLng>();
+                foreach (var pokeStop in pokeStops)
+                {
+                    GMarkerGoogleType type = GMarkerGoogleType.blue_small;
+                    if (pokeStop.CooldownCompleteTimestampMs > DateTime.UtcNow.ToUnixTime())
+                    {
+                        type = GMarkerGoogleType.gray_small;
+                    }
+                    var pokeStopLoc = new PointLatLng(pokeStop.Latitude, pokeStop.Longitude);
+                    var pokestopMarker = new GMarkerGoogle(pokeStopLoc, type);
+                    //pokestopMarker.ToolTipMode = MarkerTooltipMode.OnMouseOver;
+                    //pokestopMarker.ToolTip = new GMapBaloonToolTip(pokestopMarker);
+                    pokestopsOverlay.Markers.Add(pokestopMarker);
+
+                    routePoint.Add(pokeStopLoc);
+                }
+                pokestopsOverlay.Routes.Clear();
+                pokestopsOverlay.Routes.Add(new GMapRoute(routePoint, "Walking Path"));
+
+
+                pokemonsOverlay.Markers.Clear();
+                if (wildPokemons != null)
+                {
+                    foreach (var pokemon in wildPokemons)
+                    {
+                        var pokemonMarker = new GMarkerGoogle(new PointLatLng(pokemon.Latitude, pokemon.Longitude),
+                            GMarkerGoogleType.red_small);
+                        pokemonsOverlay.Markers.Add(pokemonMarker);
+                    }
+                }
+
+                searchAreaOverlay.Polygons.Clear();
+                S2GMapDrawer.DrawS2Cells(S2Helper.GetNearbyCellIds(ClientSettings.DefaultLongitude, ClientSettings.DefaultLatitude), searchAreaOverlay);
+            }), null);
         }

-        private async Task ExecuteFarmingPokestopsAndPokemons(Client client, IEnumerable<FortData> pokeStops = null)
+        private async Task ExecuteFarmingPokestopsAndPokemons(Client client)
         {
             var mapObjects = await client.GetMapObjects();
-            if (pokeStops == null)
+
+            FortData[] rawPokeStops = mapObjects.MapCells.SelectMany(i => i.Forts).Where(i => i.Type == FortType.Checkpoint && i.CooldownCompleteTimestampMs < DateTime.UtcNow.ToUnixTime()).ToArray();
+            if (rawPokeStops == null || rawPokeStops.Count() <= 0)
             {
-                pokeStops = mapObjects.MapCells.SelectMany(i => i.Forts).Where(i => i.Type == FortType.Checkpoint && i.CooldownCompleteTimestampMs < DateTime.UtcNow.ToUnixTime());
+                ColoredConsoleWrite(Color.Red, $"No PokeStops to visit here, please stop the bot and change your location.");
+                return;
             }
-            HashSet<FortData> pokeStopSet = new HashSet<FortData>(pokeStops);
-            IEnumerable<FortData> nextPokeStopList = null;
-            if (!ForceUnbanning)
+            pokeStops = rawPokeStops;
+            UpdateMap();
+            ColoredConsoleWrite(Color.Cyan, $"Finding fastest route through all PokeStops..");
+            LatLong startingLatLong = new LatLong(ClientSettings.DefaultLatitude, ClientSettings.DefaultLongitude);
+            pokeStops = RouteOptimizer.Optimize(rawPokeStops, startingLatLong, pokestopsOverlay);
+            wildPokemons = mapObjects.MapCells.SelectMany(i => i.WildPokemons);
+            if (!ForceUnbanning && !Stopping)
                 ColoredConsoleWrite(Color.Cyan, $"Visiting {pokeStops.Count()} PokeStops");
+
+            UpdateMap();
             foreach (var pokeStop in pokeStops)
             {
-                if (ForceUnbanning)
+                if (ForceUnbanning || Stopping)
                     break;

                 FarmingStops = true;
-
-                double pokeStopDistance = locationManager.getDistance(pokeStop.Latitude, pokeStop.Longitude);
                 await locationManager.update(pokeStop.Latitude, pokeStop.Longitude);
+                UpdatePlayerLocation(pokeStop.Latitude, pokeStop.Longitude);
+                UpdateMap();
+
                 var fortInfo = await client.GetFort(pokeStop.Id, pokeStop.Latitude, pokeStop.Longitude);
                 var fortSearch = await client.SearchFort(pokeStop.Id, pokeStop.Latitude, pokeStop.Longitude);
-
                 StringWriter PokeStopOutput = new StringWriter();
                 PokeStopOutput.Write($"");
                 if (fortInfo.Name != string.Empty)
@@ -449,37 +606,22 @@ namespace PokemonGo.RocketAPI.Window
                 if (fortSearch.ExperienceAwarded != 0)
                     TotalExperience += (fortSearch.ExperienceAwarded);

-                var pokeStopMapObjects = await client.GetMapObjects();
-
-                /* Gets all pokeStops near this pokeStop which are not in the set of pokeStops being currently
-                 * traversed and which are ready to be farmed again.  */
-                var pokeStopsNearPokeStop = pokeStopMapObjects.MapCells.SelectMany(i => i.Forts).Where(i =>
-                    i.Type == FortType.Checkpoint
-                    && i.CooldownCompleteTimestampMs < DateTime.UtcNow.ToUnixTime()
-                    && !pokeStopSet.Contains(i)
-                    );
-
-                /* We choose the longest list of farmable PokeStops to traverse next, though we could use a different
-                 * criterion, such as the number of PokeStops with lures in the list.*/
-                if (pokeStopsNearPokeStop.Count() > (nextPokeStopList == null ? 0 : nextPokeStopList.Count()))
-                {
-                    nextPokeStopList = pokeStopsNearPokeStop;
-                }
+                pokeStop.CooldownCompleteTimestampMs = DateTime.UtcNow.ToUnixTime() + 300000;

                 if (ClientSettings.CatchPokemon)
                     await ExecuteCatchAllNearbyPokemons(client);
             }
             FarmingStops = false;
-            if (nextPokeStopList != null)
+            if (!ForceUnbanning && !Stopping)
             {
                 client.RecycleItems(client);
-                await ExecuteFarmingPokestopsAndPokemons(client, nextPokeStopList);
+                await ExecuteFarmingPokestopsAndPokemons(client);
             }
         }

         private async Task ForceUnban(Client client)
         {
-            if (!ForceUnbanning)
+            if (!ForceUnbanning && !Stopping)
             {
                 ColoredConsoleWrite(Color.LightGreen, "Waiting for last farming action to be complete...");
                 ForceUnbanning = true;
@@ -488,51 +630,50 @@ namespace PokemonGo.RocketAPI.Window
                 {
                     await Task.Delay(25);
                 }
-
-                ColoredConsoleWrite(Color.LightGreen, "Starting force unban...");

-                var mapObjects = await client.GetMapObjects();
-                var pokeStops = mapObjects.MapCells.SelectMany(i => i.Forts).Where(i => i.Type == FortType.Checkpoint && i.CooldownCompleteTimestampMs < DateTime.UtcNow.ToUnixTime());
+                ColoredConsoleWrite(Color.LightGreen, "Starting force unban...");

-                await Task.Delay(10000);
+                pokestopsOverlay.Routes.Clear();
+                pokestopsOverlay.Markers.Clear();
                 bool done = false;
-
                 foreach (var pokeStop in pokeStops)
                 {
-
-                    double pokeStopDistance = locationManager.getDistance(pokeStop.Latitude, pokeStop.Longitude);
-                    await locationManager.update(pokeStop.Latitude, pokeStop.Longitude);
-                    var fortInfo = await client.GetFort(pokeStop.Id, pokeStop.Latitude, pokeStop.Longitude);
-
-                    if (fortInfo.Name != string.Empty)
+                    if (pokeStop.CooldownCompleteTimestampMs < DateTime.UtcNow.ToUnixTime())
                     {
-                        ColoredConsoleWrite(Color.LightGreen, "Chosen PokeStop " + fortInfo.Name + " for force unban");
-                        for (int i = 1; i <= 50; i++)
+                        await locationManager.update(pokeStop.Latitude, pokeStop.Longitude);
+                        UpdatePlayerLocation(pokeStop.Latitude, pokeStop.Longitude);
+                        UpdateMap();
+
+                        var fortInfo = await client.GetFort(pokeStop.Id, pokeStop.Latitude, pokeStop.Longitude);
+                        if (fortInfo.Name != string.Empty)
                         {
-                            var fortSearch = await client.SearchFort(pokeStop.Id, pokeStop.Latitude, pokeStop.Longitude);
-                            if (fortSearch.ExperienceAwarded == 0)
+                            ColoredConsoleWrite(Color.LightGreen, "Chosen PokeStop " + fortInfo.Name + " for force unban");
+                            for (int i = 1; i <= 50; i++)
                             {
-                                ColoredConsoleWrite(Color.LightGreen, "Attempt: " + i);
+                                var fortSearch = await client.SearchFort(pokeStop.Id, pokeStop.Latitude, pokeStop.Longitude);
+                                if (fortSearch.ExperienceAwarded == 0)
+                                {
+                                    ColoredConsoleWrite(Color.LightGreen, "Attempt: " + i);
+                                }
+                                else
+                                {
+                                    ColoredConsoleWrite(Color.LightGreen, "Fuck yes, you are now unbanned! Total attempts: " + i);
+                                    done = true;
+                                    break;
+                                }
                             }
-                            else
-                            {
-                                ColoredConsoleWrite(Color.LightGreen, "Fuck yes, you are now unbanned! Total attempts: " + i);
-                                done = true;
+                            if (done)
                                 break;
-                            }
                         }
                     }
-
-                    if (!done)
-                        ColoredConsoleWrite(Color.LightGreen, "Force unban failed, please try again.");
-
-                    ForceUnbanning = false;
-                    break;
                 }
+                if (!done)
+                    ColoredConsoleWrite(Color.LightGreen, "Force unban failed, please try again.");
+                ForceUnbanning = false;
             }
             else
             {
-                ColoredConsoleWrite(Color.Red, "A force unban attempt is in action... Please wait.");
+                ColoredConsoleWrite(Color.Red, "A action is in play... Please wait.");
             }


@@ -554,38 +695,11 @@ namespace PokemonGo.RocketAPI.Window

         private async Task TransferAllButStrongestUnwantedPokemon(Client client)
         {
-            //ColoredConsoleWrite(ConsoleColor.White, $"Firing up the meat grinder");
-
-            var unwantedPokemonTypes = new[]
+            var unwantedPokemonTypes = new List<PokemonId>();
+            for (int i = 1; i <= 151; i++)
             {
-                PokemonId.Pidgey,
-                PokemonId.Rattata,
-                PokemonId.Weedle,
-                PokemonId.Zubat,
-                PokemonId.Caterpie,
-                PokemonId.Pidgeotto,
-                PokemonId.NidoranFemale,
-                PokemonId.Paras,
-                PokemonId.Venonat,
-                PokemonId.Psyduck,
-                PokemonId.Poliwag,
-                PokemonId.Slowpoke,
-                PokemonId.Drowzee,
-                PokemonId.Gastly,
-                PokemonId.Goldeen,
-                PokemonId.Staryu,
-                PokemonId.Magikarp,
-                PokemonId.Clefairy,
-                PokemonId.Eevee,
-                PokemonId.Tentacool,
-                PokemonId.Dratini,
-                PokemonId.Ekans,
-                PokemonId.Jynx,
-                PokemonId.Lickitung,
-                PokemonId.Spearow,
-                PokemonId.NidoranFemale,
-                PokemonId.NidoranMale
-            };
+                unwantedPokemonTypes.Add((PokemonId)i);
+            }

             var inventory = await client.GetInventory();
             var pokemons = inventory.InventoryDelta.InventoryItems
@@ -603,11 +717,8 @@ namespace PokemonGo.RocketAPI.Window
                     pokemonOfDesiredType.Skip(1) // keep the strongest one for potential battle-evolving
                         .ToList();

-                //ColoredConsoleWrite(ConsoleColor.White, $"Grinding {unwantedPokemon.Count} pokemons of type {unwantedPokemonType}");
                 await TransferAllGivenPokemons(client, unwantedPokemon);
             }
-
-            //ColoredConsoleWrite(ConsoleColor.White, $"Finished grinding all the meat");
         }

         public static float Perfect(PokemonData poke)
@@ -793,6 +904,8 @@ namespace PokemonGo.RocketAPI.Window
             ColoredConsoleWrite(Color.Gray, $"Finished grinding all the meat");
         }

+
+
         public async Task PrintLevel(Client client)
         {
             var inventory = await client.GetInventory();
@@ -823,19 +936,41 @@ namespace PokemonGo.RocketAPI.Window
             return (DateTime.Now - InitSessionDateTime).ToString(@"dd\.hh\:mm\:ss");
         }

-        public async Task ConsoleLevelTitle(string Username, Client client)
+        public async Task updateUserStatusBar(Client client)
         {
             var inventory = await client.GetInventory();
             var stats = inventory.InventoryDelta.InventoryItems.Select(i => i.InventoryItemData?.PlayerStats).ToArray();
             var profile = await client.GetProfile();
+            Int16 hoursLeft = 0; Int16 minutesLeft = 0; Int32 secondsLeft = 0; double xpSec = 0;
             foreach (var v in stats)
                 if (v != null)
                 {
                     int XpDiff = GetXpDiff(client, v.Level);
-                    SetStatusText(string.Format(Username + " | Level: {0:0} - ({2:0} / {3:0}) | Runtime {1} | Stardust: {4:0}", v.Level, _getSessionRuntimeInTimeFormat(), (v.Experience - v.PrevLevelXp - XpDiff), (v.NextLevelXp - v.PrevLevelXp - XpDiff), profile.Profile.Currency.ToArray()[1].Amount) + " | XP/Hour: " + Math.Round(TotalExperience / GetRuntime()) + " | Pokemon/Hour: " + Math.Round(TotalPokemon / GetRuntime()));
+                    //Calculating the exp needed to level up
+                    Single expNextLvl = (v.NextLevelXp - v.Experience);
+                    //Calculating the exp made per second
+                    xpSec = (Math.Round(TotalExperience / GetRuntime()) / 60) / 60;
+                    //Calculating the seconds left to level up
+                    if (xpSec != 0)
+                        secondsLeft = Convert.ToInt32((expNextLvl / xpSec));
+                    //formatting data to make an output like DateFormat
+                    while (secondsLeft > 60)
+                    {
+                        secondsLeft -= 60;
+                        if (minutesLeft < 60)
+                        {
+                            minutesLeft++;
+                        }
+                        else
+                        {
+                            minutesLeft = 0;
+                            hoursLeft++;
+                        }
+                    }
+                    SetStatusText(string.Format(profile.Profile.Username + " | Level: {0:0} - ({2:0} / {3:0}) | Runtime {1} | Stardust: {4:0}", v.Level, _getSessionRuntimeInTimeFormat(), (v.Experience - v.PrevLevelXp - XpDiff), (v.NextLevelXp - v.PrevLevelXp - XpDiff), profile.Profile.Currency.ToArray()[1].Amount) + " | XP/Hour: " + Math.Round(TotalExperience / GetRuntime()) + " | Pokemon/Hour: " + Math.Round(TotalPokemon / GetRuntime()) + " | NextLevel in: " + hoursLeft + ":" + minutesLeft + ":" + secondsLeft);
                 }
             await Task.Delay(1000);
-            ConsoleLevelTitle(Username, client);
+            updateUserStatusBar(client);
         }

         public static int GetXpDiff(Client client, int Level)
@@ -926,6 +1061,15 @@ namespace PokemonGo.RocketAPI.Window
             return 0;
         }

+        public void confirmBotStopped()
+        {
+            //ConsoleClear(); // dont really want the console to be wipped on bot stop, unnecessary
+            ColoredConsoleWrite(Color.Red, $"Bot successfully stopped.");
+            startStopBotToolStripMenuItem.Text = "▶ Start Bot";
+            Stopping = false;
+            bot_started = false;
+        }
+
         private void logTextBox_TextChanged(object sender, EventArgs e)
         {
             logTextBox.SelectionStart = logTextBox.Text.Length;
@@ -935,29 +1079,61 @@ namespace PokemonGo.RocketAPI.Window
         private void settingsToolStripMenuItem_Click(object sender, EventArgs e)
         {
             SettingsForm settingsForm = new SettingsForm();
-            settingsForm.Show();
+            settingsForm.ShowDialog();
         }

-        private void startBotToolStripMenuItem_Click(object sender, EventArgs e)
+        private static bool bot_started = false;
+        private void startStopBotToolStripMenuItem_Click(object sender, EventArgs e)
         {
-            startBotToolStripMenuItem.Enabled = false;
-            Task.Run(() =>
+            if (!bot_started)
             {
-                try
+                bot_started = true;
+                startStopBotToolStripMenuItem.Text = "■ Stop Bot";
+                Task.Run(() =>
                 {
-                    //ColoredConsoleWrite(ConsoleColor.White, "Coded by Ferox - edited by NecronomiconCoding");
-                    CheckVersion();
-                    Execute();
-                }
-                catch (PtcOfflineException)
+                    try
+                    {
+                        //ColoredConsoleWrite(ConsoleColor.White, "Coded by Ferox - edited by NecronomiconCoding");
+                        CheckVersion();
+                        Execute();
+                    }
+                    catch (PtcOfflineException)
+                    {
+                        ColoredConsoleWrite(Color.Red, "PTC Servers are probably down OR your credentials are wrong. Try google");
+                    }
+                    catch (Exception ex)
+                    {
+                        ColoredConsoleWrite(Color.Red, $"Unhandled exception: {ex}");
+                    }
+                });
+            }
+            else
+            {
+                if (!ForceUnbanning)
                 {
-                    ColoredConsoleWrite(Color.Red, "PTC Servers are probably down OR your credentials are wrong. Try google");
+                    Stopping = true;
+                    ColoredConsoleWrite(Color.Red, $"Stopping the bot.. Waiting for the last action to be complete.");
                 }
-                catch (Exception ex)
+                else
                 {
-                    ColoredConsoleWrite(Color.Red, $"Unhandled exception: {ex}");
+                    ColoredConsoleWrite(Color.Red, $"An action is in play, please wait until it's done.");
                 }
-            });
+            }
+        }
+
+        private void Client_OnConsoleWrite(ConsoleColor color, string message)
+        {
+            Color c = Color.White;
+            switch (color)
+            {
+                case ConsoleColor.Green:
+                    c = Color.Green;
+                    break;
+                case ConsoleColor.DarkCyan:
+                    c = Color.DarkCyan;
+                    break;
+            }
+            ColoredConsoleWrite(c, message);
         }

         private void showAllToolStripMenuItem3_Click(object sender, EventArgs e)
@@ -1007,7 +1183,7 @@ namespace PokemonGo.RocketAPI.Window

         private async void forceUnbanToolStripMenuItem_Click(object sender, EventArgs e)
         {
-            if (client != null)
+            if (client != null && pokeStops != null)
             {
                 if (ForceUnbanning)
                 {
@@ -1020,7 +1196,7 @@ namespace PokemonGo.RocketAPI.Window
             }
             else
             {
-                ColoredConsoleWrite(Color.Red, "Please start the bot before trying to force unban");
+                ColoredConsoleWrite(Color.Red, "Please start the bot and wait for map to load before trying to force unban");
             }
         }

@@ -1032,15 +1208,162 @@ namespace PokemonGo.RocketAPI.Window
         private void todoToolStripMenuItem_Click(object sender, EventArgs e)
         {
             SettingsForm settingsForm = new SettingsForm();
-            settingsForm.Show();
-
+            settingsForm.ShowDialog();
         }

         private void pokemonToolStripMenuItem2_Click(object sender, EventArgs e)
         {
             var pForm = new PokeUi();
             pForm.Show();
+        }
+
+
+
+        #region POKEMON LIST
+        private IEnumerable<PokemonFamily> families;
+
+        private void InitializePokemonForm()
+        {
+            objectListView1.ButtonClick += PokemonListButton_Click;
+
+            pkmnName.ImageGetter = delegate (object rowObject)
+            {
+                PokemonData pokemon = (PokemonData)rowObject;
+
+                String key = pokemon.PokemonId.ToString();
+                if (!objectListView1.SmallImageList.Images.ContainsKey(key))
+                {
+                    Image img = GetPokemonImage((int)pokemon.PokemonId);
+                    objectListView1.SmallImageList.Images.Add(key, img);
+                }
+                return key;
+            };
+
+            objectListView1.CellToolTipShowing += delegate (object sender, ToolTipShowingEventArgs args)
+            {
+                PokemonData pokemon = (PokemonData)args.Model;
+
+                var family = families
+                        .Where(i => (int)i.FamilyId <= (int)pokemon.PokemonId)
+                        .First();
+                args.Text = $"You have {family.Candy} {((PokemonId)((int)family.FamilyId)).ToString()} Candy";
+            };
+        }

+        private Image GetPokemonImage(int pokemonId)
+        {
+            return (Image)Properties.Resources.ResourceManager.GetObject("Pokemon_" + pokemonId);
+        }
+
+        private async void ReloadPokemonList()
+        {
+            button1.Enabled = false;
+            objectListView1.Enabled = false;
+
+            client2 = new Client(ClientSettings);
+            try
+            {
+                await client2.Login();
+                await client2.SetServer();
+                var inventory = await client2.GetInventory();
+                var pokemons = inventory.InventoryDelta.InventoryItems.Select(i => i.InventoryItemData?.Pokemon).Where(p => p != null && p?.PokemonId > 0).OrderByDescending(key => key.Cp);
+                families = inventory.InventoryDelta.InventoryItems
+                   .Select(i => i.InventoryItemData?.PokemonFamily)
+                   .Where(p => p != null && (int)p?.FamilyId > 0)
+                   .OrderByDescending(p => (int)p.FamilyId);
+
+                var prevTopItem = objectListView1.TopItemIndex;
+                objectListView1.SetObjects(pokemons);
+                objectListView1.TopItemIndex = prevTopItem;
+            }
+            catch (Exception ex) { ColoredConsoleWrite(Color.Red, ex.ToString()); client2 = null; }
+
+            button1.Enabled = true;
+            objectListView1.Enabled = true;
+        }
+
+        private void PokemonListButton_Click(object sender, CellClickEventArgs e)
+        {
+            try
+            {
+                PokemonData pokemon = (PokemonData)e.Model;
+                if (e.ColumnIndex == 6)
+                {
+                    TransferPokemon(pokemon);
+                }
+                else if (e.ColumnIndex == 7)
+                {
+                    PowerUpPokemon(pokemon);
+                }
+                else if (e.ColumnIndex == 8)
+                {
+                    EvolvePokemon(pokemon);
+                }
+            }
+            catch (Exception ex) { ColoredConsoleWrite(Color.Red, ex.ToString()); client2 = null; ReloadPokemonList(); }
+        }
+
+        private async void TransferPokemon(PokemonData pokemon)
+        {
+            if (MessageBox.Show($"Are you sure you want to transfer {pokemon.PokemonId.ToString()} with {pokemon.Cp} CP?", "Confirmation", MessageBoxButtons.YesNo) == DialogResult.Yes)
+            {
+                var transferPokemonResponse = await client2.TransferPokemon(pokemon.Id);
+
+                if (transferPokemonResponse.Status == 1)
+                {
+                    ColoredConsoleWrite(Color.Magenta, $"{pokemon.PokemonId} was transferred. {transferPokemonResponse.CandyAwarded} candy awarded");
+                    ReloadPokemonList();
+                }
+                else
+                {
+                    ColoredConsoleWrite(Color.Magenta, $"{pokemon.PokemonId} could not be transferred");
+                }
+            }
+        }
+
+        private async void PowerUpPokemon(PokemonData pokemon)
+        {
+            var evolvePokemonResponse = await client2.PowerUp(pokemon.Id);
+
+            if (evolvePokemonResponse.Result == 1)
+            {
+                ColoredConsoleWrite(Color.Magenta, $"{pokemon.PokemonId} successfully upgraded.");
+                ReloadPokemonList();
+            }
+            else
+            {
+                ColoredConsoleWrite(Color.Magenta, $"{pokemon.PokemonId} could not be upgraded");
+            }
+        }
+
+        private async void EvolvePokemon(PokemonData pokemon)
+        {
+            var evolvePokemonResponse = await client2.EvolvePokemon(pokemon.Id);
+
+            if (evolvePokemonResponse.Result == 1)
+            {
+                ColoredConsoleWrite(Color.Magenta, $"{pokemon.PokemonId} successfully evolved into {evolvePokemonResponse.EvolvedPokemon.PokemonType}\n{evolvePokemonResponse.ExpAwarded} experience awarded\n{evolvePokemonResponse.CandyAwarded} candy awarded");
+                ReloadPokemonList();
+            }
+            else
+            {
+                ColoredConsoleWrite(Color.Magenta, $"{pokemon.PokemonId} could not be evolved");
+            }
+        }
+
+        private void button1_Click(object sender, EventArgs e)
+        {
+            ReloadPokemonList();
+        }
+        #endregion
+
+        private void pokeToolStripMenuItem_Click(object sender, EventArgs e)
+        {
+
+        }
+
+        private void objectListView1_SelectedIndexChanged(object sender, EventArgs e)
+        {

         }
     }
diff --git a/PokemonGo/RocketAPI/Window/MainForm.resx b/PokemonGo/RocketAPI/Window/MainForm.resx
index 0772257..1821e28 100644
--- a/PokemonGo/RocketAPI/Window/MainForm.resx
+++ b/PokemonGo/RocketAPI/Window/MainForm.resx
@@ -123,6 +123,12 @@
   <metadata name="menuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
     <value>132, 18</value>
   </metadata>
+  <metadata name="largePokemonImageList.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>357, 18</value>
+  </metadata>
+  <metadata name="smallPokemonImageList.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>247, 18</value>
+  </metadata>
   <metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     <value>58</value>
   </metadata>
diff --git a/PokemonGo/RocketAPI/Window/MapForm.Designer.cs b/PokemonGo/RocketAPI/Window/MapForm.Designer.cs
new file mode 100644
index 0000000..b018491
--- /dev/null
+++ b/PokemonGo/RocketAPI/Window/MapForm.Designer.cs
@@ -0,0 +1,106 @@
+namespace PokemonGo.RocketAPI.Window
+{
+    partial class MapForm
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Windows Form Designer generated code
+
+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.components = new System.ComponentModel.Container();
+            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MapForm));
+            this.gMapControl1 = new GMap.NET.WindowsForms.GMapControl();
+            this.trackBar = new System.Windows.Forms.TrackBar();
+            this.tmrUpdate = new System.Windows.Forms.Timer(this.components);
+            ((System.ComponentModel.ISupportInitialize)(this.trackBar)).BeginInit();
+            this.SuspendLayout();
+            //
+            // gMapControl1
+            //
+            this.gMapControl1.BackColor = System.Drawing.SystemColors.Info;
+            this.gMapControl1.Bearing = 0F;
+            this.gMapControl1.CanDragMap = false;
+            this.gMapControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.gMapControl1.EmptyTileColor = System.Drawing.Color.Navy;
+            this.gMapControl1.GrayScaleMode = false;
+            this.gMapControl1.HelperLineOption = GMap.NET.WindowsForms.HelperLineOptions.DontShow;
+            this.gMapControl1.LevelsKeepInMemmory = 5;
+            this.gMapControl1.Location = new System.Drawing.Point(0, 0);
+            this.gMapControl1.MarkersEnabled = true;
+            this.gMapControl1.MaxZoom = 2;
+            this.gMapControl1.MinZoom = 2;
+            this.gMapControl1.MouseWheelZoomType = GMap.NET.MouseWheelZoomType.ViewCenter;
+            this.gMapControl1.Name = "gMapControl1";
+            this.gMapControl1.NegativeMode = false;
+            this.gMapControl1.PolygonsEnabled = true;
+            this.gMapControl1.RetryLoadTile = 0;
+            this.gMapControl1.RoutesEnabled = true;
+            this.gMapControl1.ScaleMode = GMap.NET.WindowsForms.ScaleModes.Integer;
+            this.gMapControl1.SelectedAreaFillColor = System.Drawing.Color.FromArgb(((int)(((byte)(33)))), ((int)(((byte)(65)))), ((int)(((byte)(105)))), ((int)(((byte)(225)))));
+            this.gMapControl1.ShowTileGridLines = false;
+            this.gMapControl1.Size = new System.Drawing.Size(472, 389);
+            this.gMapControl1.TabIndex = 23;
+            this.gMapControl1.Zoom = 0D;
+            //
+            // trackBar
+            //
+            this.trackBar.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+            this.trackBar.BackColor = System.Drawing.SystemColors.Info;
+            this.trackBar.Location = new System.Drawing.Point(415, 12);
+            this.trackBar.Name = "trackBar";
+            this.trackBar.Orientation = System.Windows.Forms.Orientation.Vertical;
+            this.trackBar.Size = new System.Drawing.Size(45, 104);
+            this.trackBar.TabIndex = 26;
+            this.trackBar.TickStyle = System.Windows.Forms.TickStyle.TopLeft;
+            this.trackBar.Scroll += new System.EventHandler(this.trackBar_Scroll);
+            //
+            // tmrUpdate
+            //
+            this.tmrUpdate.Enabled = true;
+            this.tmrUpdate.Interval = 500;
+            this.tmrUpdate.Tick += new System.EventHandler(this.tmrUpdate_Tick);
+            //
+            // MapForm
+            //
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(472, 389);
+            this.Controls.Add(this.trackBar);
+            this.Controls.Add(this.gMapControl1);
+            this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+            this.Name = "MapForm";
+            this.Text = "Map";
+            ((System.ComponentModel.ISupportInitialize)(this.trackBar)).EndInit();
+            this.ResumeLayout(false);
+            this.PerformLayout();
+
+        }
+
+        #endregion
+
+        private GMap.NET.WindowsForms.GMapControl gMapControl1;
+        private System.Windows.Forms.TrackBar trackBar;
+        private System.Windows.Forms.Timer tmrUpdate;
+    }
+}
\ No newline at end of file
diff --git a/PokemonGo/RocketAPI/Window/MapForm.cs b/PokemonGo/RocketAPI/Window/MapForm.cs
new file mode 100644
index 0000000..cc49274
--- /dev/null
+++ b/PokemonGo/RocketAPI/Window/MapForm.cs
@@ -0,0 +1,56 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+using GMap.NET;
+using GMap.NET.MapProviders;
+
+namespace PokemonGo.RocketAPI.Window
+{
+    public partial class MapForm : Form
+    {
+        private PokemonGo.RocketAPI.Client Client;
+
+        public MapForm(ref PokemonGo.RocketAPI.Client client)
+        {
+            InitializeComponent();
+
+            // Set the client
+            Client = client;
+
+            // Initialize map:
+            // Use google provider
+            gMapControl1.MapProvider = GoogleMapProvider.Instance;
+
+            // Get tiles from server only
+            gMapControl1.Manager.Mode = AccessMode.ServerOnly;
+
+            // Do not use proxy
+            GMapProvider.WebProxy = null;
+
+            // Zoom min/max
+            gMapControl1.CenterPen = new Pen(Color.Red, 2);
+            gMapControl1.MinZoom = trackBar.Maximum = 1;
+            gMapControl1.MaxZoom = trackBar.Maximum = 20;
+
+            // Set zoom
+            trackBar.Value = 17;
+            gMapControl1.Zoom = trackBar.Value;
+        }
+
+        private void trackBar_Scroll(object sender, EventArgs e)
+        {
+            gMapControl1.Zoom = trackBar.Value;
+        }
+
+        private void tmrUpdate_Tick(object sender, EventArgs e)
+        {
+            gMapControl1.Position = new PointLatLng(Client.CurrentLatitude, Client.CurrentLongitude);
+        }
+    }
+}
diff --git a/PokemonGo/RocketAPI/Window/MapForm.resx b/PokemonGo/RocketAPI/Window/MapForm.resx
new file mode 100644
index 0000000..118fdbe
--- /dev/null
+++ b/PokemonGo/RocketAPI/Window/MapForm.resx
@@ -0,0 +1,1548 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!--
+    Microsoft ResX Schema
+
+    Version 2.0
+
+    The primary goals of this format is to allow a simple XML format
+    that is mostly human readable. The generation and parsing of the
+    various data types are done through the TypeConverter classes
+    associated with the data types.
+
+    Example:
+
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+
+    There are any number of "resheader" rows that contain simple
+    name/value pairs.
+
+    Each data row contains a name, and value. The row also contains a
+    type or mimetype. Type corresponds to a .NET class that support
+    text/value conversion through the TypeConverter architecture.
+    Classes that don't support this are serialized and stored with the
+    mimetype set.
+
+    The mimetype is used for serialized objects, and tells the
+    ResXResourceReader how to depersist the object. This is currently not
+    extensible. For a given mimetype the value must be set accordingly:
+
+    Note - application/x-microsoft.net.object.binary.base64 is the format
+    that the ResXResourceWriter will generate, however the reader can
+    read any of the formats listed below.
+
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <metadata name="tmrUpdate.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>17, 17</value>
+  </metadata>
+  <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+  <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        AAABAAUAEBAAAAEAIABoBAAAVgAAABgYAAABACAAiAkAAL4EAAAgIAAAAQAgAKgQAABGDgAAMDAAAAEA
+        IACoJQAA7h4AAICAAAABACAAKAgBAJZEAAAoAAAAEAAAACAAAAABACAAAAAAAAAEAAAAAAAAAAAAAAAA
+        AAAAAAAABAQEAAAAAAE8PDwcU1NTM1NTUzRTU1M0U1NTNFNTUzRTU1M0U1NTNFNTUzRTU1M0U1NTMzw8
+        PBwAAAACBAQEAAAAAAGLi4tQurq6yMXFxeTFxcXkxcXF5MXFxeTFxcXkxcXF5MXFxeTFxcXkxcXF5MXF
+        xeS6urrIjIyMUQAAAAF+fn4kycnJ0dzd3P/e3t7/3t7e/9/f3//f39//4ODg/+Dg4P/f4N//39/f/97e
+        3v/e3t7/3N3c/8nJydKAgIAlsbGxRtna2fHf4N//4OHg/+Hh4f/i4uL/4+Pj/+Pk4//j5OP/4+Pj/+Li
+        4v/h4uH/4OHg/9/g3//Z2tnysbGxR7a2tknc3dzz4uPi/+Pk4//l5eX/5ubm/+nq6f/n5+f/5ufm/+rq
+        6v/m5+b/5eXl/+Tk5P/i4+L/3N3c87a3tku3uLdJ39/f8+Xm5f/n5+f/6Ono/+jo6P+oqKj/WFhY/1JS
+        Uv+YmJj/5OXk/+np6f/n5+f/5ubm/9/g3/O4uLhLt7e3SeDg4PPn5+f/6Ono/+zt7P+lpaX/JCQk/2Vl
+        Zf9vb2//JSUl/4qKiv/r7Ov/6Ono/+fn5//g4ODzuLi4Sz4+PElNTUvzUFBO/1FRT/9TU1H/IyMi/3Fy
+        cv/q6ur/7e7t/5CQkP8dHRz/UFBO/1FRT/9QUE7/TU1L8z8/PksAABVJAAAa8wAAHf8AAB7/AAAf/wAA
+        DP+Kion/+fn5//r6+v+pqan/BgYP/wAAHv8AAB7/AAAd/wAAGvMCAhdLBgZ0SQgIj/MJCZv/Cgqh/woK
+        qP8FBWj/LS0v/6mppv+0tLL/Pz8+/wQEUv8KCqf/Cgqi/wkJnP8JCZDzDQ14SwgIhEkLC6DzDAys/w0N
+        sf8ODrb/Dg6z/wcHZf8KCir/DAwo/wYGVv8NDa3/Dg63/w0Nsv8MDKz/Cwuh9BAQiEsKCo9JDQ2r8w8P
+        tP8PD7j/EBC7/xERv/8REcH/EBC0/xAQsv8REcD/ERHA/xAQu/8PD7j/Dw+0/w4Oq/QSEpJLDg6bSBER
+        tvISEr3/ExO//xQUwv8UFMT/FRXF/xUVx/8VFcj/FRXG/xQUxP8UFML/ExPA/xISvf8REbbzFBSeSh4e
+        qDMYGMHlFRXF/xYWx/8WFsj/FxfK/xcXy/8YGMv/GBjL/xcXy/8XF8r/FhbJ/xYWx/8VFcX/GBjB5h8f
+        qDQ5OZAGKSnIgh4ezfMaGs7+GhrO/hoazv4bG8/+GxvP/hsbz/4bG8/+GhrO/hoazv4aGs7+Hh7N9Ckp
+        yIM5OZEGSUnJAE9Pvgs+PtFPNTXUdTIy03YyMtN1MjLTdTIy03UyMtN1MjLTdTIy03UyMtN2NTXUdT4+
+        0U9PT74LSEjJAIABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAIABAAAoAAAAGAAAADAAAAABACAAAAAAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAQAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAA
+        AAYAAAAGAAAABgAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAACwsLAAPDw8QWlpaUoCAgImEhISVhISElYSE
+        hJWEhISVhISElYSEhJWEhISVhISElYSEhJWEhISVhISElYSEhJWEhISVhISElYGBgYlbW1tTEBAQEC8v
+        LwAAAAAANDQ0ABYWFhGQkJCOx8fH8NXV1f/X19f/19fX/9fX1//X19f/19fX/9jY2P/Y2Nj/2NjY/9jY
+        2P/X19f/19fX/9fX1//X19f/19fX/9bW1v/IyMjwkZGRjxkZGRI2NjYA////AIuLi2HR0dH129vb/9zc
+        3P/c3Nz/3Nzc/93d3f/d3d3/3d3d/97e3v/e3t7/3t7e/97e3v/d3d3/3d3d/93d3f/c3Nz/3Nzc/9zc
+        3P/b29v/0dHR9YyMjGP///8AAAAACL+/v6jc3Nz/3d7d/97f3v/f39//3+Df/+Dg4P/g4eD/4eHh/+Hh
+        4f/h4eH/4eHh/+Hh4f/h4eH/4OHg/+Dg4P/f4N//39/f/97f3v/d3t3/3Nzc/8DAwKkAAAAILy8vDc3N
+        zbve3t7/4ODg/+Dh4P/h4eH/4uLi/+Li4v/j4+P/4+Tj/+Tk5P/k5OT/5OTk/+Tk5P/j5OP/4+Pj/+Lj
+        4v/i4uL/4eHh/+Dh4P/g4OD/3t7e/83Nzb03NzcOMDAwDc7Ozrzg4OD/4eLh/+Lj4v/j4+P/5OTk/+Xl
+        5f/l5uX/5ubm/+fn5//p6en/6enp/+fn5//m5ub/5ebl/+Xl5f/k5OT/4+Tj/+Pj4//i4uL/4ODg/87O
+        zr49PT0PMDAwDc/Pz7vi4uL/4+Tj/+Tl5P/l5eX/5ubm/+fn5//o6Oj/6+vr/+Lj4v/MzMz/yMjI/93e
+        3f/r6+v/6Ono/+fn5//m5+b/5ebl/+Xl5f/k5OT/4uLi/8/Pz748PDwPLy8vDdDR0Lvk5OT/5ubm/+fn
+        5//n6Of/6Ono/+nq6f/r6+v/r6+v/0ZGRv8YGBj/FBQU/zU1Nf+UlJT/5ubm/+rq6v/o6ej/6Ojo/+fn
+        5//m5ub/5OTk/9DR0L48PDwPLi4uDdPT07vo6Oj/6urq/+vr6//r7Ov/7O3s//Dw8P+srKz/FxcX/xAQ
+        EP9MTEz/VVVV/x0dHf8ICAj/hoaG/+3u7f/t7e3/7Ozs/+vr6//q6ur/6Ojo/9PT0747OzsPJiYmDbW1
+        tbvIycj/ysvK/8zMzP/Nzc3/zs/O/8fHx/86Ojr/ExMT/6Ghof/f39//4uLi/7y8vP8uLi7/Ghoa/7O0
+        s//Q0ND/zc3N/8zMzP/Ly8v/ycnJ/7W1tb4zMzMPBAQEDRYWFrsZGRn/Ghoa/xoaGv8bGxr/Gxsb/xgY
+        GP8AAAD/XF1c/+fn5//s7Oz/7e3t/+vr6/+MjIz/AgIC/xQUFP8bGxv/Gxsb/xoaGv8aGhr/GRkZ/xYW
+        Fr4KCgoPAAAADQAAALsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/cHBw/+/v7//19fX/9fb1//Ly
+        8v+hoaH/AwMD/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wEBAb4FBQUPAQEaDQQEXbsFBWj/BgZu/wYG
+        cf8GBnP/BgZ2/wYGcf8AABf/NjY1/9ra2v/3+Pf/+Pj4/+vr6/9eXl3/AAAH/wYGY/8HB3f/BgZ0/wYG
+        cf8GBm7/BQVo/wcHX74QECYPAgInDQgIjrsJCZ7/Cgqn/wsLq/8LC6//Cwuz/wwMuP8HB2T/AgIE/0tL
+        Sv+pqan/srKy/2ZmZv8JCQf/BARC/wsLsv8LC7T/Cwuw/wsLrP8KCqf/CQmf/wsLkL8YGDkPAgIqDQkJ
+        krsLC6L/DAyp/wwMrf8NDbD/DQ2z/w4Ot/8NDbP/Bwdb/wEBC/8FBQP/BwcF/wEBBf8FBUH/DQ2m/w4O
+        uf8NDbT/DQ2x/wwMrv8MDKr/Cgqi/w0NlL8YGDwPAwMsDQoKmrsMDKj/DQ2v/w4Osv8ODrT/Dw+3/w8P
+        uv8PD73/EBC9/w0Nmf8KCm//CQlp/wwMjv8QELj/EBC+/w8Puv8PD7j/Dg61/w4Osv8NDa//DAyo/w4O
+        m78ZGj8PAwMvDQwMorsODq//Dw+1/w8Pt/8QELn/EBC7/xERvv8REcD/ERHB/xISxf8SEsf/EhLH/xIS
+        xf8REcL/ERHA/xERvv8QELz/EBC6/w8PuP8PD7X/DQ2v/xAQo78bG0IPBAQyDQ4OqrsQELf/EhK7/xIS
+        vf8TE7//ExPA/xMTwv8UFMP/FBTE/xQUxf8VFcb/FRXG/xUVxf8UFMX/FBTD/xQUwv8TE8D/ExO//xIS
+        vf8SErv/EBC3/xISrL8cHEYPDAwzCxUVs7cTE73/FBTB/xUVw/8VFcP/FhbF/xYWxv8WFsf/FxfI/xcX
+        yP8XF8n/FxfJ/xcXyf8XF8j/FhbH/xYWxv8WFsX/FRXE/xUVw/8UFMH/ExO9/xYWtLkWFj0MCQkAAiIi
+        uo0WFsT/FRXG/xYWyP8WFsn/FxfK/xcXyv8XF8v/GBjM/xgYzP8YGM3/GBjN/xgYzP8YGMz/GBjL/xcX
+        y/8XF8r/FhbJ/xYWyP8VFcb/FhbE/yIiu48LCwACPDzgADU1tDAmJsvXFxfK/xYWy/8XF8z/FxfM/xcX
+        zf8XF83/FxfO/xgYzv8YGM7/GBjO/xgYzv8XF87/FxfN/xcXzf8XF8z/FxfM/xYWy/8XF8r/JSXL2DU1
+        tDE8POIAQUFyAAAA/wBDQ8U7NDTSsioq0+QlJdLpJCTR6SQk0ekkJNHpJCTS6SQk0ukkJNLpJCTS6SQk
+        0ukkJNLpJCTS6SQk0ekkJNHpJSXS6Skp0+Q0NNKzQ0PGPAAA/wA+PnMAAAAAAJSUVQA3N/8AZ2e4DVpa
+        0ytQUNQyTk7TMk5O0zJOTtMyTk7TMk5O0zJOTtMyTk7TMk5O0zJOTtMyTk7TMk5O0zJOTtMyUFDUMlpa
+        0ytmZrkNMzP/AI+PXQAAAAAA8AAPAMAAAwCAAAEAgAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAABAMAAAwDgAAcAKAAAACAA
+        AABAAAAAAQAgAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA
+        AA4JCQksFRUVPxYWFkIWFhZBFhYWQRYWFkEWFhZBFhYWQRYWFkEWFhZBFhYWQRYWFkEWFhZBFhYWQRYW
+        FkEWFhZBFhYWQRYWFkEWFhZBFhYWQhUVFT8JCQksAAAADgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAMhISEzdHR0kqamptC1tbXitbW15LW1teS1tbXktbW15LW1teS1tbXktbW15LW1teS1tbXktbW15LW1
+        teS1tbXktbW15LW1teS1tbXktbW15LW1teS1tbXktbW14qenp9B1dXWTIiIiNAAAAAMAAAAAAAAAAAAA
+        AAAAAAAAMTExN6Kior/U1NT82tra/9ra2v/a2tr/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb
+        2//b29v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/9ra2v/a2tr/2tra/9TU1Pyjo6PAMzMzOAAA
+        AAAAAAAAGhoaAAAAABOenp6l2NjY/tra2v/b29v/3Nvc/9zc3P/c3Nz/3Nzc/93d3f/d3d3/3d3d/93d
+        3f/d3d3/3d3d/93d3f/d3d3/3d3d/93d3f/d3d3/3d3d/9zc3P/c3Nz/3Nzc/9zb3P/b29v/2tra/9jY
+        2P+goKCmAAAAFB0dHQDDw8MAY2NjP87Ozujb29v/3Nzc/93e3f/e3t7/3t7e/97f3v/f39//39/f/9/g
+        3//g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/f39//39/f/9/f3//e3t7/3t7e/93e
+        3f/c3Nz/29vb/8/Pz+lmZmZAysrKAP///wCcnJxg29vb+9zc3P/e3t7/39/f/9/f3//g4OD/4ODg/+Dh
+        4P/h4eH/4eLh/+Li4v/i4uL/4uLi/+Lj4v/i4+L/4uLi/+Li4v/i4uL/4eLh/+Hh4f/h4eH/4ODg/+Dg
+        4P/f39//39/f/97e3v/c3Nz/29vb+52dnWL///8A////AKenp2jc3dz+3t7e/+Dg4P/g4eD/4eHh/+Hi
+        4f/i4uL/4uPi/+Pj4//j4+P/5OTk/+Tk5P/k5OT/5OXk/+Tl5P/k5OT/5OTk/+Tk5P/j5OP/4+Pj/+Lj
+        4v/i4uL/4eLh/+Hh4f/g4eD/4ODg/97e3v/c3Nz+p6ena////wD///8Ap6enaN7e3v7f4N//4eHh/+Li
+        4v/i4+L/4+Pj/+Tk5P/k5OT/5eXl/+Xl5f/m5ub/5ubm/+bm5v/m5+b/5ufm/+bm5v/m5ub/5ubm/+Xm
+        5f/l5eX/5OXk/+Tk5P/j4+P/4+Pj/+Li4v/h4eH/3+Df/93e3f6oqKhs////AP///wCnp6do39/f/uDh
+        4P/i4+L/4+Tj/+Tk5P/k5eT/5eXl/+bm5v/m5+b/5+fn/+fo5//o6ej/6+zr/+3t7f/t7e3/7Ozs/+nq
+        6f/n6Of/5+fn/+bn5v/m5ub/5ebl/+Xl5f/k5OT/5OTk/+Pj4//g4eD/3t/e/qmpqWz///8A////AKeo
+        p2jg4OD+4uLi/+Tl5P/l5eX/5ubm/+bm5v/n5+f/5+jn/+jo6P/p6en/7Ozs/+Dg4P+1tbX/j4+P/4iI
+        iP+np6f/1dXV/+zs7P/p6un/6Ojo/+jo6P/n5+f/5ufm/+bm5v/l5eX/5OXk/+Li4v/g4OD+qampbP//
+        /wD///8AqKioaOHi4f7k5OT/5ubm/+bn5v/n5+f/6Ojo/+jp6P/p6en/6urq/+3t7f+3t7f/Q0ND/wsL
+        C/8AAAD/AAAA/wUFBf8qKir/kpKS/+fo5//r6+v/6erp/+np6f/o6Oj/5+jn/+fn5//m5ub/5OTk/+Hi
+        4f6qqqps////AP///wCoqKho4+Pj/uXl5f/n5+f/6Ojo/+np6f/p6un/6urq/+vr6//u7+7/tLS0/x8f
+        H/8AAAD/CwsL/y8vL/83Nzf/FRUV/wAAAP8JCQn/g4OD/+zs7P/r6+v/6urq/+nq6f/p6en/6Ojo/+fo
+        5//l5uX/4+Pj/qqqqmz///8A////AKqqqmjo6Oj+6+zr/+3t7f/u7u7/7u/u/+/v7//w8PD/8vLy/+Dg
+        4P87Ozv/AAAA/ykpKf+ioqL/09PT/9fX1/+6urr/T09P/wAAAP8UFBT/ubm5//T09P/w8PD/7/Dv/+/v
+        7//u7u7/7e3t/+vs6//o6Oj+rKysbP///wD+/v4AZWVlaIuLi/6Oj47/kZGR/5KSkv+Tk5P/lJSU/5SV
+        lP+YmJj/cHBw/wUFBf8QEBD/q6ur/+Xl5f/l5eX/5ubm/+Pk4//R0tH/NjY2/wAAAP9KSkr/l5eX/5WV
+        lf+UlJT/k5OT/5KSkv+RkZH/j4+P/4uLi/5nZ2dt////AAAAAAAAAABoAAAA/gAAAP8AAAD/AAAA/wAA
+        AP8BAQH/AQEB/wEBAf8AAAD/AAAA/0FBQf/g4OD/6urq/+7u7v/u7u7/7O3s/+jo6P+BgYH/AAAA/wAA
+        AP8BAQH/AQEB/wEBAf8BAQH/AAAA/wAAAP8AAAD/AAAA/gICAm0AAAAAAAAAAAAAAGgAAAD+AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/UlJS/+fo5//w8fD/9PX0//T09P/09PT/7O3s/5WV
+        lf8BAQH/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AgICbQAAAAAEBFUAAQEiaAIC
+        LP4CAi7/AgIw/wMDMf8DAzH/AwMy/wMDM/8DAzX/AgIk/wAAAP8uLi7/3Nzc//Dw8P/4+fj/+fr5//Ly
+        8v/u7u7/Z2dn/wAAAP8BARb/AwM0/wMDM/8DAzL/AwMy/wMDMf8CAjD/AgIu/wICLP4GBiVtAwNYAA0N
+        /wAFBXFoBweS/ggImf8ICKD/CQmk/wkJpv8JCan/CQms/woKsf8JCZb/AQET/wMDAv98fHz/7O3s//P0
+        8//09PT/8vPy/6+vr/8WFhb/AAAA/wYGbv8KCrP/CQmt/wkJqv8JCaf/CQmk/wgIof8ICJr/CAiS/g8P
+        dm0KCv8AEBD/AAYGdGgICJb+CQmd/woKpP8LC6f/Cwuq/wsLrf8LC7D/DAyy/wwMtv8GBl3/AAAB/woK
+        Cf9ZWVn/o6Oj/6ysrP93d3f/Ghoa/wAAAP8EBDL/Cwur/wwMtP8MDLD/Cwut/wsLq/8LC6j/Cgqk/wkJ
+        nf8JCZb+EBB5bQ4O/wASEv8ABwd5aAoKm/4LC6L/Cwuo/wwMq/8MDK7/DAyw/w0Ns/8NDbX/DQ24/w0N
+        sv8HB1P/AQEG/wAAAP8DAwL/BAQC/wAAAP8AAAH/BAQw/wwMnv8NDbr/DQ22/w0Ns/8MDLH/DAyu/wwM
+        rP8MDKn/Cgqi/woKnP4REX9tEBD/ABQU/wAICH5oCwuh/gwMpv8MDKz/DQ2v/w4Osf8NDbP/Dg61/w8P
+        uP8ODrr/Dw+9/w8Puv8LC4P/BgZA/wMDHv8CAhr/BAQy/wkJa/8PD6//Dw++/w4Ouv8PD7j/Dg62/w4O
+        tP8NDbH/DQ2v/w0Nrf8MDKf/Cwuh/hIShG0SEv8AFxf/AAkJg2gMDKf+DQ2r/w4Osf8ODrP/Dw+1/w8P
+        tv8PD7j/EBC6/xAQvP8QEL7/ERHA/xERxP8REcD/EBCz/xAQsf8REbz/ERHE/xERwf8QEL7/EBC8/xAQ
+        u/8PD7n/Dw+3/w8Ptf8PD7P/Dg6x/w0Nq/8NDaf+FBSIbRQU/wAZGf8ACgqJaA0Nrf4ODrD/Dw+1/w8P
+        t/8QELn/EBC6/xAQvP8QEL3/ERG//xERwP8REcH/EhLC/xISw/8SEsT/EhLF/xISw/8SEsL/ERHC/xER
+        wf8REb//ERG+/xAQvP8QELv/EBC5/w8PuP8PD7X/Dg6x/w4Orf4VFY5tFhb/ABwc/wALC45oDw+z/hAQ
+        tv8REbr/ERG8/xISvf8SEr7/EhK//xMTwf8TE8L/ExPD/xMTxP8UFMX/FBTF/xQUxv8UFMb/FBTF/xQU
+        xf8TE8T/ExPD/xMTwv8TE8H/EhLA/xISvv8SEr3/ERG8/xERuv8QELb/EBC0/hcXlG0aGv8AIiL/AA4O
+        lWcREbn9ExO7/xQUv/8UFMD/FBTB/xUVwv8VFcP/FRXE/xYWxf8WFsb/FhbG/xYWx/8WFsf/FxfI/xcX
+        yP8XF8f/FhbH/xYWxv8WFsb/FhbF/xUVxP8VFcP/FRXC/xQUwf8UFMD/FBS//xMTu/8SErn+FhaZaiAg
+        /wAzM/8AHR2dWRYWwPoTE7//FRXD/xUVxf8VFcX/FRXG/xYWxv8WFsf/FhbI/xcXyf8XF8n/FxfK/xcX
+        yv8XF8r/FxfK/xcXyv8XF8r/FxfJ/xcXyf8WFsj/FhbH/xYWx/8VFcb/FRXF/xUVxf8VFcP/ExO//xYW
+        v/ocHJ1aMjL/ADU1wAApKY0sISHG3xQUw/8WFsf/FhbJ/xcXyf8XF8r/FxfK/xcXy/8YGMv/GBjM/xgY
+        zP8YGM3/GBjN/xgYzf8YGM3/GBjN/xgYzf8YGMz/GBjM/xgYy/8XF8v/FxfK/xcXyv8XF8n/FxfJ/xYW
+        x/8UFMP/ISHG4Coqjy41NcIAHx9GABkZAAQ0NMSCHh7M/BQUyP8WFsv/FxfM/xcXzP8XF8z/FxfN/xcX
+        zf8YGM7/GBjO/xgYzv8YGM7/GBjO/xgYzv8YGM7/GBjO/xgYzv8YGM7/FxfN/xcXzf8XF8z/FxfM/xcX
+        zP8WFsv/FBTI/x4ezPw0NMSEHR0ABSEhSwAAAAAASUm3AENDkRM+Ps6UKCjS9Rsbzv8ZGc3/GRnN/xkZ
+        zv8ZGc7/GRnO/xkZzv8ZGc7/GRnO/xkZz/8ZGc//GRnP/xkZz/8ZGc7/GRnO/xkZzv8ZGc7/GRnO/xkZ
+        zv8ZGc3/GRnN/xsbzv8oKNL1PT3OlkJClBNISLkAAAAAAAAAAAAAAAAAWFi1AFVVlwtQUMtSRUXXnjw8
+        2bk2Nta7NjbWuzY21rs2Nta7NjbWuzY21rs2Nta7NjbWuzY21rs2Nta7NjbWuzY21rs2Nta7NjbWuzY2
+        1rs2Nta7NjbWuzY21rs8PNm5RUXXn09PzFNVVZgMV1e2AAAAAAAAAAAAAAAAAAAAAAAAAAAA1NQAAFNT
+        /wCUlIYEgoKoCX19rQp8fKwKfHysCnx8rAp8fKwKfHysCnx8rAp8fKwKfHysCnx8rAp8fKwKfHysCnx8
+        rAp8fKwKfHysCnx8rAp8fKwKfX2tCoKCqAmTk4YETU3/AMrKAAAAAAAAAAAAAAAAAAD/////4AAAB8AA
+        AAPAAAADgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAA
+        AAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAcAAAAPgAAAH+AAAHygA
+        AAAwAAAAYAAAAAEAIAAAAAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAADAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAA
+        AAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAA
+        AAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAMAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAALAAAAJAAAAEAAAABRAAAAVgAAAFYAAABWAAAAVgAA
+        AFYAAABWAAAAVgAAAFYAAABWAAAAVgAAAFYAAABWAAAAVgAAAFYAAABWAAAAVgAAAFYAAABWAAAAVgAA
+        AFYAAABWAAAAVgAAAFYAAABWAAAAVgAAAFYAAABWAAAAVgAAAFEAAABAAAAAJAAAAAwAAAABAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAACMbGxtiXl5eopGRkcqlpaXapqam3qam
+        pt6mpqbepqam3qampt6mpqbepqam3qampt6mpqbepqam3qampt6mpqbepqam3qampt6mpqbepqam3qam
+        pt6mpqbepqam3qampt6mpqbepqam3qampt6mpqbepqam3qampt6mpqbepqam3qWlpdqSkpLLX19fox0d
+        HWMAAAAkAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAMVJSUpCzs7Pg19fX/Nzc
+        3P/b29v/2tra/9ra2v/a2tr/2tra/9ra2v/a2tr/2tra/9ra2v/a2tr/2tra/9vb2//b29v/29vb/9vb
+        2//b29v/29vb/9vb2//b29v/29vb/9ra2v/a2tr/2tra/9ra2v/a2tr/2tra/9ra2v/a2tr/2tra/9vb
+        2//c3Nz/2NjY/LW1teFUVFSRAAAAMQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAnaWlpl8zM
+        zPHb29v/19fX/9fX1//Y2Nj/2dnZ/9nZ2f/Z2dn/2dnZ/9nZ2f/Z2dn/2dnZ/9nZ2f/a2tr/2tra/9ra
+        2v/a2tr/2tra/9ra2v/a2tr/2tra/9ra2v/a2tr/2tra/9ra2v/a2tr/2dnZ/9nZ2f/Z2dn/2dnZ/9nZ
+        2f/Z2dn/2dnZ/9jY2P/X19f/19fX/9vb2//Ozs7xbW1tmAAAACgAAAACAAAAAAAAAAAAAAAAAAAAAAAA
+        AA9TU1N0y8vL7dra2v/Y2Nj/2tra/9vb2//b29v/29vb/9vb2//b29v/29vb/9zc3P/c3Nz/3Nzc/9zc
+        3P/c3Nz/3d3d/93d3f/d3d3/3d3d/93d3f/d3d3/3d3d/93d3f/d3d3/3d3d/9zc3P/c3Nz/3Nzc/9zc
+        3P/c3Nz/3Nzc/9vb2//b29v/29vb/9vb2//b29v/2tra/9jY2P/a2tr/zMzM7lZWVnYAAAAQAAAAAAAA
+        AAAAAAAAAAAAAA4ODjGwsLDF3d3d/9nZ2f/b29v/3Nzc/9zc3P/d3d3/3d3d/93d3f/d3d3/3d3d/97e
+        3v/e3t7/3t7e/97e3v/e3t7/39/f/9/f3//f39//39/f/9/f3//f39//39/f/9/f3//f39//39/f/9/e
+        3//e3t7/3t7e/97e3v/e3t7/3t7e/93d3f/d3d3/3d3d/93d3f/c3Nz/3Nzc/9vb2//Z2dn/3d3d/7Ky
+        sscQEBAyAAAAAAAAAAAAAAAAAAAAA1paWl3V1dXv2tra/9vb2//c3dz/3d7d/97e3v/e3t7/3t7e/97f
+        3v/f39//39/f/9/f3//f4N//4ODg/+Dg4P/g4OD/4ODg/+Dh4P/h4eH/4eHh/+Hh4f/h4eH/4eHh/+Hh
+        4f/g4eD/4OHg/+Dg4P/g4OD/4ODg/9/g3//f39//39/f/9/f3//e397/3t7e/97e3v/e3t7/3d7d/9zd
+        3P/b29v/2tra/9bW1vBeXl5fAAAAAwAAAAAAAAAAAAAABpSUlIHf39/92tra/9zd3P/e3t7/39/f/9/f
+        3//f39//39/f/+Dg4P/g4OD/4ODg/+Dg4P/h4eH/4eHh/+Hh4f/h4uH/4uLi/+Li4v/i4uL/4uLi/+Li
+        4v/i4uL/4uLi/+Li4v/i4uL/4uLi/+Hi4f/h4eH/4eHh/+Hh4f/g4eD/4ODg/+Dg4P/g4OD/3+Df/9/f
+        3//f39//39/f/97e3v/c3dz/2tra/9/f3/2WlpaCAAAABgAAAAAAAAAAAAAAB6mpqY3g4OD/29zb/93e
+        3f/f39//3+Df/9/g3//g4OD/4OHg/+Dh4P/h4eH/4eHh/+Hi4f/i4uL/4uLi/+Lj4v/i4+L/4+Pj/+Pj
+        4//j4+P/4+Pj/+Pk4//j5OP/4+Tj/+Pj4//j4+P/4+Pj/+Pj4//i4+L/4uLi/+Li4v/h4uH/4eLh/+Hh
+        4f/g4eD/4OHg/+Dg4P/f4N//3+Df/9/f3//e3t7/29zb/9/f3/+oqaiQAAAABwEBAQAAAAAAAAAAB6io
+        qJDf4N//3d3d/9/f3//g4OD/4OHg/+Dh4P/h4eH/4eLh/+Hi4f/i4uL/4uPi/+Lj4v/j4+P/4+Tj/+Tk
+        5P/k5OT/5OTk/+Tl5P/k5eT/5OXk/+Xl5f/l5eX/5OXk/+Tl5P/k5eT/5OXk/+Tk5P/k5OT/4+Tj/+Pj
+        4//j4+P/4uPi/+Lj4v/i4uL/4eLh/+Hi4f/h4eH/4OHg/+Dg4P/f39//3d3d/9/f3/+qqqqVAAAACAMD
+        AwAAAAAAAAAAB6ipqJDh4eH/3t7e/+Dg4P/h4eH/4eLh/+Li4v/i4+L/4uPi/+Pj4//j5OP/4+Tj/+Tk
+        5P/k5eT/5eXl/+Xl5f/l5uX/5ebl/+bm5v/m5ub/5ubm/+bm5v/m5+b/5ubm/+bm5v/m5ub/5ebl/+Xm
+        5f/l5uX/5eXl/+Tl5P/k5OT/5OTk/+Pk4//j4+P/4uPi/+Lj4v/i4uL/4eLh/+Hh4f/g4OD/3t7e/+Dg
+        4P+rq6uVAAAACAMDAwAAAAAAAAAAB6mpqZDh4eH/39/f/+Dh4P/i4uL/4uPi/+Pj4//j4+P/4+Tj/+Tk
+        5P/k5OT/5eXl/+Xl5f/l5uX/5ubm/+bm5v/m5+b/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn
+        5//n5+f/5+fn/+fn5//m5ub/5ubm/+bm5v/l5eX/5eXl/+Tl5P/k5OT/5OTk/+Pj4//j4+P/4+Pj/+Li
+        4v/g4eD/39/f/+Hh4f+rq6uVAAAACAMDAwAAAAAAAAAAB6mpqZDi4uL/3+Df/+Hh4f/i4+L/4+Tj/+Tk
+        5P/k5OT/5eXl/+Xl5f/l5uX/5ubm/+bm5v/n5+f/5+fn/+fo5//o6Oj/6Ojo/+jo6P/o6ej/6urq/+zs
+        7P/s7Oz/6+vr/+np6f/o6Oj/6Ojo/+jo6P/o6Oj/5+fn/+fn5//m5ub/5ubm/+bm5v/l5eX/5eXl/+Tk
+        5P/k5OT/5OTk/+Pj4//h4eH/3+Df/+Li4v+rq6uVAAAACAMDAwAAAAAAAAAAB6mpqZDj4+P/4eHh/+Lj
+        4v/k5OT/5eXl/+Xl5f/l5eX/5ubm/+bm5v/m5+b/5+fn/+fo5//o6Oj/6Ojo/+np6f/p6en/6urq/+7u
+        7v/o6ej/1dXV/8DBwP+6urr/y8vL/+Dg4P/u7u7/7Ozs/+np6f/p6en/6Ono/+jo6P/o6Oj/5+fn/+fn
+        5//m5ub/5ubm/+Xm5f/l5eX/5eXl/+Tk5P/i4+L/4eHh/+Pj4/+rq6uVAAAACAMDAwAAAAAAAAAAB6mp
+        qZDk5OT/4uLi/+Pk4//l5eX/5ubm/+bm5v/m5+b/5+fn/+fn5//o6Oj/6Ojo/+jp6P/p6en/6erp/+nq
+        6f/t7u3/4uPi/52dnf9QUFD/IyMj/xISEv8NDQ3/Ghoa/zY2Nv92dnb/x8fH/+7u7v/q6+r/6erp/+np
+        6f/p6en/6Ojo/+jo6P/n6Of/5+fn/+bn5v/m5ub/5ubm/+Xl5f/k5OT/4uLi/+Tk5P+srKyVAAAACAMD
+        AwAAAAAAAAAAB6qqqpDl5eX/4uPi/+Tl5P/m5ub/5ufm/+fn5//n6Of/6Ojo/+jp6P/o6ej/6enp/+nq
+        6f/q6ur/6uvq/+/v7//Jycn/S0tL/wcHB/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/Hh4e/5KS
+        kv/q6ur/6+zr/+rr6v/q6ur/6erp/+np6f/o6ej/6Ojo/+fo5//n5+f/5ufm/+bm5v/l5eX/4+Pj/+Tl
+        5P+srKyVAAAACAMDAwAAAAAAAAAAB6qqqpDm5ub/4+Tj/+Xm5f/n5+f/5+jn/+jo6P/o6ej/6enp/+nq
+        6f/q6ur/6uvq/+rr6v/r6+v/7+/v/8bGxv8wMDD/AAAA/wAAAP8AAAD/AQEB/wcHB/8JCQn/AwMD/wAA
+        AP8AAAD/AAAA/wsLC/+CgoL/7Ozs/+zs7P/r6+v/6uvq/+rq6v/p6un/6enp/+jp6P/o6Oj/5+jn/+fn
+        5//m5ub/5OTk/+Xm5f+srKyVAAAACAMDAwAAAAAAAAAAB6qqqpDn5+f/5OXk/+bn5v/o6Oj/6Ono/+np
+        6f/p6un/6urq/+rr6v/r6+v/6+vr/+vs6//u7u7/39/f/0NDQ/8AAAD/AAAA/wAAAP8lJSX/c3Nz/6io
+        qP+ysrL/kZGR/0pKSv8JCQn/AAAA/wAAAP8NDQ3/o6Oj//Dx8P/s7Oz/6+zr/+vr6//q6+r/6urq/+nq
+        6f/p6en/6Ono/+jo6P/n5+f/5eXl/+bm5v+srKyVAAAACAMDAwAAAAAAAAAAB6urq5Dq6ur/6Ono/+rr
+        6v/r7Ov/7Ozs/+3t7f/t7e3/7e7t/+7u7v/u7u7/7+/v/+/v7//09PT/jIyM/wMDA/8AAAD/AAAA/0hI
+        SP/IyMj/5ubm/+Dg4P/f39//4+Pj/+Dg4P+NjY3/EhIS/wAAAP8AAAD/NDQ0/97e3v/x8fH/7+/v/+7v
+        7v/u7u7/7u7u/+3t7f/t7e3/7Ozs/+vs6//r6+v/6enp/+rq6v+tra2VAAAACAMDAwAAAAAAAAAAB4yM
+        jJDCw8L/w8PD/8XGxf/Hx8f/yMjI/8nJyf/Jycn/ysrK/8vLy//Ly8v/zMzM/83Nzf/Dw8P/MzMz/wAA
+        AP8AAAD/Ly8v/8/Pz//i4+L/29vb/+Pj4//l5eX/39/f/9vc2//o6Oj/gYGB/wMDA/8AAAD/BQUF/4yM
+        jP/Q0ND/zMzM/8zMzP/Ly8v/ysrK/8nKyf/Jycn/yMjI/8fHx//Gxsb/w8PD/8LCwv+Ojo6WAAAACAMD
+        AwAAAAAAAAAABw8PD5AUFBT/FRUV/xYWFv8XFxf/GBgY/xgYGP8YGBj/GRkZ/xkZGf8ZGRn/Ghoa/xoa
+        Gv8XFxf/AwMD/wAAAP8DAwP/kZGR/+nq6f/e3t7/7Ozs/+zs7P/r6+v/7e3t/+Xm5f/g4OD/2dnZ/y0s
+        Lf8AAAD/AAAA/w4ODv8bGxv/Ghoa/xoaGv8ZGRn/GRkZ/xgYGP8YGBj/GBgY/xcXF/8WFhb/FRUV/xQU
+        FP8RERGWAAAACAEBAQAAAAAAAAAABwAAAJAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8SEhL/xcXF/+Tk5P/q6ur/7/Dv/+7u7v/u7+7/7u7u//Dw
+        8P/g4eD/6+vr/2FhYf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8CAgKWBQUFCAEBAQAAAAAAAAAABwAAAJAAAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8dHR3/0dHR/+Xl5f/w8PD/8/Tz//Pz
+        8//z8/P/8/Pz//T09P/l5eX/7u7u/3h4eP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8DAwOWBQUFCAEBAQAAAAAAAAAABwAAAJAAAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8QEBD/xcXF/+vr
+        6//u7u7/+Pn4//f39//39/f/9/j3//f39//m5ub/8PDw/1tbW/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8DAwOWBQUFCAEBAQAAAAAAAAAABwIC
+        L5ADAzz/AwM8/wMDP/8DA0H/AwNC/wQEQv8EBEP/BARE/wQERf8EBEX/BARG/wQER/8EBED/AQEL/wAA
+        AP8BAQH/iIiI//X19f/o6Oj/9fX1//v7+//7/Pv/+fr5/+3t7f/t7u3/2NjY/yYmJv8AAAD/AAAA/wIC
+        KP8EBEj/BARG/wQERv8EBEX/BARE/wQEQ/8EBEP/BARC/wMDQf8DAz//AwM9/wMDPP8HBzKWCAgACAIC
+        AgAAAAAAAAAABwUFeJAHB5f/Bwea/wgIoP8ICKT/CQmn/wkJqv8JCav/CQmt/wkJr/8JCbH/Cgqz/woK
+        tv8KCrX/AwM7/wAAAP8AAAD/JiYm/83Nzf/29vb/6urq/+3t7f/u7+7/6uvq/+7v7v/y8vL/cXFx/wEB
+        Af8AAAD/AQEK/wgIjf8KCrn/Cgq0/wkJsv8JCbD/CQmu/wkJrP8JCar/CQmo/wgIpf8ICKH/Bwea/wcH
+        mP8QEH2XEREACAQEBAAAAAAAAAAABwYGdJAHB5P/CAiV/wgInP8JCaD/CQmk/woKpf8KCqf/Cgqp/woK
+        q/8KCq3/Cgqv/wsLsf8LC7j/CAiE/wEBCf8AAAD/AAAA/zk5Of+/v7//9fX1//f39//29/b/9/j3/+Tl
+        5P95eXn/CQkJ/wAAAP8AAAD/BAQ9/wsLs/8LC7L/Cgqw/woKrv8KCqz/Cgqq/woKqP8KCqb/CQmk/wkJ
+        of8ICJz/CAiW/wgIlP8REXqXEhIACAQEBAAAAAAAAAAABwcHeJAJCZf/CQmZ/woKn/8KCqT/Cwun/wsL
+        qP8LC6r/Cwus/wsLrv8MDLD/DAyx/wwMs/8MDLX/DQ24/wYGT/8AAAD/AAAA/wAAAP8XFxf/XFxc/4+P
+        j/+Wlpb/enp6/zQ0NP8FBQX/AAAA/wAAAP8CAhj/CwuY/w0Nuf8MDLT/DAyy/wwMsP8LC67/Cwut/wsL
+        q/8LC6n/Cwun/wsLpf8KCqD/CQma/wkJmP8SEn6XEREACAQEBAAAAAAAAAAABwcHfJAJCZv/Cgqd/woK
+        o/8LC6f/DAyq/wwMq/8MDK3/DAyu/wwMsP8NDbL/DQ2z/w0Ntf8NDbf/DQ26/w0Nsf8FBUX/AAAC/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wICGf8LC4b/Dg69/w0Nt/8NDbb/DQ20/w0N
+        sv8MDLH/DAyv/wwMrf8MDKz/DAyq/wsLp/8KCqP/Cgqd/woKnP8TE4GXEREACAQEBAAAAAAAAAAABwgI
+        f5AKCp//Cwug/wsLpf8MDKr/DAys/w0Nrf8NDa//DQ2w/w0Nsv8NDbT/Dg61/w4Ot/8ODrj/Dg66/w8P
+        vf8PD7f/CAhi/wICE/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAT/BAQ0/w0NmP8PD8D/Dg66/w4O
+        uf8ODrf/Dg62/w4OtP8NDbP/DQ2x/w0Nr/8NDa7/DQ2s/wwMqv8LC6b/Cwug/woKoP8TE4WXEREACAQE
+        BAAAAAAAAAAABwgIgpALC6P/DAyj/wwMqP8NDaz/DQ2v/w4OsP8ODrH/Dg6y/w4OtP8ODrX/Dw+3/w8P
+        uP8PD7r/Dw+7/w8PvP8QEL7/EBDB/w4Oov8JCWL/BQU3/wICGv8CAhj/AwMn/wcHTP8LC4T/EBC4/xAQ
+        wf8PD7z/Dw+7/w8Puv8PD7n/Dw+3/w4Otv8ODrX/Dg6z/w4Osv8ODrD/DQ2v/w0Nrf8MDKn/DAyj/wsL
+        o/8UFIiXEREACAQEBAAAAAAAAAAABwkJhpAMDKf/DAyn/w0NrP8NDa//Dg6x/w4Osv8PD7T/Dw+1/w8P
+        tv8PD7f/Dw+5/xAQuv8QELv/EBC8/xAQvf8QEL7/ERG//xERw/8REcb/ERG//xAQtP8QELP/EBC5/xER
+        xP8REcX/ERHB/xERv/8QEL7/EBC9/xAQvP8QELr/EBC5/w8PuP8PD7f/Dw+1/w8PtP8PD7P/Dg6y/w0N
+        sP8NDaz/DAyn/wwMp/8VFYuXEBEACAQEBAAAAAAAAAAABwoKipAMDKz/DQ2r/w4Or/8ODrP/Dw+0/w8P
+        tv8QELf/EBC4/xAQuf8QELr/EBC7/xERvP8REb3/ERG+/xERv/8REcD/EhLB/xISwv8REcL/EhLD/xIS
+        xP8SEsT/EhLD/xISwv8SEsL/EhLB/xERwP8REcD/ERG//xERvv8REb3/EBC7/xAQuv8QELn/EBC4/xAQ
+        t/8PD7b/Dw+1/w4Os/8ODrD/DQ2r/w0NrP8WFo+XEBEACAQEBAAAAAAAAAAABwoKjZANDbD/DQ2u/w4O
+        sv8PD7X/Dw+3/w8PuP8QELn/EBC6/xAQu/8QELz/EBC9/xERvv8REb//ERHA/xERwf8REcH/ERHC/xIS
+        w/8SEsP/EhLD/xISxP8SEsT/EhLD/xISw/8SEsP/ERHC/xERwv8REcH/ERHA/xERv/8REb7/EBC9/xAQ
+        vP8QELv/EBC6/xAQuf8PD7j/Dw+3/w8Ptv8ODrL/DQ2u/w0NsP8XF5OXEREACAQEBAAAAAAAAAAABwsL
+        kZAODrX/Dw+z/xAQtv8QELn/EBC7/xAQu/8REbz/ERG9/xERvv8REb//ERG//xISwf8SEsH/EhLC/xIS
+        w/8SEsP/ExPE/xMTxf8TE8X/ExPF/xMTxf8TE8X/ExPF/xMTxf8TE8X/ExPE/xISxP8SEsP/EhLC/xIS
+        wf8SEsH/ERHA/xERv/8REb7/ERG9/xERvf8QELz/EBC7/xAQuf8QELb/Dw+z/w4Otf8YGJeXEREACAQE
+        BAAAAAAAAAAABw0NlI8QELj/ERG2/xISuf8TE7z/ExO9/xMTvv8UFL//FBS//xQUwP8UFMH/FBTB/xUV
+        wv8VFcP/FRXE/xUVxP8VFcX/FhbF/xYWxv8WFsb/FhbG/xYWx/8WFsf/FhbG/xYWxv8WFsb/FhbG/xYW
+        xf8VFcX/FRXE/xUVw/8VFcP/FBTC/xQUwf8UFMD/FBTA/xQUv/8TE77/ExO+/xMTvP8SErn/ERG2/xER
+        uP8aGpuXEBAACAUFBQAAAAAAAAAABg8Pmo0SErz/EhK5/xMTvf8UFL//FBTA/xQUwf8UFMH/FBTC/xUV
+        wv8VFcP/FRXE/xUVxP8VFcX/FhbG/xYWxv8WFsf/FhbH/xYWyP8WFsj/FhbI/xYWyP8WFsj/FhbI/xYW
+        yP8WFsj/FhbH/xYWx/8WFsb/FhbG/xUVxf8VFcX/FRXE/xUVw/8VFcP/FRXC/xQUwf8UFMH/FBTB/xQU
+        v/8TE73/EhK5/xISvP8XF56SBQUABwMDAwAAAAAAAAAAAxwcn4MXF8L/EhK8/xQUwP8UFML/FRXE/xUV
+        xP8VFcT/FRXE/xUVxf8WFsb/FhbG/xYWx/8WFsf/FhbI/xYWyP8XF8n/FxfJ/xcXyf8XF8r/FxfK/xcX
+        yv8XF8r/FxfK/xcXyv8XF8n/FxfJ/xcXyf8WFsj/FhbI/xYWx/8WFsf/FhbG/xYWxv8VFcX/FRXF/xUV
+        xP8VFcT/FRXE/xQUwv8UFMD/EhK8/xYWwv8aGp+EAAAABAAAAAAAAAAAAAAAACkpk18eHsn3ExO//xQU
+        wv8VFcX/FhbG/xYWx/8WFsf/FhbH/xYWyP8WFsj/FxfJ/xcXyf8XF8n/FxfK/xcXyv8XF8v/GBjL/xgY
+        y/8YGMv/GBjM/xgYzP8YGMz/GBjM/xgYy/8YGMv/GBjL/xcXy/8XF8v/FxfK/xcXyv8XF8n/FxfJ/xcX
+        yP8WFsj/FhbH/xYWx/8WFsf/FhbG/xUVxf8UFML/ExO+/x4eyfgpKZViAAAAAAAAAAAAAAAAenr/ACMj
+        XycsLMvSFRXE/xQUxP8VFcf/FhbJ/xcXyf8XF8r/FxfK/xcXyv8XF8v/FxfL/xcXy/8YGMz/GBjM/xgY
+        zf8YGM3/GBjN/xgYzf8YGM3/GBjO/xgYzv8YGM7/GBjO/xgYzf8YGM3/GBjN/xgYzf8YGM3/GBjM/xgY
+        zP8YGMz/FxfL/xcXy/8XF8r/FxfK/xcXyv8XF8n/FhbJ/xUVx/8UFMT/FRXE/ywsy9QkJGQpeXn/AAAA
+        AAAAAAAADQ0IAAAAAAU5Obh1JyfT+RMTxf8VFcj/FhbK/xYWy/8WFsv/FxfM/xcXzP8XF8z/FxfM/xcX
+        zP8XF83/FxfN/xcXzf8YGM7/GBjO/xgYzv8YGM7/GBjO/xgYzv8YGM7/GBjO/xgYzv8YGM7/GBjO/xgY
+        zv8XF83/FxfN/xcXzf8XF83/FxfM/xcXzP8XF8z/FxfM/xYWy/8WFsv/FhbK/xUVyP8TE8X/JibS+jo6
+        uXkAAAAGERERAAAAAAAAAAAAAAAAAO3t/wAxMV8XQ0PNoicn0/0VFcn/FhbK/xcXzP8YGM3/GBjN/xgY
+        zf8YGM3/GBjN/xgYzf8YGM3/GBjO/xgYzv8YGM7/GRnO/xkZz/8ZGc//GRnO/xkZzv8ZGc7/GRnO/xkZ
+        z/8ZGc//GRnO/xgYzv8YGM7/GBjO/xgYzv8YGM3/GBjN/xgYzf8YGM3/GBjN/xgYzf8XF8z/FhbK/xUV
+        yf8nJ9P+QkLOpDExYxj8/P8AAAAAAAAAAAAAAAAAAAAAAAAAAAD///8AQkKEHE1N0Zg1Ndr0Hx/P/xgY
+        zP8XF8z/FxfM/xcXzP8XF83/FxfN/xcXzf8XF83/FxfN/xcXzf8XF83/FxfN/xcXzf8XF83/FxfO/xcX
+        zv8XF87/FxfO/xcXzf8XF83/FxfN/xcXzf8XF83/FxfN/xcXzf8XF83/FxfN/xcXzf8XF83/FxfM/xcX
+        zP8YGMz/Hx/P/zU12fRNTdGaQ0OIHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd3fSAERE
+        bQ5ZWcRXUVHasURE3uI6Ot7xMjLZ8zAw2PMxMdjzMTHY8zEx2PMxMdjzMTHY8zEx2PMxMdjzMTHY8zEx
+        2PMxMdjzMTHY8zEx2PMxMdjzMTHY8zEx2PMxMdjzMTHY8zEx2PMxMdjzMTHY8zEx2PMxMdjzMTHY8zEx
+        2PMwMNjzMjLY8zo63/FDQ97jUFDasllZxVlDQ24PdnbUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAC0tHAAEBAAAUVFkDGhotylnZ8o4ZGTNOmNjzTtjY8w7Y2PMO2NjzDtjY8w7Y2PMO2Nj
+        zDtjY8w7Y2PMO2NjzDtjY8w7Y2PMO2NjzDtjY8w7Y2PMO2NjzDtjY8w7Y2PMO2NjzDtjY8w7Y2PMO2Nj
+        zDtjY8w7Y2PMO2NjzDtjY8w7ZGTNOmdnyzhoaLgqUFBmDAcHAAAqKh0AAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAD///////8AAP8AAAAA/wAA+AAAAAAfAADwAAAAAA8AAOAAAAAABwAAwAAAAAAD
+        AADAAAAAAAMAAMAAAAAAAwAAgAAAAAABAACAAAAAAAEAAIAAAAAAAQAAgAAAAAABAACAAAAAAAEAAIAA
+        AAAAAQAAgAAAAAABAACAAAAAAAEAAIAAAAAAAQAAgAAAAAABAACAAAAAAAEAAIAAAAAAAQAAgAAAAAAB
+        AACAAAAAAAEAAIAAAAAAAQAAgAAAAAABAACAAAAAAAEAAIAAAAAAAQAAgAAAAAABAACAAAAAAAEAAIAA
+        AAAAAQAAgAAAAAABAACAAAAAAAEAAIAAAAAAAQAAgAAAAAABAACAAAAAAAEAAIAAAAAAAQAAgAAAAAAB
+        AACAAAAAAAEAAIAAAAAAAQAAgAAAAAABAACAAAAAAAEAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAOAA
+        AAAABwAA8AAAAAAPAAD4AAAAAB8AAP4AAAAAfwAA////////AAAoAAAAgAAAAAABAAABACAAAAAAAAAA
+        AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAABAAAAAwAAAAcAAAAMAAAAEQAAABYAAAAWAAAAGAAAABkAAAAZAAAAGQAA
+        ABkAAAAZAAAAGQAAABkAAAAZAAAAGQAAABkAAAAZAAAAGQAAABkAAAAZAAAAGQAAABkAAAAZAAAAGQAA
+        ABkAAAAZAAAAGQAAABkAAAAZAAAAGQAAABkAAAAZAAAAGQAAABkAAAAZAAAAGQAAABkAAAAZAAAAGQAA
+        ABkAAAAZAAAAGQAAABkAAAAZAAAAGQAAABkAAAAZAAAAGQAAABkAAAAZAAAAGQAAABkAAAAZAAAAGQAA
+        ABkAAAAZAAAAGQAAABkAAAAZAAAAGQAAABkAAAAZAAAAGQAAABkAAAAZAAAAGQAAABkAAAAZAAAAGQAA
+        ABkAAAAZAAAAGQAAABkAAAAZAAAAGQAAABkAAAAZAAAAGQAAABkAAAAZAAAAGAAAABcAAAAWAAAAEQAA
+        AAwAAAAHAAAAAwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAACAAAABAAAAAZAAAAJQAA
+        ADAAAAA4AAAAQAAAAEYAAABHAAAASAAAAEkAAABJAAAASQAAAEkAAABJAAAASQAAAEkAAABJAAAASQAA
+        AEkAAABJAAAASQAAAEkAAABJAAAASQAAAEkAAABJAAAASQAAAEkAAABJAAAASQAAAEkAAABJAAAASQAA
+        AEkAAABJAAAASQAAAEkAAABJAAAASQAAAEkAAABJAAAASQAAAEkAAABJAAAASQAAAEkAAABJAAAASQAA
+        AEkAAABJAAAASQAAAEkAAABJAAAASQAAAEkAAABJAAAASQAAAEkAAABJAAAASQAAAEkAAABJAAAASQAA
+        AEkAAABJAAAASQAAAEkAAABJAAAASQAAAEkAAABJAAAASQAAAEkAAABJAAAASQAAAEkAAABJAAAASQAA
+        AEkAAABJAAAASQAAAEgAAABHAAAARgAAAEAAAAA4AAAAMAAAACUAAAAZAAAAEQAAAAgAAAADAAAAAQAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAEAAAADAAAACQAAABQAAAAjAAAANAAAAEUAAABWAAAAZQAAAHIAAAB6AAAAgAAAAIMAAACEAAAAhQAA
+        AIUAAACFAAAAhQAAAIUAAACFAAAAhQAAAIUAAACFAAAAhQAAAIUAAACFAAAAhQAAAIUAAACFAAAAhQAA
+        AIUAAACFAAAAhQAAAIUAAACFAAAAhQAAAIUAAACFAAAAhQAAAIUAAACFAAAAhQAAAIUAAACFAAAAhQAA
+        AIUAAACFAAAAhQAAAIUAAACFAAAAhQAAAIUAAACFAAAAhQAAAIUAAACFAAAAhQAAAIUAAACFAAAAhQAA
+        AIUAAACFAAAAhQAAAIUAAACFAAAAhQAAAIUAAACFAAAAhQAAAIUAAACFAAAAhQAAAIUAAACFAAAAhQAA
+        AIUAAACFAAAAhQAAAIUAAACFAAAAhQAAAIUAAACFAAAAhQAAAIUAAACFAAAAhAAAAIMAAACAAAAAegAA
+        AHIAAABlAAAAVwAAAEYAAAA1AAAAJAAAABQAAAAKAAAAAwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAABwAAABIAAAAjAAAAOAAAAFEAAABpAAAAfgAA
+        AI8AAACcAAAApQAAAKsAAACwAAAAswAAALMAAAC0AAAAtAAAALQAAAC0AAAAtAAAALQAAAC0AAAAtAAA
+        ALQAAAC0AAAAtAAAALQAAAC0AAAAtAAAALQAAAC0AAAAtAAAALQAAAC0AAAAtAAAALQAAAC0AAAAtAAA
+        ALQAAAC0AAAAtAAAALQAAAC0AAAAtAAAALQAAAC0AAAAtAAAALQAAAC0AAAAtAAAALQAAAC0AAAAtAAA
+        ALQAAAC0AAAAtAAAALQAAAC0AAAAtAAAALQAAAC0AAAAtAAAALQAAAC0AAAAtAAAALQAAAC0AAAAtAAA
+        ALQAAAC0AAAAtAAAALQAAAC0AAAAtAAAALQAAAC0AAAAtAAAALQAAAC0AAAAtAAAALQAAAC0AAAAtAAA
+        ALQAAAC0AAAAtAAAALQAAAC0AAAAswAAALAAAACsAAAApQAAAJwAAACQAAAAfwAAAGoAAABSAAAAOQAA
+        ACMAAAASAAAABwAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAwAA
+        AAwAAAAaAAAAMgAAAFAAAABtAAAAiAAAAJwMDAyyWFhY0pWVleHY2Njz3Nzc8/7+/v7/////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        /////////////////////////////////////////////////////////////////////////////9zc
+        3PPc3Nzzmpqa41paWtIQEBCzAAAAngAAAIgAAABtAAAAUAAAADMAAAAbAAAADAAAAAMAAAABAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAUAAAAOAAAAIwAAAEAAAABiAAAAgwAAAJ43NzfAqKio5v39
+        /fz//////////+7u7v/s7Oz/1tbW/9XV1f/V1dX/1tbW/9bW1v/W1tb/1tbW/9bW1v/W1tb/1tbW/9bW
+        1v/W1tb/1tbW/9bW1v/W1tb/1tbW/9bW1v/W1tb/1tbW/9bW1v/W1tb/1tbW/9bW1v/W1tb/1tbW/9bW
+        1v/W1tb/1tbW/9bW1v/W1tb/1tbW/9bW1v/W1tb/1tbW/9bW1v/W1tb/1tbW/9bW1v/W1tb/1tbW/9bW
+        1v/W1tb/1tbW/9bW1v/W1tb/1tbW/9bW1v/W1tb/1tbW/9bW1v/W1tb/1tbW/9bW1v/W1tb/1tbW/9bW
+        1v/W1tb/1tbW/9bW1v/W1tb/1tbW/9bW1v/W1tb/1tbW/9bW1v/W1tb/1tbW/9bW1v/W1tb/1tbW/9bW
+        1v/W1tb/1tbW/9bW1v/W1tb/1dXV/9XV1f/V1dX/7Ozs/+zs7P////////////39/fyxsbHoPT09xAAA
+        AJ4AAACEAAAAYwAAAEAAAAAjAAAADwAAAAUAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAEAAAAEAAA
+        ACYAAABJAAAAbwAAAJIqKiq6t7e36v//////////2tra/9PT0//T09P/1NTU/9TU1P/U1NT/1NTU/9XV
+        1f/V1dX/1dXV/9XV1f/V1dX/1dXV/9XV1f/V1dX/1dXV/9XV1f/V1dX/1dXV/9XV1f/V1dX/1dXV/9XV
+        1f/V1dX/1dXV/9XV1f/V1dX/1dXV/9XV1f/V1dX/1dXV/9XV1f/V1dX/1dXV/9XV1f/V1dX/1dXV/9XV
+        1f/V1dX/1dXV/9XV1f/V1dX/1dXV/9XV1f/V1dX/1dXV/9XV1f/V1dX/1dXV/9XV1f/V1dX/1dXV/9XV
+        1f/V1dX/1dXV/9XV1f/V1dX/1dXV/9XV1f/V1dX/1dXV/9XV1f/V1dX/1dXV/9XV1f/V1dX/1dXV/9XV
+        1f/V1dX/1dXV/9XV1f/V1dX/1dXV/9XV1f/V1dX/1dXV/9XV1f/V1dX/1dXV/9XV1f/V1dX/1NTU/9TU
+        1P/U1NT/1NTU/9PT0//T09P/2tra////////////vr6+7i4uLrwAAACUAAAAcQAAAEoAAAAnAAAAEQAA
+        AAUAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAABAAAABAAAAA8AAAAnAAAATAAAAHcAAACcdXV11P39/f3/////1NTU/9TU
+        1P/V1dX/1dXV/9bW1v/W1tb/1tbW/9bW1v/X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX
+        1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX
+        1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9jY2P/Y2Nj/2NjY/9jY2P/Y2Nj/2NjY/9jY
+        2P/Y2Nj/2NjY/9jY2P/Y2Nj/2NjY/9jY2P/X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX
+        1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX
+        1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9bW1v/W1tb/1tbW/9XV1f/V1dX/1NTU/9TU
+        1P///////v7+/n19fdcAAACcAAAAdwAAAE0AAAAnAAAAEAAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAANAAAAJQAA
+        AEsAAAB4BAQEn6KiouD/////6urq/9TU1P/V1dX/1dXV/9bW1v/W1tb/19fX/9fX1//X19f/19fX/9fX
+        1//Y2Nj/2NjY/9jY2P/Y2Nj/2NjY/9jY2P/Y2Nj/2NjY/9jY2P/Y2Nj/2NjY/9jY2P/Y2Nj/2NjY/9jY
+        2P/Y2Nj/2NjY/9jY2P/Y2Nj/2NjY/9jY2P/Y2Nj/2NjY/9jY2P/Y2Nj/2dnZ/9nZ2f/Z2dn/2dnZ/9nZ
+        2f/Z2dn/2dnZ/9nZ2f/Z2dn/2dnZ/9nZ2f/Z2dn/2dnZ/9nZ2f/Z2dn/2dnZ/9nZ2f/Z2dn/2dnZ/9nZ
+        2f/Z2dn/2dnZ/9nZ2f/Z2dn/2dnZ/9jY2P/Y2Nj/2NjY/9jY2P/Y2Nj/2NjY/9jY2P/Y2Nj/2NjY/9jY
+        2P/Y2Nj/2NjY/9jY2P/Y2Nj/2NjY/9jY2P/Y2Nj/2NjY/9jY2P/Y2Nj/2NjY/9jY2P/Y2Nj/2NjY/9fX
+        1//X19f/19fX/9fX1//X19f/1tbW/9bW1v/V1dX/1dXV/9TU1P/l5eX//////66uruUKCgqhAAAAeQAA
+        AEwAAAAmAAAADQAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAABAAAACgAAAB4AAABFAAAAcxcXF6TT09Pv/////9fX1//V1dX/1dXV/9bW
+        1v/W1tb/19fX/9fX1//X19f/2NjY/9jY2P/Y2Nj/2NjY/9jY2P/Z2dn/2dnZ/9nZ2f/Z2dn/2dnZ/9nZ
+        2f/Z2dn/2dnZ/9nZ2f/Z2dn/2dnZ/9nZ2f/Z2dn/2dnZ/9nZ2f/Z2dn/2dnZ/9nZ2f/Z2dn/2dnZ/9nZ
+        2f/a2tr/2tra/9ra2v/a2tr/2tra/9ra2v/a2tr/2tra/9ra2v/a2tr/2tra/9ra2v/a2tr/2tra/9ra
+        2v/a2tr/2tra/9ra2v/a2tr/2tra/9ra2v/a2tr/2tra/9ra2v/a2tr/2tra/9ra2v/a2tr/2tra/9ra
+        2v/a2tr/2dnZ/9nZ2f/Z2dn/2dnZ/9nZ2f/Z2dn/2dnZ/9nZ2f/Z2dn/2dnZ/9nZ2f/Z2dn/2dnZ/9nZ
+        2f/Z2dn/2dnZ/9nZ2f/Z2dn/2dnZ/9nZ2f/Y2Nj/2NjY/9jY2P/Y2Nj/2NjY/9jY2P/X19f/19fX/9bW
+        1v/W1tb/1dXV/9XV1f/U1NT//////9fX1+4eHh6nAAAAdAAAAEYAAAAfAAAACgAAAAEAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAUAAAAXAAAAOQAA
+        AGkEBASYzMzM7P/////U1NT/1dXV/9XV1f/W1tb/19fX/9fX1//Y2Nj/2NjY/9jY2P/Z2dn/2dnZ/9nZ
+        2f/Z2dn/2dnZ/9nZ2f/Z2dn/2dnZ/9nZ2f/Z2dn/2tra/9ra2v/a2tr/2tra/9ra2v/a2tr/2tra/9ra
+        2v/a2tr/2tra/9ra2v/a2tr/2tra/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb
+        2//b29v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb
+        2//b29v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2//a2tr/2tra/9ra
+        2v/a2tr/2tra/9ra2v/a2tr/2tra/9ra2v/a2tr/2tra/9ra2v/Z2dn/2dnZ/9nZ2f/Z2dn/2dnZ/9nZ
+        2f/Z2dn/2dnZ/9nZ2f/Z2dn/2NjY/9jY2P/Y2Nj/19fX/9fX1//W1tb/1dXV/9XV1f/U1NT//////9fX
+        1+4KCgqaAAAAawAAADkAAAAXAAAABQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAACAAAADgAAACoAAABZAAAAjKWlpd3/////1dXV/9bW1v/X19f/19fX/9jY
+        2P/Z2dn/2dnZ/9ra2v/a2tr/2tra/9ra2v/b29v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb
+        2//b29v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2//b29v/3Nzc/9zc3P/c3Nz/3Nzc/9zc
+        3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc
+        3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc
+        3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb
+        2//b29v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/9ra2v/a2tr/2tra/9ra
+        2v/Z2dn/2dnZ/9jY2P/X19f/19fX/9bW1v/V1dX//////6+vr+EAAACNAAAAWwAAACsAAAAOAAAAAgAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAYAAAAbAAAARAAA
+        AHl3d3fM/////9jY2P/W1tb/19fX/9jY2P/Y2Nj/2dnZ/9nZ2f/a2tr/2tra/9ra2v/b29v/29vb/9vb
+        2//b29v/29vb/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc
+        3P/c3Nz/3d3d/93d3f/d3d3/3d3d/93d3f/d3d3/3d3d/93d3f/d3d3/3d3d/93d3f/d3d3/3d3d/93d
+        3f/d3d3/3d3d/93d3f/d3d3/3d3d/93d3f/d3d3/3d3d/93d3f/d3d3/3d3d/93d3f/d3d3/3d3d/93d
+        3f/d3d3/3d3d/93d3f/d3d3/3d3d/93d3f/d3d3/3d3d/93d3f/d3d3/3d3d/93d3f/d3d3/3d3d/93d
+        3f/d3d3/3d3d/93d3f/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc
+        3P/c3Nz/29vb/9vb2//b29v/29vb/9vb2//b29v/2tra/9ra2v/Z2dn/2dnZ/9jY2P/Y2Nj/19fX/9bW
+        1v/V1dX//////39/f9EAAAB6AAAARgAAABwAAAAGAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAABAAAADgAAAC4AAABfKSkpof39/fzs7Oz/1tbW/9fX1//X19f/2NjY/9nZ
+        2f/Z2dn/2tra/9ra2v/b29v/29vb/9vb2//c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc
+        3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3d3d/93d3f/d3d3/3d3d/93d3f/d3d3/3d3d/93d
+        3f/d3d3/3d3d/93d3f/d3d3/3d3d/93d3f/d3d3/3d3d/93d3f/d3d3/3t7e/97e3v/e3t7/3t7e/97e
+        3v/e3t7/3t7e/97e3v/e3t7/3t7e/97e3v/e3t7/3t7e/97e3v/e3t7/3d3d/93d3f/d3d3/3d3d/93d
+        3f/d3d3/3d3d/93d3f/d3d3/3d3d/93d3f/d3d3/3d3d/93d3f/d3d3/3d3d/93d3f/d3d3/3Nzc/9zc
+        3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/29vb/9vb
+        2//b29v/2tra/9ra2v/Z2dn/2dnZ/9jY2P/X19f/19fX/9bW1v/o6Oj//f39/TQ0NKkAAABiAAAALwAA
+        AA4AAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAYAAAAQgAA
+        AHq2trbh/////9bW1v/W1tb/19fX/9jY2P/Z2dn/2dnZ/9ra2v/a2tr/29vb/9vb2//c3Nz/3Nzc/9zc
+        3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3d3d/93d
+        3f/d3d3/3d3d/93d3f/d3d3/3d3d/93d3f/d3d3/3d3d/93d3f/d3d3/3d3d/93d3f/d3d3/3t7e/97e
+        3v/e3t7/3t7e/97e3v/e3t7/3t7e/97e3v/e3t7/3t7e/97e3v/e3t7/3t7e/97e3v/e3t7/3t7e/97e
+        3v/e3t7/3t7e/97e3v/e3t7/3t7e/97e3v/e3t7/3t7e/93d3f/d3d3/3d3d/93d3f/d3d3/3d3d/93d
+        3f/d3d3/3d3d/93d3f/d3d3/3d3d/93d3f/d3d3/3d3d/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc
+        3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9zc3P/c3Nz/3Nzc/9vb2//b29v/29vb/9ra2v/Z2dn/2dnZ/9jY
+        2P/X19f/1tbW/9bW1v//////w8PD5wAAAHsAAABDAAAAGQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAACYAAABWNzc3ov7+/v7Z2dn/19fX/9jY2P/Z2dn/2tra/9ra
+        2v/b29v/3Nzc/9zc3P/c3Nz/3d3d/93d3f/d3d3/3d3d/93d3f/d3d3/3t7e/97e3v/e3t7/3t7e/97e
+        3v/e3t7/3t7e/97e3v/e3t7/3t7e/9/f3//f39//39/f/9/f3//f39//39/f/9/f3//f39//39/f/9/f
+        3//f39//39/f/9/f3//g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg
+        4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg
+        4P/g4OD/4ODg/+Dg4P/g4OD/39/f/9/f3//f39//39/f/9/f3//f39//39/f/9/f3//f39//39/f/9/f
+        3//f39//39/f/97e3v/e3t7/3t7e/97e3v/e3t7/3t7e/97e3v/e3t7/3t7e/93d3f/d3d3/3d3d/93d
+        3f/d3d3/3d3d/9zc3P/c3Nz/3Nzc/9vb2//a2tr/2tra/9nZ2f/Y2Nj/19fX/9bW1v//////Pj4+pwAA
+        AFgAAAAnAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAANAAA
+        AGqpqanY/////9fX1//Y2Nj/2dnZ/9nZ2f/a2tr/29vb/9zc3P/c3Nz/3Nzc/93d3f/d3d3/3d3d/93d
+        3f/e3t7/3t7e/97e3v/e3t7/3t7e/97e3v/e3t7/3t7e/97e3v/e3t7/3t7e/9/f3//f39//39/f/9/f
+        3//f39//39/f/9/f3//f39//39/f/9/f3//f39//39/f/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg
+        4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg
+        4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg
+        4P/f39//39/f/9/f3//f39//39/f/9/f3//f39//39/f/9/f3//f39//39/f/9/f3//e3t7/3t7e/97e
+        3v/e3t7/3t7e/97e3v/e3t7/3t7e/97e3v/e3t7/3d3d/93d3f/d3d3/3d3d/9zc3P/c3Nz/3Nzc/9vb
+        2//a2tr/2dnZ/9nZ2f/Y2Nj/19fX//////+xsbHcAAAAawAAADUAAAARAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAABBBgYGfvv7+/nh4eH/19fX/9jY2P/Z2dn/2tra/9vb
+        2//b29v/3Nzc/9zc3P/d3d3/3d3d/93d3f/e3t7/3t7e/97e3v/e3t7/3t7e/97e3v/e3t7/3t7e/97e
+        3v/e3t7/3t7e/97e3v/f39//39/f/9/f3//f39//39/f/9/f3//f39//39/f/9/f3//f39//39/f/+Dg
+        4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg
+        4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg
+        4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/39/f/9/f3//f39//39/f/9/f
+        3//f39//39/f/9/f3//f39//39/f/9/f3//e3t7/3t7e/97e3v/e3t7/3t7e/97e3v/e3t7/3t7e/97e
+        3v/e3t7/3t7e/93d3f/d3d3/3d3d/9zc3P/c3Nz/29vb/9vb2//a2tr/2dnZ/9jY2P/X19f/4ODg//z8
+        /PgSEhKCAAAAQgAAABkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgAA
+        AE5XWVep/////9fY1//Y2dj/2drZ/9nb2f/a29r/29zb/9zd3P/c3dz/3d7d/93e3f/d3t3/3t/e/97f
+        3v/e397/3t/e/97f3v/e397/3t/e/97f3v/e397/3t/e/97f3v/e397/3+Df/9/g3//f4N//3+Df/9/g
+        3//f4N//3+Df/9/g3//f4N//3+Df/+Dh4P/g4eD/4OHg/+Dh4P/g4eD/4OHg/+Dh4P/g4eD/4OHg/+Dh
+        4P/g4eD/4OHg/+Dh4P/g4eD/4eLh/+Hi4f/h4uH/4eLh/+Hi4f/h4uH/4eLh/+Hi4f/h4uH/4eLh/+Hi
+        4f/h4uH/4eLh/+Hi4f/h4uH/4eLh/+Hi4f/g4eD/4OHg/+Dh4P/g4eD/4OHg/+Dh4P/g4eD/4OHg/+Dh
+        4P/g4eD/4OHg/+Dh4P/g4eD/4OHg/9/g3//f4N//3+Df/9/g3//f4N//3+Df/9/g3//f4N//3+Df/9/g
+        3//e397/3t/e/97f3v/e397/3t/e/97f3v/e397/3t/e/97f3v/e397/3t/e/93e3f/d3t3/3d7d/9zd
+        3P/c3dz/29zb/9rb2v/Z29n/2drZ/9jZ2P/X2Nf//////2RkZLEAAABOAAAAHwAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmAAAAV5ubm83/////2NjY/9nZ2f/a2tr/29vb/9zc
+        3P/c3Nz/3d3d/93d3f/e3t7/3t7e/97e3v/f39//39/f/9/f3//f39//39/f/9/f3//f39//39/f/9/f
+        3//f39//4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Hh4f/h4eH/4eHh/+Hh
+        4f/h4eH/4eHh/+Hh4f/h4eH/4eHh/+Hh4f/h4eH/4eHh/+Li4v/i4uL/4uLi/+Li4v/i4uL/4uLi/+Li
+        4v/i4uL/4uLi/+Li4v/i4uL/4uLi/+Li4v/i4uL/4uLi/+Li4v/i4uL/4uLi/+Li4v/i4uL/4uLi/+Li
+        4v/i4uL/4uLi/+Li4v/h4eH/4eHh/+Hh4f/h4eH/4eHh/+Hh4f/h4eH/4eHh/+Hh4f/h4eH/4eHh/+Hh
+        4f/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/39/f/9/f3//f39//39/f/9/f
+        3//f39//39/f/9/f3//f39//3t7e/97e3v/e3t7/3d3d/93d3f/c3Nz/3Nzc/9vb2//a2tr/2dnZ/9jY
+        2P//////o6Oj0gAAAFcAAAAnAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        ACoAAABezs7O5P/////Y2Nj/2dnZ/9ra2v/b29v/3Nzc/9zc3P/d3d3/3t7e/97e3v/e3t7/39/f/9/f
+        3//f39//39/f/9/f3//f39//39/f/9/f3//f39//39/f/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg
+        4P/g4OD/4ODg/+Dg4P/h4eH/4eHh/+Hh4f/h4eH/4eHh/+Hh4f/h4eH/4eHh/+Hh4f/h4eH/4uLi/+Li
+        4v/i4uL/4uLi/+Li4v/i4uL/4uLi/+Li4v/i4uL/4uLi/+Li4v/i4uL/4uLi/+Li4v/i4uL/4uLi/+Li
+        4v/i4uL/4uLi/+Li4v/i4uL/4uLi/+Li4v/i4uL/4uLi/+Li4v/i4uL/4uLi/+Li4v/i4uL/4uLi/+Hh
+        4f/h4eH/4eHh/+Hh4f/h4eH/4eHh/+Hh4f/h4eH/4eHh/+Hh4f/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg
+        4P/g4OD/4ODg/+Dg4P/g4OD/39/f/9/f3//f39//39/f/9/f3//f39//39/f/9/f3//f39//3t7e/97e
+        3v/e3t7/3d3d/93d3f/c3Nz/29vb/9ra2v/Z2dn/2dnZ//39/f/U1NTnAAAAXgAAACoAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALQAAAGL09PTx7e3t/9nZ2f/a2tr/29vb/9vb
+        2//c3Nz/3d3d/93d3f/e3t7/3t7e/97e3v/f39//39/f/9/f3//f39//39/f/9/f3//f39//39/f/9/f
+        3//g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/h4eH/4eHh/+Hh4f/h4eH/4eHh/+Hh
+        4f/h4eH/4eHh/+Hh4f/h4eH/4uLi/+Li4v/i4uL/4uLi/+Li4v/i4uL/4uLi/+Li4v/i4uL/4uLi/+Li
+        4v/i4uL/4uLi/+Li4v/i4uL/4uLi/+Li4v/i4uL/4uLi/+Li4v/i4uL/4uLi/+Li4v/i4uL/4uLi/+Li
+        4v/i4uL/4uLi/+Li4v/i4uL/4uLi/+Li4v/i4uL/4uLi/+Li4v/h4eH/4eHh/+Hh4f/h4eH/4eHh/+Hh
+        4f/h4eH/4eHh/+Hh4f/h4eH/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/39/f/9/f
+        3//f39//39/f/9/f3//f39//39/f/9/f3//e3t7/3t7e/97e3v/d3d3/3d3d/9zc3P/b29v/29vb/9ra
+        2v/Z2dn/6Ojo//f39/QAAABkAAAALgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAuAAAAZPz8/Pji4+L/2drZ/9rb2v/b3Nv/293b/9zd3P/d3t3/3d7d/97f3v/e397/3uDe/9/g
+        3//f4N//3+Df/9/g3//f4N//3+Df/9/g3//f4N//4ODg/+Dh4P/g4eD/4OHg/+Dh4P/g4eD/4OHg/+Dh
+        4P/g4eD/4eHh/+Hi4f/h4uH/4eLh/+Hi4f/h4uH/4eLh/+Hi4f/h4uH/4uLi/+Lj4v/i4+L/4uPi/+Lj
+        4v/i4+L/4uPi/+Lj4v/i4+L/4uPi/+Lj4v/i4+L/4uPi/+Pj4//j4+P/4+Tj/+Pk4//j5OP/4+Tj/+Pk
+        4//j5OP/4+Tj/+Pk4//j5OP/4+Pj/+Pj4//i4+L/4uPi/+Lj4v/i4+L/4uPi/+Lj4v/i4+L/4uPi/+Lj
+        4v/i4+L/4uPi/+Lj4v/i4uL/4eLh/+Hi4f/h4uH/4eLh/+Hi4f/h4uH/4eLh/+Hi4f/h4eH/4OHg/+Dh
+        4P/g4eD/4OHg/+Dh4P/g4eD/4OHg/+Dh4P/g4OD/3+Df/9/g3//f4N//3+Df/9/g3//f4N//3+Df/97g
+        3v/e397/3t/e/93e3f/d3t3/3N3c/9zd3P/b3Nv/2tva/9na2f/f4N///f39/AAAAGUAAAAwAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8AAABm/v7+/t3d3f/a2tr/29vb/9zc
+        3P/d3d3/3d3d/97e3v/f39//39/f/9/f3//g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg
+        4P/h4eH/4eHh/+Hh4f/h4eH/4eHh/+Hh4f/h4eH/4eHh/+Li4v/i4uL/4uLi/+Li4v/i4uL/4uLi/+Li
+        4v/i4uL/4uLi/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/5OTk/+Tk
+        5P/k5OT/5OTk/+Tk5P/k5OT/5OTk/+Tk5P/k5OT/5OTk/+Tk5P/k5OT/5OTk/+Tk5P/k5OT/5OTk/+Tk
+        5P/k5OT/5OTk/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4uLi/+Li
+        4v/i4uL/4uLi/+Li4v/i4uL/4uLi/+Li4v/i4uL/4eHh/+Hh4f/h4eH/4eHh/+Hh4f/h4eH/4eHh/+Hh
+        4f/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/9/f3//f39//39/f/97e3v/d3d3/3d3d/9zc
+        3P/b29v/2tra/9nZ2f//////BwcHbAAAADEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAMAAAAGb/////29vb/9ra2v/b29v/3Nzc/93d3f/e3t7/3t7e/9/f3//f39//39/f/+Dg
+        4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4eHh/+Hh4f/h4eH/4eHh/+Hh4f/h4eH/4eHh/+Hh
+        4f/i4uL/4uLi/+Li4v/i4uL/4uLi/+Li4v/i4uL/4uLi/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj
+        4//j4+P/4+Pj/+Pj4//k5OT/5OTk/+Tk5P/k5OT/5OTk/+Tk5P/k5OT/5OTk/+Tk5P/k5OT/5OTk/+Tk
+        5P/k5OT/5OTk/+Tk5P/k5OT/5OTk/+Tk5P/k5OT/5OTk/+Tk5P/k5OT/5OTk/+Tk5P/k5OT/4+Pj/+Pj
+        4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Li4v/i4uL/4uLi/+Li4v/i4uL/4uLi/+Li
+        4v/i4uL/4eHh/+Hh4f/h4eH/4eHh/+Hh4f/h4eH/4eHh/+Hh4f/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg
+        4P/g4OD/39/f/9/f3//f39//3t7e/97e3v/d3d3/3Nzc/9vb2//a2tr/2tra//////8hISF2AAAAMQAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAZ//////c3dz/29zb/9vd
+        2//c3dz/3d7d/97f3v/e397/3+Df/9/g3//f4N//4OHg/+Dh4P/g4eD/4OHg/+Dh4P/g4eD/4OHg/+Hi
+        4f/h4uH/4eLh/+Hi4f/h4uH/4eLh/+Hi4f/h4uH/4uPi/+Lj4v/i4+L/4uPi/+Lj4v/i4+L/4uPi/+Lj
+        4v/j4+P/4+Tj/+Pk4//j5OP/4+Tj/+Pk4//j5OP/4+Tj/+Tk5P/k5OT/5OXk/+Tl5P/k5eT/5OXk/+Tl
+        5P/k5eT/5OXk/+Tl5P/k5eT/5OXk/+Tl5P/k5eT/5OXk/+Tl5P/k5eT/5OXk/+Tl5P/k5eT/5OXk/+Tl
+        5P/k5eT/5OXk/+Tl5P/k5eT/5OXk/+Tl5P/k5eT/5OTk/+Tk5P/j5OP/4+Tj/+Pk4//j5OP/4+Tj/+Pk
+        4//j5OP/4+Pj/+Lj4v/i4+L/4uPi/+Lj4v/i4+L/4uPi/+Lj4v/i4+L/4eLh/+Hi4f/h4uH/4eLh/+Hi
+        4f/h4uH/4eLh/+Hi4f/g4eD/4OHg/+Dh4P/g4eD/4OHg/+Dh4P/f4N//3+Df/9/g3//e397/3t/e/93e
+        3f/c3dz/3N3c/9vc2//a29r//////yEhIXYAAAAxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAADAAAABn/////93d3f/c3Nz/3d3d/93d3f/e3t7/39/f/9/f3//g4OD/4ODg/+Dg
+        4P/h4eH/4eHh/+Hh4f/h4eH/4eHh/+Hh4f/i4uL/4uLi/+Li4v/i4uL/4uLi/+Li4v/i4uL/4uLi/+Pj
+        4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/5OTk/+Tk5P/k5OT/5OTk/+Tk5P/k5OT/5OTk/+Tk
+        5P/l5eX/5eXl/+Xl5f/l5eX/5eXl/+Xl5f/l5eX/5eXl/+Xl5f/l5eX/5eXl/+Xl5f/l5eX/5eXl/+Xl
+        5f/l5eX/5eXl/+Xl5f/l5eX/5eXl/+Xl5f/l5eX/5eXl/+Xl5f/l5eX/5eXl/+Xl5f/l5eX/5eXl/+Xl
+        5f/l5eX/5eXl/+Xl5f/k5OT/5OTk/+Tk5P/k5OT/5OTk/+Tk5P/k5OT/5OTk/+Pj4//j4+P/4+Pj/+Pj
+        4//j4+P/4+Pj/+Pj4//j4+P/4uLi/+Li4v/i4uL/4uLi/+Li4v/i4uL/4uLi/+Li4v/h4eH/4eHh/+Hh
+        4f/h4eH/4eHh/+Hh4f/g4OD/4ODg/9/f3//f39//3t7e/93d3f/d3d3/3Nzc/9vb2///////ISEhdgAA
+        ADIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAGf/////3d3d/9zc
+        3P/d3d3/3d3d/97e3v/f39//39/f/+Dg4P/g4OD/4eHh/+Hh4f/h4eH/4eHh/+Hh4f/h4eH/4uLi/+Li
+        4v/i4uL/4uLi/+Li4v/i4uL/4uLi/+Li4v/j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Tk
+        5P/k5OT/5OTk/+Tk5P/k5OT/5OTk/+Tk5P/l5eX/5eXl/+Xl5f/l5eX/5eXl/+Xl5f/l5eX/5eXl/+Xl
+        5f/l5eX/5eXl/+Xl5f/l5eX/5eXl/+Xl5f/m5ub/5ubm/+bm5v/m5ub/5ubm/+bm5v/m5ub/5eXl/+Xl
+        5f/l5eX/5eXl/+Xl5f/l5eX/5eXl/+Xl5f/l5eX/5eXl/+Xl5f/l5eX/5eXl/+Xl5f/l5eX/5OTk/+Tk
+        5P/k5OT/5OTk/+Tk5P/k5OT/5OTk/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4uLi/+Li
+        4v/i4uL/4uLi/+Li4v/i4uL/4uLi/+Li4v/h4eH/4eHh/+Hh4f/h4eH/4eHh/+Dg4P/g4OD/39/f/9/f
+        3//e3t7/3d3d/93d3f/c3Nz/29vb//////8hISF2AAAAMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAwAAAAZ//////d3t3/3N3c/93e3f/d393/3t/e/9/g3//f4N//4OHg/+Dh
+        4P/h4uH/4eLh/+Hi4f/h4uH/4eLh/+Hi4f/i4+L/4uPi/+Lj4v/i4+L/4uPi/+Lj4v/i4+L/4+Pj/+Pk
+        4//j5OP/4+Tj/+Pk4//j5OP/4+Tj/+Pk4//k5eT/5OXk/+Tl5P/k5eT/5OXk/+Tl5P/k5eT/5eXl/+Xm
+        5f/l5uX/5ebl/+Xm5f/l5uX/5ebl/+Xm5f/l5uX/5ebl/+Xm5f/m5ub/5ufm/+bn5v/m5+b/5ufm/+bn
+        5v/m5+b/5ufm/+bn5v/m5+b/5ufm/+bn5v/m5+b/5ufm/+bn5v/m5+b/5ubm/+Xm5f/l5uX/5ebl/+Xm
+        5f/l5uX/5ebl/+Xm5f/l5uX/5ebl/+Xm5f/l5eX/5OXk/+Tl5P/k5eT/5OXk/+Tl5P/k5eT/5OXk/+Pk
+        4//j5OP/4+Tj/+Pk4//j5OP/4+Tj/+Pk4//j4+P/4uPi/+Lj4v/i4+L/4uPi/+Lj4v/i4+L/4uPi/+Hi
+        4f/h4uH/4eLh/+Hi4f/h4uH/4OHg/+Dh4P/f4N//3+Df/97f3v/d393/3d7d/9zd3P/b3Nv//////yEh
+        IXYAAAAyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAABn/////97e
+        3v/d3d3/3t7e/9/f3//f39//4ODg/+Dg4P/h4eH/4eHh/+Li4v/i4uL/4uLi/+Li4v/i4uL/4+Pj/+Pj
+        4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//k5OT/5OTk/+Tk5P/k5OT/5OTk/+Tk5P/l5eX/5eXl/+Xl
+        5f/l5eX/5eXl/+Xl5f/l5eX/5eXl/+bm5v/m5ub/5ubm/+bm5v/m5ub/5ubm/+bm5v/m5ub/5ubm/+bm
+        5v/n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn
+        5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//m5ub/5ubm/+bm5v/m5ub/5ubm/+bm5v/m5ub/5ubm/+bm
+        5v/m5ub/5eXl/+Xl5f/l5eX/5eXl/+Xl5f/l5eX/5eXl/+Xl5f/k5OT/5OTk/+Tk5P/k5OT/5OTk/+Tk
+        5P/j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Li4v/i4uL/4uLi/+Li4v/h4eH/4eHh/+Dg
+        4P/g4OD/39/f/9/f3//e3t7/3d3d/9zc3P//////ISEhdgAAADIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAGf/////3t7e/93d3f/e3t7/39/f/9/f3//g4OD/4ODg/+Hh
+        4f/h4eH/4uLi/+Li4v/i4uL/4uLi/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/5OTk/+Tk
+        5P/k5OT/5OTk/+Tk5P/k5OT/5eXl/+Xl5f/l5eX/5eXl/+Xl5f/l5eX/5eXl/+Xl5f/m5ub/5ubm/+bm
+        5v/m5ub/5ubm/+bm5v/m5ub/5ubm/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn
+        5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn
+        5//n5+f/5+fn/+bm5v/m5ub/5ubm/+bm5v/m5ub/5ubm/+bm5v/m5ub/5eXl/+Xl5f/l5eX/5eXl/+Xl
+        5f/l5eX/5eXl/+Xl5f/k5OT/5OTk/+Tk5P/k5OT/5OTk/+Tk5P/j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj
+        4//j4+P/4+Pj/+Li4v/i4uL/4uLi/+Hh4f/h4eH/4ODg/+Dg4P/f39//39/f/97e3v/d3d3/3Nzc////
+        //8hISF2AAAAMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAZ///
+        ///e3t7/3d3d/97e3v/f39//39/f/+Dg4P/g4OD/4eHh/+Hh4f/i4uL/4uLi/+Li4v/j4+P/4+Pj/+Pj
+        4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Tk5P/k5OT/5OTk/+Tk5P/k5OT/5OTk/+Xl5f/l5eX/5eXl/+Xl
+        5f/l5eX/5eXl/+Xl5f/m5ub/5ubm/+bm5v/m5ub/5ubm/+bm5v/m5ub/5ubm/+fn5//n5+f/5+fn/+fn
+        5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn
+        5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//m5ub/5ubm/+bm
+        5v/m5ub/5ubm/+bm5v/m5ub/5ubm/+Xl5f/l5eX/5eXl/+Xl5f/l5eX/5eXl/+Xl5f/k5OT/5OTk/+Tk
+        5P/k5OT/5OTk/+Tk5P/j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Li4v/i4uL/4eHh/+Hh
+        4f/g4OD/4ODg/9/f3//f39//3t7e/93d3f/c3Nz//////yEhIXYAAAAyAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAABn/////97f3v/d3t3/3t/e/9/g3//f4N//4OHg/+Dh
+        4P/h4uH/4eLh/+Lj4v/i4+L/4uPi/+Pk4//j5OP/4+Tj/+Pk4//j5OP/4+Tj/+Pk4//j5OP/5OXk/+Tl
+        5P/k5eT/5OXk/+Tl5P/l5eX/5ebl/+Xm5f/l5uX/5ebl/+Xm5f/l5uX/5ubm/+bn5v/m5+b/5ufm/+bn
+        5v/m5+b/5ufm/+fn5//n6Of/5+jn/+fo5//n6Of/5+jn/+fo5//n6Of/5+jn/+fo5//n6Of/5+jn/+jo
+        6P/o6Oj/6Ojo/+jo6P/o6Oj/6Ojo/+jo6P/o6Oj/6Ojo/+jo6P/o6Oj/5+jn/+fo5//n6Of/5+jn/+fo
+        5//n6Of/5+jn/+fo5//n6Of/5+jn/+fo5//n5+f/5ufm/+bn5v/m5+b/5ufm/+bn5v/m5+b/5ubm/+Xm
+        5f/l5uX/5ebl/+Xm5f/l5uX/5ebl/+Xl5f/k5eT/5OXk/+Tl5P/k5eT/5OXk/+Pk4//j5OP/4+Tj/+Pk
+        4//j5OP/4+Tj/+Pk4//j5OP/4uPi/+Lj4v/h4uH/4eLh/+Dh4P/g4eD/3+Df/9/g3//e397/3d7d/9ze
+        3P//////ISEhdgAAADIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAA
+        AGf/////39/f/97e3v/f39//4ODg/+Dg4P/h4eH/4eHh/+Li4v/i4uL/4+Pj/+Pj4//k5OT/5OTk/+Tk
+        5P/k5OT/5OTk/+Tk5P/k5OT/5OTk/+Xl5f/l5eX/5eXl/+Xl5f/l5eX/5eXl/+bm5v/m5ub/5ubm/+bm
+        5v/m5ub/5ubm/+bm5v/n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/6Ojo/+jo6P/o6Oj/6Ojo/+jo
+        6P/o6Oj/6Ojo/+jo6P/o6Oj/6Ojo/+jo6P/o6Oj/6enp/+np6f/p6en/6enp/+np6f/p6en/6enp/+np
+        6f/p6en/6enp/+np6f/o6Oj/6Ojo/+jo6P/o6Oj/6Ojo/+jo6P/o6Oj/6Ojo/+jo6P/o6Oj/6Ojo/+jo
+        6P/n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5ubm/+bm5v/m5ub/5ubm/+bm5v/m5ub/5ubm/+Xl
+        5f/l5eX/5eXl/+Xl5f/l5eX/5eXl/+Tk5P/k5OT/5OTk/+Tk5P/k5OT/5OTk/+Tk5P/k5OT/4+Pj/+Li
+        4v/i4uL/4eHh/+Hh4f/g4OD/4ODg/9/f3//e3t7/3t7e//////8hISF2AAAAMgAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAZ//////f39//3t7e/9/f3//g4OD/4ODg/+Hh
+        4f/h4eH/4uLi/+Li4v/j4+P/4+Pj/+Tk5P/k5OT/5OTk/+Tk5P/k5OT/5OTk/+Tk5P/l5eX/5eXl/+Xl
+        5f/l5eX/5eXl/+Xl5f/l5eX/5ubm/+bm5v/m5ub/5ubm/+bm5v/m5ub/5+fn/+fn5//n5+f/5+fn/+fn
+        5//n5+f/6Ojo/+jo6P/o6Oj/6Ojo/+jo6P/o6Oj/6Ojo/+jo6P/o6Oj/6Ojo/+np6f/p6en/6enp/+np
+        6f/p6en/6enp/+np6f/p6en/6enp/+np6f/p6en/6enp/+np6f/p6en/6enp/+np6f/p6en/6enp/+np
+        6f/o6Oj/6Ojo/+jo6P/o6Oj/6Ojo/+jo6P/o6Oj/6Ojo/+jo6P/o6Oj/5+fn/+fn5//n5+f/5+fn/+fn
+        5//n5+f/5ubm/+bm5v/m5ub/5ubm/+bm5v/m5ub/5eXl/+Xl5f/l5eX/5eXl/+Xl5f/l5eX/5eXl/+Tk
+        5P/k5OT/5OTk/+Tk5P/k5OT/5OTk/+Tk5P/j4+P/4uLi/+Li4v/h4eH/4eHh/+Dg4P/g4OD/39/f/97e
+        3v/e3t7//////yEhIXYAAAAyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        ADAAAABn/////9/h3//e397/3+Df/+Dh4P/g4uD/4eLh/+Hj4f/i4+L/4uPi/+Pk4//k5eT/5OXk/+Tl
+        5P/k5eT/5OXk/+Tl5P/k5eT/5eXl/+Xm5f/l5uX/5ebl/+Xm5f/l5uX/5ebl/+bn5v/m5+b/5ufm/+bn
+        5v/m5+b/5ufm/+fn5//n6Of/5+jn/+fo5//n6Of/5+jn/+jo6P/o6Oj/6Ono/+jp6P/o6ej/6Ono/+jp
+        6P/o6ej/6Ono/+np6f/p6un/6erp/+nq6f/p6un/6erp/+nq6f/p6un/6erp/+nq6f/p6un/6erp/+nq
+        6f/p6un/6erp/+nq6f/p6un/6erp/+nq6f/p6un/6erp/+nq6f/p6en/6Ono/+jp6P/o6ej/6Ono/+jp
+        6P/o6ej/6Ono/+jo6P/o6Oj/5+jn/+fo5//n6Of/5+jn/+fo5//n5+f/5ufm/+bn5v/m5+b/5ufm/+bn
+        5v/m5+b/5ebl/+Xm5f/l5uX/5ebl/+Xm5f/l5uX/5eXl/+Tl5P/k5eT/5OXk/+Tl5P/k5eT/5OXk/+Tl
+        5P/i4+L/4uPi/+Hj4f/h4uH/4OLg/+Dh4P/f4N//3uDe/97f3v//////ISEhdgAAADIAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAGf/////4eHh/9/f3//g4OD/4eHh/+Li
+        4v/i4uL/4+Pj/+Pj4//j4+P/5OTk/+Xl5f/l5eX/5eXl/+Xl5f/l5eX/5eXl/+Xl5f/l5eX/5ubm/+bm
+        5v/m5ub/5ubm/+bm5v/m5ub/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/6Ojo/+jo6P/o6Oj/6Ojo/+jo
+        6P/o6Oj/6enp/+np6f/p6en/6enp/+np6f/p6en/6enp/+np6f/q6ur/6urq/+rq6v/q6ur/6urq/+vr
+        6//v7+//+fn5//////////////////////////////////////////////////z8/P/w8PD/6+vr/+rq
+        6v/q6ur/6urq/+rq6v/q6ur/6enp/+np6f/p6en/6enp/+np6f/p6en/6enp/+np6f/o6Oj/6Ojo/+jo
+        6P/o6Oj/6Ojo/+jo6P/n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//m5ub/5ubm/+bm5v/m5ub/5ubm/+bm
+        5v/l5eX/5eXl/+Xl5f/l5eX/5eXl/+Xl5f/l5eX/5eXl/+Pj4//j4+P/4+Pj/+Li4v/i4uL/4eHh/+Dg
+        4P/g4OD/39/f//////8hISF2AAAAMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAwAAAAZ//////h4eH/39/f/+Dg4P/h4eH/4uLi/+Li4v/j4+P/4+Pj/+Pj4//l5eX/5eXl/+Xl
+        5f/l5eX/5eXl/+Xl5f/l5eX/5eXl/+bm5v/m5ub/5ubm/+bm5v/m5ub/5ubm/+fn5//n5+f/5+fn/+fn
+        5//n5+f/5+fn/+jo6P/o6Oj/6Ojo/+jo6P/o6Oj/6Ojo/+np6f/p6en/6enp/+np6f/p6en/6enp/+np
+        6f/q6ur/6urq/+rq6v/q6ur/6+vr//Dw8P/9/f3///////b29v/BwcH/kJCQ/35+fv9OTk7/Pz8//wsL
+        C/87Ozv/Pz8//35+fv9+fn7/uLi4/+3t7f////////////Pz8//r6+v/6urq/+rq6v/q6ur/6urq/+np
+        6f/p6en/6enp/+np6f/p6en/6enp/+np6f/o6Oj/6Ojo/+jo6P/o6Oj/6Ojo/+jo6P/n5+f/5+fn/+fn
+        5//n5+f/5+fn/+fn5//m5ub/5ubm/+bm5v/m5ub/5ubm/+bm5v/l5eX/5eXl/+Xl5f/l5eX/5eXl/+Xl
+        5f/l5eX/5OTk/+Pj4//j4+P/4uLi/+Li4v/h4eH/4ODg/+Dg4P/f39///////yEhIXYAAAAyAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAABn/////+Hi4f/f4d//4OHg/+Hi
+        4f/i4+L/4uPi/+Pk4//j5OP/4+Tj/+Xm5f/l5uX/5ebl/+Xm5f/l5uX/5ebl/+Xm5f/m5+b/5ufm/+bn
+        5v/m5+b/5ufm/+bn5v/n5+f/5+jn/+fo5//n6Of/5+jn/+fo5//n6Of/6Ono/+jp6P/o6ej/6Ono/+jp
+        6P/p6en/6erp/+nq6f/p6un/6erp/+nq6f/p6un/6urq/+rr6v/q6+r/6+zr//P08///////7+/v/7Gx
+        sf9dXV3/BwcH/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/0ZG
+        Rv+goKD/4+Pj///////3+Pf/7e7t/+rr6v/q6+r/6urq/+nq6f/p6un/6erp/+nq6f/p6un/6erp/+np
+        6f/o6ej/6Ono/+jp6P/o6ej/6Ono/+fo5//n6Of/5+jn/+fo5//n6Of/5+jn/+fn5//m5+b/5ufm/+bn
+        5v/m5+b/5ufm/+bn5v/l5uX/5ebl/+Xm5f/l5uX/5ebl/+Xm5f/k5eT/4+Tj/+Pk4//i4+L/4uPi/+Hi
+        4f/g4eD/4OHg/9/g3///////ISIhdgAAADIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAMAAAAGf/////4uLi/+Hh4f/h4eH/4uLi/+Pj4//j4+P/5OTk/+Tk5P/l5eX/5ubm/+bm
+        5v/m5ub/5ubm/+bm5v/m5ub/5ubm/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+jo6P/o6Oj/6Ojo/+jo
+        6P/o6Oj/6Ojo/+np6f/p6en/6enp/+np6f/p6en/6enp/+rq6v/q6ur/6urq/+rq6v/q6ur/6urq/+rq
+        6v/r6+v/6+vr//Hx8f//////6urq/4WFhf8LCwv/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/XV1d/9XV1f//////9PT0/+zs
+        7P/r6+v/6urq/+rq6v/q6ur/6urq/+rq6v/q6ur/6urq/+np6f/p6en/6enp/+np6f/p6en/6enp/+jo
+        6P/o6Oj/6Ojo/+jo6P/o6Oj/6Ojo/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+bm5v/m5ub/5ubm/+bm
+        5v/m5ub/5ubm/+Xl5f/l5eX/5OTk/+Pj4//j4+P/4uLi/+Hh4f/h4eH/4ODg//////8iIiJ2AAAAMgAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAZ//////i4uL/4eHh/+Hh
+        4f/i4uL/4+Pj/+Pj4//k5OT/5OTk/+Xl5f/m5ub/5ubm/+bm5v/m5ub/5ubm/+bm5v/n5+f/5+fn/+fn
+        5//n5+f/5+fn/+fn5//n5+f/6Ojo/+jo6P/o6Oj/6Ojo/+jo6P/o6Oj/6enp/+np6f/p6en/6enp/+np
+        6f/p6en/6urq/+rq6v/q6ur/6urq/+rq6v/q6ur/6+vr/+zs7P/4+Pj/+vr6/56env8LCwv/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/29vb//v7+///////+/v7//r6+v/6urq/+rq6v/q6ur/6urq/+rq
+        6v/q6ur/6enp/+np6f/p6en/6enp/+np6f/p6en/6Ojo/+jo6P/o6Oj/6Ojo/+jo6P/o6Oj/5+fn/+fn
+        5//n5+f/5+fn/+fn5//n5+f/5+fn/+bm5v/m5ub/5ubm/+bm5v/m5ub/5eXl/+Xl5f/k5OT/4+Pj/+Pj
+        4//i4uL/4eHh/+Hh4f/g4OD//////yIiInYAAAAyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAADAAAABn/////+Lj4v/h4uH/4eLh/+Lj4v/j5OP/4+Tj/+Tl5P/l5eX/5ebl/+bn
+        5v/m5+b/5ufm/+bn5v/m5+b/5ufm/+fo5//n6Of/5+jn/+fo5//n6Of/5+jn/+jo6P/o6ej/6Ono/+jp
+        6P/o6ej/6Ono/+np6f/p6un/6erp/+nq6f/p6un/6erp/+rr6v/q6+r/6uvq/+rr6v/q6+r/6+vr/+vr
+        6//v7+///////+bm5v8/Pz//AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xoa
+        Gv/Kysr///////Dx8P/r6+v/6+vr/+rr6v/q6+r/6uvq/+rr6v/q6+r/6erp/+nq6f/p6un/6erp/+nq
+        6f/p6en/6Ono/+jp6P/o6ej/6Ono/+jp6P/o6Oj/5+jn/+fo5//n6Of/5+jn/+fo5//n6Of/5ufm/+bn
+        5v/m5+b/5ufm/+bn5v/l5uX/5ebl/+Xl5f/j5OP/4+Tj/+Lj4v/h4+H/4eLh/+Dh4P//////IiIidgAA
+        ADIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAGf/////4+Pj/+Li
+        4v/i4uL/4+Pj/+Tk5P/k5OT/5eXl/+Xl5f/m5ub/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/6Ojo/+jo
+        6P/o6Oj/6Ojo/+jo6P/o6Oj/6enp/+np6f/p6en/6enp/+np6f/p6en/6urq/+rq6v/q6ur/6urq/+rq
+        6v/q6ur/6+vr/+vr6//r6+v/6+vr/+vr6//r6+v/8PDw///////Kysr/Dw8P/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP+jo6P///////Pz8//r6+v/6+vr/+vr
+        6//r6+v/6+vr/+vr6//q6ur/6urq/+rq6v/q6ur/6urq/+rq6v/p6en/6enp/+np6f/p6en/6enp/+np
+        6f/o6Oj/6Ojo/+jo6P/o6Oj/6Ojo/+jo6P/n5+f/5+fn/+fn5//n5+f/5+fn/+bm5v/m5ub/5eXl/+Tk
+        5P/k5OT/4+Pj/+Pj4//i4uL/4eHh//////8iIiJ2AAAAMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAwAAAAZ//////j4+P/4uLi/+Li4v/j4+P/5OTk/+Tk5P/l5eX/5eXl/+bm
+        5v/n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//o6Oj/6Ojo/+jo6P/o6Oj/6Ojo/+jo6P/p6en/6enp/+np
+        6f/p6en/6enp/+rq6v/q6ur/6urq/+rq6v/q6ur/6urq/+vr6//r6+v/6+vr/+vr6//r6+v/6+vr/+/v
+        7///////urq6/wcHB/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP+BgYH///////Ly8v/r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//q6ur/6urq/+rq
+        6v/q6ur/6urq/+rq6v/p6en/6enp/+np6f/p6en/6enp/+jo6P/o6Oj/6Ojo/+jo6P/o6Oj/6Ojo/+fn
+        5//n5+f/5+fn/+fn5//n5+f/5ubm/+bm5v/l5eX/5OTk/+Tk5P/j4+P/4+Pj/+Li4v/h4eH//////yIi
+        InYAAAAyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAABn/////+Pk
+        4//i4+L/4uTi/+Pk4//k5eT/5OXk/+Xm5f/m5+b/5ufm/+fo5//n6Of/5+jn/+fo5//n6Of/6Ono/+jp
+        6P/o6ej/6Ono/+jp6P/o6ej/6enp/+nq6f/p6un/6erp/+nq6f/p6un/6urq/+rr6v/q6+r/6uvq/+rr
+        6v/r6+v/6+zr/+vs6//r7Ov/6+zr/+vs6//v7+///////8PDw/8EBAT/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP+MjIz///////Dy
+        8P/r7Ov/6+zr/+vs6//r7Ov/6+zr/+vr6//q6+r/6uvq/+rr6v/q6+r/6urq/+nq6f/p6un/6erp/+nq
+        6f/p6un/6enp/+jp6P/o6ej/6Ono/+jp6P/o6ej/6Ono/+fo5//n6Of/5+jn/+fo5//m5+b/5ufm/+bn
+        5v/k5eT/5OXk/+Pk4//j5OP/4uPi/+Hi4f//////IiIidgAAADIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAGf/////5OTk/+Pj4//k5OT/5OTk/+Xl5f/l5eX/5ubm/+fn
+        5//n5+f/6Ojo/+jo6P/o6Oj/6Ojo/+jo6P/p6en/6enp/+np6f/p6en/6enp/+np6f/q6ur/6urq/+rq
+        6v/q6ur/6urq/+rq6v/r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//s7Oz/7Ozs/+zs7P/s7Oz/7e3t////
+        ///R0dH/CwsL/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP+np6f//////+/v7//s7Oz/7Ozs/+zs7P/s7Oz/6+vr/+vr
+        6//r6+v/6+vr/+vr6//r6+v/6urq/+rq6v/q6ur/6urq/+rq6v/q6ur/6enp/+np6f/p6en/6enp/+np
+        6f/p6en/6Ojo/+jo6P/o6Oj/6Ojo/+fn5//n5+f/5+fn/+Xl5f/l5eX/5OTk/+Tk5P/j4+P/4uLi////
+        //8iIiJ2AAAAMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAZ///
+        ///k5OT/4+Pj/+Tk5P/k5OT/5eXl/+Xl5f/m5ub/5+fn/+fn5//o6Oj/6Ojo/+jo6P/o6Oj/6Ojo/+np
+        6f/p6en/6enp/+np6f/p6en/6enp/+rq6v/q6ur/6urq/+rq6v/q6ur/6urq/+vr6//r6+v/6+vr/+vr
+        6//r6+v/7Ozs/+zs7P/s7Oz/7Ozs/+zs7P/29vb/8fHx/yUlJf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/DAwM/2ZmZv+VlZX/uLi4/7i4uP+4uLj/qKio/3V1
+        df8bGxv/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wcH
+        B//V1dX//f39/+3t7f/s7Oz/7Ozs/+zs7P/s7Oz/6+vr/+vr6//r6+v/6+vr/+vr6//q6ur/6urq/+rq
+        6v/q6ur/6urq/+rq6v/p6en/6enp/+np6f/p6en/6enp/+np6f/o6Oj/6Ojo/+jo6P/o6Oj/5+fn/+fn
+        5//n5+f/5eXl/+Xl5f/k5OT/5OTk/+Pj4//i4uL//////yIiInYAAAAyAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAABn/////+Tl5P/j5OP/5OXk/+Tl5P/l5uX/5ebl/+fo
+        5//n6Of/5+jn/+jp6P/o6ej/6Ono/+jp6P/p6en/6erp/+nq6f/p6un/6erp/+nq6f/p6un/6uvq/+rr
+        6v/q6+r/6uvq/+rr6v/r6+v/6+zr/+vs6//r7Ov/6+zr/+vs6//s7Oz/7O3s/+zt7P/s7ez/7/Dv////
+        //9vb2//AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/RkZG/8fH
+        x//5+fn//////////////////v7+///////////////////////T09P/dXV1/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/ywsLP/4+Pj/8/Tz/+zt7P/s7ez/7O3s/+zs
+        7P/r7Ov/6+zr/+vs6//r7Ov/6+zr/+vr6//q6+r/6uvq/+rr6v/q6+r/6uvq/+nq6f/p6un/6erp/+nq
+        6f/p6un/6erp/+np6f/o6ej/6Ono/+jp6P/n6Of/5+jn/+fo5//m5+b/5ebl/+Tl5P/k5eT/4+Tj/+Lj
+        4v//////IiIidgAAADIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAA
+        AGf/////5eXl/+Tk5P/l5eX/5eXl/+bm5v/m5ub/6Ojo/+jo6P/o6Oj/6enp/+np6f/p6en/6enp/+np
+        6f/q6ur/6urq/+rq6v/q6ur/6urq/+rq6v/r6+v/6+vr/+vr6//r6+v/6+vr/+vr6//s7Oz/7Ozs/+zs
+        7P/s7Oz/7Ozs/+3t7f/t7e3/7e3t/+3t7f/+/v7/zMzM/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/Jycn/8PDw//+/v7/+/v7/+np6f/k5OT/4uLi/+Li4v/i4uL/4uLi/+Li
+        4v/j4+P/5+fn//b29v/+/v7/3Nzc/0pKSv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/5SUlP//////7+/v/+3t7f/t7e3/7e3t/+zs7P/s7Oz/7Ozs/+zs7P/s7Oz/6+vr/+vr
+        6//r6+v/6+vr/+vr6//r6+v/6urq/+rq6v/q6ur/6urq/+rq6v/q6ur/6enp/+np6f/p6en/6enp/+jo
+        6P/o6Oj/6Ojo/+fn5//m5ub/5eXl/+Xl5f/k5OT/4+Pj//////8iIiJ2AAAAMgAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAZ//////l5eX/5OTk/+Xl5f/l5eX/5ubm/+bm
+        5v/o6Oj/6Ojo/+jo6P/p6en/6enp/+np6f/p6en/6urq/+rq6v/q6ur/6urq/+rq6v/q6ur/6urq/+vr
+        6//r6+v/6+vr/+vr6//r6+v/7Ozs/+zs7P/s7Oz/7Ozs/+zs7P/s7Oz/7e3t/+3t7f/t7e3/8fHx////
+        //84ODj/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/0ZGRv/u7u7//v7+/+jo
+        6P/j4+P/4eHh/+Dg4P/e3t7/3d3d/9zc3P/c3Nz/3d3d/9/f3//g4OD/4uLi/+bm5v/39/f/+vr6/4WF
+        hf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BwcH/+rq6v/29vb/7e3t/+3t
+        7f/t7e3/7Ozs/+zs7P/s7Oz/7Ozs/+zs7P/s7Oz/6+vr/+vr6//r6+v/6+vr/+vr6//q6ur/6urq/+rq
+        6v/q6ur/6urq/+rq6v/q6ur/6enp/+np6f/p6en/6Ojo/+jo6P/o6Oj/5+fn/+bm5v/l5eX/5eXl/+Tk
+        5P/j4+P//////yIiInYAAAAyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        ADAAAABn/////+Xn5f/k5eT/5ebl/+Xm5f/m5+b/5ufm/+jp6P/o6ej/6Ono/+nq6f/p6un/6erp/+nq
+        6f/q6ur/6uvq/+rr6v/q6+r/6uvq/+rr6v/r6+v/6+zr/+vs6//r7Ov/6+zr/+vs6//s7Oz/7O3s/+zt
+        7P/s7ez/7O3s/+3t7f/t7e3/7e7t/+3u7f/+//7/xMTE/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP9jY2P/+vr6//X19f/m5ub/4uLi/9/f3//c3Nz/2dnZ/9XV1f/T09P/09PT/9PT
+        0//V1dX/2NjY/9vb2//f39//4eHh/+Tk5P/v7+///v7+/6qqqv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/jo6O///////u7+7/7e7t/+3t7f/t7e3/7O3s/+zt7P/s7ez/7O3s/+zs
+        7P/r7Ov/6+zr/+vs6//r7Ov/6+zr/+vr6//q6+r/6uvq/+rr6v/q6+r/6uvq/+rq6v/p6un/6erp/+nq
+        6f/o6uj/6Ono/+jp6P/n6ef/5ufm/+Xm5f/l5uX/5OXk/+Pl4///////JSUleQAAADIAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAGf/////5+fn/+Xl5f/m5ub/5ubm/+fn
+        5//p6en/6enp/+np6f/p6en/6urq/+rq6v/q6ur/6urq/+rq6v/r6+v/6+vr/+vr6//r6+v/6+vr/+zs
+        7P/s7Oz/7Ozs/+zs7P/s7Oz/7Ozs/+zs7P/t7e3/7e3t/+3t7f/t7e3/7e3t/+3t7f/u7u7/7+/v////
+        //9UVFT/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/OTk5//T09P/z8/P/5OTk/+Hh
+        4f/e3t7/2dnZ/9TU1P/Pz8//y8vL/8jIyP/R0dH/y8vL/8rKyv/Nzc3/0tLS/9jY2P/d3d3/4ODg/+Tk
+        5P/s7Oz//v7+/3x8fP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8QEBD/+Pj4//Pz
+        8//u7u7/7e3t/+3t7f/t7e3/7e3t/+3t7f/t7e3/7Ozs/+zs7P/s7Oz/7Ozs/+zs7P/s7Oz/7Ozs/+vr
+        6//r6+v/6+vr/+vr6//r6+v/6urq/+rq6v/q6ur/6urq/+rq6v/p6en/6enp/+np6f/o6Oj/5ubm/+bm
+        5v/l5eX/5eXl//////8lJSV5AAAAMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAwAAAAZ///////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        ////////////////////////////////////////6Ojo/wQEBP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wgICP/k5OT/+vz6/+bm5v/i4+L/3t7e/9fX1//Q0dD/zM3M/+Lj4v/29vb///////v7
+        +//+/v7/+vr6/+fn5//P0M//zc7N/9XV1f/c3dz/4uPi/+Tl5P/x8fH/+vr6/z09Pf8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP+4uLj/////////////////////////////////////////
+        ////////////////////////////////////////////////////////////////////////////////
+        /////////////////////////////////////////////////////////////ygoKHkAAAAyAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAABnbGxs/1VVVf9YWFj/W1tb/15e
+        Xv9hYWH/Y2Nj/2ZmZv9paWn/ampq/2xsbP9tbW3/b29v/3BwcP9wcHD/cXFx/3Jycv9zc3P/c3Nz/3R0
+        dP91dXX/dnZ2/3d3d/93d3f/eHh4/3l5ef96enr/e3t7/3x8fP99fX3/fn5+/35+fv9/f3//gICA/4GB
+        gf9SUlL/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/l5eX//7+/v/p6en/5eXl/9/f
+        3//Y2Nj/zs7O/9nZ2f/8/Pz/8/Pz/+vr6//o6Oj/6Ojo/+jo6P/q6ur/8fHx///////k5OT/zc3N/9bW
+        1v/d3d3/4+Pj/+fn5//+/v7/1tbW/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/zQ0
+        NP+BgYH/gICA/39/f/9+fn7/fn5+/319ff98fHz/e3t7/3p6ev95eXn/eHh4/3d3d/93d3f/dnZ2/3V1
+        df90dHT/c3Nz/3Nzc/9ycnL/cXFx/3BwcP9wcHD/bm5u/2xsbP9ra2v/aWlp/2dnZ/9kZGT/YWFh/19f
+        X/9bW1v/WVlZ/1VVVf9sbGz/FRUVeQAAADIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAMAAAAGcAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/xYWFv/z8/P/8/Pz/+fn5//h4uH/2tra/9HR0f/e397//v7+/+3t7f/p6en/6enp/+np
+        6f/p6en/6enp/+np6f/p6en/6+vr//f39//s7Oz/zc7N/9fY1//g4eD/5ufm/+vs6//+/v7/VlZW/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8ICAh5AAAAMgAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAZwAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/ioqK//7+/v/q6ur/5eXl/9/f
+        3//V1dX/1dXV//7+/v/t7e3/6urq/+rq6v/q6ur/6+vr/+vr6//r6+v/6urq/+rq6v/q6ur/7Ozs//r6
+        +v/h4eH/0tLS/9zc3P/k5OT/6enp//7+/v/ExMT/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wgICHkAAAAyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAADAAAABnAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP/MzMz//v7+/+rq6v/l5eX/3Nzc/9DQ0P/z8/P/8fLx/+zs7P/s7Oz/7Ozs/+zs
+        7P/s7ez/7O3s/+zt7P/s7Oz/7Ozs/+zs7P/s7Oz/7+/v//z8/P/R0dH/2tra/+Li4v/p6en/8fHx//f3
+        9/8EBAT/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/CQkJeQAA
+        ADIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAGcAAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//f39//y8vL/6erp/+Lj
+        4v/Y2dj/19fX///////v7+//7u7u/+7u7v/u7u7/7u7u/+7u7v/u7u7/7u7u/+7u7v/u7u7/7u7u/+7u
+        7v/t7e3/+vr6/+Hi4f/V1tX/4OHg/+jp6P/t7e3//////01NTf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8JCQl6AAAAMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAwAAAAZwAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8oKCj//////+/v7//p6en/4eHh/9fX1//k5OT//Pz8/+/v7//v8O//7/Dv/+/w
+        7//v8O//7/Dv/+/w7//v8O//7/Dv/+/w7//v8O//7/Dv/+/v7//19fX/8PDw/9TU1P/f39//5+fn/+3t
+        7f//////gICA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wkJ
+        CXoAAAAyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAABnAAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/0dHR///////7+/v/+rq
+        6v/h4eH/1tbW/+np6f/6+vr/8fHx//Hy8f/x8vH/8fLx//Hy8f/x8vH/8fLx//Hy8f/x8vH/8fLx//Hy
+        8f/x8vH/8fHx//X19f/39/f/09PT/9/f3//o6Oj/7u7u//////+Xl5f/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/CQkJegAAADIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAGcAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/TExM///////w8PD/6+zr/+Pk4//X19f/7Ozs//z8/P/z8/P/8/Pz//Pz
+        8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/9vb2//r6+v/T1NP/4OHg/+nq
+        6f/v8O///////52dnf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8KCgp6AAAAMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAZwAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP88PDz///////Hy
+        8f/t7u3/5ubm/9na2f/n5+f///////X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X1
+        9f/19fX/9fX1//X19f/6+vr/9PT0/9fX1//i4+L/6+zr//Hx8f//////ioqK/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/woKCnoAAAAyAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAABnAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/woKCv/9/f3/9vb2/+/v7//o6Oj/3d3d/+Dg4P//////9/f3//b3
+        9v/29/b/9vf2//b39v/29/b/9vf2//b39v/29/b/9vf2//b39v/29/b/9vf2///////p6en/29vb/+bm
+        5v/u7u7/8/Pz//////9dXV3/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/CgoKegAAADIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAA
+        AGcAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/9zc
+        3P/+/v7/8fHx/+vs6//i4uL/1tfW//v7+//8/Pz/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4
+        +P/4+Pj/+Pj4//j4+P/6+vr//////9vb2//f39//6urq//Hx8f/4+fj//f39/xoaGv8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8KCgp6AAAAMgAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAZwAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/ra2t//7+/v/09PT/7/Dv/+jo6P/d3d3/4+Pj////
+        ///7/Pv/+fr5//n6+f/5+vn/+fr5//n6+f/5+vn/+fr5//n6+f/5+vn/+vr6///////w8PD/2tra/+bm
+        5v/t7u3/8/Pz//7+/v/W1tb/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/woKCnoAAAAyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        ADAAAABnAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP87Ozv//f39//39/f/z8/P/7e3t/+Xl5f/Z2dn/7+/v///////9/v3/+vv6//r7+v/7+/v/+/v7//v7
+        +//6+/r/+vv6//z9/P//////+Pj4/9ra2v/j4+P/6+vr//Ly8v/4+Pj//v7+/4qKiv8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/CgoKegAAADIAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAGcICLr/BgaP/wcHkv8HB5X/BweX/wcH
+        m/8HB53/CAif/wgIoP8ICKP/CAik/wgIpf8ICKf/CQmn/wkJqP8JCaj/CQmp/wkJqv8JCav/CQmr/wkJ
+        rP8JCa3/CQmu/wkJrv8JCa//CQmw/wkJsP8JCbH/CQmy/woKs/8KCrP/Cgq0/woKtf8KCrb/Cwu3/wYG
+        cv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP++vr7//v7+//b29v/y8vL/7O3s/+Tk
+        5P/a29r/6Ojo//7+/v///////f39//z8/P/8/Pz//Pz8//z9/P///////////+/v7//a29r/4eLh/+rr
+        6v/x8vH/9fb1//7+/v/m5ub/BwcH/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BARB/wsL
+        t/8KCrb/Cgq1/woKtP8KCrP/Cgqz/wkJsv8JCbH/CQmw/wkJsP8JCa//CQmu/wkJrv8JCa3/CQms/wkJ
+        q/8JCav/CQmq/wkJqf8JCaj/CQmo/wkJp/8ICKb/CAil/wgIo/8ICKH/CAif/wcHnv8HB5v/BweZ/wcH
+        lf8HB5P/BgaQ/wgIuv8dHR16AAAAMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAwAAAAZwkJy/8HB5v/Bwee/wgIoP8ICKP/CAim/wgIp/8JCaj/CQmr/wkJrP8JCa7/CQmu/woK
+        sP8KCrD/Cgqx/woKsv8KCrL/Cgqz/woKs/8KCrT/Cgq1/woKtv8KCrb/Cgq3/woKt/8KCrj/Cgq5/wsL
+        uf8LC7r/Cwu7/wsLu/8LC7z/Cwu9/wsLvf8LC8T/CwvU/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/zAwMP/39/f//v7+//b29v/y8vL/7e3t/+Xl5f/d3d3/3t7e//X19f//////////////
+        //////////////r6+v/j4+P/29vb/+Pj4//r6+v/8fHx//b29v/9/f3//v7+/3Jycv8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8KCqn/CwvL/wsLvf8LC73/Cwu8/wsLu/8LC7v/Cwu6/wsL
+        uf8KCrn/Cgq4/woKt/8KCrf/Cgq2/woKtv8KCrX/Cgq0/woKs/8KCrP/Cgqy/woKsv8KCrH/Cgqw/woK
+        r/8JCa7/CQmt/wkJq/8JCar/CAin/wgIpv8ICKT/CAih/wgInv8HB5z/CQnL/ysrK3oAAAAyAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAABnCAiy/wYGif8HB4v/BweP/wcH
+        kv8HB5X/BweX/wgImv8ICJv/CAid/wgIn/8ICKD/CAih/wkJov8JCaP/CQmk/wkJpf8JCaX/CQmm/wkJ
+        pv8JCaf/CQmo/wkJqf8JCar/CQmq/wkJq/8JCaz/CQmt/wkJrf8JCa7/Cgqv/woKsP8KCrH/Cgqx/woK
+        s/8MDND/AgI7/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/42Njf/+/v7//f39//b3
+        9v/z9PP/7/Dv/+nq6f/j5OP/3d3d/93d3f/k5OT/5eXl/+Xm5f/e397/3Nzc/+Hi4f/o6Oj/7u7u//Ly
+        8v/29vb//P38//7+/v+8vLz/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAG/wwM
+        0v8KCrf/Cgqx/woKsf8KCrD/Cgqv/wkJrv8JCa3/CQmt/wkJrP8JCav/CQmq/wkJqv8JCan/CQmo/wkJ
+        p/8JCab/CQmm/wkJpf8JCaX/CQmk/wkJo/8JCaL/CAig/wgIoP8ICJ7/CAic/wgImv8HB5j/BweV/wcH
+        k/8HB5D/BweN/wYGif8ICLL/KioqewAAADIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAMAAAAGcICLP/BgaK/wcHjP8HB5D/BweT/wcHlv8HB5j/CAib/wgInP8ICJ7/CAig/wgI
+        of8ICKL/CQmj/wkJpP8JCaT/CQml/wkJpv8JCaf/CQmn/wkJqP8JCan/CQmp/wkJqv8JCav/CQms/wkJ
+        rP8JCa7/CQmu/wkJr/8KCrD/Cgqx/woKsf8KCrL/Cgqz/wwMwv8KCrD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/7S0tP/+/v7//v7+//j4+P/19vX/8fLx/+7v7v/q6+r/5ufm/+Tl
+        5P/j5OP/5OTk/+bm5v/p6un/7u7u//Dx8P/09fT/9/j3//39/f/+/v7/1tbW/w0NDf8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8GBnX/DAzK/woKtP8KCrL/Cgqx/woKsf8KCrD/CQmv/wkJ
+        rv8JCa7/CQms/wkJrP8JCav/CQmq/wkJqf8JCan/CQmo/wkJp/8JCaf/CQmm/wkJpf8JCaT/CQmk/wkJ
+        o/8ICKH/CAih/wgIn/8ICJ3/CAib/wcHmf8HB5b/BweU/wcHkf8HB47/BgaK/wgIs/8qKip7AAAAMgAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAZwgItv8GBoz/BweO/wcH
+        kf8HB5T/BweX/wcHmf8ICJv/CAid/wgIn/8ICKH/CAii/wgIo/8JCaT/CQmk/wkJpf8JCab/CQmm/wkJ
+        p/8JCaj/CQmp/wkJqf8JCar/CQmr/wkJrP8JCaz/CQmt/wkJrv8JCa//CQmv/woKsP8KCrH/Cgqy/woK
+        s/8KCrP/Cgq3/w4O1P8CAif/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/6ur
+        q//+/v7//v7+//r7+v/3+Pf/9vb2//P08//x8fH/7/Dv/+/v7//v8O//8PHw//Lz8v/19vX/9/j3//r6
+        +v/+/v7//v7+/8vLy/8SEhL/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wwM
+        z/8KCrz/Cgqz/woKs/8KCrL/Cgqx/woKsP8JCa//CQmv/wkJrv8JCa3/CQms/wkJrP8JCav/CQmq/wkJ
+        qf8JCan/CQmo/wkJp/8JCab/CQmm/wkJpf8JCaT/CQmk/wgIov8ICKL/CAig/wgInv8ICJz/BweZ/wcH
+        l/8HB5X/BweS/wcHj/8GBov/CAi2/yoqKnsAAAAyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAADAAAABnCQm3/wcHjf8HB4//CAiT/wgIlf8ICJn/CAia/wkJnP8JCZ7/CQmf/wkJ
+        ov8JCaP/CQmk/woKpf8KCqX/Cgqm/woKp/8KCqf/Cgqo/woKqf8KCqn/Cgqq/woKq/8KCqv/Cgqs/woK
+        rf8KCq7/Cgqu/wsLr/8LC7D/Cwux/wsLsf8LC7L/Cwuz/wsLtP8LC7X/DAzE/wsLt/8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/3Jycv/x8fH//v7+//7+/v/7/Pv/+fr5//j4
+        +P/3+Pf/9/j3//f49//4+Pj/+fr5//r6+v/+/v7//v7+//r6+v+tra3/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8GBm//DAzN/wsLtv8LC7T/Cwuz/wsLsv8LC7H/Cwux/wsL
+        sP8LC6//Cgqu/woKrv8KCq3/Cgqs/woKq/8KCqv/Cgqq/woKqf8KCqn/Cgqo/woKp/8KCqf/Cgqm/woK
+        pf8KCqX/CQmj/wkJo/8JCaH/CQme/wkJnf8ICJr/CAiZ/wgIlv8ICJP/CAiQ/wcHjP8JCbf/KioqewAA
+        ADIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAGcLC7j/CAiO/wgI
+        kP8JCZT/CQmW/wkJmf8JCZv/CQmd/woKn/8KCqD/Cgqj/woKo/8LC6X/Cwum/wsLpv8LC6f/Cwun/wsL
+        qP8LC6n/Cwup/wsLqv8LC6v/Cwus/wsLrP8LC63/Cwuu/wsLrv8MDK//DAyw/wwMsf8MDLH/DAyy/wwM
+        s/8MDLP/DAy0/wwMtf8MDLn/ERHU/wQET/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/xoaGv+urq7/9vb2///////+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7///////39
+        /f/CwsL/OTk5/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AgIZ/xER
+        1/8MDLz/DAy1/wwMtP8MDLP/DAyz/wwMsv8MDLH/DAyx/wwMsP8MDK//Cwuu/wsLrv8LC63/Cwus/wsL
+        rP8LC6v/Cwuq/wsLqf8LC6n/Cwuo/wsLp/8LC6f/Cwum/wsLpv8LC6T/Cgqj/woKov8KCp//CQme/wkJ
+        m/8JCZr/CQmW/wkJlP8ICJL/CAiN/wsLuP8rKyt7AAAAMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAwAAAAZwsLu/8ICJD/CAiS/wkJlv8JCZn/CQmb/wkJnv8JCZ//Cgqh/woK
+        o/8KCqX/Cgql/wsLp/8LC6f/Cwuo/wsLqP8LC6n/Cwuq/wsLqv8LC6v/Cwur/wsLrP8LC63/Cwuu/wsL
+        rv8LC6//Cwuw/wwMsf8MDLH/DAyy/wwMsv8MDLP/DAy0/wwMtf8MDLX/DAy2/wwMt/8MDMD/Dw/T/wAA
+        DP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8ICAj/dnZ2/7q6
+        uv/h4eH/4uLi///////p6en/4eHh/8nJyf+EhIT/ISEh/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8MDLn/Dw/G/wwMuP8MDLb/DAy1/wwMtf8MDLT/DAyz/wwM
+        sv8MDLL/DAyx/wwMsf8LC7D/Cwuv/wsLrv8LC67/Cwut/wsLrP8LC6v/Cwur/wsLqv8LC6r/Cwup/wsL
+        qP8LC6j/Cwun/wsLpv8KCqX/Cgqk/woKof8JCaD/CQme/wkJnP8JCZn/CQmW/wgIlP8ICJD/Cwu7/ysr
+        K3sAAAAyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAABnCwu+/wkJ
+        kv8JCZP/CQmW/woKmv8KCpz/Cgqe/woKoP8LC6P/Cwuk/wsLpv8LC6b/DAyn/wwMqP8MDKj/DAyp/wwM
+        qv8MDKv/DAyr/wwMrP8MDKz/DAyt/wwMrf8MDK7/DAyv/w0NsP8NDbD/DQ2x/w0Nsv8NDbP/DQ2z/w0N
+        tP8NDbT/DQ21/w0Ntv8NDbb/DQ23/w0NuP8QEMj/Dg65/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/CQmC/xIS
+        0v8NDbr/DQ23/w0Ntv8NDbb/DQ21/w0NtP8NDbT/DQ2z/w0Ns/8NDbL/DQ2x/w0NsP8NDbD/DAyv/wwM
+        rv8MDK3/DAyt/wwMrP8MDKz/DAyr/wwMq/8MDKr/DAyp/wwMqP8MDKj/DAym/wsLpv8LC6X/Cwuj/woK
+        of8KCp//Cgqc/woKmv8JCZj/CQmU/wkJkf8LC77/KysrewAAADIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAGcLC8D/CQmU/wkJlv8JCZj/Cgqc/woKnv8KCqD/Cgqi/wsL
+        pP8LC6b/Cwun/wsLqP8MDKn/DAyq/wwMqv8MDKv/DAyr/wwMrP8MDKz/DAyt/wwMrv8MDK//DAyv/wwM
+        sP8MDLD/DAyx/w0Nsv8NDbL/DQ2z/w0Ns/8NDbT/DQ21/w0Ntv8NDbb/DQ23/w0Nt/8NDbj/DQ25/w0N
+        u/8QENH/DAyh/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wcHXP8SEtf/DQ29/w0Nuf8NDbj/DQ23/w0Nt/8NDbb/DQ22/w0N
+        tf8NDbT/DQ2z/w0Ns/8NDbL/DQ2y/wwMsf8MDLD/DAyw/wwMr/8MDK//DAyu/wwMrf8MDKz/DAys/wwM
+        q/8MDKv/DAyq/wwMqv8MDKj/Cwuo/wsLpv8LC6X/Cgqi/woKof8KCp7/Cgqc/wkJmv8JCZb/CQmT/wsL
+        wP8rKyt7AAAAMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAZwsL
+        wP8JCZT/CQmW/wkJmP8KCpz/Cgqe/woKoP8KCqL/Cwuk/wsLpf8LC6f/Cwuo/wsLqf8MDKr/DAyq/wwM
+        q/8MDKv/DAys/wwMrP8MDK3/DAyt/wwMrv8MDK//DAyw/wwMsP8MDLH/DQ2x/w0Nsv8NDbP/DQ2z/w0N
+        tP8NDbX/DQ21/w0Ntv8NDbb/DQ23/w0NuP8NDbj/DQ25/w4Ovf8SEtT/DAyT/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8HB13/EhLZ/w4O
+        wP8NDbr/DQ24/w0NuP8NDbf/DQ22/w0Ntv8NDbX/DQ21/w0NtP8NDbP/DQ2z/w0Nsv8NDbH/DAyx/wwM
+        sP8MDLD/DAyv/wwMrv8MDK3/DAyt/wwMrP8MDKz/DAyr/wwMq/8MDKr/DAyq/wsLqP8LC6j/Cwum/wsL
+        pP8KCqL/Cgqh/woKnv8KCpz/CQma/wkJlv8JCZP/CwvA/ysrK3sAAAAyAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAABnCwvE/wkJlv8JCZj/CQmb/woKnf8KCqD/Cgqi/woK
+        o/8LC6b/Cwun/wsLqf8LC6n/Cwur/wwMq/8MDKz/DAys/wwMrf8MDK3/DAyu/wwMr/8MDK//DAyw/wwM
+        sP8MDLH/DAyx/wwMsv8MDLP/DQ2z/w0NtP8NDbX/DQ21/w0Ntv8NDbf/DQ23/w0NuP8NDbj/DQ25/w0N
+        uf8NDbr/DQ26/w4Ov/8REdP/Dg65/wAAB/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/CgqN/xQU2f8ODsH/DQ27/w0Nuv8NDbn/DQ25/w0NuP8NDbj/DQ23/w0N
+        t/8NDbb/DQ21/w0Ntf8NDbT/DQ2z/wwMs/8MDLL/DAyx/wwMsf8MDLD/DAyw/wwMr/8MDK//DAyu/wwM
+        rf8MDK3/DAys/wwMrP8MDKv/Cwuq/wsLqf8LC6j/Cwum/woKpP8KCqL/Cgqg/woKnv8JCZv/CQmZ/wkJ
+        lv8LC8T/LCwsewAAADIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAA
+        AGcMDMb/CgqY/woKmf8KCpz/Cwue/wsLof8LC6P/Cwuk/wwMp/8MDKj/DAyq/wwMqv8MDKv/DQ2s/w0N
+        rP8NDa3/DQ2t/w0Nrv8NDa7/DQ2v/w0NsP8NDbD/DQ2x/w0Nsv8NDbL/DQ2z/w4Os/8ODrT/Dg61/w4O
+        tf8ODrb/Dg62/w4Ot/8ODrf/Dg64/w4Ouf8ODrn/Dg66/w8Puv8PD7v/Dw+7/w8Pvv8REc7/ERHR/wIC
+        Kf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/w8Psf8UFNb/Dw/A/w8P
+        vP8PD7v/Dw+6/w4Ouv8ODrn/Dg65/w4OuP8ODrf/Dg63/w4Otv8ODrb/Dg61/w4Otf8ODrT/Dg6z/w0N
+        s/8NDbL/DQ2y/w0Nsf8NDbD/DQ2w/w0Nr/8NDa7/DQ2u/w0Nrf8NDa3/DQ2s/w0NrP8MDKr/DAyq/wwM
+        qf8MDKf/Cwul/wsLo/8LC6H/Cwuf/woKnP8KCpr/CgqX/wwMxv8sLCx7AAAAMgAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAZwwMx/8KCpn/Cgqa/woKnf8LC5//Cwui/wsL
+        pP8LC6X/DAyo/wwMqf8MDKr/DAyr/wwMrP8NDa3/DQ2t/w0Nrv8NDa7/DQ2v/w0Nr/8NDbD/DQ2w/w0N
+        sf8NDbH/DQ2y/w0Ns/8NDbP/Dg60/w4OtP8ODrX/Dg61/w4Otv8ODrf/Dg63/w4OuP8ODrn/Dg65/w4O
+        uv8ODrr/Dg67/w8Pu/8PD7z/Dw+8/w8Pvv8REcn/FBTY/wkJcP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wUFSP8REdP/ERHP/w8Pv/8PD7z/Dw+8/w8Pu/8ODrv/Dg66/w4Ouv8ODrn/Dg65/w4O
+        uP8ODrf/Dg63/w4Otv8ODrX/Dg61/w4OtP8ODrT/DQ2z/w0Ns/8NDbL/DQ2x/w0Nsf8NDbD/DQ2w/w0N
+        r/8NDa//DQ2u/w0Nrv8NDa3/DQ2t/wwMq/8MDKv/DAyp/wwMqP8LC6b/Cwuk/wsLov8LC6D/Cgqd/woK
+        m/8KCpj/DAzH/y0tLXwAAAAyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        ADAAAABnDAzL/woKm/8KCp3/Cgqf/wsLof8LC6P/Cwum/wsLp/8MDKn/DAyr/wwMrP8MDK3/DAyu/wwM
+        rv8NDa//DQ2v/w0NsP8NDbD/DQ2x/w0Nsf8NDbL/DQ2y/w0Ns/8NDbT/DQ20/w0Ntf8NDbX/Dg62/w4O
+        tv8ODrf/Dg64/w4OuP8ODrn/Dg65/w4Ouf8ODrr/Dg67/w4Ou/8ODrz/Dg68/w4OvP8PD73/Dw+9/w8P
+        vv8PD8T/FRXY/xERyP8FBVb/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wICKv8PD7P/FRXc/xERx/8PD7//Dw+9/w8P
+        vf8ODrz/Dg68/w4OvP8ODrv/Dg67/w4Ouv8ODrn/Dg65/w4Ouf8ODrj/Dg64/w4Ot/8ODrb/Dg62/w0N
+        tf8NDbX/DQ20/w0NtP8NDbP/DQ2y/w0Nsv8NDbH/DQ2x/w0NsP8NDbD/DQ2v/w0Nr/8MDK7/DAyt/wwM
+        rf8MDKv/DAyq/wsLp/8LC6b/Cwul/wsLof8KCp//Cgqd/woKm/8MDMv/LS0tfAAAADIAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAGcNDcv/Cgqb/wsLnf8LC5//DAyh/wwM
+        o/8MDKb/DAyn/wwMqf8NDav/DQ2s/w0NrP8NDa7/Dg6u/w4Or/8ODq//Dg6w/w4OsP8ODrH/Dg6x/w4O
+        sv8ODrL/Dg6z/w4Os/8ODrT/Dg60/w8Ptf8PD7b/Dw+2/w8Pt/8PD7f/Dw+4/w8PuP8PD7n/Dw+5/w8P
+        uv8PD7r/Dw+7/w8Pu/8QELv/EBC8/xAQvP8QEL3/EBC9/xAQvv8QEMD/EhLJ/xUV2/8TE8//Cgp9/wAA
+        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wUF
+        X/8QELz/FRXd/xISzf8QEML/EBC//xAQvf8QEL3/EBC8/xAQvP8QELv/Dw+7/w8Pu/8PD7r/Dw+6/w8P
+        uf8PD7n/Dw+4/w8PuP8PD7f/Dw+3/w8Ptv8PD7b/Dw+1/w4OtP8ODrT/Dg6z/w4Os/8ODrL/Dg6y/w4O
+        sf8ODrH/Dg6w/w4OsP8ODq//Dg6v/w4Orv8NDa3/DQ2s/w0Nq/8MDKr/DAyn/wwMpv8MDKX/DAyh/wsL
+        n/8LC53/Cgqb/w0Ny/8tLS18AAAAMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAwAAAAZw0Nzv8KCp7/Cwuf/wsLof8MDKT/DAym/wwMqP8MDKr/DAyr/w0NrP8NDa7/DQ2u/w0N
+        sP8NDbD/Dg6x/w4Osf8ODrH/Dg6y/w4Osv8ODrL/Dg6z/w4OtP8ODrT/Dg61/w4Otf8ODrb/Dg62/w8P
+        t/8PD7f/Dw+4/w8PuP8PD7n/Dw+5/w8Puv8PD7r/Dw+7/w8Pu/8PD7z/Dw+8/w8Pvf8QEL3/EBC9/xAQ
+        vv8QEL7/EBC//xAQv/8QEL//EBDB/xISyf8SEtX/FRXd/xMTyf8ODpf/BQVh/wAAAP8AAAD/AAAA/wAA
+        AP8AAAD/AAAA/wAAAP8FBVH/CgqC/xAQuP8VFd3/FRXZ/xISy/8QEMP/EBDA/xAQv/8QEL//EBC+/xAQ
+        vv8QEL3/EBC9/w8Pvf8PD7z/Dw+8/w8Pu/8PD7v/Dw+6/w8Puv8PD7n/Dw+5/w8PuP8PD7j/Dw+3/w8P
+        t/8ODrb/Dg62/w4Otf8ODrX/Dg60/w4OtP8ODrP/Dg6y/w4Osv8ODrL/Dg6x/w4Osf8ODrH/DQ2w/w0N
+        r/8NDa7/DQ2t/wwMq/8MDKr/DAyo/wwMp/8MDKT/Cwui/wsLn/8KCp3/DQ3O/y0tLXwAAAAyAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAABnDQ3P/woKn/8LC6D/Cwuj/wwM
+        pf8MDKf/DAyo/wwMq/8MDKz/DQ2t/w0Nr/8NDa//DQ2w/w0Nsf8ODrH/Dg6x/w4Osv8ODrL/Dg6z/w4O
+        s/8ODrT/Dg60/w4Otf8ODrX/Dg62/w4Otv8ODrf/Dg63/w8PuP8PD7j/Dw+5/w8Puf8PD7r/Dw+6/w8P
+        u/8PD7v/Dw+8/w8PvP8PD73/Dw+9/w8Pvf8PD77/EBC+/xAQv/8QEL//EBC//xAQv/8QEMD/EBDA/xAQ
+        wf8QEMT/EhLL/xIS0v8WFtr/Fhbi/xYW3P8TE9b/ExPX/xMT1/8TE9X/Fhbk/xYW3P8SEtX/EhLN/xAQ
+        xv8QEMH/EBDA/xAQwP8QEL//EBC//xAQv/8QEL//EBC+/w8Pvv8PD73/Dw+9/w8Pvf8PD7z/Dw+8/w8P
+        u/8PD7v/Dw+6/w8Puv8PD7n/Dw+5/w8PuP8PD7j/Dg63/w4Ot/8ODrb/Dg62/w4Otf8ODrX/Dg60/w4O
+        tP8ODrP/Dg6z/w4Osv8ODrL/Dg6x/w4Osf8NDbH/DQ2v/w0Nr/8NDa7/DAys/wwMq/8MDKn/DAyn/wwM
+        pf8LC6P/Cwuh/woKnv8NDc//LS0tfAAAADIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAMAAAAGcPD9D/Cwug/wwMov8MDKT/DAym/w0NqP8NDan/DQ2s/w0Nrf8ODq7/Dg6v/w4O
+        sP8ODrH/Dg6y/w4Osv8PD7L/Dw+z/w8Ps/8PD7P/Dw+0/w8PtP8PD7X/Dw+1/w8Ptv8PD7b/Dw+3/w8P
+        t/8QELj/EBC4/xAQuf8QELn/EBC6/xAQuv8QELv/EBC7/xAQvP8QELz/EBC8/xAQvf8QEL3/ERG9/xER
+        vv8REb7/ERG//xERv/8REb//ERHA/xERwP8REcD/ERHA/xERwf8REcH/ERHB/xERwf8REcL/ERHE/xER
+        x/8REcf/ERHH/xERxv8REcP/ERHB/xERwf8REcH/ERHB/xERwP8REcD/ERHA/xERwP8REb//ERG//xER
+        v/8REb7/ERG+/xERvf8QEL3/EBC9/xAQvP8QELz/EBC8/xAQu/8QELv/EBC6/xAQuv8QELn/EBC5/xAQ
+        uP8QELj/Dw+3/w8Pt/8PD7b/Dw+2/w8Ptf8PD7X/Dw+0/w8PtP8PD7P/Dw+z/w8Ps/8PD7L/Dg6y/w4O
+        sv8ODrD/Dg6w/w4Orv8NDa3/DQ2s/w0Nqv8NDaj/DAym/wwMpP8MDKL/Cwuf/w8P0P8uLy58AAAAMgAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAZw8P1P8LC6L/DAyk/wwM
+        pv8MDKj/DQ2q/w0Nq/8NDa3/DQ2v/w4OsP8ODrH/Dg6y/w4Os/8ODrP/Dg6z/w8PtP8PD7T/Dw+1/w8P
+        tf8PD7b/Dw+2/w8Pt/8PD7f/Dw+3/w8PuP8PD7j/Dw+5/w8Puf8QELr/EBC6/xAQuv8QELv/EBC7/xAQ
+        vP8QELz/EBC9/xAQvf8QEL7/EBC+/xAQvv8QEL//ERG//xERv/8REcD/ERHA/xERwP8REcH/ERHB/xER
+        wf8REcH/ERHC/xERwv8REcL/ERHC/xERwv8REcL/ERHC/xERwv8REcL/ERHC/xERwv8REcL/ERHC/xER
+        wv8REcL/ERHB/xERwf8REcH/ERHB/xERwP8REcD/ERHA/xERv/8REb//EBC//xAQvv8QEL7/EBC+/xAQ
+        vf8QEL3/EBC8/xAQvP8QELv/EBC7/xAQuv8QELr/EBC6/w8Puf8PD7n/Dw+4/w8PuP8PD7f/Dw+3/w8P
+        t/8PD7b/Dw+2/w8Ptf8PD7X/Dw+0/w8PtP8ODrP/Dg6z/w4Osv8ODrL/Dg6w/w0Nr/8NDa7/DQ2r/w0N
+        qv8MDKj/DAym/wwMpP8LC6L/Dw/U/y4vLnwAAAAyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAADAAAABnDw/X/wsLpf8MDKb/DAyo/wwMqv8NDaz/DQ2u/w0Nr/8NDbH/Dg6y/w4O
+        s/8ODrP/Dg60/w4Otf8ODrX/Dg62/w8Ptv8PD7b/Dw+3/w8Pt/8PD7f/Dw+4/w8PuP8PD7n/Dw+5/w8P
+        uv8PD7r/Dw+6/w8Pu/8QELz/EBC8/xAQvP8QEL3/EBC9/xAQvf8QEL7/EBC+/xAQv/8QEL//EBDA/xAQ
+        wP8QEMD/EBDA/xERwf8REcH/ERHB/xERwv8REcL/ERHC/xERwv8REcL/ERHC/xERw/8REcP/ERHD/xER
+        w/8REcP/ERHD/xERw/8REcP/ERHD/xERw/8REcP/ERHC/xERwv8REcL/ERHC/xERwv8REcL/ERHB/xER
+        wf8REcH/EBDA/xAQwP8QEMD/EBDA/xAQv/8QEL//EBC+/xAQvv8QEL3/EBC9/xAQvf8QELz/EBC8/xAQ
+        vP8PD7v/Dw+6/w8Puv8PD7r/Dw+5/w8Puf8PD7j/Dw+4/w8Pt/8PD7f/Dw+3/w8Ptv8PD7b/Dg62/w4O
+        tf8ODrX/Dg6z/w4Os/8ODrL/DQ2x/w0NsP8NDa7/DQ2s/wwMqv8MDKn/DAym/wsLpP8PD9f/Li8ufAAA
+        ADIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAGcQENf/DAyl/wwM
+        pv8NDaj/DQ2q/w4OrP8ODq7/Dg6v/w4OsP8PD7L/Dw+z/w8Ps/8PD7T/Dw+1/w8Ptf8PD7X/EBC2/xAQ
+        tv8QELf/EBC3/xAQt/8QELj/EBC4/xAQuf8QELn/EBC5/xAQuv8QELr/EBC6/xERu/8REbz/ERG8/xER
+        vP8REb3/ERG9/xERvf8REb7/ERG+/xERv/8REb//ERG//xERwP8SEsD/EhLA/xISwP8SEsH/EhLB/xIS
+        wf8SEsL/EhLC/xISwv8SEsL/EhLC/xISwv8SEsL/EhLC/xISwv8SEsL/EhLC/xISwv8SEsL/EhLC/xIS
+        wv8SEsL/EhLC/xISwv8SEsL/EhLB/xISwf8SEsH/EhLA/xISwP8SEsD/ERHA/xERv/8REb//ERG//xER
+        vv8REb7/ERG9/xERvf8REb3/ERG8/xERvP8REbz/ERG7/xAQuv8QELr/EBC6/xAQuf8QELn/EBC5/xAQ
+        uP8QELj/EBC3/xAQt/8QELf/EBC2/xAQtv8PD7X/Dw+1/w8Ptf8PD7P/Dw+z/w8Psv8ODrH/Dg6v/w4O
+        rv8ODqz/DQ2q/w0Nqf8NDab/DAyk/xAQ1/8vLy98AAAAMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAwAAAAZxAQ2/8MDKf/DAyp/w0Nq/8NDa3/Dg6u/w4OsP8ODrH/Dg6y/w8P
+        s/8PD7X/Dw+1/w8Ptv8PD7b/Dw+3/w8Pt/8PD7f/EBC4/xAQuP8QELj/EBC5/xAQuf8QELr/EBC6/xAQ
+        u/8QELv/EBC7/xAQvP8QELz/EBC8/xERvf8REb3/ERG+/xERvv8REb7/ERG//xERv/8REb//ERHA/xER
+        wP8REcH/ERHB/xERwf8SEsH/EhLB/xISwv8SEsL/EhLC/xISwv8SEsP/EhLD/xISw/8SEsP/EhLD/xIS
+        w/8SEsP/EhLD/xISw/8SEsP/EhLD/xISw/8SEsP/EhLD/xISw/8SEsP/EhLD/xISwv8SEsL/EhLC/xIS
+        wv8SEsH/EhLB/xERwf8REcH/ERHB/xERwP8REcD/ERG//xERv/8REb//ERG+/xERvv8REb7/ERG9/xER
+        vf8QELz/EBC8/xAQvP8QELv/EBC7/xAQu/8QELr/EBC6/xAQuf8QELn/EBC4/xAQuP8QELj/Dw+3/w8P
+        t/8PD7f/Dw+2/w8Ptf8PD7X/Dw+0/w4Osv8ODrH/Dg6w/w4Orv8NDa3/DQ2r/wwMqf8MDKb/EBDb/zAw
+        MHwAAAAyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAABnEBDc/wwM
+        qP8MDKr/DQ2s/w0Nrv8ODq//Dg6x/w4Osv8ODrP/Dw+0/w8Ptv8PD7b/Dw+3/w8Pt/8PD7f/Dw+4/w8P
+        uP8QELn/EBC5/xAQuf8QELr/EBC6/xAQuv8QELv/EBC7/xAQu/8QELz/EBC8/xAQvf8QEL3/EBC9/xER
+        vv8REb7/ERG+/xERv/8REb//ERG//xERwP8REcD/ERHB/xERwf8REcH/ERHB/xERwv8REcL/ERHC/xIS
+        wv8SEsP/EhLD/xISw/8SEsP/EhLD/xISw/8SEsP/EhLD/xISw/8SEsT/EhLE/xISxP8SEsP/EhLD/xIS
+        w/8SEsP/EhLD/xISw/8SEsP/EhLD/xISw/8SEsL/ERHC/xERwv8REcL/ERHB/xERwf8REcH/ERHB/xER
+        wP8REcD/ERG//xERv/8REb//ERG+/xERvv8REb7/EBC9/xAQvf8QEL3/EBC8/xAQvP8QELv/EBC7/xAQ
+        u/8QELr/EBC6/xAQuv8QELn/EBC5/xAQuf8PD7j/Dw+4/w8Pt/8PD7f/Dw+2/w8Ptv8PD7X/Dg6z/w4O
+        sv8ODrH/Dg6v/w0Nrv8NDaz/DAyq/wwMqP8QENz/MDAwfAAAADIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAGcQEN7/DAyq/wwMq/8NDa3/DQ2v/w4OsP8ODrL/Dg6z/w4O
+        tP8PD7X/Dw+2/w8Pt/8PD7j/Dw+4/w8PuP8PD7n/Dw+5/w8Puf8QELr/EBC6/xAQuv8QELv/EBC7/xAQ
+        u/8QELz/EBC8/xAQvP8QEL3/EBC9/xAQvf8QEL7/EBC+/xERv/8REb//ERG//xERv/8REcD/ERHA/xER
+        wf8REcH/ERHB/xERwf8REcL/ERHC/xERwv8REcL/ERHD/xERw/8SEsP/EhLD/xISw/8SEsP/EhLE/xIS
+        xP8SEsT/EhLE/xISxP8SEsT/EhLE/xISxP8SEsT/EhLE/xISxP8SEsP/EhLD/xISw/8SEsP/ERHD/xER
+        w/8REcL/ERHC/xERwv8REcL/ERHB/xERwf8REcH/ERHB/xERwP8REcD/ERG//xERv/8REb//ERG//xAQ
+        vv8QEL7/EBC9/xAQvf8QEL3/EBC8/xAQvP8QELz/EBC7/xAQu/8QELv/EBC6/xAQuv8QELr/Dw+5/w8P
+        uf8PD7n/Dw+4/w8PuP8PD7f/Dw+3/w8Ptf8ODrT/Dg6z/w4Osv8ODrH/DQ2v/w0Nrf8MDKv/DAyp/xAQ
+        3v8wMDB8AAAAMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAZxAQ
+        4v8MDKz/DAyt/w0Nr/8NDbH/Dg6y/w4OtP8ODrX/Dg62/w8Pt/8PD7j/Dw+5/w8Puv8PD7r/Dw+6/w8P
+        uv8PD7v/Dw+7/w8Pu/8QELz/EBC8/xAQvP8QEL3/EBC9/xAQvf8QEL3/EBC+/xAQvv8QEL7/EBC//xAQ
+        v/8QEMD/EBDA/xERwP8REcD/ERHB/xERwf8REcL/ERHC/xERwv8REcL/ERHD/xERw/8REcP/ERHD/xER
+        w/8REcT/ERHE/xERxP8REcT/ERHE/xERxf8REcX/EhLF/xISxf8SEsX/EhLF/xISxf8SEsX/EhLF/xIS
+        xf8SEsX/ERHF/xERxf8REcT/ERHE/xERxP8REcT/ERHE/xERw/8REcP/ERHD/xERw/8REcP/ERHC/xER
+        wv8REcL/ERHC/xERwf8REcH/ERHA/xERwP8QEMD/EBDA/xAQv/8QEL//EBC+/xAQvv8QEL7/EBC9/xAQ
+        vf8QEL3/EBC9/xAQvP8QELz/EBC8/w8Pu/8PD7v/Dw+7/w8Puv8PD7r/Dw+6/w8Puf8PD7n/Dw+3/w4O
+        tv8ODrX/Dg60/w4Os/8NDbH/DQ2v/wwMrf8MDKv/EBDi/zExMX0AAAAyAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAABnEBDk/w0Nrv8NDbD/Dg6x/w4Os/8ODrX/Dw+2/w8P
+        t/8PD7j/EBC5/xAQuv8QELr/EBC8/xAQvP8QELz/EBC8/xAQvP8QEL3/EBC9/xERvf8REb7/ERG+/xER
+        vv8REb7/ERG//xERv/8REb//ERHA/xERwP8REcD/ERHB/xERwf8SEsH/EhLC/xISwv8SEsL/EhLC/xIS
+        w/8SEsP/EhLD/xISxP8SEsT/EhLE/xISxP8SEsX/EhLF/xISxf8SEsX/EhLF/xISxf8TE8b/ExPG/xMT
+        xv8TE8b/ExPG/xMTxv8TE8b/ExPG/xMTxv8TE8b/ExPG/xMTxv8TE8b/ExPG/xMTxv8SEsX/EhLF/xIS
+        xf8SEsX/EhLF/xISxf8SEsT/EhLE/xISxP8SEsT/EhLD/xISw/8SEsP/EhLC/xISwv8SEsL/EhLC/xIS
+        wf8REcH/ERHB/xERwP8REcD/ERHA/xERv/8REb//ERG//xERvv8REb7/ERG+/xERvv8REb3/EBC9/xAQ
+        vf8QELz/EBC8/xAQvP8QELz/EBC7/xAQuv8QELn/Dw+4/w8Pt/8PD7b/Dg61/w4Os/8ODrH/DQ2w/w0N
+        rf8QEOT/MTExfQAAADIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAA
+        AGcUFOb/Dw+w/xAQsP8QELP/ERG0/xERtv8SErf/EhK4/xISuf8SErr/ExO7/xMTu/8TE7z/ExO9/xMT
+        vf8TE73/ExO9/xMTvf8TE77/FBS+/xQUvv8UFL//FBS//xQUv/8UFL//FBTA/xQUwP8UFMD/FBTA/xQU
+        wf8UFMH/FRXC/xUVwv8VFcL/FRXC/xUVw/8VFcP/FRXD/xUVxP8VFcT/FRXE/xUVxP8VFcT/FRXF/xYW
+        xf8WFsX/FhbF/xYWxf8WFsb/FhbG/xYWxv8WFsb/FhbG/xYWxv8WFsb/FhbG/xYWxv8WFsb/FhbG/xYW
+        xv8WFsb/FhbG/xYWxv8WFsb/FhbG/xYWxv8WFsb/FhbF/xYWxf8WFsX/FhbF/xUVxf8VFcT/FRXE/xUV
+        xP8VFcT/FRXE/xUVw/8VFcP/FRXD/xUVwv8VFcL/FRXC/xUVwv8UFMH/FBTB/xQUwP8UFMD/FBTA/xQU
+        wP8UFL//FBS//xQUv/8UFL//FBS+/xQUvv8TE77/ExO9/xMTvf8TE73/ExO9/xMTvf8TE7v/ExO7/xIS
+        uv8SErn/EhK4/xISt/8REbb/ERG0/xAQs/8QELH/Dw+v/xQU5v8xMTF9AAAAMgAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAZxQU5v8PD6//EBCw/xAQsv8REbT/ERG2/xIS
+        t/8SErj/EhK5/xISuv8TE7v/ExO7/xMTvP8TE7z/ExO9/xMTvf8TE73/ExO9/xMTvv8TE77/FBS+/xQU
+        vv8UFL//FBS//xQUv/8UFL//FBTA/xQUwP8UFMD/FBTA/xQUwf8UFMH/FRXC/xUVwv8VFcL/FRXC/xUV
+        w/8VFcP/FRXD/xUVw/8VFcT/FRXE/xUVxP8VFcT/FRXE/xUVxf8VFcX/FhbF/xYWxf8WFsX/FhbF/xYW
+        xf8WFsX/FhbG/xYWxv8WFsb/FhbG/xYWxv8WFsb/FhbG/xYWxv8WFsb/FhbF/xYWxf8WFsX/FhbF/xYW
+        xf8WFsX/FRXF/xUVxf8VFcT/FRXE/xUVxP8VFcT/FRXE/xUVw/8VFcP/FRXD/xUVw/8VFcL/FRXC/xUV
+        wv8VFcL/FBTB/xQUwf8UFMD/FBTA/xQUwP8UFMD/FBS//xQUv/8UFL//FBS//xQUvv8UFL7/ExO+/xMT
+        vv8TE73/ExO9/xMTvf8TE73/ExO8/xMTu/8TE7v/EhK6/xISuf8SErj/EhK3/xERtv8REbT/EBCz/xAQ
+        sP8PD6//FBTm/zIyMn0AAAAxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        ADAAAABlFBTo/xAQsv8QELP/ERG1/xIStv8SErj/ExO5/xMTuv8TE7v/ExO8/xQUvf8UFL3/FBS+/xQU
+        vv8UFL//FBS//xQUv/8UFL//FBS//xQUwP8VFcD/FRXA/xUVwP8VFcH/FRXB/xUVwf8VFcH/FRXC/xUV
+        wv8VFcL/FRXC/xUVw/8VFcP/FhbD/xYWw/8WFsT/FhbE/xYWxP8WFsT/FhbF/xYWxf8WFsX/FhbF/xYW
+        xf8WFsb/FhbG/xYWxv8XF8b/FxfG/xcXxv8XF8b/FxfH/xcXx/8XF8f/FxfH/xcXx/8XF8f/FxfH/xcX
+        x/8XF8f/FxfH/xcXx/8XF8f/FxfH/xcXxv8XF8b/FxfG/xcXxv8WFsb/FhbG/xYWxv8WFsX/FhbF/xYW
+        xf8WFsX/FhbF/xYWxP8WFsT/FhbE/xYWxP8WFsP/FhbD/xUVw/8VFcP/FRXC/xUVwv8VFcL/FRXC/xUV
+        wf8VFcH/FRXB/xUVwf8VFcD/FRXA/xUVwP8UFMD/FBS//xQUv/8UFL//FBS//xQUv/8UFL7/FBS9/xQU
+        vf8TE7z/ExO7/xMTuv8TE7n/EhK4/xIStv8REbX/ERGz/xAQsf8UFOr/MjIyewAAADEAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALwAAAGQUFOr/EBCz/xAQtP8REbX/EhK3/xIS
+        uf8SErr/ExO7/xMTvP8TE73/FBS+/xQUvv8UFL//FBS//xQUv/8UFMD/FBTA/xQUwP8UFMD/FBTA/xQU
+        wf8VFcH/FRXB/xUVwf8VFcL/FRXC/xUVwv8VFcL/FRXD/xUVw/8VFcP/FRXD/xUVxP8VFcT/FhbE/xYW
+        xP8WFsX/FhbF/xYWxf8WFsX/FhbF/xYWxv8WFsb/FhbG/xYWxv8WFsb/FhbG/xYWx/8WFsf/FhbH/xcX
+        x/8XF8f/FxfH/xcXx/8XF8f/FxfH/xcXx/8XF8f/FxfH/xcXx/8XF8f/FxfH/xcXx/8XF8f/FxfH/xYW
+        x/8WFsf/FhbH/xYWxv8WFsb/FhbG/xYWxv8WFsb/FhbG/xYWxf8WFsX/FhbF/xYWxf8WFsX/FhbE/xYW
+        xP8VFcT/FRXE/xUVw/8VFcP/FRXD/xUVw/8VFcL/FRXC/xUVwv8VFcL/FRXB/xUVwf8VFcH/FBTB/xQU
+        wP8UFMD/FBTA/xQUwP8UFMD/FBS//xQUv/8UFL7/FBS+/xMTvf8TE7z/ExO7/xISuv8SErn/EhK3/xER
+        tf8QELT/EBCy/xQU6/8yMjJ7AAAAMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAtAAAAYhUV7v8REbX/EBC2/xERuP8REbn/EhK7/xISvP8TE73/ExO+/xMTv/8UFMD/FBTA/xQU
+        wf8UFMH/FBTB/xQUwf8UFMH/FBTB/xQUwv8UFML/FBTC/xQUwv8VFcP/FRXD/xUVw/8VFcP/FRXE/xUV
+        xP8VFcT/FRXE/xUVxP8VFcX/FRXF/xUVxf8VFcX/FRXG/xYWxv8WFsb/FhbG/xYWx/8WFsf/FhbH/xYW
+        x/8WFsf/FhbH/xYWyP8WFsj/FhbI/xYWyP8WFsj/FhbI/xYWyP8WFsj/FhbI/xYWyP8WFsn/FhbJ/xYW
+        yf8WFsn/FhbJ/xYWyP8WFsj/FhbI/xYWyP8WFsj/FhbI/xYWyP8WFsj/FhbI/xYWyP8WFsf/FhbH/xYW
+        x/8WFsf/FhbH/xYWx/8WFsb/FhbG/xYWxv8VFcb/FRXF/xUVxf8VFcX/FRXF/xUVxP8VFcT/FRXE/xUV
+        xP8VFcT/FRXD/xUVw/8VFcP/FRXD/xQUwv8UFML/FBTC/xQUwv8UFMH/FBTB/xQUwf8UFMH/FBTB/xQU
+        wP8UFMD/ExO//xMTvv8TE73/EhK8/xISu/8REbn/ERG4/xAQtv8QELT/Fhbu/zQ0NHkAAAAuAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACoAAABeGBjp/hMTuf8QELb/ERG3/xER
+        uf8SErr/EhK8/xMTvf8TE77/ExO//xQUwP8UFMD/FBTB/xQUwf8UFMH/FBTB/xQUwf8UFMH/FBTB/xQU
+        wv8UFML/FBTC/xQUwv8UFML/FRXD/xUVw/8VFcP/FRXD/xUVxP8VFcT/FRXE/xUVxP8VFcX/FRXF/xUV
+        xf8VFcX/FRXG/xUVxv8WFsb/FhbG/xYWxv8WFsb/FhbH/xYWx/8WFsf/FhbH/xYWx/8WFsf/FhbI/xYW
+        yP8WFsj/FhbI/xYWyP8WFsj/FhbI/xYWyP8WFsj/FhbI/xYWyP8WFsj/FhbI/xYWyP8WFsj/FhbI/xYW
+        yP8WFsj/FhbI/xYWx/8WFsf/FhbH/xYWx/8WFsf/FhbH/xYWxv8WFsb/FhbG/xYWxv8VFcb/FRXG/xUV
+        xf8VFcX/FRXF/xUVxf8VFcT/FRXE/xUVxP8VFcT/FRXD/xUVw/8VFcP/FRXD/xQUwv8UFML/FBTC/xQU
+        wv8UFML/FBTB/xQUwf8UFMH/FBTB/xQUwf8UFMH/FBTA/xQUwP8TE7//ExO+/xMTvf8SErz/EhK6/xER
+        uf8REbj/EBC2/xIStv8YGO7/AAAAXwAAACwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAJgAAAFchIeT+FxfB/xERuP8SErn/EhK7/xMTvP8TE77/FBS//xQUwP8UFMH/FRXC/xUV
+        wv8VFcP/FRXD/xUVw/8VFcP/FRXD/xUVw/8VFcP/FRXD/xUVxP8VFcT/FRXE/xUVxP8VFcT/FhbF/xYW
+        xf8WFsX/FhbF/xYWxv8WFsb/FhbG/xYWxv8WFsb/FhbH/xYWx/8WFsf/FhbH/xcXx/8XF8f/FxfI/xcX
+        yP8XF8j/FxfI/xcXyP8XF8j/FxfJ/xcXyf8XF8n/FxfJ/xcXyf8XF8n/FxfJ/xcXyf8XF8n/FxfJ/xcX
+        yf8XF8n/FxfJ/xcXyf8XF8n/FxfJ/xcXyf8XF8n/FxfJ/xcXyf8XF8n/FxfJ/xcXyf8XF8j/FxfI/xcX
+        yP8XF8j/FxfI/xcXyP8XF8f/FxfH/xYWx/8WFsf/FhbH/xYWx/8WFsb/FhbG/xYWxv8WFsb/FhbG/xYW
+        xf8WFsX/FhbF/xYWxf8VFcT/FRXE/xUVxP8VFcT/FRXE/xUVw/8VFcP/FRXD/xUVw/8VFcP/FRXD/xUV
+        w/8VFcL/FRXC/xQUwf8UFMD/FBS//xMTvv8TE7z/EhK7/xISuf8REbj/GBi//x0d6P4AAABYAAAAJwAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAATioq2PscHM7/ERG4/xER
+        uv8SErz/ExO9/xMTvv8UFMD/FBTB/xQUwv8UFML/FRXD/xUVw/8VFcT/FRXE/xUVxP8VFcT/FRXE/xUV
+        xP8VFcT/FRXE/xUVxf8VFcX/FRXF/xUVxf8VFcX/FhbG/xYWxv8WFsb/FhbG/xYWx/8WFsf/FhbH/xYW
+        x/8WFsf/FhbH/xYWyP8WFsj/FhbI/xYWyP8WFsj/FxfI/xcXyf8XF8n/FxfJ/xcXyf8XF8n/FxfJ/xcX
+        yf8XF8n/FxfK/xcXyv8XF8r/FxfK/xcXyv8XF8r/FxfK/xcXyv8XF8r/FxfK/xcXyv8XF8r/FxfK/xcX
+        yv8XF8r/FxfJ/xcXyf8XF8n/FxfJ/xcXyf8XF8n/FxfJ/xcXyf8XF8j/FhbI/xYWyP8WFsj/FhbI/xYW
+        yP8WFsf/FhbH/xYWx/8WFsf/FhbH/xYWx/8WFsb/FhbG/xYWxv8WFsb/FRXF/xUVxf8VFcX/FRXF/xUV
+        xf8VFcT/FRXE/xUVxP8VFcT/FRXE/xUVxP8VFcT/FRXD/xUVw/8UFML/FBTC/xQUwf8UFMD/ExO//xMT
+        vf8SErz/EhK6/xERuP8bG8v/JibZ+wAAAE8AAAAhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAABoAAABCODjG8SEh4v8REbr/ERG8/xISvv8SEr//ExPA/xMTwv8UFMP/FBTE/xQU
+        xP8VFcX/FRXF/xUVxv8VFcb/FRXG/xUVxv8VFcb/FRXG/xUVxv8VFcb/FRXG/xUVx/8VFcf/FRXH/xUV
+        x/8VFcf/FhbI/xYWyP8WFsj/FhbI/xYWyP8WFsj/FhbJ/xYWyf8WFsn/FhbJ/xYWyf8WFsr/FhbK/xYW
+        yv8WFsr/FhbK/xcXyv8XF8r/FxfK/xcXyv8XF8v/FxfL/xcXy/8XF8v/FxfL/xcXy/8XF8v/FxfL/xcX
+        y/8XF8v/FxfL/xcXy/8XF8v/FxfL/xcXy/8XF8v/FxfL/xcXy/8XF8v/FxfL/xcXy/8XF8r/FxfK/xcX
+        yv8XF8r/FhbK/xYWyv8WFsr/FhbK/xYWyv8WFsn/FhbJ/xYWyf8WFsn/FhbJ/xYWyP8WFsj/FhbI/xYW
+        yP8WFsj/FhbI/xUVx/8VFcf/FRXH/xUVx/8VFcf/FRXG/xUVxv8VFcb/FRXG/xUVxv8VFcb/FRXG/xUV
+        xv8VFcX/FRXF/xQUxP8UFMT/FBTD/xMTwv8TE8D/EhK//xISvv8REbz/ERG6/yEh3f80NMn1AAAAQwAA
+        ABoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAAADVAQKTVKSn3/xER
+        uv8SErv/ExO9/xMTv/8UFMD/FBTB/xUVwv8VFcP/FRXE/xUVxf8WFsX/FhbF/xYWxv8WFsb/FhbG/xYW
+        xv8WFsb/FhbG/xYWxv8WFsb/FhbG/xYWx/8WFsf/FhbH/xYWx/8XF8f/FxfH/xcXyP8XF8j/FxfI/xcX
+        yP8XF8j/FxfI/xcXyf8XF8n/FxfJ/xcXyf8XF8n/FxfJ/xcXyv8XF8r/FxfK/xcXyv8YGMr/GBjK/xgY
+        yv8YGMr/GBjK/xgYyv8YGMr/GBjL/xgYy/8YGMv/GBjL/xgYy/8YGMv/GBjL/xgYy/8YGMv/GBjL/xgY
+        y/8YGMr/GBjK/xgYyv8YGMr/GBjK/xgYyv8YGMr/FxfK/xcXyv8XF8r/FxfK/xcXyf8XF8n/FxfJ/xcX
+        yf8XF8n/FxfJ/xcXyP8XF8j/FxfI/xcXyP8XF8j/FxfI/xcXx/8XF8f/FhbH/xYWx/8WFsf/FhbH/xYW
+        xv8WFsb/FhbG/xYWxv8WFsb/FhbG/xYWxv8WFsb/FhbF/xYWxf8VFcX/FRXE/xUVw/8VFcL/FBTB/xQU
+        wP8TE7//ExO9/xISu/8REbr/KCj3/z09ptoAAAA3AAAAEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAMAAAAKDg4b5MsLPn/GBi+/xISvf8TE7//FBTA/xQUwv8VFcP/FRXE/xYW
+        xf8WFsb/FhbG/xcXx/8XF8f/FxfI/xcXyP8XF8j/FxfI/xcXyP8XF8j/FxfI/xcXyP8XF8j/FxfI/xcX
+        yf8XF8n/FxfJ/xcXyf8XF8n/GBjJ/xgYyv8YGMr/GBjK/xgYyv8YGMr/GBjK/xgYyv8YGMv/GBjL/xgY
+        y/8YGMv/GBjL/xgYy/8YGMv/GBjL/xgYy/8ZGcz/GRnM/xkZzP8ZGcz/GRnM/xkZzP8ZGcz/GRnM/xkZ
+        zP8ZGcz/GRnM/xkZzP8ZGcz/GRnM/xkZzP8ZGcz/GRnM/xkZzP8ZGcz/GRnM/xkZzP8ZGcz/GRnM/xgY
+        y/8YGMv/GBjL/xgYy/8YGMv/GBjL/xgYy/8YGMv/GBjL/xgYyv8YGMr/GBjK/xgYyv8YGMr/GBjK/xgY
+        yv8YGMn/FxfJ/xcXyf8XF8n/FxfJ/xcXyf8XF8j/FxfI/xcXyP8XF8j/FxfI/xcXyP8XF8j/FxfI/xcX
+        yP8XF8f/FxfH/xYWxv8WFsb/FhbF/xUVxP8VFcP/FBTC/xQUwP8TE7//ExO9/xcXvf8sLPn/Ozt+pQAA
+        ACkAAAANAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAcAAAAQzg4
+        6fsoKND/EhK+/xMTv/8TE8H/FBTC/xUVw/8VFcT/FRXF/xYWxv8WFsf/FhbI/xcXyP8XF8j/FxfI/xcX
+        yf8XF8n/FxfJ/xcXyf8XF8n/FxfJ/xcXyf8XF8n/FxfJ/xcXyv8XF8r/FxfK/xcXyv8XF8r/GBjK/xgY
+        yv8YGMr/GBjL/xgYy/8YGMv/GBjL/xgYy/8YGMv/GBjM/xgYzP8YGMz/GBjM/xgYzP8YGMz/GBjM/xgY
+        zP8YGMz/GBjM/xgYzP8YGMz/GRnN/xkZzf8ZGc3/GRnN/xkZzf8ZGc3/GRnN/xkZzf8ZGc3/GRnN/xkZ
+        zf8ZGc3/GRnN/xgYzP8YGMz/GBjM/xgYzP8YGMz/GBjM/xgYzP8YGMz/GBjM/xgYzP8YGMz/GBjM/xgY
+        y/8YGMv/GBjL/xgYy/8YGMv/GBjL/xgYyv8YGMr/GBjK/xcXyv8XF8r/FxfK/xcXyv8XF8r/FxfJ/xcX
+        yf8XF8n/FxfJ/xcXyf8XF8n/FxfJ/xcXyf8XF8j/FxfI/xcXyP8WFsj/FhbH/xYWxv8VFcX/FRXF/xUV
+        w/8UFML/FBTB/xMTv/8SEr7/JibN/zg46/4LCxJKAAAAHQAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABEAAAAvSEi12zY2/v8UFMD/ExPB/xMTwv8UFMT/FBTF/xUV
+        xv8VFcf/FhbI/xYWyf8WFsn/FhbK/xYWyv8XF8r/FxfK/xcXyv8XF8v/FxfL/xcXy/8XF8v/FxfL/xcX
+        y/8XF8v/FxfL/xcXy/8XF8z/FxfM/xcXzP8XF8z/FxfM/xgYzP8YGMz/GBjM/xgYzf8YGM3/GBjN/xgY
+        zf8YGM3/GBjN/xgYzf8YGM3/GBjN/xgYzv8YGM7/GBjO/xgYzv8YGM7/GBjO/xgYzv8YGM7/GBjO/xgY
+        zv8YGM7/GBjO/xgYzv8YGM7/GBjO/xgYzv8YGM7/GBjO/xgYzv8YGM7/GBjO/xgYzv8YGM7/GBjO/xgY
+        zv8YGM7/GBjO/xgYzf8YGM3/GBjN/xgYzf8YGM3/GBjN/xgYzf8YGM3/GBjN/xgYzP8YGMz/GBjM/xcX
+        zP8XF8z/FxfM/xcXzP8XF8z/FxfL/xcXy/8XF8v/FxfL/xcXy/8XF8v/FxfL/xcXy/8XF8r/FxfK/xcX
+        yv8XF8r/FhbK/xYWyf8WFsn/FhbI/xUVx/8VFcb/FBTF/xQUxP8TE8L/ExPB/xMTwP82Nvz/Rka54gAA
+        ADAAAAARAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAACQAA
+        AB4rK0pjOzv5/iYmyv8SEsD/ExPC/xMTw/8UFMT/FBTF/xUVxv8VFcf/FhbI/xYWyf8WFsn/FhbJ/xYW
+        yv8XF8r/FxfK/xcXyv8XF8r/FxfK/xcXyv8XF8r/FxfL/xcXy/8XF8v/FxfL/xcXy/8XF8z/FxfM/xcX
+        zP8XF8z/FxfM/xcXzP8YGMz/GBjM/xgYzP8YGM3/GBjN/xgYzf8YGM3/GBjN/xgYzf8YGM3/GBjN/xgY
+        zf8YGM3/GBjN/xgYzv8YGM7/GBjO/xgYzv8YGM7/GBjO/xgYzv8YGM7/GBjO/xgYzv8YGM7/GBjO/xgY
+        zv8YGM7/GBjO/xgYzv8YGM7/GBjO/xgYzv8YGM3/GBjN/xgYzf8YGM3/GBjN/xgYzf8YGM3/GBjN/xgY
+        zf8YGM3/GBjN/xgYzP8YGMz/GBjM/xcXzP8XF8z/FxfM/xcXzP8XF8z/FxfM/xcXy/8XF8v/FxfL/xcX
+        y/8XF8r/FxfK/xcXyv8XF8r/FxfK/xcXyv8XF8r/FhbK/xYWyf8WFsn/FhbJ/xYWyP8VFcf/FRXG/xQU
+        xf8UFMT/ExPD/xMTwv8SEsD/IyPI/zs7+v8yMlhuAAAAIAAAAAoAAAABAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAEAAAAEQAAAC5OTsLiPDz//xYWwv8SEsL/ExPD/xQU
+        xP8UFMX/FBTG/xUVx/8VFcj/FhbJ/xYWyf8WFsr/FhbK/xYWyv8WFsv/FhbL/xYWy/8XF8v/FxfL/xcX
+        y/8XF8v/FxfL/xcXy/8XF8v/FxfL/xcXy/8XF8v/FxfM/xcXzP8XF8z/FxfM/xcXzP8XF8z/GBjM/xgY
+        zP8YGMz/GBjN/xgYzf8YGM3/GBjN/xgYzf8YGM3/GBjN/xgYzf8YGM3/GBjN/xgYzf8YGM3/GBjN/xgY
+        zf8YGM3/GBjN/xgYzv8YGM7/GBjO/xgYzv8YGM7/GBjN/xgYzf8YGM3/GBjN/xgYzf8YGM3/GBjN/xgY
+        zf8YGM3/GBjN/xgYzf8YGM3/GBjN/xgYzf8YGM3/GBjN/xgYzP8YGMz/GBjM/xcXzP8XF8z/FxfM/xcX
+        zP8XF8z/FxfM/xcXy/8XF8v/FxfL/xcXy/8XF8v/FxfL/xcXy/8XF8v/FxfL/xYWy/8WFsv/FhbL/xYW
+        yv8WFsr/FhbK/xYWyf8WFsn/FRXI/xUVx/8UFMb/FBTG/xQUxP8TE8P/EhLC/xYWwv87O///T0/I6QAA
+        AC8AAAARAAAABAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAEAAAAIAAAAGicnQlJKSvT+MTHq/xMTwv8TE8P/ExPF/xQUxv8UFMf/FBTI/xUVyP8VFcn/FRXK/xYW
+        yv8WFsr/FhbL/xYWy/8WFsv/FhbL/xYWy/8WFsv/FhbM/xYWzP8WFsz/FhbM/xYWzP8WFsz/FhbM/xYW
+        zP8WFsz/FhbM/xYWzf8WFs3/FhbN/xYWzf8WFs3/FhbN/xcXzf8XF83/FxfN/xcXzf8XF87/FxfO/xcX
+        zv8XF87/FxfO/xcXzv8XF87/FxfO/xcXzv8XF87/FxfO/xcXzv8XF87/FxfO/xcXzv8XF87/FxfO/xcX
+        zv8XF87/FxfO/xcXzv8XF87/FxfO/xcXzv8XF87/FxfO/xcXzv8XF87/FxfO/xcXzv8XF87/FxfN/xcX
+        zf8XF83/FxfN/xYWzf8WFs3/FhbN/xYWzf8WFs3/FhbN/xYWzP8WFsz/FhbM/xYWzP8WFsz/FhbM/xYW
+        zP8WFsz/FhbM/xYWy/8WFsv/FhbL/xYWy/8WFsv/FhbL/xYWyv8WFsr/FRXK/xUVyf8VFcj/FBTI/xQU
+        x/8UFMb/ExPF/xMTw/8SEsL/MDDm/0pK9f4xMVJeAAAAGwAAAAkAAAACAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAQAAAAOAAAAIlJSmqdPT/7/Kyvc/xMT
+        xf8TE8b/FBTH/xUVyP8VFcn/FRXK/xYWyv8WFsv/FhbL/xYWzP8WFsz/FxfM/xcXzf8XF83/FxfN/xcX
+        zf8XF83/FxfN/xcXzf8XF83/FxfN/xcXzf8XF83/FxfN/xcXzf8XF83/FxfN/xcXzf8XF87/FxfO/xcX
+        zv8XF87/FxfO/xcXzv8XF87/GBjO/xgYzv8YGM7/GBjO/xgYzv8YGM//GBjP/xgYz/8YGM//GBjP/xgY
+        z/8YGM//GBjP/xgYz/8YGM//GBjP/xgYz/8YGM//GBjP/xgYz/8YGM//GBjP/xgYz/8YGM//GBjP/xgY
+        z/8YGM//GBjP/xgYzv8YGM7/GBjO/xgYzv8YGM7/FxfO/xcXzv8XF87/FxfO/xcXzv8XF87/FxfO/xcX
+        zf8XF83/FxfN/xcXzf8XF83/FxfN/xcXzf8XF83/FxfN/xcXzf8XF83/FxfN/xcXzf8XF83/FxfN/xcX
+        zP8XF8z/FhbM/xYWy/8WFsv/FhbK/xUVyv8VFcn/FRXI/xQUx/8TE8b/ExPF/ygo1/9LS/7/VVWisQAA
+        ACMAAAAOAAAABAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAQAAAAUAAAARAAAAKFtbus5LS///IiLJ/xMTxv8TE8f/FBTI/xQUyf8VFcr/FRXK/xUV
+        y/8WFsz/FhbM/xYWzP8WFsz/FhbN/xYWzf8WFs3/FxfN/xcXzf8XF83/FxfN/xcXzf8XF83/FxfN/xcX
+        zf8XF83/FxfN/xcXzf8XF83/FxfN/xcXzf8XF83/FxfO/xcXzv8XF87/FxfO/xcXzv8XF87/FxfO/xcX
+        zv8YGM7/GBjO/xgYzv8YGM7/GBjO/xgYzv8YGM7/GBjO/xgYzv8YGM7/GBjO/xgYzv8YGM7/GBjO/xgY
+        zv8YGM7/GBjO/xgYzv8YGM7/GBjO/xgYzv8YGM7/GBjO/xgYzv8YGM7/GBjO/xgYzv8XF87/FxfO/xcX
+        zv8XF87/FxfO/xcXzv8XF87/FxfO/xcXzf8XF83/FxfN/xcXzf8XF83/FxfN/xcXzf8XF83/FxfN/xcX
+        zf8XF83/FxfN/xcXzf8XF83/FhbN/xYWzf8WFs3/FhbM/xYWzP8WFsz/FhbM/xUVy/8VFcr/FRXK/xQU
+        yf8UFMj/ExPH/xMTxv8hIcn/Skr//1tbwNcAAAApAAAAEQAAAAYAAAABAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAcAAAATAAAAK2Fh
+        1epOTv//JibM/xUVx/8WFsj/FhbJ/xcXyv8XF8v/GBjL/xgYzP8YGMz/GBjM/xgYzf8ZGc3/GRnN/xkZ
+        zf8ZGc3/GRnN/xkZzv8ZGc7/GRnO/xkZzv8ZGc7/GRnO/xkZzv8ZGc7/GRnO/xkZzv8ZGc7/GRnO/xkZ
+        zv8ZGc7/GRnO/xkZz/8ZGc//GRnP/xkZz/8ZGc//GRnP/xoaz/8aGs//GhrP/xoaz/8aGs//GhrP/xoa
+        z/8aGs//GhrP/xoaz/8aGs//GhrP/xoaz/8aGs//GhrP/xoaz/8aGs//GhrP/xoaz/8aGs//GhrP/xoa
+        z/8aGs//GhrP/xoaz/8aGs//GhrP/xkZz/8ZGc//GRnP/xkZz/8ZGc//GRnP/xkZzv8ZGc7/GRnO/xkZ
+        zv8ZGc7/GRnO/xkZzv8ZGc7/GRnO/xkZzv8ZGc7/GRnO/xkZzv8ZGc7/GRnN/xkZzf8ZGc3/GRnN/xkZ
+        zf8YGM3/GBjM/xgYzP8YGMz/GBjL/xcXy/8XF8r/FhbJ/xYWyP8VFcf/JCTK/0xM//9hYdvwAAAALAAA
+        ABQAAAAHAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAcAAAAUFhYgMGlp1elXV///MDDh/xcXx/8WFsj/FxfJ/xcX
+        yf8YGMr/GBjL/xgYy/8ZGcv/GRnM/xkZzP8ZGcz/GRnM/xkZzP8ZGcz/GRnN/xkZzf8ZGc3/GRnN/xkZ
+        zf8ZGc3/GRnN/xkZzf8ZGc3/GRnN/xkZzf8ZGc3/GRnN/xkZzf8ZGc3/GRnN/xkZzf8ZGc3/GRnO/xkZ
+        zv8ZGc7/GRnO/xkZzv8ZGc7/GRnO/xkZzv8aGs7/GhrO/xoazv8aGs7/GhrO/xoazv8aGs7/GhrO/xoa
+        zv8aGs7/GhrO/xoazv8aGs7/GhrO/xoazv8aGs7/GhrO/xkZzv8ZGc7/GRnO/xkZzv8ZGc7/GRnO/xkZ
+        zv8ZGc7/GRnN/xkZzf8ZGc3/GRnN/xkZzf8ZGc3/GRnN/xkZzf8ZGc3/GRnN/xkZzf8ZGc3/GRnN/xkZ
+        zf8ZGc3/GRnN/xkZzf8ZGcz/GRnM/xkZzP8ZGcz/GRnM/xkZzP8ZGcv/GBjL/xgYy/8YGMr/FxfJ/xcX
+        yf8XF8j/FhbH/y4u3f9VVf//aWnb7yAgNDgAAAAUAAAACAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAA
+        AAcAAAATAAAAJmhovcldXf7/PDz0/xsbyf8WFsn/FxfJ/xcXyv8XF8r/GBjL/xgYy/8YGMz/GBjM/xgY
+        zP8YGMz/GRnN/xkZzf8ZGc3/GRnN/xkZzf8ZGc3/GRnN/xkZzf8ZGc3/GRnN/xkZzf8ZGc3/GRnN/xkZ
+        zf8ZGc3/GRnN/xkZzf8ZGc3/GRnN/xkZzf8ZGc3/GRnN/xkZzf8ZGc3/GRnO/xkZzv8ZGc7/GRnO/xkZ
+        zv8ZGc7/GRnO/xkZzv8ZGc7/GRnO/xkZzv8ZGc7/GRnO/xkZzv8ZGc7/GRnO/xkZzv8ZGc7/GRnO/xkZ
+        zv8ZGc7/GRnO/xkZzv8ZGc7/GRnO/xkZzf8ZGc3/GRnN/xkZzf8ZGc3/GRnN/xkZzf8ZGc3/GRnN/xkZ
+        zf8ZGc3/GRnN/xkZzf8ZGc3/GRnN/xkZzf8ZGc3/GRnN/xkZzf8ZGc3/GRnN/xkZzf8ZGc3/GBjM/xgY
+        zP8YGMz/GBjM/xgYy/8YGMv/FxfK/xcXyv8XF8n/FhbJ/xsbyf85OfD/Xl7+/2lpxNIAAAAnAAAAFAAA
+        AAgAAAADAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAcAAAARAAAAIGRkp5xzc/f8VFT//y0t
+        2v8ZGcr/FhbK/xcXyv8XF8v/FxfL/xcXzP8XF8z/GBjM/xgYzP8YGMz/GBjM/xgYzf8YGM3/GBjN/xgY
+        zf8YGM3/GBjN/xgYzf8YGM3/GBjN/xgYzf8YGM3/GBjN/xgYzf8YGM3/GBjN/xgYzf8YGM3/GBjN/xgY
+        zf8YGM3/GBjN/xgYzf8YGM3/GBjN/xgYzf8YGM3/GBjN/xgYzf8YGM7/GBjO/xgYzv8YGM7/GBjO/xgY
+        zv8YGM7/GBjO/xgYzv8YGM7/GBjO/xgYzv8YGM7/GBjN/xgYzf8YGM3/GBjN/xgYzf8YGM3/GBjN/xgY
+        zf8YGM3/GBjN/xgYzf8YGM3/GBjN/xgYzf8YGM3/GBjN/xgYzf8YGM3/GBjN/xgYzf8YGM3/GBjN/xgY
+        zf8YGM3/GBjN/xgYzf8YGM3/GBjN/xgYzP8YGMz/GBjM/xcXzP8XF8z/FxfL/xcXy/8XF8r/FhbK/xgY
+        yf8rK9f/U1P//3Bw+P5lZaukAAAAIQAAABEAAAAHAAAAAgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAQAAAAUAAAAMAAAAFzAwSjxxcc/cc3P7/ltb//83N+f/HR3N/xcXzP8XF8z/FxfN/xcX
+        zf8YGM3/GBjN/xgYzf8YGM7/GBjO/xgYzv8YGM7/GBjO/xgYzv8YGM7/GBjO/xgYzv8YGM7/GBjO/xgY
+        zv8YGM7/GBjO/xgYzv8YGM7/GBjO/xgYzv8YGM7/GBjO/xgYzv8YGM7/GBjO/xgYzv8YGM7/GBjO/xgY
+        zv8YGM7/GBjO/xgYzv8YGM7/GBjO/xgYzv8YGM7/GBjO/xgYzv8YGM7/GBjO/xgYzv8YGM7/GBjO/xgY
+        zv8YGM7/GBjO/xgYzv8YGM7/GBjO/xgYzv8YGM7/GBjO/xgYzv8YGM7/GBjO/xgYzv8YGM7/GBjO/xgY
+        zv8YGM7/GBjO/xgYzv8YGM7/GBjO/xgYzv8YGM7/GBjO/xgYzv8YGM7/GBjO/xgYzv8YGM7/GBjO/xgY
+        zf8YGM3/FxfN/xcXzf8XF8z/FxfM/x0dzf80NOT/WVn//3R0/P5zc9XgMzNNPQAAABgAAAAMAAAABQAA
+        AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAAIAAAADwAA
+        ABo9PVxDdHTN0X198/x1df//YmL//1FR//9BQf//ODjo/ygo5v8eHtH/FxfP/xcXz/8XF9D/FxfQ/xcX
+        0P8XF9D/FxfQ/xcX0P8XF9D/FxfQ/xcX0P8XF9D/FxfQ/xcX0P8XF9D/FxfQ/xcX0P8XF9D/FxfQ/xcX
+        0P8XF9D/FxfQ/xcX0P8XF9D/FxfQ/xcX0P8XF9D/FxfQ/xcX0P8XF9D/FxfQ/xcX0P8XF9D/FxfQ/xcX
+        0P8XF9D/FxfQ/xcX0P8XF9D/FxfQ/xcX0P8XF9D/FxfQ/xcX0P8XF9D/FxfQ/xcX0P8XF9D/FxfQ/xcX
+        0P8XF9D/FxfQ/xcX0P8XF9D/FxfQ/xcX0P8XF9D/FxfQ/xcX0P8XF9D/FxfQ/xcX0P8XF9D/FxfQ/xcX
+        0P8XF9D/FxfQ/xcX0P8XF9D/FxfQ/xcXz/8XF8//HR3Q/ycn5P83N+j/QED//1FR//9hYf//dHT//3p6
+        9fx1dc/XQUFnSwAAABsAAAAQAAAACAAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAAEAAAACAAAAA8AAAAWAAAAIFxcjml0dMbAenrh7Hl5
+        4O5/f/P8fn70/IKC//+Cgv//goL//4KC//+Cgv//goL//4KC//+Cgv//goL//4KC//+Cgv//goL//4KC
+        //+Cgv//goL//4KC//+Cgv//goL//4KC//+Cgv//goL//4KC//+Cgv//goL//4KC//+Cgv//goL//4KC
+        //+Cgv//goL//4KC//+Cgv//goL//4KC//+Cgv//goL//4KC//+Cgv//goL//4KC//+Cgv//goL//4KC
+        //+Cgv//goL//4KC//+Cgv//goL//4KC//+Cgv//goL//4KC//+Cgv//goL//4KC//+Cgv//goL//4KC
+        //+Cgv//goL//4KC//+Cgv//goL//4KC//+Cgv//goL//4KC//+Cgv//goL//4KC//+Cgv//goL//4KC
+        //+Cgv//fX31/H9/8/x5eePuenri7XR0x8NeXpJuAAAAIAAAABYAAAAPAAAACQAAAAQAAAABAAAAAQAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAEAAAABAAAAAwAAAAYAAAAKAAAADwAAABMAAAAXAAAAGwAAAB4AAAAgAAAAIgAAACMAAAAjAAAAJAAA
+        ACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAA
+        ACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAA
+        ACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAA
+        ACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAA
+        ACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAjAAAAIwAAACIAAAAgAAAAHgAAABsAAAAYAAAAEwAA
+        AA8AAAAKAAAABwAAAAMAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//////////////////////////////////
+        ///////////////////////////////////////////////////////////////////////////gAAAA
+        AAAAAAAAAAf/////AAAAAAAAAAAAAAAA/////AAAAAAAAAAAAAAAAD////gAAAAAAAAAAAAAAAAf///g
+        AAAAAAAAAAAAAAAAB///wAAAAAAAAAAAAAAAAAP//4AAAAAAAAAAAAAAAAAB//8AAAAAAAAAAAAAAAAA
+        AP//AAAAAAAAAAAAAAAAAAD//gAAAAAAAAAAAAAAAAAAf/wAAAAAAAAAAAAAAAAAAD/8AAAAAAAAAAAA
+        AAAAAAA/+AAAAAAAAAAAAAAAAAAAH/gAAAAAAAAAAAAAAAAAAB/4AAAAAAAAAAAAAAAAAAAf+AAAAAAA
+        AAAAAAAAAAAAH/gAAAAAAAAAAAAAAAAAAB/4AAAAAAAAAAAAAAAAAAAf+AAAAAAAAAAAAAAAAAAAH/gA
+        AAAAAAAAAAAAAAAAAB/4AAAAAAAAAAAAAAAAAAAf+AAAAAAAAAAAAAAAAAAAH/gAAAAAAAAAAAAAAAAA
+        AB/4AAAAAAAAAAAAAAAAAAAf+AAAAAAAAAAAAAAAAAAAH/gAAAAAAAAAAAAAAAAAAB/4AAAAAAAAAAAA
+        AAAAAAAf+AAAAAAAAAAAAAAAAAAAH/gAAAAAAAAAAAAAAAAAAB/4AAAAAAAAAAAAAAAAAAAf+AAAAAAA
+        AAAAAAAAAAAAH/gAAAAAAAAAAAAAAAAAAB/4AAAAAAAAAAAAAAAAAAAf+AAAAAAAAAAAAAAAAAAAH/gA
+        AAAAAAAAAAAAAAAAAB/4AAAAAAAAAAAAAAAAAAAf+AAAAAAAAAAAAAAAAAAAH/gAAAAAAAAAAAAAAAAA
+        AB/4AAAAAAAAAAAAAAAAAAAf+AAAAAAAAAAAAAAAAAAAH/gAAAAAAAAAAAAAAAAAAB/4AAAAAAAAAAAA
+        AAAAAAAf+AAAAAAAAAAAAAAAAAAAH/gAAAAAAAAAAAAAAAAAAB/4AAAAAAAAAAAAAAAAAAAf+AAAAAAA
+        AAAAAAAAAAAAH/gAAAAAAAAAAAAAAAAAAB/4AAAAAAAAAAAAAAAAAAAf+AAAAAAAAAAAAAAAAAAAH/gA
+        AAAAAAAAAAAAAAAAAB/4AAAAAAAAAAAAAAAAAAAf+AAAAAAAAAAAAAAAAAAAH/gAAAAAAAAAAAAAAAAA
+        AB/4AAAAAAAAAAAAAAAAAAAf+AAAAAAAAAAAAAAAAAAAH/gAAAAAAAAAAAAAAAAAAB/4AAAAAAAAAAAA
+        AAAAAAAf+AAAAAAAAAAAAAAAAAAAH/gAAAAAAAAAAAAAAAAAAB/4AAAAAAAAAAAAAAAAAAAf+AAAAAAA
+        AAAAAAAAAAAAH/gAAAAAAAAAAAAAAAAAAB/4AAAAAAAAAAAAAAAAAAAf+AAAAAAAAAAAAAAAAAAAH/gA
+        AAAAAAAAAAAAAAAAAB/4AAAAAAAAAAAAAAAAAAAf+AAAAAAAAAAAAAAAAAAAH/gAAAAAAAAAAAAAAAAA
+        AB/4AAAAAAAAAAAAAAAAAAAf+AAAAAAAAAAAAAAAAAAAH/gAAAAAAAAAAAAAAAAAAB/4AAAAAAAAAAAA
+        AAAAAAAf+AAAAAAAAAAAAAAAAAAAH/gAAAAAAAAAAAAAAAAAAB/4AAAAAAAAAAAAAAAAAAAf+AAAAAAA
+        AAAAAAAAAAAAH/gAAAAAAAAAAAAAAAAAAB/4AAAAAAAAAAAAAAAAAAAf+AAAAAAAAAAAAAAAAAAAH/gA
+        AAAAAAAAAAAAAAAAAB/4AAAAAAAAAAAAAAAAAAAf+AAAAAAAAAAAAAAAAAAAH/gAAAAAAAAAAAAAAAAA
+        AB/4AAAAAAAAAAAAAAAAAAAf+AAAAAAAAAAAAAAAAAAAH/gAAAAAAAAAAAAAAAAAAB/4AAAAAAAAAAAA
+        AAAAAAAf+AAAAAAAAAAAAAAAAAAAH/gAAAAAAAAAAAAAAAAAAB/4AAAAAAAAAAAAAAAAAAAf+AAAAAAA
+        AAAAAAAAAAAAH/gAAAAAAAAAAAAAAAAAAB/4AAAAAAAAAAAAAAAAAAAf+AAAAAAAAAAAAAAAAAAAH/gA
+        AAAAAAAAAAAAAAAAAB/4AAAAAAAAAAAAAAAAAAAf+AAAAAAAAAAAAAAAAAAAH/gAAAAAAAAAAAAAAAAA
+        AB/4AAAAAAAAAAAAAAAAAAAf+AAAAAAAAAAAAAAAAAAAH/gAAAAAAAAAAAAAAAAAAB/4AAAAAAAAAAAA
+        AAAAAAAf+AAAAAAAAAAAAAAAAAAAH/gAAAAAAAAAAAAAAAAAAB/4AAAAAAAAAAAAAAAAAAAf+AAAAAAA
+        AAAAAAAAAAAAH/gAAAAAAAAAAAAAAAAAAB/4AAAAAAAAAAAAAAAAAAAf/AAAAAAAAAAAAAAAAAAAP/wA
+        AAAAAAAAAAAAAAAAAD/+AAAAAAAAAAAAAAAAAAB//wAAAAAAAAAAAAAAAAAA//+AAAAAAAAAAAAAAAAA
+        Af//gAAAAAAAAAAAAAAAAAH//8AAAAAAAAAAAAAAAAAD///wAAAAAAAAAAAAAAAAD///+AAAAAAAAAAA
+        AAAAAB////wAAAAAAAAAAAAAAAA/////AAAAAAAAAAAAAAAA////////////////////////////////
+        ////////////////////////////////////////////////////////
+</value>
+  </data>
+</root>
\ No newline at end of file
diff --git a/PokemonGo/RocketAPI/Window/PokeUi.Designer.cs b/PokemonGo/RocketAPI/Window/PokeUi.Designer.cs
index 16fa9be..f875958 100644
--- a/PokemonGo/RocketAPI/Window/PokeUi.Designer.cs
+++ b/PokemonGo/RocketAPI/Window/PokeUi.Designer.cs
@@ -28,130 +28,124 @@
         /// </summary>
         private void InitializeComponent()
         {
-			this.components = new System.ComponentModel.Container();
-			System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(PokeUi));
-			this.listView1 = new System.Windows.Forms.ListView();
-			this.button1 = new System.Windows.Forms.Button();
-			this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components);
-			this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
-			this.button2 = new System.Windows.Forms.Button();
-			this.button3 = new System.Windows.Forms.Button();
-			this.btnUpgrade = new System.Windows.Forms.Button();
-			this.contextMenuStrip1.SuspendLayout();
-			this.SuspendLayout();
-			//
-			// listView1
-			//
-			this.listView1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
-            | System.Windows.Forms.AnchorStyles.Left)
-            | System.Windows.Forms.AnchorStyles.Right)));
-			this.listView1.Location = new System.Drawing.Point(16, 14);
-			this.listView1.Margin = new System.Windows.Forms.Padding(4);
-			this.listView1.Name = "listView1";
-			this.listView1.Size = new System.Drawing.Size(795, 458);
-			this.listView1.TabIndex = 0;
-			this.listView1.UseCompatibleStateImageBehavior = false;
-			this.listView1.SelectedIndexChanged += new System.EventHandler(this.listView1_SelectedIndexChanged);
-			this.listView1.MouseClick += new System.Windows.Forms.MouseEventHandler(this.listView1_MouseClick);
-			//
-			// button1
-			//
-			this.button1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
-            | System.Windows.Forms.AnchorStyles.Right)));
-			this.button1.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
-			this.button1.Location = new System.Drawing.Point(16, 489);
-			this.button1.Margin = new System.Windows.Forms.Padding(4);
-			this.button1.Name = "button1";
-			this.button1.Size = new System.Drawing.Size(795, 32);
-			this.button1.TabIndex = 3;
-			this.button1.Text = "Reload";
-			this.button1.UseVisualStyleBackColor = true;
-			this.button1.Click += new System.EventHandler(this.button1_Click);
-			//
-			// contextMenuStrip1
-			//
-			this.contextMenuStrip1.ImageScalingSize = new System.Drawing.Size(20, 20);
-			this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+            this.components = new System.ComponentModel.Container();
+            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(PokeUi));
+            this.btnReload = new System.Windows.Forms.Button();
+            this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components);
+            this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
+            this.btnEvolve = new System.Windows.Forms.Button();
+            this.btnTransfer = new System.Windows.Forms.Button();
+            this.btnUpgrade = new System.Windows.Forms.Button();
+            this.dataGridView1 = new System.Windows.Forms.DataGridView();
+            this.contextMenuStrip1.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit();
+            this.SuspendLayout();
+            //
+            // btnReload
+            //
+            this.btnReload.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
+            this.btnReload.Dock = System.Windows.Forms.DockStyle.Bottom;
+            this.btnReload.Location = new System.Drawing.Point(0, 573);
+            this.btnReload.Name = "btnReload";
+            this.btnReload.Size = new System.Drawing.Size(622, 26);
+            this.btnReload.TabIndex = 3;
+            this.btnReload.Text = "Reload";
+            this.btnReload.UseVisualStyleBackColor = true;
+            this.btnReload.Click += new System.EventHandler(this.button1_Click);
+            //
+            // contextMenuStrip1
+            //
+            this.contextMenuStrip1.ImageScalingSize = new System.Drawing.Size(20, 20);
+            this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
             this.toolStripMenuItem1});
-			this.contextMenuStrip1.Name = "contextMenuStrip1";
-			this.contextMenuStrip1.Size = new System.Drawing.Size(137, 30);
-			//
-			// toolStripMenuItem1
-			//
-			this.toolStripMenuItem1.Name = "toolStripMenuItem1";
-			this.toolStripMenuItem1.Size = new System.Drawing.Size(136, 26);
-			this.toolStripMenuItem1.Text = "Transfer";
-			this.toolStripMenuItem1.Click += new System.EventHandler(this.toolStripMenuItem1_Click);
-			//
-			// button2
-			//
-			this.button2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
-            | System.Windows.Forms.AnchorStyles.Right)));
-			this.button2.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
-			this.button2.Location = new System.Drawing.Point(16, 529);
-			this.button2.Margin = new System.Windows.Forms.Padding(4);
-			this.button2.Name = "button2";
-			this.button2.Size = new System.Drawing.Size(795, 32);
-			this.button2.TabIndex = 4;
-			this.button2.Text = "Evolve Selected";
-			this.button2.UseVisualStyleBackColor = true;
-			this.button2.Click += new System.EventHandler(this.button2_Click);
-			//
-			// button3
-			//
-			this.button3.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
-            | System.Windows.Forms.AnchorStyles.Right)));
-			this.button3.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
-			this.button3.Location = new System.Drawing.Point(16, 609);
-			this.button3.Margin = new System.Windows.Forms.Padding(4);
-			this.button3.Name = "button3";
-			this.button3.Size = new System.Drawing.Size(795, 32);
-			this.button3.TabIndex = 5;
-			this.button3.Text = "Transfer Selected";
-			this.button3.UseVisualStyleBackColor = true;
-			this.button3.Click += new System.EventHandler(this.button3_Click);
-			//
-			// btnUpgrade
-			//
-			this.btnUpgrade.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
+            this.contextMenuStrip1.Name = "contextMenuStrip1";
+            this.contextMenuStrip1.Size = new System.Drawing.Size(118, 26);
+            //
+            // toolStripMenuItem1
+            //
+            this.toolStripMenuItem1.Name = "toolStripMenuItem1";
+            this.toolStripMenuItem1.Size = new System.Drawing.Size(117, 22);
+            this.toolStripMenuItem1.Text = "Transfer";
+            this.toolStripMenuItem1.Click += new System.EventHandler(this.toolStripMenuItem1_Click);
+            //
+            // btnEvolve
+            //
+            this.btnEvolve.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
+            this.btnEvolve.Dock = System.Windows.Forms.DockStyle.Bottom;
+            this.btnEvolve.Location = new System.Drawing.Point(0, 547);
+            this.btnEvolve.Name = "btnEvolve";
+            this.btnEvolve.Size = new System.Drawing.Size(622, 26);
+            this.btnEvolve.TabIndex = 4;
+            this.btnEvolve.Text = "Evolve Selected";
+            this.btnEvolve.UseVisualStyleBackColor = true;
+            this.btnEvolve.Click += new System.EventHandler(this.button2_Click);
+            //
+            // btnTransfer
+            //
+            this.btnTransfer.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
+            this.btnTransfer.Dock = System.Windows.Forms.DockStyle.Bottom;
+            this.btnTransfer.Location = new System.Drawing.Point(0, 521);
+            this.btnTransfer.Name = "btnTransfer";
+            this.btnTransfer.Size = new System.Drawing.Size(622, 26);
+            this.btnTransfer.TabIndex = 5;
+            this.btnTransfer.Text = "Transfer Selected";
+            this.btnTransfer.UseVisualStyleBackColor = true;
+            this.btnTransfer.Click += new System.EventHandler(this.button3_Click);
+            //
+            // btnUpgrade
+            //
+            this.btnUpgrade.Dock = System.Windows.Forms.DockStyle.Bottom;
+            this.btnUpgrade.Location = new System.Drawing.Point(0, 495);
+            this.btnUpgrade.Name = "btnUpgrade";
+            this.btnUpgrade.Size = new System.Drawing.Size(622, 26);
+            this.btnUpgrade.TabIndex = 6;
+            this.btnUpgrade.Text = "Upgrade Selected";
+            this.btnUpgrade.UseVisualStyleBackColor = true;
+            this.btnUpgrade.Click += new System.EventHandler(this.btnUpgrade_Click);
+            //
+            // dataGridView1
+            //
+            this.dataGridView1.AllowUserToAddRows = false;
+            this.dataGridView1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+            | System.Windows.Forms.AnchorStyles.Left)
             | System.Windows.Forms.AnchorStyles.Right)));
-			this.btnUpgrade.Location = new System.Drawing.Point(16, 569);
-			this.btnUpgrade.Margin = new System.Windows.Forms.Padding(4);
-			this.btnUpgrade.Name = "btnUpgrade";
-			this.btnUpgrade.Size = new System.Drawing.Size(795, 32);
-			this.btnUpgrade.TabIndex = 6;
-			this.btnUpgrade.Text = "Upgrade Selected";
-			this.btnUpgrade.UseVisualStyleBackColor = true;
-			this.btnUpgrade.Click += new System.EventHandler(this.btnUpgrade_Click);
-			//
-			// PokeUi
-			//
-			this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);
-			this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-			this.ClientSize = new System.Drawing.Size(829, 664);
-			this.Controls.Add(this.btnUpgrade);
-			this.Controls.Add(this.button3);
-			this.Controls.Add(this.button2);
-			this.Controls.Add(this.button1);
-			this.Controls.Add(this.listView1);
-			this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
-			this.Margin = new System.Windows.Forms.Padding(4);
-			this.Name = "PokeUi";
-			this.Text = "PokeUi";
-			this.Load += new System.EventHandler(this.PokeUi_Load);
-			this.contextMenuStrip1.ResumeLayout(false);
-			this.ResumeLayout(false);
+            this.dataGridView1.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill;
+            this.dataGridView1.AutoSizeRowsMode = System.Windows.Forms.DataGridViewAutoSizeRowsMode.AllCells;
+            this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
+            this.dataGridView1.Location = new System.Drawing.Point(12, 12);
+            this.dataGridView1.Name = "dataGridView1";
+            this.dataGridView1.Size = new System.Drawing.Size(596, 477);
+            this.dataGridView1.TabIndex = 7;
+            this.dataGridView1.CellClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dataGridView1_CellClick);
+            this.dataGridView1.SortCompare += new System.Windows.Forms.DataGridViewSortCompareEventHandler(this.dataGridView1_SortCompare);
+            //
+            // PokeUi
+            //
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(622, 599);
+            this.Controls.Add(this.dataGridView1);
+            this.Controls.Add(this.btnUpgrade);
+            this.Controls.Add(this.btnTransfer);
+            this.Controls.Add(this.btnEvolve);
+            this.Controls.Add(this.btnReload);
+            this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+            this.Name = "PokeUi";
+            this.Text = "PokeUi";
+            this.Load += new System.EventHandler(this.PokeUi_Load);
+            this.contextMenuStrip1.ResumeLayout(false);
+            ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit();
+            this.ResumeLayout(false);

         }

         #endregion
-
-        private System.Windows.Forms.ListView listView1;
-        private System.Windows.Forms.Button button1;
+        private System.Windows.Forms.Button btnReload;
         private System.Windows.Forms.ContextMenuStrip contextMenuStrip1;
         private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem1;
-        private System.Windows.Forms.Button button2;
-        private System.Windows.Forms.Button button3;
-		private System.Windows.Forms.Button btnUpgrade;
-	}
+        private System.Windows.Forms.Button btnEvolve;
+        private System.Windows.Forms.Button btnTransfer;
+        private System.Windows.Forms.Button btnUpgrade;
+        private System.Windows.Forms.DataGridView dataGridView1;
+    }
 }
\ No newline at end of file
diff --git a/PokemonGo/RocketAPI/Window/PokeUi.cs b/PokemonGo/RocketAPI/Window/PokeUi.cs
index 1975c4f..3c162ab 100644
--- a/PokemonGo/RocketAPI/Window/PokeUi.cs
+++ b/PokemonGo/RocketAPI/Window/PokeUi.cs
@@ -32,23 +32,17 @@ namespace PokemonGo.RocketAPI.Window

         private async void Execute()
         {
-			EnabledButton(false);
+            EnabledButton(false);

-			client = new Client(ClientSettings);
+            client = new Client(ClientSettings);

             try
             {
-                switch (ClientSettings.AuthType)
-                {
-                    case AuthType.Ptc:
-                        await client.DoPtcLogin(ClientSettings.PtcUsername, ClientSettings.PtcPassword);
-                        break;
-                    case AuthType.Google:
-                        await client.DoGoogleLogin();
-                        break;
-                }
-                //
+
+                await client.Login();
+
                 await client.SetServer();
+                var profile = await client.GetProfile();
                 var inventory = await client.GetInventory();
                 var pokemons =
                     inventory.InventoryDelta.InventoryItems
@@ -61,10 +55,33 @@ namespace PokemonGo.RocketAPI.Window
                     .OrderByDescending(p => (int)p.FamilyId);


+                //listView1.ShowItemToolTips = true;


-                var imageList = new ImageList { ImageSize = new Size(50, 50) };
-                listView1.ShowItemToolTips = true;
+                //put data into gridview
+                this.dataGridView1.AutoGenerateColumns = false;
+                DataGridViewCheckBoxColumn checkbox = new DataGridViewCheckBoxColumn()
+                {
+                    HeaderText = "Checkbox",
+                    Name = "Checkbox",
+                    Visible = true
+                };
+                // add the new column to your dataGridView
+                this.dataGridView1.Columns.Insert(0, checkbox);
+                this.dataGridView1.Columns.Add("Image", "Image");
+                this.dataGridView1.Columns.Add("Name", "Name");
+                this.dataGridView1.Columns.Add("CP", "CP");
+                this.dataGridView1.Columns.Add("IV %", "IV %");
+                this.dataGridView1.Columns.Add("Candy", "Candy");
+                this.dataGridView1.Columns.Add("Number", "Number");
+                this.dataGridView1.Columns.Add("WeightKg", "WeightKg");
+                this.dataGridView1.Columns.Add("HeightM", "HeightM");
+
+                this.dataGridView1.Columns[2].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
+                for (int i = 1; i < this.dataGridView1.Columns.Count; i++)
+                {
+                    this.dataGridView1.Columns[i].ReadOnly = true;
+                }

                 foreach (var pokemon in pokemons)
                 {
@@ -73,36 +90,36 @@ namespace PokemonGo.RocketAPI.Window
                     {
                         pokemonImage = GetPokemonImage((int)pokemon.PokemonId);
                     });
-                    imageList.Images.Add(pokemon.PokemonId.ToString(), pokemonImage);
-
-                    listView1.LargeImageList = imageList;
-                    var listViewItem = new ListViewItem();
-                    listViewItem.Tag = pokemon;
-

                     var currentCandy = families
                         .Where(i => (int)i.FamilyId <= (int)pokemon.PokemonId)
                         .Select(f => f.Candy)
                         .First();
                     var currIv = Math.Round(Perfect(pokemon));
-                    //listViewItem.SubItems.Add();
-                    listViewItem.ImageKey = pokemon.PokemonId.ToString();
+

                     var pokemonId2 = pokemon.PokemonId;
                     var pokemonName = pokemon.Id;

-                    listViewItem.Text = string.Format("{0}\n{1} CP", pokemon.PokemonId, pokemon.Cp);
-                    listViewItem.ToolTipText = currentCandy + " Candy\n" + currIv + "% IV";
-
-
-                    this.listView1.Items.Add(listViewItem);
-
-
+                    var row = new DataGridViewRow();
+                    //row.HeaderCell.Value = row.Index + 1 + "";
+                    row.Cells.Add(new DataGridViewCheckBoxCell { Value = false });
+                    row.Cells.Add(new DataGridViewImageCell { Value = pokemonImage });
+                    row.Cells.Add(new DataGridViewTextBoxCell { Value = pokemon.PokemonId });
+                    row.Cells.Add(new DataGridViewTextBoxCell { Value = pokemon.Cp });
+                    row.Cells.Add(new DataGridViewTextBoxCell { Value = currIv });
+                    row.Cells.Add(new DataGridViewTextBoxCell { Value = currentCandy });
+                    row.Cells.Add(new DataGridViewTextBoxCell { Value = (int)pokemon.PokemonId });
+                    row.Cells.Add(new DataGridViewTextBoxCell { Value = pokemon.WeightKg });
+                    row.Cells.Add(new DataGridViewTextBoxCell { Value = pokemon.HeightM });
+                    row.Tag = pokemon;
+                    this.dataGridView1.Rows.Add(row);
                 }
-				EnabledButton(true);

+                this.Text = "PokeUi " + pokemons.Count<PokemonData>() + "/" + profile.Profile.PokeStorage;
+                EnabledButton(true);

-			}
+            }
             catch (TaskCanceledException) { Execute(); }
             catch (UriFormatException) { Execute(); }
             catch (ArgumentOutOfRangeException) { Execute(); }
@@ -111,13 +128,13 @@ namespace PokemonGo.RocketAPI.Window
             catch (Exception ex) { Execute(); }
         }

-		private void EnabledButton(bool enabled)
-		{
-			button1.Enabled = enabled;
-			button2.Enabled = enabled;
-			button3.Enabled = enabled;
-			btnUpgrade.Enabled = enabled;
-		}
+        private void EnabledButton(bool enabled)
+        {
+            btnReload.Enabled = enabled;
+            btnEvolve.Enabled = enabled;
+            btnTransfer.Enabled = enabled;
+            btnUpgrade.Enabled = enabled;
+        }

         private static Bitmap GetPokemonImage(int pokemonId)
         {
@@ -130,15 +147,23 @@ namespace PokemonGo.RocketAPI.Window
                 WebClient wc = new WebClient();
                 wc.DownloadFile("http://pokeapi.co/media/sprites/pokemon/" + pokemonId + ".png", @location);
             }
+
+            var imageSize = ClientSettings.ImageSize;
+
+            if ((imageSize > 96) || (imageSize < 1)) // no bigger than orig size and no smaller than 1x1
+                imageSize = 50;
+
             PictureBox picbox = new PictureBox();
             picbox.Image = Image.FromFile(location);
-            Bitmap bitmapRemote = (Bitmap)picbox.Image;
+            Bitmap bitmapRemote = new Bitmap(picbox.Image, imageSize, imageSize);
             return bitmapRemote;
         }

         private void button1_Click(object sender, EventArgs e)
         {
-            this.listView1.Clear();
+            this.dataGridView1.DataSource = null;
+            this.dataGridView1.Columns.Clear();
+            this.dataGridView1.Rows.Clear();
             Execute();
         }

@@ -151,52 +176,62 @@ namespace PokemonGo.RocketAPI.Window
             return ((float)(poke.IndividualAttack + poke.IndividualDefense + poke.IndividualStamina) / (3.0f * 15.0f)) * 100.0f;
         }

-        private void listView1_MouseClick(object sender, MouseEventArgs e)
+        /*private void listView1_MouseClick(object sender, MouseEventArgs e)
         {
             if (e.Button == MouseButtons.Right)
             {
+                this.dataGridView1.
                 if (listView1.FocusedItem.Bounds.Contains(e.Location) == true)
                 {
                     contextMenuStrip1.Show(Cursor.Position);
                 }
             }
-        }
+        }*/

         private async void toolStripMenuItem1_Click(object sender, EventArgs e)
         {
-            var pokemon = (PokemonData)listView1.SelectedItems[0].Tag;
+            var pokemon = (PokemonData)this.dataGridView1.SelectedRows[0].Tag;


             if (MessageBox.Show(this, pokemon.PokemonId + " with " + pokemon.Cp + " CP thats " + Math.Round(Perfect(pokemon)) + "% perfect", "Are you sure you want to transfer?", MessageBoxButtons.OKCancel) == DialogResult.OK)
             {
                 var transfer = await client.TransferPokemon(pokemon.Id);
             }
-            listView1.Items.Remove(listView1.SelectedItems[0]);
+            this.dataGridView1.Rows.Remove(this.dataGridView1.SelectedRows[0]);
         }

         private async void button2_Click(object sender, EventArgs e)
         {
-            var selectedItems = this.listView1.SelectedItems;

-            foreach (ListViewItem selectedItem in selectedItems)
+            IEnumerable<DataGridViewRow> selectedItems = (from row in dataGridView1.Rows.Cast<DataGridViewRow>()
+                                                          where Convert.ToBoolean(((DataGridViewCheckBoxCell)row.Cells["Checkbox"]).EditedFormattedValue)
+                                                          select row).ToList();
+
+            foreach (DataGridViewRow selectedItem in selectedItems)
             {
                 await evolvePokemon((PokemonData)selectedItem.Tag);
             }

-            this.listView1.Clear();
+            this.dataGridView1.DataSource = null;
+            this.dataGridView1.Columns.Clear();
+            this.dataGridView1.Rows.Clear();
             Execute();
         }

         private async void button3_Click(object sender, EventArgs e)
         {
-            var selectedItems = this.listView1.SelectedItems;
+            IEnumerable<DataGridViewRow> selectedItems = (from row in dataGridView1.Rows.Cast<DataGridViewRow>()
+                                                          where Convert.ToBoolean(((DataGridViewCheckBoxCell)row.Cells["Checkbox"]).EditedFormattedValue)
+                                                          select row).ToList();

-            foreach (ListViewItem selectedItem in selectedItems)
+            foreach (DataGridViewRow selectedItem in selectedItems)
             {
                 await transferPokemon((PokemonData)selectedItem.Tag);
             }

-            this.listView1.Clear();
+            this.dataGridView1.DataSource = null;
+            this.dataGridView1.Columns.Clear();
+            this.dataGridView1.Rows.Clear();
             Execute();
         }

@@ -262,48 +297,90 @@ namespace PokemonGo.RocketAPI.Window
             catch (Exception ex) { await transferPokemon(pokemon); }
         }

-		private async void btnUpgrade_Click(object sender, EventArgs e)
-		{
-			var selectedItems = listView1.SelectedItems;
-
-			foreach (ListViewItem selectedItem in selectedItems)
-			{
-				await PowerUp((PokemonData)selectedItem.Tag);
-			}
-
-			listView1.Clear();
-			Execute();
-		}
-
-		private static async Task PowerUp(PokemonData pokemon)
-		{
-			try
-			{
-				var evolvePokemonResponse = await client.PowerUp(pokemon.Id);
-				string message = "";
-				string caption = "";
-				MessageBoxButtons buttons = MessageBoxButtons.OK;
-				DialogResult result;
-
-				if (evolvePokemonResponse.Result == 1)
-				{
-					message = $"{pokemon.PokemonId} successfully upgraded.";
-					caption = $"{pokemon.PokemonId} upgraded";
-				}
-				else
-				{
-					message = $"{pokemon.PokemonId} could not be upgraded";
-					caption = $"Upgrade {pokemon.PokemonId} failed";
-				}
-
-				result = MessageBox.Show(message, caption, buttons, MessageBoxIcon.Information);
-			}
-			catch (TaskCanceledException) { await PowerUp(pokemon); }
-			catch (UriFormatException) { await PowerUp(pokemon); }
-			catch (ArgumentOutOfRangeException) { await PowerUp(pokemon); }
-			catch (ArgumentNullException) { await PowerUp(pokemon); }
-			catch (NullReferenceException) { await PowerUp(pokemon); }
-			catch (Exception ex) { await PowerUp(pokemon); }
-		}
-	}
+        private async void btnUpgrade_Click(object sender, EventArgs e)
+        {
+            IEnumerable<DataGridViewRow> selectedItems = (from row in dataGridView1.Rows.Cast<DataGridViewRow>()
+                                                          where Convert.ToBoolean(((DataGridViewCheckBoxCell)row.Cells["Checkbox"]).EditedFormattedValue)
+                                                          select row).ToList();
+
+            foreach (DataGridViewRow selectedItem in selectedItems)
+            {
+                await PowerUp((PokemonData)selectedItem.Tag);
+            }
+
+            this.dataGridView1.DataSource = null;
+            this.dataGridView1.Columns.Clear();
+            this.dataGridView1.Rows.Clear();
+            Execute();
+        }
+
+        private static async Task PowerUp(PokemonData pokemon)
+        {
+            try
+            {
+                var evolvePokemonResponse = await client.PowerUp(pokemon.Id);
+                string message = "";
+                string caption = "";
+                MessageBoxButtons buttons = MessageBoxButtons.OK;
+                DialogResult result;
+
+                if (evolvePokemonResponse.Result == 1)
+                {
+                    message = $"{pokemon.PokemonId} successfully upgraded.";
+                    caption = $"{pokemon.PokemonId} upgraded";
+                }
+                else
+                {
+                    message = $"{pokemon.PokemonId} could not be upgraded";
+                    caption = $"Upgrade {pokemon.PokemonId} failed";
+                }
+
+                result = MessageBox.Show(message, caption, buttons, MessageBoxIcon.Information);
+            }
+            catch (TaskCanceledException) { await PowerUp(pokemon); }
+            catch (UriFormatException) { await PowerUp(pokemon); }
+            catch (ArgumentOutOfRangeException) { await PowerUp(pokemon); }
+            catch (ArgumentNullException) { await PowerUp(pokemon); }
+            catch (NullReferenceException) { await PowerUp(pokemon); }
+            catch (Exception ex) { await PowerUp(pokemon); }
+        }
+
+        private void dataGridView1_SortCompare(object sender, DataGridViewSortCompareEventArgs e)
+        {
+            //sort the numeric column
+            if (!e.Column.Name.Equals("Name") && !e.Column.Name.Equals("Image"))
+            {
+                e.SortResult = (Convert.ToDouble(e.CellValue1) - Convert.ToDouble(e.CellValue2) > 0) ? 1 : (Convert.ToDouble(e.CellValue1) - Convert.ToDouble(e.CellValue2) < 0) ? -1 : 0;
+            }
+
+            // if the value is same, then sort by IV
+            if (e.SortResult == 0 && e.Column.Name.Equals("IV %"))
+            {
+                e.SortResult = Convert.ToInt32(this.dataGridView1.Rows[e.RowIndex1].Cells["IV %"].Value.ToString()) -
+                        Convert.ToInt32(this.dataGridView1.Rows[e.RowIndex2].Cells["IV %"].Value.ToString());
+            }
+
+            e.Handled = true;
+        }
+
+
+        private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
+        {
+            if (e.ColumnIndex != 0)
+                return;
+
+            bool isChecked = Convert.ToBoolean(this.dataGridView1.Rows[e.RowIndex].Cells["Checkbox"].EditedFormattedValue);
+
+            if (isChecked)
+            {
+                this.dataGridView1.Rows[e.RowIndex].Cells["Checkbox"].Value = true;
+                this.dataGridView1.Rows[e.RowIndex].Selected = true;
+            }
+            else
+            {
+                this.dataGridView1.Rows[e.RowIndex].Cells["Checkbox"].Value = false;
+                this.dataGridView1.Rows[e.RowIndex].Selected = false;
+            }
+        }
+    }
 }
\ No newline at end of file
diff --git a/PokemonGo/RocketAPI/Window/PokemonForm.cs b/PokemonGo/RocketAPI/Window/PokemonForm.cs
index 89cfe15..c558040 100644
--- a/PokemonGo/RocketAPI/Window/PokemonForm.cs
+++ b/PokemonGo/RocketAPI/Window/PokemonForm.cs
@@ -32,22 +32,15 @@ namespace PokemonGo.RocketAPI.Window

             try
             {
-                switch (ClientSettings.AuthType)
-                {
-                    case AuthType.Ptc:
-                        await client.DoPtcLogin(ClientSettings.PtcUsername, ClientSettings.PtcPassword);
-                        break;
-                    case AuthType.Google:
-                        await client.DoGoogleLogin();
-                        break;
-                }
+
+                await client.Login();

                 await client.SetServer();
                 var inventory = await client.GetInventory();
                 var pokemons =
                     inventory.InventoryDelta.InventoryItems.Select(i => i.InventoryItemData?.Pokemon)
                         .Where(p => p != null && p?.PokemonId > 0).OrderByDescending(key => key.Cp);
-
+

                 foreach (var pokemon in pokemons)
                 {
diff --git a/PokemonGo/RocketAPI/Window/PokemonGo.RocketAPI.Window.csproj b/PokemonGo/RocketAPI/Window/PokemonGo.RocketAPI.Window.csproj
index a27ef90..9de227c 100644
--- a/PokemonGo/RocketAPI/Window/PokemonGo.RocketAPI.Window.csproj
+++ b/PokemonGo/RocketAPI/Window/PokemonGo.RocketAPI.Window.csproj
@@ -38,6 +38,10 @@
   <PropertyGroup>
     <NoWin32Manifest>true</NoWin32Manifest>
   </PropertyGroup>
+  <PropertyGroup>
+    <StartupObject>
+    </StartupObject>
+  </PropertyGroup>
   <ItemGroup>
     <Reference Include="GMap.NET.Core">
       <HintPath>lib\GMap.NET.Core.dll</HintPath>
@@ -48,6 +52,14 @@
     <Reference Include="Google.Protobuf">
       <HintPath>..\..\..\packages\Google.Protobuf.3.0.0-beta3\lib\dotnet\Google.Protobuf.dll</HintPath>
     </Reference>
+    <Reference Include="ObjectListView, Version=2.9.1.1072, Culture=neutral, PublicKeyToken=b1c5bf581481bcd4, processorArchitecture=MSIL">
+      <HintPath>..\..\..\packages\ObjectListView.Official.2.9.1\lib\net20\ObjectListView.dll</HintPath>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="S2Geometry, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
+      <HintPath>..\..\..\packages\S2Geometry.1.0.3\lib\portable-net45+wp8+win8\S2Geometry.dll</HintPath>
+      <Private>True</Private>
+    </Reference>
     <Reference Include="System" />
     <Reference Include="System.Configuration" />
     <Reference Include="System.Core" />
@@ -62,9 +74,6 @@
     <Reference Include="System.Xml" />
   </ItemGroup>
   <ItemGroup>
-    <Compile Include="CueTextBox.cs">
-      <SubType>Component</SubType>
-    </Compile>
     <Compile Include="LocationManager.cs" />
     <Compile Include="MainForm.cs">
       <SubType>Form</SubType>
@@ -72,12 +81,19 @@
     <Compile Include="MainForm.Designer.cs">
       <DependentUpon>MainForm.cs</DependentUpon>
     </Compile>
+    <Compile Include="MapForm.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="MapForm.Designer.cs">
+      <DependentUpon>MapForm.cs</DependentUpon>
+    </Compile>
     <Compile Include="PokemonForm.cs">
       <SubType>Form</SubType>
     </Compile>
     <Compile Include="PokemonForm.Designer.cs">
       <DependentUpon>PokemonForm.cs</DependentUpon>
     </Compile>
+    <Compile Include="RouteOptimizer.cs" />
     <Compile Include="PokeUi.cs">
       <SubType>Form</SubType>
     </Compile>
@@ -86,6 +102,7 @@
     </Compile>
     <Compile Include="Program.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
+    <Compile Include="S2GMapDrawer.cs" />
     <Compile Include="Settings.cs" />
     <Compile Include="SettingsForm.cs">
       <SubType>Form</SubType>
@@ -96,6 +113,9 @@
     <EmbeddedResource Include="MainForm.resx">
       <DependentUpon>MainForm.cs</DependentUpon>
     </EmbeddedResource>
+    <EmbeddedResource Include="MapForm.resx">
+      <DependentUpon>MapForm.cs</DependentUpon>
+    </EmbeddedResource>
     <EmbeddedResource Include="PokemonForm.resx">
       <DependentUpon>PokemonForm.cs</DependentUpon>
     </EmbeddedResource>
@@ -110,6 +130,7 @@
     <Compile Include="Properties\Resources.Designer.cs">
       <AutoGen>True</AutoGen>
       <DependentUpon>Resources.resx</DependentUpon>
+      <DesignTime>True</DesignTime>
     </Compile>
     <EmbeddedResource Include="SettingsForm.resx">
       <DependentUpon>SettingsForm.cs</DependentUpon>
@@ -138,6 +159,459 @@
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </None>
   </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_1.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_3.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_4.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_5.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_6.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_7.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_8.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_9.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_10.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_11.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_12.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_13.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_14.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_15.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_16.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_17.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_18.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_19.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_20.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_21.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_22.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_23.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_24.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_25.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_26.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_27.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_28.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_29.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_30.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_31.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_32.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_33.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_34.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_35.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_36.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_37.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_38.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_39.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_40.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_41.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_42.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_43.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_44.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_45.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_46.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_47.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_48.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_49.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_50.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_51.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_52.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_53.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_54.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_55.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_56.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_57.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_58.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_59.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_60.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_61.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_62.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_63.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_64.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_65.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_66.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_67.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_68.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_69.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_70.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_71.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_72.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_73.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_74.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_75.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_76.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_77.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_78.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_79.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_80.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_81.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_82.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_83.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_84.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_85.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_86.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_87.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_88.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_89.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_90.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_91.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_92.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_93.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_94.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_95.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_96.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_97.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_98.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_99.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_100.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_101.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_102.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_103.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_104.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_105.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_106.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_107.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_108.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_109.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_110.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_111.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_112.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_113.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_114.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_115.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_116.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_117.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_118.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_119.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_120.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_121.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_122.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_123.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_124.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_125.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_126.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_127.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_128.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_129.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_130.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_131.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_132.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_133.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_134.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_135.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_136.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_137.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_138.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_139.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_140.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_141.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_142.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_143.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_144.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_145.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_146.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_147.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_148.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_149.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_150.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="img\Pokemon_151.png" />
+  </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
   <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
        Other similar extension points exist, see Microsoft.Common.targets.
diff --git a/PokemonGo/RocketAPI/Window/Properties/AssemblyInfo.cs b/PokemonGo/RocketAPI/Window/Properties/AssemblyInfo.cs
index b614cd6..bb8d2be 100644
--- a/PokemonGo/RocketAPI/Window/Properties/AssemblyInfo.cs
+++ b/PokemonGo/RocketAPI/Window/Properties/AssemblyInfo.cs
@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
 // You can specify all the values or you can default the Build and Revision Numbers
 // by using the '*' as shown below:
 // [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.6.5.1")]
+[assembly: AssemblyVersion("1.7.3.2")]
 [assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/PokemonGo/RocketAPI/Window/Properties/Resources.Designer.cs b/PokemonGo/RocketAPI/Window/Properties/Resources.Designer.cs
index a7333b1..540bcb6 100644
--- a/PokemonGo/RocketAPI/Window/Properties/Resources.Designer.cs
+++ b/PokemonGo/RocketAPI/Window/Properties/Resources.Designer.cs
@@ -1,71 +1,1573 @@
 //------------------------------------------------------------------------------
 // <auto-generated>
-//     This code was generated by a tool.
-//     Runtime Version:4.0.30319.42000
+//     此代码由工具生成。
+//     运行时版本:4.0.30319.42000
 //
-//     Changes to this file may cause incorrect behavior and will be lost if
-//     the code is regenerated.
+//     对此文件的更改可能会导致不正确的行为,并且如果
+//     重新生成代码,这些更改将会丢失。
 // </auto-generated>
 //------------------------------------------------------------------------------

-namespace PokemonGo.RocketAPI.Window.Properties
-{
-
-
+namespace PokemonGo.RocketAPI.Window.Properties {
+    using System;
+
+
     /// <summary>
-    ///   A strongly-typed resource class, for looking up localized strings, etc.
+    ///   一个强类型的资源类,用于查找本地化的字符串等。
     /// </summary>
-    // 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.
+    // 此类是由 StronglyTypedResourceBuilder
+    // 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
+    // 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
+    // (以 /str 作为命令选项),或重新生成 VS 项目。
     [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    internal class Resources
-    {
-
+    internal class Resources {
+
         private static global::System.Resources.ResourceManager resourceMan;
-
+
         private static global::System.Globalization.CultureInfo resourceCulture;
-
+
         [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
-        internal Resources()
-        {
+        internal Resources() {
         }
-
+
         /// <summary>
-        ///   Returns the cached ResourceManager instance used by this class.
+        ///   返回此类使用的缓存的 ResourceManager 实例。
         /// </summary>
         [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
-        internal static global::System.Resources.ResourceManager ResourceManager
-        {
-            get
-            {
-                if ((resourceMan == null))
-                {
+        internal static global::System.Resources.ResourceManager ResourceManager {
+            get {
+                if (object.ReferenceEquals(resourceMan, null)) {
                     global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("PokemonGo.RocketAPI.Window.Properties.Resources", typeof(Resources).Assembly);
                     resourceMan = temp;
                 }
                 return resourceMan;
             }
         }
-
+
         /// <summary>
-        ///   Overrides the current thread's CurrentUICulture property for all
-        ///   resource lookups using this strongly typed resource class.
+        ///   使用此强类型资源类,为所有资源查找
+        ///   重写当前线程的 CurrentUICulture 属性。
         /// </summary>
         [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
-        internal static global::System.Globalization.CultureInfo Culture
-        {
-            get
-            {
+        internal static global::System.Globalization.CultureInfo Culture {
+            get {
                 return resourceCulture;
             }
-            set
-            {
+            set {
                 resourceCulture = value;
             }
         }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_1 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_1", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_10 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_10", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_100 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_100", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_101 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_101", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_102 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_102", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_103 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_103", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_104 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_104", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_105 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_105", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_106 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_106", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_107 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_107", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_108 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_108", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_109 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_109", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_11 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_11", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_110 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_110", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_111 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_111", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_112 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_112", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_113 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_113", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_114 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_114", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_115 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_115", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_116 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_116", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_117 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_117", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_118 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_118", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_119 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_119", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_12 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_12", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_120 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_120", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_121 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_121", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_122 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_122", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_123 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_123", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_124 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_124", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_125 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_125", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_126 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_126", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_127 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_127", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_128 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_128", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_129 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_129", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_13 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_13", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_130 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_130", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_131 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_131", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_132 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_132", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_133 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_133", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_134 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_134", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_135 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_135", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_136 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_136", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_137 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_137", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_138 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_138", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_139 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_139", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_14 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_14", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_140 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_140", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_141 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_141", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_142 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_142", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_143 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_143", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_144 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_144", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_145 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_145", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_146 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_146", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_147 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_147", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_148 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_148", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_149 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_149", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_15 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_15", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_150 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_150", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_151 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_151", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_16 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_16", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_17 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_17", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_18 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_18", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_19 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_19", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_2 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_2", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_20 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_20", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_21 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_21", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_22 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_22", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_23 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_23", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_24 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_24", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_25 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_25", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_26 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_26", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_27 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_27", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_28 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_28", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_29 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_29", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_3 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_3", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_30 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_30", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_31 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_31", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_32 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_32", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_33 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_33", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_34 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_34", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_35 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_35", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_36 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_36", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_37 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_37", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_38 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_38", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_39 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_39", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_4 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_4", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_40 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_40", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_41 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_41", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_42 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_42", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_43 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_43", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_44 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_44", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_45 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_45", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_46 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_46", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_47 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_47", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_48 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_48", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_49 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_49", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_5 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_5", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_50 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_50", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_51 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_51", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_52 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_52", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_53 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_53", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_54 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_54", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_55 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_55", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_56 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_56", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_57 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_57", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_58 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_58", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_59 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_59", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_6 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_6", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_60 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_60", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_61 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_61", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_62 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_62", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_63 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_63", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_64 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_64", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_65 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_65", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_66 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_66", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_67 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_67", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_68 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_68", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_69 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_69", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_7 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_7", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_70 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_70", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_71 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_71", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_72 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_72", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_73 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_73", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_74 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_74", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_75 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_75", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_76 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_76", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_77 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_77", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_78 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_78", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_79 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_79", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_8 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_8", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_80 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_80", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_81 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_81", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_82 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_82", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_83 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_83", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_84 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_84", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_85 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_85", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_86 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_86", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_87 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_87", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_88 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_88", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_89 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_89", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_9 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_9", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_90 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_90", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_91 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_91", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_92 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_92", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_93 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_93", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_94 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_94", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_95 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_95", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_96 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_96", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_97 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_97", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_98 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_98", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Pokemon_99 {
+            get {
+                object obj = ResourceManager.GetObject("Pokemon_99", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
     }
 }
diff --git a/PokemonGo/RocketAPI/Window/Properties/Resources.resx b/PokemonGo/RocketAPI/Window/Properties/Resources.resx
index af7dbeb..1232c22 100644
--- a/PokemonGo/RocketAPI/Window/Properties/Resources.resx
+++ b/PokemonGo/RocketAPI/Window/Properties/Resources.resx
@@ -46,7 +46,7 @@

     mimetype: application/x-microsoft.net.object.binary.base64
     value   : The object must be serialized with
-            : System.Serialization.Formatters.Binary.BinaryFormatter
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
             : and then encoded with base64 encoding.

     mimetype: application/x-microsoft.net.object.soap.base64
@@ -60,6 +60,7 @@
             : and then encoded with base64 encoding.
     -->
   <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
     <xsd:element name="root" msdata:IsDataSet="true">
       <xsd:complexType>
         <xsd:choice maxOccurs="unbounded">
@@ -68,9 +69,10 @@
               <xsd:sequence>
                 <xsd:element name="value" type="xsd:string" minOccurs="0" />
               </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" />
+              <xsd:attribute name="name" use="required" type="xsd:string" />
               <xsd:attribute name="type" type="xsd:string" />
               <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
             </xsd:complexType>
           </xsd:element>
           <xsd:element name="assembly">
@@ -85,9 +87,10 @@
                 <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
                 <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
               </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
               <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
               <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
             </xsd:complexType>
           </xsd:element>
           <xsd:element name="resheader">
@@ -109,9 +112,463 @@
     <value>2.0</value>
   </resheader>
   <resheader name="reader">
-    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </resheader>
   <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </resheader>
+  <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
+  <data name="Pokemon_1" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_10" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_10.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_100" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_100.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_101" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_101.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_102" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_102.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_103" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_103.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_104" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_104.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_105" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_105.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_106" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_106.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_107" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_107.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_108" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_108.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_109" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_109.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_11" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_11.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_110" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_110.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_111" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_111.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_112" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_112.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_113" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_113.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_114" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_114.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_115" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_115.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_116" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_116.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_117" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_117.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_118" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_118.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_119" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_119.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_12" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_12.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_120" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_120.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_121" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_121.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_122" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_122.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_123" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_123.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_124" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_124.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_125" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_125.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_126" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_126.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_127" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_127.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_128" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_128.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_129" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_129.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_13" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_13.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_130" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_130.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_131" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_131.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_132" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_132.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_133" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_133.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_134" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_134.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_135" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_135.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_136" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_136.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_137" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_137.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_138" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_138.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_139" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_139.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_14" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_14.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_140" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_140.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_141" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_141.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_142" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_142.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_143" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_143.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_144" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_144.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_145" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_145.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_146" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_146.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_147" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_147.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_148" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_148.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_149" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_149.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_15" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_15.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_150" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_150.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_151" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_151.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_16" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_17" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_17.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_18" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_18.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_19" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_19.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_2" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_20" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_20.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_21" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_21.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_22" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_22.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_23" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_23.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_24" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_24.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_25" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_25.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_26" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_26.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_27" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_27.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_28" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_28.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_29" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_29.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_3" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_3.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_30" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_30.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_31" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_31.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_32" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_33" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_33.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_34" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_34.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_35" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_35.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_36" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_36.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_37" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_37.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_38" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_38.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_39" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_39.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_4" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_4.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_40" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_41" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_41.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_42" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_42.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_43" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_43.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_44" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_44.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_45" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_45.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_46" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_46.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_47" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_47.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_48" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_49" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_49.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_5" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_5.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_50" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_50.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_51" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_51.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_52" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_52.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_53" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_53.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_54" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_54.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_55" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_55.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_56" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_56.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_57" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_57.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_58" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_58.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_59" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_59.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_6" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_6.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_60" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_60.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_61" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_61.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_62" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_62.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_63" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_63.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_64" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_64.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_65" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_65.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_66" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_66.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_67" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_67.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_68" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_68.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_69" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_69.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_7" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_7.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_70" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_70.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_71" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_71.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_72" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_72.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_73" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_73.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_74" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_74.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_75" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_75.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_76" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_76.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_77" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_77.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_78" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_78.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_79" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_79.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_8" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_8.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_80" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_80.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_81" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_81.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_82" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_82.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_83" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_83.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_84" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_84.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_85" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_85.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_86" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_86.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_87" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_87.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_88" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_88.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_89" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_89.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_9" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_9.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_90" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_90.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_91" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_91.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_92" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_92.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_93" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_93.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_94" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_94.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_95" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_95.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_96" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_96.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_97" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_97.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_98" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_98.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Pokemon_99" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\img\Pokemon_99.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
 </root>
\ No newline at end of file
diff --git a/PokemonGo/RocketAPI/Window/RouteOptimizer.cs b/PokemonGo/RocketAPI/Window/RouteOptimizer.cs
new file mode 100644
index 0000000..8b4f343
--- /dev/null
+++ b/PokemonGo/RocketAPI/Window/RouteOptimizer.cs
@@ -0,0 +1,144 @@
+using GMap.NET;
+using GMap.NET.WindowsForms;
+using PokemonGo.RocketAPI.GeneratedCode;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading;
+using System.Threading.Tasks;
+
+namespace PokemonGo.RocketAPI.Window
+{
+    public static class RouteOptimizer
+    {
+        public static List<FortData> Optimize(FortData[] pokeStops, LatLong latlng, GMapOverlay routeOverlay)
+        {
+            List<FortData> optimizedRoute = new List<FortData>(pokeStops);
+
+            // NN
+            FortData NN = FindNN(optimizedRoute, latlng.Latitude, latlng.Longitude);
+            optimizedRoute.Remove(NN);
+            optimizedRoute.Insert(0, NN);
+            for (int i = 1; i < pokeStops.Length; i++)
+            {
+                NN = FindNN(optimizedRoute.Skip(i), NN.Latitude, NN.Longitude);
+                optimizedRoute.Remove(NN);
+                optimizedRoute.Insert(i, NN);
+                Visualize(optimizedRoute, routeOverlay);
+            }
+
+            // 2-Opt
+            bool isOptimized;
+            do
+            {
+                optimizedRoute = Optimize2Opt(optimizedRoute, out isOptimized);
+                Visualize(optimizedRoute, routeOverlay);
+            }
+            while (isOptimized);
+
+            return optimizedRoute;
+        }
+
+        private static void Visualize(List<FortData> pokeStops, GMapOverlay routeOverlay)
+        {
+            MainForm.synchronizationContext.Post(new SendOrPostCallback(o =>
+            {
+                List<FortData> p = new List<FortData>((List<FortData>)o);
+                routeOverlay.Markers.Clear();
+                List<PointLatLng> routePoint = (from pokeStop in p where pokeStop != null select new PointLatLng(pokeStop.Latitude, pokeStop.Longitude)).ToList();
+                routeOverlay.Routes.Clear();
+                routeOverlay.Routes.Add(new GMapRoute(routePoint, "Walking Path"));
+            }), pokeStops);
+        }
+
+        private static List<FortData> Optimize2Opt(List<FortData> pokeStops, out bool isOptimized)
+        {
+            int n = pokeStops.Count;
+            float bestGain = 0;
+            int bestI = -1;
+            int bestJ = -1;
+
+            for (int ai = 0; ai < n; ai++)
+            {
+                for (int ci = 0; ci < n; ci++)
+                {
+                    int bi = (ai + 1) % n;
+                    int di = (ci + 1) % n;
+
+                    FortData a = pokeStops[ai];
+                    FortData b = pokeStops[bi];
+                    FortData c = pokeStops[ci];
+                    FortData d = pokeStops[di];
+
+                    float ab = GetDistance(a, b);
+                    float cd = GetDistance(c, d);
+                    float ac = GetDistance(a, c);
+                    float bd = GetDistance(b, d);
+
+                    if (ci != ai && ci != bi)
+                    {
+                        float gain = (ab + cd) - (ac + bd);
+                        if (gain > bestGain)
+                        {
+                            bestGain = gain;
+                            bestI = bi;
+                            bestJ = ci;
+                        }
+                    }
+                }
+            }
+
+            if (bestI != -1)
+            {
+                List<FortData> optimizedRoute;
+                if (bestI > bestJ)
+                {
+                    optimizedRoute = new List<FortData>();
+                    optimizedRoute.Add(pokeStops[0]);
+                    optimizedRoute.AddRange(pokeStops.Skip(bestI));
+                    optimizedRoute.Reverse(1, n - bestI);
+                    optimizedRoute.AddRange(pokeStops.GetRange(bestJ + 1, bestI - bestJ - 1));
+                    optimizedRoute.AddRange(pokeStops.GetRange(1, bestJ));
+                    optimizedRoute.Reverse(n - bestJ, bestJ);
+                }
+                else if (bestI == 0)
+                {
+                    optimizedRoute = new List<FortData>(pokeStops);
+                    optimizedRoute.Reverse(bestJ + 1, n - bestJ - 1);
+                }
+                else
+                {
+                    optimizedRoute = new List<FortData>(pokeStops);
+                    optimizedRoute.Reverse(bestI, bestJ - bestI + 1);
+                }
+
+                isOptimized = true;
+                return optimizedRoute;
+            }
+            isOptimized = false;
+            return pokeStops;
+        }
+
+        private static FortData FindNN(IEnumerable<FortData> pokeStops, double cLatitude, double cLongitude)
+        {
+            return pokeStops.OrderBy(p => GetDistance(cLatitude, cLongitude, p.Latitude, p.Longitude)).First();
+        }
+
+        private static float GetDistance(FortData a, FortData b)
+        {
+            return GetDistance(a.Latitude, a.Longitude, b.Latitude, b.Longitude);
+        }
+
+        private static float GetDistance(double lat1, double lng1, double lat2, double lng2)
+        {
+            double R = 6371e3;
+            Func<double, float> toRad = x => (float)(x * (Math.PI / 180));
+            lat1 = toRad(lat1);
+            lat2 = toRad(lat2);
+            float dLng = toRad(lng2 - lng1);
+
+            return (float)(Math.Acos(Math.Sin(lat1) * Math.Sin(lat2) + Math.Cos(lat1) * Math.Cos(lat2) * Math.Cos(dLng)) * R);
+        }
+    }
+}
diff --git a/PokemonGo/RocketAPI/Window/S2GMapDrawer.cs b/PokemonGo/RocketAPI/Window/S2GMapDrawer.cs
new file mode 100644
index 0000000..7fc3371
--- /dev/null
+++ b/PokemonGo/RocketAPI/Window/S2GMapDrawer.cs
@@ -0,0 +1,36 @@
+using Google.Common.Geometry;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using GMap.NET.WindowsForms;
+using GMap.NET.WindowsForms.Markers;
+using GMap.NET;
+using System.Drawing;
+
+namespace PokemonGo.RocketAPI.Window
+{
+    class S2GMapDrawer
+    {
+        public static void DrawS2Cells(List<ulong> cellsIds, GMapOverlay mapLayer)
+        {
+            for (int i=0; i<cellsIds.Count; i++)
+            {
+                S2CellId cellId = new S2CellId(cellsIds[i]);
+                S2Cell cell = new S2Cell(cellId);
+
+                List<PointLatLng> points = new List<PointLatLng>();
+                for (int j=0; j<4; j++)
+                {
+                    S2LatLng point = new S2LatLng(cell.GetVertex(j));
+                    points.Add(new PointLatLng(point.LatDegrees, point.LngDegrees));
+                }
+                GMapPolygon polygon = new GMapPolygon(points, "mypolygon");
+                polygon.Fill = new SolidBrush(Color.FromArgb(50, Color.Red));
+                polygon.Stroke = new Pen(Color.Red, 1);
+                mapLayer.Polygons.Add(polygon);
+            }
+        }
+    }
+}
diff --git a/PokemonGo/RocketAPI/Window/Settings.cs b/PokemonGo/RocketAPI/Window/Settings.cs
index 75f32f9..5bbbf9f 100644
--- a/PokemonGo/RocketAPI/Window/Settings.cs
+++ b/PokemonGo/RocketAPI/Window/Settings.cs
@@ -47,6 +47,7 @@ namespace PokemonGo.RocketAPI.Window
         public int TransferCPThreshold => GetSetting() != string.Empty ? int.Parse(GetSetting(), CultureInfo.InvariantCulture) : 0;
         public int TransferIVThreshold => GetSetting() != string.Empty ? int.Parse(GetSetting(), CultureInfo.InvariantCulture) : 0;
         public int TravelSpeed => GetSetting() != string.Empty ? int.Parse(GetSetting(), CultureInfo.InvariantCulture) : 60;
+        public int ImageSize => GetSetting() != string.Empty ? int.Parse(GetSetting(), CultureInfo.InvariantCulture) : 50;
         public bool EvolveAllGivenPokemons => GetSetting() != string.Empty && Convert.ToBoolean(GetSetting(), CultureInfo.InvariantCulture);
         public bool CatchPokemon => GetSetting() != string.Empty && Convert.ToBoolean(GetSetting(), CultureInfo.InvariantCulture);

@@ -62,6 +63,8 @@ namespace PokemonGo.RocketAPI.Window

         public string PtcUsername => GetSetting() != string.Empty ? GetSetting() : "username";
         public string PtcPassword => GetSetting() != string.Empty ? GetSetting() : "password";
+        public string Email => GetSetting() != string.Empty ? GetSetting() : "Email";
+        public string Password => GetSetting() != string.Empty ? GetSetting() : "Password";

         public double DefaultLatitude
         {
@@ -83,18 +86,29 @@ namespace PokemonGo.RocketAPI.Window

         public bool Recycler => GetSetting() != string.Empty && Convert.ToBoolean(GetSetting(), CultureInfo.InvariantCulture);

+        private int MaxItemPokeBall => GetSetting() != string.Empty ? Convert.ToInt16(GetSetting()) : 500;
+        private int MaxItemGreatBall => GetSetting() != string.Empty ? Convert.ToInt16(GetSetting()) : 500;
+        private int MaxItemUltraBall => GetSetting() != string.Empty ? Convert.ToInt16(GetSetting()) : 500;
+        private int MaxItemMasterBall => GetSetting() != string.Empty ? Convert.ToInt16(GetSetting()) : 500;
+        private int MaxItemRazzBerry => GetSetting() != string.Empty ? Convert.ToInt16(GetSetting()) : 500;
+        private int MaxItemRevive => GetSetting() != string.Empty ? Convert.ToInt16(GetSetting()) : 500;
+        private int MaxItemPotion => GetSetting() != string.Empty ? Convert.ToInt16(GetSetting()) : 500;
+        private int MaxItemSuperPotion => GetSetting() != string.Empty ? Convert.ToInt16(GetSetting()) : 500;
+        private int MaxItemHyperPotion => GetSetting() != string.Empty ? Convert.ToInt16(GetSetting()) : 500;
+        private int MaxItemMaxPotion => GetSetting() != string.Empty ? Convert.ToInt16(GetSetting()) : 500;
+
         ICollection<KeyValuePair<ItemId, int>> ISettings.ItemRecycleFilter => new[]
         {
-            new KeyValuePair<ItemId, int>(ItemId.ItemPokeBall, 20),
-            new KeyValuePair<ItemId, int>(ItemId.ItemGreatBall, 50),
-            new KeyValuePair<ItemId, int>(ItemId.ItemUltraBall, 100),
-            new KeyValuePair<ItemId, int>(ItemId.ItemMasterBall, 200),
-            new KeyValuePair<ItemId, int>(ItemId.ItemRazzBerry, 20),
-            new KeyValuePair<ItemId, int>(ItemId.ItemRevive, 20),
-            new KeyValuePair<ItemId, int>(ItemId.ItemPotion, 0),
-            new KeyValuePair<ItemId, int>(ItemId.ItemSuperPotion, 0),
-            new KeyValuePair<ItemId, int>(ItemId.ItemHyperPotion, 50),
-            new KeyValuePair<ItemId, int>(ItemId.ItemMaxPotion, 100)
+            new KeyValuePair<ItemId, int>(ItemId.ItemPokeBall, MaxItemPokeBall),
+            new KeyValuePair<ItemId, int>(ItemId.ItemGreatBall, MaxItemGreatBall),
+            new KeyValuePair<ItemId, int>(ItemId.ItemUltraBall, MaxItemUltraBall),
+            new KeyValuePair<ItemId, int>(ItemId.ItemMasterBall, MaxItemMasterBall),
+            new KeyValuePair<ItemId, int>(ItemId.ItemRazzBerry, MaxItemRazzBerry),
+            new KeyValuePair<ItemId, int>(ItemId.ItemRevive, MaxItemRevive),
+            new KeyValuePair<ItemId, int>(ItemId.ItemPotion, MaxItemPotion),
+            new KeyValuePair<ItemId, int>(ItemId.ItemSuperPotion, MaxItemSuperPotion),
+            new KeyValuePair<ItemId, int>(ItemId.ItemHyperPotion, MaxItemHyperPotion),
+            new KeyValuePair<ItemId, int>(ItemId.ItemMaxPotion, MaxItemMaxPotion)
         };

         public int RecycleItemsInterval => GetSetting() != string.Empty ? Convert.ToInt16(GetSetting()) : 60;
diff --git a/PokemonGo/RocketAPI/Window/SettingsForm.Designer.cs b/PokemonGo/RocketAPI/Window/SettingsForm.Designer.cs
index 07e02a7..816d7e0 100644
--- a/PokemonGo/RocketAPI/Window/SettingsForm.Designer.cs
+++ b/PokemonGo/RocketAPI/Window/SettingsForm.Designer.cs
@@ -30,8 +30,8 @@
             System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SettingsForm));
             this.authTypeLabel = new System.Windows.Forms.Label();
             this.authTypeCb = new System.Windows.Forms.ComboBox();
-            this.ptcUserLabel = new System.Windows.Forms.Label();
-            this.ptcPasswordLabel = new System.Windows.Forms.Label();
+            this.UserLabel = new System.Windows.Forms.Label();
+            this.PasswordLabel = new System.Windows.Forms.Label();
             this.latLabel = new System.Windows.Forms.Label();
             this.longiLabel = new System.Windows.Forms.Label();
             this.label1 = new System.Windows.Forms.Label();
@@ -39,8 +39,8 @@
             this.label3 = new System.Windows.Forms.Label();
             this.label4 = new System.Windows.Forms.Label();
             this.label5 = new System.Windows.Forms.Label();
-            this.ptcUserText = new System.Windows.Forms.TextBox();
-            this.ptcPassText = new System.Windows.Forms.TextBox();
+            this.UserLoginBox = new System.Windows.Forms.TextBox();
+            this.UserPasswordBox = new System.Windows.Forms.TextBox();
             this.latitudeText = new System.Windows.Forms.TextBox();
             this.longitudeText = new System.Windows.Forms.TextBox();
             this.razzmodeCb = new System.Windows.Forms.ComboBox();
@@ -55,11 +55,11 @@
             this.AdressBox = new System.Windows.Forms.TextBox();
             this.trackBar = new System.Windows.Forms.TrackBar();
             this.panel1 = new System.Windows.Forms.Panel();
+            this.TravelSpeedBox = new System.Windows.Forms.TextBox();
             this.CatchPokemonBox = new System.Windows.Forms.CheckBox();
             this.CatchPokemonText = new System.Windows.Forms.Label();
             this.transferIVThresText = new System.Windows.Forms.TextBox();
             this.TravelSpeedText = new System.Windows.Forms.Label();
-            this.TravelSpeedBox = new System.Windows.Forms.TextBox();
             this.label6 = new System.Windows.Forms.Label();
             this.groupBox1.SuspendLayout();
             ((System.ComponentModel.ISupportInitialize)(this.trackBar)).BeginInit();
@@ -71,7 +71,7 @@
             this.authTypeLabel.AutoSize = true;
             this.authTypeLabel.Location = new System.Drawing.Point(3, 7);
             this.authTypeLabel.Name = "authTypeLabel";
-            this.authTypeLabel.Size = new System.Drawing.Size(63, 13);
+            this.authTypeLabel.Size = new System.Drawing.Size(71, 12);
             this.authTypeLabel.TabIndex = 0;
             this.authTypeLabel.Text = "Login Type:";
             this.authTypeLabel.Click += new System.EventHandler(this.authTypeLabel_Click);
@@ -82,72 +82,72 @@
             this.authTypeCb.Items.AddRange(new object[] {
             "google",
             "Ptc"});
-            this.authTypeCb.Location = new System.Drawing.Point(68, 4);
+            this.authTypeCb.Location = new System.Drawing.Point(82, 4);
             this.authTypeCb.Name = "authTypeCb";
-            this.authTypeCb.Size = new System.Drawing.Size(136, 21);
+            this.authTypeCb.Size = new System.Drawing.Size(136, 20);
             this.authTypeCb.TabIndex = 1;
             this.authTypeCb.SelectedIndexChanged += new System.EventHandler(this.authTypeCb_SelectedIndexChanged);
             //
-            // ptcUserLabel
+            // UserLabel
             //
-            this.ptcUserLabel.AutoSize = true;
-            this.ptcUserLabel.Location = new System.Drawing.Point(3, 36);
-            this.ptcUserLabel.Name = "ptcUserLabel";
-            this.ptcUserLabel.Size = new System.Drawing.Size(58, 13);
-            this.ptcUserLabel.TabIndex = 2;
-            this.ptcUserLabel.Text = "Username:";
+            this.UserLabel.AutoSize = true;
+            this.UserLabel.Location = new System.Drawing.Point(3, 33);
+            this.UserLabel.Name = "UserLabel";
+            this.UserLabel.Size = new System.Drawing.Size(59, 12);
+            this.UserLabel.TabIndex = 2;
+            this.UserLabel.Text = "Username:";
             //
-            // ptcPasswordLabel
+            // PasswordLabel
             //
-            this.ptcPasswordLabel.AutoSize = true;
-            this.ptcPasswordLabel.Location = new System.Drawing.Point(3, 62);
-            this.ptcPasswordLabel.Name = "ptcPasswordLabel";
-            this.ptcPasswordLabel.Size = new System.Drawing.Size(56, 13);
-            this.ptcPasswordLabel.TabIndex = 3;
-            this.ptcPasswordLabel.Text = "Password:";
+            this.PasswordLabel.AutoSize = true;
+            this.PasswordLabel.Location = new System.Drawing.Point(3, 57);
+            this.PasswordLabel.Name = "PasswordLabel";
+            this.PasswordLabel.Size = new System.Drawing.Size(59, 12);
+            this.PasswordLabel.TabIndex = 3;
+            this.PasswordLabel.Text = "Password:";
             //
             // latLabel
             //
             this.latLabel.AutoSize = true;
-            this.latLabel.Location = new System.Drawing.Point(3, 88);
+            this.latLabel.Location = new System.Drawing.Point(3, 81);
             this.latLabel.Name = "latLabel";
-            this.latLabel.Size = new System.Drawing.Size(48, 13);
+            this.latLabel.Size = new System.Drawing.Size(59, 12);
             this.latLabel.TabIndex = 4;
             this.latLabel.Text = "Latitude:";
             //
             // longiLabel
             //
             this.longiLabel.AutoSize = true;
-            this.longiLabel.Location = new System.Drawing.Point(3, 114);
+            this.longiLabel.Location = new System.Drawing.Point(3, 105);
             this.longiLabel.Name = "longiLabel";
-            this.longiLabel.Size = new System.Drawing.Size(57, 13);
+            this.longiLabel.Size = new System.Drawing.Size(65, 12);
             this.longiLabel.TabIndex = 5;
             this.longiLabel.Text = "Longitude:";
             //
             // label1
             //
             this.label1.AutoSize = true;
-            this.label1.Location = new System.Drawing.Point(3, 140);
+            this.label1.Location = new System.Drawing.Point(3, 129);
             this.label1.Name = "label1";
-            this.label1.Size = new System.Drawing.Size(87, 13);
+            this.label1.Size = new System.Drawing.Size(95, 12);
             this.label1.TabIndex = 6;
             this.label1.Text = "Razzberry Mode:";
             //
             // label2
             //
             this.label2.AutoSize = true;
-            this.label2.Location = new System.Drawing.Point(3, 193);
+            this.label2.Location = new System.Drawing.Point(3, 178);
             this.label2.Name = "label2";
-            this.label2.Size = new System.Drawing.Size(76, 13);
+            this.label2.Size = new System.Drawing.Size(89, 12);
             this.label2.TabIndex = 7;
             this.label2.Text = "Transfer Type:";
             //
             // label3
             //
             this.label3.AutoSize = true;
-            this.label3.Location = new System.Drawing.Point(3, 321);
+            this.label3.Location = new System.Drawing.Point(3, 296);
             this.label3.Name = "label3";
-            this.label3.Size = new System.Drawing.Size(91, 13);
+            this.label3.Size = new System.Drawing.Size(95, 12);
             this.label3.TabIndex = 8;
             this.label3.Text = "Evolve Pokemon:";
             this.label3.Click += new System.EventHandler(this.label3_Click);
@@ -155,49 +155,49 @@
             // label4
             //
             this.label4.AutoSize = true;
-            this.label4.Location = new System.Drawing.Point(3, 220);
+            this.label4.Location = new System.Drawing.Point(3, 203);
             this.label4.Name = "label4";
-            this.label4.Size = new System.Drawing.Size(74, 13);
+            this.label4.Size = new System.Drawing.Size(83, 12);
             this.label4.TabIndex = 9;
             this.label4.Text = "CP Threshold:";
             //
             // label5
             //
             this.label5.AutoSize = true;
-            this.label5.Location = new System.Drawing.Point(3, 167);
+            this.label5.Location = new System.Drawing.Point(3, 154);
             this.label5.Name = "label5";
-            this.label5.Size = new System.Drawing.Size(93, 13);
+            this.label5.Size = new System.Drawing.Size(113, 12);
             this.label5.TabIndex = 10;
             this.label5.Text = "Razzberry Setting:";
             //
-            // ptcUserText
+            // UserLoginBox
             //
-            this.ptcUserText.Location = new System.Drawing.Point(104, 33);
-            this.ptcUserText.Name = "ptcUserText";
-            this.ptcUserText.Size = new System.Drawing.Size(100, 20);
-            this.ptcUserText.TabIndex = 11;
+            this.UserLoginBox.Location = new System.Drawing.Point(82, 31);
+            this.UserLoginBox.Name = "UserLoginBox";
+            this.UserLoginBox.Size = new System.Drawing.Size(136, 21);
+            this.UserLoginBox.TabIndex = 11;
             //
-            // ptcPassText
+            // UserPasswordBox
             //
-            this.ptcPassText.Location = new System.Drawing.Point(104, 59);
-            this.ptcPassText.Name = "ptcPassText";
-            this.ptcPassText.Size = new System.Drawing.Size(100, 20);
-            this.ptcPassText.TabIndex = 12;
+            this.UserPasswordBox.Location = new System.Drawing.Point(82, 57);
+            this.UserPasswordBox.Name = "UserPasswordBox";
+            this.UserPasswordBox.Size = new System.Drawing.Size(136, 21);
+            this.UserPasswordBox.TabIndex = 12;
             //
             // latitudeText
             //
-            this.latitudeText.Location = new System.Drawing.Point(104, 85);
+            this.latitudeText.Location = new System.Drawing.Point(118, 79);
             this.latitudeText.Name = "latitudeText";
             this.latitudeText.ReadOnly = true;
-            this.latitudeText.Size = new System.Drawing.Size(100, 20);
+            this.latitudeText.Size = new System.Drawing.Size(100, 21);
             this.latitudeText.TabIndex = 13;
             //
             // longitudeText
             //
-            this.longitudeText.Location = new System.Drawing.Point(104, 111);
+            this.longitudeText.Location = new System.Drawing.Point(118, 103);
             this.longitudeText.Name = "longitudeText";
             this.longitudeText.ReadOnly = true;
-            this.longitudeText.Size = new System.Drawing.Size(100, 20);
+            this.longitudeText.Size = new System.Drawing.Size(100, 21);
             this.longitudeText.TabIndex = 14;
             //
             // razzmodeCb
@@ -206,17 +206,18 @@
             this.razzmodeCb.Items.AddRange(new object[] {
             "probability",
             "cp"});
-            this.razzmodeCb.Location = new System.Drawing.Point(104, 137);
+            this.razzmodeCb.Location = new System.Drawing.Point(118, 127);
             this.razzmodeCb.Name = "razzmodeCb";
-            this.razzmodeCb.Size = new System.Drawing.Size(100, 21);
+            this.razzmodeCb.Size = new System.Drawing.Size(100, 20);
             this.razzmodeCb.TabIndex = 15;
             //
             // razzSettingText
             //
-            this.razzSettingText.Location = new System.Drawing.Point(104, 164);
+            this.razzSettingText.Location = new System.Drawing.Point(118, 152);
             this.razzSettingText.Name = "razzSettingText";
-            this.razzSettingText.Size = new System.Drawing.Size(100, 20);
+            this.razzSettingText.Size = new System.Drawing.Size(100, 21);
             this.razzSettingText.TabIndex = 16;
+            this.razzSettingText.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.razzSettingText_KeyPress);
             //
             // transferTypeCb
             //
@@ -229,24 +230,24 @@
             "Duplicate",
             "IV Duplicate",
             "All"});
-            this.transferTypeCb.Location = new System.Drawing.Point(104, 190);
+            this.transferTypeCb.Location = new System.Drawing.Point(118, 176);
             this.transferTypeCb.Name = "transferTypeCb";
-            this.transferTypeCb.Size = new System.Drawing.Size(100, 21);
+            this.transferTypeCb.Size = new System.Drawing.Size(100, 20);
             this.transferTypeCb.TabIndex = 17;
             this.transferTypeCb.SelectedIndexChanged += new System.EventHandler(this.transferTypeCb_SelectedIndexChanged);
             //
             // transferCpThresText
             //
-            this.transferCpThresText.Location = new System.Drawing.Point(104, 220);
+            this.transferCpThresText.Location = new System.Drawing.Point(118, 202);
             this.transferCpThresText.Name = "transferCpThresText";
-            this.transferCpThresText.Size = new System.Drawing.Size(100, 20);
+            this.transferCpThresText.Size = new System.Drawing.Size(100, 21);
             this.transferCpThresText.TabIndex = 18;
             this.transferCpThresText.TextChanged += new System.EventHandler(this.transferCpThresText_TextChanged);
             //
             // evolveAllChk
             //
             this.evolveAllChk.AutoSize = true;
-            this.evolveAllChk.Location = new System.Drawing.Point(104, 321);
+            this.evolveAllChk.Location = new System.Drawing.Point(118, 296);
             this.evolveAllChk.Name = "evolveAllChk";
             this.evolveAllChk.Size = new System.Drawing.Size(15, 14);
             this.evolveAllChk.TabIndex = 19;
@@ -257,9 +258,9 @@
             //
             this.saveBtn.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
             | System.Windows.Forms.AnchorStyles.Right)));
-            this.saveBtn.Location = new System.Drawing.Point(6, 337);
+            this.saveBtn.Location = new System.Drawing.Point(0, 315);
             this.saveBtn.Name = "saveBtn";
-            this.saveBtn.Size = new System.Drawing.Size(198, 95);
+            this.saveBtn.Size = new System.Drawing.Size(218, 88);
             this.saveBtn.TabIndex = 20;
             this.saveBtn.Text = "Save";
             this.saveBtn.UseVisualStyleBackColor = true;
@@ -274,7 +275,7 @@
             this.gMapControl1.GrayScaleMode = false;
             this.gMapControl1.HelperLineOption = GMap.NET.WindowsForms.HelperLineOptions.DontShow;
             this.gMapControl1.LevelsKeepInMemmory = 5;
-            this.gMapControl1.Location = new System.Drawing.Point(3, 16);
+            this.gMapControl1.Location = new System.Drawing.Point(18, 15);
             this.gMapControl1.MarkersEnabled = true;
             this.gMapControl1.MaxZoom = 2;
             this.gMapControl1.MinZoom = 2;
@@ -287,7 +288,7 @@
             this.gMapControl1.ScaleMode = GMap.NET.WindowsForms.ScaleModes.Integer;
             this.gMapControl1.SelectedAreaFillColor = System.Drawing.Color.FromArgb(((int)(((byte)(33)))), ((int)(((byte)(65)))), ((int)(((byte)(105)))), ((int)(((byte)(225)))));
             this.gMapControl1.ShowTileGridLines = false;
-            this.gMapControl1.Size = new System.Drawing.Size(468, 388);
+            this.gMapControl1.Size = new System.Drawing.Size(468, 358);
             this.gMapControl1.TabIndex = 22;
             this.gMapControl1.Zoom = 0D;
             this.gMapControl1.Load += new System.EventHandler(this.gMapControl1_Load);
@@ -300,9 +301,9 @@
             this.groupBox1.Controls.Add(this.trackBar);
             this.groupBox1.Controls.Add(this.gMapControl1);
             this.groupBox1.Dock = System.Windows.Forms.DockStyle.Fill;
-            this.groupBox1.Location = new System.Drawing.Point(221, 9);
+            this.groupBox1.Location = new System.Drawing.Point(233, 8);
             this.groupBox1.Name = "groupBox1";
-            this.groupBox1.Size = new System.Drawing.Size(474, 442);
+            this.groupBox1.Size = new System.Drawing.Size(480, 408);
             this.groupBox1.TabIndex = 25;
             this.groupBox1.TabStop = false;
             this.groupBox1.Text = "Location";
@@ -311,9 +312,9 @@
             //
             this.FindAdressButton.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
             | System.Windows.Forms.AnchorStyles.Right)));
-            this.FindAdressButton.Location = new System.Drawing.Point(338, 410);
+            this.FindAdressButton.Location = new System.Drawing.Point(355, 379);
             this.FindAdressButton.Name = "FindAdressButton";
-            this.FindAdressButton.Size = new System.Drawing.Size(130, 26);
+            this.FindAdressButton.Size = new System.Drawing.Size(119, 24);
             this.FindAdressButton.TabIndex = 25;
             this.FindAdressButton.Text = "Find Location";
             this.FindAdressButton.UseVisualStyleBackColor = true;
@@ -321,35 +322,40 @@
             //
             // AdressBox
             //
-            this.AdressBox.Location = new System.Drawing.Point(6, 416);
+            this.AdressBox.ForeColor = System.Drawing.Color.Gray;
+            this.AdressBox.Location = new System.Drawing.Point(18, 379);
             this.AdressBox.Name = "AdressBox";
-            this.AdressBox.Size = new System.Drawing.Size(326, 20);
+            this.AdressBox.Size = new System.Drawing.Size(331, 21);
             this.AdressBox.TabIndex = 25;
+            this.AdressBox.Text = "Enter an address or a coordinate";
+            this.AdressBox.TextChanged += new System.EventHandler(this.AdressBox_TextChanged);
+            this.AdressBox.Enter += new System.EventHandler(this.AdressBox_Enter);
+            this.AdressBox.Leave += new System.EventHandler(this.AdressBox_Leave);
             //
             // trackBar
             //
             this.trackBar.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
             this.trackBar.BackColor = System.Drawing.SystemColors.Info;
-            this.trackBar.Location = new System.Drawing.Point(426, 16);
+            this.trackBar.Location = new System.Drawing.Point(432, 15);
             this.trackBar.Name = "trackBar";
             this.trackBar.Orientation = System.Windows.Forms.Orientation.Vertical;
-            this.trackBar.Size = new System.Drawing.Size(45, 104);
+            this.trackBar.Size = new System.Drawing.Size(45, 96);
             this.trackBar.TabIndex = 25;
             this.trackBar.TickStyle = System.Windows.Forms.TickStyle.TopLeft;
             this.trackBar.Scroll += new System.EventHandler(this.trackBar_Scroll);
             //
             // panel1
             //
+            this.panel1.Controls.Add(this.TravelSpeedBox);
             this.panel1.Controls.Add(this.CatchPokemonBox);
             this.panel1.Controls.Add(this.CatchPokemonText);
             this.panel1.Controls.Add(this.transferIVThresText);
             this.panel1.Controls.Add(this.TravelSpeedText);
-            this.panel1.Controls.Add(this.TravelSpeedBox);
             this.panel1.Controls.Add(this.label6);
             this.panel1.Controls.Add(this.authTypeLabel);
             this.panel1.Controls.Add(this.authTypeCb);
-            this.panel1.Controls.Add(this.ptcUserLabel);
-            this.panel1.Controls.Add(this.ptcPasswordLabel);
+            this.panel1.Controls.Add(this.UserLabel);
+            this.panel1.Controls.Add(this.PasswordLabel);
             this.panel1.Controls.Add(this.saveBtn);
             this.panel1.Controls.Add(this.latLabel);
             this.panel1.Controls.Add(this.evolveAllChk);
@@ -365,19 +371,28 @@
             this.panel1.Controls.Add(this.longitudeText);
             this.panel1.Controls.Add(this.label5);
             this.panel1.Controls.Add(this.latitudeText);
-            this.panel1.Controls.Add(this.ptcUserText);
-            this.panel1.Controls.Add(this.ptcPassText);
+            this.panel1.Controls.Add(this.UserLoginBox);
+            this.panel1.Controls.Add(this.UserPasswordBox);
             this.panel1.Dock = System.Windows.Forms.DockStyle.Left;
-            this.panel1.Location = new System.Drawing.Point(9, 9);
+            this.panel1.Location = new System.Drawing.Point(9, 8);
             this.panel1.Name = "panel1";
-            this.panel1.Size = new System.Drawing.Size(212, 442);
+            this.panel1.Size = new System.Drawing.Size(224, 408);
             this.panel1.TabIndex = 26;
             this.panel1.Paint += new System.Windows.Forms.PaintEventHandler(this.panel1_Paint);
             //
+            // TravelSpeedBox
+            //
+            this.TravelSpeedBox.Location = new System.Drawing.Point(118, 251);
+            this.TravelSpeedBox.Name = "TravelSpeedBox";
+            this.TravelSpeedBox.Size = new System.Drawing.Size(100, 21);
+            this.TravelSpeedBox.TabIndex = 22;
+            this.TravelSpeedBox.TextChanged += new System.EventHandler(this.textBox1_TextChanged);
+            this.TravelSpeedBox.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.TravelSpeedBox_KeyPress);
+            //
             // CatchPokemonBox
             //
             this.CatchPokemonBox.AutoSize = true;
-            this.CatchPokemonBox.Location = new System.Drawing.Point(104, 298);
+            this.CatchPokemonBox.Location = new System.Drawing.Point(118, 275);
             this.CatchPokemonBox.Name = "CatchPokemonBox";
             this.CatchPokemonBox.Size = new System.Drawing.Size(15, 14);
             this.CatchPokemonBox.TabIndex = 26;
@@ -387,59 +402,51 @@
             // CatchPokemonText
             //
             this.CatchPokemonText.AutoSize = true;
-            this.CatchPokemonText.Location = new System.Drawing.Point(3, 298);
+            this.CatchPokemonText.Location = new System.Drawing.Point(3, 275);
             this.CatchPokemonText.Name = "CatchPokemonText";
-            this.CatchPokemonText.Size = new System.Drawing.Size(86, 13);
+            this.CatchPokemonText.Size = new System.Drawing.Size(89, 12);
             this.CatchPokemonText.TabIndex = 25;
             this.CatchPokemonText.Text = "Catch Pokemon:";
             this.CatchPokemonText.Click += new System.EventHandler(this.label7_Click);
             //
             // transferIVThresText
             //
-            this.transferIVThresText.Location = new System.Drawing.Point(104, 246);
+            this.transferIVThresText.Location = new System.Drawing.Point(118, 203);
             this.transferIVThresText.Name = "transferIVThresText";
-            this.transferIVThresText.Size = new System.Drawing.Size(100, 20);
+            this.transferIVThresText.Size = new System.Drawing.Size(100, 21);
             this.transferIVThresText.TabIndex = 24;
             this.transferIVThresText.TextChanged += new System.EventHandler(this.textBox2_TextChanged);
             //
             // TravelSpeedText
             //
             this.TravelSpeedText.AutoSize = true;
-            this.TravelSpeedText.Location = new System.Drawing.Point(3, 275);
+            this.TravelSpeedText.Location = new System.Drawing.Point(3, 254);
             this.TravelSpeedText.Name = "TravelSpeedText";
-            this.TravelSpeedText.Size = new System.Drawing.Size(102, 13);
+            this.TravelSpeedText.Size = new System.Drawing.Size(113, 12);
             this.TravelSpeedText.TabIndex = 23;
             this.TravelSpeedText.Text = "Travel Speed km/h:";
             //
-            // TravelSpeedBox
-            //
-            this.TravelSpeedBox.Location = new System.Drawing.Point(104, 272);
-            this.TravelSpeedBox.Name = "TravelSpeedBox";
-            this.TravelSpeedBox.Size = new System.Drawing.Size(100, 20);
-            this.TravelSpeedBox.TabIndex = 22;
-            this.TravelSpeedBox.TextChanged += new System.EventHandler(this.textBox1_TextChanged);
-            //
             // label6
             //
             this.label6.AutoSize = true;
-            this.label6.Location = new System.Drawing.Point(3, 246);
+            this.label6.Location = new System.Drawing.Point(3, 203);
             this.label6.Name = "label6";
-            this.label6.Size = new System.Drawing.Size(70, 13);
+            this.label6.Size = new System.Drawing.Size(83, 12);
             this.label6.TabIndex = 21;
             this.label6.Text = "IV Threshold:";
             this.label6.Click += new System.EventHandler(this.label6_Click);
             //
             // SettingsForm
             //
-            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-            this.ClientSize = new System.Drawing.Size(704, 460);
+            this.ClientSize = new System.Drawing.Size(722, 424);
             this.Controls.Add(this.groupBox1);
             this.Controls.Add(this.panel1);
             this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
-            this.MinimumSize = new System.Drawing.Size(630, 360);
+            this.MinimumSize = new System.Drawing.Size(630, 334);
             this.Name = "SettingsForm";
-            this.Padding = new System.Windows.Forms.Padding(9);
+            this.Padding = new System.Windows.Forms.Padding(9, 8, 9, 8);
             this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Show;
             this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
             this.Text = "Settings";
@@ -457,8 +464,8 @@

         private System.Windows.Forms.Label authTypeLabel;
         private System.Windows.Forms.ComboBox authTypeCb;
-        private System.Windows.Forms.Label ptcUserLabel;
-        private System.Windows.Forms.Label ptcPasswordLabel;
+        private System.Windows.Forms.Label UserLabel;
+        private System.Windows.Forms.Label PasswordLabel;
         private System.Windows.Forms.Label latLabel;
         private System.Windows.Forms.Label longiLabel;
         private System.Windows.Forms.Label label1;
@@ -466,8 +473,8 @@
         private System.Windows.Forms.Label label3;
         private System.Windows.Forms.Label label4;
         private System.Windows.Forms.Label label5;
-        private System.Windows.Forms.TextBox ptcUserText;
-        private System.Windows.Forms.TextBox ptcPassText;
+        private System.Windows.Forms.TextBox UserLoginBox;
+        private System.Windows.Forms.TextBox UserPasswordBox;
         private System.Windows.Forms.TextBox latitudeText;
         private System.Windows.Forms.TextBox longitudeText;
         private System.Windows.Forms.ComboBox razzmodeCb;
@@ -480,7 +487,6 @@
         private System.Windows.Forms.GroupBox groupBox1;
         private System.Windows.Forms.Panel panel1;
         private System.Windows.Forms.TrackBar trackBar;
-        private CueTextBox textBoxAddress;
         private System.Windows.Forms.TextBox TravelSpeedBox;
         private System.Windows.Forms.Label label6;
         private System.Windows.Forms.Label TravelSpeedText;
diff --git a/PokemonGo/RocketAPI/Window/SettingsForm.cs b/PokemonGo/RocketAPI/Window/SettingsForm.cs
index 00b42f7..8e5f588 100644
--- a/PokemonGo/RocketAPI/Window/SettingsForm.cs
+++ b/PokemonGo/RocketAPI/Window/SettingsForm.cs
@@ -22,9 +22,17 @@ namespace PokemonGo.RocketAPI.Window

         private void SettingsForm_Load(object sender, EventArgs e)
         {
+
             authTypeCb.Text = Settings.Instance.AuthType.ToString();
-            ptcUserText.Text = Settings.Instance.PtcUsername;
-            ptcPassText.Text = Settings.Instance.PtcPassword;
+            if (authTypeCb.Text == "google")
+            {
+                UserLoginBox.Text = Settings.Instance.Email.ToString();
+                UserPasswordBox.Text = Settings.Instance.Password.ToString();
+            } else
+            {
+                UserLoginBox.Text = Settings.Instance.PtcUsername.ToString();
+                UserPasswordBox.Text = Settings.Instance.PtcPassword.ToString();
+            }
             latitudeText.Text = Settings.Instance.DefaultLatitude.ToString();
             longitudeText.Text = Settings.Instance.DefaultLongitude.ToString();
             razzmodeCb.Text = Settings.Instance.RazzBerryMode;
@@ -35,6 +43,7 @@ namespace PokemonGo.RocketAPI.Window
             evolveAllChk.Checked = Settings.Instance.EvolveAllGivenPokemons;
             CatchPokemonBox.Checked = Settings.Instance.CatchPokemon;
             TravelSpeedBox.Text = Settings.Instance.TravelSpeed.ToString();
+           // ImageSizeBox.Text = Settings.Instance.ImageSize.ToString();
             // Initialize map:
             //use google provider
             gMapControl1.MapProvider = GoogleMapProvider.Instance;
@@ -60,14 +69,24 @@ namespace PokemonGo.RocketAPI.Window
             trackBar.Value = 10;

             //set zoom
-            gMapControl1.Zoom = trackBar.Value;
+            gMapControl1.Zoom = trackBar.Value;
+
+            //disable map focus
+            gMapControl1.DisableFocusOnMouseEnter = true;
         }

         private void saveBtn_Click(object sender, EventArgs e)
         {
             Settings.Instance.SetSetting(authTypeCb.Text, "AuthType");
-            Settings.Instance.SetSetting(ptcUserText.Text, "PtcUsername");
-            Settings.Instance.SetSetting(ptcPassText.Text, "PtcPassword");
+            if (authTypeCb.Text == "google")
+            {
+                Settings.Instance.SetSetting(UserLoginBox.Text, "Email");
+                Settings.Instance.SetSetting(UserPasswordBox.Text, "Password");
+            } else
+            {
+                Settings.Instance.SetSetting(UserLoginBox.Text, "PtcUsername");
+                Settings.Instance.SetSetting(UserPasswordBox.Text, "PtcPassword");
+            }
             Settings.Instance.SetSetting(latitudeText.Text.Replace(',', '.'), "DefaultLatitude");
             Settings.Instance.SetSetting(longitudeText.Text.Replace(',', '.'), "DefaultLongitude");

@@ -83,9 +102,12 @@ namespace PokemonGo.RocketAPI.Window
             Settings.Instance.SetSetting(transferCpThresText.Text, "TransferCPThreshold");
             Settings.Instance.SetSetting(transferIVThresText.Text, "TransferIVThreshold");
             Settings.Instance.SetSetting(TravelSpeedBox.Text, "TravelSpeed");
+            //Settings.Instance.SetSetting(ImageSizeBox.Text, "ImageSize");
             Settings.Instance.SetSetting(evolveAllChk.Checked ? "true" : "false", "EvolveAllGivenPokemons");
             Settings.Instance.SetSetting(CatchPokemonBox.Checked ? "true" : "false", "CatchPokemon");
             Settings.Instance.Reload();
+
+            MainForm.ResetMap();
             Close();
         }

@@ -93,18 +115,11 @@ namespace PokemonGo.RocketAPI.Window
         {
             if (authTypeCb.Text == "google")
             {
-                ptcUserText.Visible = false;
-                ptcPassText.Visible = false;
-                ptcUserLabel.Visible = false;
-                ptcPasswordLabel.Visible = false;
+                UserLabel.Text = "Email:";
             }
             else
             {
-                ptcUserText.Visible = true;
-                ptcPassText.Visible = true;
-                ptcUserLabel.Visible = true;
-                ptcPasswordLabel.Visible = true;
-
+                UserLabel.Text = "Username:";
             }
         }

@@ -117,13 +132,13 @@ namespace PokemonGo.RocketAPI.Window
             {
                 gMapControl1.Zoom += 5;
             }
-
+
             double X = Math.Round(gMapControl1.Position.Lng, 6);
             double Y = Math.Round(gMapControl1.Position.Lat, 6);
             string longitude = X.ToString();
             string latitude = Y.ToString();
             latitudeText.Text = latitude;
-            longitudeText.Text = longitude;
+            longitudeText.Text = longitude;
         }

         private void trackBar_Scroll(object sender, EventArgs e)
@@ -230,5 +245,46 @@ namespace PokemonGo.RocketAPI.Window
         {

         }
+
+        private void TravelSpeedBox_KeyPress(object sender, KeyPressEventArgs e)
+        {
+            char ch = e.KeyChar;
+            if (!Char.IsDigit(ch) && ch != 8)
+            {
+                e.Handled = true;
+            }
+        }
+
+        private void razzSettingText_KeyPress(object sender, KeyPressEventArgs e)
+        {
+            char ch = e.KeyChar;
+            if (!Char.IsDigit(ch) && ch != 8)
+            {
+                e.Handled = true;
+            }
+        }
+
+        private void AdressBox_Leave(object sender, EventArgs e)
+        {
+            if (AdressBox.Text.Length == 0)
+            {
+                AdressBox.Text = "Enter an address or a coordinate";
+                AdressBox.ForeColor = SystemColors.GrayText;
+            }
+        }
+
+        private void AdressBox_Enter(object sender, EventArgs e)
+        {
+            if (AdressBox.Text == "Enter an address or a coordinate")
+            {
+                AdressBox.Text = "";
+                AdressBox.ForeColor = SystemColors.WindowText;
+            }
+        }
+
+        private void AdressBox_TextChanged(object sender, EventArgs e)
+        {
+
+        }
     }
-}
+}
\ No newline at end of file
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_1.png b/PokemonGo/RocketAPI/Window/img/Pokemon_1.png
new file mode 100644
index 0000000..27b73d3
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_1.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_10.png b/PokemonGo/RocketAPI/Window/img/Pokemon_10.png
new file mode 100644
index 0000000..e089807
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_10.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_100.png b/PokemonGo/RocketAPI/Window/img/Pokemon_100.png
new file mode 100644
index 0000000..684bbee
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_100.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_101.png b/PokemonGo/RocketAPI/Window/img/Pokemon_101.png
new file mode 100644
index 0000000..9468397
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_101.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_102.png b/PokemonGo/RocketAPI/Window/img/Pokemon_102.png
new file mode 100644
index 0000000..19dbf94
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_102.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_103.png b/PokemonGo/RocketAPI/Window/img/Pokemon_103.png
new file mode 100644
index 0000000..753a2f8
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_103.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_104.png b/PokemonGo/RocketAPI/Window/img/Pokemon_104.png
new file mode 100644
index 0000000..8d267c6
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_104.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_105.png b/PokemonGo/RocketAPI/Window/img/Pokemon_105.png
new file mode 100644
index 0000000..11d24b6
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_105.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_106.png b/PokemonGo/RocketAPI/Window/img/Pokemon_106.png
new file mode 100644
index 0000000..78c7b2a
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_106.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_107.png b/PokemonGo/RocketAPI/Window/img/Pokemon_107.png
new file mode 100644
index 0000000..5a9b0bb
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_107.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_108.png b/PokemonGo/RocketAPI/Window/img/Pokemon_108.png
new file mode 100644
index 0000000..dfcc607
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_108.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_109.png b/PokemonGo/RocketAPI/Window/img/Pokemon_109.png
new file mode 100644
index 0000000..0e86bea
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_109.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_11.png b/PokemonGo/RocketAPI/Window/img/Pokemon_11.png
new file mode 100644
index 0000000..14c129c
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_11.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_110.png b/PokemonGo/RocketAPI/Window/img/Pokemon_110.png
new file mode 100644
index 0000000..a401845
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_110.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_111.png b/PokemonGo/RocketAPI/Window/img/Pokemon_111.png
new file mode 100644
index 0000000..2fecdc8
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_111.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_112.png b/PokemonGo/RocketAPI/Window/img/Pokemon_112.png
new file mode 100644
index 0000000..5afa113
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_112.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_113.png b/PokemonGo/RocketAPI/Window/img/Pokemon_113.png
new file mode 100644
index 0000000..4bad13c
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_113.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_114.png b/PokemonGo/RocketAPI/Window/img/Pokemon_114.png
new file mode 100644
index 0000000..41b93ed
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_114.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_115.png b/PokemonGo/RocketAPI/Window/img/Pokemon_115.png
new file mode 100644
index 0000000..13c492f
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_115.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_116.png b/PokemonGo/RocketAPI/Window/img/Pokemon_116.png
new file mode 100644
index 0000000..148ddd2
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_116.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_117.png b/PokemonGo/RocketAPI/Window/img/Pokemon_117.png
new file mode 100644
index 0000000..2625252
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_117.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_118.png b/PokemonGo/RocketAPI/Window/img/Pokemon_118.png
new file mode 100644
index 0000000..62c325d
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_118.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_119.png b/PokemonGo/RocketAPI/Window/img/Pokemon_119.png
new file mode 100644
index 0000000..ec9b3a5
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_119.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_12.png b/PokemonGo/RocketAPI/Window/img/Pokemon_12.png
new file mode 100644
index 0000000..bae3d77
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_12.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_120.png b/PokemonGo/RocketAPI/Window/img/Pokemon_120.png
new file mode 100644
index 0000000..2f67279
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_120.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_121.png b/PokemonGo/RocketAPI/Window/img/Pokemon_121.png
new file mode 100644
index 0000000..6aa9e2f
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_121.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_122.png b/PokemonGo/RocketAPI/Window/img/Pokemon_122.png
new file mode 100644
index 0000000..9f68282
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_122.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_123.png b/PokemonGo/RocketAPI/Window/img/Pokemon_123.png
new file mode 100644
index 0000000..398b6d7
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_123.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_124.png b/PokemonGo/RocketAPI/Window/img/Pokemon_124.png
new file mode 100644
index 0000000..edfaf39
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_124.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_125.png b/PokemonGo/RocketAPI/Window/img/Pokemon_125.png
new file mode 100644
index 0000000..9208edf
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_125.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_126.png b/PokemonGo/RocketAPI/Window/img/Pokemon_126.png
new file mode 100644
index 0000000..be885cc
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_126.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_127.png b/PokemonGo/RocketAPI/Window/img/Pokemon_127.png
new file mode 100644
index 0000000..60af063
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_127.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_128.png b/PokemonGo/RocketAPI/Window/img/Pokemon_128.png
new file mode 100644
index 0000000..5b70624
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_128.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_129.png b/PokemonGo/RocketAPI/Window/img/Pokemon_129.png
new file mode 100644
index 0000000..198d8b8
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_129.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_13.png b/PokemonGo/RocketAPI/Window/img/Pokemon_13.png
new file mode 100644
index 0000000..3d0af58
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_13.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_130.png b/PokemonGo/RocketAPI/Window/img/Pokemon_130.png
new file mode 100644
index 0000000..afe04d0
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_130.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_131.png b/PokemonGo/RocketAPI/Window/img/Pokemon_131.png
new file mode 100644
index 0000000..4d1568c
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_131.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_132.png b/PokemonGo/RocketAPI/Window/img/Pokemon_132.png
new file mode 100644
index 0000000..d8342ee
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_132.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_133.png b/PokemonGo/RocketAPI/Window/img/Pokemon_133.png
new file mode 100644
index 0000000..8fd856f
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_133.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_134.png b/PokemonGo/RocketAPI/Window/img/Pokemon_134.png
new file mode 100644
index 0000000..275b09a
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_134.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_135.png b/PokemonGo/RocketAPI/Window/img/Pokemon_135.png
new file mode 100644
index 0000000..026aae2
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_135.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_136.png b/PokemonGo/RocketAPI/Window/img/Pokemon_136.png
new file mode 100644
index 0000000..cfe25af
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_136.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_137.png b/PokemonGo/RocketAPI/Window/img/Pokemon_137.png
new file mode 100644
index 0000000..f953028
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_137.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_138.png b/PokemonGo/RocketAPI/Window/img/Pokemon_138.png
new file mode 100644
index 0000000..f8d1557
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_138.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_139.png b/PokemonGo/RocketAPI/Window/img/Pokemon_139.png
new file mode 100644
index 0000000..b001da1
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_139.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_14.png b/PokemonGo/RocketAPI/Window/img/Pokemon_14.png
new file mode 100644
index 0000000..f6874a9
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_14.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_140.png b/PokemonGo/RocketAPI/Window/img/Pokemon_140.png
new file mode 100644
index 0000000..df1db5f
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_140.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_141.png b/PokemonGo/RocketAPI/Window/img/Pokemon_141.png
new file mode 100644
index 0000000..672a32a
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_141.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_142.png b/PokemonGo/RocketAPI/Window/img/Pokemon_142.png
new file mode 100644
index 0000000..10ea3ec
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_142.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_143.png b/PokemonGo/RocketAPI/Window/img/Pokemon_143.png
new file mode 100644
index 0000000..e86690b
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_143.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_144.png b/PokemonGo/RocketAPI/Window/img/Pokemon_144.png
new file mode 100644
index 0000000..7cc16ab
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_144.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_145.png b/PokemonGo/RocketAPI/Window/img/Pokemon_145.png
new file mode 100644
index 0000000..82c2c8c
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_145.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_146.png b/PokemonGo/RocketAPI/Window/img/Pokemon_146.png
new file mode 100644
index 0000000..8a5036c
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_146.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_147.png b/PokemonGo/RocketAPI/Window/img/Pokemon_147.png
new file mode 100644
index 0000000..caab59b
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_147.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_148.png b/PokemonGo/RocketAPI/Window/img/Pokemon_148.png
new file mode 100644
index 0000000..796d4cd
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_148.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_149.png b/PokemonGo/RocketAPI/Window/img/Pokemon_149.png
new file mode 100644
index 0000000..5b7a32f
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_149.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_15.png b/PokemonGo/RocketAPI/Window/img/Pokemon_15.png
new file mode 100644
index 0000000..8da1f55
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_15.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_150.png b/PokemonGo/RocketAPI/Window/img/Pokemon_150.png
new file mode 100644
index 0000000..680c474
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_150.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_151.png b/PokemonGo/RocketAPI/Window/img/Pokemon_151.png
new file mode 100644
index 0000000..ebf1adb
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_151.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_16.png b/PokemonGo/RocketAPI/Window/img/Pokemon_16.png
new file mode 100644
index 0000000..6a4d870
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_16.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_17.png b/PokemonGo/RocketAPI/Window/img/Pokemon_17.png
new file mode 100644
index 0000000..2f36069
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_17.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_18.png b/PokemonGo/RocketAPI/Window/img/Pokemon_18.png
new file mode 100644
index 0000000..1468c95
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_18.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_19.png b/PokemonGo/RocketAPI/Window/img/Pokemon_19.png
new file mode 100644
index 0000000..0551cb6
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_19.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_2.png b/PokemonGo/RocketAPI/Window/img/Pokemon_2.png
new file mode 100644
index 0000000..1adbae6
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_2.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_20.png b/PokemonGo/RocketAPI/Window/img/Pokemon_20.png
new file mode 100644
index 0000000..414f74d
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_20.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_21.png b/PokemonGo/RocketAPI/Window/img/Pokemon_21.png
new file mode 100644
index 0000000..461a65d
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_21.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_22.png b/PokemonGo/RocketAPI/Window/img/Pokemon_22.png
new file mode 100644
index 0000000..876a5fe
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_22.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_23.png b/PokemonGo/RocketAPI/Window/img/Pokemon_23.png
new file mode 100644
index 0000000..dfc37eb
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_23.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_24.png b/PokemonGo/RocketAPI/Window/img/Pokemon_24.png
new file mode 100644
index 0000000..7f1d97c
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_24.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_25.png b/PokemonGo/RocketAPI/Window/img/Pokemon_25.png
new file mode 100644
index 0000000..81bb5a8
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_25.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_26.png b/PokemonGo/RocketAPI/Window/img/Pokemon_26.png
new file mode 100644
index 0000000..9a7de23
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_26.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_27.png b/PokemonGo/RocketAPI/Window/img/Pokemon_27.png
new file mode 100644
index 0000000..2845752
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_27.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_28.png b/PokemonGo/RocketAPI/Window/img/Pokemon_28.png
new file mode 100644
index 0000000..31bb771
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_28.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_29.png b/PokemonGo/RocketAPI/Window/img/Pokemon_29.png
new file mode 100644
index 0000000..3db5f15
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_29.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_3.png b/PokemonGo/RocketAPI/Window/img/Pokemon_3.png
new file mode 100644
index 0000000..8c51eb0
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_3.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_30.png b/PokemonGo/RocketAPI/Window/img/Pokemon_30.png
new file mode 100644
index 0000000..fb9f23e
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_30.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_31.png b/PokemonGo/RocketAPI/Window/img/Pokemon_31.png
new file mode 100644
index 0000000..a03fc98
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_31.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_32.png b/PokemonGo/RocketAPI/Window/img/Pokemon_32.png
new file mode 100644
index 0000000..5abda5e
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_32.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_33.png b/PokemonGo/RocketAPI/Window/img/Pokemon_33.png
new file mode 100644
index 0000000..da57f21
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_33.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_34.png b/PokemonGo/RocketAPI/Window/img/Pokemon_34.png
new file mode 100644
index 0000000..f8a64ca
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_34.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_35.png b/PokemonGo/RocketAPI/Window/img/Pokemon_35.png
new file mode 100644
index 0000000..e5d06a1
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_35.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_36.png b/PokemonGo/RocketAPI/Window/img/Pokemon_36.png
new file mode 100644
index 0000000..e11d875
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_36.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_37.png b/PokemonGo/RocketAPI/Window/img/Pokemon_37.png
new file mode 100644
index 0000000..7e9e531
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_37.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_38.png b/PokemonGo/RocketAPI/Window/img/Pokemon_38.png
new file mode 100644
index 0000000..0c71ef4
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_38.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_39.png b/PokemonGo/RocketAPI/Window/img/Pokemon_39.png
new file mode 100644
index 0000000..874d580
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_39.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_4.png b/PokemonGo/RocketAPI/Window/img/Pokemon_4.png
new file mode 100644
index 0000000..cd2b04e
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_4.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_40.png b/PokemonGo/RocketAPI/Window/img/Pokemon_40.png
new file mode 100644
index 0000000..79a38b2
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_40.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_41.png b/PokemonGo/RocketAPI/Window/img/Pokemon_41.png
new file mode 100644
index 0000000..dee11c4
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_41.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_42.png b/PokemonGo/RocketAPI/Window/img/Pokemon_42.png
new file mode 100644
index 0000000..c139eaa
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_42.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_43.png b/PokemonGo/RocketAPI/Window/img/Pokemon_43.png
new file mode 100644
index 0000000..68dd7f7
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_43.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_44.png b/PokemonGo/RocketAPI/Window/img/Pokemon_44.png
new file mode 100644
index 0000000..d20a608
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_44.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_45.png b/PokemonGo/RocketAPI/Window/img/Pokemon_45.png
new file mode 100644
index 0000000..5952a07
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_45.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_46.png b/PokemonGo/RocketAPI/Window/img/Pokemon_46.png
new file mode 100644
index 0000000..f9d5b66
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_46.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_47.png b/PokemonGo/RocketAPI/Window/img/Pokemon_47.png
new file mode 100644
index 0000000..656ffc9
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_47.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_48.png b/PokemonGo/RocketAPI/Window/img/Pokemon_48.png
new file mode 100644
index 0000000..e243d00
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_48.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_49.png b/PokemonGo/RocketAPI/Window/img/Pokemon_49.png
new file mode 100644
index 0000000..ee4f601
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_49.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_5.png b/PokemonGo/RocketAPI/Window/img/Pokemon_5.png
new file mode 100644
index 0000000..00e1a9a
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_5.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_50.png b/PokemonGo/RocketAPI/Window/img/Pokemon_50.png
new file mode 100644
index 0000000..b4ff655
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_50.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_51.png b/PokemonGo/RocketAPI/Window/img/Pokemon_51.png
new file mode 100644
index 0000000..3868d4d
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_51.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_52.png b/PokemonGo/RocketAPI/Window/img/Pokemon_52.png
new file mode 100644
index 0000000..e9e91ea
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_52.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_53.png b/PokemonGo/RocketAPI/Window/img/Pokemon_53.png
new file mode 100644
index 0000000..b4e24b0
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_53.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_54.png b/PokemonGo/RocketAPI/Window/img/Pokemon_54.png
new file mode 100644
index 0000000..5591e88
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_54.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_55.png b/PokemonGo/RocketAPI/Window/img/Pokemon_55.png
new file mode 100644
index 0000000..b884f10
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_55.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_56.png b/PokemonGo/RocketAPI/Window/img/Pokemon_56.png
new file mode 100644
index 0000000..f8678ed
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_56.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_57.png b/PokemonGo/RocketAPI/Window/img/Pokemon_57.png
new file mode 100644
index 0000000..19524ba
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_57.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_58.png b/PokemonGo/RocketAPI/Window/img/Pokemon_58.png
new file mode 100644
index 0000000..543ea99
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_58.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_59.png b/PokemonGo/RocketAPI/Window/img/Pokemon_59.png
new file mode 100644
index 0000000..41372d5
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_59.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_6.png b/PokemonGo/RocketAPI/Window/img/Pokemon_6.png
new file mode 100644
index 0000000..b00c7e5
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_6.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_60.png b/PokemonGo/RocketAPI/Window/img/Pokemon_60.png
new file mode 100644
index 0000000..6c98dab
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_60.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_61.png b/PokemonGo/RocketAPI/Window/img/Pokemon_61.png
new file mode 100644
index 0000000..b1d9432
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_61.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_62.png b/PokemonGo/RocketAPI/Window/img/Pokemon_62.png
new file mode 100644
index 0000000..8ace63c
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_62.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_63.png b/PokemonGo/RocketAPI/Window/img/Pokemon_63.png
new file mode 100644
index 0000000..bc06668
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_63.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_64.png b/PokemonGo/RocketAPI/Window/img/Pokemon_64.png
new file mode 100644
index 0000000..353a2e3
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_64.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_65.png b/PokemonGo/RocketAPI/Window/img/Pokemon_65.png
new file mode 100644
index 0000000..03803d7
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_65.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_66.png b/PokemonGo/RocketAPI/Window/img/Pokemon_66.png
new file mode 100644
index 0000000..fdf296a
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_66.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_67.png b/PokemonGo/RocketAPI/Window/img/Pokemon_67.png
new file mode 100644
index 0000000..56247c5
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_67.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_68.png b/PokemonGo/RocketAPI/Window/img/Pokemon_68.png
new file mode 100644
index 0000000..e3ca5ea
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_68.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_69.png b/PokemonGo/RocketAPI/Window/img/Pokemon_69.png
new file mode 100644
index 0000000..60faebe
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_69.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_7.png b/PokemonGo/RocketAPI/Window/img/Pokemon_7.png
new file mode 100644
index 0000000..955e2f8
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_7.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_70.png b/PokemonGo/RocketAPI/Window/img/Pokemon_70.png
new file mode 100644
index 0000000..330c5cb
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_70.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_71.png b/PokemonGo/RocketAPI/Window/img/Pokemon_71.png
new file mode 100644
index 0000000..83d8cbe
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_71.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_72.png b/PokemonGo/RocketAPI/Window/img/Pokemon_72.png
new file mode 100644
index 0000000..be3cca2
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_72.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_73.png b/PokemonGo/RocketAPI/Window/img/Pokemon_73.png
new file mode 100644
index 0000000..896e040
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_73.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_74.png b/PokemonGo/RocketAPI/Window/img/Pokemon_74.png
new file mode 100644
index 0000000..ac3d9e5
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_74.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_75.png b/PokemonGo/RocketAPI/Window/img/Pokemon_75.png
new file mode 100644
index 0000000..9acddff
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_75.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_76.png b/PokemonGo/RocketAPI/Window/img/Pokemon_76.png
new file mode 100644
index 0000000..43928d3
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_76.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_77.png b/PokemonGo/RocketAPI/Window/img/Pokemon_77.png
new file mode 100644
index 0000000..3f6fa54
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_77.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_78.png b/PokemonGo/RocketAPI/Window/img/Pokemon_78.png
new file mode 100644
index 0000000..08bda78
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_78.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_79.png b/PokemonGo/RocketAPI/Window/img/Pokemon_79.png
new file mode 100644
index 0000000..8a67338
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_79.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_8.png b/PokemonGo/RocketAPI/Window/img/Pokemon_8.png
new file mode 100644
index 0000000..ae349e4
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_8.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_80.png b/PokemonGo/RocketAPI/Window/img/Pokemon_80.png
new file mode 100644
index 0000000..1310dd0
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_80.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_81.png b/PokemonGo/RocketAPI/Window/img/Pokemon_81.png
new file mode 100644
index 0000000..15ac71d
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_81.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_82.png b/PokemonGo/RocketAPI/Window/img/Pokemon_82.png
new file mode 100644
index 0000000..3d86bb6
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_82.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_83.png b/PokemonGo/RocketAPI/Window/img/Pokemon_83.png
new file mode 100644
index 0000000..077896a
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_83.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_84.png b/PokemonGo/RocketAPI/Window/img/Pokemon_84.png
new file mode 100644
index 0000000..f701c67
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_84.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_85.png b/PokemonGo/RocketAPI/Window/img/Pokemon_85.png
new file mode 100644
index 0000000..ed169a8
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_85.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_86.png b/PokemonGo/RocketAPI/Window/img/Pokemon_86.png
new file mode 100644
index 0000000..a3b49bb
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_86.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_87.png b/PokemonGo/RocketAPI/Window/img/Pokemon_87.png
new file mode 100644
index 0000000..a68e203
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_87.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_88.png b/PokemonGo/RocketAPI/Window/img/Pokemon_88.png
new file mode 100644
index 0000000..29e0d2d
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_88.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_89.png b/PokemonGo/RocketAPI/Window/img/Pokemon_89.png
new file mode 100644
index 0000000..30ed8bd
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_89.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_9.png b/PokemonGo/RocketAPI/Window/img/Pokemon_9.png
new file mode 100644
index 0000000..5a2ef7e
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_9.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_90.png b/PokemonGo/RocketAPI/Window/img/Pokemon_90.png
new file mode 100644
index 0000000..b82f37d
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_90.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_91.png b/PokemonGo/RocketAPI/Window/img/Pokemon_91.png
new file mode 100644
index 0000000..2a120d0
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_91.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_92.png b/PokemonGo/RocketAPI/Window/img/Pokemon_92.png
new file mode 100644
index 0000000..92781c5
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_92.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_93.png b/PokemonGo/RocketAPI/Window/img/Pokemon_93.png
new file mode 100644
index 0000000..6262d91
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_93.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_94.png b/PokemonGo/RocketAPI/Window/img/Pokemon_94.png
new file mode 100644
index 0000000..7fcb28f
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_94.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_95.png b/PokemonGo/RocketAPI/Window/img/Pokemon_95.png
new file mode 100644
index 0000000..c7305d8
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_95.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_96.png b/PokemonGo/RocketAPI/Window/img/Pokemon_96.png
new file mode 100644
index 0000000..3ae45ee
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_96.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_97.png b/PokemonGo/RocketAPI/Window/img/Pokemon_97.png
new file mode 100644
index 0000000..9676797
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_97.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_98.png b/PokemonGo/RocketAPI/Window/img/Pokemon_98.png
new file mode 100644
index 0000000..582688b
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_98.png differ
diff --git a/PokemonGo/RocketAPI/Window/img/Pokemon_99.png b/PokemonGo/RocketAPI/Window/img/Pokemon_99.png
new file mode 100644
index 0000000..42ac71e
Binary files /dev/null and b/PokemonGo/RocketAPI/Window/img/Pokemon_99.png differ
diff --git a/PokemonGo/RocketAPI/Window/packages.config b/PokemonGo/RocketAPI/Window/packages.config
new file mode 100644
index 0000000..7d8915d
--- /dev/null
+++ b/PokemonGo/RocketAPI/Window/packages.config
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<packages>
+  <package id="ObjectListView.Official" version="2.9.1" targetFramework="net45" />
+  <package id="S2Geometry" version="1.0.3" targetFramework="net45" />
+</packages>
\ No newline at end of file
diff --git a/PokemonGo/RocketAPI/packages.config b/PokemonGo/RocketAPI/packages.config
index e4d1dce..87ca41a 100644
--- a/PokemonGo/RocketAPI/packages.config
+++ b/PokemonGo/RocketAPI/packages.config
@@ -7,6 +7,6 @@
   <package id="Google.Protobuf.Tools" version="3.0.0-beta3" targetFramework="net45" />
   <package id="Microsoft.AspNet.WebApi.Client" version="5.2.3" targetFramework="net45" />
   <package id="Newtonsoft.Json" version="9.0.1" targetFramework="net45" />
-  <package id="S2Geometry" version="1.0.1" targetFramework="net45" />
+  <package id="S2Geometry" version="1.0.3" targetFramework="net45" />
   <package id="VarintBitConverter" version="1.0.0.0" targetFramework="net45" />
 </packages>
\ No newline at end of file
diff --git a/README.md b/README.md
index 54403be..234ccc0 100644
--- a/README.md
+++ b/README.md
@@ -1,12 +1,13 @@
 # Pokemon-Go-Rocket-API
+[![Stories in Ready](https://badge.waffle.io/1461748123/Pokemon-Go-Rocket-API.svg?label=accepted&title=Accepted)](http://waffle.io/1461748123/Pokemon-Go-Rocket-API)
+[![Stories in Ready](https://badge.waffle.io/1461748123/Pokemon-Go-Rocket-API.svg?label=in%20progress&title=In Progress)](http://waffle.io/1461748123/Pokemon-Go-Rocket-API)
+[![Stories in Ready](https://badge.waffle.io/1461748123/Pokemon-Go-Rocket-API.png?label=ready&title=Ready)](https://waffle.io/1461748123/Pokemon-Go-Rocket-API)
+## Official discord channel for user and developer discussions.
+* https://discord.gg/y6EU2qY

-#Window
-![alt tag](https://github.com/DetectiveSquirrel/Pokemon-Go-Rocket-API/blob/master/MainWindow.png)
-![alt tag](https://github.com/DetectiveSquirrel/Pokemon-Go-Rocket-API/blob/master/MainPokeUi.png)
-![alt tag](https://github.com/DetectiveSquirrel/Pokemon-Go-Rocket-API/blob/master/MainSettings2.png)
-
-#Console
-![alt tag](https://github.com/DetectiveSquirrel/Pokemon-Go-Rocket-API/blob/master/screenshot.png)
+## Window
+![alt tag](https://github.com/1461748123/Pokemon-Go-Rocket-API/blob/master/MainWindow.png)
+![alt tag](https://github.com/1461748123/Pokemon-Go-Rocket-API/blob/master/MainSettings2.png)


 A Pokémon Go bot in C#
@@ -14,36 +15,77 @@ A Pokémon Go bot in C#
 ## Features
 * PTC / Google Login
 * Get Map Objects and Inventory
-* Search for Gyms / Pokéstops / Spawns
+* Live map showing Pokéstops and farming path
+* Search for Pokéstop
 * Farm Pokéstops
 * Farm all Pokémon in the neighbourhood
 * Evolve Pokémon
 * Transfer Pokémon
+* Powerup Pokémon
+* Force unban
+* Use LuckyEgg
 * Auto-Recycle uneeded items
 * View all Pokémon CP/IV %
 * Transfer/Powerup/Evolve Pokémon
 * Output level and needed XP for levelup
 * Output Username, Level, Stardust, XP/hour, Pokémon/hour in Console Title
-* German/English Pokémon names
 * Automatic use of Razzberries
 * Automatic Update checker
-* Logs everything into Logs.txt
+* Logs everything into Logs folder

 ## Getting Started
-
-Go to PokemonGo\RocketAPI\Console\App.config -> Edit the Settings you like -> Build and Run (CTRL+F5)
+### Download
+Download the bot from the [release](https://github.com/1461748123/Pokemon-Go-Rocket-API/releases) tab.
+If you want the latest Beta-Build, you have to download the build from the Beta-Build branch and compile them by yourself with VisualStudio 2015.
+**Waning: Beta-Builds are unstable and might cause damage to your account, use at your own risk**
+### Login
+There are problems with google oauth login, so we have to use account and password to login for now.
+To ensure your account's safety, we suggest you to creat an app password just for botting. This will also allows users with 2-fact-auth enable to use the bot.
+Tutorial on how to use app password: [Google support](https://support.google.com/mail/answer/185833?hl=en)
+### Settings
+Change your settings using the settings tab on the bot. If you want more advance settings, edit the settings file under the bot's folder.
+### Wola
+Click Start Bot and enjoy!
+
+# How can I contribute?
+## For users:
+You can contribute in many ways, here are some that you can do to help the project out!
+### Join discord channel and help answer questions
+We have more and more users everyday, so we have alot of questions form new users who haven't fully understand how the bot works yet. If you want to help them out, join our official discord channel :)
+### Answer questions in [issues](https://github.com/1461748123/Pokemon-Go-Rocket-API/issues)
+Same as above, you can help by answering questions in the [issues](https://github.com/1461748123/Pokemon-Go-Rocket-API/issues) tab!
+### Report bugs
+Report bugs you found in [issues](https://github.com/1461748123/Pokemon-Go-Rocket-API/issues).
+In order to help us fix the problem, please take a screenshot of the error you get and also attatch your log file (under the Logs folder) as well. Add [Bug] to the title to help us quickly identify the category of the issue.
+### Suggestions/ideas
+Tell us what you think we can do better in [issues](https://github.com/1461748123/Pokemon-Go-Rocket-API/issues).
+Give detailed discription to help us understand what you are looking for. Add [Suggestion] to the title to help us quickly identify the category of the issue. Your suggestion might not be accept, but hey, maybe we will accept your suggestion next time! :)
+## For developers:
+You can contribute to the project by helping us on coding.
+Fork this project and creat a new branch to add your code or fix a know issue.
+Use pull request to submit your code. Remember, submit to *Beta-Build* branch! :D
+## Donations
+We are not accepting donations currently :) If you really wanna contribute, consider doing the stuff above! :D

 # Settings
 ## AuthType
-* *Google* - Google login via oauth2
-* *Ptc* - Pokémon Trainer Club login with username/password combination
+* *google* - Google login
+* *ptc* - Pokémon Trainer Club

 ## PtcUsername
-* *username* for PTC account. No need for when using Google.
-* *password* for PTC account. No need for when using Google.
+* *username* - for PTC account. No need for when using Google.
+
+## PtcPassword
+* *password* - for PTC account. No need for when using Google.
+
+## Email
+* *email@gmail.com* - for Google account. No need for when using PTC.
+
+## Password
+* *password* - for Google account. No need for when using PTC.

 ## GoogleRefreshToken
-* *GoogleRefreshToken* - You get this code when you connect the application with your Google account. You do not need to enter it.
+* *token* - for Google account. No need for wen using PTC. (Obsolete)

 ## DefaultLatitude
 * *12.345678* - Latitude of your location you want to use the bot in. Number between -90 and +90. Doesn't matter how many numbers stand after the comma.
@@ -74,7 +116,8 @@ Go to PokemonGo\RocketAPI\Console\App.config -> Edit the Settings you like -> Bu
 * *probability* - Use RazzBerry when Pokémon catch chance is under a specific percentage.

 ## RazzBerrySetting
-* *value* - CP: Use RazzBerry when Pokémon is over this value | Probability Mode: Use Razzberry when % of catching is under this value
+* *cp value* - If RazzBerryMode is cp. Use RazzBerry when Pokémon is over this value
+* *probability value* - If RazzBerryMode is probability. Use Razzberry when % of catching is under this value. Between 0 and 1.

 ## TransferType
 * *none* - disables transferring
@@ -86,6 +129,19 @@ Go to PokemonGo\RocketAPI\Console\App.config -> Edit the Settings you like -> Bu
 ## TransferCPThreshold
 * *CP* - transfers all Pokémon with less CP than this value.

+## TransferIVThreshold
+* *IV* - transfers all Pokémon with less IV than this value. Between 0 and 1.
+
+## TravelSpeed
+* *Speed* - Travel speed in km/h
+
+## ImageSize
+* *px* - Pixel size for Pokémon Thumbnails
+
+## CatchPokemon
+* *true* - Catch Pokémon and get Items from PokéStops
+* *false* - Don't catch Pokémon and get Items from PokéStops
+
 ## EvolveAllGivenPokemons
 * *false* - Evolves no Pokémon.
-* *true* - Evolves all Pokémon.
\ No newline at end of file
+* *true* - Evolves all Pokémon.
diff --git a/screenshot.png b/screenshot.png
deleted file mode 100644
index b0a4558..0000000
Binary files a/screenshot.png and /dev/null differ
You may download the files in Public Git.