Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
##grflangid 0x01
STR_GRF_NAME:Better world cities 1.0
STR_GRF_DESCRIPTION: This NewGRF adds names for world cities with a population count higher than 100000 (w/metropolitan area). The probability of each city appearing is proportional to the square root of the population. This makes it so that cities with lower population can appear more frequently than otherwise. World city data from https://simplemaps.com/data/world-cities, it's CC-4 licensed
STR_STYLES : Better World Cities
import csv
import math
THRESHOLD = 10**5
BASE = '''
grf {
grfid: "F\\08f\\01";
name: string(STR_GRF_NAME);
desc: string(STR_GRF_DESCRIPTION);
version: 1;
min_compatible_version: 0;
}
'''
population = {}
MAX = 0
SUM = 0
convertfunc = lambda x: x ** 0.5
with open("worldcities.csv") as f:
data = csv.DictReader(f)
for i in data:
if i["population"] == '':
i["population"] = 0
if convertfunc(float(i["population"])) > MAX:
MAX = convertfunc(float(i["population"]))
SUM += convertfunc(float(i["population"]))
if float(i["population"]) > THRESHOLD:
population[i["city_ascii"]] = float(i["population"])
townst = '\ntown_names {\n\tstyles : string(STR_STYLES);\n{'
FMT = '''\t\n\t\t{}\n\t\n'''
FMT2 = "text(\"{}\",{}),"
for k, v in population.items():
townst+=FMT.format(FMT2.format(k,math.floor((convertfunc(v)/MAX)*0x7F)))
open("names.nml","w").write(BASE+townst+'\n}}')
grf {
grfid: "F\08f\01";
name: string(STR_GRF_NAME);
desc: string(STR_GRF_DESCRIPTION);
version: 1;
min_compatible_version: 0;
}
town_names {
styles : string(STR_STYLES);
{
text("Tokyo",127),
text("New York",93),
text("Mexico City",92),
text("Mumbai",92),
text("Sao Paulo",92),
text("Delhi",84),
text("Shanghai",82),
text("Kolkata",81),
text("Los Angeles",8),
text("Dhaka",76),
text("Buenos Aires",76),
text("Karachi",74),
text("Cairo",73),
text("Rio de Janeiro",72),
text("Osaka",71),
text("Beijing",70),
text("Manila",70),
text("Moscow",68),
text("Istanbul",67),
text("Paris",66),
text("Seoul",66),
text("Lagos",65),
text("Jakarta",64),
text("Guangzhou",63),
text("Chicago",62),
text("London",12),
text("Lima",60),
text("Tehran",59),
text("Kinshasa",59),
text("Bogota",59),
text("Shenzhen",58),
text("Wuhan",57),
text("Hong Kong",57),
text("Tianjin",56),
text("Chennai",56),
text("Taipei",55),
text("Bengaluru",55),
text("Bangkok",55),
text("Lahore",54),
text("Chongqing",54),
text("Miami",53),
text("Hyderabad",53),
text("Dallas",50),
text("Santiago",26),
text("Philadelphia",50),
text("Belo Horizonte",50),
text("Madrid",50),
text("Houston",49),
text("Ahmadabad",49),
text("Ho Chi Minh City",49),
text("Washington",48),
text("Atlanta",48),
text("Toronto",48),
text("Singapore",48),
text("Luanda",48),
text("Baghdad",47),
text("Barcelona",16),
text("Haora",46),
text("Shenyang",46),
text("Khartoum",46),
text("Pune",45),
text("Boston",45),
text("Sydney",45),
text("Saint Petersburg",45),
text("Chittagong",45),
text("Dongguan",45),
text("Riyadh",44),
text("Hanoi",44),
text("Guadalajara",43),
text("Melbourne",43),
text("Alexandria",8),
text("Chengdu",43),
text("Rangoon",42),
text("Phoenix",42),
text("Xi'an",42),
text("Porto Alegre",42),
text("Surat",41),
text("Hechi",41),
text("Abidjan",41),
text("Brasilia",40),
text("Ankara",40),
text("Monterrey",40),
text("Yokohama",40),
text("Nanjing",40),
text("Montreal",40),
text("Guiyang",40),
text("Recife",40),
text("Seattle",40),
text("Harbin",40),
text("San Francisco",40),
text("Fortaleza",40),
text("Zhangzhou",39),
text("Detroit",39),
text("Salvador",39),
text("Busan",39),
text("Johannesburg",39),
text("Berlin",39),
text("Algiers",38),
text("Rome",38),
text("Pyongyang",38),
text("Medellin",38),
text("Kabul",38),
text("Athens",7),
text("Nagoya",38),
text("Cape Town",38),
text("San Diego",38),
text("Changchun",37),
text("Casablanca",37),
text("Dalian",37),
text("Cawnpore",37),
text("Kano",37),
text("Tel Aviv-Yafo",37),
text("Addis Ababa",37),
text("Curitiba",37),
text("Zibo",37),
text("Jeddah",36),
text("Nairobi",36),
text("Hangzhou",36),
text("Benoni",36),
text("Caracas",36),
text("Milan",36),
text("Stuttgart",36),
text("Kunming",36),
text("Dar es Salaam",36),
text("Minneapolis",36),
text("Jaipur",36),
text("Taiyuan",36),
text("Frankfurt",36),
text("Qingdao",35),
text("Surabaya",35),
text("Lisbon",35),
text("Tampa",35),
text("Jinan",35),
text("Fukuoka",35),
text("Campinas",35),
text("Denver",35),
text("Kaohsiung",35),
text("Quezon City",35),
text("Katowice",35),
text("Aleppo",35),
text("Durban",35),
text("Kyiv",34),
text("Lucknow",34),
text("Giza",34),
text("Zhengzhou",34),
text("Taichung",34),
text("Brooklyn",34),
text("Ibadan",34),
text("Faisalabad",34),
text("Fuzhou",10),
text("Changsha",34),
text("Dakar",34),
text("Izmir",34),
text("Xiangtan",34),
text("Lanzhou",34),
text("Incheon",33),
text("Sapporo",33),
text("Xiamen",33),
text("Guayaquil",33),
text("George Town",33),
text("Mashhad",33),
text("Damascus",33),
text("Daegu",33),
text("Nagpur",33),
text("Lianshan",33),
text("Shijiazhuang",33),
text("Tunis",33),
text("Vienna",32),
text("Jilin",32),
text("Omdurman",32),
text("Bandung",32),
text("Bekasi",32),
text("Mannheim",32),
text("Nanchang",32),
text("Wenzhou",32),
text("Queens",32),
text("Vancouver",8),
text("Birmingham",18),
text("Cali",31),
text("Naples",31),
text("Sendai",31),
text("Manchester",8),
text("Puebla",31),
text("Tripoli",15),
text("Tashkent",31),
text("Havana",31),
text("Gaoping",31),
text("Baltimore",31),
text("Nanning",31),
text("Belem",31),
text("Patna",31),
text("Santo Domingo",31),
text("Urumqi",31),
text("Zaozhuang",31),
text("Baku",30),
text("Accra",30),
text("Yantai",30),
text("Medan",30),
text("Santa Cruz",8),
text("Tongshan",30),
text("Riverside",30),
text("Linyi",30),
text("St. Louis",30),
text("Las Vegas",30),
text("Maracaibo",30),
text("Kuwait City",30),
text("Ad Dammam",30),
text("Portland",9),
text("Haikou",30),
text("Hiroshima",30),
text("Baotou",30),
text("Hefei",30),
text("Indore",30),
text("Goiania",30),
text("Sanaa",30),
text("San Antonio",6),
text("Port-au-Prince",30),
text("Haiphong",29),
text("Suzhou",27),
text("Nanyang",29),
text("Bucharest",29),
text("Ningbo",29),
text("Douala",29),
text("Tangshan",29),
text("Tainan",29),
text("Xiping",17),
text("Asuncion",29),
text("Saidu Sharif",29),
text("Brisbane",28),
text("Rawalpindi",28),
text("Sacramento",28),
text("Beirut",28),
text("San Jose",24),
text("Minsk",28),
text("Kyoto",28),
text("Barranquilla",28),
text("Orlando",28),
text("Shuyangzha",28),
text("Valencia",19),
text("Hamburg",28),
text("Vadodara",28),
text("Manaus",28),
text("Shangqiu",28),
text("Wuxi",28),
text("Palembang",28),
text("Brussels",28),
text("Essen",28),
text("Cleveland",27),
text("Bhopal",27),
text("Hohhot",27),
text("Pittsburgh",27),
text("Luoyang",27),
text("Santos",27),
text("Jingling",27),
text("Warsaw",27),
text("Rabat",27),
text("Vitoria",27),
text("Quito",27),
text("Antananarivo",27),
text("Coimbatore",27),
text("Daqing",27),
text("Lu'an",27),
text("Sanzhou",27),
text("Budapest",27),
text("Turin",27),
text("Ludhiana",27),
text("Cincinnati",27),
text("Kumasi",27),
text("Manhattan",27),
text("Qiqihar",27),
text("Anshan",27),
text("Austin",27),
text("Zhongli",27),
text("Handan",27),
text("Tai'an",27),
text("Esfahan",27),
text("Kansas City",8),
text("Yaounde",26),
text("Shantou",26),
text("Agra",26),
text("Zhanjiang",26),
text("La Paz",9),
text("Kalyan",26),
text("Abuja",26),
text("Harare",26),
text("Indianapolis",26),
text("Xiantao",26),
text("Khulna",26),
text("Weifang",26),
text("Tijuana",26),
text("Xinyang",26),
text("Luzhou",26),
text("Perth",26),
text("Toluca",26),
text("Vishakhapatnam",26),
text("Leeds",26),
text("Kobe",26),
text("Columbus",10),
text("Multan",26),
text("Kochi",12),
text("Montevideo",26),
text("Gujranwala",26),
text("Niteroi",26),
text("Ganzhou",26),
text("Florence",26),
text("Liuzhou",26),
text("Bamako",25),
text("Conakry",25),
text("Bursa",25),
text("Leon de los Aldama",25),
text("Virginia Beach",25),
text("Nasik",25),
text("Fushun",25),
text("Changde",25),
text("Daejeon",25),
text("Charlotte",25),
text("Phnom Penh",25),
text("Neijiang",25),
text("Quanzhou",25),
text("Kharkiv",25),
text("Hyderabad City",25),
text("Bronx",25),
text("Lome",25),
text("Cordoba",9),
text("Huainan",25),
text("Doha",25),
text("Kuala Lumpur",25),
text("Maputo",25),
text("Kaduna",25),
text("Gwangju",25),
text("Kawanakajima",25),
text("San Salvador",25),
text("Suining",25),
text("Lyon",25),
text("Karaj",25),
text("Kampala",25),
text("Tabriz",25),
text("The Hague",25),
text("Davao",25),
text("Marseille",25),
text("Meerut",25),
text("Mianyang",25),
text("Semarang",25),
text("Faridabad",25),
text("Novosibirsk",25),
text("Mecca",25),
text("Dubai",24),
text("Milwaukee",24),
text("Auckland",24),
text("Ma'anshan",24),
text("Brazzaville",24),
text("Yiyang",24),
text("Varanasi",24),
text("Lubumbashi",24),
text("Juarez",24),
text("Ghaziabad",24),
text("Pretoria",24),
text("Heze",24),
text("Porto",24),
text("Asansol",24),
text("Lusaka",24),
text("Changzhou",24),
text("Mosul",24),
text("Yekaterinburg",24),
text("Peshawar",24),
text("Mandalay",24),
text("Jamshedpur",24),
text("Mbuji-Mayi",24),
text("Madura",24),
text("Adana",24),
text("Sheffield",24),
text("Jabalpur",24),
text("Panama City",8),
text("Nizhniy Novgorod",24),
text("Chifeng",24),
text("Duisburg",24),
text("Munich",24),
text("Huaiyin",23),
text("Stockholm",23),
text("Makassar",23),
text("Rajkot",23),
text("Dhanbad",23),
text("Mudanjiang",23),
text("Geneva",23),
text("Shiraz",23),
text("Huzhou",23),
text("Beidao",23),
text("Shuangshui",23),
text("Dusseldorf",23),
text("Gaozhou",23),
text("Sevilla",23),
text("Amritsar",23),
text("Vila Velha",23),
text("Almaty",23),
text("Providence",23),
text("Warangal",23),
text("Rosario",23),
text("Allahabad",23),
text("Benin City",23),
text("Jining",11),
text("Maceio",23),
text("Sofia",23),
text("Abbottabad",23),
text("Benghazi",23),
text("Cilacap",23),
text("Prague",22),
text("Glasgow",22),
text("Leshan",22),
text("Jacksonville",7),
text("Ouagadougou",22),
text("Ottawa",22),
text("Adelaide",22),
text("Shangrao",22),
text("Torreon",22),
text("Srinagar",22),
text("Bezwada",22),
text("Samara",22),
text("Omsk",22),
text("Newcastle",22),
text("Yulin",22),
text("Namp'o",22),
text("Xianyang",22),
text("Cagayan de Oro",22),
text("Can Tho",22),
text("Barquisimeto",22),
text("Helsinki",22),
text("Kazan'",22),
text("Aurangabad",22),
text("Calgary",22),
text("Ciudad Nezahualcoyotl",22),
text("Zurich",22),
text("Baoding",22),
text("Zigong",22),
text("Sharjah",22),
text("Yerevan",22),
text("Mogadishu",22),
text("Tbilisi",22),
text("Ankang",22),
text("Huambo",22),
text("Ikare",22),
text("Belgrade",22),
text("Salt Lake City",22),
text("Bhilai",22),
text("Jinhua",22),
text("Chelyabinsk",22),
text("Natal",21),
text("Dushanbe",22),
text("Copenhagen",22),
text("Changwon",22),
text("Zhuzhou",22),
text("Suwon",22),
text("Nashville",22),
text("Vereeniging",22),
text("Xiangyang",21),
text("Memphis",21),
text("Ulsan",21),
text("Amman",21),
text("Mizhou",21),
text("Richmond",7),
text("Dublin",21),
text("Edmonton",21),
text("Solapur",21),
text("Rostov-na-Donu",21),
text("Dnipro",21),
text("Xining",21),
text("Zhangjiakou",21),
text("Lille",21),
text("Ranchi",21),
text("Gaziantep",21),
text("Monrovia",21),
text("Sao Luis",21),
text("Amsterdam",21),
text("Jerusalem",21),
text("New Orleans",21),
text("Guatemala City",21),
text("Zhuhai",21),
text("Florianopolis",21),
text("Port Elizabeth",21),
text("Jiamusi",21),
text("Port Harcourt",21),
text("Raleigh",21),
text("Ufa",21),
text("Hengyang",21),
text("Benxi",21),
text("Louisville",21),
text("Haifa",21),
text("Medina",21),
text("Bucaramanga",21),
text("Maracay",21),
text("Rotterdam",21),
text("Homs",21),
text("Cologne",21),
text("Qinhuangdao",21),
text("Fes",21),
text("N'Djamena",21),
text("Tegucigalpa",20),
text("Kingston",7),
text("Nay Pyi Taw",20),
text("Djibouti",20),
text("Managua",20),
text("Niamey",20),
text("Tirana",20),
text("Kathmandu",20),
text("Ulaanbaatar",20),
text("Kigali",19),
text("Bishkek",19),
text("Oslo",19),
text("Bangui",19),
text("Freetown",19),
text("Islamabad",18),
text("Cotonou",18),
text("Vientiane",18),
text("Riga",18),
text("Nouakchott",18),
text("Muscat",18),
text("Ashgabat",18),
text("Zagreb",18),
text("Sarajevo",17),
text("Chisinau",17),
text("Lilongwe",17),
text("Asmara",16),
text("Abu Dhabi",16),
text("Port Louis",16),
text("Libreville",16),
text("Manama",15),
text("Vilnius",15),
text("Skopje",14),
text("Bloemfontein",14),
text("Bratislava",13),
text("Bissau",13),
text("Tallinn",13),
text("Wellington",13),
text("Valletta",12),
text("Maseru",12),
text("Nur-Sultan",12),
text("Bujumbura",12),
text("Canberra",12),
text("New Delhi",11),
text("Ljubljana",11),
text("Porto-Novo",11),
text("Bandar Seri Begawan",11),
text("Port of Spain",11),
text("Port Moresby",11),
text("Bern",11),
text("Windhoek",11),
text("Georgetown",10),
text("Paramaribo",10),
text("Dili",10),
text("Nassau",10),
text("Sucre",10),
text("Nicosia",10),
text("Dodoma",9),
text("Colombo",9),
text("Gaborone",9),
text("Yamoussoukro",9),
text("Bridgetown",9),
text("Suva",8),
text("Reykjavik",8),
text("Malabo",8),
text("Willemstad",8),
text("Podgorica",8),
text("Moroni",7),
text("Sri Jayewardenepura Kotte",7),
text("Praia",7),
text("Male",7),
text("Juba",7),
text("Luxembourg",6),
text("Aden",21),
text("Cochabamba",21),
text("Yongzhou",21),
text("Baoshan",21),
text("Quang Ha",21),
text("Kitaku",21),
text("Perm'",21),
text("Ahvaz",21),
text("Jodhpur",21),
text("San Luis Potosi",21),
text("Odesa",21),
text("Yinchuan",21),
text("Jiaxing",21),
text("Joinvile",21),
text("Donets'k",21),
text("Guilin",21),
text("Dahuk",21),
text("Volgograd",21),
text("Guwahati",21),
text("Yichun",18),
text("Yangquan",21),
text("Chandigarh",21),
text("Gwalior",21),
text("Hamamatsu",21),
text("Qom",20),
text("Jixi",20),
text("Merida",12),
text("Xin'an",20),
text("Queretaro",20),
text("Pingxiang",20),
text("Joao Pessoa",20),
text("Klang",20),
text("Jinzhou",20),
text("Oklahoma City",20),
text("Salerno",20),
text("Thiruvananthapuram",20),
text("Calicut",20),
text("Trichinopoly",20),
text("Ogbomoso",20),
text("General Santos",20),
text("Hue",20),
text("Bacolod",20),
text("Nantong",20),
text("Foshan",20),
text("Songnam",20),
text("Bridgeport",20),
text("Nice",20),
text("Buffalo",20),
text("Erbil",20),
text("Krasnoyarsk",20),
text("Olinda",20),
text("Antwerp",20),
text("Konya",20),
text("Bogor",20),
text("Hartford",20),
text("Huaibei",20),
text("Xinyu",20),
text("Teresina",20),
text("Naha",20),
text("Goyang",20),
text("Nangandao",20),
text("Yibin",20),
text("Aba",20),
text("Maiduguri",20),
text("Az Zarqa'",20),
text("Tarsus",20),
text("Bengbu",20),
text("Mendoza",20),
text("Hubli",20),
text("Concepcion",20),
text("Zaria",20),
text("Dengtalu",20),
text("Cartagena",9),
text("Mysore",20),
text("Mexicali",20),
text("Tongliao",19),
text("Mombasa",19),
text("Newcastle upon Tyne",19),
text("Novo Hamburgo",19),
text("Callao",19),
text("Bilbao",19),
text("Johor Bahru",19),
text("Raipur",19),
text("Xiaoxita",19),
text("Fort Worth",19),
text("Salem",10),
text("Yangjiang",19),
text("Marrakech",19),
text("Kaifeng Chengguanzhen",19),
text("Dandong",19),
text("Al Basrah",19),
text("Aguascalientes",19),
text("Tucson",19),
text("Okayama",19),
text("Bucheon",19),
text("Xuanzhou",19),
text("Bandar Lampung",19),
text("Rizhao",19),
text("Palermo",19),
text("Caerdydd",19),
text("Tampico",19),
text("Jiaozuo",19),
text("Padang",19),
text("Jalandhar",19),
text("Zhenjiang",19),
text("Valparaiso",19),
text("Pingdingshan",19),
text("Zunyi",19),
text("Anshun",19),
text("Toulouse",19),
text("El Paso",19),
text("Iguacu",19),
text("Bhubaneshwar",19),
text("Voronezh",19),
text("Saratov",19),
text("Yuci",19),
text("Yancheng",19),
text("Cuernavaca",19),
text("Linfen",19),
text("Honolulu",19),
text("Warri",19),
text("Basel",19),
text("San Miguel de Tucuman",19),
text("Kermanshah",19),
text("Thessaloniki",19),
text("Omaha",19),
text("Kota",19),
text("Braga",19),
text("Jhansi",19),
text("Rongjiawan",19),
text("Nottingham",19),
text("Agadir",19),
text("Butterworth",19),
text("Bareilly",19),
text("Jos",19),
text("Xingyi",19),
text("Cebu City",19),
text("Arequipa",19),
text("Liverpool",19),
text("Wuhu",19),
text("Langfang",19),
text("Rajshahi",19),
text("Zhaotong",19),
text("Culiacan",19),
text("Lingyuan",19),
text("Cuiaba",19),
text("Quy Nhon",19),
text("Malang",19),
text("Aligarh",19),
text("L'viv",19),
text("Bordeaux",19),
text("McAllen",19),
text("Baojishi",19),
text("Pekanbaru",19),
text("Oran",18),
text("Yingkou",18),
text("Bhiwandi",18),
text("Liaoyang",18),
text("Chihuahua",18),
text("Jammu",18),
text("Melaka",18),
text("Zaporizhzhya",18),
text("Moradabad",18),
text("Antalya",18),
text("Al Hudaydah",18),
text("Campo Grande",18),
text("Shaoxing",18),
text("Mangalore",18),
text("Wuppertal",18),
text("Cheongju",18),
text("Zamboanga City",18),
text("Hamhung",18),
text("Fuyang",8),
text("Ilorin",18),
text("Saarbrucken",18),
text("Fuxin",18),
text("Shiyan",18),
text("Quetta",18),
text("Trujillo",18),
text("Kananga",18),
text("Trabzon",18),
text("Jincheng",18),
text("Albuquerque",18),
text("Lodz",18),
text("Krakow",18),
text("Saltillo",18),
text("Sao Jose dos Campos",18),
text("Hungnam",18),
text("Ta`izz",18),
text("Pietermaritzburg",18),
text("Tangier",18),
text("Hsinchu",18),
text("Changhua",18),
text("Kolhapur",18),
text("Farg`ona",18),
text("Namangan",18),
text("Liege",18),
text("Ciudad Guayana",18),
text("Hegang",18),
text("Naga City",18),
text("Gdansk",18),
text("Ansan",18),
text("Nuremberg",18),
text("Oyo",18),
text("Amravati",18),
text("Denpasar",18),
text("Sokoto",18),
text("Beihai",18),
text("Bremen",18),
text("As Sulaymaniyah",18),
text("Hannover",18),
text("Cucuta",18),
text("Hamilton",8),
text("Moshi",18),
text("Shaoguan",18),
text("Kumamoto",18),
text("Dayton",18),
text("Xinpu",17),
text("Acapulco de Juarez",17),
text("Kandahar",17),
text("Dehra Dun",17),
text("Rochester",7),
text("Jeonju",17),
text("Samarkand",17),
text("Qingyuan",17),
text("Sarasota",17),
text("Changzhi",17),
text("Tol'yatti",17),
text("Jaboatao",17),
text("Shizuoka",17),
text("Bulawayo",17),
text("Soledad",17),
text("Fresno",17),
text("Meknes",17),
text("La Plata",17),
text("Malegaon",17),
text("Enugu",17),
text("Huangshi",17),
text("Aracaju",17),
text("Allentown",17),
text("Bonn",17),
text("San Pedro Sula",17),
text("Nellore",17),
text("Catania",17),
text("Gorakhpur",17),
text("Ipoh",17),
text("Ch'ongjin",17),
text("Tulsa",17),
text("Utsunomiya",17),
text("Puyang Chengguanzhen",17),
text("An Najaf",17),
text("Sao Jose dos Pinhais",17),
text("Santo Andre",17),
text("Bytom",17),
text("Pointe-Noire",17),
text("At Ta'if",17),
text("Ismailia",17),
text("Concord",10),
text("Shimoga",17),
text("Bien Hoa",17),
text("Kryvyy Rih",17),
text("Irbid",17),
text("Tiruppur",17),
text("Andijon",17),
text("Krasnodar",17),
text("Zaragoza",17),
text("Genoa",17),
text("Diyarbakir",17),
text("Morelia",17),
text("Ul'yanovsk",17),
text("Utrecht",17),
text("Kikwit",16),
text("Al Hufuf",16),
text("Yogyakarta",16),
text("Wroclaw",16),
text("Winnipeg",16),
text("Izhevsk",16),
text("Cape Coral",16),
text("Springfield",8),
text("Zhuozhou",16),
text("Raurkela",16),
text("Quebec",16),
text("Poznan",16),
text("Colorado Springs",16),
text("Port Said",16),
text("Nanded",16),
text("Bannu",16),
text("Southend-on-Sea",16),
text("Dresden",16),
text("Wiesbaden",16),
text("Charleston",8),
text("Changping",16),
text("Palu",16),
text("Taizhou",16),
text("Xingtai",16),
text("Samsun",16),
text("Luxor",16),
text("Belgaum",16),
text("Pontianak",16),
text("Yaroslavl'",16),
text("Constantine",16),
text("Banjarmasin",16),
text("Grand Rapids",16),
text("Kirkuk",16),
text("Sangli",16),
text("Mission Viejo",16),
text("Suhaj",16),
text("Al Mansurah",16),
text("Canoas",16),
text("Barnaul",16),
text("Zahedan",16),
text("Jalalabad",16),
text("Albany",16),
text("Chiclayo",16),
text("Hermosillo",16),
text("Chanda",16),
text("Al Hillah",16),
text("Rasht",16),
text("Nagano",16),
text("Vinh",16),
text("Abeokuta",16),
text("Kayseri",16),
text("Samarinda",16),
text("Ajmer",16),
text("Dortmund",16),
text("Vladivostok",16),
text("Irkutsk",16),
text("Knoxville",16),
text("Blantyre",16),
text("Baton Rouge",16),
text("Anqing",16),
text("Cuttack",16),
text("Hachioji",16),
text("Khabarovsk",16),
text("Veracruz",16),
text("Kisangani",16),
text("Kerman",16),
text("Orumiyeh",16),
text("Bikaner",16),
text("Quetzaltenango",16),
text("Bakersfield",16),
text("Ogden",16),
text("Shihezi",16),
text("Kuching",16),
text("Shuozhou",16),
text("Niigata",16),
text("Pereira",16),
text("Macau",16),
text("New Haven",16),
text("Bouake",16),
text("Columbia",6),
text("Akron",15),
text("Binjai",15),
text("Uberlandia",15),
text("Sorocaba",15),
text("Wusong",15),
text("Weihai",15),
text("Mar del Plata",15),
text("Santiago de Cuba",15),
text("Siping",15),
text("Kagoshima",15),
text("Surakarta",15),
text("Makhachkala",15),
text("Bhavnagar",15),
text("Uyo",15),
text("Bristol",15),
text("Bahawalpur",15),
text("Kenitra",15),
text("Ribeirao Preto",15),
text("Kanazawa",15),
text("Orenburg",15),
text("Malaga",15),
text("Tabuk",15),
text("Puerto La Cruz",15),
text("Jiujiang",15),
text("Hisar",15),
text("Kashgar",15),
text("Matola",15),
text("Bilaspur",15),
text("Sargodha",15),
text("Leipzig",15),
text("Tinnevelly",15),
text("Cancun",15),
text("Yangzhou",15),
text("Novokuznetsk",15),
text("Latakia",15),
text("Heroica Matamoros",15),
text("Goteborg",15),
text("Otsu",15),
text("Tomsk",15),
text("Linxia Chengguanzhen",15),
text("Matsuyama",15),
text("Rouen",15),
text("Jiangmen",15),
text("Oaxaca",15),
text("Beira",15),
text("Guntur",15),
text("Hamadan",15),
text("Cangzhou",15),
text("Kota Kinabalu",15),
text("Gold Coast",15),
text("Ji'an",15),
text("Londrina",15),
text("Ryazan'",15),
text("Shashi",15),
text("Bello",15),
text("Tyumen'",15),
text("Lipetsk",15),
text("Shiliguri",15),
text("Eskisehir",15),
text("Banda Aceh",15),
text("Ujjain",15),
text("Salta",15),
text("Penza",15),
text("Blida",15),
text("Mykolayiv",15),
text("Karbala'",15),
text("Suez",15),
text("Gliwice",15),
text("Bukittinggi",15),
text("Liaoyuan",15),
text("Kota Bharu",15),
text("Jundiai",15),
text("Edinburgh",15),
text("Tlaxcala",15),
text("Provo",15),
text("Arak",15),
text("Davangere",15),
text("Vina del Mar",15),
text("Pingtung",15),
text("Annaba",15),
text("Akola",15),
text("Brighton",15),
text("Astrakhan'",15),
text("Bradford",15),
text("Bari",15),
text("Damanhur",15),
text("Al Minya",15),
text("Taoyuan District",15),
text("Keelung",15),
text("San Lorenzo",15),
text("Pasuruan",15),
text("Chiayi",15),
text("Thai Nguyen",15),
text("Awka",15),
text("Shuangyashan",15),
text("Mazatan",15),
text("Tsu",15),
text("Mataram",15),
text("Macapa",15),
text("Worcester",7),
text("Reynosa",15),
text("Shahrisabz",15),
text("Mesa",14),
text("Duma",14),
text("Mwanza",14),
text("Wuwei",14),
text("Palm Bay",14),
text("Port Sudan",14),
text("Santa Fe",7),
text("Tula",14),
text("Bani Suwayf",14),
text("Yanji",14),
text("Toledo",14),
text("Bologna",14),
text("Brookhaven",14),
text("Saharanpur",14),
text("Murrieta",14),
text("Gulbarga",14),
text("Bhatpara",14),
text("Wichita",14),
text("Ile-Ife",14),
text("Feira de Santana",14),
text("Shah Alam",14),
text("Mariupol'",14),
text("Des Moines",14),
text("Tuxtla",14),
text("Herat",14),
text("Homyel'",14),
text("Zhaoqing",14),
text("Americana",14),
text("Dhulia",14),
text("Ostrava",14),
text("Yazd",14),
text("Sialkot City",14),
text("Kemerovo",14),
text("Nazret",14),
text("Staten Island",14),
text("Jiaojiangcun",14),
text("Chaoyang",14),
text("Juiz de Fora",14),
text("Udaipur",14),
text("Long Beach",14),
text("Greenville",7),
text("Kocaeli",14),
text("Piraeus",14),
text("Shymkent",14),
text("Iligan",14),
text("Qazvin",14),
text("Calabar",14),
text("Malatya",14),
text("Dadukou",14),
text("Bandar `Abbas",14),
text("Naberezhnyye Chelny",14),
text("Hamah",14),
text("Cranbourne",14),
text("Iquitos",14),
text("Mazar-e Sharif",14),
text("Leicester",14),
text("Kirov",14),
text("Jingdezhen",14),
text("Durango",14),
text("Jambi",14),
text("Volta Redonda",14),
text("Hengshui",14),
text("Sfax",14),
text("Sunderland",14),
text("Xalapa",14),
text("Luhans'k",14),
text("Manado",14),
text("Qaraghandy",14),
text("An Nasiriyah",14),
text("Oshawa",14),
text("Taihecun",14),
text("Belfast",14),
text("Sanliurfa",14),
text("Chengde",14),
text("Jiangguanchi",14),
text("Chlef",14),
text("Oita",14),
text("Baguio City",14),
text("San Juan",12),
text("Cheboksary",14),
text("Ado-Ekiti",14),
text("Balikpapan",14),
text("Bellary",14),
text("Bamenda",14),
text("Gent",14),
text("Tokushima",14),
text("Little Rock",14),
text("Wuzhou",14),
text("Portsmouth",14),
text("Harrisburg",14),
text("Cabimas",14),
text("Foz do Iguacu",14),
text("Denton",14),
text("Wakayama",14),
text("Strasbourg",14),
text("Madison",14),
text("Mawlamyine",14),
text("San Cristobal",8),
text("Nantes",14),
text("Khujand",14),
text("Guangyuan",14),
text("Khomeyni Shahr",14),
text("Garoua",14),
text("Bukavu",14),
text("Tuticorin",14),
text("Nagasaki",14),
text("Pohang",14),
text("Kaliningrad",14),
text("Likasi",14),
text("Reno",13),
text("Spanish Town",13),
text("Port St. Lucie",13),
text("San Luis",7),
text("Katsina",13),
text("Welkom",13),
text("Santa Marta",13),
text("Villahermosa",13),
text("Bryansk",13),
text("Bournemouth",13),
text("Bengkulu",13),
text("Heidelberg",13),
text("Oakland",13),
text("Kurnool",13),
text("Chaozhou",13),
text("Batangas",13),
text("Gaya",13),
text("Ibague",13),
text("Ivanovo",13),
text("Erzurum",13),
text("Akure",13),
text("Asyut",13),
text("Kolwezi",13),
text("Sukkur",13),
text("Luohe",13),
text("Campina Grande",13),
text("Kitchener",13),
text("Winston-Salem",13),
text("Middlesbrough",13),
text("Meizhou",13),
text("Ardabil",13),
text("Magnitogorsk",13),
text("Gifu",13),
text("Huancayo",13),
text("Nha Trang",13),
text("Maturin",13),
text("Zhangjiakou Shi Xuanhua Qu",13),
text("Kursk",13),
text("Oujda-Angad",13),
text("Metz",13),
text("Al `Ayn",13),
text("Jeju",13),
text("Osogbo",13),
text("Indio",13),
text("Ipatinga",13),
text("Szczecin",13),
text("Durham",13),
text("Syracuse",13),
text("Chattanooga",13),
text("Murcia",13),
text("Tanta",13),
text("Kitwe",13),
text("Lancaster",12),
text("Zanzibar",13),
text("Taubate",13),
text("Ghulja",13),
text("Pasay City",13),
text("Spokane",13),
text("Mbale",13),
text("Palm Coast",13),
text("Kassala",13),
text("Sunch'on",13),
text("Tver'",13),
text("Sikar",13),
text("Jiangjiafan",13),
text("Surgut",13),
text("Tumkur",13),
text("Gomez Palacio",13),
text("Buraydah",13),
text("Khmel'nyts'kyy",13),
text("Eindhoven",13),
text("Chiang Mai",13),
text("Piura",13),
text("Horlivka",13),
text("Arlington",10),
text("Ndola",13),
text("Yuxi",13),
text("Bonita Springs",13),
text("Poughkeepsie",13),
text("Kisumu",13),
text("Stockton",13),
text("Quilon",13),
text("El Obeid",13),
text("Nyala",13),
text("Sandakan",13),
text("Ahmadnagar",13),
text("Osh",13),
text("Stoke-on-Trent",13),
text("Bhilwara",13),
text("Oxnard",13),
text("Comilla",13),
text("Augusta",13),
text("Scranton",13),
text("Samut Prakan",13),
text("Grenoble",13),
text("Nampula",13),
text("Nizamabad",13),
text("Granada",6),
text("Brno",13),
text("Coventry",13),
text("Alajuela",13),
text("Iloilo",13),
text("Campos",13),
text("Resistencia",13),
text("Baicheng",8),
text("Qarshi",13),
text("Misratah",13),
text("Ha'il",13),
text("Boise",13),
text("Bejaia",13),
text("Southampton",13),
text("Celaya",13),
text("Pasto",13),
text("Modesto",13),
text("Caxias do Sul",13),
text("Nizhniy Tagil",13),
text("Xichang",13),
text("Dezhou",13),
text("Vigo",13),
text("Las Palmas de Gran Canaria",13),
text("Parbhani",13),
text("Karlsruhe",13),
text("Zhoukou",13),
text("Makiyivka",13),
text("Putian",13),
text("Kahramanmaras",13),
text("Manizales",13),
text("Palma",13),
text("Manukau City",13),
text("Shillong",13),
text("Khorramabad",13),
text("Villavicencio",13),
text("Sao Jose do Rio Preto",13),
text("Kaunas",13),
text("Latur",13),
text("Kissimmee",13),
text("Youngstown",12),
text("Shache",12),
text("Seremban",12),
text("Denizli",12),
text("Van",12),
text("A Coruna",12),
text("Madan",12),
text("Quzhou",12),
text("Rajapalaiyam",12),
text("Reading",10),
text("Najran",12),
text("Mahilyow",12),
text("Al Qatif",12),
text("Mazatlan",12),
text("Longyan",12),
text("Aurora",9),
text("Bydgoszcz",12),
text("Kuantan",12),
text("Gorontalo",12),
text("Nakuru",12),
text("Vladikavkaz",12),
text("Larkana",12),
text("Christchurch",12),
text("Stavropol'",12),
text("Sanya",12),
text("Bhagalpur",12),
text("Shekhupura",12),
text("Cusco",12),
text("Tamale",12),
text("Ulan-Ude",12),
text("Bobo-Dioulasso",12),
text("Lublin",12),
text("Halifax",12),
text("Augsburg",12),
text("Sungai Petani",12),
text("Ad Diwaniyah",12),
text("Taraz",12),
text("Toulon",12),
text("Zanjan",12),
text("Donostia",12),
text("Iwaki",12),
text("Encarnacion",12),
text("Posadas",12),
text("Fuyu",12),
text("Ca Mau",12),
text("Asahikawa",12),
text("Mirpur Khas",12),
text("Arkhangel'sk",12),
text("Wafangdian",12),
text("Ambon",12),
text("Orizaba",12),
text("Hongzhai",12),
text("Santiago del Estero",12),
text("Mito",12),
text("Safi",12),
text("Eldoret",12),
text("Rahimyar Khan",12),
text("Neiva",12),
text("Anaheim",12),
text("Vinnytsya",12),
text("Hualien",12),
text("Kuala Terengganu",12),
text("Long Xuyen",12),
text("Viet Tri",12),
text("Qo`qon",12),
text("Yingmen",12),
text("Haarlem",12),
text("Buon Ma Thuot",12),
text("Chimbote",12),
text("Muzaffarnagar",12),
text("Nuevo Laredo",12),
text("Sanandaj",12),
text("Linz",12),
text("Camaguey",12),
text("Verona",12),
text("Victorville",12),
text("Charleroi",12),
text("Belgorod",12),
text("Kusti",12),
text("Al `Amarah",12),
text("Maebashi",12),
text("Pensacola",12),
text("Kurgan",12),
text("Kohat",12),
text("Vitsyebsk",12),
text("Piracicaba",12),
text("Yeosu",12),
text("Fayetteville",12),
text("Corpus Christi",12),
text("Jhang City",12),
text("Pematangsiantar",12),
text("Arusha",12),
text("Corrientes",12),
text("Tamuramachi-moriyama",12),
text("Plovdiv",12),
text("Chitungwiza",12),
text("Aksu",12),
text("Yucheng",12),
text("Tieling",12),
text("Irapuato",12),
text("Kaluga",12),
text("East London",12),
text("Jackson",12),
text("Kaesong",12),
text("Ciudad Bolivar",12),
text("Kawagoe",12),
text("Jitpur",12),
text("Phan Thiet",12),
text("Alor Setar",12),
text("Santa Cruz de Tenerife",12),
text("Gijon",12),
text("Greensboro",12),
text("Flint",12),
text("Islip",12),
text("Bauru",12),
text("Nakhon Ratchasima",12),
text("Orel",12),
text("Takamatsu",12),
text("Santa Ana",10),
text("Muzaffarpur",12),
text("Beni",12),
text("Toyama",12),
text("Hangu",12),
text("Wad Medani",12),
text("Montes Claros",12),
text("Bielefeld",12),
text("Heyuan",12),
text("Mathura",12),
text("Mymensingh",12),
text("Baishan",12),
text("Patiala",12),
text("Wonsan",12),
text("Pavlodar",12),
text("Fort Wayne",12),
text("Maringa",12),
text("Saugor",12),
text("Sochi",12),
text("Montpellier",12),
text("Itajai",12),
text("Sousse",12),
text("Ann Arbor",12),
text("Iasi",12),
text("Brahmapur",12),
text("Birjand",12),
text("Yoshkar-Ola",12),
text("Miyazaki",12),
text("Volzhskiy",12),
text("Chenzhou",12),
text("Valladolid",12),
text("Santa Rosa",7),
text("Al Kut",12),
text("Smolensk",12),
text("Lansing",12),
text("Ciudad del Este",12),
text("Pelotas",12),
text("Podol'sk",12),
text("Kherson",12),
text("Shahjanpur",12),
text("Itu",12),
text("Legazpi City",12),
text("Akita",12),
text("Maroua",12),
text("Anapolis",12),
text("Pachuca",12),
text("Bukhara",12),
text("Murmansk",12),
text("Windsor",12),
text("Holguin",12),
text("Oskemen",12),
text("Tepic",12),
text("Vladimir",12),
text("Mobile",11),
text("Hat Yai",11),
text("Poltava",11),
text("Cumana",11),
text("Hrodna",11),
text("Rohtak",11),
text("Al Fayyum",11),
text("Cluj-Napoca",11),
text("Bauchi",11),
text("Lexington",11),
text("Alicante",11),
text("Dezful",11),
text("Maiquetia",11),
text("Armenia",11),
text("Timisoara",11),