Merge branch 'pr/1081' into Beta-Build

Brian [2016-08-22 05:55:37]
Merge branch 'pr/1081' into Beta-Build
Filename
PokemonGo.RocketBot.Logic/Settings.cs
PokemonGo.RocketBot.Window/Forms/MainForm.cs
PokemonGo.RocketBot.Window/Forms/MainForm.designer.cs
PokemonGo.RocketBot.Window/Forms/SettingForm.Designer.cs
PokemonGo.RocketBot.Window/Forms/SettingForm.cs
PokemonGo.RocketBot.Window/Forms/SettingsForm.resx
PokemonGo.RocketBot.Window/Forms/SettingsForm.cs
PokemonGo.RocketBot.Window/Forms/SettingsForm.designer.cs
PokemonGo.RocketBot.Window/Helpers/DeviceHelper.cs
PokemonGo.RocketBot.Window/PokemonGo.RocketBot.Window.csproj
PokemonGo.RocketBot.Window/Resources/device info.csv
diff --git a/PokemonGo.RocketBot.Logic/Settings.cs b/PokemonGo.RocketBot.Logic/Settings.cs
index f03727a..5c2c3e2 100644
--- a/PokemonGo.RocketBot.Logic/Settings.cs
+++ b/PokemonGo.RocketBot.Logic/Settings.cs
@@ -1,24 +1,26 @@
+
 #region using directives

+using Newtonsoft.Json;
+using Newtonsoft.Json.Converters;
+using PokemonGo.RocketBot.Logic.Common;
+using PokemonGo.RocketBot.Logic.Logging;
+using PokemonGo.RocketBot.Logic.State;
+using PokemonGo.RocketBot.Logic.Utils;
+using POGOProtos.Enums;
+using POGOProtos.Inventory.Item;
+using PokemonGo.RocketAPI;
+using PokemonGo.RocketAPI.Enums;
 using System;
 using System.Collections.Generic;
 using System.ComponentModel;
 using System.IO;
 using System.Linq;
 using System.Net;
+using System.Net.Http;
 using System.Reflection;
 using System.Security.Cryptography;
 using System.Threading;
-using Newtonsoft.Json;
-using Newtonsoft.Json.Converters;
-using PokemonGo.RocketAPI;
-using PokemonGo.RocketAPI.Enums;
-using PokemonGo.RocketBot.Logic.Common;
-using PokemonGo.RocketBot.Logic.Logging;
-using PokemonGo.RocketBot.Logic.State;
-using PokemonGo.RocketBot.Logic.Utils;
-using POGOProtos.Enums;
-using POGOProtos.Inventory.Item;

 #endregion

@@ -26,38 +28,50 @@ namespace PokemonGo.RocketBot.Logic
 {
     public class AuthSettings
     {
-        [JsonIgnore] private string _filePath;
-        [DefaultValue("msm8996")] public string AndroidBoardName;
-        [DefaultValue("1.0.0.0000")] public string AndroidBootloader;
+        [JsonIgnore]
+        private string _filePath;

         public AuthType AuthType;
-        [DefaultValue("HTC")] public string DeviceBrand;
-        [DefaultValue("8525f5d8201f78b5")] public string DeviceId;
-        [DefaultValue("HTC 10")] public string DeviceModel;
-        [DefaultValue("qcom")] public string DeviceModelBoot;
-        [DefaultValue("pmewl_00531")] public string DeviceModelIdentifier;
-        // device data
-        [DefaultValue("random")] public string DevicePackageName;
-        [DefaultValue("pmewl_00531")] public string FirmwareBrand;
-
-        [DefaultValue("htc/pmewl_00531/htc_pmewl:6.0.1/MMB29M/770927.1:user/release-keys")] public string
-            FirmwareFingerprint;
-
-        [DefaultValue("release-keys")] public string FirmwareTags;
-        [DefaultValue("user")] public string FirmwareType;
-        public string GoogleApiKey;
-        public string GooglePassword;
         public string GoogleUsername;
-        [DefaultValue("HTC")] public string HardwareManufacturer;
-        [DefaultValue("HTC 10")] public string HardwareModel;
-        public string PtcPassword;
+        public string GooglePassword;
         public string PtcUsername;
+        public string PtcPassword;
         public bool UseProxy;
-        public bool UseProxyAuthentication;
         public string UseProxyHost;
-        public string UseProxyPassword;
         public string UseProxyPort;
+        public bool UseProxyAuthentication;
         public string UseProxyUsername;
+        public string UseProxyPassword;
+        public string GoogleApiKey;
+        // device data
+        [DefaultValue("random")]
+        public string DevicePackageName;
+        [DefaultValue("8525f5d8201f78b5")]
+        public string DeviceId;
+        [DefaultValue("msm8996")]
+        public string AndroidBoardName;
+        [DefaultValue("1.0.0.0000")]
+        public string AndroidBootloader;
+        [DefaultValue("HTC")]
+        public string DeviceBrand;
+        [DefaultValue("HTC 10")]
+        public string DeviceModel;
+        [DefaultValue("pmewl_00531")]
+        public string DeviceModelIdentifier;
+        [DefaultValue("qcom")]
+        public string DeviceModelBoot;
+        [DefaultValue("HTC")]
+        public string HardwareManufacturer;
+        [DefaultValue("HTC 10")]
+        public string HardwareModel;
+        [DefaultValue("pmewl_00531")]
+        public string FirmwareBrand;
+        [DefaultValue("release-keys")]
+        public string FirmwareTags;
+        [DefaultValue("user")]
+        public string FirmwareType;
+        [DefaultValue("htc/pmewl_00531/htc_pmewl:6.0.1/MMB29M/770927.1:user/release-keys")]
+        public string FirmwareFingerprint;

         public AuthSettings()
         {
@@ -66,9 +80,9 @@ namespace PokemonGo.RocketBot.Logic

         public void InitializePropertyDefaultValues(object obj)
         {
-            var fields = obj.GetType().GetFields();
+            FieldInfo[] fields = obj.GetType().GetFields();

-            foreach (var field in fields)
+            foreach (FieldInfo field in fields)
             {
                 var d = field.GetCustomAttribute<DefaultValueAttribute>();

@@ -89,29 +103,27 @@ namespace PokemonGo.RocketBot.Logic
                     var input = File.ReadAllText(_filePath);

                     var settings = new JsonSerializerSettings();
-                    settings.Converters.Add(new StringEnumConverter {CamelCaseText = true});
+                    settings.Converters.Add(new StringEnumConverter { CamelCaseText = true });
                     JsonConvert.PopulateObject(input, this, settings);
                 }
                 // Do some post-load logic to determine what device info to be using - if 'custom' is set we just take what's in the file without question
-                if (!DevicePackageName.Equals("random", StringComparison.InvariantCultureIgnoreCase) &&
-                    !DevicePackageName.Equals("custom", StringComparison.InvariantCultureIgnoreCase))
+                if (!this.DevicePackageName.Equals("random", StringComparison.InvariantCultureIgnoreCase) && !this.DevicePackageName.Equals("custom", StringComparison.InvariantCultureIgnoreCase))
                 {
                     // User requested a specific device package, check to see if it exists and if so, set it up - otherwise fall-back to random package
-                    var keepDevId = DeviceId;
-                    SetDevInfoByKey();
-                    DeviceId = keepDevId;
+                    string keepDevId = this.DeviceId;
+                    SetDevInfoByKey(this.DevicePackageName);
+                    this.DeviceId = keepDevId;
                 }
-                if (DevicePackageName.Equals("random", StringComparison.InvariantCultureIgnoreCase))
+                if (this.DevicePackageName.Equals("random", StringComparison.InvariantCultureIgnoreCase))
                 {
                     // Random is set, so pick a random device package and set it up - it will get saved to disk below and re-used in subsequent sessions
-                    var rnd = new Random();
-                    var rndIdx = rnd.Next(0, DeviceInfoHelper.DeviceInfoSets.Keys.Count - 1);
-                    DevicePackageName = DeviceInfoHelper.DeviceInfoSets.Keys.ToArray()[rndIdx];
-                    SetDevInfoByKey();
+                    Random rnd = new Random();
+                    int rndIdx = rnd.Next(0, DeviceInfoHelper.DeviceInfoSets.Keys.Count - 1);
+                    this.DevicePackageName = DeviceInfoHelper.DeviceInfoSets.Keys.ToArray()[rndIdx];
+                    SetDevInfoByKey(this.DevicePackageName);
                 }
-                if (string.IsNullOrEmpty(DeviceId) || DeviceId == "8525f5d8201f78b5")
-                    DeviceId = RandomString(16, "0123456789abcdef");
-                // changed to random hex as full alphabet letters could have been flagged
+                if (string.IsNullOrEmpty(this.DeviceId) || this.DeviceId == "8525f5d8201f78b5")
+                    this.DeviceId = this.RandomString(16, "0123456789abcdef"); // changed to random hex as full alphabet letters could have been flagged

                 // Jurann: Note that some device IDs I saw when adding devices had smaller numbers, only 12 or 14 chars instead of 16 - probably not important but noted here anyway

@@ -147,7 +159,7 @@ namespace PokemonGo.RocketBot.Logic
             {
                 DefaultValueHandling = DefaultValueHandling.Include,
                 Formatting = Formatting.Indented,
-                Converters = new JsonConverter[] {new StringEnumConverter {CamelCaseText = true}}
+                Converters = new JsonConverter[] { new StringEnumConverter { CamelCaseText = true } }
             };

             var output = JsonConvert.SerializeObject(this, jsonSerializeSettings);
@@ -173,19 +185,17 @@ namespace PokemonGo.RocketBot.Logic
         {
             using (var tempWebClient = new NecroWebClient())
             {
-                var unproxiedIp = WebClientExtensions.DownloadString(tempWebClient,
-                    new Uri("https://api.ipify.org/?format=text"));
+                string unproxiedIP = WebClientExtensions.DownloadString(tempWebClient, new Uri("https://api.ipify.org/?format=text"));
                 if (UseProxy)
                 {
-                    tempWebClient.Proxy = InitProxy();
-                    var proxiedIPres = WebClientExtensions.DownloadString(tempWebClient,
-                        new Uri("https://api.ipify.org/?format=text"));
-                    var proxiedIp = proxiedIPres == null ? "INVALID PROXY" : proxiedIPres;
+                    tempWebClient.Proxy = this.InitProxy();
+                    string proxiedIPres = WebClientExtensions.DownloadString(tempWebClient, new Uri("https://api.ipify.org/?format=text"));
+                    string proxiedIP = proxiedIPres == null ? "INVALID PROXY" : proxiedIPres;
                     Logger.Write(
-                        $"Your IP is: {unproxiedIp} / Proxy IP is: {proxiedIp}",
-                        LogLevel.Info, unproxiedIp == proxiedIp ? ConsoleColor.Red : ConsoleColor.Green);
+                       $"Your IP is: {unproxiedIP} / Proxy IP is: {proxiedIP}",
+                       LogLevel.Info, (unproxiedIP == proxiedIP) ? ConsoleColor.Red : ConsoleColor.Green);

-                    if (unproxiedIp == proxiedIp || proxiedIPres == null)
+                    if (unproxiedIP == proxiedIP || proxiedIPres == null)
                     {
                         Logger.Write("Press any key to exit so you can fix your proxy settings...",
                             LogLevel.Info, ConsoleColor.Red);
@@ -196,24 +206,24 @@ namespace PokemonGo.RocketBot.Logic
                 else
                 {
                     Logger.Write(
-                        $"Your IP is: {unproxiedIp}",
-                        LogLevel.Info, ConsoleColor.Red);
+                       $"Your IP is: {unproxiedIP}",
+                       LogLevel.Info, ConsoleColor.Red);
                 }
             }
         }

         private string RandomString(int length, string alphabet = "abcdefghijklmnopqrstuvwxyz0123456789")
         {
-            var outOfRange = byte.MaxValue + 1 - (byte.MaxValue + 1)%alphabet.Length;
+            var outOfRange = Byte.MaxValue + 1 - (Byte.MaxValue + 1) % alphabet.Length;

             return string.Concat(
                 Enumerable
-                    .Repeat(0, int.MaxValue)
-                    .Select(e => RandomByte())
+                    .Repeat(0, Int32.MaxValue)
+                    .Select(e => this.RandomByte())
                     .Where(randomByte => randomByte < outOfRange)
                     .Take(length)
-                    .Select(randomByte => alphabet[randomByte%alphabet.Length])
-                );
+                    .Select(randomByte => alphabet[randomByte % alphabet.Length])
+            );
         }

         private byte RandomByte()
@@ -226,31 +236,27 @@ namespace PokemonGo.RocketBot.Logic
             }
         }

-        private void SetDevInfoByKey()
+        private void SetDevInfoByKey(string devKey)
         {
-            if (DeviceInfoHelper.DeviceInfoSets.ContainsKey(DevicePackageName))
+            if (DeviceInfoHelper.DeviceInfoSets.ContainsKey(this.DevicePackageName))
             {
-                AndroidBoardName = DeviceInfoHelper.DeviceInfoSets[DevicePackageName]["AndroidBoardName"];
-                AndroidBootloader = DeviceInfoHelper.DeviceInfoSets[DevicePackageName]["AndroidBootloader"];
-                DeviceBrand = DeviceInfoHelper.DeviceInfoSets[DevicePackageName]["DeviceBrand"];
-                DeviceId = DeviceInfoHelper.DeviceInfoSets[DevicePackageName]["DeviceId"];
-                DeviceModel = DeviceInfoHelper.DeviceInfoSets[DevicePackageName]["DeviceModel"];
-                DeviceModelBoot = DeviceInfoHelper.DeviceInfoSets[DevicePackageName]["DeviceModelBoot"];
-                DeviceModelIdentifier =
-                    DeviceInfoHelper.DeviceInfoSets[DevicePackageName]["DeviceModelIdentifier"];
-                FirmwareBrand = DeviceInfoHelper.DeviceInfoSets[DevicePackageName]["FirmwareBrand"];
-                FirmwareFingerprint =
-                    DeviceInfoHelper.DeviceInfoSets[DevicePackageName]["FirmwareFingerprint"];
-                FirmwareTags = DeviceInfoHelper.DeviceInfoSets[DevicePackageName]["FirmwareTags"];
-                FirmwareType = DeviceInfoHelper.DeviceInfoSets[DevicePackageName]["FirmwareType"];
-                HardwareManufacturer =
-                    DeviceInfoHelper.DeviceInfoSets[DevicePackageName]["HardwareManufacturer"];
-                HardwareModel = DeviceInfoHelper.DeviceInfoSets[DevicePackageName]["HardwareModel"];
+                this.AndroidBoardName = DeviceInfoHelper.DeviceInfoSets[this.DevicePackageName]["AndroidBoardName"];
+                this.AndroidBootloader = DeviceInfoHelper.DeviceInfoSets[this.DevicePackageName]["AndroidBootloader"];
+                this.DeviceBrand = DeviceInfoHelper.DeviceInfoSets[this.DevicePackageName]["DeviceBrand"];
+                this.DeviceId = DeviceInfoHelper.DeviceInfoSets[this.DevicePackageName]["DeviceId"];
+                this.DeviceModel = DeviceInfoHelper.DeviceInfoSets[this.DevicePackageName]["DeviceModel"];
+                this.DeviceModelBoot = DeviceInfoHelper.DeviceInfoSets[this.DevicePackageName]["DeviceModelBoot"];
+                this.DeviceModelIdentifier = DeviceInfoHelper.DeviceInfoSets[this.DevicePackageName]["DeviceModelIdentifier"];
+                this.FirmwareBrand = DeviceInfoHelper.DeviceInfoSets[this.DevicePackageName]["FirmwareBrand"];
+                this.FirmwareFingerprint = DeviceInfoHelper.DeviceInfoSets[this.DevicePackageName]["FirmwareFingerprint"];
+                this.FirmwareTags = DeviceInfoHelper.DeviceInfoSets[this.DevicePackageName]["FirmwareTags"];
+                this.FirmwareType = DeviceInfoHelper.DeviceInfoSets[this.DevicePackageName]["FirmwareType"];
+                this.HardwareManufacturer = DeviceInfoHelper.DeviceInfoSets[this.DevicePackageName]["HardwareManufacturer"];
+                this.HardwareModel = DeviceInfoHelper.DeviceInfoSets[this.DevicePackageName]["HardwareModel"];
             }
             else
             {
-                throw new ArgumentException(
-                    "Invalid device info package! Check your auth.config file and make sure a valid DevicePackageName is set. For simple use set it to 'random'. If you have a custom device, then set it to 'custom'.");
+                throw new ArgumentException("Invalid device info package! Check your auth.config file and make sure a valid DevicePackageName is set. For simple use set it to 'random'. If you have a custom device, then set it to 'custom'.");
             }
         }

@@ -258,7 +264,7 @@ namespace PokemonGo.RocketBot.Logic
         {
             if (!UseProxy) return null;

-            var prox = new WebProxy(new Uri($"http://{UseProxyHost}:{UseProxyPort}"), false, null);
+            WebProxy prox = new WebProxy(new System.Uri($"http://{UseProxyHost}:{UseProxyPort}"), false, null);

             if (UseProxyAuthentication)
                 prox.Credentials = new NetworkCredential(UseProxyUsername, UseProxyPassword);
@@ -269,56 +275,270 @@ namespace PokemonGo.RocketBot.Logic

     public class GlobalSettings
     {
-        //console options
-        [DefaultValue(10)] public int AmountOfPokemonToDisplayOnStart;
-        [DefaultValue(5)] public int AmountOfTimesToUpgradeLoop;
-        [JsonIgnore] public AuthSettings Auth = new AuthSettings();
-        [DefaultValue(false)] public bool AutoFavoritePokemon;
-        //powerup
-        [DefaultValue(false)] public bool AutomaticallyLevelUpPokemon;
+        [JsonIgnore]
+        public AuthSettings Auth = new AuthSettings();
+        [JsonIgnore]
+        public string GeneralConfigPath;
+        [JsonIgnore]
+        public string ProfileConfigPath;
+        [JsonIgnore]
+        public string ProfilePath;
+
+        [JsonIgnore]
+        public bool isGui;
+
+        [DefaultValue(false)]
+        public bool EnableAdvancedSettings;
+
+        [DefaultValue("en")]
+        public string TranslationLanguageCode;
         //autoupdate
-        [DefaultValue(true)] public bool AutoUpdate;
+        [DefaultValue(true)]
+        public bool AutoUpdate;
+        [DefaultValue(true)]
+        public bool TransferConfigAndAuthOnUpdate;
+        //websockets
+        [DefaultValue(false)]
+        public bool UseWebsocket;
+        [DefaultValue(14251)]
+        public int WebSocketPort;
+        //pressakeyshit
+        [DefaultValue(false)]
+        public bool StartupWelcomeDelay;
+        //Telegram
+        [DefaultValue(false)]
+        public bool UseTelegramAPI;
+        [DefaultValue(null)]
+        public string TelegramAPIKey;
+
+        //console options
+        [DefaultValue(0)]
+        public int AmountOfPokemonToDisplayOnStart;
+        [DefaultValue(true)]
+        public bool DetailedCountsBeforeRecycling;
+
+        [DefaultValue(3)]
+        public int MaxBerriesToUsePerPokemon;
         //pokemon
-        [DefaultValue(true)] public bool CatchPokemon;
-        [DefaultValue(90)] public int CurveThrowChance;
-        [DefaultValue(40.785091)] public double DefaultLatitude;
-        [DefaultValue(-73.968285)] public double DefaultLongitude;
-        //delays
-        [DefaultValue(500)] public int DelayBetweenPlayerActions;
-        [DefaultValue(100)] public int DelayBetweenPokemonCatch;
-        [DefaultValue(false)] public bool DelayBetweenRecycleActions;
-        [DefaultValue(true)] public bool DetailedCountsBeforeRecycling;
+        [DefaultValue(true)]
+        public bool CatchPokemon;
+        //powerup
+        [DefaultValue(false)]
+        public bool AutomaticallyLevelUpPokemon;
+        [DefaultValue(true)]
+        public bool OnlyUpgradeFavorites;
+
+        [DefaultValue((true))]
+        public bool UseLevelUpList;
+        [DefaultValue(5)]
+        public int AmountOfTimesToUpgradeLoop;
+        [DefaultValue(5000)]
+        public int GetMinStarDustForLevelUp;
+        [DefaultValue("iv")]
+        public string LevelUpByCPorIv;
+        [DefaultValue(1000)]
+        public float UpgradePokemonCpMinimum;
+        [DefaultValue(95)]
+        public float UpgradePokemonIvMinimum;
+        [DefaultValue("and")]
+        public string UpgradePokemonMinimumStatsOperator;
         //position
-        [DefaultValue(false)] public bool DisableHumanWalking;
+        [DefaultValue(false)]
+        public bool DisableHumanWalking;
+        [DefaultValue(40.785091)]
+        public double DefaultLatitude;
+        [DefaultValue(-73.968285)]
+        public double DefaultLongitude;
+        [DefaultValue(19.0)]
+        public double WalkingSpeedInKilometerPerHour;
+        [DefaultValue(2)]
+        public double WalkingSpeedOffSetInKilometerPerHour;
+        [DefaultValue(true)]
+        public bool UseWalkingSpeedVariant;
+        [DefaultValue(1.2)]
+        public double WalkingSpeedVariant;
+        [DefaultValue(true)]
+        public bool ShowVariantWalking;
+        [DefaultValue(10)]
+        public int MaxSpawnLocationOffset;
+        //softban related
+        [DefaultValue(false)]
+        public bool FastSoftBanBypass;
+        //delays
+        [DefaultValue(500)]
+        public int DelayBetweenPlayerActions;
+        [DefaultValue(100)]
+        public int DelayBetweenPokemonCatch;
         //dump stats
-        [DefaultValue(false)] public bool DumpPokemonStats;
-        //customizable catch
-        [DefaultValue(false)] public bool EnableHumanizedThrows;
+        [DefaultValue(false)]
+        public bool DumpPokemonStats;
         //evolve
-        [DefaultValue(95)] public float EvolveAboveIvValue;
-        [DefaultValue(false)] public bool EvolveAllPokemonAboveIv;
-        [DefaultValue(true)] public bool EvolveAllPokemonWithEnoughCandy;
-        [DefaultValue(90.0)] public double EvolveKeptPokemonsAtStorageUsagePercentage;
-        [DefaultValue(10)] public int ExcellentThrowChance;
-        //softban related
-        [DefaultValue(false)] public bool FastSoftBanBypass;
+        [DefaultValue(95)]
+        public float EvolveAboveIvValue;
+        [DefaultValue(false)]
+        public bool EvolveAllPokemonAboveIv;
+        [DefaultValue(true)]
+        public bool EvolveAllPokemonWithEnoughCandy;
+        [DefaultValue(90.0)]
+        public double EvolveKeptPokemonsAtStorageUsagePercentage;
+        [DefaultValue(false)]
+        public bool KeepPokemonsThatCanEvolve;
+        //keeping
+        [DefaultValue(1250)]
+        public int KeepMinCp;
+        [DefaultValue(90)]
+        public float KeepMinIvPercentage;
+        [DefaultValue(6)]
+        public int KeepMinLvl;
+        [DefaultValue("or")]
+        public string KeepMinOperator;
+        [DefaultValue(false)]
+        public bool UseKeepMinLvl;
+        [DefaultValue(false)]
+        public bool PrioritizeIvOverCp;
+        [DefaultValue(0)]
+        public int KeepMinDuplicatePokemon;
+        //gpx
+        [DefaultValue(false)]
+        public bool UseGpxPathing;
+        [DefaultValue("GPXPath.GPX")]
+        public string GpxFile;
+        //recycle
+        [DefaultValue(true)]
+        public bool VerboseRecycling;
+        [DefaultValue(90.0)]
+        public double RecycleInventoryAtUsagePercentage;
+        [DefaultValue(false)]
+        public bool RandomizeRecycle;
+        [DefaultValue(5)]
+        public int RandomRecycleValue;
+        [DefaultValue(false)]
+        public bool DelayBetweenRecycleActions;
+        //lucky, incense and berries
+        [DefaultValue(true)]
+        public bool UseEggIncubators;
+        [DefaultValue(false)]
+        public bool UseLuckyEggConstantly;
+        [DefaultValue(30)]
+        public int UseLuckyEggsMinPokemonAmount;
+        [DefaultValue(false)]
+        public bool UseLuckyEggsWhileEvolving;
+        [DefaultValue(false)]
+        public bool UseIncenseConstantly;
+        [DefaultValue(1000)]
+        public int UseBerriesMinCp;
+        [DefaultValue(90)]
+        public float UseBerriesMinIv;
+        [DefaultValue(0.20)]
+        public double UseBerriesBelowCatchProbability;
+        [DefaultValue("or")]
+        public string UseBerriesOperator;
+        //snipe
+        [DefaultValue(false)]
+        public bool UseSnipeLocationServer;
+        [DefaultValue("localhost")]
+        public string SnipeLocationServer;
+        [DefaultValue(16969)]
+        public int SnipeLocationServerPort;
+        [DefaultValue(true)]
+        public bool GetSniperInfoFromPokezz;
+        [DefaultValue(true)]
+        public bool GetOnlyVerifiedSniperInfoFromPokezz;
+        [DefaultValue(true)]
+        public bool GetSniperInfoFromPokeSnipers;
+        [DefaultValue(true)]
+        public bool GetSniperInfoFromPokeWatchers;
+        [DefaultValue(true)]
+        public bool SnipeWithSkiplagged;
+        [DefaultValue(20)]
+        public int MinPokeballsToSnipe;
+        [DefaultValue(0)]
+        public int MinPokeballsWhileSnipe;
+        [DefaultValue(60000)]
+        public int MinDelayBetweenSnipes;
+        [DefaultValue(0.005)]
+        public double SnipingScanOffset;
+        [DefaultValue(false)]
+        public bool SnipeAtPokestops;
+        [DefaultValue(false)]
+        public bool SnipeIgnoreUnknownIv;
+        [DefaultValue(false)]
+        public bool UseTransferIvForSnipe;
+        [DefaultValue(false)]
+        public bool SnipePokemonNotInPokedex;
+        //rename
+        [DefaultValue(false)]
+        public bool RenamePokemon;
+        [DefaultValue(true)]
+        public bool RenameOnlyAboveIv;
+        [DefaultValue("{1}_{0}")]
+        public string RenameTemplate;
+        //amounts
+        [DefaultValue(6)]
+        public int MaxPokeballsPerPokemon;
+        [DefaultValue(1000)]
+        public int MaxTravelDistanceInMeters;
+        [DefaultValue(120)]
+        public int TotalAmountOfPokeballsToKeep;
+        [DefaultValue(80)]
+        public int TotalAmountOfPotionsToKeep;
+        [DefaultValue(60)]
+        public int TotalAmountOfRevivesToKeep;
+        [DefaultValue(50)]
+        public int TotalAmountOfBerriesToKeep;
+        //balls
+        [DefaultValue(1000)]
+        public int UseGreatBallAboveCp;
+        [DefaultValue(1250)]
+        public int UseUltraBallAboveCp;
+        [DefaultValue(1500)]
+        public int UseMasterBallAboveCp;
+        [DefaultValue(85.0)]
+        public double UseGreatBallAboveIv;
+        [DefaultValue(95.0)]
+        public double UseUltraBallAboveIv;
+        [DefaultValue(0.2)]
+        public double UseGreatBallBelowCatchProbability;
+        [DefaultValue(0.1)]
+        public double UseUltraBallBelowCatchProbability;
+        [DefaultValue(0.05)]
+        public double UseMasterBallBelowCatchProbability;
+        //customizable catch
+        [DefaultValue(false)]
+        public bool EnableHumanizedThrows;
+        [DefaultValue(40)]
+        public int NiceThrowChance;
+        [DefaultValue(30)]
+        public int GreatThrowChance;
+        [DefaultValue(10)]
+        public int ExcellentThrowChance;
+        [DefaultValue(90)]
+        public int CurveThrowChance;
+        [DefaultValue(90.00)]
+        public double ForceGreatThrowOverIv;
+        [DefaultValue(95.00)]
+        public double ForceExcellentThrowOverIv;
+        [DefaultValue(1000)]
+        public int ForceGreatThrowOverCp;
+        [DefaultValue(1500)]
+        public int ForceExcellentThrowOverCp;
+        //transfer
+        [DefaultValue(false)]
+        public bool TransferWeakPokemon;
+        [DefaultValue(true)]
+        public bool TransferDuplicatePokemon;
+        [DefaultValue(true)]
+        public bool TransferDuplicatePokemonOnCapture;
         //favorite
-        [DefaultValue(95)] public float FavoriteMinIvPercentage;
-        [DefaultValue(1500)] public int ForceExcellentThrowOverCp;
-        [DefaultValue(95.00)] public double ForceExcellentThrowOverIv;
-        [DefaultValue(1000)] public int ForceGreatThrowOverCp;
-        [DefaultValue(90.00)] public double ForceGreatThrowOverIv;
-        [JsonIgnore] public string GeneralConfigPath;
-        [DefaultValue(5000)] public int GetMinStarDustForLevelUp;
-        [DefaultValue(true)] public bool GetOnlyVerifiedSniperInfoFromPokezz;
-        [DefaultValue(true)] public bool GetSniperInfoFromPokeSnipers;
-        [DefaultValue(true)] public bool GetSniperInfoFromPokeWatchers;
-        [DefaultValue(true)] public bool GetSniperInfoFromPokezz;
-        [DefaultValue("GPXPath.GPX")] public string GpxFile;
-        [DefaultValue(30)] public int GreatThrowChance;
-
-        [JsonIgnore] public bool IsGui;
-
+        [DefaultValue(95)]
+        public float FavoriteMinIvPercentage;
+        [DefaultValue(false)]
+        public bool AutoFavoritePokemon;
+        //notcatch
+        [DefaultValue(false)]
+        public bool UsePokemonToNotCatchFilter;
+        [DefaultValue(false)]
+        public bool UsePokemonSniperFilterOnly;
         public List<KeyValuePair<ItemId, int>> ItemRecycleFilter = new List<KeyValuePair<ItemId, int>>
         {
             new KeyValuePair<ItemId, int>(ItemId.ItemUnknown, 0),
@@ -338,28 +558,6 @@ namespace PokemonGo.RocketBot.Logic
             new KeyValuePair<ItemId, int>(ItemId.ItemItemStorageUpgrade, 100)
         };

-        //keeping
-        [DefaultValue(1250)] public int KeepMinCp;
-        [DefaultValue(0)] public int KeepMinDuplicatePokemon;
-        [DefaultValue(90)] public float KeepMinIvPercentage;
-        [DefaultValue(6)] public int KeepMinLvl;
-        [DefaultValue("or")] public string KeepMinOperator;
-        [DefaultValue(false)] public bool KeepPokemonsThatCanEvolve;
-        [DefaultValue("iv")] public string LevelUpByCPorIv;
-
-        [DefaultValue(3)] public int MaxBerriesToUsePerPokemon;
-        //amounts
-        [DefaultValue(6)] public int MaxPokeballsPerPokemon;
-
-
-        public int MaxSpawnLocationOffset;
-        [DefaultValue(1000)] public int MaxTravelDistanceInMeters;
-        [DefaultValue(60000)] public int MinDelayBetweenSnipes;
-        [DefaultValue(20)] public int MinPokeballsToSnipe;
-        [DefaultValue(0)] public int MinPokeballsWhileSnipe;
-        [DefaultValue(40)] public int NiceThrowChance;
-        [DefaultValue(true)] public bool OnlyUpgradeFavorites;
-

         public List<PokemonId> PokemonsNotToTransfer = new List<PokemonId>
         {
@@ -440,8 +638,7 @@ namespace PokemonGo.RocketBot.Logic
             //PokemonId.Goldeen,
             //PokemonId.Staryu
         };
-
-        public List<PokemonId> PokemonsToIgnore = new List<PokemonId>
+        public List<PokemonId> PokemonsToLevelUp = new List<PokemonId>
         {
             //criteria: most common
             PokemonId.Caterpie,
@@ -452,8 +649,7 @@ namespace PokemonGo.RocketBot.Logic
             PokemonId.Zubat,
             PokemonId.Doduo
         };
-
-        public List<PokemonId> PokemonsToLevelUp = new List<PokemonId>
+        public List<PokemonId> PokemonsToIgnore = new List<PokemonId>
         {
             //criteria: most common
             PokemonId.Caterpie,
@@ -570,95 +766,16 @@ namespace PokemonGo.RocketBot.Logic
             PokemonId.Mewtwo
         };

-        [DefaultValue(false)] public bool PrioritizeIvOverCp;
-        [JsonIgnore] public string ProfileConfigPath;
-        [JsonIgnore] public string ProfilePath;
-        [DefaultValue(false)] public bool RandomizeRecycle;
-        [DefaultValue(5)] public int RandomRecycleValue;
-        [DefaultValue(90.0)] public double RecycleInventoryAtUsagePercentage;
-        [DefaultValue(true)] public bool RenameOnlyAboveIv;
-        //rename
-        [DefaultValue(false)] public bool RenamePokemon;
-        [DefaultValue("{1}_{0}")] public string RenameTemplate;
-        [DefaultValue(true)] public bool ShowVariantWalking;
-        [DefaultValue(false)] public bool SnipeAtPokestops;
-        [DefaultValue(false)] public bool SnipeIgnoreUnknownIv;
-        [DefaultValue("localhost")] public string SnipeLocationServer;
-        [DefaultValue(16969)] public int SnipeLocationServerPort;
-        [DefaultValue(false)] public bool SnipePokemonNotInPokedex;
-        [DefaultValue(true)] public bool SnipeWithSkiplagged;
-        [DefaultValue(0.005)] public double SnipingScanOffset;
-        //pressakeyshit
-        [DefaultValue(false)] public bool StartupWelcomeDelay;
-        [DefaultValue(null)] public string TelegramApiKey;
-        [DefaultValue(50)] public int TotalAmountOfBerriesToKeep;
-        [DefaultValue(120)] public int TotalAmountOfPokeballsToKeep;
-        [DefaultValue(80)] public int TotalAmountOfPotionsToKeep;
-        [DefaultValue(60)] public int TotalAmountOfRevivesToKeep;
-        [DefaultValue(true)] public bool TransferConfigAndAuthOnUpdate;
-        [DefaultValue(true)] public bool TransferDuplicatePokemon;
-        [DefaultValue(true)] public bool TransferDuplicatePokemonOnCapture;
-        //transfer
-        [DefaultValue(false)] public bool TransferWeakPokemon;
-
-        [DefaultValue("en")] public string TranslationLanguageCode;
-        [DefaultValue(1000)] public float UpgradePokemonCpMinimum;
-        [DefaultValue(95)] public float UpgradePokemonIvMinimum;
-        [DefaultValue("and")] public string UpgradePokemonMinimumStatsOperator;
-        [DefaultValue(0.20)] public double UseBerriesBelowCatchProbability;
-        [DefaultValue(1000)] public int UseBerriesMinCp;
-        [DefaultValue(90)] public float UseBerriesMinIv;
-        [DefaultValue("or")] public string UseBerriesOperator;
-        //lucky, incense and berries
-        [DefaultValue(true)] public bool UseEggIncubators;
-        //gpx
-        [DefaultValue(false)] public bool UseGpxPathing;
-        //balls
-        [DefaultValue(1000)] public int UseGreatBallAboveCp;
-        [DefaultValue(85.0)] public double UseGreatBallAboveIv;
-        [DefaultValue(0.2)] public double UseGreatBallBelowCatchProbability;
-        [DefaultValue(false)] public bool UseIncenseConstantly;
-        [DefaultValue(false)] public bool UseKeepMinLvl;
-
-        [DefaultValue(true)] public bool UseLevelUpList;
-        [DefaultValue(false)] public bool UseLuckyEggConstantly;
-        [DefaultValue(30)] public int UseLuckyEggsMinPokemonAmount;
-        [DefaultValue(false)] public bool UseLuckyEggsWhileEvolving;
-        [DefaultValue(1500)] public int UseMasterBallAboveCp;
-        [DefaultValue(0.05)] public double UseMasterBallBelowCatchProbability;
-        [DefaultValue(false)] public bool UsePokemonSniperFilterOnly;
-        //notcatch
-        [DefaultValue(false)] public bool UsePokemonToNotCatchFilter;
-        //snipe
-        [DefaultValue(false)] public bool UseSnipeLocationServer;
-        //Telegram
-        [DefaultValue(false)] public bool UseTelegramApi;
-        [DefaultValue(false)] public bool UseTransferIvForSnipe;
-        [DefaultValue(1250)] public int UseUltraBallAboveCp;
-        [DefaultValue(95.0)] public double UseUltraBallAboveIv;
-        [DefaultValue(0.1)] public double UseUltraBallBelowCatchProbability;
-        [DefaultValue(true)] public bool UseWalkingSpeedVariant;
-        //websockets
-        [DefaultValue(false)] public bool UseWebsocket;
-        //recycle
-        [DefaultValue(true)] public bool VerboseRecycling;
-        [DefaultValue(19.0)] public double WalkingSpeedInKilometerPerHour;
-        [DefaultValue(2)] public double WalkingSpeedOffSetInKilometerPerHour;
-        [DefaultValue(1.2)] public double WalkingSpeedVariant;
-        [DefaultValue(14251)] public int WebSocketPort;
-
         public GlobalSettings()
         {
             InitializePropertyDefaultValues(this);
         }

-        public static GlobalSettings Default => new GlobalSettings();
-
         public void InitializePropertyDefaultValues(object obj)
         {
-            var fields = obj.GetType().GetFields();
+            FieldInfo[] fields = obj.GetType().GetFields();

-            foreach (var field in fields)
+            foreach (FieldInfo field in fields)
             {
                 var d = field.GetCustomAttribute<DefaultValueAttribute>();

@@ -667,12 +784,12 @@ namespace PokemonGo.RocketBot.Logic
             }
         }

+        public static GlobalSettings Default => new GlobalSettings();
+
         public static GlobalSettings Load(string path, bool boolSkipSave = false)
         {
-            GlobalSettings settings;
-            var isGui =
-                AppDomain.CurrentDomain.GetAssemblies().SingleOrDefault(a => a.FullName.Contains("PoGo.NecroBot.GUI")) !=
-                null;
+            GlobalSettings settings = null;
+            bool isGui = (AppDomain.CurrentDomain.GetAssemblies().SingleOrDefault(a => a.FullName.Contains("PoGo.NecroBot.GUI")) != null);
             var profilePath = Path.Combine(Directory.GetCurrentDirectory(), path);
             var profileConfigPath = Path.Combine(profilePath, "config");
             var configFile = Path.Combine(profileConfigPath, "config.json");
@@ -683,8 +800,8 @@ namespace PokemonGo.RocketBot.Logic
                 try
                 {
                     //if the file exists, load the settings
-                    string input;
-                    var count = 0;
+                    string input = "";
+                    int count = 0;
                     while (true)
                     {
                         try
@@ -702,10 +819,10 @@ namespace PokemonGo.RocketBot.Logic
                             count++;
                             Thread.Sleep(1000);
                         }
-                    }
+                    };

                     var jsonSettings = new JsonSerializerSettings();
-                    jsonSettings.Converters.Add(new StringEnumConverter {CamelCaseText = true});
+                    jsonSettings.Converters.Add(new StringEnumConverter { CamelCaseText = true });
                     jsonSettings.ObjectCreationHandling = ObjectCreationHandling.Replace;
                     jsonSettings.DefaultValueHandling = DefaultValueHandling.Populate;

@@ -741,7 +858,7 @@ namespace PokemonGo.RocketBot.Logic
             settings.ProfilePath = profilePath;
             settings.ProfileConfigPath = profileConfigPath;
             settings.GeneralConfigPath = Path.Combine(Directory.GetCurrentDirectory(), "config");
-            settings.IsGui = isGui;
+            settings.isGui = isGui;

             if (!boolSkipSave || !settings.AutoUpdate)
             {
@@ -763,30 +880,25 @@ namespace PokemonGo.RocketBot.Logic

             while (true)
             {
-                var readLine = Console.ReadLine();
-                if (readLine != null)
-                {
-                    var strInput = readLine.ToLower();
+                string strInput = Console.ReadLine().ToLower();

-                    switch (strInput)
-                    {
-                        case "y":
-                            return true;
-                        case "n":
-                            Logger.Write(translator.GetTranslation(TranslationString.FirstStartAutoGenSettings));
-                            return false;
-                        default:
-                            Logger.Write(translator.GetTranslation(TranslationString.PromptError, "Y", "N"),
-                                LogLevel.Error);
-                            continue;
-                    }
+                switch (strInput)
+                {
+                    case "y":
+                        return true;
+                    case "n":
+                        Logger.Write(translator.GetTranslation(TranslationString.FirstStartAutoGenSettings));
+                        return false;
+                    default:
+                        Logger.Write(translator.GetTranslation(TranslationString.PromptError, "Y", "N"), LogLevel.Error);
+                        continue;
                 }
             }
         }

-        public static Session SetupSettings(Session session, GlobalSettings settings, string configPath)
+        public static Session SetupSettings(Session session, GlobalSettings settings, String configPath)
         {
-            var newSession = SetupTranslationCode(session, session.Translation, settings);
+            Session newSession = SetupTranslationCode(session, session.Translation, settings);

             SetupAccountType(newSession.Translation, settings);
             SetupUserAccount(newSession.Translation, settings);
@@ -803,10 +915,9 @@ namespace PokemonGo.RocketBot.Logic
             Logger.Write(translator.GetTranslation(TranslationString.FirstStartLanguagePrompt, "Y", "N"), LogLevel.None);
             string strInput;

-            var boolBreak = false;
+            bool boolBreak = false;
             while (!boolBreak)
             {
-                // ReSharper disable once PossibleNullReferenceException
                 strInput = Console.ReadLine().ToLower();

                 switch (strInput)
@@ -842,7 +953,6 @@ namespace PokemonGo.RocketBot.Logic

             while (true)
             {
-                // ReSharper disable once PossibleNullReferenceException
                 strInput = Console.ReadLine().ToLower();

                 switch (strInput)
@@ -856,9 +966,7 @@ namespace PokemonGo.RocketBot.Logic
                         Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupTypeConfirm, "PTC"));
                         return;
                     default:
-                        Logger.Write(
-                            translator.GetTranslation(TranslationString.FirstStartSetupTypePromptError, "google", "ptc"),
-                            LogLevel.Error);
+                        Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupTypePromptError, "google", "ptc"), LogLevel.Error);
                         break;
                 }
             }
@@ -868,7 +976,7 @@ namespace PokemonGo.RocketBot.Logic
         {
             Console.WriteLine("");
             Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupUsernamePrompt), LogLevel.None);
-            var strInput = Console.ReadLine();
+            string strInput = Console.ReadLine();

             if (settings.Auth.AuthType == AuthType.Google)
                 settings.Auth.GoogleUsername = strInput;
@@ -891,14 +999,12 @@ namespace PokemonGo.RocketBot.Logic

         private static void SetupConfig(ITranslation translator, GlobalSettings settings)
         {
-            Logger.Write(translator.GetTranslation(TranslationString.FirstStartDefaultLocationPrompt, "Y", "N"),
-                LogLevel.None);
+            Logger.Write(translator.GetTranslation(TranslationString.FirstStartDefaultLocationPrompt, "Y", "N"), LogLevel.None);

-            var boolBreak = false;
+            bool boolBreak = false;
             while (!boolBreak)
             {
-                // ReSharper disable once PossibleNullReferenceException
-                var strInput = Console.ReadLine().ToLower();
+                string strInput = Console.ReadLine().ToLower();

                 switch (strInput)
                 {
@@ -921,16 +1027,15 @@ namespace PokemonGo.RocketBot.Logic
             {
                 try
                 {
-                    // ReSharper disable once AssignNullToNotNullAttribute
-                    var dblInput = double.Parse(Console.ReadLine());
+                    double dblInput = double.Parse(Console.ReadLine());
                     settings.DefaultLatitude = dblInput;
                     Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupDefaultLatConfirm, dblInput));
                     break;
                 }
                 catch (FormatException)
                 {
-                    Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupDefaultLocationError,
-                        settings.DefaultLatitude, LogLevel.Error));
+                    Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupDefaultLocationError, settings.DefaultLatitude, LogLevel.Error));
+                    continue;
                 }
             }

@@ -939,21 +1044,20 @@ namespace PokemonGo.RocketBot.Logic
             {
                 try
                 {
-                    // ReSharper disable once AssignNullToNotNullAttribute
-                    var dblInput = double.Parse(Console.ReadLine());
+                    double dblInput = double.Parse(Console.ReadLine());
                     settings.DefaultLongitude = dblInput;
                     Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupDefaultLongConfirm, dblInput));
                     break;
                 }
                 catch (FormatException)
                 {
-                    Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupDefaultLocationError,
-                        settings.DefaultLongitude, LogLevel.Error));
+                    Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupDefaultLocationError, settings.DefaultLongitude, LogLevel.Error));
+                    continue;
                 }
             }
         }

-        private static void SaveFiles(GlobalSettings settings, string configFile)
+        private static void SaveFiles(GlobalSettings settings, String configFile)
         {
             settings.Save(configFile);
             settings.Auth.Load(Path.Combine(settings.ProfileConfigPath, "auth.json"));
@@ -965,7 +1069,7 @@ namespace PokemonGo.RocketBot.Logic
             {
                 DefaultValueHandling = DefaultValueHandling.Include,
                 Formatting = Formatting.Indented,
-                Converters = new JsonConverter[] {new StringEnumConverter {CamelCaseText = true}}
+                Converters = new JsonConverter[] { new StringEnumConverter { CamelCaseText = true } }
             };

             var output = JsonConvert.SerializeObject(this, jsonSerializeSettings);
@@ -983,7 +1087,7 @@ namespace PokemonGo.RocketBot.Logic
     public class ClientSettings : ISettings
     {
         // Never spawn at the same position.
-        private readonly Random _rand = new Random();
+        private readonly Random _rand = new Random(DateTime.Now.Millisecond);
         private readonly GlobalSettings _settings;

         public ClientSettings(GlobalSettings settings)
@@ -995,43 +1099,6 @@ namespace PokemonGo.RocketBot.Logic
         public string GoogleUsername => _settings.Auth.GoogleUsername;
         public string GooglePassword => _settings.Auth.GooglePassword;

-        double ISettings.DefaultLatitude
-        {
-            get
-            {
-                return _settings.DefaultLatitude + _rand.NextDouble()*((double) _settings.MaxSpawnLocationOffset/111111);
-            }
-
-            set { _settings.DefaultLatitude = value; }
-        }
-
-        double ISettings.DefaultLongitude
-        {
-            get
-            {
-                return _settings.DefaultLongitude +
-                       _rand.NextDouble()*
-                       ((double) _settings.MaxSpawnLocationOffset/111111/Math.Cos(_settings.DefaultLatitude));
-            }
-
-            set { _settings.DefaultLongitude = value; }
-        }
-
-        double ISettings.DefaultAltitude
-        {
-            get
-            {
-                return
-                    LocationUtils.getElevation(_settings.DefaultLatitude, _settings.DefaultLongitude) +
-                    _rand.NextDouble()*
-                    (5/
-                     Math.Cos(LocationUtils.getElevation(_settings.DefaultLatitude, _settings.DefaultLongitude)));
-            }
-
-
-            set { }
-        }
-
         #region Auth Config Values

         public bool UseProxy
@@ -1073,13 +1140,8 @@ namespace PokemonGo.RocketBot.Logic
         public string GoogleRefreshToken
         {
             get { return null; }
-            set
-            {
-                if (value == null) throw new ArgumentNullException(nameof(value));
-                GoogleRefreshToken = null;
-            }
+            set { GoogleRefreshToken = null; }
         }
-
         AuthType ISettings.AuthType
         {
             get { return _settings.Auth.AuthType; }
@@ -1119,84 +1181,71 @@ namespace PokemonGo.RocketBot.Logic

         #region Device Config Values

-        private string DevicePackageName
+        string DevicePackageName
         {
             get { return _settings.Auth.DevicePackageName; }
             set { _settings.Auth.DevicePackageName = value; }
         }
-
         string ISettings.DeviceId
         {
             get { return _settings.Auth.DeviceId; }
             set { _settings.Auth.DeviceId = value; }
         }
-
         string ISettings.AndroidBoardName
         {
             get { return _settings.Auth.AndroidBoardName; }
             set { _settings.Auth.AndroidBoardName = value; }
         }
-
         string ISettings.AndroidBootloader
         {
             get { return _settings.Auth.AndroidBootloader; }
             set { _settings.Auth.AndroidBootloader = value; }
         }
-
         string ISettings.DeviceBrand
         {
             get { return _settings.Auth.DeviceBrand; }
             set { _settings.Auth.DeviceBrand = value; }
         }
-
         string ISettings.DeviceModel
         {
             get { return _settings.Auth.DeviceModel; }
             set { _settings.Auth.DeviceModel = value; }
         }
-
         string ISettings.DeviceModelIdentifier
         {
             get { return _settings.Auth.DeviceModelIdentifier; }
             set { _settings.Auth.DeviceModelIdentifier = value; }
         }
-
         string ISettings.DeviceModelBoot
         {
             get { return _settings.Auth.DeviceModelBoot; }
             set { _settings.Auth.DeviceModelBoot = value; }
         }
-
         string ISettings.HardwareManufacturer
         {
             get { return _settings.Auth.HardwareManufacturer; }
             set { _settings.Auth.HardwareManufacturer = value; }
         }
-
         string ISettings.HardwareModel
         {
             get { return _settings.Auth.HardwareModel; }
             set { _settings.Auth.HardwareModel = value; }
         }
-
         string ISettings.FirmwareBrand
         {
             get { return _settings.Auth.FirmwareBrand; }
             set { _settings.Auth.FirmwareBrand = value; }
         }
-
         string ISettings.FirmwareTags
         {
             get { return _settings.Auth.FirmwareTags; }
             set { _settings.Auth.FirmwareTags = value; }
         }
-
         string ISettings.FirmwareType
         {
             get { return _settings.Auth.FirmwareType; }
             set { _settings.Auth.FirmwareType = value; }
         }
-
         string ISettings.FirmwareFingerprint
         {
             get { return _settings.Auth.FirmwareFingerprint; }
@@ -1204,6 +1253,42 @@ namespace PokemonGo.RocketBot.Logic
         }

         #endregion Device Config Values
+
+        double ISettings.DefaultLatitude
+        {
+            get
+            {
+                return _settings.DefaultLatitude + _rand.NextDouble() * ((double)_settings.MaxSpawnLocationOffset / 111111);
+            }
+
+            set { _settings.DefaultLatitude = value; }
+        }
+
+        double ISettings.DefaultLongitude
+        {
+            get
+            {
+                return _settings.DefaultLongitude +
+                       _rand.NextDouble() *
+                       ((double)_settings.MaxSpawnLocationOffset / 111111 / Math.Cos(_settings.DefaultLatitude));
+            }
+
+            set { _settings.DefaultLongitude = value; }
+        }
+
+        double ISettings.DefaultAltitude
+        {
+            get
+            {
+                return
+                    LocationUtils.getElevation(_settings.DefaultLatitude, _settings.DefaultLongitude) +
+                    _rand.NextDouble() *
+                    ((double)5 / Math.Cos(LocationUtils.getElevation(_settings.DefaultLatitude, _settings.DefaultLongitude)));
+            }
+
+
+            set { }
+        }
     }

     public class LogicSettings : ILogicSettings
@@ -1299,10 +1384,7 @@ namespace PokemonGo.RocketBot.Logic
         public bool DetailedCountsBeforeRecycling => _settings.DetailedCountsBeforeRecycling;
         public bool VerboseRecycling => _settings.VerboseRecycling;
         public double RecycleInventoryAtUsagePercentage => _settings.RecycleInventoryAtUsagePercentage;
-
-        public double EvolveKeptPokemonsAtStorageUsagePercentage => _settings.EvolveKeptPokemonsAtStorageUsagePercentage
-            ;
-
+        public double EvolveKeptPokemonsAtStorageUsagePercentage => _settings.EvolveKeptPokemonsAtStorageUsagePercentage;
         public ICollection<KeyValuePair<ItemId, int>> ItemRecycleFilter => _settings.ItemRecycleFilter;
         public ICollection<PokemonId> PokemonsToEvolve => _settings.PokemonsToEvolve;
         public ICollection<PokemonId> PokemonsToLevelUp => _settings.PokemonsToLevelUp;
@@ -1314,8 +1396,8 @@ namespace PokemonGo.RocketBot.Logic
         public bool StartupWelcomeDelay => _settings.StartupWelcomeDelay;
         public bool SnipeAtPokestops => _settings.SnipeAtPokestops;

-        public bool UseTelegramAPI => _settings.UseTelegramApi;
-        public string TelegramAPIKey => _settings.TelegramApiKey;
+        public bool UseTelegramAPI => _settings.UseTelegramAPI;
+        public string TelegramAPIKey => _settings.TelegramAPIKey;

         public int MinPokeballsToSnipe => _settings.MinPokeballsToSnipe;
         public int MinPokeballsWhileSnipe => _settings.MinPokeballsWhileSnipe;
diff --git a/PokemonGo.RocketBot.Window/Forms/MainForm.cs b/PokemonGo.RocketBot.Window/Forms/MainForm.cs
index 465c4b6..47e6eea 100644
--- a/PokemonGo.RocketBot.Window/Forms/MainForm.cs
+++ b/PokemonGo.RocketBot.Window/Forms/MainForm.cs
@@ -570,8 +570,14 @@ namespace PokemonGo.RocketBot.Window.Forms

         private void todoToolStripMenuItem_Click(object sender, EventArgs e)
         {
-            Form settingsForm = new SettingsForm();
+            Form settingsForm = new SettingsForm(ref _settings);
             settingsForm.ShowDialog();
+            var newLocation = new PointLatLng(_settings.DefaultLatitude, _settings.DefaultLongitude);
+            gMapControl1.Position = newLocation;
+            _playerMarker.Position = newLocation;
+            _playerLocations.Clear();
+            _playerLocations.Add(newLocation);
+            UpdateMap();
         }

         private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
diff --git a/PokemonGo.RocketBot.Window/Forms/MainForm.designer.cs b/PokemonGo.RocketBot.Window/Forms/MainForm.designer.cs
index 9ec6e51..55dcf24 100644
--- a/PokemonGo.RocketBot.Window/Forms/MainForm.designer.cs
+++ b/PokemonGo.RocketBot.Window/Forms/MainForm.designer.cs
@@ -138,11 +138,9 @@ namespace PokemonGo.RocketBot.Window.Forms
             //
             // todoToolStripMenuItem
             //
-            this.todoToolStripMenuItem.Enabled = false;
             this.todoToolStripMenuItem.Name = "todoToolStripMenuItem";
-            this.todoToolStripMenuItem.Size = new System.Drawing.Size(540, 21);
-            this.todoToolStripMenuItem.Text = "Settings (Not finish yet, please go to the config folder and set your information" +
-    " manually)";
+            this.todoToolStripMenuItem.Size = new System.Drawing.Size(66, 21);
+            this.todoToolStripMenuItem.Text = "Settings";
             this.todoToolStripMenuItem.Click += new System.EventHandler(this.todoToolStripMenuItem_Click);
             //
             // showAllToolStripMenuItem
diff --git a/PokemonGo.RocketBot.Window/Forms/SettingForm.Designer.cs b/PokemonGo.RocketBot.Window/Forms/SettingForm.Designer.cs
new file mode 100644
index 0000000..acfe29c
--- /dev/null
+++ b/PokemonGo.RocketBot.Window/Forms/SettingForm.Designer.cs
@@ -0,0 +1,2862 @@
+namespace PokemonGo.RocketBot.Window.Forms
+{
+    partial class SettingsForm
+    {
+        /// <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()
+        {
+            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SettingsForm));
+            this.enableAdvSettingCb = new System.Windows.Forms.CheckBox();
+            this.cancelBtn = new System.Windows.Forms.Button();
+            this.tabControl = new System.Windows.Forms.TabControl();
+            this.tabAuth = new System.Windows.Forms.TabPage();
+            this.tbWalkingSpeed = new System.Windows.Forms.TextBox();
+            this.TravelSpeedText = new System.Windows.Forms.Label();
+            this.cbLanguage = new System.Windows.Forms.ComboBox();
+            this.label26 = new System.Windows.Forms.Label();
+            this.proxyGb = new System.Windows.Forms.GroupBox();
+            this.proxyPortTb = new System.Windows.Forms.TextBox();
+            this.proxyUserTb = new System.Windows.Forms.TextBox();
+            this.proxyPwTb = new System.Windows.Forms.TextBox();
+            this.label24 = new System.Windows.Forms.Label();
+            this.label25 = new System.Windows.Forms.Label();
+            this.proxyHostTb = new System.Windows.Forms.TextBox();
+            this.useProxyAuthCb = new System.Windows.Forms.CheckBox();
+            this.label19 = new System.Windows.Forms.Label();
+            this.useProxyCb = new System.Windows.Forms.CheckBox();
+            this.label23 = new System.Windows.Forms.Label();
+            this.ResetLocationBtn = new System.Windows.Forms.Button();
+            this.trackBar = new System.Windows.Forms.TrackBar();
+            this.AdressBox = new System.Windows.Forms.TextBox();
+            this.FindAdressBtn = new System.Windows.Forms.Button();
+            this.gMapCtrl = new GMap.NET.WindowsForms.GMapControl();
+            this.UserLoginBox = new System.Windows.Forms.TextBox();
+            this.UserPasswordBox = new System.Windows.Forms.TextBox();
+            this.tbLatitude = new System.Windows.Forms.TextBox();
+            this.tbLongitude = new System.Windows.Forms.TextBox();
+            this.authTypeLabel = new System.Windows.Forms.Label();
+            this.longiLabel = new System.Windows.Forms.Label();
+            this.authTypeCb = new System.Windows.Forms.ComboBox();
+            this.latLabel = new System.Windows.Forms.Label();
+            this.UserLabel = new System.Windows.Forms.Label();
+            this.PasswordLabel = new System.Windows.Forms.Label();
+            this.tabDevice = new System.Windows.Forms.TabPage();
+            this.label22 = new System.Windows.Forms.Label();
+            this.label20 = new System.Windows.Forms.Label();
+            this.label21 = new System.Windows.Forms.Label();
+            this.RandomIDBtn = new System.Windows.Forms.Button();
+            this.deviceTypeCb = new System.Windows.Forms.ComboBox();
+            this.RandomDeviceBtn = new System.Windows.Forms.Button();
+            this.FirmwareFingerprintTb = new System.Windows.Forms.TextBox();
+            this.label14 = new System.Windows.Forms.Label();
+            this.FirmwareTypeTb = new System.Windows.Forms.TextBox();
+            this.label13 = new System.Windows.Forms.Label();
+            this.FirmwareTagsTb = new System.Windows.Forms.TextBox();
+            this.label12 = new System.Windows.Forms.Label();
+            this.FirmwareBrandTb = new System.Windows.Forms.TextBox();
+            this.label11 = new System.Windows.Forms.Label();
+            this.HardwareModelTb = new System.Windows.Forms.TextBox();
+            this.label10 = new System.Windows.Forms.Label();
+            this.HardwareManufacturerTb = new System.Windows.Forms.TextBox();
+            this.label9 = new System.Windows.Forms.Label();
+            this.DeviceModelBootTb = new System.Windows.Forms.TextBox();
+            this.label8 = new System.Windows.Forms.Label();
+            this.DeviceModelIdentifierTb = new System.Windows.Forms.TextBox();
+            this.label7 = new System.Windows.Forms.Label();
+            this.DeviceModelTb = new System.Windows.Forms.TextBox();
+            this.label15 = new System.Windows.Forms.Label();
+            this.DeviceBrandTb = new System.Windows.Forms.TextBox();
+            this.label16 = new System.Windows.Forms.Label();
+            this.AndroidBootloaderTb = new System.Windows.Forms.TextBox();
+            this.label17 = new System.Windows.Forms.Label();
+            this.AndroidBoardNameTb = new System.Windows.Forms.TextBox();
+            this.BoardName = new System.Windows.Forms.Label();
+            this.DeviceIdTb = new System.Windows.Forms.TextBox();
+            this.deviceIdlb = new System.Windows.Forms.Label();
+            this.label18 = new System.Windows.Forms.Label();
+            this.tabPokemon = new System.Windows.Forms.TabPage();
+            this.tcPokemonDetail = new System.Windows.Forms.TabControl();
+            this.tabCatch = new System.Windows.Forms.TabPage();
+            this.label47 = new System.Windows.Forms.Label();
+            this.cbAutoFavoritePokemon = new System.Windows.Forms.CheckBox();
+            this.tbFavoriteMinIvPercentage = new System.Windows.Forms.TextBox();
+            this.groupBox10 = new System.Windows.Forms.GroupBox();
+            this.cbUseBerriesOperator = new System.Windows.Forms.ComboBox();
+            this.label52 = new System.Windows.Forms.Label();
+            this.tbUseBerriesMinCp = new System.Windows.Forms.TextBox();
+            this.label54 = new System.Windows.Forms.Label();
+            this.tbUseBerriesMinIv = new System.Windows.Forms.TextBox();
+            this.label56 = new System.Windows.Forms.Label();
+            this.tbUseBerriesBelowCatchProbability = new System.Windows.Forms.TextBox();
+            this.tbMaxPokeballsPerPokemon = new System.Windows.Forms.TextBox();
+            this.label43 = new System.Windows.Forms.Label();
+            this.groupBox9 = new System.Windows.Forms.GroupBox();
+            this.label2 = new System.Windows.Forms.Label();
+            this.tbUseMasterBallBelowCatchProbability = new System.Windows.Forms.TextBox();
+            this.tbUseGreatBallAboveCp = new System.Windows.Forms.TextBox();
+            this.label42 = new System.Windows.Forms.Label();
+            this.label3 = new System.Windows.Forms.Label();
+            this.tbUseUltraBallBelowCatchProbability = new System.Windows.Forms.TextBox();
+            this.tbUseUltraBallAboveCp = new System.Windows.Forms.TextBox();
+            this.label41 = new System.Windows.Forms.Label();
+            this.label4 = new System.Windows.Forms.Label();
+            this.tbUseGreatBallBelowCatchProbability = new System.Windows.Forms.TextBox();
+            this.tbUseMasterBallAboveCp = new System.Windows.Forms.TextBox();
+            this.label40 = new System.Windows.Forms.Label();
+            this.label6 = new System.Windows.Forms.Label();
+            this.tbUseUltraBallAboveIv = new System.Windows.Forms.TextBox();
+            this.tbUseGreatBallAboveIv = new System.Windows.Forms.TextBox();
+            this.label36 = new System.Windows.Forms.Label();
+            this.groupBox2 = new System.Windows.Forms.GroupBox();
+            this.cbIgnoreAll = new System.Windows.Forms.CheckBox();
+            this.clbIgnore = new System.Windows.Forms.CheckedListBox();
+            this.tBMaxBerriesToUsePerPokemon = new System.Windows.Forms.TextBox();
+            this.label27 = new System.Windows.Forms.Label();
+            this.cbUseEggIncubators = new System.Windows.Forms.CheckBox();
+            this.cbCatchPoke = new System.Windows.Forms.CheckBox();
+            this.tabTransfer = new System.Windows.Forms.TabPage();
+            this.groupBox1 = new System.Windows.Forms.GroupBox();
+            this.cbNotTransferAll = new System.Windows.Forms.CheckBox();
+            this.clbTransfer = new System.Windows.Forms.CheckedListBox();
+            this.groupBox8 = new System.Windows.Forms.GroupBox();
+            this.cbUseKeepMinLvl = new System.Windows.Forms.CheckBox();
+            this.label37 = new System.Windows.Forms.Label();
+            this.tbKeepMinLvl = new System.Windows.Forms.TextBox();
+            this.groupBox7 = new System.Windows.Forms.GroupBox();
+            this.cbTransferDuplicatePokemonOnCapture = new System.Windows.Forms.CheckBox();
+            this.cbTransferDuplicatePokemon = new System.Windows.Forms.CheckBox();
+            this.cbTransferWeakPokemon = new System.Windows.Forms.CheckBox();
+            this.tbKeepMinDuplicatePokemon = new System.Windows.Forms.TextBox();
+            this.label35 = new System.Windows.Forms.Label();
+            this.cbPrioritizeIvOverCp = new System.Windows.Forms.CheckBox();
+            this.tbKeepMinIV = new System.Windows.Forms.TextBox();
+            this.cbKeepMinOperator = new System.Windows.Forms.ComboBox();
+            this.tbKeepMinCp = new System.Windows.Forms.TextBox();
+            this.label38 = new System.Windows.Forms.Label();
+            this.label39 = new System.Windows.Forms.Label();
+            this.tabPowerUp = new System.Windows.Forms.TabPage();
+            this.cbPowerUpFav = new System.Windows.Forms.CheckBox();
+            this.groupBox6 = new System.Windows.Forms.GroupBox();
+            this.tbPowerUpMinIV = new System.Windows.Forms.TextBox();
+            this.cbPowerUpCondiction = new System.Windows.Forms.ComboBox();
+            this.tbPowerUpMinCP = new System.Windows.Forms.TextBox();
+            this.label31 = new System.Windows.Forms.Label();
+            this.label30 = new System.Windows.Forms.Label();
+            this.cbPowerUpMinStarDust = new System.Windows.Forms.ComboBox();
+            this.label28 = new System.Windows.Forms.Label();
+            this.cbPowerUpType = new System.Windows.Forms.ComboBox();
+            this.label29 = new System.Windows.Forms.Label();
+            this.groupBox4 = new System.Windows.Forms.GroupBox();
+            this.cbPowerUpAll = new System.Windows.Forms.CheckBox();
+            this.clbPowerUp = new System.Windows.Forms.CheckedListBox();
+            this.cbAutoPowerUp = new System.Windows.Forms.CheckBox();
+            this.tabEvo = new System.Windows.Forms.TabPage();
+            this.label53 = new System.Windows.Forms.Label();
+            this.tbUseLuckyEggsMinPokemonAmount = new System.Windows.Forms.TextBox();
+            this.cbUseLuckyEggsWhileEvolving = new System.Windows.Forms.CheckBox();
+            this.groupBox5 = new System.Windows.Forms.GroupBox();
+            this.label34 = new System.Windows.Forms.Label();
+            this.tbEvoAboveIV = new System.Windows.Forms.TextBox();
+            this.cbEvoAllAboveIV = new System.Windows.Forms.CheckBox();
+            this.label32 = new System.Windows.Forms.Label();
+            this.cbEvolveAllPokemonWithEnoughCandy = new System.Windows.Forms.CheckBox();
+            this.label33 = new System.Windows.Forms.Label();
+            this.tbEvolveKeptPokemonsAtStorageUsagePercentage = new System.Windows.Forms.TextBox();
+            this.cbKeepPokemonsThatCanEvolve = new System.Windows.Forms.CheckBox();
+            this.groupBox3 = new System.Windows.Forms.GroupBox();
+            this.cbEvolveAll = new System.Windows.Forms.CheckBox();
+            this.clbEvolve = new System.Windows.Forms.CheckedListBox();
+            this.tabItems = new System.Windows.Forms.TabPage();
+            this.groupBox14 = new System.Windows.Forms.GroupBox();
+            this.cbVerboseRecycling = new System.Windows.Forms.CheckBox();
+            this.label1 = new System.Windows.Forms.Label();
+            this.tbRecycleInventoryAtUsagePercentage = new System.Windows.Forms.TextBox();
+            this.groupBox13 = new System.Windows.Forms.GroupBox();
+            this.label5 = new System.Windows.Forms.Label();
+            this.tbTotalAmountOfPokeballsToKeep = new System.Windows.Forms.TextBox();
+            this.label44 = new System.Windows.Forms.Label();
+            this.tbTotalAmountOfPotionsToKeep = new System.Windows.Forms.TextBox();
+            this.label45 = new System.Windows.Forms.Label();
+            this.tbTotalAmountOfRevivesToKeep = new System.Windows.Forms.TextBox();
+            this.label46 = new System.Windows.Forms.Label();
+            this.tbTotalAmountOfBerriesToKeep = new System.Windows.Forms.TextBox();
+            this.groupBox12 = new System.Windows.Forms.GroupBox();
+            this.cbUseIncenseConstantly = new System.Windows.Forms.CheckBox();
+            this.groupBox11 = new System.Windows.Forms.GroupBox();
+            this.cbUseLuckyEggConstantly = new System.Windows.Forms.CheckBox();
+            this.tabAdvSetting = new System.Windows.Forms.TabPage();
+            this.groupBox18 = new System.Windows.Forms.GroupBox();
+            this.cbEnableHumanizedThrows = new System.Windows.Forms.CheckBox();
+            this.tbForceExcellentThrowOverCp = new System.Windows.Forms.TextBox();
+            this.tbForceGreatThrowOverCp = new System.Windows.Forms.TextBox();
+            this.label66 = new System.Windows.Forms.Label();
+            this.label55 = new System.Windows.Forms.Label();
+            this.label60 = new System.Windows.Forms.Label();
+            this.tbForceExcellentThrowOverIv = new System.Windows.Forms.TextBox();
+            this.tbNiceThrowChance = new System.Windows.Forms.TextBox();
+            this.label61 = new System.Windows.Forms.Label();
+            this.label62 = new System.Windows.Forms.Label();
+            this.tbForceGreatThrowOverIv = new System.Windows.Forms.TextBox();
+            this.tbGreatThrowChance = new System.Windows.Forms.TextBox();
+            this.label63 = new System.Windows.Forms.Label();
+            this.label64 = new System.Windows.Forms.Label();
+            this.tbCurveThrowChance = new System.Windows.Forms.TextBox();
+            this.tbExcellentThrowChance = new System.Windows.Forms.TextBox();
+            this.label65 = new System.Windows.Forms.Label();
+            this.groupBox17 = new System.Windows.Forms.GroupBox();
+            this.cbRandomizeRecycle = new System.Windows.Forms.CheckBox();
+            this.label51 = new System.Windows.Forms.Label();
+            this.tbRandomRecycleValue = new System.Windows.Forms.TextBox();
+            this.groupBox16 = new System.Windows.Forms.GroupBox();
+            this.cbDisableHumanWalking = new System.Windows.Forms.CheckBox();
+            this.label57 = new System.Windows.Forms.Label();
+            this.tbWalkingSpeedOffSetInKilometerPerHour = new System.Windows.Forms.TextBox();
+            this.label58 = new System.Windows.Forms.Label();
+            this.tbMaxSpawnLocationOffset = new System.Windows.Forms.TextBox();
+            this.label59 = new System.Windows.Forms.Label();
+            this.tbMaxTravelDistanceInMeters = new System.Windows.Forms.TextBox();
+            this.groupBox15 = new System.Windows.Forms.GroupBox();
+            this.cbDelayBetweenRecycleActions = new System.Windows.Forms.CheckBox();
+            this.label49 = new System.Windows.Forms.Label();
+            this.tbDelayBetweenPlayerActions = new System.Windows.Forms.TextBox();
+            this.label50 = new System.Windows.Forms.Label();
+            this.tbDelayBetweenPokemonCatch = new System.Windows.Forms.TextBox();
+            this.saveBtn = new System.Windows.Forms.Button();
+            this.tabControl.SuspendLayout();
+            this.tabAuth.SuspendLayout();
+            this.proxyGb.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.trackBar)).BeginInit();
+            this.tabDevice.SuspendLayout();
+            this.tabPokemon.SuspendLayout();
+            this.tcPokemonDetail.SuspendLayout();
+            this.tabCatch.SuspendLayout();
+            this.groupBox10.SuspendLayout();
+            this.groupBox9.SuspendLayout();
+            this.groupBox2.SuspendLayout();
+            this.tabTransfer.SuspendLayout();
+            this.groupBox1.SuspendLayout();
+            this.groupBox8.SuspendLayout();
+            this.groupBox7.SuspendLayout();
+            this.tabPowerUp.SuspendLayout();
+            this.groupBox6.SuspendLayout();
+            this.groupBox4.SuspendLayout();
+            this.tabEvo.SuspendLayout();
+            this.groupBox5.SuspendLayout();
+            this.groupBox3.SuspendLayout();
+            this.tabItems.SuspendLayout();
+            this.groupBox14.SuspendLayout();
+            this.groupBox13.SuspendLayout();
+            this.groupBox12.SuspendLayout();
+            this.groupBox11.SuspendLayout();
+            this.tabAdvSetting.SuspendLayout();
+            this.groupBox18.SuspendLayout();
+            this.groupBox17.SuspendLayout();
+            this.groupBox16.SuspendLayout();
+            this.groupBox15.SuspendLayout();
+            this.SuspendLayout();
+            //
+            // enableAdvSettingCb
+            //
+            this.enableAdvSettingCb.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+            this.enableAdvSettingCb.AutoSize = true;
+            this.enableAdvSettingCb.Location = new System.Drawing.Point(752, 513);
+            this.enableAdvSettingCb.Name = "enableAdvSettingCb";
+            this.enableAdvSettingCb.Size = new System.Drawing.Size(162, 19);
+            this.enableAdvSettingCb.TabIndex = 32;
+            this.enableAdvSettingCb.Text = "Enable Advanced Settings";
+            this.enableAdvSettingCb.UseVisualStyleBackColor = true;
+            this.enableAdvSettingCb.Click += new System.EventHandler(this.enableAdvSettingCb_Click);
+            //
+            // cancelBtn
+            //
+            this.cancelBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+            this.cancelBtn.Location = new System.Drawing.Point(810, 540);
+            this.cancelBtn.Margin = new System.Windows.Forms.Padding(3, 5, 3, 5);
+            this.cancelBtn.Name = "cancelBtn";
+            this.cancelBtn.Size = new System.Drawing.Size(104, 32);
+            this.cancelBtn.TabIndex = 31;
+            this.cancelBtn.Text = "Cancel";
+            this.cancelBtn.UseVisualStyleBackColor = true;
+            this.cancelBtn.Click += new System.EventHandler(this.cancelBtn_Click);
+            //
+            // tabControl
+            //
+            this.tabControl.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.tabControl.Controls.Add(this.tabAuth);
+            this.tabControl.Controls.Add(this.tabDevice);
+            this.tabControl.Controls.Add(this.tabPokemon);
+            this.tabControl.Controls.Add(this.tabItems);
+            this.tabControl.Controls.Add(this.tabAdvSetting);
+            this.tabControl.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.tabControl.Location = new System.Drawing.Point(0, 0);
+            this.tabControl.Name = "tabControl";
+            this.tabControl.SelectedIndex = 0;
+            this.tabControl.Size = new System.Drawing.Size(928, 507);
+            this.tabControl.TabIndex = 30;
+            //
+            // tabAuth
+            //
+            this.tabAuth.BackColor = System.Drawing.SystemColors.Control;
+            this.tabAuth.Controls.Add(this.tbWalkingSpeed);
+            this.tabAuth.Controls.Add(this.TravelSpeedText);
+            this.tabAuth.Controls.Add(this.cbLanguage);
+            this.tabAuth.Controls.Add(this.label26);
+            this.tabAuth.Controls.Add(this.proxyGb);
+            this.tabAuth.Controls.Add(this.ResetLocationBtn);
+            this.tabAuth.Controls.Add(this.trackBar);
+            this.tabAuth.Controls.Add(this.AdressBox);
+            this.tabAuth.Controls.Add(this.FindAdressBtn);
+            this.tabAuth.Controls.Add(this.gMapCtrl);
+            this.tabAuth.Controls.Add(this.UserLoginBox);
+            this.tabAuth.Controls.Add(this.UserPasswordBox);
+            this.tabAuth.Controls.Add(this.tbLatitude);
+            this.tabAuth.Controls.Add(this.tbLongitude);
+            this.tabAuth.Controls.Add(this.authTypeLabel);
+            this.tabAuth.Controls.Add(this.longiLabel);
+            this.tabAuth.Controls.Add(this.authTypeCb);
+            this.tabAuth.Controls.Add(this.latLabel);
+            this.tabAuth.Controls.Add(this.UserLabel);
+            this.tabAuth.Controls.Add(this.PasswordLabel);
+            this.tabAuth.Location = new System.Drawing.Point(4, 24);
+            this.tabAuth.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
+            this.tabAuth.Name = "tabAuth";
+            this.tabAuth.Padding = new System.Windows.Forms.Padding(3, 4, 3, 4);
+            this.tabAuth.Size = new System.Drawing.Size(920, 479);
+            this.tabAuth.TabIndex = 0;
+            this.tabAuth.Text = "Auth";
+            //
+            // tbWalkingSpeed
+            //
+            this.tbWalkingSpeed.Location = new System.Drawing.Point(140, 208);
+            this.tbWalkingSpeed.Margin = new System.Windows.Forms.Padding(3, 5, 3, 5);
+            this.tbWalkingSpeed.Name = "tbWalkingSpeed";
+            this.tbWalkingSpeed.Size = new System.Drawing.Size(184, 23);
+            this.tbWalkingSpeed.TabIndex = 30;
+            //
+            // TravelSpeedText
+            //
+            this.TravelSpeedText.AutoSize = true;
+            this.TravelSpeedText.Location = new System.Drawing.Point(6, 211);
+            this.TravelSpeedText.Name = "TravelSpeedText";
+            this.TravelSpeedText.Size = new System.Drawing.Size(131, 15);
+            this.TravelSpeedText.TabIndex = 31;
+            this.TravelSpeedText.Text = "Walking Speed (KM/H):";
+            //
+            // cbLanguage
+            //
+            this.cbLanguage.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+            this.cbLanguage.FormattingEnabled = true;
+            this.cbLanguage.Items.AddRange(new object[] {
+            "Google",
+            "PTC"});
+            this.cbLanguage.Location = new System.Drawing.Point(140, 10);
+            this.cbLanguage.Margin = new System.Windows.Forms.Padding(3, 5, 3, 5);
+            this.cbLanguage.Name = "cbLanguage";
+            this.cbLanguage.Size = new System.Drawing.Size(184, 23);
+            this.cbLanguage.TabIndex = 29;
+            //
+            // label26
+            //
+            this.label26.AutoSize = true;
+            this.label26.Location = new System.Drawing.Point(6, 12);
+            this.label26.Name = "label26";
+            this.label26.Size = new System.Drawing.Size(62, 15);
+            this.label26.TabIndex = 28;
+            this.label26.Text = "Language:";
+            //
+            // proxyGb
+            //
+            this.proxyGb.Controls.Add(this.proxyPortTb);
+            this.proxyGb.Controls.Add(this.proxyUserTb);
+            this.proxyGb.Controls.Add(this.proxyPwTb);
+            this.proxyGb.Controls.Add(this.label24);
+            this.proxyGb.Controls.Add(this.label25);
+            this.proxyGb.Controls.Add(this.proxyHostTb);
+            this.proxyGb.Controls.Add(this.useProxyAuthCb);
+            this.proxyGb.Controls.Add(this.label19);
+            this.proxyGb.Controls.Add(this.useProxyCb);
+            this.proxyGb.Controls.Add(this.label23);
+            this.proxyGb.Location = new System.Drawing.Point(9, 240);
+            this.proxyGb.Name = "proxyGb";
+            this.proxyGb.Size = new System.Drawing.Size(315, 195);
+            this.proxyGb.TabIndex = 27;
+            this.proxyGb.TabStop = false;
+            this.proxyGb.Text = "Proxy Setting";
+            this.proxyGb.Visible = false;
+            //
+            // proxyPortTb
+            //
+            this.proxyPortTb.Location = new System.Drawing.Point(131, 76);
+            this.proxyPortTb.Margin = new System.Windows.Forms.Padding(3, 5, 3, 5);
+            this.proxyPortTb.Name = "proxyPortTb";
+            this.proxyPortTb.Size = new System.Drawing.Size(172, 23);
+            this.proxyPortTb.TabIndex = 36;
+            //
+            // proxyUserTb
+            //
+            this.proxyUserTb.Location = new System.Drawing.Point(131, 132);
+            this.proxyUserTb.Margin = new System.Windows.Forms.Padding(3, 5, 3, 5);
+            this.proxyUserTb.Name = "proxyUserTb";
+            this.proxyUserTb.Size = new System.Drawing.Size(172, 23);
+            this.proxyUserTb.TabIndex = 34;
+            //
+            // proxyPwTb
+            //
+            this.proxyPwTb.Location = new System.Drawing.Point(131, 163);
+            this.proxyPwTb.Margin = new System.Windows.Forms.Padding(3, 5, 3, 5);
+            this.proxyPwTb.Name = "proxyPwTb";
+            this.proxyPwTb.PasswordChar = '*';
+            this.proxyPwTb.Size = new System.Drawing.Size(172, 23);
+            this.proxyPwTb.TabIndex = 35;
+            //
+            // label24
+            //
+            this.label24.AutoSize = true;
+            this.label24.Location = new System.Drawing.Point(6, 135);
+            this.label24.Name = "label24";
+            this.label24.Size = new System.Drawing.Size(63, 15);
+            this.label24.TabIndex = 32;
+            this.label24.Text = "Username:";
+            //
+            // label25
+            //
+            this.label25.AutoSize = true;
+            this.label25.Location = new System.Drawing.Point(6, 166);
+            this.label25.Name = "label25";
+            this.label25.Size = new System.Drawing.Size(60, 15);
+            this.label25.TabIndex = 33;
+            this.label25.Text = "Password:";
+            //
+            // proxyHostTb
+            //
+            this.proxyHostTb.Location = new System.Drawing.Point(131, 45);
+            this.proxyHostTb.Margin = new System.Windows.Forms.Padding(3, 5, 3, 5);
+            this.proxyHostTb.Name = "proxyHostTb";
+            this.proxyHostTb.Size = new System.Drawing.Size(172, 23);
+            this.proxyHostTb.TabIndex = 30;
+            //
+            // useProxyAuthCb
+            //
+            this.useProxyAuthCb.AutoSize = true;
+            this.useProxyAuthCb.Location = new System.Drawing.Point(6, 105);
+            this.useProxyAuthCb.Name = "useProxyAuthCb";
+            this.useProxyAuthCb.Size = new System.Drawing.Size(159, 19);
+            this.useProxyAuthCb.TabIndex = 29;
+            this.useProxyAuthCb.Text = "Use Proxy Authentication";
+            this.useProxyAuthCb.UseVisualStyleBackColor = true;
+            this.useProxyAuthCb.CheckedChanged += new System.EventHandler(this.useProxyAuthCb_CheckedChanged);
+            //
+            // label19
+            //
+            this.label19.AutoSize = true;
+            this.label19.Location = new System.Drawing.Point(6, 48);
+            this.label19.Name = "label19";
+            this.label19.Size = new System.Drawing.Size(35, 15);
+            this.label19.TabIndex = 28;
+            this.label19.Text = "Host:";
+            //
+            // useProxyCb
+            //
+            this.useProxyCb.AutoSize = true;
+            this.useProxyCb.Location = new System.Drawing.Point(6, 22);
+            this.useProxyCb.Name = "useProxyCb";
+            this.useProxyCb.Size = new System.Drawing.Size(77, 19);
+            this.useProxyCb.TabIndex = 30;
+            this.useProxyCb.Text = "Use Proxy\r\n";
+            this.useProxyCb.UseVisualStyleBackColor = true;
+            this.useProxyCb.CheckedChanged += new System.EventHandler(this.useProxyCb_CheckedChanged);
+            //
+            // label23
+            //
+            this.label23.AutoSize = true;
+            this.label23.Location = new System.Drawing.Point(6, 79);
+            this.label23.Name = "label23";
+            this.label23.Size = new System.Drawing.Size(32, 15);
+            this.label23.TabIndex = 29;
+            this.label23.Text = "Port:";
+            //
+            // ResetLocationBtn
+            //
+            this.ResetLocationBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+            this.ResetLocationBtn.Location = new System.Drawing.Point(802, 445);
+            this.ResetLocationBtn.Margin = new System.Windows.Forms.Padding(3, 5, 3, 5);
+            this.ResetLocationBtn.Name = "ResetLocationBtn";
+            this.ResetLocationBtn.Size = new System.Drawing.Size(110, 25);
+            this.ResetLocationBtn.TabIndex = 26;
+            this.ResetLocationBtn.Text = "Reset Location";
+            this.ResetLocationBtn.UseVisualStyleBackColor = true;
+            this.ResetLocationBtn.Click += new System.EventHandler(this.ResetLocationBtn_Click);
+            //
+            // 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(867, 5);
+            this.trackBar.Margin = new System.Windows.Forms.Padding(3, 5, 3, 5);
+            this.trackBar.Maximum = 18;
+            this.trackBar.Minimum = 2;
+            this.trackBar.Name = "trackBar";
+            this.trackBar.Orientation = System.Windows.Forms.Orientation.Vertical;
+            this.trackBar.Size = new System.Drawing.Size(45, 150);
+            this.trackBar.TabIndex = 25;
+            this.trackBar.TickStyle = System.Windows.Forms.TickStyle.TopLeft;
+            this.trackBar.Value = 2;
+            this.trackBar.Scroll += new System.EventHandler(this.trackBar_Scroll);
+            //
+            // AdressBox
+            //
+            this.AdressBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
+            | System.Windows.Forms.AnchorStyles.Right)));
+            this.AdressBox.Font = new System.Drawing.Font("Segoe UI", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.AdressBox.ForeColor = System.Drawing.Color.Gray;
+            this.AdressBox.Location = new System.Drawing.Point(330, 445);
+            this.AdressBox.Margin = new System.Windows.Forms.Padding(3, 5, 3, 5);
+            this.AdressBox.Name = "AdressBox";
+            this.AdressBox.Size = new System.Drawing.Size(350, 25);
+            this.AdressBox.TabIndex = 25;
+            this.AdressBox.Text = "Enter an address or a coordinate";
+            this.AdressBox.Enter += new System.EventHandler(this.AdressBox_Enter);
+            this.AdressBox.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.AdressBox_KeyPress);
+            this.AdressBox.Leave += new System.EventHandler(this.AdressBox_Leave);
+            //
+            // FindAdressBtn
+            //
+            this.FindAdressBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+            this.FindAdressBtn.Location = new System.Drawing.Point(686, 445);
+            this.FindAdressBtn.Margin = new System.Windows.Forms.Padding(3, 5, 3, 5);
+            this.FindAdressBtn.Name = "FindAdressBtn";
+            this.FindAdressBtn.Size = new System.Drawing.Size(110, 25);
+            this.FindAdressBtn.TabIndex = 25;
+            this.FindAdressBtn.Text = "Find Location";
+            this.FindAdressBtn.UseVisualStyleBackColor = true;
+            this.FindAdressBtn.Click += new System.EventHandler(this.FindAdressBtn_Click);
+            //
+            // gMapCtrl
+            //
+            this.gMapCtrl.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.gMapCtrl.BackColor = System.Drawing.SystemColors.Info;
+            this.gMapCtrl.Bearing = 0F;
+            this.gMapCtrl.CanDragMap = true;
+            this.gMapCtrl.EmptyTileColor = System.Drawing.Color.Navy;
+            this.gMapCtrl.GrayScaleMode = false;
+            this.gMapCtrl.HelperLineOption = GMap.NET.WindowsForms.HelperLineOptions.DontShow;
+            this.gMapCtrl.LevelsKeepInMemmory = 5;
+            this.gMapCtrl.Location = new System.Drawing.Point(330, 5);
+            this.gMapCtrl.Margin = new System.Windows.Forms.Padding(3, 5, 3, 5);
+            this.gMapCtrl.MarkersEnabled = true;
+            this.gMapCtrl.MaxZoom = 18;
+            this.gMapCtrl.MinZoom = 0;
+            this.gMapCtrl.MouseWheelZoomType = GMap.NET.MouseWheelZoomType.MousePositionWithoutCenter;
+            this.gMapCtrl.Name = "gMapCtrl";
+            this.gMapCtrl.NegativeMode = false;
+            this.gMapCtrl.PolygonsEnabled = true;
+            this.gMapCtrl.RetryLoadTile = 0;
+            this.gMapCtrl.RoutesEnabled = true;
+            this.gMapCtrl.ScaleMode = GMap.NET.WindowsForms.ScaleModes.Integer;
+            this.gMapCtrl.SelectedAreaFillColor = System.Drawing.Color.FromArgb(((int)(((byte)(33)))), ((int)(((byte)(65)))), ((int)(((byte)(105)))), ((int)(((byte)(225)))));
+            this.gMapCtrl.ShowTileGridLines = false;
+            this.gMapCtrl.Size = new System.Drawing.Size(582, 430);
+            this.gMapCtrl.TabIndex = 22;
+            this.gMapCtrl.Zoom = 0D;
+            this.gMapCtrl.OnMapZoomChanged += new GMap.NET.MapZoomChanged(this.gMapCtrl_OnMapZoomChanged);
+            this.gMapCtrl.MouseClick += new System.Windows.Forms.MouseEventHandler(this.gMapCtrl_MouseClick);
+            this.gMapCtrl.MouseUp += new System.Windows.Forms.MouseEventHandler(this.gMapCtrl_MouseUp);
+            //
+            // UserLoginBox
+            //
+            this.UserLoginBox.Location = new System.Drawing.Point(140, 76);
+            this.UserLoginBox.Margin = new System.Windows.Forms.Padding(3, 5, 3, 5);
+            this.UserLoginBox.Name = "UserLoginBox";
+            this.UserLoginBox.Size = new System.Drawing.Size(184, 23);
+            this.UserLoginBox.TabIndex = 11;
+            //
+            // UserPasswordBox
+            //
+            this.UserPasswordBox.Location = new System.Drawing.Point(140, 109);
+            this.UserPasswordBox.Margin = new System.Windows.Forms.Padding(3, 5, 3, 5);
+            this.UserPasswordBox.Name = "UserPasswordBox";
+            this.UserPasswordBox.PasswordChar = '*';
+            this.UserPasswordBox.Size = new System.Drawing.Size(184, 23);
+            this.UserPasswordBox.TabIndex = 12;
+            //
+            // tbLatitude
+            //
+            this.tbLatitude.Location = new System.Drawing.Point(140, 142);
+            this.tbLatitude.Margin = new System.Windows.Forms.Padding(3, 5, 3, 5);
+            this.tbLatitude.Name = "tbLatitude";
+            this.tbLatitude.Size = new System.Drawing.Size(184, 23);
+            this.tbLatitude.TabIndex = 13;
+            this.tbLatitude.Leave += new System.EventHandler(this.latitudeText_Leave);
+            //
+            // tbLongitude
+            //
+            this.tbLongitude.Location = new System.Drawing.Point(140, 175);
+            this.tbLongitude.Margin = new System.Windows.Forms.Padding(3, 5, 3, 5);
+            this.tbLongitude.Name = "tbLongitude";
+            this.tbLongitude.Size = new System.Drawing.Size(184, 23);
+            this.tbLongitude.TabIndex = 14;
+            this.tbLongitude.Leave += new System.EventHandler(this.longitudeText_Leave);
+            //
+            // authTypeLabel
+            //
+            this.authTypeLabel.AutoSize = true;
+            this.authTypeLabel.Location = new System.Drawing.Point(6, 45);
+            this.authTypeLabel.Name = "authTypeLabel";
+            this.authTypeLabel.Size = new System.Drawing.Size(68, 15);
+            this.authTypeLabel.TabIndex = 0;
+            this.authTypeLabel.Text = "Login Type:";
+            //
+            // longiLabel
+            //
+            this.longiLabel.AutoSize = true;
+            this.longiLabel.Location = new System.Drawing.Point(6, 177);
+            this.longiLabel.Name = "longiLabel";
+            this.longiLabel.Size = new System.Drawing.Size(64, 15);
+            this.longiLabel.TabIndex = 5;
+            this.longiLabel.Text = "Longitude:";
+            //
+            // authTypeCb
+            //
+            this.authTypeCb.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+            this.authTypeCb.FormattingEnabled = true;
+            this.authTypeCb.Items.AddRange(new object[] {
+            "Google",
+            "PTC"});
+            this.authTypeCb.Location = new System.Drawing.Point(140, 43);
+            this.authTypeCb.Margin = new System.Windows.Forms.Padding(3, 5, 3, 5);
+            this.authTypeCb.Name = "authTypeCb";
+            this.authTypeCb.Size = new System.Drawing.Size(184, 23);
+            this.authTypeCb.TabIndex = 1;
+            //
+            // latLabel
+            //
+            this.latLabel.AutoSize = true;
+            this.latLabel.Location = new System.Drawing.Point(6, 144);
+            this.latLabel.Name = "latLabel";
+            this.latLabel.Size = new System.Drawing.Size(53, 15);
+            this.latLabel.TabIndex = 4;
+            this.latLabel.Text = "Latitude:";
+            //
+            // UserLabel
+            //
+            this.UserLabel.AutoSize = true;
+            this.UserLabel.Location = new System.Drawing.Point(6, 78);
+            this.UserLabel.Name = "UserLabel";
+            this.UserLabel.Size = new System.Drawing.Size(63, 15);
+            this.UserLabel.TabIndex = 2;
+            this.UserLabel.Text = "Username:";
+            //
+            // PasswordLabel
+            //
+            this.PasswordLabel.AutoSize = true;
+            this.PasswordLabel.Location = new System.Drawing.Point(6, 111);
+            this.PasswordLabel.Name = "PasswordLabel";
+            this.PasswordLabel.Size = new System.Drawing.Size(60, 15);
+            this.PasswordLabel.TabIndex = 3;
+            this.PasswordLabel.Text = "Password:";
+            //
+            // tabDevice
+            //
+            this.tabDevice.Controls.Add(this.label22);
+            this.tabDevice.Controls.Add(this.label20);
+            this.tabDevice.Controls.Add(this.label21);
+            this.tabDevice.Controls.Add(this.RandomIDBtn);
+            this.tabDevice.Controls.Add(this.deviceTypeCb);
+            this.tabDevice.Controls.Add(this.RandomDeviceBtn);
+            this.tabDevice.Controls.Add(this.FirmwareFingerprintTb);
+            this.tabDevice.Controls.Add(this.label14);
+            this.tabDevice.Controls.Add(this.FirmwareTypeTb);
+            this.tabDevice.Controls.Add(this.label13);
+            this.tabDevice.Controls.Add(this.FirmwareTagsTb);
+            this.tabDevice.Controls.Add(this.label12);
+            this.tabDevice.Controls.Add(this.FirmwareBrandTb);
+            this.tabDevice.Controls.Add(this.label11);
+            this.tabDevice.Controls.Add(this.HardwareModelTb);
+            this.tabDevice.Controls.Add(this.label10);
+            this.tabDevice.Controls.Add(this.HardwareManufacturerTb);
+            this.tabDevice.Controls.Add(this.label9);
+            this.tabDevice.Controls.Add(this.DeviceModelBootTb);
+            this.tabDevice.Controls.Add(this.label8);
+            this.tabDevice.Controls.Add(this.DeviceModelIdentifierTb);
+            this.tabDevice.Controls.Add(this.label7);
+            this.tabDevice.Controls.Add(this.DeviceModelTb);
+            this.tabDevice.Controls.Add(this.label15);
+            this.tabDevice.Controls.Add(this.DeviceBrandTb);
+            this.tabDevice.Controls.Add(this.label16);
+            this.tabDevice.Controls.Add(this.AndroidBootloaderTb);
+            this.tabDevice.Controls.Add(this.label17);
+            this.tabDevice.Controls.Add(this.AndroidBoardNameTb);
+            this.tabDevice.Controls.Add(this.BoardName);
+            this.tabDevice.Controls.Add(this.DeviceIdTb);
+            this.tabDevice.Controls.Add(this.deviceIdlb);
+            this.tabDevice.Controls.Add(this.label18);
+            this.tabDevice.Location = new System.Drawing.Point(4, 24);
+            this.tabDevice.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
+            this.tabDevice.Name = "tabDevice";
+            this.tabDevice.Size = new System.Drawing.Size(920, 479);
+            this.tabDevice.TabIndex = 0;
+            this.tabDevice.Text = "Device";
+            //
+            // label22
+            //
+            this.label22.AutoSize = true;
+            this.label22.Font = new System.Drawing.Font("Segoe UI", 9F);
+            this.label22.Location = new System.Drawing.Point(672, 12);
+            this.label22.Name = "label22";
+            this.label22.Size = new System.Drawing.Size(227, 60);
+            this.label22.TabIndex = 69;
+            this.label22.Text = "This setting change what the server\r\nthink you are using to play Pokémon GO. \r\nIt" +
+    "s a good idea to change your device to \r\nwhat phone you are using to prevent ban" +
+    ".";
+            //
+            // label20
+            //
+            this.label20.AutoSize = true;
+            this.label20.Font = new System.Drawing.Font("Segoe UI", 11F);
+            this.label20.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))));
+            this.label20.Location = new System.Drawing.Point(475, 3);
+            this.label20.Name = "label20";
+            this.label20.Size = new System.Drawing.Size(78, 20);
+            this.label20.TabIndex = 67;
+            this.label20.Text = "Important:";
+            //
+            // label21
+            //
+            this.label21.AutoSize = true;
+            this.label21.Font = new System.Drawing.Font("Segoe UI", 9F);
+            this.label21.Location = new System.Drawing.Point(475, 27);
+            this.label21.Name = "label21";
+            this.label21.Size = new System.Drawing.Size(158, 45);
+            this.label21.TabIndex = 66;
+            this.label21.Text = "For your account safety.\r\nPlease do not change your \r\ndevice infomation too often" +
+    ".\r\n";
+            //
+            // RandomIDBtn
+            //
+            this.RandomIDBtn.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.RandomIDBtn.Location = new System.Drawing.Point(334, 48);
+            this.RandomIDBtn.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
+            this.RandomIDBtn.Name = "RandomIDBtn";
+            this.RandomIDBtn.Size = new System.Drawing.Size(101, 23);
+            this.RandomIDBtn.TabIndex = 65;
+            this.RandomIDBtn.Text = "Get New ID";
+            this.RandomIDBtn.UseVisualStyleBackColor = true;
+            this.RandomIDBtn.Click += new System.EventHandler(this.RandomIDBtn_Click);
+            //
+            // deviceTypeCb
+            //
+            this.deviceTypeCb.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+            this.deviceTypeCb.Font = new System.Drawing.Font("Segoe UI", 9F);
+            this.deviceTypeCb.FormattingEnabled = true;
+            this.deviceTypeCb.Items.AddRange(new object[] {
+            "Apple",
+            "Android"});
+            this.deviceTypeCb.Location = new System.Drawing.Point(154, 12);
+            this.deviceTypeCb.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
+            this.deviceTypeCb.Name = "deviceTypeCb";
+            this.deviceTypeCb.Size = new System.Drawing.Size(174, 23);
+            this.deviceTypeCb.TabIndex = 37;
+            this.deviceTypeCb.SelectionChangeCommitted += new System.EventHandler(this.deviceTypeCb_SelectionChangeCommitted);
+            //
+            // RandomDeviceBtn
+            //
+            this.RandomDeviceBtn.Font = new System.Drawing.Font("Segoe UI", 9F);
+            this.RandomDeviceBtn.Location = new System.Drawing.Point(710, 300);
+            this.RandomDeviceBtn.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
+            this.RandomDeviceBtn.Name = "RandomDeviceBtn";
+            this.RandomDeviceBtn.Size = new System.Drawing.Size(189, 95);
+            this.RandomDeviceBtn.TabIndex = 64;
+            this.RandomDeviceBtn.Text = "I am feeling RICH\r\n(Randomize)";
+            this.RandomDeviceBtn.UseVisualStyleBackColor = true;
+            this.RandomDeviceBtn.Click += new System.EventHandler(this.RandomDeviceBtn_Click);
+            //
+            // FirmwareFingerprintTb
+            //
+            this.FirmwareFingerprintTb.Font = new System.Drawing.Font("Segoe UI", 9F);
+            this.FirmwareFingerprintTb.Location = new System.Drawing.Point(616, 264);
+            this.FirmwareFingerprintTb.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
+            this.FirmwareFingerprintTb.Name = "FirmwareFingerprintTb";
+            this.FirmwareFingerprintTb.Size = new System.Drawing.Size(283, 23);
+            this.FirmwareFingerprintTb.TabIndex = 62;
+            //
+            // label14
+            //
+            this.label14.AutoSize = true;
+            this.label14.Font = new System.Drawing.Font("Segoe UI", 9F);
+            this.label14.Location = new System.Drawing.Point(475, 267);
+            this.label14.Name = "label14";
+            this.label14.Size = new System.Drawing.Size(117, 15);
+            this.label14.TabIndex = 49;
+            this.label14.Text = "Firmware Fingerprint";
+            //
+            // FirmwareTypeTb
+            //
+            this.FirmwareTypeTb.Font = new System.Drawing.Font("Segoe UI", 9F);
+            this.FirmwareTypeTb.Location = new System.Drawing.Point(616, 228);
+            this.FirmwareTypeTb.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
+            this.FirmwareTypeTb.Name = "FirmwareTypeTb";
+            this.FirmwareTypeTb.Size = new System.Drawing.Size(283, 23);
+            this.FirmwareTypeTb.TabIndex = 58;
+            //
+            // label13
+            //
+            this.label13.AutoSize = true;
+            this.label13.Font = new System.Drawing.Font("Segoe UI", 9F);
+            this.label13.Location = new System.Drawing.Point(475, 231);
+            this.label13.Name = "label13";
+            this.label13.Size = new System.Drawing.Size(84, 15);
+            this.label13.TabIndex = 51;
+            this.label13.Text = "Firmware Type";
+            //
+            // FirmwareTagsTb
+            //
+            this.FirmwareTagsTb.Font = new System.Drawing.Font("Segoe UI", 9F);
+            this.FirmwareTagsTb.Location = new System.Drawing.Point(616, 192);
+            this.FirmwareTagsTb.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
+            this.FirmwareTagsTb.Name = "FirmwareTagsTb";
+            this.FirmwareTagsTb.Size = new System.Drawing.Size(283, 23);
+            this.FirmwareTagsTb.TabIndex = 54;
+            //
+            // label12
+            //
+            this.label12.AutoSize = true;
+            this.label12.Font = new System.Drawing.Font("Segoe UI", 9F);
+            this.label12.Location = new System.Drawing.Point(475, 195);
+            this.label12.Name = "label12";
+            this.label12.Size = new System.Drawing.Size(83, 15);
+            this.label12.TabIndex = 50;
+            this.label12.Text = "Firmware Tags";
+            //
+            // FirmwareBrandTb
+            //
+            this.FirmwareBrandTb.Font = new System.Drawing.Font("Segoe UI", 9F);
+            this.FirmwareBrandTb.Location = new System.Drawing.Point(616, 156);
+            this.FirmwareBrandTb.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
+            this.FirmwareBrandTb.Name = "FirmwareBrandTb";
+            this.FirmwareBrandTb.Size = new System.Drawing.Size(283, 23);
+            this.FirmwareBrandTb.TabIndex = 52;
+            //
+            // label11
+            //
+            this.label11.AutoSize = true;
+            this.label11.Font = new System.Drawing.Font("Segoe UI", 9F);
+            this.label11.Location = new System.Drawing.Point(475, 159);
+            this.label11.Name = "label11";
+            this.label11.Size = new System.Drawing.Size(90, 15);
+            this.label11.TabIndex = 48;
+            this.label11.Text = "Firmware Brand";
+            //
+            // HardwareModelTb
+            //
+            this.HardwareModelTb.Font = new System.Drawing.Font("Segoe UI", 9F);
+            this.HardwareModelTb.Location = new System.Drawing.Point(616, 120);
+            this.HardwareModelTb.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
+            this.HardwareModelTb.Name = "HardwareModelTb";
+            this.HardwareModelTb.Size = new System.Drawing.Size(283, 23);
+            this.HardwareModelTb.TabIndex = 56;
+            //
+            // label10
+            //
+            this.label10.AutoSize = true;
+            this.label10.Font = new System.Drawing.Font("Segoe UI", 9F);
+            this.label10.Location = new System.Drawing.Point(475, 123);
+            this.label10.Name = "label10";
+            this.label10.Size = new System.Drawing.Size(95, 15);
+            this.label10.TabIndex = 46;
+            this.label10.Text = "Hardware Model";
+            //
+            // HardwareManufacturerTb
+            //
+            this.HardwareManufacturerTb.Font = new System.Drawing.Font("Segoe UI", 9F);
+            this.HardwareManufacturerTb.Location = new System.Drawing.Point(616, 84);
+            this.HardwareManufacturerTb.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
+            this.HardwareManufacturerTb.Name = "HardwareManufacturerTb";
+            this.HardwareManufacturerTb.Size = new System.Drawing.Size(283, 23);
+            this.HardwareManufacturerTb.TabIndex = 60;
+            //
+            // label9
+            //
+            this.label9.AutoSize = true;
+            this.label9.Font = new System.Drawing.Font("Segoe UI", 9F);
+            this.label9.Location = new System.Drawing.Point(475, 87);
+            this.label9.Name = "label9";
+            this.label9.Size = new System.Drawing.Size(136, 15);
+            this.label9.TabIndex = 47;
+            this.label9.Text = "Hardware Manu facturer";
+            //
+            // DeviceModelBootTb
+            //
+            this.DeviceModelBootTb.Font = new System.Drawing.Font("Segoe UI", 9F);
+            this.DeviceModelBootTb.Location = new System.Drawing.Point(154, 264);
+            this.DeviceModelBootTb.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
+            this.DeviceModelBootTb.Name = "DeviceModelBootTb";
+            this.DeviceModelBootTb.Size = new System.Drawing.Size(283, 23);
+            this.DeviceModelBootTb.TabIndex = 63;
+            //
+            // label8
+            //
+            this.label8.AutoSize = true;
+            this.label8.Font = new System.Drawing.Font("Segoe UI", 9F);
+            this.label8.Location = new System.Drawing.Point(13, 267);
+            this.label8.Name = "label8";
+            this.label8.Size = new System.Drawing.Size(107, 15);
+            this.label8.TabIndex = 44;
+            this.label8.Text = "Device Model Boot";
+            //
+            // DeviceModelIdentifierTb
+            //
+            this.DeviceModelIdentifierTb.Font = new System.Drawing.Font("Segoe UI", 9F);
+            this.DeviceModelIdentifierTb.Location = new System.Drawing.Point(154, 228);
+            this.DeviceModelIdentifierTb.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
+            this.DeviceModelIdentifierTb.Name = "DeviceModelIdentifierTb";
+            this.DeviceModelIdentifierTb.Size = new System.Drawing.Size(283, 23);
+            this.DeviceModelIdentifierTb.TabIndex = 53;
+            //
+            // label7
+            //
+            this.label7.AutoSize = true;
+            this.label7.Font = new System.Drawing.Font("Segoe UI", 9F);
+            this.label7.Location = new System.Drawing.Point(13, 231);
+            this.label7.Name = "label7";
+            this.label7.Size = new System.Drawing.Size(129, 15);
+            this.label7.TabIndex = 43;
+            this.label7.Text = "Device Model Identifier";
+            //
+            // DeviceModelTb
+            //
+            this.DeviceModelTb.Font = new System.Drawing.Font("Segoe UI", 9F);
+            this.DeviceModelTb.Location = new System.Drawing.Point(154, 192);
+            this.DeviceModelTb.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
+            this.DeviceModelTb.Name = "DeviceModelTb";
+            this.DeviceModelTb.Size = new System.Drawing.Size(283, 23);
+            this.DeviceModelTb.TabIndex = 55;
+            //
+            // label15
+            //
+            this.label15.AutoSize = true;
+            this.label15.Font = new System.Drawing.Font("Segoe UI", 9F);
+            this.label15.Location = new System.Drawing.Point(13, 195);
+            this.label15.Name = "label15";
+            this.label15.Size = new System.Drawing.Size(79, 15);
+            this.label15.TabIndex = 42;
+            this.label15.Text = "Device Model";
+            //
+            // DeviceBrandTb
+            //
+            this.DeviceBrandTb.Font = new System.Drawing.Font("Segoe UI", 9F);
+            this.DeviceBrandTb.Location = new System.Drawing.Point(154, 156);
+            this.DeviceBrandTb.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
+            this.DeviceBrandTb.Name = "DeviceBrandTb";
+            this.DeviceBrandTb.Size = new System.Drawing.Size(283, 23);
+            this.DeviceBrandTb.TabIndex = 57;
+            //
+            // label16
+            //
+            this.label16.AutoSize = true;
+            this.label16.Font = new System.Drawing.Font("Segoe UI", 9F);
+            this.label16.Location = new System.Drawing.Point(13, 159);
+            this.label16.Name = "label16";
+            this.label16.Size = new System.Drawing.Size(76, 15);
+            this.label16.TabIndex = 41;
+            this.label16.Text = "Device Brand";
+            //
+            // AndroidBootloaderTb
+            //
+            this.AndroidBootloaderTb.Font = new System.Drawing.Font("Segoe UI", 9F);
+            this.AndroidBootloaderTb.Location = new System.Drawing.Point(154, 120);
+            this.AndroidBootloaderTb.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
+            this.AndroidBootloaderTb.Name = "AndroidBootloaderTb";
+            this.AndroidBootloaderTb.Size = new System.Drawing.Size(283, 23);
+            this.AndroidBootloaderTb.TabIndex = 59;
+            //
+            // label17
+            //
+            this.label17.AutoSize = true;
+            this.label17.Font = new System.Drawing.Font("Segoe UI", 9F);
+            this.label17.Location = new System.Drawing.Point(13, 123);
+            this.label17.Name = "label17";
+            this.label17.Size = new System.Drawing.Size(114, 15);
+            this.label17.TabIndex = 40;
+            this.label17.Text = "Android Boot loader";
+            //
+            // AndroidBoardNameTb
+            //
+            this.AndroidBoardNameTb.Font = new System.Drawing.Font("Segoe UI", 9F);
+            this.AndroidBoardNameTb.Location = new System.Drawing.Point(154, 84);
+            this.AndroidBoardNameTb.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
+            this.AndroidBoardNameTb.Name = "AndroidBoardNameTb";
+            this.AndroidBoardNameTb.Size = new System.Drawing.Size(283, 23);
+            this.AndroidBoardNameTb.TabIndex = 61;
+            //
+            // BoardName
+            //
+            this.BoardName.AutoSize = true;
+            this.BoardName.Font = new System.Drawing.Font("Segoe UI", 9F);
+            this.BoardName.Location = new System.Drawing.Point(13, 87);
+            this.BoardName.Name = "BoardName";
+            this.BoardName.Size = new System.Drawing.Size(119, 15);
+            this.BoardName.TabIndex = 39;
+            this.BoardName.Text = "Android Board Name";
+            //
+            // DeviceIdTb
+            //
+            this.DeviceIdTb.Font = new System.Drawing.Font("Segoe UI", 9F);
+            this.DeviceIdTb.Location = new System.Drawing.Point(154, 48);
+            this.DeviceIdTb.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
+            this.DeviceIdTb.Name = "DeviceIdTb";
+            this.DeviceIdTb.Size = new System.Drawing.Size(174, 23);
+            this.DeviceIdTb.TabIndex = 38;
+            //
+            // deviceIdlb
+            //
+            this.deviceIdlb.AutoSize = true;
+            this.deviceIdlb.Font = new System.Drawing.Font("Segoe UI", 9F);
+            this.deviceIdlb.Location = new System.Drawing.Point(13, 51);
+            this.deviceIdlb.Name = "deviceIdlb";
+            this.deviceIdlb.Size = new System.Drawing.Size(56, 15);
+            this.deviceIdlb.TabIndex = 45;
+            this.deviceIdlb.Text = "Device ID";
+            //
+            // label18
+            //
+            this.label18.AutoSize = true;
+            this.label18.Font = new System.Drawing.Font("Segoe UI", 9F);
+            this.label18.Location = new System.Drawing.Point(13, 15);
+            this.label18.Name = "label18";
+            this.label18.Size = new System.Drawing.Size(73, 15);
+            this.label18.TabIndex = 36;
+            this.label18.Text = "Device Type:";
+            //
+            // tabPokemon
+            //
+            this.tabPokemon.BackColor = System.Drawing.SystemColors.Control;
+            this.tabPokemon.Controls.Add(this.tcPokemonDetail);
+            this.tabPokemon.Location = new System.Drawing.Point(4, 24);
+            this.tabPokemon.Name = "tabPokemon";
+            this.tabPokemon.Size = new System.Drawing.Size(920, 479);
+            this.tabPokemon.TabIndex = 3;
+            this.tabPokemon.Text = "Pokemon";
+            //
+            // tcPokemonDetail
+            //
+            this.tcPokemonDetail.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
+            | System.Windows.Forms.AnchorStyles.Right)));
+            this.tcPokemonDetail.Controls.Add(this.tabCatch);
+            this.tcPokemonDetail.Controls.Add(this.tabTransfer);
+            this.tcPokemonDetail.Controls.Add(this.tabPowerUp);
+            this.tcPokemonDetail.Controls.Add(this.tabEvo);
+            this.tcPokemonDetail.Location = new System.Drawing.Point(0, 0);
+            this.tcPokemonDetail.Name = "tcPokemonDetail";
+            this.tcPokemonDetail.SelectedIndex = 0;
+            this.tcPokemonDetail.Size = new System.Drawing.Size(920, 479);
+            this.tcPokemonDetail.TabIndex = 5;
+            //
+            // tabCatch
+            //
+            this.tabCatch.BackColor = System.Drawing.SystemColors.Control;
+            this.tabCatch.Controls.Add(this.label47);
+            this.tabCatch.Controls.Add(this.cbAutoFavoritePokemon);
+            this.tabCatch.Controls.Add(this.tbFavoriteMinIvPercentage);
+            this.tabCatch.Controls.Add(this.groupBox10);
+            this.tabCatch.Controls.Add(this.tbMaxPokeballsPerPokemon);
+            this.tabCatch.Controls.Add(this.label43);
+            this.tabCatch.Controls.Add(this.groupBox9);
+            this.tabCatch.Controls.Add(this.groupBox2);
+            this.tabCatch.Controls.Add(this.tBMaxBerriesToUsePerPokemon);
+            this.tabCatch.Controls.Add(this.label27);
+            this.tabCatch.Controls.Add(this.cbUseEggIncubators);
+            this.tabCatch.Controls.Add(this.cbCatchPoke);
+            this.tabCatch.Location = new System.Drawing.Point(4, 24);
+            this.tabCatch.Name = "tabCatch";
+            this.tabCatch.Padding = new System.Windows.Forms.Padding(3);
+            this.tabCatch.Size = new System.Drawing.Size(912, 451);
+            this.tabCatch.TabIndex = 0;
+            this.tabCatch.Text = "Catch";
+            //
+            // label47
+            //
+            this.label47.AutoSize = true;
+            this.label47.Location = new System.Drawing.Point(6, 131);
+            this.label47.Name = "label47";
+            this.label47.Size = new System.Drawing.Size(101, 15);
+            this.label47.TabIndex = 4;
+            this.label47.Text = "Favorite Min-IV%:";
+            //
+            // cbAutoFavoritePokemon
+            //
+            this.cbAutoFavoritePokemon.AutoSize = true;
+            this.cbAutoFavoritePokemon.Location = new System.Drawing.Point(9, 106);
+            this.cbAutoFavoritePokemon.Name = "cbAutoFavoritePokemon";
+            this.cbAutoFavoritePokemon.Size = new System.Drawing.Size(153, 19);
+            this.cbAutoFavoritePokemon.TabIndex = 19;
+            this.cbAutoFavoritePokemon.Text = "Auto-Favorite Pokemon";
+            this.cbAutoFavoritePokemon.UseVisualStyleBackColor = true;
+            //
+            // tbFavoriteMinIvPercentage
+            //
+            this.tbFavoriteMinIvPercentage.Location = new System.Drawing.Point(178, 128);
+            this.tbFavoriteMinIvPercentage.Name = "tbFavoriteMinIvPercentage";
+            this.tbFavoriteMinIvPercentage.Size = new System.Drawing.Size(100, 23);
+            this.tbFavoriteMinIvPercentage.TabIndex = 5;
+            //
+            // groupBox10
+            //
+            this.groupBox10.Controls.Add(this.cbUseBerriesOperator);
+            this.groupBox10.Controls.Add(this.label52);
+            this.groupBox10.Controls.Add(this.tbUseBerriesMinCp);
+            this.groupBox10.Controls.Add(this.label54);
+            this.groupBox10.Controls.Add(this.tbUseBerriesMinIv);
+            this.groupBox10.Controls.Add(this.label56);
+            this.groupBox10.Controls.Add(this.tbUseBerriesBelowCatchProbability);
+            this.groupBox10.Location = new System.Drawing.Point(284, 18);
+            this.groupBox10.Name = "groupBox10";
+            this.groupBox10.Size = new System.Drawing.Size(358, 168);
+            this.groupBox10.TabIndex = 7;
+            this.groupBox10.TabStop = false;
+            this.groupBox10.Text = "Berry";
+            //
+            // cbUseBerriesOperator
+            //
+            this.cbUseBerriesOperator.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+            this.cbUseBerriesOperator.FormattingEnabled = true;
+            this.cbUseBerriesOperator.Items.AddRange(new object[] {
+            "AND",
+            "OR"});
+            this.cbUseBerriesOperator.Location = new System.Drawing.Point(95, 45);
+            this.cbUseBerriesOperator.Name = "cbUseBerriesOperator";
+            this.cbUseBerriesOperator.Size = new System.Drawing.Size(121, 23);
+            this.cbUseBerriesOperator.TabIndex = 17;
+            //
+            // label52
+            //
+            this.label52.AutoSize = true;
+            this.label52.Location = new System.Drawing.Point(6, 19);
+            this.label52.Name = "label52";
+            this.label52.Size = new System.Drawing.Size(109, 15);
+            this.label52.TabIndex = 4;
+            this.label52.Text = "Use Berries Min CP:";
+            //
+            // tbUseBerriesMinCp
+            //
+            this.tbUseBerriesMinCp.Location = new System.Drawing.Point(202, 16);
+            this.tbUseBerriesMinCp.Name = "tbUseBerriesMinCp";
+            this.tbUseBerriesMinCp.Size = new System.Drawing.Size(142, 23);
+            this.tbUseBerriesMinCp.TabIndex = 5;
+            //
+            // label54
+            //
+            this.label54.AutoSize = true;
+            this.label54.Location = new System.Drawing.Point(11, 77);
+            this.label54.Name = "label54";
+            this.label54.Size = new System.Drawing.Size(104, 15);
+            this.label54.TabIndex = 4;
+            this.label54.Text = "Use Berries Min IV:";
+            //
+            // tbUseBerriesMinIv
+            //
+            this.tbUseBerriesMinIv.Location = new System.Drawing.Point(202, 74);
+            this.tbUseBerriesMinIv.Name = "tbUseBerriesMinIv";
+            this.tbUseBerriesMinIv.Size = new System.Drawing.Size(142, 23);
+            this.tbUseBerriesMinIv.TabIndex = 5;
+            //
+            // label56
+            //
+            this.label56.AutoSize = true;
+            this.label56.Location = new System.Drawing.Point(11, 121);
+            this.label56.Name = "label56";
+            this.label56.Size = new System.Drawing.Size(196, 15);
+            this.label56.TabIndex = 4;
+            this.label56.Text = "Use Berries Below Catch Probability:";
+            //
+            // tbUseBerriesBelowCatchProbability
+            //
+            this.tbUseBerriesBelowCatchProbability.Location = new System.Drawing.Point(213, 118);
+            this.tbUseBerriesBelowCatchProbability.Name = "tbUseBerriesBelowCatchProbability";
+            this.tbUseBerriesBelowCatchProbability.Size = new System.Drawing.Size(131, 23);
+            this.tbUseBerriesBelowCatchProbability.TabIndex = 5;
+            //
+            // tbMaxPokeballsPerPokemon
+            //
+            this.tbMaxPokeballsPerPokemon.Location = new System.Drawing.Point(178, 74);
+            this.tbMaxPokeballsPerPokemon.Name = "tbMaxPokeballsPerPokemon";
+            this.tbMaxPokeballsPerPokemon.Size = new System.Drawing.Size(100, 23);
+            this.tbMaxPokeballsPerPokemon.TabIndex = 8;
+            //
+            // label43
+            //
+            this.label43.AutoSize = true;
+            this.label43.Location = new System.Drawing.Point(6, 77);
+            this.label43.Name = "label43";
+            this.label43.Size = new System.Drawing.Size(144, 15);
+            this.label43.TabIndex = 7;
+            this.label43.Text = "Max Poke balls/Pokemon:\r\n";
+            //
+            // groupBox9
+            //
+            this.groupBox9.Controls.Add(this.label2);
+            this.groupBox9.Controls.Add(this.tbUseMasterBallBelowCatchProbability);
+            this.groupBox9.Controls.Add(this.tbUseGreatBallAboveCp);
+            this.groupBox9.Controls.Add(this.label42);
+            this.groupBox9.Controls.Add(this.label3);
+            this.groupBox9.Controls.Add(this.tbUseUltraBallBelowCatchProbability);
+            this.groupBox9.Controls.Add(this.tbUseUltraBallAboveCp);
+            this.groupBox9.Controls.Add(this.label41);
+            this.groupBox9.Controls.Add(this.label4);
+            this.groupBox9.Controls.Add(this.tbUseGreatBallBelowCatchProbability);
+            this.groupBox9.Controls.Add(this.tbUseMasterBallAboveCp);
+            this.groupBox9.Controls.Add(this.label40);
+            this.groupBox9.Controls.Add(this.label6);
+            this.groupBox9.Controls.Add(this.tbUseUltraBallAboveIv);
+            this.groupBox9.Controls.Add(this.tbUseGreatBallAboveIv);
+            this.groupBox9.Controls.Add(this.label36);
+            this.groupBox9.Location = new System.Drawing.Point(284, 192);
+            this.groupBox9.Name = "groupBox9";
+            this.groupBox9.Size = new System.Drawing.Size(358, 252);
+            this.groupBox9.TabIndex = 6;
+            this.groupBox9.TabStop = false;
+            this.groupBox9.Text = "Ball";
+            //
+            // label2
+            //
+            this.label2.AutoSize = true;
+            this.label2.Location = new System.Drawing.Point(6, 19);
+            this.label2.Name = "label2";
+            this.label2.Size = new System.Drawing.Size(137, 15);
+            this.label2.TabIndex = 4;
+            this.label2.Text = "Use Great Ball Above CP:\r\n";
+            //
+            // tbUseMasterBallBelowCatchProbability
+            //
+            this.tbUseMasterBallBelowCatchProbability.Location = new System.Drawing.Point(244, 219);
+            this.tbUseMasterBallBelowCatchProbability.Name = "tbUseMasterBallBelowCatchProbability";
+            this.tbUseMasterBallBelowCatchProbability.Size = new System.Drawing.Size(100, 23);
+            this.tbUseMasterBallBelowCatchProbability.TabIndex = 5;
+            //
+            // tbUseGreatBallAboveCp
+            //
+            this.tbUseGreatBallAboveCp.Location = new System.Drawing.Point(244, 16);
+            this.tbUseGreatBallAboveCp.Name = "tbUseGreatBallAboveCp";
+            this.tbUseGreatBallAboveCp.Size = new System.Drawing.Size(100, 23);
+            this.tbUseGreatBallAboveCp.TabIndex = 5;
+            //
+            // label42
+            //
+            this.label42.AutoSize = true;
+            this.label42.Location = new System.Drawing.Point(6, 222);
+            this.label42.Name = "label42";
+            this.label42.Size = new System.Drawing.Size(219, 15);
+            this.label42.TabIndex = 4;
+            this.label42.Text = "Use Master Ball Below Catch Probability:";
+            //
+            // label3
+            //
+            this.label3.AutoSize = true;
+            this.label3.Location = new System.Drawing.Point(6, 48);
+            this.label3.Name = "label3";
+            this.label3.Size = new System.Drawing.Size(134, 15);
+            this.label3.TabIndex = 4;
+            this.label3.Text = "Use Ultra Ball Above CP:\r\n";
+            //
+            // tbUseUltraBallBelowCatchProbability
+            //
+            this.tbUseUltraBallBelowCatchProbability.Location = new System.Drawing.Point(244, 190);
+            this.tbUseUltraBallBelowCatchProbability.Name = "tbUseUltraBallBelowCatchProbability";
+            this.tbUseUltraBallBelowCatchProbability.Size = new System.Drawing.Size(100, 23);
+            this.tbUseUltraBallBelowCatchProbability.TabIndex = 5;
+            //
+            // tbUseUltraBallAboveCp
+            //
+            this.tbUseUltraBallAboveCp.Location = new System.Drawing.Point(244, 45);
+            this.tbUseUltraBallAboveCp.Name = "tbUseUltraBallAboveCp";
+            this.tbUseUltraBallAboveCp.Size = new System.Drawing.Size(100, 23);
+            this.tbUseUltraBallAboveCp.TabIndex = 5;
+            //
+            // label41
+            //
+            this.label41.AutoSize = true;
+            this.label41.Location = new System.Drawing.Point(6, 193);
+            this.label41.Name = "label41";
+            this.label41.Size = new System.Drawing.Size(208, 15);
+            this.label41.TabIndex = 4;
+            this.label41.Text = "Use Ultra Ball Below Catch Probability:";
+            //
+            // label4
+            //
+            this.label4.AutoSize = true;
+            this.label4.Location = new System.Drawing.Point(6, 77);
+            this.label4.Name = "label4";
+            this.label4.Size = new System.Drawing.Size(145, 15);
+            this.label4.TabIndex = 4;
+            this.label4.Text = "Use Master Ball Above CP:";
+            //
+            // tbUseGreatBallBelowCatchProbability
+            //
+            this.tbUseGreatBallBelowCatchProbability.Location = new System.Drawing.Point(244, 161);
+            this.tbUseGreatBallBelowCatchProbability.Name = "tbUseGreatBallBelowCatchProbability";
+            this.tbUseGreatBallBelowCatchProbability.Size = new System.Drawing.Size(100, 23);
+            this.tbUseGreatBallBelowCatchProbability.TabIndex = 5;
+            //
+            // tbUseMasterBallAboveCp
+            //
+            this.tbUseMasterBallAboveCp.Location = new System.Drawing.Point(244, 74);
+            this.tbUseMasterBallAboveCp.Name = "tbUseMasterBallAboveCp";
+            this.tbUseMasterBallAboveCp.Size = new System.Drawing.Size(100, 23);
+            this.tbUseMasterBallAboveCp.TabIndex = 5;
+            //
+            // label40
+            //
+            this.label40.AutoSize = true;
+            this.label40.Location = new System.Drawing.Point(6, 164);
+            this.label40.Name = "label40";
+            this.label40.Size = new System.Drawing.Size(211, 15);
+            this.label40.TabIndex = 4;
+            this.label40.Text = "Use Great Ball Below Catch Probability:\r\n";
+            //
+            // label6
+            //
+            this.label6.AutoSize = true;
+            this.label6.Location = new System.Drawing.Point(6, 106);
+            this.label6.Name = "label6";
+            this.label6.Size = new System.Drawing.Size(132, 15);
+            this.label6.TabIndex = 4;
+            this.label6.Text = "Use Great Ball Above IV:\r\n";
+            //
+            // tbUseUltraBallAboveIv
+            //
+            this.tbUseUltraBallAboveIv.Location = new System.Drawing.Point(244, 132);
+            this.tbUseUltraBallAboveIv.Name = "tbUseUltraBallAboveIv";
+            this.tbUseUltraBallAboveIv.Size = new System.Drawing.Size(100, 23);
+            this.tbUseUltraBallAboveIv.TabIndex = 5;
+            //
+            // tbUseGreatBallAboveIv
+            //
+            this.tbUseGreatBallAboveIv.Location = new System.Drawing.Point(244, 103);
+            this.tbUseGreatBallAboveIv.Name = "tbUseGreatBallAboveIv";
+            this.tbUseGreatBallAboveIv.Size = new System.Drawing.Size(100, 23);
+            this.tbUseGreatBallAboveIv.TabIndex = 5;
+            //
+            // label36
+            //
+            this.label36.AutoSize = true;
+            this.label36.Location = new System.Drawing.Point(6, 135);
+            this.label36.Name = "label36";
+            this.label36.Size = new System.Drawing.Size(129, 15);
+            this.label36.TabIndex = 4;
+            this.label36.Text = "Use Ultra Ball Above IV:\r\n";
+            //
+            // groupBox2
+            //
+            this.groupBox2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+            | System.Windows.Forms.AnchorStyles.Left)));
+            this.groupBox2.Controls.Add(this.cbIgnoreAll);
+            this.groupBox2.Controls.Add(this.clbIgnore);
+            this.groupBox2.Location = new System.Drawing.Point(6, 158);
+            this.groupBox2.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
+            this.groupBox2.Name = "groupBox2";
+            this.groupBox2.Padding = new System.Windows.Forms.Padding(3, 4, 3, 4);
+            this.groupBox2.Size = new System.Drawing.Size(272, 285);
+            this.groupBox2.TabIndex = 3;
+            this.groupBox2.TabStop = false;
+            this.groupBox2.Text = "Ignore";
+            //
+            // cbIgnoreAll
+            //
+            this.cbIgnoreAll.AutoSize = true;
+            this.cbIgnoreAll.Location = new System.Drawing.Point(6, 17);
+            this.cbIgnoreAll.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
+            this.cbIgnoreAll.Name = "cbIgnoreAll";
+            this.cbIgnoreAll.Size = new System.Drawing.Size(74, 19);
+            this.cbIgnoreAll.TabIndex = 1;
+            this.cbIgnoreAll.Text = "Select All";
+            this.cbIgnoreAll.UseVisualStyleBackColor = true;
+            this.cbIgnoreAll.CheckedChanged += new System.EventHandler(this.cbSelectAllCatch_CheckedChanged);
+            //
+            // clbIgnore
+            //
+            this.clbIgnore.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
+            | System.Windows.Forms.AnchorStyles.Right)));
+            this.clbIgnore.CheckOnClick = true;
+            this.clbIgnore.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.clbIgnore.FormattingEnabled = true;
+            this.clbIgnore.Location = new System.Drawing.Point(6, 44);
+            this.clbIgnore.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
+            this.clbIgnore.Name = "clbIgnore";
+            this.clbIgnore.Size = new System.Drawing.Size(259, 220);
+            this.clbIgnore.TabIndex = 0;
+            //
+            // tBMaxBerriesToUsePerPokemon
+            //
+            this.tBMaxBerriesToUsePerPokemon.Location = new System.Drawing.Point(178, 45);
+            this.tBMaxBerriesToUsePerPokemon.Name = "tBMaxBerriesToUsePerPokemon";
+            this.tBMaxBerriesToUsePerPokemon.Size = new System.Drawing.Size(100, 23);
+            this.tBMaxBerriesToUsePerPokemon.TabIndex = 2;
+            //
+            // label27
+            //
+            this.label27.AutoSize = true;
+            this.label27.Location = new System.Drawing.Point(6, 48);
+            this.label27.Name = "label27";
+            this.label27.Size = new System.Drawing.Size(128, 15);
+            this.label27.TabIndex = 1;
+            this.label27.Text = "Berry to use/Pokemon:\r\n";
+            //
+            // cbUseEggIncubators
+            //
+            this.cbUseEggIncubators.AutoSize = true;
+            this.cbUseEggIncubators.Location = new System.Drawing.Point(9, 21);
+            this.cbUseEggIncubators.Name = "cbUseEggIncubators";
+            this.cbUseEggIncubators.Size = new System.Drawing.Size(127, 19);
+            this.cbUseEggIncubators.TabIndex = 1;
+            this.cbUseEggIncubators.Text = "Use Egg Incubators";
+            this.cbUseEggIncubators.UseVisualStyleBackColor = true;
+            //
+            // cbCatchPoke
+            //
+            this.cbCatchPoke.AutoSize = true;
+            this.cbCatchPoke.Location = new System.Drawing.Point(9, 3);
+            this.cbCatchPoke.Name = "cbCatchPoke";
+            this.cbCatchPoke.Size = new System.Drawing.Size(111, 19);
+            this.cbCatchPoke.TabIndex = 1;
+            this.cbCatchPoke.Text = "Catch Pokemon";
+            this.cbCatchPoke.UseVisualStyleBackColor = true;
+            //
+            // tabTransfer
+            //
+            this.tabTransfer.BackColor = System.Drawing.SystemColors.Control;
+            this.tabTransfer.Controls.Add(this.groupBox1);
+            this.tabTransfer.Controls.Add(this.groupBox8);
+            this.tabTransfer.Controls.Add(this.groupBox7);
+            this.tabTransfer.Location = new System.Drawing.Point(4, 24);
+            this.tabTransfer.Name = "tabTransfer";
+            this.tabTransfer.Padding = new System.Windows.Forms.Padding(3);
+            this.tabTransfer.Size = new System.Drawing.Size(912, 451);
+            this.tabTransfer.TabIndex = 1;
+            this.tabTransfer.Text = "Transfer";
+            //
+            // groupBox1
+            //
+            this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+            | System.Windows.Forms.AnchorStyles.Left)));
+            this.groupBox1.Controls.Add(this.cbNotTransferAll);
+            this.groupBox1.Controls.Add(this.clbTransfer);
+            this.groupBox1.Location = new System.Drawing.Point(330, 7);
+            this.groupBox1.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
+            this.groupBox1.Name = "groupBox1";
+            this.groupBox1.Padding = new System.Windows.Forms.Padding(3, 4, 3, 4);
+            this.groupBox1.Size = new System.Drawing.Size(220, 455);
+            this.groupBox1.TabIndex = 20;
+            this.groupBox1.TabStop = false;
+            this.groupBox1.Text = "Exclude Transfer";
+            //
+            // cbNotTransferAll
+            //
+            this.cbNotTransferAll.AutoSize = true;
+            this.cbNotTransferAll.Location = new System.Drawing.Point(6, 17);
+            this.cbNotTransferAll.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
+            this.cbNotTransferAll.Name = "cbNotTransferAll";
+            this.cbNotTransferAll.Size = new System.Drawing.Size(74, 19);
+            this.cbNotTransferAll.TabIndex = 1;
+            this.cbNotTransferAll.Text = "Select All";
+            this.cbNotTransferAll.UseVisualStyleBackColor = true;
+            this.cbNotTransferAll.CheckedChanged += new System.EventHandler(this.cbSelectAllTransfer_CheckedChanged);
+            //
+            // clbTransfer
+            //
+            this.clbTransfer.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
+            | System.Windows.Forms.AnchorStyles.Right)));
+            this.clbTransfer.CheckOnClick = true;
+            this.clbTransfer.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.clbTransfer.FormattingEnabled = true;
+            this.clbTransfer.Location = new System.Drawing.Point(6, 42);
+            this.clbTransfer.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
+            this.clbTransfer.Name = "clbTransfer";
+            this.clbTransfer.Size = new System.Drawing.Size(207, 400);
+            this.clbTransfer.TabIndex = 0;
+            //
+            // groupBox8
+            //
+            this.groupBox8.Controls.Add(this.cbUseKeepMinLvl);
+            this.groupBox8.Controls.Add(this.label37);
+            this.groupBox8.Controls.Add(this.tbKeepMinLvl);
+            this.groupBox8.Location = new System.Drawing.Point(6, 261);
+            this.groupBox8.Name = "groupBox8";
+            this.groupBox8.Size = new System.Drawing.Size(318, 86);
+            this.groupBox8.TabIndex = 19;
+            this.groupBox8.TabStop = false;
+            this.groupBox8.Text = "Additional Condiction";
+            //
+            // cbUseKeepMinLvl
+            //
+            this.cbUseKeepMinLvl.AutoSize = true;
+            this.cbUseKeepMinLvl.Location = new System.Drawing.Point(9, 23);
+            this.cbUseKeepMinLvl.Name = "cbUseKeepMinLvl";
+            this.cbUseKeepMinLvl.Size = new System.Drawing.Size(190, 19);
+            this.cbUseKeepMinLvl.TabIndex = 20;
+            this.cbUseKeepMinLvl.Text = "Use Keep Min Level Condiction\r\n";
+            this.cbUseKeepMinLvl.UseVisualStyleBackColor = true;
+            //
+            // label37
+            //
+            this.label37.AutoSize = true;
+            this.label37.Location = new System.Drawing.Point(8, 50);
+            this.label37.Name = "label37";
+            this.label37.Size = new System.Drawing.Size(92, 15);
+            this.label37.TabIndex = 16;
+            this.label37.Text = "Keep Min-Level:";
+            //
+            // tbKeepMinLvl
+            //
+            this.tbKeepMinLvl.Location = new System.Drawing.Point(186, 47);
+            this.tbKeepMinLvl.Name = "tbKeepMinLvl";
+            this.tbKeepMinLvl.Size = new System.Drawing.Size(121, 23);
+            this.tbKeepMinLvl.TabIndex = 17;
+            //
+            // groupBox7
+            //
+            this.groupBox7.Controls.Add(this.cbTransferDuplicatePokemonOnCapture);
+            this.groupBox7.Controls.Add(this.cbTransferDuplicatePokemon);
+            this.groupBox7.Controls.Add(this.cbTransferWeakPokemon);
+            this.groupBox7.Controls.Add(this.tbKeepMinDuplicatePokemon);
+            this.groupBox7.Controls.Add(this.label35);
+            this.groupBox7.Controls.Add(this.cbPrioritizeIvOverCp);
+            this.groupBox7.Controls.Add(this.tbKeepMinIV);
+            this.groupBox7.Controls.Add(this.cbKeepMinOperator);
+            this.groupBox7.Controls.Add(this.tbKeepMinCp);
+            this.groupBox7.Controls.Add(this.label38);
+            this.groupBox7.Controls.Add(this.label39);
+            this.groupBox7.Location = new System.Drawing.Point(6, 6);
+            this.groupBox7.Name = "groupBox7";
+            this.groupBox7.Size = new System.Drawing.Size(318, 249);
+            this.groupBox7.TabIndex = 18;
+            this.groupBox7.TabStop = false;
+            this.groupBox7.Text = "Condiction";
+            //
+            // cbTransferDuplicatePokemonOnCapture
+            //
+            this.cbTransferDuplicatePokemonOnCapture.AutoSize = true;
+            this.cbTransferDuplicatePokemonOnCapture.Location = new System.Drawing.Point(6, 224);
+            this.cbTransferDuplicatePokemonOnCapture.Name = "cbTransferDuplicatePokemonOnCapture";
+            this.cbTransferDuplicatePokemonOnCapture.Size = new System.Drawing.Size(239, 19);
+            this.cbTransferDuplicatePokemonOnCapture.TabIndex = 24;
+            this.cbTransferDuplicatePokemonOnCapture.Text = "Transfer Duplicate Pokemon On Capture";
+            this.cbTransferDuplicatePokemonOnCapture.UseVisualStyleBackColor = true;
+            //
+            // cbTransferDuplicatePokemon
+            //
+            this.cbTransferDuplicatePokemon.AutoSize = true;
+            this.cbTransferDuplicatePokemon.Location = new System.Drawing.Point(6, 199);
+            this.cbTransferDuplicatePokemon.Name = "cbTransferDuplicatePokemon";
+            this.cbTransferDuplicatePokemon.Size = new System.Drawing.Size(175, 19);
+            this.cbTransferDuplicatePokemon.TabIndex = 24;
+            this.cbTransferDuplicatePokemon.Text = "Transfer Duplicate Pokemon";
+            this.cbTransferDuplicatePokemon.UseVisualStyleBackColor = true;
+            //
+            // cbTransferWeakPokemon
+            //
+            this.cbTransferWeakPokemon.AutoSize = true;
+            this.cbTransferWeakPokemon.Location = new System.Drawing.Point(6, 174);
+            this.cbTransferWeakPokemon.Name = "cbTransferWeakPokemon";
+            this.cbTransferWeakPokemon.Size = new System.Drawing.Size(154, 19);
+            this.cbTransferWeakPokemon.TabIndex = 24;
+            this.cbTransferWeakPokemon.Text = "Transfer Weak Pokemon";
+            this.cbTransferWeakPokemon.UseVisualStyleBackColor = true;
+            //
+            // tbKeepMinDuplicatePokemon
+            //
+            this.tbKeepMinDuplicatePokemon.Location = new System.Drawing.Point(216, 139);
+            this.tbKeepMinDuplicatePokemon.Name = "tbKeepMinDuplicatePokemon";
+            this.tbKeepMinDuplicatePokemon.Size = new System.Drawing.Size(91, 23);
+            this.tbKeepMinDuplicatePokemon.TabIndex = 23;
+            //
+            // label35
+            //
+            this.label35.AutoSize = true;
+            this.label35.Location = new System.Drawing.Point(6, 142);
+            this.label35.Name = "label35";
+            this.label35.Size = new System.Drawing.Size(204, 15);
+            this.label35.TabIndex = 22;
+            this.label35.Text = "Keep How Many Duplicate Pokemon:\r\n";
+            //
+            // cbPrioritizeIvOverCp
+            //
+            this.cbPrioritizeIvOverCp.AutoSize = true;
+            this.cbPrioritizeIvOverCp.Location = new System.Drawing.Point(11, 22);
+            this.cbPrioritizeIvOverCp.Name = "cbPrioritizeIvOverCp";
+            this.cbPrioritizeIvOverCp.Size = new System.Drawing.Size(131, 19);
+            this.cbPrioritizeIvOverCp.TabIndex = 21;
+            this.cbPrioritizeIvOverCp.Text = "Prioritize IV Over CP";
+            this.cbPrioritizeIvOverCp.UseVisualStyleBackColor = true;
+            //
+            // tbKeepMinIV
+            //
+            this.tbKeepMinIV.Location = new System.Drawing.Point(186, 110);
+            this.tbKeepMinIV.Name = "tbKeepMinIV";
+            this.tbKeepMinIV.Size = new System.Drawing.Size(121, 23);
+            this.tbKeepMinIV.TabIndex = 12;
+            //
+            // cbKeepMinOperator
+            //
+            this.cbKeepMinOperator.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+            this.cbKeepMinOperator.FormattingEnabled = true;
+            this.cbKeepMinOperator.Items.AddRange(new object[] {
+            "AND",
+            "OR"});
+            this.cbKeepMinOperator.Location = new System.Drawing.Point(78, 81);
+            this.cbKeepMinOperator.Name = "cbKeepMinOperator";
+            this.cbKeepMinOperator.Size = new System.Drawing.Size(121, 23);
+            this.cbKeepMinOperator.TabIndex = 11;
+            //
+            // tbKeepMinCp
+            //
+            this.tbKeepMinCp.Location = new System.Drawing.Point(186, 52);
+            this.tbKeepMinCp.Name = "tbKeepMinCp";
+            this.tbKeepMinCp.Size = new System.Drawing.Size(121, 23);
+            this.tbKeepMinCp.TabIndex = 11;
+            //
+            // label38
+            //
+            this.label38.AutoSize = true;
+            this.label38.Location = new System.Drawing.Point(6, 113);
+            this.label38.Name = "label38";
+            this.label38.Size = new System.Drawing.Size(85, 15);
+            this.label38.TabIndex = 10;
+            this.label38.Text = "Keep Min-IV%:";
+            //
+            // label39
+            //
+            this.label39.AutoSize = true;
+            this.label39.Location = new System.Drawing.Point(6, 55);
+            this.label39.Name = "label39";
+            this.label39.Size = new System.Drawing.Size(80, 15);
+            this.label39.TabIndex = 8;
+            this.label39.Text = "Keep Min-CP:";
+            //
+            // tabPowerUp
+            //
+            this.tabPowerUp.BackColor = System.Drawing.SystemColors.Control;
+            this.tabPowerUp.Controls.Add(this.cbPowerUpFav);
+            this.tabPowerUp.Controls.Add(this.groupBox6);
+            this.tabPowerUp.Controls.Add(this.cbPowerUpType);
+            this.tabPowerUp.Controls.Add(this.label29);
+            this.tabPowerUp.Controls.Add(this.groupBox4);
+            this.tabPowerUp.Controls.Add(this.cbAutoPowerUp);
+            this.tabPowerUp.Location = new System.Drawing.Point(4, 24);
+            this.tabPowerUp.Name = "tabPowerUp";
+            this.tabPowerUp.Size = new System.Drawing.Size(912, 451);
+            this.tabPowerUp.TabIndex = 4;
+            this.tabPowerUp.Text = "PowerUp";
+            //
+            // cbPowerUpFav
+            //
+            this.cbPowerUpFav.AutoSize = true;
+            this.cbPowerUpFav.Location = new System.Drawing.Point(9, 28);
+            this.cbPowerUpFav.Name = "cbPowerUpFav";
+            this.cbPowerUpFav.Size = new System.Drawing.Size(152, 19);
+            this.cbPowerUpFav.TabIndex = 11;
+            this.cbPowerUpFav.Text = "Only PowerUp Favorites\r\n";
+            this.cbPowerUpFav.UseVisualStyleBackColor = true;
+            //
+            // groupBox6
+            //
+            this.groupBox6.Controls.Add(this.tbPowerUpMinIV);
+            this.groupBox6.Controls.Add(this.cbPowerUpCondiction);
+            this.groupBox6.Controls.Add(this.tbPowerUpMinCP);
+            this.groupBox6.Controls.Add(this.label31);
+            this.groupBox6.Controls.Add(this.label30);
+            this.groupBox6.Controls.Add(this.cbPowerUpMinStarDust);
+            this.groupBox6.Controls.Add(this.label28);
+            this.groupBox6.Location = new System.Drawing.Point(9, 130);
+            this.groupBox6.Name = "groupBox6";
+            this.groupBox6.Size = new System.Drawing.Size(307, 120);
+            this.groupBox6.TabIndex = 10;
+            this.groupBox6.TabStop = false;
+            this.groupBox6.Text = "Condiction";
+            //
+            // tbPowerUpMinIV
+            //
+            this.tbPowerUpMinIV.Location = new System.Drawing.Point(178, 80);
+            this.tbPowerUpMinIV.Name = "tbPowerUpMinIV";
+            this.tbPowerUpMinIV.Size = new System.Drawing.Size(121, 23);
+            this.tbPowerUpMinIV.TabIndex = 12;
+            //
+            // cbPowerUpCondiction
+            //
+            this.cbPowerUpCondiction.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+            this.cbPowerUpCondiction.FormattingEnabled = true;
+            this.cbPowerUpCondiction.Items.AddRange(new object[] {
+            "AND",
+            "OR"});
+            this.cbPowerUpCondiction.Location = new System.Drawing.Point(79, 51);
+            this.cbPowerUpCondiction.Name = "cbPowerUpCondiction";
+            this.cbPowerUpCondiction.Size = new System.Drawing.Size(121, 23);
+            this.cbPowerUpCondiction.TabIndex = 11;
+            //
+            // tbPowerUpMinCP
+            //
+            this.tbPowerUpMinCP.Location = new System.Drawing.Point(178, 80);
+            this.tbPowerUpMinCP.Name = "tbPowerUpMinCP";
+            this.tbPowerUpMinCP.Size = new System.Drawing.Size(121, 23);
+            this.tbPowerUpMinCP.TabIndex = 11;
+            //
+            // label31
+            //
+            this.label31.AutoSize = true;
+            this.label31.Location = new System.Drawing.Point(6, 83);
+            this.label31.Name = "label31";
+            this.label31.Size = new System.Drawing.Size(56, 15);
+            this.label31.TabIndex = 10;
+            this.label31.Text = "Min-IV%:";
+            //
+            // label30
+            //
+            this.label30.AutoSize = true;
+            this.label30.Location = new System.Drawing.Point(6, 83);
+            this.label30.Name = "label30";
+            this.label30.Size = new System.Drawing.Size(51, 15);
+            this.label30.TabIndex = 8;
+            this.label30.Text = "Min-CP:";
+            //
+            // cbPowerUpMinStarDust
+            //
+            this.cbPowerUpMinStarDust.FormattingEnabled = true;
+            this.cbPowerUpMinStarDust.Items.AddRange(new object[] {
+            "200",
+            "400",
+            "600",
+            "800",
+            "1000",
+            "1300",
+            "1600",
+            "1900",
+            "2200",
+            "2500",
+            "3000",
+            "3500",
+            "4000",
+            "4500",
+            "5000",
+            "6000",
+            "7000",
+            "8000",
+            "9000",
+            "10000"});
+            this.cbPowerUpMinStarDust.Location = new System.Drawing.Point(178, 22);
+            this.cbPowerUpMinStarDust.Name = "cbPowerUpMinStarDust";
+            this.cbPowerUpMinStarDust.Size = new System.Drawing.Size(121, 23);
+            this.cbPowerUpMinStarDust.TabIndex = 7;
+            this.cbPowerUpMinStarDust.Text = "5000";
+            //
+            // label28
+            //
+            this.label28.AutoSize = true;
+            this.label28.Location = new System.Drawing.Point(6, 25);
+            this.label28.Name = "label28";
+            this.label28.Size = new System.Drawing.Size(151, 15);
+            this.label28.TabIndex = 6;
+            this.label28.Text = "Min-StarDust For PowerUp:\r\n";
+            //
+            // cbPowerUpType
+            //
+            this.cbPowerUpType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+            this.cbPowerUpType.FormattingEnabled = true;
+            this.cbPowerUpType.Items.AddRange(new object[] {
+            "IV",
+            "CP"});
+            this.cbPowerUpType.Location = new System.Drawing.Point(98, 93);
+            this.cbPowerUpType.Name = "cbPowerUpType";
+            this.cbPowerUpType.Size = new System.Drawing.Size(121, 23);
+            this.cbPowerUpType.TabIndex = 9;
+            this.cbPowerUpType.SelectionChangeCommitted += new System.EventHandler(this.cbPowerUpType_SelectionChangeCommitted);
+            //
+            // label29
+            //
+            this.label29.AutoSize = true;
+            this.label29.Location = new System.Drawing.Point(6, 96);
+            this.label29.Name = "label29";
+            this.label29.Size = new System.Drawing.Size(86, 15);
+            this.label29.TabIndex = 8;
+            this.label29.Text = "PowerUp Type:";
+            //
+            // groupBox4
+            //
+            this.groupBox4.Controls.Add(this.cbPowerUpAll);
+            this.groupBox4.Controls.Add(this.clbPowerUp);
+            this.groupBox4.Location = new System.Drawing.Point(323, 4);
+            this.groupBox4.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
+            this.groupBox4.Name = "groupBox4";
+            this.groupBox4.Padding = new System.Windows.Forms.Padding(3, 4, 3, 4);
+            this.groupBox4.Size = new System.Drawing.Size(220, 443);
+            this.groupBox4.TabIndex = 5;
+            this.groupBox4.TabStop = false;
+            this.groupBox4.Text = "Power Up";
+            //
+            // cbPowerUpAll
+            //
+            this.cbPowerUpAll.AutoSize = true;
+            this.cbPowerUpAll.Location = new System.Drawing.Point(6, 17);
+            this.cbPowerUpAll.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
+            this.cbPowerUpAll.Name = "cbPowerUpAll";
+            this.cbPowerUpAll.Size = new System.Drawing.Size(74, 19);
+            this.cbPowerUpAll.TabIndex = 1;
+            this.cbPowerUpAll.Text = "Select All";
+            this.cbPowerUpAll.UseVisualStyleBackColor = true;
+            this.cbPowerUpAll.CheckedChanged += new System.EventHandler(this.cbPowerUpAll_CheckedChanged);
+            //
+            // clbPowerUp
+            //
+            this.clbPowerUp.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
+            | System.Windows.Forms.AnchorStyles.Right)));
+            this.clbPowerUp.CheckOnClick = true;
+            this.clbPowerUp.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.clbPowerUp.FormattingEnabled = true;
+            this.clbPowerUp.Location = new System.Drawing.Point(6, 44);
+            this.clbPowerUp.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
+            this.clbPowerUp.Name = "clbPowerUp";
+            this.clbPowerUp.Size = new System.Drawing.Size(207, 382);
+            this.clbPowerUp.TabIndex = 0;
+            //
+            // cbAutoPowerUp
+            //
+            this.cbAutoPowerUp.AutoSize = true;
+            this.cbAutoPowerUp.Location = new System.Drawing.Point(9, 3);
+            this.cbAutoPowerUp.Name = "cbAutoPowerUp";
+            this.cbAutoPowerUp.Size = new System.Drawing.Size(106, 19);
+            this.cbAutoPowerUp.TabIndex = 4;
+            this.cbAutoPowerUp.Text = "Auto Power Up";
+            this.cbAutoPowerUp.UseVisualStyleBackColor = true;
+            //
+            // tabEvo
+            //
+            this.tabEvo.BackColor = System.Drawing.SystemColors.Control;
+            this.tabEvo.Controls.Add(this.label53);
+            this.tabEvo.Controls.Add(this.tbUseLuckyEggsMinPokemonAmount);
+            this.tabEvo.Controls.Add(this.cbUseLuckyEggsWhileEvolving);
+            this.tabEvo.Controls.Add(this.groupBox5);
+            this.tabEvo.Controls.Add(this.label33);
+            this.tabEvo.Controls.Add(this.tbEvolveKeptPokemonsAtStorageUsagePercentage);
+            this.tabEvo.Controls.Add(this.cbKeepPokemonsThatCanEvolve);
+            this.tabEvo.Controls.Add(this.groupBox3);
+            this.tabEvo.Location = new System.Drawing.Point(4, 24);
+            this.tabEvo.Name = "tabEvo";
+            this.tabEvo.Size = new System.Drawing.Size(912, 451);
+            this.tabEvo.TabIndex = 3;
+            this.tabEvo.Text = "Evolve";
+            //
+            // label53
+            //
+            this.label53.AutoSize = true;
+            this.label53.Location = new System.Drawing.Point(12, 237);
+            this.label53.Name = "label53";
+            this.label53.Size = new System.Drawing.Size(129, 45);
+            this.label53.TabIndex = 24;
+            this.label53.Text = "Use Lucky Eggs \r\nWhen Having Amount \r\nOf Pokemons:";
+            //
+            // tbUseLuckyEggsMinPokemonAmount
+            //
+            this.tbUseLuckyEggsMinPokemonAmount.Location = new System.Drawing.Point(147, 249);
+            this.tbUseLuckyEggsMinPokemonAmount.Name = "tbUseLuckyEggsMinPokemonAmount";
+            this.tbUseLuckyEggsMinPokemonAmount.Size = new System.Drawing.Size(102, 23);
+            this.tbUseLuckyEggsMinPokemonAmount.TabIndex = 23;
+            //
+            // cbUseLuckyEggsWhileEvolving
+            //
+            this.cbUseLuckyEggsWhileEvolving.AutoSize = true;
+            this.cbUseLuckyEggsWhileEvolving.Location = new System.Drawing.Point(15, 209);
+            this.cbUseLuckyEggsWhileEvolving.Name = "cbUseLuckyEggsWhileEvolving";
+            this.cbUseLuckyEggsWhileEvolving.Size = new System.Drawing.Size(188, 19);
+            this.cbUseLuckyEggsWhileEvolving.TabIndex = 22;
+            this.cbUseLuckyEggsWhileEvolving.Text = "Use Lucky Eggs While Evolving\r\n";
+            this.cbUseLuckyEggsWhileEvolving.UseVisualStyleBackColor = true;
+            //
+            // groupBox5
+            //
+            this.groupBox5.Controls.Add(this.label34);
+            this.groupBox5.Controls.Add(this.tbEvoAboveIV);
+            this.groupBox5.Controls.Add(this.cbEvoAllAboveIV);
+            this.groupBox5.Controls.Add(this.label32);
+            this.groupBox5.Controls.Add(this.cbEvolveAllPokemonWithEnoughCandy);
+            this.groupBox5.Location = new System.Drawing.Point(9, 3);
+            this.groupBox5.Name = "groupBox5";
+            this.groupBox5.Size = new System.Drawing.Size(255, 140);
+            this.groupBox5.TabIndex = 21;
+            this.groupBox5.TabStop = false;
+            this.groupBox5.Text = "Global Evo Setting";
+            //
+            // label34
+            //
+            this.label34.AutoSize = true;
+            this.label34.ForeColor = System.Drawing.Color.Coral;
+            this.label34.Location = new System.Drawing.Point(52, 19);
+            this.label34.Name = "label34";
+            this.label34.Size = new System.Drawing.Size(153, 30);
+            this.label34.TabIndex = 20;
+            this.label34.Text = " These settings will ignore \r\nthe evolve filter on the right";
+            //
+            // tbEvoAboveIV
+            //
+            this.tbEvoAboveIV.Location = new System.Drawing.Point(82, 77);
+            this.tbEvoAboveIV.Name = "tbEvoAboveIV";
+            this.tbEvoAboveIV.Size = new System.Drawing.Size(161, 23);
+            this.tbEvoAboveIV.TabIndex = 15;
+            //
+            // cbEvoAllAboveIV
+            //
+            this.cbEvoAllAboveIV.AutoSize = true;
+            this.cbEvoAllAboveIV.Location = new System.Drawing.Point(6, 52);
+            this.cbEvoAllAboveIV.Name = "cbEvoAllAboveIV";
+            this.cbEvoAllAboveIV.Size = new System.Drawing.Size(181, 19);
+            this.cbEvoAllAboveIV.TabIndex = 12;
+            this.cbEvoAllAboveIV.Text = "Evolve All Pokemon Above IV";
+            this.cbEvoAllAboveIV.UseVisualStyleBackColor = true;
+            //
+            // label32
+            //
+            this.label32.AutoSize = true;
+            this.label32.Location = new System.Drawing.Point(3, 80);
+            this.label32.Name = "label32";
+            this.label32.Size = new System.Drawing.Size(30, 15);
+            this.label32.TabIndex = 19;
+            this.label32.Text = "IV%:";
+            //
+            // cbEvolveAllPokemonWithEnoughCandy
+            //
+            this.cbEvolveAllPokemonWithEnoughCandy.AutoSize = true;
+            this.cbEvolveAllPokemonWithEnoughCandy.Location = new System.Drawing.Point(6, 106);
+            this.cbEvolveAllPokemonWithEnoughCandy.Name = "cbEvolveAllPokemonWithEnoughCandy";
+            this.cbEvolveAllPokemonWithEnoughCandy.Size = new System.Drawing.Size(240, 19);
+            this.cbEvolveAllPokemonWithEnoughCandy.TabIndex = 14;
+            this.cbEvolveAllPokemonWithEnoughCandy.Text = "Evolve All Pokemon With Enough Candy";
+            this.cbEvolveAllPokemonWithEnoughCandy.UseVisualStyleBackColor = true;
+            //
+            // label33
+            //
+            this.label33.AutoSize = true;
+            this.label33.Location = new System.Drawing.Point(12, 183);
+            this.label33.Name = "label33";
+            this.label33.Size = new System.Drawing.Size(98, 15);
+            this.label33.TabIndex = 20;
+            this.label33.Text = "Storage Usage %:";
+            //
+            // tbEvolveKeptPokemonsAtStorageUsagePercentage
+            //
+            this.tbEvolveKeptPokemonsAtStorageUsagePercentage.Location = new System.Drawing.Point(116, 180);
+            this.tbEvolveKeptPokemonsAtStorageUsagePercentage.Name = "tbEvolveKeptPokemonsAtStorageUsagePercentage";
+            this.tbEvolveKeptPokemonsAtStorageUsagePercentage.Size = new System.Drawing.Size(133, 23);
+            this.tbEvolveKeptPokemonsAtStorageUsagePercentage.TabIndex = 18;
+            //
+            // cbKeepPokemonsThatCanEvolve
+            //
+            this.cbKeepPokemonsThatCanEvolve.AutoSize = true;
+            this.cbKeepPokemonsThatCanEvolve.Location = new System.Drawing.Point(15, 155);
+            this.cbKeepPokemonsThatCanEvolve.Name = "cbKeepPokemonsThatCanEvolve";
+            this.cbKeepPokemonsThatCanEvolve.Size = new System.Drawing.Size(237, 19);
+            this.cbKeepPokemonsThatCanEvolve.TabIndex = 17;
+            this.cbKeepPokemonsThatCanEvolve.Text = "Evolve Pokemons when storage is % full\r\n";
+            this.cbKeepPokemonsThatCanEvolve.UseVisualStyleBackColor = true;
+            //
+            // groupBox3
+            //
+            this.groupBox3.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+            | System.Windows.Forms.AnchorStyles.Left)));
+            this.groupBox3.Controls.Add(this.cbEvolveAll);
+            this.groupBox3.Controls.Add(this.clbEvolve);
+            this.groupBox3.Location = new System.Drawing.Point(270, 4);
+            this.groupBox3.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
+            this.groupBox3.Name = "groupBox3";
+            this.groupBox3.Padding = new System.Windows.Forms.Padding(3, 4, 3, 4);
+            this.groupBox3.Size = new System.Drawing.Size(220, 461);
+            this.groupBox3.TabIndex = 16;
+            this.groupBox3.TabStop = false;
+            this.groupBox3.Text = "Evolve";
+            //
+            // cbEvolveAll
+            //
+            this.cbEvolveAll.AutoSize = true;
+            this.cbEvolveAll.Location = new System.Drawing.Point(6, 17);
+            this.cbEvolveAll.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
+            this.cbEvolveAll.Name = "cbEvolveAll";
+            this.cbEvolveAll.Size = new System.Drawing.Size(74, 19);
+            this.cbEvolveAll.TabIndex = 1;
+            this.cbEvolveAll.Text = "Select All";
+            this.cbEvolveAll.UseVisualStyleBackColor = true;
+            this.cbEvolveAll.CheckedChanged += new System.EventHandler(this.cbSelectAllEvolve_CheckedChanged);
+            //
+            // clbEvolve
+            //
+            this.clbEvolve.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.clbEvolve.CheckOnClick = true;
+            this.clbEvolve.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.clbEvolve.FormattingEnabled = true;
+            this.clbEvolve.Location = new System.Drawing.Point(6, 44);
+            this.clbEvolve.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
+            this.clbEvolve.Name = "clbEvolve";
+            this.clbEvolve.Size = new System.Drawing.Size(207, 382);
+            this.clbEvolve.TabIndex = 0;
+            //
+            // tabItems
+            //
+            this.tabItems.BackColor = System.Drawing.SystemColors.Control;
+            this.tabItems.Controls.Add(this.groupBox14);
+            this.tabItems.Controls.Add(this.groupBox13);
+            this.tabItems.Controls.Add(this.groupBox12);
+            this.tabItems.Controls.Add(this.groupBox11);
+            this.tabItems.Location = new System.Drawing.Point(4, 24);
+            this.tabItems.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
+            this.tabItems.Name = "tabItems";
+            this.tabItems.Padding = new System.Windows.Forms.Padding(3, 4, 3, 4);
+            this.tabItems.Size = new System.Drawing.Size(920, 479);
+            this.tabItems.TabIndex = 2;
+            this.tabItems.Text = "Items";
+            //
+            // groupBox14
+            //
+            this.groupBox14.Controls.Add(this.cbVerboseRecycling);
+            this.groupBox14.Controls.Add(this.label1);
+            this.groupBox14.Controls.Add(this.tbRecycleInventoryAtUsagePercentage);
+            this.groupBox14.Location = new System.Drawing.Point(9, 296);
+            this.groupBox14.Name = "groupBox14";
+            this.groupBox14.Size = new System.Drawing.Size(311, 81);
+            this.groupBox14.TabIndex = 18;
+            this.groupBox14.TabStop = false;
+            this.groupBox14.Text = "Recycle";
+            //
+            // cbVerboseRecycling
+            //
+            this.cbVerboseRecycling.AutoSize = true;
+            this.cbVerboseRecycling.Location = new System.Drawing.Point(9, 22);
+            this.cbVerboseRecycling.Name = "cbVerboseRecycling";
+            this.cbVerboseRecycling.Size = new System.Drawing.Size(121, 19);
+            this.cbVerboseRecycling.TabIndex = 16;
+            this.cbVerboseRecycling.Text = "Verbose Recycling";
+            this.cbVerboseRecycling.UseVisualStyleBackColor = true;
+            //
+            // label1
+            //
+            this.label1.AutoSize = true;
+            this.label1.Location = new System.Drawing.Point(6, 49);
+            this.label1.Name = "label1";
+            this.label1.Size = new System.Drawing.Size(215, 15);
+            this.label1.TabIndex = 14;
+            this.label1.Text = "Recycle Inventory At Usage Percentage:\r\n";
+            //
+            // tbRecycleInventoryAtUsagePercentage
+            //
+            this.tbRecycleInventoryAtUsagePercentage.Location = new System.Drawing.Point(222, 46);
+            this.tbRecycleInventoryAtUsagePercentage.Margin = new System.Windows.Forms.Padding(3, 5, 3, 5);
+            this.tbRecycleInventoryAtUsagePercentage.Name = "tbRecycleInventoryAtUsagePercentage";
+            this.tbRecycleInventoryAtUsagePercentage.Size = new System.Drawing.Size(83, 23);
+            this.tbRecycleInventoryAtUsagePercentage.TabIndex = 15;
+            //
+            // groupBox13
+            //
+            this.groupBox13.Controls.Add(this.label5);
+            this.groupBox13.Controls.Add(this.tbTotalAmountOfPokeballsToKeep);
+            this.groupBox13.Controls.Add(this.label44);
+            this.groupBox13.Controls.Add(this.tbTotalAmountOfPotionsToKeep);
+            this.groupBox13.Controls.Add(this.label45);
+            this.groupBox13.Controls.Add(this.tbTotalAmountOfRevivesToKeep);
+            this.groupBox13.Controls.Add(this.label46);
+            this.groupBox13.Controls.Add(this.tbTotalAmountOfBerriesToKeep);
+            this.groupBox13.Location = new System.Drawing.Point(9, 139);
+            this.groupBox13.Name = "groupBox13";
+            this.groupBox13.Size = new System.Drawing.Size(311, 151);
+            this.groupBox13.TabIndex = 17;
+            this.groupBox13.TabStop = false;
+            this.groupBox13.Text = "Amount to Keep";
+            //
+            // label5
+            //
+            this.label5.AutoSize = true;
+            this.label5.Location = new System.Drawing.Point(6, 19);
+            this.label5.Name = "label5";
+            this.label5.Size = new System.Drawing.Size(134, 15);
+            this.label5.TabIndex = 14;
+            this.label5.Text = "Total Pokeballs To Keep:";
+            //
+            // tbTotalAmountOfPokeballsToKeep
+            //
+            this.tbTotalAmountOfPokeballsToKeep.Location = new System.Drawing.Point(157, 16);
+            this.tbTotalAmountOfPokeballsToKeep.Margin = new System.Windows.Forms.Padding(3, 5, 3, 5);
+            this.tbTotalAmountOfPokeballsToKeep.Name = "tbTotalAmountOfPokeballsToKeep";
+            this.tbTotalAmountOfPokeballsToKeep.Size = new System.Drawing.Size(148, 23);
+            this.tbTotalAmountOfPokeballsToKeep.TabIndex = 15;
+            //
+            // label44
+            //
+            this.label44.AutoSize = true;
+            this.label44.Location = new System.Drawing.Point(6, 52);
+            this.label44.Name = "label44";
+            this.label44.Size = new System.Drawing.Size(124, 15);
+            this.label44.TabIndex = 14;
+            this.label44.Text = "Total Potions To Keep:\r\n";
+            //
+            // tbTotalAmountOfPotionsToKeep
+            //
+            this.tbTotalAmountOfPotionsToKeep.Location = new System.Drawing.Point(157, 49);
+            this.tbTotalAmountOfPotionsToKeep.Margin = new System.Windows.Forms.Padding(3, 5, 3, 5);
+            this.tbTotalAmountOfPotionsToKeep.Name = "tbTotalAmountOfPotionsToKeep";
+            this.tbTotalAmountOfPotionsToKeep.Size = new System.Drawing.Size(148, 23);
+            this.tbTotalAmountOfPotionsToKeep.TabIndex = 15;
+            //
+            // label45
+            //
+            this.label45.AutoSize = true;
+            this.label45.Location = new System.Drawing.Point(6, 85);
+            this.label45.Name = "label45";
+            this.label45.Size = new System.Drawing.Size(123, 15);
+            this.label45.TabIndex = 14;
+            this.label45.Text = "Total Revives To Keep:";
+            //
+            // tbTotalAmountOfRevivesToKeep
+            //
+            this.tbTotalAmountOfRevivesToKeep.Location = new System.Drawing.Point(157, 82);
+            this.tbTotalAmountOfRevivesToKeep.Margin = new System.Windows.Forms.Padding(3, 5, 3, 5);
+            this.tbTotalAmountOfRevivesToKeep.Name = "tbTotalAmountOfRevivesToKeep";
+            this.tbTotalAmountOfRevivesToKeep.Size = new System.Drawing.Size(148, 23);
+            this.tbTotalAmountOfRevivesToKeep.TabIndex = 15;
+            //
+            // label46
+            //
+            this.label46.AutoSize = true;
+            this.label46.Location = new System.Drawing.Point(6, 118);
+            this.label46.Name = "label46";
+            this.label46.Size = new System.Drawing.Size(119, 15);
+            this.label46.TabIndex = 14;
+            this.label46.Text = "Total Berries To Keep:\r\n";
+            //
+            // tbTotalAmountOfBerriesToKeep
+            //
+            this.tbTotalAmountOfBerriesToKeep.Location = new System.Drawing.Point(157, 115);
+            this.tbTotalAmountOfBerriesToKeep.Margin = new System.Windows.Forms.Padding(3, 5, 3, 5);
+            this.tbTotalAmountOfBerriesToKeep.Name = "tbTotalAmountOfBerriesToKeep";
+            this.tbTotalAmountOfBerriesToKeep.Size = new System.Drawing.Size(148, 23);
+            this.tbTotalAmountOfBerriesToKeep.TabIndex = 15;
+            //
+            // groupBox12
+            //
+            this.groupBox12.Controls.Add(this.cbUseIncenseConstantly);
+            this.groupBox12.Location = new System.Drawing.Point(9, 73);
+            this.groupBox12.Name = "groupBox12";
+            this.groupBox12.Size = new System.Drawing.Size(311, 60);
+            this.groupBox12.TabIndex = 17;
+            this.groupBox12.TabStop = false;
+            this.groupBox12.Text = "Incense";
+            //
+            // cbUseIncenseConstantly
+            //
+            this.cbUseIncenseConstantly.AutoSize = true;
+            this.cbUseIncenseConstantly.Location = new System.Drawing.Point(6, 22);
+            this.cbUseIncenseConstantly.Name = "cbUseIncenseConstantly";
+            this.cbUseIncenseConstantly.Size = new System.Drawing.Size(148, 19);
+            this.cbUseIncenseConstantly.TabIndex = 2;
+            this.cbUseIncenseConstantly.Text = "Use Incense Constantly";
+            this.cbUseIncenseConstantly.UseVisualStyleBackColor = true;
+            //
+            // groupBox11
+            //
+            this.groupBox11.Controls.Add(this.cbUseLuckyEggConstantly);
+            this.groupBox11.Location = new System.Drawing.Point(9, 7);
+            this.groupBox11.Name = "groupBox11";
+            this.groupBox11.Size = new System.Drawing.Size(311, 60);
+            this.groupBox11.TabIndex = 16;
+            this.groupBox11.TabStop = false;
+            this.groupBox11.Text = "Lucky Egg";
+            //
+            // cbUseLuckyEggConstantly
+            //
+            this.cbUseLuckyEggConstantly.AutoSize = true;
+            this.cbUseLuckyEggConstantly.Location = new System.Drawing.Point(6, 22);
+            this.cbUseLuckyEggConstantly.Name = "cbUseLuckyEggConstantly";
+            this.cbUseLuckyEggConstantly.Size = new System.Drawing.Size(162, 19);
+            this.cbUseLuckyEggConstantly.TabIndex = 2;
+            this.cbUseLuckyEggConstantly.Text = "Use Lucky Egg Constantly";
+            this.cbUseLuckyEggConstantly.UseVisualStyleBackColor = true;
+            //
+            // tabAdvSetting
+            //
+            this.tabAdvSetting.BackColor = System.Drawing.SystemColors.Control;
+            this.tabAdvSetting.Controls.Add(this.groupBox18);
+            this.tabAdvSetting.Controls.Add(this.groupBox17);
+            this.tabAdvSetting.Controls.Add(this.groupBox16);
+            this.tabAdvSetting.Controls.Add(this.groupBox15);
+            this.tabAdvSetting.Location = new System.Drawing.Point(4, 24);
+            this.tabAdvSetting.Name = "tabAdvSetting";
+            this.tabAdvSetting.Size = new System.Drawing.Size(920, 479);
+            this.tabAdvSetting.TabIndex = 4;
+            this.tabAdvSetting.Text = "Advanced Settings";
+            //
+            // groupBox18
+            //
+            this.groupBox18.Controls.Add(this.cbEnableHumanizedThrows);
+            this.groupBox18.Controls.Add(this.tbForceExcellentThrowOverCp);
+            this.groupBox18.Controls.Add(this.tbForceGreatThrowOverCp);
+            this.groupBox18.Controls.Add(this.label66);
+            this.groupBox18.Controls.Add(this.label55);
+            this.groupBox18.Controls.Add(this.label60);
+            this.groupBox18.Controls.Add(this.tbForceExcellentThrowOverIv);
+            this.groupBox18.Controls.Add(this.tbNiceThrowChance);
+            this.groupBox18.Controls.Add(this.label61);
+            this.groupBox18.Controls.Add(this.label62);
+            this.groupBox18.Controls.Add(this.tbForceGreatThrowOverIv);
+            this.groupBox18.Controls.Add(this.tbGreatThrowChance);
+            this.groupBox18.Controls.Add(this.label63);
+            this.groupBox18.Controls.Add(this.label64);
+            this.groupBox18.Controls.Add(this.tbCurveThrowChance);
+            this.groupBox18.Controls.Add(this.tbExcellentThrowChance);
+            this.groupBox18.Controls.Add(this.label65);
+            this.groupBox18.Location = new System.Drawing.Point(325, 7);
+            this.groupBox18.Name = "groupBox18";
+            this.groupBox18.Size = new System.Drawing.Size(358, 284);
+            this.groupBox18.TabIndex = 20;
+            this.groupBox18.TabStop = false;
+            this.groupBox18.Text = "Catching Behavior";
+            //
+            // cbEnableHumanizedThrows
+            //
+            this.cbEnableHumanizedThrows.AutoSize = true;
+            this.cbEnableHumanizedThrows.Location = new System.Drawing.Point(9, 23);
+            this.cbEnableHumanizedThrows.Name = "cbEnableHumanizedThrows";
+            this.cbEnableHumanizedThrows.Size = new System.Drawing.Size(167, 19);
+            this.cbEnableHumanizedThrows.TabIndex = 18;
+            this.cbEnableHumanizedThrows.Text = "Enable Humanized Throws";
+            this.cbEnableHumanizedThrows.UseVisualStyleBackColor = true;
+            //
+            // tbForceExcellentThrowOverCp
+            //
+            this.tbForceExcellentThrowOverCp.Location = new System.Drawing.Point(226, 252);
+            this.tbForceExcellentThrowOverCp.Name = "tbForceExcellentThrowOverCp";
+            this.tbForceExcellentThrowOverCp.Size = new System.Drawing.Size(126, 23);
+            this.tbForceExcellentThrowOverCp.TabIndex = 5;
+            //
+            // tbForceGreatThrowOverCp
+            //
+            this.tbForceGreatThrowOverCp.Location = new System.Drawing.Point(226, 223);
+            this.tbForceGreatThrowOverCp.Name = "tbForceGreatThrowOverCp";
+            this.tbForceGreatThrowOverCp.Size = new System.Drawing.Size(126, 23);
+            this.tbForceGreatThrowOverCp.TabIndex = 5;
+            //
+            // label66
+            //
+            this.label66.AutoSize = true;
+            this.label66.Location = new System.Drawing.Point(6, 255);
+            this.label66.Name = "label66";
+            this.label66.Size = new System.Drawing.Size(171, 15);
+            this.label66.TabIndex = 4;
+            this.label66.Text = "Force Excellent Throw Over CP:";
+            //
+            // label55
+            //
+            this.label55.AutoSize = true;
+            this.label55.Location = new System.Drawing.Point(6, 226);
+            this.label55.Name = "label55";
+            this.label55.Size = new System.Drawing.Size(153, 15);
+            this.label55.TabIndex = 4;
+            this.label55.Text = "Force Great Throw Over CP:";
+            //
+            // label60
+            //
+            this.label60.AutoSize = true;
+            this.label60.Location = new System.Drawing.Point(6, 52);
+            this.label60.Name = "label60";
+            this.label60.Size = new System.Drawing.Size(127, 15);
+            this.label60.TabIndex = 4;
+            this.label60.Text = "Nice Throw Chance %:";
+            //
+            // tbForceExcellentThrowOverIv
+            //
+            this.tbForceExcellentThrowOverIv.Location = new System.Drawing.Point(226, 194);
+            this.tbForceExcellentThrowOverIv.Name = "tbForceExcellentThrowOverIv";
+            this.tbForceExcellentThrowOverIv.Size = new System.Drawing.Size(126, 23);
+            this.tbForceExcellentThrowOverIv.TabIndex = 5;
+            //
+            // tbNiceThrowChance
+            //
+            this.tbNiceThrowChance.Location = new System.Drawing.Point(226, 49);
+            this.tbNiceThrowChance.Name = "tbNiceThrowChance";
+            this.tbNiceThrowChance.Size = new System.Drawing.Size(126, 23);
+            this.tbNiceThrowChance.TabIndex = 5;
+            //
+            // label61
+            //
+            this.label61.AutoSize = true;
+            this.label61.Location = new System.Drawing.Point(6, 197);
+            this.label61.Name = "label61";
+            this.label61.Size = new System.Drawing.Size(179, 15);
+            this.label61.TabIndex = 4;
+            this.label61.Text = "Force Excellent Throw Over IV %:";
+            //
+            // label62
+            //
+            this.label62.AutoSize = true;
+            this.label62.Location = new System.Drawing.Point(6, 81);
+            this.label62.Name = "label62";
+            this.label62.Size = new System.Drawing.Size(131, 15);
+            this.label62.TabIndex = 4;
+            this.label62.Text = "Great Throw Chance %:";
+            //
+            // tbForceGreatThrowOverIv
+            //
+            this.tbForceGreatThrowOverIv.Location = new System.Drawing.Point(226, 165);
+            this.tbForceGreatThrowOverIv.Name = "tbForceGreatThrowOverIv";
+            this.tbForceGreatThrowOverIv.Size = new System.Drawing.Size(126, 23);
+            this.tbForceGreatThrowOverIv.TabIndex = 5;
+            //
+            // tbGreatThrowChance
+            //
+            this.tbGreatThrowChance.Location = new System.Drawing.Point(226, 78);
+            this.tbGreatThrowChance.Name = "tbGreatThrowChance";
+            this.tbGreatThrowChance.Size = new System.Drawing.Size(126, 23);
+            this.tbGreatThrowChance.TabIndex = 5;
+            //
+            // label63
+            //
+            this.label63.AutoSize = true;
+            this.label63.Location = new System.Drawing.Point(6, 168);
+            this.label63.Name = "label63";
+            this.label63.Size = new System.Drawing.Size(161, 15);
+            this.label63.TabIndex = 4;
+            this.label63.Text = "Force Great Throw Over IV %:\r\n";
+            //
+            // label64
+            //
+            this.label64.AutoSize = true;
+            this.label64.Location = new System.Drawing.Point(6, 110);
+            this.label64.Name = "label64";
+            this.label64.Size = new System.Drawing.Size(149, 15);
+            this.label64.TabIndex = 4;
+            this.label64.Text = "Excellent Throw Chance %:\r\n";
+            //
+            // tbCurveThrowChance
+            //
+            this.tbCurveThrowChance.Location = new System.Drawing.Point(226, 136);
+            this.tbCurveThrowChance.Name = "tbCurveThrowChance";
+            this.tbCurveThrowChance.Size = new System.Drawing.Size(126, 23);
+            this.tbCurveThrowChance.TabIndex = 5;
+            //
+            // tbExcellentThrowChance
+            //
+            this.tbExcellentThrowChance.Location = new System.Drawing.Point(226, 107);
+            this.tbExcellentThrowChance.Name = "tbExcellentThrowChance";
+            this.tbExcellentThrowChance.Size = new System.Drawing.Size(126, 23);
+            this.tbExcellentThrowChance.TabIndex = 5;
+            //
+            // label65
+            //
+            this.label65.AutoSize = true;
+            this.label65.Location = new System.Drawing.Point(6, 139);
+            this.label65.Name = "label65";
+            this.label65.Size = new System.Drawing.Size(134, 15);
+            this.label65.TabIndex = 4;
+            this.label65.Text = "Curve Throw Chance %:\r\n";
+            //
+            // groupBox17
+            //
+            this.groupBox17.Controls.Add(this.cbRandomizeRecycle);
+            this.groupBox17.Controls.Add(this.label51);
+            this.groupBox17.Controls.Add(this.tbRandomRecycleValue);
+            this.groupBox17.Location = new System.Drawing.Point(8, 283);
+            this.groupBox17.Name = "groupBox17";
+            this.groupBox17.Size = new System.Drawing.Size(311, 85);
+            this.groupBox17.TabIndex = 19;
+            this.groupBox17.TabStop = false;
+            this.groupBox17.Text = "Recycle Behavior";
+            //
+            // cbRandomizeRecycle
+            //
+            this.cbRandomizeRecycle.AutoSize = true;
+            this.cbRandomizeRecycle.Location = new System.Drawing.Point(9, 22);
+            this.cbRandomizeRecycle.Name = "cbRandomizeRecycle";
+            this.cbRandomizeRecycle.Size = new System.Drawing.Size(128, 19);
+            this.cbRandomizeRecycle.TabIndex = 17;
+            this.cbRandomizeRecycle.Text = "Randomize Recycle";
+            this.cbRandomizeRecycle.UseVisualStyleBackColor = true;
+            //
+            // label51
+            //
+            this.label51.AutoSize = true;
+            this.label51.Location = new System.Drawing.Point(6, 49);
+            this.label51.Name = "label51";
+            this.label51.Size = new System.Drawing.Size(129, 15);
+            this.label51.TabIndex = 14;
+            this.label51.Text = "Random Recycle Value:";
+            //
+            // tbRandomRecycleValue
+            //
+            this.tbRandomRecycleValue.Location = new System.Drawing.Point(179, 46);
+            this.tbRandomRecycleValue.Margin = new System.Windows.Forms.Padding(3, 5, 3, 5);
+            this.tbRandomRecycleValue.Name = "tbRandomRecycleValue";
+            this.tbRandomRecycleValue.Size = new System.Drawing.Size(126, 23);
+            this.tbRandomRecycleValue.TabIndex = 15;
+            //
+            // groupBox16
+            //
+            this.groupBox16.Controls.Add(this.cbDisableHumanWalking);
+            this.groupBox16.Controls.Add(this.label57);
+            this.groupBox16.Controls.Add(this.tbWalkingSpeedOffSetInKilometerPerHour);
+            this.groupBox16.Controls.Add(this.label58);
+            this.groupBox16.Controls.Add(this.tbMaxSpawnLocationOffset);
+            this.groupBox16.Controls.Add(this.label59);
+            this.groupBox16.Controls.Add(this.tbMaxTravelDistanceInMeters);
+            this.groupBox16.Location = new System.Drawing.Point(8, 7);
+            this.groupBox16.Name = "groupBox16";
+            this.groupBox16.Size = new System.Drawing.Size(311, 151);
+            this.groupBox16.TabIndex = 19;
+            this.groupBox16.TabStop = false;
+            this.groupBox16.Text = "Walking Behavior";
+            //
+            // cbDisableHumanWalking
+            //
+            this.cbDisableHumanWalking.AutoSize = true;
+            this.cbDisableHumanWalking.Location = new System.Drawing.Point(9, 23);
+            this.cbDisableHumanWalking.Name = "cbDisableHumanWalking";
+            this.cbDisableHumanWalking.Size = new System.Drawing.Size(153, 19);
+            this.cbDisableHumanWalking.TabIndex = 16;
+            this.cbDisableHumanWalking.Text = "Disable Human Walking";
+            this.cbDisableHumanWalking.UseVisualStyleBackColor = true;
+            //
+            // label57
+            //
+            this.label57.AutoSize = true;
+            this.label57.Location = new System.Drawing.Point(6, 52);
+            this.label57.Name = "label57";
+            this.label57.Size = new System.Drawing.Size(167, 15);
+            this.label57.TabIndex = 14;
+            this.label57.Text = "Walking Speed OffSet (KM/H):";
+            //
+            // tbWalkingSpeedOffSetInKilometerPerHour
+            //
+            this.tbWalkingSpeedOffSetInKilometerPerHour.Location = new System.Drawing.Point(179, 49);
+            this.tbWalkingSpeedOffSetInKilometerPerHour.Margin = new System.Windows.Forms.Padding(3, 5, 3, 5);
+            this.tbWalkingSpeedOffSetInKilometerPerHour.Name = "tbWalkingSpeedOffSetInKilometerPerHour";
+            this.tbWalkingSpeedOffSetInKilometerPerHour.Size = new System.Drawing.Size(126, 23);
+            this.tbWalkingSpeedOffSetInKilometerPerHour.TabIndex = 15;
+            //
+            // label58
+            //
+            this.label58.AutoSize = true;
+            this.label58.Location = new System.Drawing.Point(6, 85);
+            this.label58.Name = "label58";
+            this.label58.Size = new System.Drawing.Size(154, 15);
+            this.label58.TabIndex = 14;
+            this.label58.Text = "Max Spawn Location Offset:";
+            //
+            // tbMaxSpawnLocationOffset
+            //
+            this.tbMaxSpawnLocationOffset.Location = new System.Drawing.Point(179, 82);
+            this.tbMaxSpawnLocationOffset.Margin = new System.Windows.Forms.Padding(3, 5, 3, 5);
+            this.tbMaxSpawnLocationOffset.Name = "tbMaxSpawnLocationOffset";
+            this.tbMaxSpawnLocationOffset.Size = new System.Drawing.Size(126, 23);
+            this.tbMaxSpawnLocationOffset.TabIndex = 15;
+            //
+            // label59
+            //
+            this.label59.AutoSize = true;
+            this.label59.Location = new System.Drawing.Point(6, 118);
+            this.label59.Name = "label59";
+            this.label59.Size = new System.Drawing.Size(161, 15);
+            this.label59.TabIndex = 14;
+            this.label59.Text = "Max Travel Distance (Meters):";
+            //
+            // tbMaxTravelDistanceInMeters
+            //
+            this.tbMaxTravelDistanceInMeters.Location = new System.Drawing.Point(179, 115);
+            this.tbMaxTravelDistanceInMeters.Margin = new System.Windows.Forms.Padding(3, 5, 3, 5);
+            this.tbMaxTravelDistanceInMeters.Name = "tbMaxTravelDistanceInMeters";
+            this.tbMaxTravelDistanceInMeters.Size = new System.Drawing.Size(126, 23);
+            this.tbMaxTravelDistanceInMeters.TabIndex = 15;
+            //
+            // groupBox15
+            //
+            this.groupBox15.Controls.Add(this.cbDelayBetweenRecycleActions);
+            this.groupBox15.Controls.Add(this.label49);
+            this.groupBox15.Controls.Add(this.tbDelayBetweenPlayerActions);
+            this.groupBox15.Controls.Add(this.label50);
+            this.groupBox15.Controls.Add(this.tbDelayBetweenPokemonCatch);
+            this.groupBox15.Location = new System.Drawing.Point(8, 164);
+            this.groupBox15.Name = "groupBox15";
+            this.groupBox15.Size = new System.Drawing.Size(311, 113);
+            this.groupBox15.TabIndex = 18;
+            this.groupBox15.TabStop = false;
+            this.groupBox15.Text = "Auction Behavior";
+            //
+            // cbDelayBetweenRecycleActions
+            //
+            this.cbDelayBetweenRecycleActions.AutoSize = true;
+            this.cbDelayBetweenRecycleActions.Location = new System.Drawing.Point(9, 85);
+            this.cbDelayBetweenRecycleActions.Name = "cbDelayBetweenRecycleActions";
+            this.cbDelayBetweenRecycleActions.Size = new System.Drawing.Size(189, 19);
+            this.cbDelayBetweenRecycleActions.TabIndex = 17;
+            this.cbDelayBetweenRecycleActions.Text = "Delay Between Recycle Actions";
+            this.cbDelayBetweenRecycleActions.UseVisualStyleBackColor = true;
+            //
+            // label49
+            //
+            this.label49.AutoSize = true;
+            this.label49.Location = new System.Drawing.Point(6, 24);
+            this.label49.Name = "label49";
+            this.label49.Size = new System.Drawing.Size(157, 15);
+            this.label49.TabIndex = 14;
+            this.label49.Text = "Delay Between Actions (ms):";
+            //
+            // tbDelayBetweenPlayerActions
+            //
+            this.tbDelayBetweenPlayerActions.Location = new System.Drawing.Point(179, 21);
+            this.tbDelayBetweenPlayerActions.Margin = new System.Windows.Forms.Padding(3, 5, 3, 5);
+            this.tbDelayBetweenPlayerActions.Name = "tbDelayBetweenPlayerActions";
+            this.tbDelayBetweenPlayerActions.Size = new System.Drawing.Size(126, 23);
+            this.tbDelayBetweenPlayerActions.TabIndex = 15;
+            //
+            // label50
+            //
+            this.label50.AutoSize = true;
+            this.label50.Location = new System.Drawing.Point(6, 57);
+            this.label50.Name = "label50";
+            this.label50.Size = new System.Drawing.Size(165, 15);
+            this.label50.TabIndex = 14;
+            this.label50.Text = "Delay Between Catching (ms):";
+            //
+            // tbDelayBetweenPokemonCatch
+            //
+            this.tbDelayBetweenPokemonCatch.Location = new System.Drawing.Point(179, 54);
+            this.tbDelayBetweenPokemonCatch.Margin = new System.Windows.Forms.Padding(3, 5, 3, 5);
+            this.tbDelayBetweenPokemonCatch.Name = "tbDelayBetweenPokemonCatch";
+            this.tbDelayBetweenPokemonCatch.Size = new System.Drawing.Size(126, 23);
+            this.tbDelayBetweenPokemonCatch.TabIndex = 15;
+            //
+            // saveBtn
+            //
+            this.saveBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+            this.saveBtn.Location = new System.Drawing.Point(700, 540);
+            this.saveBtn.Margin = new System.Windows.Forms.Padding(3, 5, 3, 5);
+            this.saveBtn.Name = "saveBtn";
+            this.saveBtn.Size = new System.Drawing.Size(104, 32);
+            this.saveBtn.TabIndex = 29;
+            this.saveBtn.Text = "Save";
+            this.saveBtn.UseVisualStyleBackColor = true;
+            this.saveBtn.Click += new System.EventHandler(this.saveBtn_Click);
+            //
+            // SettingsForm
+            //
+            this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(926, 586);
+            this.Controls.Add(this.enableAdvSettingCb);
+            this.Controls.Add(this.cancelBtn);
+            this.Controls.Add(this.tabControl);
+            this.Controls.Add(this.saveBtn);
+            this.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+            this.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
+            this.Name = "SettingsForm";
+            this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
+            this.Text = "Bot Settings";
+            this.Load += new System.EventHandler(this.SettingsForm_Load);
+            this.tabControl.ResumeLayout(false);
+            this.tabAuth.ResumeLayout(false);
+            this.tabAuth.PerformLayout();
+            this.proxyGb.ResumeLayout(false);
+            this.proxyGb.PerformLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.trackBar)).EndInit();
+            this.tabDevice.ResumeLayout(false);
+            this.tabDevice.PerformLayout();
+            this.tabPokemon.ResumeLayout(false);
+            this.tcPokemonDetail.ResumeLayout(false);
+            this.tabCatch.ResumeLayout(false);
+            this.tabCatch.PerformLayout();
+            this.groupBox10.ResumeLayout(false);
+            this.groupBox10.PerformLayout();
+            this.groupBox9.ResumeLayout(false);
+            this.groupBox9.PerformLayout();
+            this.groupBox2.ResumeLayout(false);
+            this.groupBox2.PerformLayout();
+            this.tabTransfer.ResumeLayout(false);
+            this.groupBox1.ResumeLayout(false);
+            this.groupBox1.PerformLayout();
+            this.groupBox8.ResumeLayout(false);
+            this.groupBox8.PerformLayout();
+            this.groupBox7.ResumeLayout(false);
+            this.groupBox7.PerformLayout();
+            this.tabPowerUp.ResumeLayout(false);
+            this.tabPowerUp.PerformLayout();
+            this.groupBox6.ResumeLayout(false);
+            this.groupBox6.PerformLayout();
+            this.groupBox4.ResumeLayout(false);
+            this.groupBox4.PerformLayout();
+            this.tabEvo.ResumeLayout(false);
+            this.tabEvo.PerformLayout();
+            this.groupBox5.ResumeLayout(false);
+            this.groupBox5.PerformLayout();
+            this.groupBox3.ResumeLayout(false);
+            this.groupBox3.PerformLayout();
+            this.tabItems.ResumeLayout(false);
+            this.groupBox14.ResumeLayout(false);
+            this.groupBox14.PerformLayout();
+            this.groupBox13.ResumeLayout(false);
+            this.groupBox13.PerformLayout();
+            this.groupBox12.ResumeLayout(false);
+            this.groupBox12.PerformLayout();
+            this.groupBox11.ResumeLayout(false);
+            this.groupBox11.PerformLayout();
+            this.tabAdvSetting.ResumeLayout(false);
+            this.groupBox18.ResumeLayout(false);
+            this.groupBox18.PerformLayout();
+            this.groupBox17.ResumeLayout(false);
+            this.groupBox17.PerformLayout();
+            this.groupBox16.ResumeLayout(false);
+            this.groupBox16.PerformLayout();
+            this.groupBox15.ResumeLayout(false);
+            this.groupBox15.PerformLayout();
+            this.ResumeLayout(false);
+            this.PerformLayout();
+
+        }
+
+        #endregion
+
+        private System.Windows.Forms.CheckBox enableAdvSettingCb;
+        private System.Windows.Forms.Button cancelBtn;
+        private System.Windows.Forms.TabControl tabControl;
+        private System.Windows.Forms.TabPage tabAuth;
+        private System.Windows.Forms.TextBox tbWalkingSpeed;
+        private System.Windows.Forms.Label TravelSpeedText;
+        private System.Windows.Forms.ComboBox cbLanguage;
+        private System.Windows.Forms.Label label26;
+        private System.Windows.Forms.GroupBox proxyGb;
+        private System.Windows.Forms.TextBox proxyPortTb;
+        private System.Windows.Forms.TextBox proxyUserTb;
+        private System.Windows.Forms.TextBox proxyPwTb;
+        private System.Windows.Forms.Label label24;
+        private System.Windows.Forms.Label label25;
+        private System.Windows.Forms.TextBox proxyHostTb;
+        private System.Windows.Forms.CheckBox useProxyAuthCb;
+        private System.Windows.Forms.Label label19;
+        private System.Windows.Forms.CheckBox useProxyCb;
+        private System.Windows.Forms.Label label23;
+        private System.Windows.Forms.Button ResetLocationBtn;
+        private System.Windows.Forms.TrackBar trackBar;
+        private System.Windows.Forms.TextBox AdressBox;
+        private System.Windows.Forms.Button FindAdressBtn;
+        private GMap.NET.WindowsForms.GMapControl gMapCtrl;
+        private System.Windows.Forms.TextBox UserLoginBox;
+        private System.Windows.Forms.TextBox UserPasswordBox;
+        private System.Windows.Forms.TextBox tbLatitude;
+        private System.Windows.Forms.TextBox tbLongitude;
+        private System.Windows.Forms.Label authTypeLabel;
+        private System.Windows.Forms.Label longiLabel;
+        private System.Windows.Forms.ComboBox authTypeCb;
+        private System.Windows.Forms.Label latLabel;
+        private System.Windows.Forms.Label UserLabel;
+        private System.Windows.Forms.Label PasswordLabel;
+        private System.Windows.Forms.TabPage tabDevice;
+        private System.Windows.Forms.Label label22;
+        private System.Windows.Forms.Label label20;
+        private System.Windows.Forms.Label label21;
+        private System.Windows.Forms.Button RandomIDBtn;
+        private System.Windows.Forms.ComboBox deviceTypeCb;
+        private System.Windows.Forms.Button RandomDeviceBtn;
+        private System.Windows.Forms.TextBox FirmwareFingerprintTb;
+        private System.Windows.Forms.Label label14;
+        private System.Windows.Forms.TextBox FirmwareTypeTb;
+        private System.Windows.Forms.Label label13;
+        private System.Windows.Forms.TextBox FirmwareTagsTb;
+        private System.Windows.Forms.Label label12;
+        private System.Windows.Forms.TextBox FirmwareBrandTb;
+        private System.Windows.Forms.Label label11;
+        private System.Windows.Forms.TextBox HardwareModelTb;
+        private System.Windows.Forms.Label label10;
+        private System.Windows.Forms.TextBox HardwareManufacturerTb;
+        private System.Windows.Forms.Label label9;
+        private System.Windows.Forms.TextBox DeviceModelBootTb;
+        private System.Windows.Forms.Label label8;
+        private System.Windows.Forms.TextBox DeviceModelIdentifierTb;
+        private System.Windows.Forms.Label label7;
+        private System.Windows.Forms.TextBox DeviceModelTb;
+        private System.Windows.Forms.Label label15;
+        private System.Windows.Forms.TextBox DeviceBrandTb;
+        private System.Windows.Forms.Label label16;
+        private System.Windows.Forms.TextBox AndroidBootloaderTb;
+        private System.Windows.Forms.Label label17;
+        private System.Windows.Forms.TextBox AndroidBoardNameTb;
+        private System.Windows.Forms.Label BoardName;
+        private System.Windows.Forms.TextBox DeviceIdTb;
+        private System.Windows.Forms.Label deviceIdlb;
+        private System.Windows.Forms.Label label18;
+        private System.Windows.Forms.TabPage tabPokemon;
+        private System.Windows.Forms.TabControl tcPokemonDetail;
+        private System.Windows.Forms.TabPage tabCatch;
+        private System.Windows.Forms.Label label47;
+        private System.Windows.Forms.CheckBox cbAutoFavoritePokemon;
+        private System.Windows.Forms.TextBox tbFavoriteMinIvPercentage;
+        private System.Windows.Forms.GroupBox groupBox10;
+        private System.Windows.Forms.ComboBox cbUseBerriesOperator;
+        private System.Windows.Forms.Label label52;
+        private System.Windows.Forms.TextBox tbUseBerriesMinCp;
+        private System.Windows.Forms.Label label54;
+        private System.Windows.Forms.TextBox tbUseBerriesMinIv;
+        private System.Windows.Forms.Label label56;
+        private System.Windows.Forms.TextBox tbUseBerriesBelowCatchProbability;
+        private System.Windows.Forms.TextBox tbMaxPokeballsPerPokemon;
+        private System.Windows.Forms.Label label43;
+        private System.Windows.Forms.GroupBox groupBox9;
+        private System.Windows.Forms.Label label2;
+        private System.Windows.Forms.TextBox tbUseMasterBallBelowCatchProbability;
+        private System.Windows.Forms.TextBox tbUseGreatBallAboveCp;
+        private System.Windows.Forms.Label label42;
+        private System.Windows.Forms.Label label3;
+        private System.Windows.Forms.TextBox tbUseUltraBallBelowCatchProbability;
+        private System.Windows.Forms.TextBox tbUseUltraBallAboveCp;
+        private System.Windows.Forms.Label label41;
+        private System.Windows.Forms.Label label4;
+        private System.Windows.Forms.TextBox tbUseGreatBallBelowCatchProbability;
+        private System.Windows.Forms.TextBox tbUseMasterBallAboveCp;
+        private System.Windows.Forms.Label label40;
+        private System.Windows.Forms.Label label6;
+        private System.Windows.Forms.TextBox tbUseUltraBallAboveIv;
+        private System.Windows.Forms.TextBox tbUseGreatBallAboveIv;
+        private System.Windows.Forms.Label label36;
+        private System.Windows.Forms.GroupBox groupBox2;
+        private System.Windows.Forms.CheckBox cbIgnoreAll;
+        private System.Windows.Forms.CheckedListBox clbIgnore;
+        private System.Windows.Forms.TextBox tBMaxBerriesToUsePerPokemon;
+        private System.Windows.Forms.Label label27;
+        private System.Windows.Forms.CheckBox cbUseEggIncubators;
+        private System.Windows.Forms.CheckBox cbCatchPoke;
+        private System.Windows.Forms.TabPage tabTransfer;
+        private System.Windows.Forms.GroupBox groupBox1;
+        private System.Windows.Forms.CheckBox cbNotTransferAll;
+        private System.Windows.Forms.CheckedListBox clbTransfer;
+        private System.Windows.Forms.GroupBox groupBox8;
+        private System.Windows.Forms.CheckBox cbUseKeepMinLvl;
+        private System.Windows.Forms.Label label37;
+        private System.Windows.Forms.TextBox tbKeepMinLvl;
+        private System.Windows.Forms.GroupBox groupBox7;
+        private System.Windows.Forms.CheckBox cbTransferDuplicatePokemonOnCapture;
+        private System.Windows.Forms.CheckBox cbTransferDuplicatePokemon;
+        private System.Windows.Forms.CheckBox cbTransferWeakPokemon;
+        private System.Windows.Forms.TextBox tbKeepMinDuplicatePokemon;
+        private System.Windows.Forms.Label label35;
+        private System.Windows.Forms.CheckBox cbPrioritizeIvOverCp;
+        private System.Windows.Forms.TextBox tbKeepMinIV;
+        private System.Windows.Forms.ComboBox cbKeepMinOperator;
+        private System.Windows.Forms.TextBox tbKeepMinCp;
+        private System.Windows.Forms.Label label38;
+        private System.Windows.Forms.Label label39;
+        private System.Windows.Forms.TabPage tabPowerUp;
+        private System.Windows.Forms.CheckBox cbPowerUpFav;
+        private System.Windows.Forms.GroupBox groupBox6;
+        private System.Windows.Forms.TextBox tbPowerUpMinIV;
+        private System.Windows.Forms.ComboBox cbPowerUpCondiction;
+        private System.Windows.Forms.TextBox tbPowerUpMinCP;
+        private System.Windows.Forms.Label label31;
+        private System.Windows.Forms.Label label30;
+        private System.Windows.Forms.ComboBox cbPowerUpMinStarDust;
+        private System.Windows.Forms.Label label28;
+        private System.Windows.Forms.ComboBox cbPowerUpType;
+        private System.Windows.Forms.Label label29;
+        private System.Windows.Forms.GroupBox groupBox4;
+        private System.Windows.Forms.CheckBox cbPowerUpAll;
+        private System.Windows.Forms.CheckedListBox clbPowerUp;
+        private System.Windows.Forms.CheckBox cbAutoPowerUp;
+        private System.Windows.Forms.TabPage tabEvo;
+        private System.Windows.Forms.Label label53;
+        private System.Windows.Forms.TextBox tbUseLuckyEggsMinPokemonAmount;
+        private System.Windows.Forms.CheckBox cbUseLuckyEggsWhileEvolving;
+        private System.Windows.Forms.GroupBox groupBox5;
+        private System.Windows.Forms.Label label34;
+        private System.Windows.Forms.TextBox tbEvoAboveIV;
+        private System.Windows.Forms.CheckBox cbEvoAllAboveIV;
+        private System.Windows.Forms.Label label32;
+        private System.Windows.Forms.CheckBox cbEvolveAllPokemonWithEnoughCandy;
+        private System.Windows.Forms.Label label33;
+        private System.Windows.Forms.TextBox tbEvolveKeptPokemonsAtStorageUsagePercentage;
+        private System.Windows.Forms.CheckBox cbKeepPokemonsThatCanEvolve;
+        private System.Windows.Forms.GroupBox groupBox3;
+        private System.Windows.Forms.CheckBox cbEvolveAll;
+        private System.Windows.Forms.CheckedListBox clbEvolve;
+        private System.Windows.Forms.TabPage tabItems;
+        private System.Windows.Forms.GroupBox groupBox13;
+        private System.Windows.Forms.Label label5;
+        private System.Windows.Forms.TextBox tbTotalAmountOfPokeballsToKeep;
+        private System.Windows.Forms.Label label44;
+        private System.Windows.Forms.TextBox tbTotalAmountOfPotionsToKeep;
+        private System.Windows.Forms.Label label45;
+        private System.Windows.Forms.TextBox tbTotalAmountOfRevivesToKeep;
+        private System.Windows.Forms.Label label46;
+        private System.Windows.Forms.TextBox tbTotalAmountOfBerriesToKeep;
+        private System.Windows.Forms.GroupBox groupBox12;
+        private System.Windows.Forms.CheckBox cbUseIncenseConstantly;
+        private System.Windows.Forms.GroupBox groupBox11;
+        private System.Windows.Forms.CheckBox cbUseLuckyEggConstantly;
+        private System.Windows.Forms.TabPage tabAdvSetting;
+        private System.Windows.Forms.Button saveBtn;
+        private System.Windows.Forms.GroupBox groupBox14;
+        private System.Windows.Forms.CheckBox cbVerboseRecycling;
+        private System.Windows.Forms.Label label1;
+        private System.Windows.Forms.TextBox tbRecycleInventoryAtUsagePercentage;
+        private System.Windows.Forms.GroupBox groupBox16;
+        private System.Windows.Forms.CheckBox cbDisableHumanWalking;
+        private System.Windows.Forms.Label label57;
+        private System.Windows.Forms.TextBox tbWalkingSpeedOffSetInKilometerPerHour;
+        private System.Windows.Forms.Label label58;
+        private System.Windows.Forms.TextBox tbMaxSpawnLocationOffset;
+        private System.Windows.Forms.Label label59;
+        private System.Windows.Forms.TextBox tbMaxTravelDistanceInMeters;
+        private System.Windows.Forms.GroupBox groupBox15;
+        private System.Windows.Forms.Label label49;
+        private System.Windows.Forms.TextBox tbDelayBetweenPlayerActions;
+        private System.Windows.Forms.Label label50;
+        private System.Windows.Forms.TextBox tbDelayBetweenPokemonCatch;
+        private System.Windows.Forms.CheckBox cbDelayBetweenRecycleActions;
+        private System.Windows.Forms.GroupBox groupBox17;
+        private System.Windows.Forms.CheckBox cbRandomizeRecycle;
+        private System.Windows.Forms.Label label51;
+        private System.Windows.Forms.TextBox tbRandomRecycleValue;
+        private System.Windows.Forms.GroupBox groupBox18;
+        private System.Windows.Forms.CheckBox cbEnableHumanizedThrows;
+        private System.Windows.Forms.TextBox tbForceExcellentThrowOverCp;
+        private System.Windows.Forms.TextBox tbForceGreatThrowOverCp;
+        private System.Windows.Forms.Label label66;
+        private System.Windows.Forms.Label label55;
+        private System.Windows.Forms.Label label60;
+        private System.Windows.Forms.TextBox tbForceExcellentThrowOverIv;
+        private System.Windows.Forms.TextBox tbNiceThrowChance;
+        private System.Windows.Forms.Label label61;
+        private System.Windows.Forms.Label label62;
+        private System.Windows.Forms.TextBox tbForceGreatThrowOverIv;
+        private System.Windows.Forms.TextBox tbGreatThrowChance;
+        private System.Windows.Forms.Label label63;
+        private System.Windows.Forms.Label label64;
+        private System.Windows.Forms.TextBox tbCurveThrowChance;
+        private System.Windows.Forms.TextBox tbExcellentThrowChance;
+        private System.Windows.Forms.Label label65;
+    }
+}
\ No newline at end of file
diff --git a/PokemonGo.RocketBot.Window/Forms/SettingForm.cs b/PokemonGo.RocketBot.Window/Forms/SettingForm.cs
new file mode 100644
index 0000000..61a6747
--- /dev/null
+++ b/PokemonGo.RocketBot.Window/Forms/SettingForm.cs
@@ -0,0 +1,709 @@
+using System;
+using System.Collections.Generic;
+using System.Diagnostics.Eventing.Reader;
+using System.Drawing;
+using System.Globalization;
+using System.IO;
+using System.Linq;
+using System.Windows.Forms;
+using GMap.NET;
+using GMap.NET.MapProviders;
+using PokemonGo.RocketAPI.Enums;
+using PokemonGo.RocketBot.Logic;
+using PokemonGo.RocketBot.Window.Helpers;
+using POGOProtos.Enums;
+
+namespace PokemonGo.RocketBot.Window.Forms
+{
+    internal partial class SettingsForm : Form
+    {
+        private readonly GlobalSettings _setting;
+        private readonly DeviceHelper _deviceHelper;
+        private readonly List<DeviceInfo> _deviceInfos;
+        private TabPage _tabAdvSettingTab;
+
+        private static readonly string ConfigFolderPath = Path.Combine(Directory.GetCurrentDirectory(), "Config");
+        private static readonly string AuthFilePath = Path.Combine(ConfigFolderPath, "auth.json");
+        private static readonly string ConfigFilePath = Path.Combine(ConfigFolderPath, "config.json");
+        private static readonly string LanguagePath = Path.Combine(ConfigFolderPath, "Translations");
+        private const int DefaultZoomLevel = 15;
+
+        public SettingsForm(ref GlobalSettings settings)
+        {
+            InitializeComponent();
+            _setting = settings;
+
+            _deviceHelper = new DeviceHelper();
+            _deviceInfos = _deviceHelper.DeviceBucket;
+
+            foreach (var pokemon in Enum.GetValues(typeof(PokemonId)).Cast<PokemonId>().Where(id => id != PokemonId.Missingno))
+            {
+                clbIgnore.Items.Add(pokemon);
+                clbTransfer.Items.Add(pokemon);
+                clbPowerUp.Items.Add(pokemon);
+                clbEvolve.Items.Add(pokemon);
+            }
+        }
+
+        private void SettingsForm_Load(object sender, EventArgs e)
+        {
+            GetLanguageList();
+
+            #region Advanced Setting Init
+            //proxy
+            proxyGb.Visible = _setting.EnableAdvancedSettings;
+            //advanced tab
+            _tabAdvSettingTab = tabAdvSetting;
+            enableAdvSettingCb.Checked = _setting.EnableAdvancedSettings;
+            if (!enableAdvSettingCb.Checked)
+            {
+                tabControl.TabPages.Remove(_tabAdvSettingTab);
+            }
+            else
+            {
+                _tabAdvSettingTab.Enabled = true;
+            }
+
+            #endregion
+
+            #region Login Type and info
+            authTypeCb.Text = _setting.Auth.AuthType.ToString();
+            UserLoginBox.Text = _setting.Auth.AuthType == AuthType.Google ? _setting.Auth.GoogleUsername : _setting.Auth.PtcUsername;
+            UserPasswordBox.Text = _setting.Auth.AuthType == AuthType.Google ? _setting.Auth.GooglePassword : _setting.Auth.PtcPassword;
+
+            //proxy
+            useProxyCb.Checked = _setting.Auth.UseProxy;
+            useProxyAuthCb.Checked = _setting.Auth.UseProxy && _setting.Auth.UseProxyAuthentication;
+            ToggleProxyCtrls();
+            #endregion
+
+            #region Map Info
+            //use google provider
+            gMapCtrl.MapProvider = GoogleMapProvider.Instance;
+            //get tiles from server only
+            gMapCtrl.Manager.Mode = AccessMode.ServerOnly;
+            //not use proxy
+            GMapProvider.WebProxy = null;
+            //center map on moscow
+            gMapCtrl.Position = new PointLatLng(_setting.DefaultLatitude, _setting.DefaultLongitude);
+            //zoom min/max; default both = 2
+            gMapCtrl.DragButton = MouseButtons.Left;
+            gMapCtrl.CenterPen = new Pen(Color.Red, 2);
+            gMapCtrl.MinZoom = trackBar.Maximum = 2;
+            gMapCtrl.MaxZoom = trackBar.Maximum = 18;
+            trackBar.Value = DefaultZoomLevel;
+            //set zoom
+            gMapCtrl.Zoom = trackBar.Value;
+            //disable map focus
+            gMapCtrl.DisableFocusOnMouseEnter = true;
+
+            tbWalkingSpeed.Text = _setting.WalkingSpeedInKilometerPerHour.ToString(CultureInfo.InvariantCulture);
+            #endregion
+
+            #region Device Info
+            //by default, select one from Necro's device dictionary
+            DeviceIdTb.Text = _setting.Auth.DeviceId;
+            AndroidBoardNameTb.Text = _setting.Auth.AndroidBoardName;
+            AndroidBootloaderTb.Text = _setting.Auth.AndroidBootloader;
+            DeviceBrandTb.Text = _setting.Auth.DeviceBrand;
+            DeviceModelTb.Text = _setting.Auth.DeviceModel;
+            DeviceModelIdentifierTb.Text = _setting.Auth.DeviceModelIdentifier;
+            DeviceModelBootTb.Text = _setting.Auth.DeviceModelBoot;
+            HardwareManufacturerTb.Text = _setting.Auth.HardwareManufacturer;
+            HardwareModelTb.Text = _setting.Auth.HardwareModel;
+            FirmwareBrandTb.Text = _setting.Auth.FirmwareBrand;
+            FirmwareTagsTb.Text = _setting.Auth.FirmwareTags;
+            FirmwareTypeTb.Text = _setting.Auth.FirmwareType;
+            FirmwareFingerprintTb.Text = _setting.Auth.FirmwareFingerprint;
+            deviceTypeCb.SelectedIndex = _setting.Auth.DeviceBrand.ToLower() == "apple" ? 0 : 1;
+            #endregion
+
+            #region Pokemon Info
+
+            #region Catch
+
+            cbCatchPoke.Checked = _setting.CatchPokemon;
+            cbUseEggIncubators.Checked = _setting.UseEggIncubators;
+            tBMaxBerriesToUsePerPokemon.Text = _setting.MaxBerriesToUsePerPokemon.ToString();
+            tbMaxPokeballsPerPokemon.Text = _setting.MaxPokeballsPerPokemon.ToString();
+            cbAutoFavoritePokemon.Checked = _setting.AutoFavoritePokemon;
+            tbFavoriteMinIvPercentage.Text = _setting.FavoriteMinIvPercentage.ToString(CultureInfo.InvariantCulture);
+
+            tbUseBerriesMinCp.Text = _setting.UseBerriesMinCp.ToString();
+            tbUseBerriesMinIv.Text = _setting.UseBerriesMinIv.ToString(CultureInfo.InvariantCulture);
+            tbUseBerriesBelowCatchProbability.Text = _setting.UseBerriesBelowCatchProbability.ToString(CultureInfo.InvariantCulture);
+            cbUseBerriesOperator.SelectedIndex = _setting.UseBerriesOperator == "and" ? 0 : 1;
+
+            tbUseGreatBallAboveCp.Text = _setting.UseGreatBallAboveCp.ToString();
+            tbUseUltraBallAboveCp.Text = _setting.UseUltraBallAboveCp.ToString();
+            tbUseMasterBallAboveCp.Text = _setting.UseMasterBallAboveCp.ToString();
+            tbUseGreatBallAboveIv.Text = _setting.UseGreatBallAboveIv.ToString(CultureInfo.InvariantCulture);
+            tbUseUltraBallAboveIv.Text = _setting.UseUltraBallAboveIv.ToString(CultureInfo.InvariantCulture);
+            tbUseGreatBallBelowCatchProbability.Text = _setting.UseGreatBallBelowCatchProbability.ToString(CultureInfo.InvariantCulture);
+            tbUseUltraBallBelowCatchProbability.Text = _setting.UseUltraBallBelowCatchProbability.ToString(CultureInfo.InvariantCulture);
+            tbUseMasterBallBelowCatchProbability.Text = _setting.UseMasterBallBelowCatchProbability.ToString(CultureInfo.InvariantCulture);
+
+            foreach (var poke in _setting.PokemonsToIgnore)
+            {
+                clbIgnore.SetItemChecked(clbIgnore.FindStringExact(poke.ToString()), true);
+            }
+            #endregion
+
+            #region Transfer
+
+            cbPrioritizeIvOverCp.Checked = _setting.PrioritizeIvOverCp;
+            tbKeepMinCp.Text = _setting.KeepMinCp.ToString();
+            tbKeepMinIV.Text = _setting.KeepMinIvPercentage.ToString(CultureInfo.InvariantCulture);
+            tbKeepMinLvl.Text = _setting.KeepMinLvl.ToString();
+            cbKeepMinOperator.SelectedIndex = _setting.KeepMinOperator.ToLowerInvariant() == "and" ? 0 : 1;
+            cbTransferWeakPokemon.Checked = _setting.TransferWeakPokemon;
+            cbTransferDuplicatePokemon.Checked = _setting.TransferDuplicatePokemon;
+            cbTransferDuplicatePokemonOnCapture.Checked = _setting.TransferDuplicatePokemonOnCapture;
+
+            tbKeepMinDuplicatePokemon.Text = _setting.KeepMinDuplicatePokemon.ToString();
+            cbUseKeepMinLvl.Checked = _setting.UseKeepMinLvl;
+            foreach (var poke in _setting.PokemonsNotToTransfer)
+            {
+                clbTransfer.SetItemChecked(clbTransfer.FindStringExact(poke.ToString()), true);
+            }
+            #endregion
+
+            #region Powerup
+            //focuse to use filter list
+            _setting.UseLevelUpList = true;
+
+            cbAutoPowerUp.Checked = _setting.AutomaticallyLevelUpPokemon;
+            cbPowerUpFav.Checked = _setting.OnlyUpgradeFavorites;
+            cbPowerUpType.SelectedIndex = _setting.LevelUpByCPorIv == "iv" ? 0 : 1;
+            cbPowerUpCondiction.SelectedIndex = _setting.UpgradePokemonMinimumStatsOperator == "and" ? 0 : 1;
+            cbPowerUpMinStarDust.Text = _setting.GetMinStarDustForLevelUp.ToString();
+            tbPowerUpMinIV.Text = _setting.UpgradePokemonIvMinimum.ToString(CultureInfo.InvariantCulture);
+            tbPowerUpMinCP.Text = _setting.UpgradePokemonCpMinimum.ToString(CultureInfo.InvariantCulture);
+            foreach (var poke in _setting.PokemonsToLevelUp)
+            {
+                clbPowerUp.SetItemChecked(clbPowerUp.FindStringExact(poke.ToString()), true);
+            }
+            if (_setting.LevelUpByCPorIv == "iv")
+            {
+                label31.Visible = true;
+                tbPowerUpMinIV.Visible = true;
+                label30.Visible = false;
+                tbPowerUpMinCP.Visible = false;
+            }
+            else
+            {
+                label31.Visible = false;
+                tbPowerUpMinIV.Visible = false;
+                label30.Visible = true;
+                tbPowerUpMinCP.Visible = true;
+            }
+            #endregion
+
+            #region Evo
+
+            cbEvoAllAboveIV.Checked = _setting.EvolveAllPokemonAboveIv;
+            tbEvoAboveIV.Text = _setting.EvolveAboveIvValue.ToString(CultureInfo.InvariantCulture);
+            cbEvolveAllPokemonWithEnoughCandy.Checked = _setting.EvolveAllPokemonWithEnoughCandy;
+            cbKeepPokemonsThatCanEvolve.Checked = _setting.KeepPokemonsThatCanEvolve;
+            tbEvolveKeptPokemonsAtStorageUsagePercentage.Text = _setting.EvolveKeptPokemonsAtStorageUsagePercentage.ToString(CultureInfo.InvariantCulture);
+            cbUseLuckyEggsWhileEvolving.Checked = _setting.UseLuckyEggsWhileEvolving;
+            tbUseLuckyEggsMinPokemonAmount.Text = _setting.UseLuckyEggsMinPokemonAmount.ToString();
+            foreach (var poke in _setting.PokemonsToEvolve)
+            {
+                clbEvolve.SetItemChecked(clbEvolve.FindStringExact(poke.ToString()), true);
+            }
+            #endregion
+
+            #endregion
+
+            #region Item Info
+            cbUseLuckyEggConstantly.Checked = _setting.UseLuckyEggConstantly;
+            cbUseIncenseConstantly.Checked = _setting.UseIncenseConstantly;
+            tbTotalAmountOfPokeballsToKeep.Text = _setting.TotalAmountOfPokeballsToKeep.ToString();
+            tbTotalAmountOfPotionsToKeep.Text = _setting.TotalAmountOfPotionsToKeep.ToString();
+            tbTotalAmountOfRevivesToKeep.Text = _setting.TotalAmountOfRevivesToKeep.ToString();
+            tbTotalAmountOfBerriesToKeep.Text = _setting.TotalAmountOfBerriesToKeep.ToString();
+            cbVerboseRecycling.Checked = _setting.VerboseRecycling;
+            tbRecycleInventoryAtUsagePercentage.Text = _setting.RecycleInventoryAtUsagePercentage.ToString(CultureInfo.InvariantCulture);
+
+            #endregion
+
+            #region Advance Settings
+
+            cbDisableHumanWalking.Checked = _setting.DisableHumanWalking;
+            tbWalkingSpeedOffSetInKilometerPerHour.Text = _setting.WalkingSpeedOffSetInKilometerPerHour.ToString(CultureInfo.InvariantCulture);
+            tbMaxSpawnLocationOffset.Text = _setting.MaxSpawnLocationOffset.ToString();
+            tbMaxTravelDistanceInMeters.Text = _setting.MaxTravelDistanceInMeters.ToString();
+
+            tbDelayBetweenPlayerActions.Text = _setting.DelayBetweenPlayerActions.ToString();
+            tbDelayBetweenPokemonCatch.Text = _setting.DelayBetweenPokemonCatch.ToString();
+            cbDelayBetweenRecycleActions.Checked = _setting.DelayBetweenRecycleActions;
+
+            cbRandomizeRecycle.Checked = _setting.RandomizeRecycle;
+            tbRandomRecycleValue.Text = _setting.RandomRecycleValue.ToString();
+
+            cbEnableHumanizedThrows.Checked = _setting.EnableHumanizedThrows;
+            tbNiceThrowChance.Text = _setting.NiceThrowChance.ToString();
+            tbGreatThrowChance.Text = _setting.GreatThrowChance.ToString();
+            tbExcellentThrowChance.Text = _setting.ExcellentThrowChance.ToString();
+            tbCurveThrowChance.Text = _setting.CurveThrowChance.ToString();
+            tbForceGreatThrowOverIv.Text = _setting.ForceGreatThrowOverIv.ToString(CultureInfo.InvariantCulture);
+            tbForceExcellentThrowOverIv.Text = _setting.ForceExcellentThrowOverIv.ToString(CultureInfo.InvariantCulture);
+            tbForceGreatThrowOverCp.Text = _setting.ForceGreatThrowOverCp.ToString();
+            tbForceExcellentThrowOverCp.Text = _setting.ForceExcellentThrowOverCp.ToString();
+
+            #endregion
+        }
+
+        #region private methods
+        private static int ConvertStringToInt(string input)
+        {
+            int output = 0;
+            int.TryParse(input, out output);
+            return output;
+        }
+
+        private static float ConvertStringToFloat(string input)
+        {
+            float output = 0;
+            float.TryParse(input, out output);
+            return output;
+        }
+
+        private static double ConvertStringToDouble(string input)
+        {
+            double output = 0;
+            double.TryParse(input, out output);
+            return output;
+        }
+
+        private static List<PokemonId> ConvertClbToList(CheckedListBox input)
+        {
+            return input.CheckedItems.Cast<PokemonId>().ToList();
+        }
+
+        /// <summary>
+        /// Get languale list from Translations folder and populate it to combo box
+        /// </summary>
+        private void GetLanguageList()
+        {
+            var languages = new List<string> { "en" };
+            var langFiles = Directory.GetFiles(LanguagePath, "*.json", SearchOption.TopDirectoryOnly);
+            languages.AddRange(langFiles.Select(langFileName => Path.GetFileNameWithoutExtension(langFileName)?.Replace("translation.", ""))
+                     .Where(langCode => langCode != "en"));
+            cbLanguage.DataSource = languages;
+        }
+
+        /// <summary>
+        /// Update location lat and lon to textboxes
+        /// </summary>
+        private void UpdateLocationInfo()
+        {
+            //not rounding it, need to have correct position to prevent map drifting
+            tbLatitude.Text = gMapCtrl.Position.Lat.ToString(CultureInfo.InvariantCulture);
+            tbLongitude.Text = gMapCtrl.Position.Lng.ToString(CultureInfo.InvariantCulture);
+            //update trackbar
+            trackBar.Value = (int)Math.Round(gMapCtrl.Zoom);
+        }
+
+        /// <summary>
+        /// Update map location base on giving lng and lat
+        /// </summary>
+        /// <param name="lng"></param>
+        /// <param name="lat"></param>
+        private void UpdateMapLocation(double lat, double lng)
+        {
+            gMapCtrl.Position = new PointLatLng(lat, lng);
+        }
+
+        private void ToggleProxyCtrls()
+        {
+            if (useProxyCb.Checked)
+            {
+                proxyHostTb.Enabled = true;
+                proxyHostTb.Text = _setting.Auth.UseProxyHost;
+                proxyPortTb.Enabled = true;
+                proxyPortTb.Text = _setting.Auth.UseProxyPort;
+                useProxyAuthCb.Enabled = true;
+            }
+            else
+            {
+                proxyHostTb.Enabled = false;
+                proxyHostTb.Text = _setting.Auth.UseProxyHost = "";
+                proxyPortTb.Enabled = false;
+                proxyPortTb.Text = _setting.Auth.UseProxyPort = "";
+                useProxyAuthCb.Enabled = false;
+            }
+            if (useProxyAuthCb.Checked)
+            {
+                proxyUserTb.Enabled = true;
+                proxyUserTb.Text = _setting.Auth.UseProxyUsername;
+                proxyPwTb.Enabled = true;
+                proxyPwTb.Text = _setting.Auth.UseProxyPassword;
+            }
+            else
+            {
+                proxyUserTb.Enabled = false;
+                proxyUserTb.Text = _setting.Auth.UseProxyUsername = "";
+                proxyPwTb.Enabled = false;
+                proxyPwTb.Text = _setting.Auth.UseProxyPassword = "";
+            }
+        }
+
+        private void PopulateDevice(int tabIndex = -1)
+        {
+            deviceTypeCb.SelectedIndex = tabIndex == -1 ? _deviceHelper.GetRandomIndex(2) : tabIndex;
+            var candidateDevices = deviceTypeCb.SelectedIndex == 0
+                ? _deviceInfos.Where(d => d.DeviceBrand.ToLower() == "apple").ToList()
+                : _deviceInfos.Where(d => d.DeviceBrand.ToLower() != "apple").ToList();
+            var selectIndex = _deviceHelper.GetRandomIndex(candidateDevices.Count);
+
+            DeviceIdTb.Text = candidateDevices[selectIndex].DeviceId == "8525f6d8251f71b7"
+                ? _deviceHelper.RandomString(16, "0123456789abcdef")
+                : candidateDevices[selectIndex].DeviceId;
+            AndroidBoardNameTb.Text = candidateDevices[selectIndex].AndroidBoardName;
+            AndroidBootloaderTb.Text = candidateDevices[selectIndex].AndroidBootloader;
+            DeviceBrandTb.Text = candidateDevices[selectIndex].DeviceBrand;
+            DeviceModelTb.Text = candidateDevices[selectIndex].DeviceModel;
+            DeviceModelIdentifierTb.Text = candidateDevices[selectIndex].DeviceModelIdentifier;
+            DeviceModelBootTb.Text = candidateDevices[selectIndex].DeviceModelBoot;
+            HardwareManufacturerTb.Text = candidateDevices[selectIndex].HardwareManufacturer;
+            HardwareModelTb.Text = candidateDevices[selectIndex].HardwareModel;
+            FirmwareBrandTb.Text = candidateDevices[selectIndex].FirmwareBrand;
+            FirmwareTagsTb.Text = candidateDevices[selectIndex].FirmwareTags;
+            FirmwareTypeTb.Text = candidateDevices[selectIndex].FirmwareType;
+            FirmwareFingerprintTb.Text = candidateDevices[selectIndex].FirmwareFingerprint;
+        }
+
+        private static void ListSelectAllHandler(CheckedListBox targetList, bool setToValue)
+        {
+            for (int index = 0; index < targetList.Items.Count; index++)
+            {
+                targetList.SetItemChecked(index, setToValue);
+            }
+        }
+        #endregion
+
+        #region Events
+        private void saveBtn_Click(object sender, EventArgs e)
+        {
+            #region Auth Settings
+            _setting.Auth.AuthType = authTypeCb.Text == @"Google" ? AuthType.Google : AuthType.Ptc;
+            if (_setting.Auth.AuthType == AuthType.Google)
+            {
+                _setting.Auth.GoogleUsername = UserLoginBox.Text;
+                _setting.Auth.GooglePassword = UserPasswordBox.Text;
+                _setting.Auth.PtcUsername = "";
+                _setting.Auth.PtcPassword = "";
+            }
+            else
+            {
+                _setting.Auth.GoogleUsername = "";
+                _setting.Auth.GooglePassword = "";
+                _setting.Auth.PtcUsername = UserLoginBox.Text;
+                _setting.Auth.PtcPassword = UserPasswordBox.Text;
+            }
+
+            _setting.Auth.UseProxy = useProxyCb.Checked;
+            _setting.Auth.UseProxyHost = proxyHostTb.Text;
+            _setting.Auth.UseProxyPort = proxyPortTb.Text;
+            _setting.Auth.UseProxyAuthentication = useProxyAuthCb.Checked;
+            _setting.Auth.UseProxyUsername = proxyUserTb.Text;
+            _setting.Auth.UseProxyPassword = proxyPwTb.Text;
+
+            _setting.Auth.DeviceId = DeviceIdTb.Text;
+            _setting.Auth.AndroidBoardName = AndroidBoardNameTb.Text;
+            _setting.Auth.AndroidBootloader = AndroidBootloaderTb.Text;
+            _setting.Auth.DeviceBrand = DeviceBrandTb.Text;
+            _setting.Auth.DeviceModel = DeviceModelTb.Text;
+            _setting.Auth.DeviceModelIdentifier = DeviceModelIdentifierTb.Text;
+            _setting.Auth.DeviceModelBoot = DeviceModelBootTb.Text;
+            _setting.Auth.HardwareManufacturer = HardwareManufacturerTb.Text;
+            _setting.Auth.HardwareModel = HardwareModelTb.Text;
+            _setting.Auth.FirmwareBrand = FirmwareBrandTb.Text;
+            _setting.Auth.FirmwareTags = FirmwareTagsTb.Text;
+            _setting.Auth.FirmwareType = FirmwareTypeTb.Text;
+            _setting.Auth.FirmwareFingerprint = FirmwareFingerprintTb.Text;
+
+            _setting.Auth.Save(AuthFilePath);
+            #endregion
+
+            #region Bot Settings
+
+            _setting.TranslationLanguageCode = cbLanguage.Text;
+
+            #region Location
+            _setting.DefaultLatitude = ConvertStringToDouble(tbLatitude.Text);
+            _setting.DefaultLongitude = ConvertStringToDouble(tbLongitude.Text);
+            _setting.WalkingSpeedInKilometerPerHour = ConvertStringToInt(tbWalkingSpeed.Text);
+            #endregion
+
+            #region Pokemon
+
+            #region Catch
+
+            _setting.CatchPokemon = cbCatchPoke.Checked;
+            _setting.UseEggIncubators = cbUseEggIncubators.Checked;
+            _setting.MaxBerriesToUsePerPokemon = ConvertStringToInt(tBMaxBerriesToUsePerPokemon.Text);
+            _setting.MaxPokeballsPerPokemon = ConvertStringToInt(tbMaxPokeballsPerPokemon.Text);
+            _setting.PokemonsToIgnore = ConvertClbToList(clbIgnore);
+            _setting.AutoFavoritePokemon = cbAutoFavoritePokemon.Checked;
+            _setting.FavoriteMinIvPercentage = ConvertStringToFloat(tbFavoriteMinIvPercentage.Text);
+
+            _setting.UseBerriesMinCp = ConvertStringToInt(tbUseBerriesMinCp.Text);
+            _setting.UseBerriesMinIv = ConvertStringToFloat(tbUseBerriesMinIv.Text);
+            _setting.UseBerriesBelowCatchProbability = ConvertStringToDouble(tbUseBerriesBelowCatchProbability.Text);
+            _setting.UseBerriesOperator = cbUseBerriesOperator.SelectedIndex == 0 ? "and" : "or";
+
+            _setting.UseGreatBallAboveCp = ConvertStringToInt(tbUseGreatBallAboveCp.Text);
+            _setting.UseUltraBallAboveCp = ConvertStringToInt(tbUseUltraBallAboveCp.Text);
+            _setting.UseMasterBallAboveCp = ConvertStringToInt(tbUseMasterBallAboveCp.Text);
+            _setting.UseGreatBallAboveIv = ConvertStringToDouble(tbUseGreatBallAboveIv.Text);
+            _setting.UseUltraBallAboveIv = ConvertStringToDouble(tbUseUltraBallAboveIv.Text);
+            _setting.UseGreatBallBelowCatchProbability = ConvertStringToDouble(tbUseGreatBallBelowCatchProbability.Text);
+            _setting.UseUltraBallBelowCatchProbability = ConvertStringToDouble(tbUseUltraBallBelowCatchProbability.Text);
+            _setting.UseMasterBallBelowCatchProbability = ConvertStringToDouble(tbUseMasterBallBelowCatchProbability.Text);
+            #endregion
+
+            #region Transfer
+            _setting.PrioritizeIvOverCp = cbPrioritizeIvOverCp.Checked;
+            _setting.KeepMinCp = ConvertStringToInt(tbKeepMinCp.Text);
+            _setting.KeepMinIvPercentage = ConvertStringToFloat(tbKeepMinIV.Text);
+            _setting.KeepMinLvl = ConvertStringToInt(tbKeepMinLvl.Text);
+            _setting.KeepMinOperator = cbKeepMinOperator.SelectedIndex == 0 ? "and" : "or";
+            _setting.TransferWeakPokemon = cbTransferWeakPokemon.Checked;
+            _setting.TransferDuplicatePokemon = cbTransferDuplicatePokemon.Checked;
+            _setting.TransferDuplicatePokemonOnCapture = cbTransferDuplicatePokemonOnCapture.Checked;
+
+            _setting.KeepMinDuplicatePokemon = ConvertStringToInt(tbKeepMinDuplicatePokemon.Text);
+            _setting.UseKeepMinLvl = cbUseKeepMinLvl.Checked;
+            _setting.PokemonsNotToTransfer = ConvertClbToList(clbTransfer);
+            #endregion
+
+            #region PowerUp
+            _setting.UseLevelUpList = true;
+
+            _setting.AutomaticallyLevelUpPokemon = cbAutoPowerUp.Checked;
+            _setting.OnlyUpgradeFavorites = cbPowerUpFav.Checked;
+            _setting.LevelUpByCPorIv = cbPowerUpType.SelectedIndex == 0 ? "iv" : "cp";
+            _setting.UpgradePokemonMinimumStatsOperator = cbPowerUpCondiction.SelectedIndex == 0 ? "and" : "or";
+            _setting.GetMinStarDustForLevelUp = ConvertStringToInt(cbPowerUpMinStarDust.Text);
+            _setting.UpgradePokemonIvMinimum = ConvertStringToFloat(tbPowerUpMinIV.Text);
+            _setting.UpgradePokemonCpMinimum = ConvertStringToFloat(tbPowerUpMinCP.Text);
+            _setting.PokemonsToLevelUp = ConvertClbToList(clbPowerUp);
+            #endregion
+
+            #region Evo
+            _setting.EvolveAllPokemonAboveIv = cbEvoAllAboveIV.Checked;
+            _setting.EvolveAboveIvValue = ConvertStringToFloat(tbEvoAboveIV.Text);
+            _setting.EvolveAllPokemonWithEnoughCandy = cbEvolveAllPokemonWithEnoughCandy.Checked;
+            _setting.KeepPokemonsThatCanEvolve = cbKeepPokemonsThatCanEvolve.Checked;
+            _setting.UseLuckyEggsWhileEvolving = cbUseLuckyEggsWhileEvolving.Checked;
+            _setting.EvolveKeptPokemonsAtStorageUsagePercentage = ConvertStringToDouble(tbEvolveKeptPokemonsAtStorageUsagePercentage.Text);
+            _setting.UseLuckyEggsMinPokemonAmount = ConvertStringToInt(tbUseLuckyEggsMinPokemonAmount.Text);
+            _setting.PokemonsToEvolve = ConvertClbToList(clbEvolve);
+            #endregion
+
+            #endregion
+
+            #region Item
+
+            _setting.UseLuckyEggConstantly = cbUseLuckyEggConstantly.Checked;
+            _setting.UseIncenseConstantly = cbUseIncenseConstantly.Checked;
+            _setting.TotalAmountOfPokeballsToKeep = ConvertStringToInt(tbTotalAmountOfPokeballsToKeep.Text);
+            _setting.TotalAmountOfPotionsToKeep = ConvertStringToInt(tbTotalAmountOfPotionsToKeep.Text);
+            _setting.TotalAmountOfRevivesToKeep = ConvertStringToInt(tbTotalAmountOfRevivesToKeep.Text);
+            _setting.TotalAmountOfBerriesToKeep = ConvertStringToInt(tbTotalAmountOfBerriesToKeep.Text);
+            _setting.VerboseRecycling = cbVerboseRecycling.Checked;
+            _setting.RecycleInventoryAtUsagePercentage = ConvertStringToDouble(tbRecycleInventoryAtUsagePercentage.Text);
+            #endregion
+
+            #region Advanced Settings
+
+            _setting.DisableHumanWalking = cbDisableHumanWalking.Checked;
+            _setting.WalkingSpeedOffSetInKilometerPerHour = ConvertStringToDouble(tbWalkingSpeedOffSetInKilometerPerHour.Text);
+            _setting.MaxSpawnLocationOffset = ConvertStringToInt(tbMaxSpawnLocationOffset.Text);
+            _setting.MaxTravelDistanceInMeters = ConvertStringToInt(tbMaxTravelDistanceInMeters.Text);
+
+            _setting.DelayBetweenPlayerActions = ConvertStringToInt(tbDelayBetweenPlayerActions.Text);
+            _setting.DelayBetweenPokemonCatch = ConvertStringToInt(tbDelayBetweenPokemonCatch.Text);
+            _setting.DelayBetweenRecycleActions = cbDelayBetweenRecycleActions.Checked;
+
+            _setting.RandomizeRecycle = cbRandomizeRecycle.Checked;
+            _setting.RandomRecycleValue = ConvertStringToInt(tbRandomRecycleValue.Text);
+
+            _setting.EnableHumanizedThrows = cbEnableHumanizedThrows.Checked;
+            _setting.NiceThrowChance = ConvertStringToInt(tbNiceThrowChance.Text);
+            _setting.GreatThrowChance = ConvertStringToInt(tbGreatThrowChance.Text);
+            _setting.ExcellentThrowChance = ConvertStringToInt(tbExcellentThrowChance.Text);
+            _setting.CurveThrowChance = ConvertStringToInt(tbCurveThrowChance.Text);
+            _setting.ForceGreatThrowOverIv = ConvertStringToDouble(tbForceGreatThrowOverIv.Text);
+            _setting.ForceExcellentThrowOverIv = ConvertStringToDouble(tbForceExcellentThrowOverIv.Text);
+            _setting.ForceGreatThrowOverCp = ConvertStringToInt(tbForceGreatThrowOverCp.Text);
+            _setting.ForceExcellentThrowOverCp = ConvertStringToInt(tbForceExcellentThrowOverCp.Text);
+            #endregion
+
+            _setting.Save(ConfigFilePath);
+            #endregion
+
+            Close();
+        }
+
+        private void cancelBtn_Click(object sender, EventArgs e)
+        {
+            Close();
+        }
+
+        private void trackBar_Scroll(object sender, EventArgs e)
+        {
+            gMapCtrl.Zoom = trackBar.Value;
+        }
+
+        private void gMapCtrl_MouseUp(object sender, MouseEventArgs e)
+        {
+            UpdateLocationInfo();
+        }
+
+        private void gMapCtrl_OnMapZoomChanged()
+        {
+            UpdateLocationInfo();
+        }
+
+        private void ResetLocationBtn_Click(object sender, EventArgs e)
+        {
+            gMapCtrl.Zoom = trackBar.Value = DefaultZoomLevel;
+            UpdateMapLocation(_setting.DefaultLatitude, _setting.DefaultLongitude);
+        }
+
+        private void gMapCtrl_MouseClick(object sender, MouseEventArgs e)
+        {
+            var localCoordinates = e.Location;
+            gMapCtrl.Position = gMapCtrl.FromLocalToLatLng(localCoordinates.X, localCoordinates.Y);
+        }
+
+        private void latitudeText_Leave(object sender, EventArgs e)
+        {
+            UpdateMapLocation(ConvertStringToDouble(tbLatitude.Text), ConvertStringToDouble(tbLongitude.Text));
+        }
+
+        private void longitudeText_Leave(object sender, EventArgs e)
+        {
+            UpdateMapLocation(ConvertStringToDouble(tbLatitude.Text), ConvertStringToDouble(tbLongitude.Text));
+        }
+
+        private void AdressBox_Enter(object sender, EventArgs e)
+        {
+            if (AdressBox.Text != @"Enter an address or a coordinate")
+            {
+                return;
+            }
+            AdressBox.Text = "";
+        }
+
+        private void AdressBox_Leave(object sender, EventArgs e)
+        {
+            if (AdressBox.Text != string.Empty)
+            {
+                return;
+            }
+            AdressBox.Text = @"Enter an address or a coordinate";
+        }
+
+        private void AdressBox_KeyPress(object sender, KeyPressEventArgs e)
+        {
+            if (e.KeyChar != (char)Keys.Enter)
+            {
+                return;
+            }
+            gMapCtrl.SetPositionByKeywords(AdressBox.Text);
+            gMapCtrl.Zoom = DefaultZoomLevel;
+            UpdateLocationInfo();
+        }
+
+        private void FindAdressBtn_Click(object sender, EventArgs e)
+        {
+            gMapCtrl.SetPositionByKeywords(AdressBox.Text);
+            gMapCtrl.Zoom = DefaultZoomLevel;
+            UpdateLocationInfo();
+        }
+
+        private void RandomIDBtn_Click(object sender, EventArgs e)
+        {
+            DeviceIdTb.Text = _deviceHelper.RandomString(16, "0123456789abcdef");
+        }
+
+        private void RandomDeviceBtn_Click(object sender, EventArgs e)
+        {
+            PopulateDevice();
+        }
+
+        private void useProxyCb_CheckedChanged(object sender, EventArgs e)
+        {
+            ToggleProxyCtrls();
+        }
+
+        private void useProxyAuthCb_CheckedChanged(object sender, EventArgs e)
+        {
+            ToggleProxyCtrls();
+        }
+
+        private void deviceTypeCb_SelectionChangeCommitted(object sender, EventArgs e)
+        {
+            PopulateDevice(deviceTypeCb.SelectedIndex);
+        }
+
+        private void cbPowerUpAll_CheckedChanged(object sender, EventArgs e)
+        {
+            ListSelectAllHandler(clbPowerUp, cbPowerUpAll.Checked);
+        }
+
+        private void cbPowerUpType_SelectionChangeCommitted(object sender, EventArgs e)
+        {
+            if (cbPowerUpType.Text.ToLowerInvariant() == "iv")
+            {
+                label31.Visible = true;
+                tbPowerUpMinIV.Visible = true;
+                label30.Visible = false;
+                tbPowerUpMinCP.Visible = false;
+            }
+            else
+            {
+                label31.Visible = false;
+                tbPowerUpMinIV.Visible = false;
+                label30.Visible = true;
+                tbPowerUpMinCP.Visible = true;
+            }
+        }
+
+        private void cbSelectAllEvolve_CheckedChanged(object sender, EventArgs e)
+        {
+            ListSelectAllHandler(clbEvolve, cbEvolveAll.Checked);
+        }
+
+        private void cbSelectAllCatch_CheckedChanged(object sender, EventArgs e)
+        {
+            ListSelectAllHandler(clbIgnore, cbIgnoreAll.Checked);
+        }
+
+        private void cbSelectAllTransfer_CheckedChanged(object sender, EventArgs e)
+        {
+            ListSelectAllHandler(clbTransfer, cbNotTransferAll.Checked);
+        }
+
+        private void enableAdvSettingCb_Click(object sender, EventArgs e)
+        {
+            proxyGb.Visible = _setting.EnableAdvancedSettings = enableAdvSettingCb.Checked;
+            if (enableAdvSettingCb.Checked)
+            {
+                _tabAdvSettingTab.Enabled = true;
+                tabControl.TabPages.Add(_tabAdvSettingTab);
+            }
+            else
+            {
+                _tabAdvSettingTab.Enabled = false;
+                tabControl.TabPages.Remove(_tabAdvSettingTab);
+            }
+        }
+        #endregion
+    }
+}
diff --git a/PokemonGo.RocketBot.Window/Forms/SettingsForm.resx b/PokemonGo.RocketBot.Window/Forms/SettingForm.resx
similarity index 100%
rename from PokemonGo.RocketBot.Window/Forms/SettingsForm.resx
rename to PokemonGo.RocketBot.Window/Forms/SettingForm.resx
diff --git a/PokemonGo.RocketBot.Window/Forms/SettingsForm.cs b/PokemonGo.RocketBot.Window/Forms/SettingsForm.cs
deleted file mode 100644
index 4526061..0000000
--- a/PokemonGo.RocketBot.Window/Forms/SettingsForm.cs
+++ /dev/null
@@ -1,429 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Drawing;
-using System.Linq;
-using System.Windows.Forms;
-using GMap.NET;
-using GMap.NET.MapProviders;
-using PokemonGo.RocketBot.Logic;
-using PokemonGo.RocketBot.Window.Helpers;
-using POGOProtos.Enums;
-using POGOProtos.Inventory.Item;
-
-namespace PokemonGo.RocketBot.Window.Forms
-{
-    internal partial class SettingsForm : Form
-    {
-        private DeviceHelper _deviceHelper;
-        private List<DeviceInfo> _deviceInfos;
-        //private bool _doNotPopulate;
-
-        private List<ItemId> itemSettings = new List<ItemId>
-        {
-            ItemId.ItemPokeBall,
-            ItemId.ItemGreatBall,
-            ItemId.ItemUltraBall,
-            ItemId.ItemRazzBerry,
-            ItemId.ItemPotion,
-            ItemId.ItemSuperPotion,
-            ItemId.ItemHyperPotion,
-            ItemId.ItemMaxPotion,
-            ItemId.ItemRevive,
-            ItemId.ItemMaxRevive
-        };
-
-        public SettingsForm()
-        {
-            InitializeComponent();
-            AdressBox.KeyDown += AdressBox_KeyDown;
-            cbSelectAllCatch.CheckedChanged += CbSelectAllCatch_CheckedChanged;
-            cbSelectAllTransfer.CheckedChanged += CbSelectAllTransfer_CheckedChanged;
-            cbSelectAllEvolve.CheckedChanged += CbSelectAllEvolve_CheckedChanged;
-
-            foreach (PokemonId id in Enum.GetValues(typeof(PokemonId)))
-            {
-                if (id == PokemonId.Missingno) continue;
-                clbCatch.Items.Add(id);
-                clbTransfer.Items.Add(id);
-                clbEvolve.Items.Add(id);
-            }
-
-            /**foreach (ItemId itemId in itemSettings)
-            {
-                ItemData item = new ItemData();
-                item.ItemId = itemId;
-                flpItems.Controls.Add(new ItemSetting(item));
-            } **/
-        }
-
-        private void SettingsForm_Load(object sender, EventArgs e)
-        {
-            GlobalSettings.Load("");
-            var settings = new GlobalSettings();
-
-            authTypeCb.Text = settings.Auth.AuthType.ToString();
-            if (authTypeCb.Text.ToLower().Equals("google"))
-            {
-                UserLoginBox.Text = settings.Auth.GoogleUsername;
-                UserPasswordBox.Text = settings.Auth.GooglePassword;
-            }
-            else
-            {
-                UserLoginBox.Text = settings.Auth.PtcUsername;
-                UserPasswordBox.Text = settings.Auth.PtcPassword;
-            }
-            latitudeText.Text = settings.DefaultLatitude.ToString();
-            longitudeText.Text = settings.DefaultLongitude.ToString();
-            //razzmodeCb.Text = Settings.Instance.RazzBerryMode;
-            //razzSettingText.Text = Settings.Instance.RazzBerrySetting.ToString();
-
-            //useIncubatorsCb.Text = Settings.Instance.UseIncubatorsMode.ToString();
-            //transferTypeCb.Text = Settings.Instance.TransferType;
-            //transferCpThresText.Text = Settings.Instance.TransferCpThreshold.ToString();
-            //transferIVThresText.Text = Settings.Instance.TransferIvThreshold.ToString();
-            //evolveAllChk.Checked = Settings.Instance.EvolveAllGivenPokemons;
-
-            CatchPokemonBox.Checked = settings.CatchPokemon;
-            TravelSpeedBox.Text = settings.WalkingSpeedInKilometerPerHour.ToString();
-            // ImageSizeBox.Text = Settings.Instance.ImageSize.ToString();
-            // Initialize map:
-            //use google provider
-            gMapControl1.MapProvider = GoogleMapProvider.Instance;
-            //get tiles from server only
-            gMapControl1.Manager.Mode = AccessMode.ServerOnly;
-            //not use proxy
-            GMapProvider.WebProxy = null;
-            //center map on moscow
-            gMapControl1.Position = new PointLatLng(settings.DefaultLatitude, settings.DefaultLongitude);
-
-            //zoom min/max; default both = 2
-            gMapControl1.DragButton = MouseButtons.Left;
-
-            gMapControl1.CenterPen = new Pen(Color.Red, 2);
-            gMapControl1.MinZoom = trackBar.Maximum = 1;
-            gMapControl1.MaxZoom = trackBar.Maximum = 20;
-            trackBar.Value = 10;
-
-            //set zoom
-            gMapControl1.Zoom = trackBar.Value;
-
-            //disable map focus
-            gMapControl1.DisableFocusOnMouseEnter = true;
-
-            foreach (var pokemonIdSetting in settings.PokemonsToIgnore)
-            {
-                for (var i = 0; i < clbCatch.Items.Count; i++)
-                {
-                    var pokemonId = (PokemonId) clbCatch.Items[i];
-                    if (pokemonIdSetting == pokemonId)
-                    {
-                        clbCatch.SetItemChecked(i, true);
-                    }
-                }
-            }
-
-            foreach (var pokemonIdSetting in settings.PokemonsNotToTransfer)
-            {
-                for (var i = 0; i < clbTransfer.Items.Count; i++)
-                {
-                    var pokemonId = (PokemonId) clbTransfer.Items[i];
-                    if (pokemonIdSetting == pokemonId)
-                    {
-                        clbTransfer.SetItemChecked(i, true);
-                    }
-                }
-            }
-
-            /**  foreach (var pokemonIdSetting in Settings.Instance.ExcludedPokemonEvolve)
-            {
-                for (var i = 0; i < clbEvolve.Items.Count; i++)
-                {
-                    var pokemonId = (PokemonId)clbEvolve.Items[i];
-                    if (pokemonIdSetting == pokemonId)
-                    {
-                        clbEvolve.SetItemChecked(i, true);
-                    }
-                }
-            } **/
-
-            /** var itemCounts = Settings.Instance.ItemCounts;
-            foreach (ItemSetting itemSetting in flpItems.Controls)
-            {
-                foreach (var itemCount in itemCounts)
-                {
-                    if (itemSetting.ItemData.ItemId == itemCount.ItemId)
-                    {
-                        itemSetting.ItemData = itemCount;
-                    }
-                }
-            } **/
-
-            // Device settings
-            _deviceHelper = new DeviceHelper();
-            _deviceInfos = _deviceHelper.DeviceBucket;
-
-            if (settings.Auth.DeviceId == "41aeed0990284b37")
-            {
-                PopulateDevice();
-            }
-            else
-            {
-                DeviceIdTb.Text = settings.Auth.DeviceId;
-                AndroidBoardNameTb.Text = settings.Auth.AndroidBoardName;
-                AndroidBootloaderTb.Text = settings.Auth.AndroidBootloader;
-                DeviceBrandTb.Text = settings.Auth.DeviceBrand;
-                DeviceModelTb.Text = settings.Auth.DeviceModel;
-                DeviceModelIdentifierTb.Text = settings.Auth.DeviceModelIdentifier;
-                DeviceModelBootTb.Text = settings.Auth.DeviceModelBoot;
-                HardwareManufacturerTb.Text = settings.Auth.HardwareManufacturer;
-                HardwareModelTb.Text = settings.Auth.HardwareModel;
-                FirmwareBrandTb.Text = settings.Auth.FirmwareBrand;
-                FirmwareTagsTb.Text = settings.Auth.FirmwareTags;
-                FirmwareTypeTb.Text = settings.Auth.FirmwareType;
-                FirmwareFingerprintTb.Text = settings.Auth.FirmwareFingerprint;
-                deviceTypeCb.SelectedIndex = settings.Auth.DeviceBrand.ToLower() == "apple" ? 0 : 1;
-            }
-        }
-
-        private void saveBtn_Click(object sender, EventArgs e)
-        {
-            /** Settings.Instance.SetSetting(authTypeCb.Text, "AuthType");
-            if (authTypeCb.Text.ToLower().Equals("google"))
-            {
-                Settings.Instance.SetSetting(UserLoginBox.Text, "GoogleUsername");
-                Settings.Instance.SetSetting(UserPasswordBox.Text, "GooglePassword");
-            }
-            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");
-
-            var lat = ConfigurationManager.AppSettings["DefaultLatitude"];
-            var longit = ConfigurationManager.AppSettings["DefaultLongitude"];
-            lat.Replace(',', '.');
-            longit.Replace(',', '.');
-
-            Settings.Instance.SetSetting(razzmodeCb.Text, "RazzBerryMode");
-            Settings.Instance.SetSetting(razzSettingText.Text, "RazzBerrySetting");
-            Settings.Instance.SetSetting(transferTypeCb.Text, "TransferType");
-            Settings.Instance.SetSetting(transferCpThresText.Text, "TransferCPThreshold");
-            Settings.Instance.SetSetting(transferIVThresText.Text, "TransferIVThreshold");
-            Settings.Instance.SetSetting(useIncubatorsCb.Text, "useIncubatorsMode");
-            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.ExcludedPokemonCatch = clbCatch.CheckedItems.Cast<PokemonId>().ToList();
-            Settings.Instance.ExcludedPokemonTransfer = clbTransfer.CheckedItems.Cast<PokemonId>().ToList();
-            Settings.Instance.ExcludedPokemonEvolve = clbEvolve.CheckedItems.Cast<PokemonId>().ToList();
-            Settings.Instance.ItemCounts = flpItems.Controls.Cast<ItemSetting>().Select(i => i.ItemData).ToList();
-            Settings.Instance.Reload();
-
-            //Device settings
-            Settings.Instance.DeviceId = DeviceIdTb.Text;
-            Settings.Instance.AndroidBoardName = AndroidBoardNameTb.Text;
-            Settings.Instance.AndroidBootloader = AndroidBootloaderTb.Text;
-            Settings.Instance.DeviceBrand = DeviceBrandTb.Text;
-            Settings.Instance.DeviceModel = DeviceModelTb.Text;
-            Settings.Instance.DeviceModelIdentifier = DeviceModelIdentifierTb.Text;
-            Settings.Instance.DeviceModelBoot = DeviceModelBootTb.Text;
-            Settings.Instance.HardwareManufacturer = HardwareManufacturerTb.Text;
-            Settings.Instance.HardwareModel = HardwareModelTb.Text;
-            Settings.Instance.FirmwareBrand = FirmwareBrandTb.Text;
-            Settings.Instance.FirmwareTags = FirmwareTagsTb.Text;
-            Settings.Instance.FirmwareType = FirmwareTypeTb.Text;
-            Settings.Instance.FirmwareFingerprint = FirmwareFingerprintTb.Text;
-            if (DeviceIdTb.Text == "8525f6d8251f71b7")
-            {
-                PopulateDevice();
-            }
-
-            MainForm.ResetMap();
-            Close(); **/
-        }
-
-        private void authTypeCb_SelectedIndexChanged(object sender, EventArgs e)
-        {
-            if (authTypeCb.Text.ToLower().Equals("google"))
-            {
-                UserLabel.Text = "Email:";
-            }
-            else
-            {
-                UserLabel.Text = "Username:";
-            }
-        }
-
-        private void gMapControl1_MouseClick(object sender, MouseEventArgs e)
-        {
-            var localCoordinates = e.Location;
-            gMapControl1.Position = gMapControl1.FromLocalToLatLng(localCoordinates.X, localCoordinates.Y);
-
-            if (e.Clicks >= 2)
-            {
-                gMapControl1.Zoom += 5;
-            }
-
-            var X = Math.Round(gMapControl1.Position.Lng, 6);
-            var Y = Math.Round(gMapControl1.Position.Lat, 6);
-            var longitude = X.ToString();
-            var latitude = Y.ToString();
-            latitudeText.Text = latitude;
-            longitudeText.Text = longitude;
-        }
-
-        private void trackBar_Scroll(object sender, EventArgs e)
-        {
-            gMapControl1.Zoom = trackBar.Value;
-        }
-
-        private void transferTypeCb_SelectedIndexChanged(object sender, EventArgs e)
-        {
-            if (transferTypeCb.Text == "CP")
-            {
-                label4.Visible = true;
-                transferCpThresText.Visible = true;
-            }
-            else
-            {
-                label4.Visible = false;
-                transferCpThresText.Visible = false;
-            }
-
-            if (transferTypeCb.Text == "IV")
-            {
-                label6.Visible = true;
-                transferIVThresText.Visible = true;
-            }
-            else
-            {
-                label6.Visible = false;
-                transferIVThresText.Visible = false;
-            }
-        }
-
-        private void FindAdressButton_Click(object sender, EventArgs e)
-        {
-            gMapControl1.SetPositionByKeywords(AdressBox.Text);
-            gMapControl1.Zoom = 15;
-            var X = Math.Round(gMapControl1.Position.Lng, 6);
-            var Y = Math.Round(gMapControl1.Position.Lat, 6);
-            var longitude = X.ToString();
-            var latitude = Y.ToString();
-            latitudeText.Text = latitude;
-            longitudeText.Text = longitude;
-        }
-
-        private void TravelSpeedBox_KeyPress(object sender, KeyPressEventArgs e)
-        {
-            var ch = e.KeyChar;
-            if (!char.IsDigit(ch) && ch != 8)
-            {
-                e.Handled = true;
-            }
-        }
-
-        private void razzSettingText_KeyPress(object sender, KeyPressEventArgs e)
-        {
-            var 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 CbSelectAllEvolve_CheckedChanged(object sender, EventArgs e)
-        {
-            for (var i = 0; i < clbEvolve.Items.Count; i++)
-            {
-                clbEvolve.SetItemChecked(i, cbSelectAllEvolve.Checked);
-            }
-        }
-
-        private void CbSelectAllTransfer_CheckedChanged(object sender, EventArgs e)
-        {
-            for (var i = 0; i < clbTransfer.Items.Count; i++)
-            {
-                clbTransfer.SetItemChecked(i, cbSelectAllTransfer.Checked);
-            }
-        }
-
-        private void CbSelectAllCatch_CheckedChanged(object sender, EventArgs e)
-        {
-            for (var i = 0; i < clbCatch.Items.Count; i++)
-            {
-                clbCatch.SetItemChecked(i, cbSelectAllCatch.Checked);
-            }
-        }
-
-        private void AdressBox_KeyDown(object sender, KeyEventArgs e)
-        {
-            if (e.KeyCode == Keys.Enter)
-            {
-                gMapControl1.SetPositionByKeywords(AdressBox.Text);
-                gMapControl1.Zoom = 15;
-            }
-        }
-
-        private void RandomDeviceBtn_Click(object sender, EventArgs e)
-        {
-            PopulateDevice();
-        }
-
-        private void deviceTypeCb_SelectedIndexChanged(object sender, EventArgs e)
-        {
-            PopulateDevice(deviceTypeCb.SelectedIndex);
-        }
-
-        private void RandomIDBtn_Click(object sender, EventArgs e)
-        {
-            DeviceIdTb.Text = _deviceHelper.RandomString(16, "0123456789abcdef");
-        }
-
-        private void PopulateDevice(int tabIndex = -1)
-        {
-            deviceTypeCb.SelectedIndex = tabIndex == -1 ? _deviceHelper.GetRandomIndex(2) : tabIndex;
-            var candidateDevices = deviceTypeCb.SelectedIndex == 0
-                ? _deviceInfos.Where(d => d.DeviceBrand.ToLower() == "apple").ToList()
-                : _deviceInfos.Where(d => d.DeviceBrand.ToLower() != "apple").ToList();
-            var selectIndex = _deviceHelper.GetRandomIndex(candidateDevices.Count);
-
-            DeviceIdTb.Text = candidateDevices[selectIndex].DeviceId == "8525f6d8251f71b7"
-                ? _deviceHelper.RandomString(16, "0123456789abcdef")
-                : candidateDevices[selectIndex].DeviceId;
-            AndroidBoardNameTb.Text = candidateDevices[selectIndex].AndroidBoardName;
-            AndroidBootloaderTb.Text = candidateDevices[selectIndex].AndroidBootloader;
-            DeviceBrandTb.Text = candidateDevices[selectIndex].DeviceBrand;
-            DeviceModelTb.Text = candidateDevices[selectIndex].DeviceModel;
-            DeviceModelIdentifierTb.Text = candidateDevices[selectIndex].DeviceModelIdentifier;
-            DeviceModelBootTb.Text = candidateDevices[selectIndex].DeviceModelBoot;
-            HardwareManufacturerTb.Text = candidateDevices[selectIndex].HardwareManufacturer;
-            HardwareModelTb.Text = candidateDevices[selectIndex].HardwareModel;
-            FirmwareBrandTb.Text = candidateDevices[selectIndex].FirmwareBrand;
-            FirmwareTagsTb.Text = candidateDevices[selectIndex].FirmwareTags;
-            FirmwareTypeTb.Text = candidateDevices[selectIndex].FirmwareType;
-            FirmwareFingerprintTb.Text = candidateDevices[selectIndex].FirmwareFingerprint;
-        }
-    }
-}
\ No newline at end of file
diff --git a/PokemonGo.RocketBot.Window/Forms/SettingsForm.designer.cs b/PokemonGo.RocketBot.Window/Forms/SettingsForm.designer.cs
deleted file mode 100644
index fe9e44d..0000000
--- a/PokemonGo.RocketBot.Window/Forms/SettingsForm.designer.cs
+++ /dev/null
@@ -1,1178 +0,0 @@
-namespace PokemonGo.RocketBot.Window.Forms
-{
-    partial class SettingsForm
-    {
-        /// <summary>
-        /// Required designer variable.
-        /// </summary>
-        private System.ComponentModel.IContainer components = null;
-
-        /// <summary>
-        /// Clean up any resources being used.
-        /// </summary>
-        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()
-        {
-            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.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();
-            this.label2 = new System.Windows.Forms.Label();
-            this.label3 = new System.Windows.Forms.Label();
-            this.label4 = new System.Windows.Forms.Label();
-            this.label5 = new System.Windows.Forms.Label();
-            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();
-            this.razzSettingText = new System.Windows.Forms.TextBox();
-            this.transferTypeCb = new System.Windows.Forms.ComboBox();
-            this.transferCpThresText = new System.Windows.Forms.TextBox();
-            this.evolveAllChk = new System.Windows.Forms.CheckBox();
-            this.saveBtn = new System.Windows.Forms.Button();
-            this.gMapControl1 = new GMap.NET.WindowsForms.GMapControl();
-            this.FindAdressButton = new System.Windows.Forms.Button();
-            this.AdressBox = new System.Windows.Forms.TextBox();
-            this.trackBar = new System.Windows.Forms.TrackBar();
-            this.panel1 = new System.Windows.Forms.Panel();
-            this.useIncubatorsCb = new System.Windows.Forms.ComboBox();
-            this.useIncubatorsText = new System.Windows.Forms.Label();
-            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.label6 = new System.Windows.Forms.Label();
-            this.panel2 = new System.Windows.Forms.Panel();
-            this.tabControl = new System.Windows.Forms.TabControl();
-            this.tabLocation = new System.Windows.Forms.TabPage();
-            this.tabPokemon = new System.Windows.Forms.TabPage();
-            this.groupBox3 = new System.Windows.Forms.GroupBox();
-            this.cbSelectAllEvolve = new System.Windows.Forms.CheckBox();
-            this.clbEvolve = new System.Windows.Forms.CheckedListBox();
-            this.groupBox2 = new System.Windows.Forms.GroupBox();
-            this.cbSelectAllCatch = new System.Windows.Forms.CheckBox();
-            this.clbCatch = new System.Windows.Forms.CheckedListBox();
-            this.groupBox1 = new System.Windows.Forms.GroupBox();
-            this.cbSelectAllTransfer = new System.Windows.Forms.CheckBox();
-            this.clbTransfer = new System.Windows.Forms.CheckedListBox();
-            this.tabItems = new System.Windows.Forms.TabPage();
-            this.flpItems = new System.Windows.Forms.FlowLayoutPanel();
-            this.tabDevice = new System.Windows.Forms.TabPage();
-            this.label22 = new System.Windows.Forms.Label();
-            this.label20 = new System.Windows.Forms.Label();
-            this.label21 = new System.Windows.Forms.Label();
-            this.RandomIDBtn = new System.Windows.Forms.Button();
-            this.deviceTypeCb = new System.Windows.Forms.ComboBox();
-            this.RandomDeviceBtn = new System.Windows.Forms.Button();
-            this.FirmwareFingerprintTb = new System.Windows.Forms.TextBox();
-            this.label14 = new System.Windows.Forms.Label();
-            this.FirmwareTypeTb = new System.Windows.Forms.TextBox();
-            this.label13 = new System.Windows.Forms.Label();
-            this.FirmwareTagsTb = new System.Windows.Forms.TextBox();
-            this.label12 = new System.Windows.Forms.Label();
-            this.FirmwareBrandTb = new System.Windows.Forms.TextBox();
-            this.label11 = new System.Windows.Forms.Label();
-            this.HardwareModelTb = new System.Windows.Forms.TextBox();
-            this.label10 = new System.Windows.Forms.Label();
-            this.HardwareManufacturerTb = new System.Windows.Forms.TextBox();
-            this.label9 = new System.Windows.Forms.Label();
-            this.DeviceModelBootTb = new System.Windows.Forms.TextBox();
-            this.label8 = new System.Windows.Forms.Label();
-            this.DeviceModelIdentifierTb = new System.Windows.Forms.TextBox();
-            this.label7 = new System.Windows.Forms.Label();
-            this.DeviceModelTb = new System.Windows.Forms.TextBox();
-            this.label15 = new System.Windows.Forms.Label();
-            this.DeviceBrandTb = new System.Windows.Forms.TextBox();
-            this.label16 = new System.Windows.Forms.Label();
-            this.AndroidBootloaderTb = new System.Windows.Forms.TextBox();
-            this.label17 = new System.Windows.Forms.Label();
-            this.AndroidBoardNameTb = new System.Windows.Forms.TextBox();
-            this.BoardName = new System.Windows.Forms.Label();
-            this.DeviceIdTb = new System.Windows.Forms.TextBox();
-            this.deviceIdlb = new System.Windows.Forms.Label();
-            this.label18 = new System.Windows.Forms.Label();
-            ((System.ComponentModel.ISupportInitialize)(this.trackBar)).BeginInit();
-            this.panel1.SuspendLayout();
-            this.panel2.SuspendLayout();
-            this.tabControl.SuspendLayout();
-            this.tabLocation.SuspendLayout();
-            this.tabPokemon.SuspendLayout();
-            this.groupBox3.SuspendLayout();
-            this.groupBox2.SuspendLayout();
-            this.groupBox1.SuspendLayout();
-            this.tabItems.SuspendLayout();
-            this.tabDevice.SuspendLayout();
-            this.SuspendLayout();
-            //
-            // authTypeLabel
-            //
-            this.authTypeLabel.AutoSize = true;
-            this.authTypeLabel.Location = new System.Drawing.Point(3, 9);
-            this.authTypeLabel.Name = "authTypeLabel";
-            this.authTypeLabel.Size = new System.Drawing.Size(70, 15);
-            this.authTypeLabel.TabIndex = 0;
-            this.authTypeLabel.Text = "Login Type:";
-            //
-            // authTypeCb
-            //
-            this.authTypeCb.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
-            this.authTypeCb.FormattingEnabled = true;
-            this.authTypeCb.Items.AddRange(new object[] {
-            "Google",
-            "PTC"});
-            this.authTypeCb.Location = new System.Drawing.Point(96, 5);
-            this.authTypeCb.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
-            this.authTypeCb.Name = "authTypeCb";
-            this.authTypeCb.Size = new System.Drawing.Size(158, 23);
-            this.authTypeCb.TabIndex = 1;
-            this.authTypeCb.SelectedIndexChanged += new System.EventHandler(this.authTypeCb_SelectedIndexChanged);
-            //
-            // UserLabel
-            //
-            this.UserLabel.AutoSize = true;
-            this.UserLabel.Location = new System.Drawing.Point(3, 41);
-            this.UserLabel.Name = "UserLabel";
-            this.UserLabel.Size = new System.Drawing.Size(68, 15);
-            this.UserLabel.TabIndex = 2;
-            this.UserLabel.Text = "Username:";
-            //
-            // PasswordLabel
-            //
-            this.PasswordLabel.AutoSize = true;
-            this.PasswordLabel.Location = new System.Drawing.Point(3, 71);
-            this.PasswordLabel.Name = "PasswordLabel";
-            this.PasswordLabel.Size = new System.Drawing.Size(64, 15);
-            this.PasswordLabel.TabIndex = 3;
-            this.PasswordLabel.Text = "Password:";
-            //
-            // latLabel
-            //
-            this.latLabel.AutoSize = true;
-            this.latLabel.Location = new System.Drawing.Point(3, 101);
-            this.latLabel.Name = "latLabel";
-            this.latLabel.Size = new System.Drawing.Size(54, 15);
-            this.latLabel.TabIndex = 4;
-            this.latLabel.Text = "Latitude:";
-            //
-            // longiLabel
-            //
-            this.longiLabel.AutoSize = true;
-            this.longiLabel.Location = new System.Drawing.Point(3, 131);
-            this.longiLabel.Name = "longiLabel";
-            this.longiLabel.Size = new System.Drawing.Size(65, 15);
-            this.longiLabel.TabIndex = 5;
-            this.longiLabel.Text = "Longitude:";
-            //
-            // label1
-            //
-            this.label1.AutoSize = true;
-            this.label1.Location = new System.Drawing.Point(3, 161);
-            this.label1.Name = "label1";
-            this.label1.Size = new System.Drawing.Size(100, 15);
-            this.label1.TabIndex = 6;
-            this.label1.Text = "Razzberry Mode:";
-            //
-            // label2
-            //
-            this.label2.AutoSize = true;
-            this.label2.Location = new System.Drawing.Point(3, 222);
-            this.label2.Name = "label2";
-            this.label2.Size = new System.Drawing.Size(84, 15);
-            this.label2.TabIndex = 7;
-            this.label2.Text = "Transfer Type:";
-            //
-            // label3
-            //
-            this.label3.AutoSize = true;
-            this.label3.Location = new System.Drawing.Point(3, 387);
-            this.label3.Name = "label3";
-            this.label3.Size = new System.Drawing.Size(101, 15);
-            this.label3.TabIndex = 8;
-            this.label3.Text = "Evolve Pokemon:";
-            //
-            // label4
-            //
-            this.label4.AutoSize = true;
-            this.label4.Location = new System.Drawing.Point(3, 254);
-            this.label4.Name = "label4";
-            this.label4.Size = new System.Drawing.Size(84, 15);
-            this.label4.TabIndex = 9;
-            this.label4.Text = "CP Threshold:";
-            //
-            // label5
-            //
-            this.label5.AutoSize = true;
-            this.label5.Location = new System.Drawing.Point(3, 192);
-            this.label5.Name = "label5";
-            this.label5.Size = new System.Drawing.Size(106, 15);
-            this.label5.TabIndex = 10;
-            this.label5.Text = "Razzberry Setting:";
-            //
-            // UserLoginBox
-            //
-            this.UserLoginBox.Location = new System.Drawing.Point(96, 39);
-            this.UserLoginBox.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
-            this.UserLoginBox.Name = "UserLoginBox";
-            this.UserLoginBox.Size = new System.Drawing.Size(158, 21);
-            this.UserLoginBox.TabIndex = 11;
-            //
-            // UserPasswordBox
-            //
-            this.UserPasswordBox.Location = new System.Drawing.Point(96, 71);
-            this.UserPasswordBox.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
-            this.UserPasswordBox.Name = "UserPasswordBox";
-            this.UserPasswordBox.PasswordChar = '*';
-            this.UserPasswordBox.Size = new System.Drawing.Size(158, 21);
-            this.UserPasswordBox.TabIndex = 12;
-            //
-            // latitudeText
-            //
-            this.latitudeText.Location = new System.Drawing.Point(138, 99);
-            this.latitudeText.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
-            this.latitudeText.Name = "latitudeText";
-            this.latitudeText.ReadOnly = true;
-            this.latitudeText.Size = new System.Drawing.Size(116, 21);
-            this.latitudeText.TabIndex = 13;
-            //
-            // longitudeText
-            //
-            this.longitudeText.Location = new System.Drawing.Point(138, 129);
-            this.longitudeText.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
-            this.longitudeText.Name = "longitudeText";
-            this.longitudeText.ReadOnly = true;
-            this.longitudeText.Size = new System.Drawing.Size(116, 21);
-            this.longitudeText.TabIndex = 14;
-            //
-            // razzmodeCb
-            //
-            this.razzmodeCb.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
-            this.razzmodeCb.FormattingEnabled = true;
-            this.razzmodeCb.Items.AddRange(new object[] {
-            "Probability",
-            "CP"});
-            this.razzmodeCb.Location = new System.Drawing.Point(138, 159);
-            this.razzmodeCb.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
-            this.razzmodeCb.Name = "razzmodeCb";
-            this.razzmodeCb.Size = new System.Drawing.Size(116, 23);
-            this.razzmodeCb.TabIndex = 15;
-            //
-            // razzSettingText
-            //
-            this.razzSettingText.Location = new System.Drawing.Point(138, 190);
-            this.razzSettingText.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
-            this.razzSettingText.Name = "razzSettingText";
-            this.razzSettingText.Size = new System.Drawing.Size(116, 21);
-            this.razzSettingText.TabIndex = 16;
-            this.razzSettingText.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.razzSettingText_KeyPress);
-            //
-            // transferTypeCb
-            //
-            this.transferTypeCb.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
-            this.transferTypeCb.FormattingEnabled = true;
-            this.transferTypeCb.Items.AddRange(new object[] {
-            "None",
-            "CP",
-            "IV",
-            "Leave Strongest",
-            "Duplicate",
-            "IV Duplicate",
-            "All"});
-            this.transferTypeCb.Location = new System.Drawing.Point(138, 220);
-            this.transferTypeCb.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
-            this.transferTypeCb.Name = "transferTypeCb";
-            this.transferTypeCb.Size = new System.Drawing.Size(116, 23);
-            this.transferTypeCb.TabIndex = 17;
-            this.transferTypeCb.SelectedIndexChanged += new System.EventHandler(this.transferTypeCb_SelectedIndexChanged);
-            //
-            // transferCpThresText
-            //
-            this.transferCpThresText.Location = new System.Drawing.Point(138, 252);
-            this.transferCpThresText.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
-            this.transferCpThresText.Name = "transferCpThresText";
-            this.transferCpThresText.Size = new System.Drawing.Size(116, 21);
-            this.transferCpThresText.TabIndex = 18;
-            //
-            // evolveAllChk
-            //
-            this.evolveAllChk.AutoSize = true;
-            this.evolveAllChk.Location = new System.Drawing.Point(138, 387);
-            this.evolveAllChk.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
-            this.evolveAllChk.Name = "evolveAllChk";
-            this.evolveAllChk.Size = new System.Drawing.Size(15, 14);
-            this.evolveAllChk.TabIndex = 19;
-            this.evolveAllChk.UseVisualStyleBackColor = true;
-            //
-            // saveBtn
-            //
-            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, 419);
-            this.saveBtn.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
-            this.saveBtn.Name = "saveBtn";
-            this.saveBtn.Size = new System.Drawing.Size(248, 42);
-            this.saveBtn.TabIndex = 20;
-            this.saveBtn.Text = "Save";
-            this.saveBtn.UseVisualStyleBackColor = true;
-            this.saveBtn.Click += new System.EventHandler(this.saveBtn_Click);
-            //
-            // gMapControl1
-            //
-            this.gMapControl1.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.gMapControl1.BackColor = System.Drawing.SystemColors.Info;
-            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(6, 7);
-            this.gMapControl1.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
-            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(586, 385);
-            this.gMapControl1.TabIndex = 22;
-            this.gMapControl1.Zoom = 0D;
-            this.gMapControl1.MouseClick += new System.Windows.Forms.MouseEventHandler(this.gMapControl1_MouseClick);
-            //
-            // FindAdressButton
-            //
-            this.FindAdressButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
-            this.FindAdressButton.Location = new System.Drawing.Point(473, 400);
-            this.FindAdressButton.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
-            this.FindAdressButton.Name = "FindAdressButton";
-            this.FindAdressButton.Size = new System.Drawing.Size(119, 30);
-            this.FindAdressButton.TabIndex = 25;
-            this.FindAdressButton.Text = "Find Location";
-            this.FindAdressButton.UseVisualStyleBackColor = true;
-            this.FindAdressButton.Click += new System.EventHandler(this.FindAdressButton_Click);
-            //
-            // AdressBox
-            //
-            this.AdressBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
-            | System.Windows.Forms.AnchorStyles.Right)));
-            this.AdressBox.ForeColor = System.Drawing.Color.Gray;
-            this.AdressBox.Location = new System.Drawing.Point(6, 404);
-            this.AdressBox.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
-            this.AdressBox.Name = "AdressBox";
-            this.AdressBox.Size = new System.Drawing.Size(461, 23);
-            this.AdressBox.TabIndex = 25;
-            this.AdressBox.Text = "Enter an address or a coordinate";
-            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(545, 7);
-            this.trackBar.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
-            this.trackBar.Name = "trackBar";
-            this.trackBar.Orientation = System.Windows.Forms.Orientation.Vertical;
-            this.trackBar.Size = new System.Drawing.Size(45, 120);
-            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.useIncubatorsCb);
-            this.panel1.Controls.Add(this.useIncubatorsText);
-            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.label6);
-            this.panel1.Controls.Add(this.authTypeLabel);
-            this.panel1.Controls.Add(this.authTypeCb);
-            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);
-            this.panel1.Controls.Add(this.longiLabel);
-            this.panel1.Controls.Add(this.transferCpThresText);
-            this.panel1.Controls.Add(this.label1);
-            this.panel1.Controls.Add(this.transferTypeCb);
-            this.panel1.Controls.Add(this.label2);
-            this.panel1.Controls.Add(this.razzSettingText);
-            this.panel1.Controls.Add(this.label3);
-            this.panel1.Controls.Add(this.razzmodeCb);
-            this.panel1.Controls.Add(this.label4);
-            this.panel1.Controls.Add(this.longitudeText);
-            this.panel1.Controls.Add(this.label5);
-            this.panel1.Controls.Add(this.latitudeText);
-            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(0, 0);
-            this.panel1.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
-            this.panel1.Name = "panel1";
-            this.panel1.Size = new System.Drawing.Size(261, 465);
-            this.panel1.TabIndex = 26;
-            //
-            // useIncubatorsCb
-            //
-            this.useIncubatorsCb.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
-            this.useIncubatorsCb.FormattingEnabled = true;
-            this.useIncubatorsCb.Items.AddRange(new object[] {
-            "Disabled",
-            "Only Unlimited",
-            "All Incubators"});
-            this.useIncubatorsCb.Location = new System.Drawing.Point(138, 320);
-            this.useIncubatorsCb.Name = "useIncubatorsCb";
-            this.useIncubatorsCb.Size = new System.Drawing.Size(116, 23);
-            this.useIncubatorsCb.TabIndex = 26;
-            //
-            // useIncubatorsText
-            //
-            this.useIncubatorsText.AutoSize = true;
-            this.useIncubatorsText.Location = new System.Drawing.Point(3, 323);
-            this.useIncubatorsText.Name = "useIncubatorsText";
-            this.useIncubatorsText.Size = new System.Drawing.Size(117, 15);
-            this.useIncubatorsText.TabIndex = 27;
-            this.useIncubatorsText.Text = "Use Egg Incubators:";
-            //
-            // TravelSpeedBox
-            //
-            this.TravelSpeedBox.Location = new System.Drawing.Point(138, 283);
-            this.TravelSpeedBox.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
-            this.TravelSpeedBox.Name = "TravelSpeedBox";
-            this.TravelSpeedBox.Size = new System.Drawing.Size(116, 21);
-            this.TravelSpeedBox.TabIndex = 22;
-            this.TravelSpeedBox.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.TravelSpeedBox_KeyPress);
-            //
-            // CatchPokemonBox
-            //
-            this.CatchPokemonBox.AutoSize = true;
-            this.CatchPokemonBox.Location = new System.Drawing.Point(138, 363);
-            this.CatchPokemonBox.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
-            this.CatchPokemonBox.Name = "CatchPokemonBox";
-            this.CatchPokemonBox.Size = new System.Drawing.Size(15, 14);
-            this.CatchPokemonBox.TabIndex = 26;
-            this.CatchPokemonBox.UseVisualStyleBackColor = true;
-            //
-            // CatchPokemonText
-            //
-            this.CatchPokemonText.AutoSize = true;
-            this.CatchPokemonText.Location = new System.Drawing.Point(3, 362);
-            this.CatchPokemonText.Name = "CatchPokemonText";
-            this.CatchPokemonText.Size = new System.Drawing.Size(97, 15);
-            this.CatchPokemonText.TabIndex = 25;
-            this.CatchPokemonText.Text = "Catch Pokemon:";
-            //
-            // transferIVThresText
-            //
-            this.transferIVThresText.Location = new System.Drawing.Point(138, 252);
-            this.transferIVThresText.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
-            this.transferIVThresText.Name = "transferIVThresText";
-            this.transferIVThresText.Size = new System.Drawing.Size(116, 21);
-            this.transferIVThresText.TabIndex = 24;
-            //
-            // TravelSpeedText
-            //
-            this.TravelSpeedText.AutoSize = true;
-            this.TravelSpeedText.Location = new System.Drawing.Point(3, 286);
-            this.TravelSpeedText.Name = "TravelSpeedText";
-            this.TravelSpeedText.Size = new System.Drawing.Size(112, 15);
-            this.TravelSpeedText.TabIndex = 23;
-            this.TravelSpeedText.Text = "Travel Speed km/h:";
-            //
-            // label6
-            //
-            this.label6.AutoSize = true;
-            this.label6.Location = new System.Drawing.Point(3, 254);
-            this.label6.Name = "label6";
-            this.label6.Size = new System.Drawing.Size(78, 15);
-            this.label6.TabIndex = 21;
-            this.label6.Text = "IV Threshold:";
-            //
-            // panel2
-            //
-            this.panel2.Controls.Add(this.tabControl);
-            this.panel2.Dock = System.Windows.Forms.DockStyle.Fill;
-            this.panel2.Location = new System.Drawing.Point(261, 0);
-            this.panel2.Name = "panel2";
-            this.panel2.Size = new System.Drawing.Size(606, 465);
-            this.panel2.TabIndex = 27;
-            //
-            // tabControl
-            //
-            this.tabControl.Controls.Add(this.tabLocation);
-            this.tabControl.Controls.Add(this.tabPokemon);
-            this.tabControl.Controls.Add(this.tabItems);
-            this.tabControl.Controls.Add(this.tabDevice);
-            this.tabControl.Dock = System.Windows.Forms.DockStyle.Fill;
-            this.tabControl.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-            this.tabControl.Location = new System.Drawing.Point(0, 0);
-            this.tabControl.Name = "tabControl";
-            this.tabControl.SelectedIndex = 0;
-            this.tabControl.Size = new System.Drawing.Size(606, 465);
-            this.tabControl.TabIndex = 26;
-            //
-            // tabLocation
-            //
-            this.tabLocation.BackColor = System.Drawing.SystemColors.Control;
-            this.tabLocation.Controls.Add(this.trackBar);
-            this.tabLocation.Controls.Add(this.AdressBox);
-            this.tabLocation.Controls.Add(this.FindAdressButton);
-            this.tabLocation.Controls.Add(this.gMapControl1);
-            this.tabLocation.Location = new System.Drawing.Point(4, 24);
-            this.tabLocation.Name = "tabLocation";
-            this.tabLocation.Padding = new System.Windows.Forms.Padding(3);
-            this.tabLocation.Size = new System.Drawing.Size(598, 437);
-            this.tabLocation.TabIndex = 0;
-            this.tabLocation.Text = "Location";
-            //
-            // tabPokemon
-            //
-            this.tabPokemon.BackColor = System.Drawing.SystemColors.Control;
-            this.tabPokemon.Controls.Add(this.groupBox3);
-            this.tabPokemon.Controls.Add(this.groupBox2);
-            this.tabPokemon.Controls.Add(this.groupBox1);
-            this.tabPokemon.Location = new System.Drawing.Point(4, 24);
-            this.tabPokemon.Name = "tabPokemon";
-            this.tabPokemon.Padding = new System.Windows.Forms.Padding(3);
-            this.tabPokemon.Size = new System.Drawing.Size(598, 437);
-            this.tabPokemon.TabIndex = 1;
-            this.tabPokemon.Text = "Pokemon";
-            //
-            // groupBox3
-            //
-            this.groupBox3.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
-            | System.Windows.Forms.AnchorStyles.Left)));
-            this.groupBox3.Controls.Add(this.cbSelectAllEvolve);
-            this.groupBox3.Controls.Add(this.clbEvolve);
-            this.groupBox3.Location = new System.Drawing.Point(394, 6);
-            this.groupBox3.Name = "groupBox3";
-            this.groupBox3.Size = new System.Drawing.Size(188, 421);
-            this.groupBox3.TabIndex = 2;
-            this.groupBox3.TabStop = false;
-            this.groupBox3.Text = "Exclude Evolve";
-            //
-            // cbSelectAllEvolve
-            //
-            this.cbSelectAllEvolve.AutoSize = true;
-            this.cbSelectAllEvolve.Location = new System.Drawing.Point(6, 22);
-            this.cbSelectAllEvolve.Name = "cbSelectAllEvolve";
-            this.cbSelectAllEvolve.Size = new System.Drawing.Size(74, 19);
-            this.cbSelectAllEvolve.TabIndex = 1;
-            this.cbSelectAllEvolve.Text = "Select All";
-            this.cbSelectAllEvolve.UseVisualStyleBackColor = true;
-            //
-            // clbEvolve
-            //
-            this.clbEvolve.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.clbEvolve.CheckOnClick = true;
-            this.clbEvolve.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-            this.clbEvolve.FormattingEnabled = true;
-            this.clbEvolve.Location = new System.Drawing.Point(0, 41);
-            this.clbEvolve.Name = "clbEvolve";
-            this.clbEvolve.Size = new System.Drawing.Size(188, 364);
-            this.clbEvolve.TabIndex = 0;
-            //
-            // groupBox2
-            //
-            this.groupBox2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
-            | System.Windows.Forms.AnchorStyles.Left)));
-            this.groupBox2.Controls.Add(this.cbSelectAllCatch);
-            this.groupBox2.Controls.Add(this.clbCatch);
-            this.groupBox2.Location = new System.Drawing.Point(6, 6);
-            this.groupBox2.Name = "groupBox2";
-            this.groupBox2.Size = new System.Drawing.Size(188, 421);
-            this.groupBox2.TabIndex = 2;
-            this.groupBox2.TabStop = false;
-            this.groupBox2.Text = "Exclude Catch";
-            //
-            // cbSelectAllCatch
-            //
-            this.cbSelectAllCatch.AutoSize = true;
-            this.cbSelectAllCatch.Location = new System.Drawing.Point(6, 22);
-            this.cbSelectAllCatch.Name = "cbSelectAllCatch";
-            this.cbSelectAllCatch.Size = new System.Drawing.Size(74, 19);
-            this.cbSelectAllCatch.TabIndex = 1;
-            this.cbSelectAllCatch.Text = "Select All";
-            this.cbSelectAllCatch.UseVisualStyleBackColor = true;
-            //
-            // clbCatch
-            //
-            this.clbCatch.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.clbCatch.CheckOnClick = true;
-            this.clbCatch.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-            this.clbCatch.FormattingEnabled = true;
-            this.clbCatch.Location = new System.Drawing.Point(0, 41);
-            this.clbCatch.Name = "clbCatch";
-            this.clbCatch.Size = new System.Drawing.Size(188, 364);
-            this.clbCatch.TabIndex = 0;
-            //
-            // groupBox1
-            //
-            this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
-            | System.Windows.Forms.AnchorStyles.Left)));
-            this.groupBox1.Controls.Add(this.cbSelectAllTransfer);
-            this.groupBox1.Controls.Add(this.clbTransfer);
-            this.groupBox1.Location = new System.Drawing.Point(200, 6);
-            this.groupBox1.Name = "groupBox1";
-            this.groupBox1.Size = new System.Drawing.Size(188, 421);
-            this.groupBox1.TabIndex = 1;
-            this.groupBox1.TabStop = false;
-            this.groupBox1.Text = "Exclude Transfer";
-            //
-            // cbSelectAllTransfer
-            //
-            this.cbSelectAllTransfer.AutoSize = true;
-            this.cbSelectAllTransfer.Location = new System.Drawing.Point(6, 22);
-            this.cbSelectAllTransfer.Name = "cbSelectAllTransfer";
-            this.cbSelectAllTransfer.Size = new System.Drawing.Size(74, 19);
-            this.cbSelectAllTransfer.TabIndex = 1;
-            this.cbSelectAllTransfer.Text = "Select All";
-            this.cbSelectAllTransfer.UseVisualStyleBackColor = true;
-            //
-            // clbTransfer
-            //
-            this.clbTransfer.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.clbTransfer.CheckOnClick = true;
-            this.clbTransfer.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-            this.clbTransfer.FormattingEnabled = true;
-            this.clbTransfer.Location = new System.Drawing.Point(0, 41);
-            this.clbTransfer.Name = "clbTransfer";
-            this.clbTransfer.Size = new System.Drawing.Size(188, 364);
-            this.clbTransfer.TabIndex = 0;
-            //
-            // tabItems
-            //
-            this.tabItems.BackColor = System.Drawing.SystemColors.Control;
-            this.tabItems.Controls.Add(this.flpItems);
-            this.tabItems.Location = new System.Drawing.Point(4, 24);
-            this.tabItems.Name = "tabItems";
-            this.tabItems.Padding = new System.Windows.Forms.Padding(3);
-            this.tabItems.Size = new System.Drawing.Size(598, 437);
-            this.tabItems.TabIndex = 2;
-            this.tabItems.Text = "Items";
-            //
-            // flpItems
-            //
-            this.flpItems.Dock = System.Windows.Forms.DockStyle.Fill;
-            this.flpItems.FlowDirection = System.Windows.Forms.FlowDirection.TopDown;
-            this.flpItems.Location = new System.Drawing.Point(3, 3);
-            this.flpItems.Name = "flpItems";
-            this.flpItems.Size = new System.Drawing.Size(592, 431);
-            this.flpItems.TabIndex = 0;
-            //
-            // tabDevice
-            //
-            this.tabDevice.Controls.Add(this.label22);
-            this.tabDevice.Controls.Add(this.label20);
-            this.tabDevice.Controls.Add(this.label21);
-            this.tabDevice.Controls.Add(this.RandomIDBtn);
-            this.tabDevice.Controls.Add(this.deviceTypeCb);
-            this.tabDevice.Controls.Add(this.RandomDeviceBtn);
-            this.tabDevice.Controls.Add(this.FirmwareFingerprintTb);
-            this.tabDevice.Controls.Add(this.label14);
-            this.tabDevice.Controls.Add(this.FirmwareTypeTb);
-            this.tabDevice.Controls.Add(this.label13);
-            this.tabDevice.Controls.Add(this.FirmwareTagsTb);
-            this.tabDevice.Controls.Add(this.label12);
-            this.tabDevice.Controls.Add(this.FirmwareBrandTb);
-            this.tabDevice.Controls.Add(this.label11);
-            this.tabDevice.Controls.Add(this.HardwareModelTb);
-            this.tabDevice.Controls.Add(this.label10);
-            this.tabDevice.Controls.Add(this.HardwareManufacturerTb);
-            this.tabDevice.Controls.Add(this.label9);
-            this.tabDevice.Controls.Add(this.DeviceModelBootTb);
-            this.tabDevice.Controls.Add(this.label8);
-            this.tabDevice.Controls.Add(this.DeviceModelIdentifierTb);
-            this.tabDevice.Controls.Add(this.label7);
-            this.tabDevice.Controls.Add(this.DeviceModelTb);
-            this.tabDevice.Controls.Add(this.label15);
-            this.tabDevice.Controls.Add(this.DeviceBrandTb);
-            this.tabDevice.Controls.Add(this.label16);
-            this.tabDevice.Controls.Add(this.AndroidBootloaderTb);
-            this.tabDevice.Controls.Add(this.label17);
-            this.tabDevice.Controls.Add(this.AndroidBoardNameTb);
-            this.tabDevice.Controls.Add(this.BoardName);
-            this.tabDevice.Controls.Add(this.DeviceIdTb);
-            this.tabDevice.Controls.Add(this.deviceIdlb);
-            this.tabDevice.Controls.Add(this.label18);
-            this.tabDevice.Location = new System.Drawing.Point(4, 24);
-            this.tabDevice.Name = "tabDevice";
-            this.tabDevice.Size = new System.Drawing.Size(598, 437);
-            this.tabDevice.TabIndex = 0;
-            this.tabDevice.Text = "Device";
-            //
-            // label22
-            //
-            this.label22.AutoSize = true;
-            this.label22.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
-            this.label22.Location = new System.Drawing.Point(416, 92);
-            this.label22.Name = "label22";
-            this.label22.Size = new System.Drawing.Size(168, 90);
-            this.label22.TabIndex = 69;
-            this.label22.Text = "This setting change what the \r\nserver think you are using to \r\nplay Pokémon GO. I" +
-    "ts a good \r\nidea to change your device to \r\nwhat phone you are using to \r\npreven" +
-    "t ip ban.";
-            //
-            // label20
-            //
-            this.label20.AutoSize = true;
-            this.label20.Font = new System.Drawing.Font("Microsoft Sans Serif", 11F);
-            this.label20.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))));
-            this.label20.Location = new System.Drawing.Point(416, 13);
-            this.label20.Name = "label20";
-            this.label20.Size = new System.Drawing.Size(74, 18);
-            this.label20.TabIndex = 67;
-            this.label20.Text = "Important:";
-            //
-            // label21
-            //
-            this.label21.AutoSize = true;
-            this.label21.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
-            this.label21.Location = new System.Drawing.Point(416, 32);
-            this.label21.Name = "label21";
-            this.label21.Size = new System.Drawing.Size(164, 45);
-            this.label21.TabIndex = 66;
-            this.label21.Text = "For your account safety.\r\nPlease do not change your \r\naccount infomation too ofte" +
-    "n.\r\n";
-            //
-            // RandomIDBtn
-            //
-            this.RandomIDBtn.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
-            this.RandomIDBtn.Location = new System.Drawing.Point(326, 39);
-            this.RandomIDBtn.Name = "RandomIDBtn";
-            this.RandomIDBtn.Size = new System.Drawing.Size(87, 25);
-            this.RandomIDBtn.TabIndex = 65;
-            this.RandomIDBtn.Text = "Get New ID";
-            this.RandomIDBtn.UseVisualStyleBackColor = true;
-            this.RandomIDBtn.Click += new System.EventHandler(this.RandomIDBtn_Click);
-            //
-            // deviceTypeCb
-            //
-            this.deviceTypeCb.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
-            this.deviceTypeCb.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
-            this.deviceTypeCb.FormattingEnabled = true;
-            this.deviceTypeCb.Items.AddRange(new object[] {
-            "Apple",
-            "Android"});
-            this.deviceTypeCb.Location = new System.Drawing.Point(170, 13);
-            this.deviceTypeCb.Name = "deviceTypeCb";
-            this.deviceTypeCb.Size = new System.Drawing.Size(150, 23);
-            this.deviceTypeCb.TabIndex = 37;
-            this.deviceTypeCb.SelectionChangeCommitted += new System.EventHandler(this.deviceTypeCb_SelectedIndexChanged);
-            //
-            // RandomDeviceBtn
-            //
-            this.RandomDeviceBtn.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
-            this.RandomDeviceBtn.Location = new System.Drawing.Point(419, 334);
-            this.RandomDeviceBtn.Name = "RandomDeviceBtn";
-            this.RandomDeviceBtn.Size = new System.Drawing.Size(162, 79);
-            this.RandomDeviceBtn.TabIndex = 64;
-            this.RandomDeviceBtn.Text = "I am feeling RICH\r\n(Randomize)";
-            this.RandomDeviceBtn.UseVisualStyleBackColor = true;
-            this.RandomDeviceBtn.Click += new System.EventHandler(this.RandomDeviceBtn_Click);
-            //
-            // FirmwareFingerprintTb
-            //
-            this.FirmwareFingerprintTb.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
-            this.FirmwareFingerprintTb.Location = new System.Drawing.Point(170, 392);
-            this.FirmwareFingerprintTb.Name = "FirmwareFingerprintTb";
-            this.FirmwareFingerprintTb.Size = new System.Drawing.Size(243, 21);
-            this.FirmwareFingerprintTb.TabIndex = 62;
-            //
-            // label14
-            //
-            this.label14.AutoSize = true;
-            this.label14.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
-            this.label14.Location = new System.Drawing.Point(19, 396);
-            this.label14.Name = "label14";
-            this.label14.Size = new System.Drawing.Size(121, 15);
-            this.label14.TabIndex = 49;
-            this.label14.Text = "Firmware Fingerprint";
-            //
-            // FirmwareTypeTb
-            //
-            this.FirmwareTypeTb.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
-            this.FirmwareTypeTb.Location = new System.Drawing.Point(170, 363);
-            this.FirmwareTypeTb.Name = "FirmwareTypeTb";
-            this.FirmwareTypeTb.Size = new System.Drawing.Size(243, 21);
-            this.FirmwareTypeTb.TabIndex = 58;
-            //
-            // label13
-            //
-            this.label13.AutoSize = true;
-            this.label13.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
-            this.label13.Location = new System.Drawing.Point(19, 366);
-            this.label13.Name = "label13";
-            this.label13.Size = new System.Drawing.Size(88, 15);
-            this.label13.TabIndex = 51;
-            this.label13.Text = "Firmware Type";
-            //
-            // FirmwareTagsTb
-            //
-            this.FirmwareTagsTb.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
-            this.FirmwareTagsTb.Location = new System.Drawing.Point(170, 334);
-            this.FirmwareTagsTb.Name = "FirmwareTagsTb";
-            this.FirmwareTagsTb.Size = new System.Drawing.Size(243, 21);
-            this.FirmwareTagsTb.TabIndex = 54;
-            //
-            // label12
-            //
-            this.label12.AutoSize = true;
-            this.label12.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
-            this.label12.Location = new System.Drawing.Point(19, 337);
-            this.label12.Name = "label12";
-            this.label12.Size = new System.Drawing.Size(89, 15);
-            this.label12.TabIndex = 50;
-            this.label12.Text = "Firmware Tags";
-            //
-            // FirmwareBrandTb
-            //
-            this.FirmwareBrandTb.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
-            this.FirmwareBrandTb.Location = new System.Drawing.Point(170, 305);
-            this.FirmwareBrandTb.Name = "FirmwareBrandTb";
-            this.FirmwareBrandTb.Size = new System.Drawing.Size(243, 21);
-            this.FirmwareBrandTb.TabIndex = 52;
-            //
-            // label11
-            //
-            this.label11.AutoSize = true;
-            this.label11.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
-            this.label11.Location = new System.Drawing.Point(19, 308);
-            this.label11.Name = "label11";
-            this.label11.Size = new System.Drawing.Size(95, 15);
-            this.label11.TabIndex = 48;
-            this.label11.Text = "Firmware Brand";
-            //
-            // HardwareModelTb
-            //
-            this.HardwareModelTb.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
-            this.HardwareModelTb.Location = new System.Drawing.Point(170, 275);
-            this.HardwareModelTb.Name = "HardwareModelTb";
-            this.HardwareModelTb.Size = new System.Drawing.Size(243, 21);
-            this.HardwareModelTb.TabIndex = 56;
-            //
-            // label10
-            //
-            this.label10.AutoSize = true;
-            this.label10.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
-            this.label10.Location = new System.Drawing.Point(19, 279);
-            this.label10.Name = "label10";
-            this.label10.Size = new System.Drawing.Size(99, 15);
-            this.label10.TabIndex = 46;
-            this.label10.Text = "Hardware Model";
-            //
-            // HardwareManufacturerTb
-            //
-            this.HardwareManufacturerTb.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
-            this.HardwareManufacturerTb.Location = new System.Drawing.Point(170, 246);
-            this.HardwareManufacturerTb.Name = "HardwareManufacturerTb";
-            this.HardwareManufacturerTb.Size = new System.Drawing.Size(243, 21);
-            this.HardwareManufacturerTb.TabIndex = 60;
-            //
-            // label9
-            //
-            this.label9.AutoSize = true;
-            this.label9.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
-            this.label9.Location = new System.Drawing.Point(19, 249);
-            this.label9.Name = "label9";
-            this.label9.Size = new System.Drawing.Size(140, 15);
-            this.label9.TabIndex = 47;
-            this.label9.Text = "Hardware Manu facturer";
-            //
-            // DeviceModelBootTb
-            //
-            this.DeviceModelBootTb.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
-            this.DeviceModelBootTb.Location = new System.Drawing.Point(170, 217);
-            this.DeviceModelBootTb.Name = "DeviceModelBootTb";
-            this.DeviceModelBootTb.Size = new System.Drawing.Size(243, 21);
-            this.DeviceModelBootTb.TabIndex = 63;
-            //
-            // label8
-            //
-            this.label8.AutoSize = true;
-            this.label8.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
-            this.label8.Location = new System.Drawing.Point(19, 220);
-            this.label8.Name = "label8";
-            this.label8.Size = new System.Drawing.Size(110, 15);
-            this.label8.TabIndex = 44;
-            this.label8.Text = "Device Model Boot";
-            //
-            // DeviceModelIdentifierTb
-            //
-            this.DeviceModelIdentifierTb.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
-            this.DeviceModelIdentifierTb.Location = new System.Drawing.Point(170, 188);
-            this.DeviceModelIdentifierTb.Name = "DeviceModelIdentifierTb";
-            this.DeviceModelIdentifierTb.Size = new System.Drawing.Size(243, 21);
-            this.DeviceModelIdentifierTb.TabIndex = 53;
-            //
-            // label7
-            //
-            this.label7.AutoSize = true;
-            this.label7.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
-            this.label7.Location = new System.Drawing.Point(19, 191);
-            this.label7.Name = "label7";
-            this.label7.Size = new System.Drawing.Size(132, 15);
-            this.label7.TabIndex = 43;
-            this.label7.Text = "Device Model Identifier";
-            //
-            // DeviceModelTb
-            //
-            this.DeviceModelTb.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
-            this.DeviceModelTb.Location = new System.Drawing.Point(170, 158);
-            this.DeviceModelTb.Name = "DeviceModelTb";
-            this.DeviceModelTb.Size = new System.Drawing.Size(243, 21);
-            this.DeviceModelTb.TabIndex = 55;
-            //
-            // label15
-            //
-            this.label15.AutoSize = true;
-            this.label15.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
-            this.label15.Location = new System.Drawing.Point(19, 162);
-            this.label15.Name = "label15";
-            this.label15.Size = new System.Drawing.Size(82, 15);
-            this.label15.TabIndex = 42;
-            this.label15.Text = "Device Model";
-            //
-            // DeviceBrandTb
-            //
-            this.DeviceBrandTb.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
-            this.DeviceBrandTb.Location = new System.Drawing.Point(170, 129);
-            this.DeviceBrandTb.Name = "DeviceBrandTb";
-            this.DeviceBrandTb.Size = new System.Drawing.Size(243, 21);
-            this.DeviceBrandTb.TabIndex = 57;
-            //
-            // label16
-            //
-            this.label16.AutoSize = true;
-            this.label16.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
-            this.label16.Location = new System.Drawing.Point(19, 132);
-            this.label16.Name = "label16";
-            this.label16.Size = new System.Drawing.Size(80, 15);
-            this.label16.TabIndex = 41;
-            this.label16.Text = "Device Brand";
-            //
-            // AndroidBootloaderTb
-            //
-            this.AndroidBootloaderTb.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
-            this.AndroidBootloaderTb.Location = new System.Drawing.Point(170, 100);
-            this.AndroidBootloaderTb.Name = "AndroidBootloaderTb";
-            this.AndroidBootloaderTb.Size = new System.Drawing.Size(243, 21);
-            this.AndroidBootloaderTb.TabIndex = 59;
-            //
-            // label17
-            //
-            this.label17.AutoSize = true;
-            this.label17.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
-            this.label17.Location = new System.Drawing.Point(19, 103);
-            this.label17.Name = "label17";
-            this.label17.Size = new System.Drawing.Size(115, 15);
-            this.label17.TabIndex = 40;
-            this.label17.Text = "Android Boot loader";
-            //
-            // AndroidBoardNameTb
-            //
-            this.AndroidBoardNameTb.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
-            this.AndroidBoardNameTb.Location = new System.Drawing.Point(170, 71);
-            this.AndroidBoardNameTb.Name = "AndroidBoardNameTb";
-            this.AndroidBoardNameTb.Size = new System.Drawing.Size(243, 21);
-            this.AndroidBoardNameTb.TabIndex = 61;
-            //
-            // BoardName
-            //
-            this.BoardName.AutoSize = true;
-            this.BoardName.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
-            this.BoardName.Location = new System.Drawing.Point(19, 74);
-            this.BoardName.Name = "BoardName";
-            this.BoardName.Size = new System.Drawing.Size(122, 15);
-            this.BoardName.TabIndex = 39;
-            this.BoardName.Text = "Android Board Name";
-            //
-            // DeviceIdTb
-            //
-            this.DeviceIdTb.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
-            this.DeviceIdTb.Location = new System.Drawing.Point(170, 41);
-            this.DeviceIdTb.Name = "DeviceIdTb";
-            this.DeviceIdTb.Size = new System.Drawing.Size(150, 21);
-            this.DeviceIdTb.TabIndex = 38;
-            //
-            // deviceIdlb
-            //
-            this.deviceIdlb.AutoSize = true;
-            this.deviceIdlb.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
-            this.deviceIdlb.Location = new System.Drawing.Point(19, 45);
-            this.deviceIdlb.Name = "deviceIdlb";
-            this.deviceIdlb.Size = new System.Drawing.Size(59, 15);
-            this.deviceIdlb.TabIndex = 45;
-            this.deviceIdlb.Text = "Device ID";
-            //
-            // label18
-            //
-            this.label18.AutoSize = true;
-            this.label18.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
-            this.label18.Location = new System.Drawing.Point(19, 16);
-            this.label18.Name = "label18";
-            this.label18.Size = new System.Drawing.Size(76, 15);
-            this.label18.TabIndex = 36;
-            this.label18.Text = "Device Type:";
-            //
-            // SettingsForm
-            //
-            this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
-            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-            this.ClientSize = new System.Drawing.Size(867, 465);
-            this.Controls.Add(this.panel2);
-            this.Controls.Add(this.panel1);
-            this.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
-            this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
-            this.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
-            this.MinimumSize = new System.Drawing.Size(874, 497);
-            this.Name = "SettingsForm";
-            this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Show;
-            this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
-            this.Text = "Settings";
-            this.Load += new System.EventHandler(this.SettingsForm_Load);
-            ((System.ComponentModel.ISupportInitialize)(this.trackBar)).EndInit();
-            this.panel1.ResumeLayout(false);
-            this.panel1.PerformLayout();
-            this.panel2.ResumeLayout(false);
-            this.tabControl.ResumeLayout(false);
-            this.tabLocation.ResumeLayout(false);
-            this.tabLocation.PerformLayout();
-            this.tabPokemon.ResumeLayout(false);
-            this.groupBox3.ResumeLayout(false);
-            this.groupBox3.PerformLayout();
-            this.groupBox2.ResumeLayout(false);
-            this.groupBox2.PerformLayout();
-            this.groupBox1.ResumeLayout(false);
-            this.groupBox1.PerformLayout();
-            this.tabItems.ResumeLayout(false);
-            this.tabDevice.ResumeLayout(false);
-            this.tabDevice.PerformLayout();
-            this.ResumeLayout(false);
-
-        }
-
-        #endregion
-
-        private System.Windows.Forms.Label authTypeLabel;
-        private System.Windows.Forms.ComboBox authTypeCb;
-        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;
-        private System.Windows.Forms.Label label2;
-        private System.Windows.Forms.Label label3;
-        private System.Windows.Forms.Label label4;
-        private System.Windows.Forms.Label label5;
-        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;
-        private System.Windows.Forms.TextBox razzSettingText;
-        private System.Windows.Forms.ComboBox transferTypeCb;
-        private System.Windows.Forms.TextBox transferCpThresText;
-        private System.Windows.Forms.CheckBox evolveAllChk;
-        private System.Windows.Forms.Button saveBtn;
-        private GMap.NET.WindowsForms.GMapControl gMapControl1;
-        private System.Windows.Forms.Panel panel1;
-        private System.Windows.Forms.TrackBar trackBar;
-        private System.Windows.Forms.TextBox TravelSpeedBox;
-        private System.Windows.Forms.Label label6;
-        private System.Windows.Forms.Label TravelSpeedText;
-        private System.Windows.Forms.TextBox transferIVThresText;
-        private System.Windows.Forms.TextBox AdressBox;
-        private System.Windows.Forms.Button FindAdressButton;
-        private System.Windows.Forms.CheckBox CatchPokemonBox;
-        private System.Windows.Forms.Label CatchPokemonText;
-        private System.Windows.Forms.Panel panel2;
-        private System.Windows.Forms.TabControl tabControl;
-        private System.Windows.Forms.TabPage tabLocation;
-        private System.Windows.Forms.TabPage tabPokemon;
-        private System.Windows.Forms.CheckedListBox clbTransfer;
-        private System.Windows.Forms.GroupBox groupBox1;
-        private System.Windows.Forms.GroupBox groupBox2;
-        private System.Windows.Forms.CheckedListBox clbCatch;
-        private System.Windows.Forms.GroupBox groupBox3;
-        private System.Windows.Forms.CheckedListBox clbEvolve;
-        private System.Windows.Forms.CheckBox cbSelectAllEvolve;
-        private System.Windows.Forms.CheckBox cbSelectAllCatch;
-        private System.Windows.Forms.CheckBox cbSelectAllTransfer;
-        private System.Windows.Forms.TabPage tabDevice;
-        private System.Windows.Forms.Button RandomIDBtn;
-        private System.Windows.Forms.ComboBox deviceTypeCb;
-        private System.Windows.Forms.Button RandomDeviceBtn;
-        private System.Windows.Forms.TextBox FirmwareFingerprintTb;
-        private System.Windows.Forms.Label label14;
-        private System.Windows.Forms.TextBox FirmwareTypeTb;
-        private System.Windows.Forms.Label label13;
-        private System.Windows.Forms.TextBox FirmwareTagsTb;
-        private System.Windows.Forms.Label label12;
-        private System.Windows.Forms.TextBox FirmwareBrandTb;
-        private System.Windows.Forms.Label label11;
-        private System.Windows.Forms.TextBox HardwareModelTb;
-        private System.Windows.Forms.Label label10;
-        private System.Windows.Forms.TextBox HardwareManufacturerTb;
-        private System.Windows.Forms.Label label9;
-        private System.Windows.Forms.TextBox DeviceModelBootTb;
-        private System.Windows.Forms.Label label8;
-        private System.Windows.Forms.TextBox DeviceModelIdentifierTb;
-        private System.Windows.Forms.Label label7;
-        private System.Windows.Forms.TextBox DeviceModelTb;
-        private System.Windows.Forms.Label label15;
-        private System.Windows.Forms.TextBox DeviceBrandTb;
-        private System.Windows.Forms.Label label16;
-        private System.Windows.Forms.TextBox AndroidBootloaderTb;
-        private System.Windows.Forms.Label label17;
-        private System.Windows.Forms.TextBox AndroidBoardNameTb;
-        private System.Windows.Forms.Label BoardName;
-        private System.Windows.Forms.TextBox DeviceIdTb;
-        private System.Windows.Forms.Label deviceIdlb;
-        private System.Windows.Forms.Label label18;
-        private System.Windows.Forms.Label label20;
-        private System.Windows.Forms.Label label21;
-        private System.Windows.Forms.Label label22;
-        private System.Windows.Forms.TabPage tabItems;
-        private System.Windows.Forms.FlowLayoutPanel flpItems;
-        private System.Windows.Forms.Label useIncubatorsText;
-        private System.Windows.Forms.ComboBox useIncubatorsCb;
-    }
-}
diff --git a/PokemonGo.RocketBot.Window/Helpers/DeviceHelper.cs b/PokemonGo.RocketBot.Window/Helpers/DeviceHelper.cs
index d852dbf..12524b4 100644
--- a/PokemonGo.RocketBot.Window/Helpers/DeviceHelper.cs
+++ b/PokemonGo.RocketBot.Window/Helpers/DeviceHelper.cs
@@ -3,6 +3,7 @@ using System.Collections.Generic;
 using System.IO;
 using System.Linq;
 using System.Security.Cryptography;
+using PokemonGo.RocketBot.Logic.Utils;

 namespace PokemonGo.RocketBot.Window.Helpers
 {
@@ -14,34 +15,53 @@ namespace PokemonGo.RocketBot.Window.Helpers
         public DeviceHelper()
         {
             var deviceInfoStrings = new List<string[]>();
-            if (!File.Exists(_deviceSourcePath))
+            if (File.Exists(_deviceSourcePath))
             {
-                return;
-            }
-            using (var reader = new StreamReader(_deviceSourcePath))
-            {
-                string stringLine;
-                while ((stringLine = reader.ReadLine()) != null)
+                using (var reader = new StreamReader(_deviceSourcePath))
                 {
-                    deviceInfoStrings.Add(stringLine.Split(';'));
+                    string stringLine;
+                    while ((stringLine = reader.ReadLine()) != null)
+                    {
+                        deviceInfoStrings.Add(stringLine.Split(';'));
+                    }
                 }
+                DeviceBucket = deviceInfoStrings.Select(info => new DeviceInfo
+                {
+                    DeviceId = info[0],
+                    AndroidBoardName = info[1],
+                    AndroidBootloader = info[2],
+                    DeviceBrand = info[3],
+                    DeviceModel = info[4],
+                    DeviceModelIdentifier = info[5],
+                    DeviceModelBoot = info[6],
+                    HardwareManufacturer = info[7],
+                    HardwareModel = info[8],
+                    FirmwareBrand = info[9],
+                    FirmwareTags = info[10],
+                    FirmwareType = info[11],
+                    FirmwareFingerprint = info[12]
+                }).ToList();
             }
-            DeviceBucket = deviceInfoStrings.Select(info => new DeviceInfo
+            //also add the list from Necro
+            foreach (var necroSet in DeviceInfoHelper.DeviceInfoSets.Values)
             {
-                DeviceId = info[0],
-                AndroidBoardName = info[1],
-                AndroidBootloader = info[2],
-                DeviceBrand = info[3],
-                DeviceModel = info[4],
-                DeviceModelIdentifier = info[5],
-                DeviceModelBoot = info[6],
-                HardwareManufacturer = info[7],
-                HardwareModel = info[8],
-                FirmwareBrand = info[9],
-                FirmwareTags = info[10],
-                FirmwareType = info[11],
-                FirmwareFingerprint = info[12]
-            }).ToList();
+                DeviceBucket.Add(new DeviceInfo
+                {
+                    DeviceId = necroSet["DeviceId"],
+                    AndroidBoardName = necroSet["AndroidBoardName"],
+                    AndroidBootloader = necroSet["AndroidBootloader"],
+                    DeviceBrand = necroSet["DeviceBrand"],
+                    DeviceModel = necroSet["DeviceModel"],
+                    DeviceModelIdentifier = necroSet["DeviceModelIdentifier"],
+                    DeviceModelBoot = necroSet["DeviceModelBoot"],
+                    HardwareManufacturer = necroSet["HardwareManufacturer"],
+                    HardwareModel = necroSet["HardwareModel"],
+                    FirmwareBrand = necroSet["FirmwareBrand"],
+                    FirmwareTags = necroSet["FirmwareTags"],
+                    FirmwareType = necroSet["FirmwareType"],
+                    FirmwareFingerprint = necroSet["FirmwareFingerprint"]
+                });
+            }
         }

         public int GetRandomIndex(int max)
diff --git a/PokemonGo.RocketBot.Window/PokemonGo.RocketBot.Window.csproj b/PokemonGo.RocketBot.Window/PokemonGo.RocketBot.Window.csproj
index 674d74e..4ce519b 100644
--- a/PokemonGo.RocketBot.Window/PokemonGo.RocketBot.Window.csproj
+++ b/PokemonGo.RocketBot.Window/PokemonGo.RocketBot.Window.csproj
@@ -130,15 +130,23 @@
     <Reference Include="System" />
     <Reference Include="System.Configuration" />
     <Reference Include="System.Core" />
+    <Reference Include="System.Data" />
     <Reference Include="System.Drawing" />
     <Reference Include="System.IO.Compression" />
     <Reference Include="System.Management" />
     <Reference Include="System.Windows.Forms" />
     <Reference Include="Microsoft.CSharp" />
+    <Reference Include="System.Xml" />
   </ItemGroup>
   <ItemGroup>
     <Compile Include="ConsoleEventListener.cs" />
     <Compile Include="ConsoleLogger.cs" />
+    <Compile Include="Forms\SettingForm.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="Forms\SettingForm.Designer.cs">
+      <DependentUpon>SettingForm.cs</DependentUpon>
+    </Compile>
     <Compile Include="Helpers\DeviceHelper.cs" />
     <Compile Include="Forms\ItemBox.cs">
       <SubType>UserControl</SubType>
@@ -180,12 +188,6 @@
       <DependentUpon>Resources.resx</DependentUpon>
     </Compile>
     <Compile Include="Resources\ProgressBar.cs" />
-    <Compile Include="Forms\SettingsForm.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Include="Forms\SettingsForm.designer.cs">
-      <DependentUpon>SettingsForm.cs</DependentUpon>
-    </Compile>
     <Compile Include="Program.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
     <Compile Include="WebSocketHandler\GetCommands\Events\WebResponce.cs" />
@@ -216,98 +218,95 @@
   </ItemGroup>
   <ItemGroup>
     <None Include="App.config" />
-    <None Include="Config\Translations\translation.uk_UA.json">
-      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
-    </None>
-    <None Include="Config\Translations\translation.zh_tw.json">
-      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
-    </None>
-    <None Include="packages.config" />
     <None Include="Config\log4net.config" />
     <None Include="Config\log4net.unix.config" />
+    <Content Include="Config\Translations\translation.ca.json">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="Config\Translations\translation.cs.json">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="Config\Translations\translation.da.json">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="Config\Translations\translation.de.json">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="Config\Translations\translation.es.json">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="Config\Translations\translation.et.json">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="Config\Translations\translation.fr.json">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="Config\Translations\translation.gr.json">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="Config\Translations\translation.hu.json">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="Config\Translations\translation.id.json">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="Config\Translations\translation.it.json">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="Config\Translations\translation.lt.json">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="Config\Translations\translation.nl.json">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="Config\Translations\translation.no.json">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="Config\Translations\translation.pl.json">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="Config\Translations\translation.pt-br.json">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="Config\Translations\translation.pt-pt.json">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="Config\Translations\translation.ro.json">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="Config\Translations\translation.ru_RU.json">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="Config\Translations\translation.sv.json">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="Config\Translations\translation.th.json">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="Config\Translations\translation.tr.json">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="Config\Translations\translation.uk_UA.json">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="Config\Translations\translation.vi.json">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="Config\Translations\translation.zh_CN.json">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="Config\Translations\translation.zh_TW.json">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <None Include="packages.config" />
     <None Include="cert.pfx">
       <CopyToOutputDirectory>Always</CopyToOutputDirectory>
     </None>
+    <Content Include="Resources\device info.csv">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
     <None Include="supersocket.cmd" />
     <None Include="supersocket.sh" />
-    <None Include="Config\Translations\translation.ca.json">
-      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
-    </None>
-    <None Include="Config\Translations\translation.cs.json">
-      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
-    </None>
-    <None Include="Config\Translations\translation.da.json">
-      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
-    </None>
-    <None Include="Config\Translations\translation.de.json">
-      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
-    </None>
-    <None Include="Config\Translations\translation.es.json">
-      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
-    </None>
-    <None Include="Config\Translations\translation.et.json">
-      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
-    </None>
-    <None Include="Config\Translations\translation.fr.json">
-      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
-    </None>
-    <None Include="Config\Translations\translation.gr.json">
-      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
-    </None>
-    <None Include="Config\Translations\translation.hu.json">
-      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
-    </None>
-    <None Include="Config\Translations\translation.id.json">
-      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
-    </None>
-    <None Include="Config\Translations\translation.it.json">
-      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
-    </None>
-    <None Include="Config\Translations\translation.lt.json">
-      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
-    </None>
-    <None Include="Config\Translations\translation.nl.json">
-      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
-    </None>
-    <None Include="Config\Translations\translation.no.json">
-      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
-    </None>
-    <None Include="Config\Translations\translation.pl.json">
-      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
-    </None>
-    <None Include="Config\Translations\translation.pt-br.json">
-      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
-    </None>
-    <None Include="Config\Translations\translation.pt-pt.json">
-      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
-    </None>
-    <None Include="Config\Translations\translation.ro.json">
-      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
-    </None>
-    <None Include="Config\Translations\translation.ru_RU.json">
-      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
-    </None>
-    <None Include="Config\Translations\translation.sv.json">
-      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
-    </None>
-    <None Include="Config\Translations\translation.th.json">
-      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
-    </None>
-    <None Include="Config\Translations\translation.tr.json">
-      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
-    </None>
-    <None Include="Config\Translations\translation.uk_UA.json">
-      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
-    </None>
-    <None Include="Config\Translations\translation.vi.json">
-      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
-    </None>
-    <None Include="Config\Translations\translation.zh_CN.json">
-      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
-    </None>
-    <None Include="Config\Translations\translation.zh_TW.json">
-      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
-    </None>
   </ItemGroup>
   <ItemGroup>
     <WCFMetadata Include="Service References\" />
@@ -508,13 +507,13 @@
     <EmbeddedResource Include="Forms\NicknamePokemonForm.resx">
       <DependentUpon>NicknamePokemonForm.cs</DependentUpon>
     </EmbeddedResource>
+    <EmbeddedResource Include="Forms\SettingForm.resx">
+      <DependentUpon>SettingForm.cs</DependentUpon>
+    </EmbeddedResource>
     <EmbeddedResource Include="Properties\Resources.resx">
       <Generator>ResXFileCodeGenerator</Generator>
       <LastGenOutput>Resources.Designer.cs</LastGenOutput>
     </EmbeddedResource>
-    <EmbeddedResource Include="Forms\SettingsForm.resx">
-      <DependentUpon>SettingsForm.cs</DependentUpon>
-    </EmbeddedResource>
   </ItemGroup>
   <ItemGroup>
     <BootstrapperPackage Include=".NETFramework,Version=v4.5.2">
diff --git a/PokemonGo.RocketBot.Window/Resources/device info.csv b/PokemonGo.RocketBot.Window/Resources/device info.csv
new file mode 100644
index 0000000..d23921c
--- /dev/null
+++ b/PokemonGo.RocketBot.Window/Resources/device info.csv
@@ -0,0 +1,302 @@
+8525f5d8201f78b5;unknown;iBoot;APPLE;IPAD 2;A1395;iOS;APPLE;iPad2,3;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M2075073:user/release-keys
+8525f5d8201f78b5;unknown;iBoot;APPLE;IPAD 2 A1396;A1396;iOS;APPLE;iPad2,3;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M4359342:user/release-keys
+8525f5d8201f78b5;unknown;iBoot;APPLE;IPAD 2 A1397;A1397;iOS;APPLE;iPad2,3;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M257347:user/release-keys
+8525f5d8201f78b5;unknown;iBoot;APPLE;IPAD 3;A1416;iOS;APPLE;iPad3,2;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M730234:user/release-keys
+8525f5d8201f78b5;unknown;iBoot;APPLE;IPAD 3 A1403;A1403;iOS;APPLE;iPad3,2;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M7948214:user/release-keys
+8525f5d8201f78b5;unknown;iBoot;APPLE;IPAD 3 A1430;A1430;iOS;APPLE;iPad3,2;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M1104024:user/release-keys
+8525f5d8201f78b5;unknown;iBoot;APPLE;IPAD 4;A1458;iOS;APPLE;iPad3,5;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M8679143:user/release-keys
+8525f5d8201f78b5;unknown;iBoot;APPLE;IPAD 4 A1459;A1459;iOS;APPLE;iPad3,5;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M3431274:user/release-keys
+8525f5d8201f78b5;unknown;iBoot;APPLE;IPAD 4 A1460;A1460;iOS;APPLE;iPad3,5;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M73832:user/release-keys
+8525f5d8201f78b5;unknown;iBoot;APPLE;IPAD AIR;A1474;iOS;APPLE;iPad4,2;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M6930267:user/release-keys
+8525f5d8201f78b5;unknown;iBoot;APPLE;IPAD AIR 2;A1566;iOS;APPLE;iPad4,2;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M7147426:user/release-keys
+8525f5d8201f78b5;unknown;iBoot;APPLE;IPAD AIR 2 A1567;A1567;iOS;APPLE;iPad4,2;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M6021013:user/release-keys
+8525f5d8201f78b5;unknown;iBoot;APPLE;IPAD AIR A1475;A1475;iOS;APPLE;iPad4,2;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M6475908:user/release-keys
+8525f5d8201f78b5;unknown;iBoot;APPLE;IPAD AIR A1476;A1476;iOS;APPLE;iPad4,2;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M4577501:user/release-keys
+8525f5d8201f78b5;unknown;iBoot;APPLE;IPAD MINI 2;A1489;iOS;APPLE;iPad4,5;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M4024447:user/release-keys
+8525f5d8201f78b5;unknown;iBoot;APPLE;IPAD MINI 2 A1490;A1490;iOS;APPLE;iPad4,5;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M420477:user/release-keys
+8525f5d8201f78b5;unknown;iBoot;APPLE;IPAD MINI 2 A1491;A1491;iOS;APPLE;iPad4,5;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M246492:user/release-keys
+8525f5d8201f78b5;unknown;iBoot;APPLE;IPAD MINI 3;A1599;iOS;APPLE;iPad4,8;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M1772613:user/release-keys
+8525f5d8201f78b5;unknown;iBoot;APPLE;IPAD MINI 3 A1600;A1600;iOS;APPLE;iPad4,8;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M2865802:user/release-keys
+8525f5d8201f78b5;unknown;iBoot;APPLE;IPAD MINI 3 A1601;A1601;iOS;APPLE;iPad4,8;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M7326455:user/release-keys
+8525f5d8201f78b5;unknown;iBoot;APPLE;IPAD MINI 4;A1550;iOS;APPLE;iPad4,8;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M2845334:user/release-keys
+8525f5d8201f78b5;unknown;iBoot;APPLE;IPAD MINI 4 WI-FI;A1538;iOS;APPLE;iPad5,2;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M3556066:user/release-keys
+8525f5d8201f78b5;unknown;iBoot;APPLE;IPAD MINI A1454;A1454;iOS;APPLE;iPad5,2;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M7645446:user/release-keys
+8525f5d8201f78b5;unknown;iBoot;APPLE;IPAD MINI A1455;A1455;iOS;APPLE;iPad5,2;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M6216432:user/release-keys
+8525f5d8201f78b5;unknown;iBoot;APPLE;IPAD PRO;A1652;iOS;APPLE;iPad6,4;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M1883672:user/release-keys
+8525f5d8201f78b5;unknown;iBoot;APPLE;IPAD PRO WI-FI;A1584;iOS;APPLE;iPad6,3;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M5641510:user/release-keys
+8525f5d8201f78b5;unknown;iBoot;APPLE;IPHONE 5;A1428;iOS;APPLE;iPhone5,1;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M4496206:user/release-keys
+8525f5d8201f78b5;unknown;iBoot;APPLE;IPHONE 5 A1429;A1429;iOS;APPLE;iPhone5,1;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M2734152:user/release-keys
+8525f5d8201f78b5;unknown;iBoot;APPLE;IPHONE 5 A1442;A1442;iOS;APPLE;iPhone5,1;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M4763363:user/release-keys
+8525f5d8201f78b5;unknown;iBoot;APPLE;IPHONE 5C;A1529;iOS;APPLE;iPhone5,3;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M5037630:user/release-keys
+8525f5d8201f78b5;unknown;iBoot;APPLE;IPHONE 5C A1456;A1456;iOS;APPLE;iPhone5,3;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M4654003:user/release-keys
+8525f5d8201f78b5;unknown;iBoot;APPLE;IPHONE 5C A1507;A1507;iOS;APPLE;iPhone5,3;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M5027417:user/release-keys
+8525f5d8201f78b5;unknown;iBoot;APPLE;IPHONE 5C A1532;A1516;iOS;APPLE;iPhone5,3;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M4779042:user/release-keys
+8525f5d8201f78b5;unknown;iBoot;APPLE;IPHONE 5C A1532 CDMA;A1532 CDMA;iOS;APPLE;iPhone5,3;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M2227998:user/release-keys
+8525f5d8201f78b5;unknown;iBoot;APPLE;IPHONE 5S;A1530;iOS;APPLE;iPhone6,1;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M7695664:user/release-keys
+8525f5d8201f78b5;unknown;iBoot;APPLE;IPHONE 5S A1453;A1453;iOS;APPLE;iPhone6,1;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M6487312:user/release-keys
+8525f5d8201f78b5;unknown;iBoot;APPLE;IPHONE 5S A1457;A1457;iOS;APPLE;iPhone6,1;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M6381537:user/release-keys
+8525f5d8201f78b5;unknown;iBoot;APPLE;IPHONE 5S A1518;A1518;iOS;APPLE;iPhone6,1;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M1076975:user/release-keys
+8525f5d8201f78b5;unknown;iBoot;APPLE;IPHONE 5S A1528;A1528;iOS;APPLE;iPhone6,1;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M8791510:user/release-keys
+8525f5d8201f78b5;unknown;iBoot;APPLE;IPHONE 5S A1530 CHINA;A1530 CHINA;iOS;APPLE;iPhone6,1;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M6326979:user/release-keys
+8525f5d8201f78b5;unknown;iBoot;APPLE;IPHONE 5S A1533;A1533;iOS;APPLE;iPhone6,1;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M4016191:user/release-keys
+8525f5d8201f78b5;unknown;iBoot;APPLE;IPHONE 5S A1533 CDMA;A1533 CDMA;iOS;APPLE;iPhone6,1;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M8287093:user/release-keys
+8525f5d8201f78b5;unknown;iBoot;APPLE;IPHONE 6;A1549;iOS;APPLE;iPhone8,1;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M2015300:user/release-keys
+8525f5d8201f78b5;unknown;iBoot;APPLE;IPHONE 6 A1549 CDMA;A1549 CDMA;iOS;APPLE;iPhone8,1;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M7909786:user/release-keys
+8525f5d8201f78b5;unknown;iBoot;APPLE;IPHONE 6 A1586;A1586;iOS;APPLE;iPhone8,1;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M7777206:user/release-keys
+8525f5d8201f78b5;unknown;iBoot;APPLE;IPHONE 6 A1589;A1589;iOS;APPLE;iPhone8,1;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M5548831:user/release-keys
+8525f5d8201f78b5;unknown;iBoot;APPLE;IPHONE 6 PLUS;A1522;iOS;APPLE;iPhone8,1;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M5528246:user/release-keys
+8525f5d8201f78b5;unknown;iBoot;APPLE;IPHONE 6 PLUS A1522 CDMA;A1522 CDMA;iOS;APPLE;iPhone8,1;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M1975615:user/release-keys
+8525f5d8201f78b5;unknown;iBoot;APPLE;IPHONE 6 PLUS A1524;A1524;iOS;APPLE;iPhone8,1;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M2424523:user/release-keys
+8525f5d8201f78b5;unknown;iBoot;APPLE;IPHONE 6 PLUS A1593;A1593;iOS;APPLE;iPhone8,1;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M289286:user/release-keys
+8525f5d8201f78b5;unknown;iBoot;APPLE;IPHONE 6S;A1633;iOS;APPLE;iPhone8,2;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M9138290:user/release-keys
+8525f5d8201f78b5;unknown;iBoot;APPLE;IPHONE 6S A1688;A1688;iOS;APPLE;iPhone8,2;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M725617:user/release-keys
+8525f5d8201f78b5;unknown;iBoot;APPLE;IPHONE 6S A1691;A1691;iOS;APPLE;iPhone8,2;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M3472594:user/release-keys
+8525f5d8201f78b5;unknown;iBoot;APPLE;IPHONE 6S A1700;A1700;iOS;APPLE;iPhone8,2;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M2650642:user/release-keys
+8525f5d8201f78b5;unknown;iBoot;APPLE;IPHONE 6S PLUS;A1634;iOS;APPLE;iPhone8,2;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M4545111:user/release-keys
+8525f5d8201f78b5;unknown;iBoot;APPLE;IPHONE 6S PLUS A1687;A1687;iOS;APPLE;iPhone8,2;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M1157729:user/release-keys
+8525f5d8201f78b5;unknown;iBoot;APPLE;IPHONE 6S PLUS A1690;A1690;iOS;APPLE;iPhone8,2;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M4912179:user/release-keys
+8525f5d8201f78b5;unknown;iBoot;APPLE;IPHONE 6S PLUS A1699;A1699;iOS;APPLE;iPhone8,2;apple;release-keys;user;apple/apple/unknown_6.0.1/MMB29M332946:user/release-keys
+8525f5d8201f78b5;MSM9038;unknown;DELL;AERO;AERO;qcom;DELL;SM-G925T;google;release-keys;user;dell/google/msm9038_6.0.1/MMB29M9051330:user/release-keys
+8525f5d8201f78b5;MSM9039;unknown;DELL;FLASH;FLASH;qcom;DELL;SM-G925T;google;release-keys;user;dell/google/msm9039_6.0.1/MMB29M3186163:user/release-keys
+8525f5d8201f78b5;MSM9040;unknown;DELL;MINI 3IX;MINI 3IX;qcom;DELL;SM-G925T;google;release-keys;user;dell/google/msm9040_6.0.1/MMB29M4153186:user/release-keys
+8525f5d8201f78b5;MSM9041;unknown;DELL;SMOKE;SMOKE;qcom;DELL;SM-G925T;google;release-keys;user;dell/google/msm9041_6.0.1/MMB29M538283:user/release-keys
+8525f5d8201f78b5;MSM9042;unknown;DELL;STREAK;M01M;qcom;DELL;SM-G925T;google;release-keys;user;dell/google/msm9042_6.0.1/MMB29M9622763:user/release-keys
+8525f5d8201f78b5;MSM9043;unknown;DELL;STREAK 10 PRO;STREAK 10 PRO;qcom;DELL;SM-G925T;google;release-keys;user;dell/google/msm9043_6.0.1/MMB29M8396531:user/release-keys
+8525f5d8201f78b5;MSM9044;unknown;DELL;STREAK 7;MO2M;qcom;DELL;SM-G925T;google;release-keys;user;dell/google/msm9044_6.0.1/MMB29M6535432:user/release-keys
+8525f5d8201f78b5;MSM9045;unknown;DELL;STREAK 7 WI-FI;STREAK 7 WI-FI;qcom;DELL;SM-G925T;google;release-keys;user;dell/google/msm9045_6.0.1/MMB29M4844270:user/release-keys
+8525f5d8201f78b5;MSM9046;unknown;DELL;STREAK PRO;STREAK PRO;qcom;DELL;SM-G925T;google;release-keys;user;dell/google/msm9046_6.0.1/MMB29M5455775:user/release-keys
+8525f5d8201f78b5;MSM9047;unknown;DELL;STREAK US;STREAK US;qcom;DELL;SM-G925T;google;release-keys;user;dell/google/msm9047_6.0.1/MMB29M7491292:user/release-keys
+8525f5d8201f78b5;MSM9048;unknown;DELL;VENUE 10 7000;VENUE 10 7000;qcom;DELL;SM-G925T;google;release-keys;user;dell/google/msm9048_6.0.1/MMB29M2745687:user/release-keys
+8525f5d8201f78b5;MSM9049;unknown;DELL;VENUE 7;VENUE 7;qcom;DELL;SM-G925T;google;release-keys;user;dell/google/msm9049_6.0.1/MMB29M2209238:user/release-keys
+8525f5d8201f78b5;MSM9050;unknown;DELL;VENUE 7 3730;3730;qcom;DELL;SM-G925T;google;release-keys;user;dell/google/msm9050_6.0.1/MMB29M7979339:user/release-keys
+8525f5d8201f78b5;MSM9051;unknown;DELL;VENUE 7 3730 8GB;VENUE 7 3730 8GB;qcom;DELL;SM-G925T;google;release-keys;user;dell/google/msm9051_6.0.1/MMB29M1067843:user/release-keys
+8525f5d8201f78b5;MSM9052;unknown;DELL;VENUE 7 3741;3741;qcom;DELL;SM-G925T;google;release-keys;user;dell/google/msm9052_6.0.1/MMB29M3681560:user/release-keys
+8525f5d8201f78b5;MSM9053;unknown;DELL;VENUE 7 WIFI;VENUE 7 WIFI;qcom;DELL;SM-G925T;google;release-keys;user;dell/google/msm9053_6.0.1/MMB29M4704136:user/release-keys
+8525f5d8201f78b5;MSM9054;unknown;DELL;VENUE 8;VENUE 8;qcom;DELL;SM-G925T;google;release-keys;user;dell/google/msm9054_6.0.1/MMB29M3634348:user/release-keys
+8525f5d8201f78b5;MSM9055;unknown;DELL;VENUE 8 3840;3840;qcom;DELL;SM-G925T;google;release-keys;user;dell/google/msm9055_6.0.1/MMB29M8597328:user/release-keys
+8525f5d8201f78b5;MSM9056;unknown;DELL;VENUE 8 7000;7840;qcom;DELL;SM-G925T;google;release-keys;user;dell/google/msm9056_6.0.1/MMB29M4035445:user/release-keys
+8525f5d8201f78b5;MSM9057;unknown;DELL;VENUE 8 7000 LTE;VENUE 8 7000 LTE;qcom;DELL;SM-G925T;google;release-keys;user;dell/google/msm9057_6.0.1/MMB29M4109990:user/release-keys
+8525f5d8201f78b5;MSM9058;unknown;DELL;VENUE 8 WIFI;3830;qcom;DELL;SM-G925T;google;release-keys;user;dell/google/msm9058_6.0.1/MMB29M3124060:user/release-keys
+8525f5d8201f78b5;MSM9059;unknown;DELL;VENUE THUNDER;VENUE THUNDER;qcom;DELL;SM-G925T;google;release-keys;user;dell/google/msm9059_6.0.1/MMB29M3969392:user/release-keys
+8525f5d8201f78b5;MSM9060;unknown;DELL;VENUE THUNDER NA;VENUE THUNDER NA;qcom;DELL;SM-G925T;google;release-keys;user;dell/google/msm9060_6.0.1/MMB29M7070917:user/release-keys
+8525f5d8201f78b5;MSM9061;unknown;DELL;XCD 28;XCD 28;qcom;DELL;SM-G925T;google;release-keys;user;dell/google/msm9061_6.0.1/MMB29M3219429:user/release-keys
+8525f5d8201f78b5;MSM9062;unknown;DELL;XCD 35;XCD 35;qcom;DELL;SM-G925T;google;release-keys;user;dell/google/msm9062_6.0.1/MMB29M2706559:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;TABLET P;TABLET P;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9063_6.0.1/MMB29M4953608:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;TABLET P 3G;TABLET P 3G;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9064_6.0.1/MMB29M4400248:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA A;SO-04E;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9065_6.0.1/MMB29M4851351:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA A2;SO-04F;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9066_6.0.1/MMB29M7754400:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA A4;SO-04G;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9067_6.0.1/MMB29M9966525:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA ACRO S;LT26W;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9068_6.0.1/MMB29M4241336:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA AX;SO-01E;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9069_6.0.1/MMB29M943607:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA C;C2304;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9070_6.0.1/MMB29M9435238:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA C S39C;S39C;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9071_6.0.1/MMB29M4970526:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA C S39H;S39H;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9072_6.0.1/MMB29M6671210:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA C3;D2533;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9073_6.0.1/MMB29M4018582:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA C3 DUAL;S55U;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9074_6.0.1/MMB29M8750449:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA C3 DUAL D2502;D2502;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9075_6.0.1/MMB29M6899552:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA C3 DUAL S55T;S55T;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9076_6.0.1/MMB29M161167:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA C4;E5303;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9077_6.0.1/MMB29M989411:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA C4 DUAL;E5333;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9078_6.0.1/MMB29M9855288:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA C4 DUAL E5343;E5343;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9079_6.0.1/MMB29M2291142:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA C4 DUAL E5363;E5363;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9080_6.0.1/MMB29M8384528:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA C4 E5306;E5306;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9081_6.0.1/MMB29M66930:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA C4 E5353;E5353;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9082_6.0.1/MMB29M8971133:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA C5 ULTRA;E5553;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9083_6.0.1/MMB29M7686697:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA C5 ULTRA DUAL;E5533;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9084_6.0.1/MMB29M6171566:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA C5 ULTRA DUAL E5563;E5563;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9085_6.0.1/MMB29M2720413:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA C5 ULTRA E5506;E5506;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9086_6.0.1/MMB29M8174393:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA C670X;C670X;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9087_6.0.1/MMB29M1645569:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA E;C1505;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9088_6.0.1/MMB29M7062997:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA E C1504;C1504;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9089_6.0.1/MMB29M3388147:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA E DUAL;C1605;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9090_6.0.1/MMB29M8387235:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA E DUAL C1604;C1604;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9091_6.0.1/MMB29M3818101:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA E1;D2005;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9092_6.0.1/MMB29M3639035:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA E1 2;XPERIA E1 2;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9093_6.0.1/MMB29M170303:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA E1 D2004;D2004;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9094_6.0.1/MMB29M9004103:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA E1 DUAL;D2104;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9095_6.0.1/MMB29M4743242:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA E1 DUAL D2105;D2105;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9096_6.0.1/MMB29M371531:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA E1 DUAL D2114;D2114;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9097_6.0.1/MMB29M5595186:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA E3;D2202;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9098_6.0.1/MMB29M8770477:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA E3 D2203;D2203;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9099_6.0.1/MMB29M7447329:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA E3 D2206;D2206;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9100_6.0.1/MMB29M1781068:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA E3 D2243;D2243;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9101_6.0.1/MMB29M9510632:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA E3 DUAL;D2212;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9102_6.0.1/MMB29M5701079:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA E4;E2104;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9103_6.0.1/MMB29M1265998:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA E4 DUAL;E2114;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9104_6.0.1/MMB29M9838741:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA E4 DUAL E2115;E2115;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9105_6.0.1/MMB29M4412668:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA E4 E2105;E2105;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9106_6.0.1/MMB29M6373242:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA E4G;E2003;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9107_6.0.1/MMB29M5826885:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA E4G DUAL;E2033;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9108_6.0.1/MMB29M6198029:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA E4G DUAL E2043;E2043;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9109_6.0.1/MMB29M9255982:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA E4G DUAL E2063;E2063;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9110_6.0.1/MMB29M8537145:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA E4G E2006;E2006;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9111_6.0.1/MMB29M6003982:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA E4G E2053;E2053;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9112_6.0.1/MMB29M467595:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA GO;ST27I;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9113_6.0.1/MMB29M6797833:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA GO ST27A;ST27A;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9114_6.0.1/MMB29M5874233:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA GX;SO-04D;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9115_6.0.1/MMB29M4799220:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA HATSUNE MIKU;XPERIA HATSUNE MIKU;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9116_6.0.1/MMB29M3457013:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA ION HSPA;LT28H;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9117_6.0.1/MMB29M9559435:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA ION LTE;LT28I;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9118_6.0.1/MMB29M7787134:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA ION LTE AT&T;LT28AT;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9119_6.0.1/MMB29M5993464:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA J;ST26I;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9120_6.0.1/MMB29M6855387:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA J ST26A;ST26A;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9121_6.0.1/MMB29M929481:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA L;C2105;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9122_6.0.1/MMB29M176116:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA L C2104;C2104;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9123_6.0.1/MMB29M2030413:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA M;C1904;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9124_6.0.1/MMB29M3759877:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA M C1905;C1905;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9125_6.0.1/MMB29M921382:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA M DUAL;C2005;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9126_6.0.1/MMB29M8956993:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA M DUAL C2004;C2004;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9127_6.0.1/MMB29M1853897:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA M2;D2303;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9128_6.0.1/MMB29M2520016:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA M2 AQUA;D2403;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9129_6.0.1/MMB29M7184430:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA M2 AQUA D2406;D2406;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9130_6.0.1/MMB29M8533216:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA M2 D2305;D2305;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9131_6.0.1/MMB29M8953116:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA M2 D2306;D2306;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9132_6.0.1/MMB29M6588648:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA M2 DUAL;D2302;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9133_6.0.1/MMB29M3772399:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA M2 DUAL S50H;S50H;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9134_6.0.1/MMB29M9639020:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA M4 AQUA;E2303;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9135_6.0.1/MMB29M6008675:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA M4 AQUA DUAL;E2312;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9136_6.0.1/MMB29M9957218:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA M4 AQUA DUAL E2333;E2333;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9137_6.0.1/MMB29M209700:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA M4 AQUA DUAL E2363;E2363;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9138_6.0.1/MMB29M8489219:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA M4 AQUA E2302;E2302;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9139_6.0.1/MMB29M4003521:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA M4 AQUA E2306;E2306;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9140_6.0.1/MMB29M5324429:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA M4 AQUA E2353;E2353;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9141_6.0.1/MMB29M7049232:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA M5;E5603;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9142_6.0.1/MMB29M3323369:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA M5 DUAL;E5633;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9143_6.0.1/MMB29M4557066:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA M5 DUAL E5643;E5643;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9144_6.0.1/MMB29M3873786:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA M5 DUAL E5663;E5663;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9145_6.0.1/MMB29M7411804:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA M5 E5606;E5606;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9146_6.0.1/MMB29M5020978:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA M5 E5653;E5653;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9147_6.0.1/MMB29M6955798:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA MIRO;ST23I;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9148_6.0.1/MMB29M7134484:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA MIRO ST23A;ST23A;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9149_6.0.1/MMB29M6650371:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA NEO L;MT25I;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9150_6.0.1/MMB29M5055664:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA P;LT22I;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9151_6.0.1/MMB29M8413919:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA S;LT26I;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9152_6.0.1/MMB29M9252542:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA SL;LT26II;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9153_6.0.1/MMB29M2359701:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA SOLA;MT27I;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9154_6.0.1/MMB29M4351525:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA SP;C5302;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9155_6.0.1/MMB29M5897177:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA SP C5306;C5306;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9156_6.0.1/MMB29M7348293:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA SP CDMA;M35C;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9157_6.0.1/MMB29M6820393:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA SP LTE;C5303;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9158_6.0.1/MMB29M5001571:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA SP M35TS;M35TS;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9159_6.0.1/MMB29M387708:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA SP TD-LTE;M35T;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9160_6.0.1/MMB29M4494155:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA SX;SO-05D;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9161_6.0.1/MMB29M2154321:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA T;LT30P;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9162_6.0.1/MMB29M3616009:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA T LTE;LT30A;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9163_6.0.1/MMB29M6792862:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA T2 ULTRA;D5303;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9164_6.0.1/MMB29M7182407:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA T2 ULTRA D5306;D5306;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9165_6.0.1/MMB29M9128368:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA T2 ULTRA D5316;D5316;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9166_6.0.1/MMB29M4903606:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA T2 ULTRA DUAL;D5322;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9167_6.0.1/MMB29M3607850:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA T2 ULTRA DUAL XM50H;XM50H;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9168_6.0.1/MMB29M7243830:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA T2 ULTRA XM50T;XM50T;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9169_6.0.1/MMB29M7944973:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA T3;D5103;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9170_6.0.1/MMB29M3509592:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA T3 D5102;D5102;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9171_6.0.1/MMB29M1727661:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA T3 D5106;D5106;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9172_6.0.1/MMB29M2630083:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA T3 M50W;M50W;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9173_6.0.1/MMB29M7847693:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA TABLET S;XPERIA TABLET S;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9174_6.0.1/MMB29M2081876:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA TABLET S 3G;SGPT131A1;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9175_6.0.1/MMB29M3491021:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA TABLET Z;SGP321;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9176_6.0.1/MMB29M6232868:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA TABLET Z SGP341;SGP341;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9177_6.0.1/MMB29M5810479:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA TABLET Z SGP351;SGP351;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9178_6.0.1/MMB29M8635726:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA TABLET Z SO-03E;SO-03E;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9179_6.0.1/MMB29M584857:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA TABLET Z WIFI;SGP311;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9180_6.0.1/MMB29M4689716:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA TIPO;ST21I;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9181_6.0.1/MMB29M5045743:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA TIPO DUAL;ST21A2;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9182_6.0.1/MMB29M8144852:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA TIPO DUAL ST21I2;ST21I2;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9183_6.0.1/MMB29M5255164:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA TIPO ST21A;ST21A;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9184_6.0.1/MMB29M9273122:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA TL;LT30AT;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9185_6.0.1/MMB29M630184:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA TX;LT29I;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9186_6.0.1/MMB29M305568:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA U;ST25A;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9187_6.0.1/MMB29M6100476:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA U ST25I;ST25I;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9188_6.0.1/MMB29M3699072:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA UL;SOL22;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9189_6.0.1/MMB29M1536325:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA V;LT25I;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9190_6.0.1/MMB29M714740:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA VC;LT25C;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9191_6.0.1/MMB29M5564564:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA VL;CDMA SOL21;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9192_6.0.1/MMB29M9383871:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z;C6602;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9193_6.0.1/MMB29M3047868:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z C6616;C6616;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9194_6.0.1/MMB29M6944381:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z L36H;L36H;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9195_6.0.1/MMB29M3847706:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z LTE;C6603;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9196_6.0.1/MMB29M9243340:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z SO-02E;SO-02E;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9197_6.0.1/MMB29M3725877:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z T-MOBILE;C6606;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9198_6.0.1/MMB29M121795:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z ULTRA;C6833;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9199_6.0.1/MMB29M2937963:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z ULTRA C6802;C6802;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9200_6.0.1/MMB29M3587773:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z ULTRA C6806;C6806;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9201_6.0.1/MMB29M6197475:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z ULTRA C6843;C6843;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9202_6.0.1/MMB29M6265532:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z ULTRA SOL24;SOL24;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9203_6.0.1/MMB29M7296627:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z ULTRA XL39H;XL39H;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9204_6.0.1/MMB29M2855540:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z1;C6902;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9205_6.0.1/MMB29M5049127:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z1 C6903;C6903;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9206_6.0.1/MMB29M780779:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z1 C6906;C6906;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9207_6.0.1/MMB29M2643202:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z1 C6943;C6943;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9208_6.0.1/MMB29M156386:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z1 COMPACT;D5503;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9209_6.0.1/MMB29M7728763:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z1 COMPACT M51W;M51W;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9210_6.0.1/MMB29M5791037:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z1 L39T;L39T;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9211_6.0.1/MMB29M2294101:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z1 L39U;L39U;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9212_6.0.1/MMB29M4910415:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z1 SO-01F;SO-01F;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9213_6.0.1/MMB29M6897522:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z1 SOL23;SOL23;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9214_6.0.1/MMB29M3876478:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z1F;SO-02F;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9215_6.0.1/MMB29M4598396:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z1S;C6916;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9216_6.0.1/MMB29M440255:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z2;D6502;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9217_6.0.1/MMB29M6823410:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z2 D6503;D6503;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9218_6.0.1/MMB29M6966119:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z2 D6543;D6543;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9219_6.0.1/MMB29M5969972:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z2 L50T;L50T;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9220_6.0.1/MMB29M5643540:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z2 L50U;L50U;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9221_6.0.1/MMB29M211937:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z2 SO-03F;SO-03F;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9222_6.0.1/MMB29M3150989:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z2 TABLET;SGP541;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9223_6.0.1/MMB29M8122081:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z2 TABLET SGP521;SGP521;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9224_6.0.1/MMB29M466706:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z2 TABLET SGP551;SGP551;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9225_6.0.1/MMB29M1224050:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z2 TABLET SGP561;SGP561;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9226_6.0.1/MMB29M1292340:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z2 TABLET SO-05F;SO-05F;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9227_6.0.1/MMB29M1703500:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z2 TABLET SOT21;SOT21;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9228_6.0.1/MMB29M9472814:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z2 TABLET WI-FI 16 GB;SGP511;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9229_6.0.1/MMB29M9759590:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z2 TABLET WI-FI 32 GB;SGP512;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9230_6.0.1/MMB29M9017223:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z2A;D6563;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9231_6.0.1/MMB29M3671993:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z3;D6603;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9232_6.0.1/MMB29M5098013:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z3 401SO;401SO;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9233_6.0.1/MMB29M4426095:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z3 COMPACT;D5803;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9234_6.0.1/MMB29M322858:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z3 COMPACT D5833;D5833;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9235_6.0.1/MMB29M815933:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z3 COMPACT SO-02G;SO-02G;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9236_6.0.1/MMB29M9090777:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z3 D6616;D6616;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9237_6.0.1/MMB29M2417629:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z3 D6643;D6643;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9238_6.0.1/MMB29M4995258:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z3 D6653;D6653;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9239_6.0.1/MMB29M419535:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z3 DUAL;D6633;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9240_6.0.1/MMB29M5509237:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z3 L55T;L55T;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9241_6.0.1/MMB29M1099541:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z3 L55U;L55U;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9242_6.0.1/MMB29M2292750:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z3 SO-01G;SO-01G;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9243_6.0.1/MMB29M6187719:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z3 SOL26;SOL26;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9244_6.0.1/MMB29M1841709:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z3 TABLET COMPACT;SGP621;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9245_6.0.1/MMB29M8970664:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z3 TABLET COMPACT 16GB;SGP611;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9246_6.0.1/MMB29M6762982:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z3 TABLET COMPACT 32GB;SGP612;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9247_6.0.1/MMB29M6300837:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z3 TABLET COMPACT SGP641;SGP641;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9248_6.0.1/MMB29M6195639:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z3+;E6553;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9249_6.0.1/MMB29M7337663:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z3+ DUAL;E6533;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9250_6.0.1/MMB29M4819254:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z3V;D6708;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9251_6.0.1/MMB29M3188557:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z4;402SO;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9252_6.0.1/MMB29M5632249:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z4 COMPACT;XPERIA Z4 COMPACT;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9253_6.0.1/MMB29M7975956:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z4 SO-03G;SO-03G;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9254_6.0.1/MMB29M4740199:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z4 SOV31;SOV31;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9255_6.0.1/MMB29M5694537:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z4 TABLET;SGP771;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9256_6.0.1/MMB29M8888332:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z4 TABLET SO-05G;SO-05G;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9257_6.0.1/MMB29M404607:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z4 TABLET SOT31;SOT31;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9258_6.0.1/MMB29M9642827:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z4 TABLET WIFI;SGP712;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9259_6.0.1/MMB29M4667580:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z4 ULTRA;XPERIA Z4 ULTRA;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9260_6.0.1/MMB29M4390310:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z4V;E6508;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9261_6.0.1/MMB29M2481319:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z5;E6603;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9262_6.0.1/MMB29M3132759:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z5 501SO;501SO;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9263_6.0.1/MMB29M2598656:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z5 COMPACT;E5803;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9264_6.0.1/MMB29M4821528:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z5 COMPACT E5823;E5823;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9265_6.0.1/MMB29M7188322:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z5 COMPACT SO-02H;SO-02H;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9266_6.0.1/MMB29M9649438:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z5 DUAL;E6633;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9267_6.0.1/MMB29M5632613:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z5 DUAL E6683;E6683;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9268_6.0.1/MMB29M8768478:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z5 E6653;E6653;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9269_6.0.1/MMB29M6635259:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z5 PREMIUM;E6853;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9270_6.0.1/MMB29M7242512:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z5 PREMIUM DUAL;E6833;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9271_6.0.1/MMB29M2262584:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z5 PREMIUM DUAL E6883;E6883;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9272_6.0.1/MMB29M2773137:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z5 PREMIUM SO-03H;SO-03H;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9273_6.0.1/MMB29M9806090:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z5 SO-01H;SO-01H;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9274_6.0.1/MMB29M1268606:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA Z5 SOV32;SOV32;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9275_6.0.1/MMB29M7563623:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA ZL;C6502;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9276_6.0.1/MMB29M4585370:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA ZL C6503;C6503;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9277_6.0.1/MMB29M4366196:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA ZL C6506;C6506;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9278_6.0.1/MMB29M1535698:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA ZL2;SOL25;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9279_6.0.1/MMB29M8681975:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA ZR;C5502;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9280_6.0.1/MMB29M7549891:user/release-keys
+8525f5d8201f78b5;s1;unknown;SONY;XPERIA ZR LTE;C5503;qcom;SONY;SM-G925T;google;release-keys;user;sony/google/msm9281_6.0.1/MMB29M5791383:user/release-keys
You may download the files in Public Git.