public void Setup(ProxyList ProxyList, ProxyMap ProxyMap)
        {
            Pool            = new HashSet <string>();
            Used            = new HashSet <string>();
            Unused          = new HashSet <string>();
            MappedButUnused = new HashSet <string>();
            MultipleUsed    = new HashSet <string>();
            NotMapped       = new HashSet <string>();

            foreach (var item in ProxyList)
            {
                Pool.Add(item);
                Unused.Add(item);
                NotMapped.Add(item);
            }

            foreach (var List in ProxyMap.Map.Values)
            {
                foreach (var Address in List)
                {
                    MappedButUnused.Add(Address);
                    NotMapped.Remove(Address);
                }
            }
        }
 public static void AddAccount(string email, string password, ProxyMap proxyMap, ProxyAssignStatistics proxyAssignStat = null)
 {
     AddAccount(new AirBnbAccount
     {
         Email        = email,
         Password     = password,
         ProxyAddress = proxyMap.GetProxy(email, proxyAssignStat)
     });
 }
 public static bool ContainsDefaultProxy(this List <string> proxyList, ProxyMap map)
 {
     foreach (var proxy in proxyList)
     {
         if (map.DefaultProxies.Contains(proxy))
         {
             return(true);
         }
     }
     return(false);
 }
        public static void Init()
        {
            var p = new ProxyMap();

            p.Add("*****@*****.**", new List <string> {
                "206.214.93.136:8800"
            });
            p.Add("*****@*****.**", new List <string> {
                "173.234.59.205:8800"
            });
            p.Add("*****@*****.**", new List <string> {
                "69.147.248.248:8800"
            });
            p.Add("*****@*****.**", new List <string> {
                "69.147.248.202:8800"
            });
            p.Add("*****@*****.**", new List <string> {
                "173.234.226.64:8800"
            });
            p.Add("*****@*****.**", new List <string> {
                "69.147.248.5:8800"
            });
            p.Add("*****@*****.**", new List <string> {
                "170.130.63.26:8800"
            });
            p.Add("*****@*****.**", new List <string> {
                "173.234.165.54:8800"
            });
            p.Add("*****@*****.**", new List <string> {
                "206.214.93.110:8800"
            });
            p.Add("*****@*****.**", new List <string> {
                "173.234.226.51:8800"
            });
            p.Add("*****@*****.**", new List <string> {
                "173.232.7.240:8800"
            });
            p.Add("*****@*****.**", new List <string> {
                "206.214.93.106:8800"
            });
            p.Add("*****@*****.**", new List <string> {
                "173.234.165.64:8800"
            });
            p.Add("*****@*****.**", new List <string> {
                "50.31.9.124:8800"
            });
            p.Add("*****@*****.**", new List <string> {
                "170.130.63.128:8800"
            });
            p.Add("*****@*****.**", new List <string> {
                "50.31.9.228:8800"
            });
            p.Add("*****@*****.**", new List <string> {
                "50.31.9.67:8800"
            });
            p.Add("*****@*****.**", new List <string> {
                "173.234.165.233:8800"
            });
            p.Add("*****@*****.**", new List <string> {
                "50.31.9.245:8800"
            });
            p.Add("*****@*****.**", new List <string> {
                "170.130.63.162:8800"
            });
            p.Add("*****@*****.**", new List <string> {
                "50.31.9.36:8800"
            });
            p.Add("*****@*****.**", new List <string> {
                "173.232.7.18:8800"
            });
            p.Add("*****@*****.**", new List <string> {
                "206.214.93.126:8800"
            });
            p.Add("*****@*****.**", new List <string> {
                "173.232.7.235:8800"
            });
            p.Add("*****@*****.**", new List <string> {
                "206.214.93.225:8800"
            });
            p.Add("*****@*****.**", new List <string> {
                "170.130.63.73:8800"
            });
            p.Add("*****@*****.**", new List <string> {
                "173.234.59.83:8800"
            });
            p.Add("*****@*****.**", new List <string> {
                "69.147.248.46:8800"
            });
            p.Add("*****@*****.**", new List <string> {
                "170.130.63.217:8800"
            });
            p.Add("*****@*****.**", new List <string> {
                "206.214.93.83:8800"
            });
            p.Add("*****@*****.**", new List <string> {
                "170.130.63.13:8800"
            });
            p.Add("*****@*****.**", new List <string> {
                "173.234.226.192:8800"
            });


            // Old mapping

            /*
             * p.Add("*****@*****.**", new List<string>() { "170.130.63.162:8800", "173.234.59.83:8800" });
             * p.Add("*****@*****.**", new List<string>() { "170.130.63.128:8800", "173.234.226.192:8800" });
             * p.Add("*****@*****.**", new List<string>() { "173.234.59.205:8800", "173.234.226.5:8800" });
             * p.Add("*****@*****.**", new List<string>() { "206.214.93.136:8800", "173.232.7.98:8800" });
             * p.Add("*****@*****.**", new List<string>() { "173.234.165.233:8800", "170.130.63.217:8800" });
             * p.Add("*****@*****.**", new List<string>() { "69.147.248.202:8800", "173.234.59.53:8800" });
             * p.Add("*****@*****.**", new List<string>() { "173.234.165.54:8800", "50.31.9.142:8800" });
             * p.Add("*****@*****.**", new List<string>() { "173.234.226.51:8800", "206.214.93.250:8800" });
             * p.Add("*****@*****.**", new List<string>() { "173.234.165.64:8800", "173.234.59.186:8800" });
             *
             * p.Add("*****@*****.**", new List<string>() { "206.214.93.225:8800", "173.232.7.235:8800" });
             *
             * p.Add("*****@*****.**", new List<string>() { "50.31.9.36:8800", "170.130.63.73:8800" });
             * p.Add("*****@*****.**", new List<string>() { "173.234.226.64:8800", "173.234.165.53:8800" });
             * p.Add("*****@*****.**", new List<string>() { "206.214.93.110:8800", "173.234.165.52:8800" });
             * p.Add("*****@*****.**", new List<string>() { "206.214.93.106:8800", "173.232.7.154:8800" });
             * p.Add("*****@*****.**", new List<string>() { "50.31.9.228:8800", "170.130.63.13:8800" });
             * p.Add("*****@*****.**", new List<string>() { "50.31.9.67:8800", "206.214.93.83:8800" });
             * p.Add("*****@*****.**", new List<string>() { "69.147.248.248:8800", "69.147.248.112:8800" });
             * p.Add("*****@*****.**", new List<string>() { "69.147.248.5:8800", "206.214.93.183:8800" });
             * p.Add("*****@*****.**", new List<string>() { "170.130.63.26:8800", "173.234.226.48:8800" });
             * p.Add("*****@*****.**", new List<string>() { "173.232.7.240:8800", "173.234.59.55:8800" });
             * p.Add("*****@*****.**", new List<string>() { "50.31.9.124:8800", "69.147.248.209:8800" });
             * p.Add("*****@*****.**", new List<string>() { "50.31.9.245:8800", "69.147.248.46:8800" });
             * p.Add("*****@*****.**", new List<string>() { "173.232.7.18:8800", "173.234.226.10:8800" });
             * p.Add("*****@*****.**", new List<string>() { "206.214.93.126:8800", "173.234.165.33:8800" });
             * //*/

            proxyMap = p;

            //Data.AirBnbAccounts.AddAccount("", "", p);

            AirBnbAccounts.AddAccount("*****@*****.**", "lolpol98", p);
            AirBnbAccounts.AddAccount("*****@*****.**", "sasha123", p);
            AirBnbAccounts.AddAccount("*****@*****.**", "lolpol98", p);
            AirBnbAccounts.AddAccount("*****@*****.**", "lolpol98", p);
            AirBnbAccounts.AddAccount("*****@*****.**", "blabla123", p);
            AirBnbAccounts.AddAccount("*****@*****.**", "lolpol98", p);
            AirBnbAccounts.AddAccount("*****@*****.**", "lolpol88", p);
            AirBnbAccounts.AddAccount("*****@*****.**", "lolpol98", p);
            AirBnbAccounts.AddAccount("*****@*****.**", "lolpol98", p);
            AirBnbAccounts.AddAccount("*****@*****.**", "sasha123", p);
            AirBnbAccounts.AddAccount("*****@*****.**", "sasha123", p);
            AirBnbAccounts.AddAccount("*****@*****.**", "westenble5a", p);
            AirBnbAccounts.AddAccount("*****@*****.**", "Mother1@", p);
            AirBnbAccounts.AddAccount("*****@*****.**", "lolpol98!", p);
            AirBnbAccounts.AddAccount("*****@*****.**", "lolpol98", p);
            AirBnbAccounts.AddAccount("*****@*****.**", "lolpol98", p);
            AirBnbAccounts.AddAccount("*****@*****.**", "lolpol99", p);
            AirBnbAccounts.AddAccount("*****@*****.**", "lolpol98", p);
            AirBnbAccounts.AddAccount("*****@*****.**", "lolpol98", p);
            AirBnbAccounts.AddAccount("*****@*****.**", "lolpol98", p);
            AirBnbAccounts.AddAccount("*****@*****.**", "AJ53Q~Nu%QBe2%\"j", p);
            AirBnbAccounts.AddAccount("*****@*****.**", "lolpol98", p);
            AirBnbAccounts.AddAccount("*****@*****.**", "lolpol98", p);
            AirBnbAccounts.AddAccount("*****@*****.**", "lolpol98", p);
            AirBnbAccounts.AddAccount("*****@*****.**", "lolpol98", p);
            AirBnbAccounts.AddAccount("*****@*****.**", "lolpol98", p);
            AirBnbAccounts.AddAccount("*****@*****.**", "jr45208542", p);
            AirBnbAccounts.AddAccount("*****@*****.**", "Sasha123", p);
            AirBnbAccounts.AddAccount("*****@*****.**", "lolpol98", p);
            AirBnbAccounts.AddAccount("*****@*****.**", "lolpol98", p);
            AirBnbAccounts.AddAccount("*****@*****.**", "lolpol98", p);
            AirBnbAccounts.AddAccount("*****@*****.**", "f6&bFQ@L", p);


            /*
             * Data.AirBnbAccounts.AddAccount("*****@*****.**", "lolpol98", new List<string>() { "170.130.63.162:8800", "173.234.59.83:8800" });
             *
             * Data.AirBnbAccounts.AddAccount("*****@*****.**", "uJ90xePgCJR0sPxZKwrj", new List<string>() { "170.130.63.128:8800", "173.234.226.192:8800" });
             * Data.AirBnbAccounts.AddAccount("*****@*****.**", "lolpol98", new List<string>() { "173.234.59.205:8800", "173.234.226.5:8800" });
             * Data.AirBnbAccounts.AddAccount("*****@*****.**", "lolpol98", new List<string>() { "206.214.93.136:8800", "173.232.7.98:8800" });
             * Data.AirBnbAccounts.AddAccount("*****@*****.**", "lolpol98", new List<string>() { "173.234.165.233:8800", "170.130.63.217:8800" });
             * Data.AirBnbAccounts.AddAccount("*****@*****.**", "lolpol98", new List<string>() { "69.147.248.202:8800", "173.234.59.53:8800" });
             * Data.AirBnbAccounts.AddAccount("*****@*****.**", "sasha123", new List<string>() { "173.234.165.54:8800", "50.31.9.142:8800" });
             * Data.AirBnbAccounts.AddAccount("*****@*****.**", "lolpol98", new List<string>() { "173.234.226.51:8800", "206.214.93.250:8800" });
             * Data.AirBnbAccounts.AddAccount("*****@*****.**", "lolpol98", new List<string>() { "173.234.165.64:8800", "173.234.59.186:8800" });
             * Data.AirBnbAccounts.AddAccount("*****@*****.**", "3B1Uxg80ISeK3CrxQI3G", new List<string>() { "206.214.93.225:8800", "173.232.7.235:8800" });
             * Data.AirBnbAccounts.AddAccount("*****@*****.**", "lolpol98", new List<string>() { "50.31.9.36:8800", "170.130.63.73:8800" });
             * Data.AirBnbAccounts.AddAccount("*****@*****.**", "lolpol98", new List<string>() { "173.234.226.64:8800", "173.234.165.53:8800" });
             * Data.AirBnbAccounts.AddAccount("*****@*****.**", "lolpol98", new List<string>() { "206.214.93.110:8800", "173.234.165.52:8800" });
             * Data.AirBnbAccounts.AddAccount("*****@*****.**", "lolpol98", new List<string>() { "206.214.93.106:8800", "173.232.7.154:8800" });
             * Data.AirBnbAccounts.AddAccount("*****@*****.**", "lolpol98", new List<string>() { "50.31.9.228:8800", "170.130.63.13:8800" });
             * Data.AirBnbAccounts.AddAccount("*****@*****.**", "b@eB6&Ob5buimNmicCDA", new List<string>() { "50.31.9.67:8800", "206.214.93.83:8800" });
             * Data.AirBnbAccounts.AddAccount("*****@*****.**", "blabla123", new List<string>() { "69.147.248.248:8800", "69.147.248.112:8800" });
             * Data.AirBnbAccounts.AddAccount("*****@*****.**", "lolpol98", new List<string>() { "69.147.248.5:8800", "206.214.93.183:8800" });
             * Data.AirBnbAccounts.AddAccount("*****@*****.**", "lolpol98", new List<string>() { "170.130.63.26:8800", "173.234.226.48:8800" });
             * Data.AirBnbAccounts.AddAccount("*****@*****.**", "lolpol98", new List<string>() { "173.232.7.240:8800", "173.234.59.55:8800" });
             * Data.AirBnbAccounts.AddAccount("*****@*****.**", "lolpol98", new List<string>() { "50.31.9.124:8800", "69.147.248.209:8800" });
             * Data.AirBnbAccounts.AddAccount("*****@*****.**", "Sasha123", new List<string>() { "50.31.9.245:8800", "69.147.248.46:8800" });
             * Data.AirBnbAccounts.AddAccount("*****@*****.**", "lolpol98", new List<string>() { "173.232.7.18:8800", "173.234.226.10:8800" });
             * Data.AirBnbAccounts.AddAccount("*****@*****.**", "westenble5a", new List<string>() { "206.214.93.126:8800", "173.234.165.33:8800" });
             *
             *
             *
             * ///
             * /// This two proxy addresses used more than for 1 account
             * ///
             * /// 173.234.226.10:8800
             * /// 173.234.165.33:8800
             * ///
             * Data.AirBnbAccounts.AddAccount("*****@*****.**", "lolpol98", new List<string>() { "173.234.226.10:8800", "173.234.165.33:8800" });
             *
             * //Data.AirBnbAccounts.AddAccount("", "lolpol98", new List<string>() { "", "" });
             * //Data.AirBnbAccounts.AddAccount("", "", new List<string>() { "", "" });
             *
             * //*/

            /*
             *
             * //Unused proxy IP
             *
             * [
             * "69.147.248.209:8800",
             * "173.234.59.186:8800",
             * "173.232.7.154:8800",
             * "173.234.59.55:8800",
             * "206.214.93.250:8800",
             * "173.234.165.52:8800",
             * "50.31.9.142:8800",
             * "173.234.226.48:8800",
             * "206.214.93.183:8800",
             * "173.234.165.53:8800",
             * "173.234.59.53:8800",
             * "69.147.248.112:8800",
             * "173.234.226.5:8800",
             * "173.232.7.98:8800"
             * ]
             *
             * // Reserved as second defulat is
             *      173.234.165.33:8800
             *
             */
        }