// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// name_generator.js
// written and released to the public domain by drow <drow@bin.sh>
// http://creativecommons.org/publicdomain/zero/1.0/

  var name_set = {};
  var chain_cache = {};

// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// generator function
// type set:['egyptian','countries']

  function generate_name (type) {
    var chain; if (chain = markov_chain(type)) {
      return markov_name(chain);
    }
    return '';
  }

// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// generate multiple

  function name_list (type, n_of) {
    var list = [];

    var i; for (i = 0; i < n_of; i++) {
      list.push(generate_name(type));
    }
    return list;
  }

// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// get markov chain by type

  function markov_chain (type) {
    var chain; if (chain = chain_cache[type]) {
      return chain;
    } else {
      var list; if (list = name_set[type]) {
        var chain; if (chain = construct_chain(list)) {
          chain_cache[type] = chain;
          return chain;
        }
      }
    }
    return false;
  }

// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// construct markov chain from list of names

  function construct_chain (list) {
    var chain = {};

    var i; for (i = 0; i < list.length; i++) {
      var names = list[i].split(/\s+/);
      chain = incr_chain(chain,'parts',names.length);

      var j; for (j = 0; j < names.length; j++) {
        var name = names[j];
        chain = incr_chain(chain,'name_len',name.length);

        var c = name.substr(0,1);
        chain = incr_chain(chain,'initial',c);

        var string = name.substr(1);
        var last_c = c;

        while (string.length > 0) {
          var c = string.substr(0,1);
          chain = incr_chain(chain,last_c,c);

          string = string.substr(1);
          last_c = c;
        }
      }
    }
    return scale_chain(chain);
  }
  function incr_chain (chain, key, token) {
    if (chain[key]) {
      if (chain[key][token]) {
        chain[key][token]++;
      } else {
        chain[key][token] = 1;
      }
    } else {
      chain[key] = {};
      chain[key][token] = 1;
    }
    return chain;
  }
  function scale_chain (chain) {
    var table_len = {};

    var key; for (key in chain) {
      table_len[key] = 0;

      var token; for (token in chain[key]) {
        var count = chain[key][token];
        var weighted = Math.floor(Math.pow(count,1.3));

        chain[key][token] = weighted;
        table_len[key] += weighted;
      }
    }
    chain['table_len'] = table_len;
    return chain;
  }

// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// construct name from markov chain

  function markov_name (chain) {
    var parts = select_link(chain,'parts');
    var names = [];

    var i; for (i = 0; i < parts; i++) {
      var name_len = select_link(chain,'name_len');
      var c = select_link(chain,'initial');
      var name = c;
      var last_c = c;

      while (name.length < name_len) {
        c = select_link(chain,last_c);
        name += c;
        last_c = c;
      }
      names.push(name);
    }
    return names.join(' ');
  }
  function select_link (chain, key) {
    var len = chain['table_len'][key];
    var idx = Math.floor(Math.random() * len);

    var t = 0; for (token in chain[key]) {
      t += chain[key][token];
      if (idx < t) { return token; }
    }
    return '-';
  }

// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// egyptian_set.js
// drawn from Kate Monk's Onomastikon, (c) 1997 Kate Monk

// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// json format
// http://en.wikipedia.org/wiki/JSON

  name_set['egyptian'] = [
    'Aakheperkare',
    'Addaya',
    'Ahhotpe',
    'Ahmes',
    'Ahmose',
    'Ahmose-saneit',
    'Ahmose-sipari',
    'Akencheres',
    'Akunosh',
    'Amenakht',
    'Amenakhte',
    'Amenemhat',
    'Amenemheb',
    'Amenemopet',
    'Amenhirkopshef',
    'Amenhirwenemef',
    'Amenhotpe',
    'Amenmesse',
    'Amenmose',
    'Amennestawy',
    'Amenope',
    'Amenophis',
    'Amenwahsu',
    'Ameny',
    'Amosis-ankh',
    'Amoy',
    'Amunemhat',
    'Amunherpanesha',
    'Amunhotpe',
    'Anen',
    'Ankh-Psamtek',
    'Ankhef',
    'Ankhefenamun',
    'Ankhefenkhons',
    'Ankhefenmut',
    'Ankhsheshonq',
    'Ankhtify',
    'Ankhtyfy',
    'Ankhu',
    'Ankhuemhesut',
    'Any',
    'Apophis',
    'Baba',
    'Baenre',
    'Bak',
    'Bakenkhons',
    'Bakenkhonsu',
    'Bakenmut',
    'Bakennefi',
    'Bakenptah',
    'Baky',
    'Bata',
    'Bay',
    'Bek',
    'Bengay',
    'Besenmut',
    'Butehamun',
    'Denger',
    'Deniuenkhons',
    'Djadjaemankh',
    'Djau',
    'Djedefhor',
    'Djedhor',
    'Djedhoriufankh',
    'Djedi',
    'Djedkhonsiufankh',
    'Djedkhonsuefankh',
    'Djedptahefankh',
    'Djedptahiufankh',
    'Djehutmose',
    'Djehuty',
    'Djehutymose',
    'Djenutymes',
    'Djeserka',
    'Djeserkare',
    'Djeserkheprure',
    'Djesersukhons',
    'Djethutmose',
    'Djhutmose',
    'Genubath',
    'Gua',
    'Haankhef',
    'Hapimen',
    'Hapu',
    'Hapuseneb',
    'Hapymen',
    'Haremakhet',
    'Haremsat',
    'Harkhebi',
    'Harkhuf',
    'Harmhabi',
    'Harnakhte',
    'Harsiese',
    'Hay',
    'Hemaka',
    'Henenu',
    'Henuka',
    'Heqaemeheh',
    'Heqaib',
    'Herenamenpenaef',
    'Herihor',
    'Hesire',
    'Hor',
    'Horapollo',
    'Hordedef',
    'Horemheb',
    'Hori',
    'Hornedjitef',
    'Horpais',
    'Horwebbefer',
    'Hrihor',
    'Hunefer',
    'Huy',
    'Huya',
    'Iawy',
    'Ibana',
    'Ibe',
    'Idy',
    'Ikeni',
    'Ikui',
    'Imhotep',
    'Inarus',
    'Inebni',
    'Ineni',
    'Inyotef',
    'Ipi',
    'Ipuwer',
    'Ipuy',
    'Ipy',
    'Ishpi',
    'Iu-Amun',
    'Iufankh',
    'Iufenamun',
    'Iunmin',
    'Iuseneb',
    'Iuwlot',
    'Iyerniutef',
    'Iyimennuef',
    'Iymeru',
    'Jarha',
    'Kadjadja',
    'Kahma',
    'Kaka',
    'Kanakht',
    'Karnefhere',
    'Katenen',
    'Kawab',
    'Kay',
    'Kemuny',
    'Kenamun',
    'Kenefer',
    'Kerasher',
    'Kha',
    'Khaemhet',
    'Khaemnetjeru',
    'Khaemwaset',
    'Khahor',
    'Khakheperraseneb',
    'Khay',
    'Khensthoth',
    'Kheruef',
    'Khety',
    'Khnemibre',
    'Khnumhotep',
    'Khnumhotpe',
    'Khons',
    'Khonsirdais',
    'Khonskhu',
    'Khonsuemwaset',
    'Khufukhaf',
    'Khui',
    'Kuenre',
    'Kysen',
    'Maakha',
    'Mahu',
    'Mahuhy',
    'Maiherpri',
    'Manakhtuf',
    'Manetho',
    'Masaharta',
    'May',
    'Maya',
    'Mehy',
    'Meketre',
    'Mekhu',
    'Men',
    'Menkheperraseneb',
    'Menkheperre',
    'Menmet-Ra',
    'Menna',
    'Mentuemhat',
    'Mentuherkhepshef',
    'Meremptor',
    'Merenamun',
    'Merenkhons',
    'Merenptah',
    'Mereruka',
    'Merka',
    'Mernebptah',
    'Mery',
    'Meryamun',
    'Meryatum',
    'Meryawy',
    'Merymose',
    'Meryptah',
    'Meryrahashtef',
    'Meryre',
    'Mes',
    'Min',
    'Minkhat',
    'Minmose',
    'Minnakht',
    'Mokhtar',
    'Montjuemhat',
    'Montjuhirkopshef',
    'Montuemhet',
    'Mose',
    'Naga-ed-der',
    'Nakhthorheb',
    'Nakhtimenwast',
    'Nakhtmin',
    'Nakhtnebef',
    'Naneferkeptah',
    'Nebamun',
    'Nebankh',
    'Nebemakst',
    'Nebhotep',
    'Nebimes',
    'Nebitka',
    'Nebmaetre',
    'Nebnefer',
    'Nebnetjeru',
    'Nebseni',
    'Nebseny',
    'Nebwennenef',
    'Nechoutes',
    'Neferhotep',
    'Neferhotpe',
    'Neferkheperuhersekheper',
    'Nefermaet',
    'Nefermenu',
    'Neferrenpet',
    'Neferti',
    'Nehasy',
    'Nehi',
    'Nekau',
    'Nekhwemmut',
    'Nendjbaendjed',
    'Nenedjebaendjed',
    'Neneferkaptah',
    'Nenkhefta',
    'Nes',
    'Nesamun',
    'Neshi',
    'Neshorpakhered',
    'Neskhons',
    'Nesmont',
    'Nespaherenhat',
    'Nespakashuty',
    'Nespatytawy',
    'Nespherenhat',
    'Nessuimenopet',
    'Nestanebetasheru',
    'Nestefnut',
    'Netihur',
    'Nigmed',
    'Nimlot',
    'Niumateped',
    'Pa-Siamun',
    'Pabasa',
    'Pabernefy',
    'Padiamenet',
    'Padiamenipet',
    'Padiamun',
    'Padineith',
    'Paheripedjet',
    'Pairy',
    'Pait',
    'Pakharu',
    'Pakhneter',
    'Pamont',
    'Pamose',
    'Pamu',
    'Panas',
    'Paneb',
    'Paneferher',
    'Panehesy',
    'Paperpa',
    'Paramesse',
    'Parennefer',
    'Pasebakhaenniut',
    'Pasekhonsu',
    'Paser',
    'Pashedbast',
    'Pashedu',
    'Pasherdjehuty',
    'Pawiaeadja',
    'Paynedjem',
    'Payneferher',
    'Pediamun',
    'Pediese',
    'Pedihor',
    'Penamun',
    'Penbuy',
    'Penmaat',
    'Pennestawy',
    'Pentaweret',
    'Pentu',
    'Pepynakhte',
    'Peraha',
    'Pinhasy',
    'Pinotmou',
    'Prahotpe',
    'Pramessu',
    'Preherwenemef',
    'Prehirwennef',
    'Prepayit',
    'Psamtek',
    'Psenamy',
    'Psenmin',
    'Ptahhemakhet',
    'Ptahhemhat-Ty',
    'Ptahhotep',
    'Ptahhudjankhef',
    'Ptahmose',
    'Ptahshepses',
    'Qenymin',
    'Rahotep',
    'Rahotpe',
    'Raia',
    'Ramessenakhte',
    'Ramessu',
    'Rekhmire',
    'Reuser',
    'Rewer',
    'Roma-Roy',
    'Rudamun',
    'Sabef',
    'Sabni',
    'Salatis',
    'Samut',
    'Sanehet',
    'Sasobek',
    'Sawesit',
    'Scepter',
    'Sekhemkare',
    'Sekhmire',
    'Seneb',
    'Senebtyfy',
    'Senemut',
    'Senmen',
    'Sennedjem',
    'Sennefer',
    'Sennufer',
    'Senui',
    'Senwosret',
    'Serapion',
    'Sese',
    'Setau',
    'Setep',
    'Sethe',
    'Sethherwenemef',
    'Sethhirkopshef',
    'Sethnakhte',
    'Sethnakte',
    'Sethy',
    'Setne',
    'Setymerenptah',
    'Shedsunefertum',
    'Shemay',
    'Shepenwepet',
    'Si-Mut',
    'Siamun',
    'Siese',
    'Sinuhe',
    'Sipair',
    'Sneferu',
    'Somtutefnakhte',
    'Surero',
    'Suty',
    'Sutymose',
    'Takairnayu',
    'Takany',
    'Tasetmerydjehuty',
    'Tayenimu',
    'Tefibi',
    'Tenermentu',
    'Teti-en',
    'Tetisheri',
    'Tjaenhebyu',
    'Tjahapimu',
    'Tjaroy',
    'Tjauemdi',
    'Tjenna',
    'Tjety',
    'To',
    'Tui',
    'Tutu',
    'Tymisba',
    'Udjahorresne',
    'Udjahorresneith',
    'Uni',
    'Userhet',
    'Usermontju',
    'Wadjmose',
    'Wahibre-Teni',
    'Wahka',
    'Webaoner',
    'Webensenu',
    'Wedjakhons',
    'Wenamun',
    'Wendjabaendjed',
    'Wendjebaendjed',
    'Weni',
    'Wennefer',
    'Wennufer',
    'Wepmose',
    'Wepwawetmose',
    'Werdiamenniut',
    'Werirenptah',
    'Yanhamu',
    'Yey',
    'Yii',
    'Yuya',
    'Zazamoukh'
  ];

name_set['countries'] = [
    'Afghanistan',
    'Åland',
    'Albania',
    'Algeria',
    'American',
    'Samoa',
    'Andorra',
    'Angola',
    'Anguilla',
    'Antarctica',
    'Antigua',
    'Barbuda',
    'Argentina',
    'Armenia',
    'Aruba',
    'Australia',
    'Austria',
    'Azerbaijan',
    'Bahamas',
    'Bahrain',
    'Bangladesh',
    'Barbados',
    'Belarus',
    'Belgium',
    'Belize',
    'Benin',
    'Bermuda',
    'Bhutan',
    'Bolivia',
    'Bosnia',
    'Herzegovina',
    'Botswana',
    'Bouvet',
    'Island',
    'Brazil',
    'British',
    'Indian',
    'Ocean',
    'Territory',
    'Brunei',
    'Darussalam',
    'Bulgaria',
    'Burkina',
    'Faso',
    'Burundi',
    'Cambodia',
    'Cameroon',
    'Canada',
    'Cape',
    'Verde',
    'Cayman',
    'Islands',
    'Central',
    'African',
    'Republic',
    'Chad',
    'Chile',
    'China',
    'Christmas',
    'Island',
    'Cocos',
    'Keeling',
    'Islands',
    'Colombia',
    'Comoros',
    'Congo',
    'Cook',
    'Costa',
    'Rica',
    'Cote',
    'Voire',
    'Croatia',
    'Cuba',
    'Cyprus',
    'Czech',
    'Republic',
    'Denmark',
    'Djibouti',
    'Dominica',
    'Dominican',
    'Ecuador',
    'Egypt',
    'El',
    'Salvador',
    'Equatorial',
    'Guinea',
    'Eritrea',
    'Estonia',
    'Ethiopia',
    'Falkland',
    'Malvinas',
    'Faroe',
    'Fiji',
    'Finland',
    'France',
    'French',
    'Guiana',
    'French',
    'Polynesia',
    'French',
    'Southern',
    'Territories',
    'Gabon',
    'Gambia',
    'Georgia',
    'Germany',
    'Ghana',
    'Gibraltar',
    'Greece',
    'Greenland',
    'Grenada',
    'Guadeloupe',
    'Guam',
    'Guatemala',
    'Guernsey',
    'Guinea',
    'Guinea',
    'Bissau',
    'Guyana',
    'Haiti',
    'Heard',
    'Mcdonald',
    'Holy',
    'Vatican',
    'City',
    'State',
    'Honduras',
    'Hong Kong',
    'Hungary',
    'Iceland',
    'India',
    'Indonesia',
    'Iraq',
    'Ireland',
    'Isle',
    'Man',
    'Israel',
    'Italy',
    'Jamaica',
    'Japan',
    'Jersey',
    'Jordan',
    'Kazakhstan',
    'Kenya',
    'Kiribati',
    'Korea',
    'Kuwait',
    'Kyrgyzstan',
    'Lao',
    'Peoples',
    'Democratic',
    'Latvia',
    'Lebanon',
    'Lesotho',
    'Liberia',
    'Libyan',
    'Arab',
    'Jamahiriya',
    'Liechtenstein',
    'Lithuania',
    'Luxembourg',
    'Macao',
    'Macedonia',
    'Madagascar',
    'Malawi',
    'Malaysia',
    'Maldives',
    'Mali',
    'Malta',
    'Marshall',
    'Martinique',
    'Mauritania',
    'Mauritius',
    'Mayotte',
    'Mexico',
    'Micronesia',
    'Moldova',
    'Monaco',
    'Mongolia',
    'Montserrat',
    'Morocco',
    'Mozambique',
    'Myanmar',
    'Namibia',
    'Nauru',
    'Nepal',
    'Netherlands',
    'Antilles',
    'New',
    'Caledonia',
    'Zealand',
    'Nicaragua',
    'Niger',
    'Nigeria',
    'Niue',
    'Norfolk',
    'Northern',
    'Mariana',
    'Norway',
    'Oman',
    'Pakistan',
    'Palau',
    'Palestinian',
    'Panama',
    'Papua',
    'Paraguay',
    'Peru',
    'Philippines',
    'Pitcairn',
    'Poland',
    'Portugal',
    'Puerto',
    'Rico',
    'Qatar',
    'Reunion',
    'Romania',
    'Russian',
    'Federation',
    'Ruanda',
    'Saint',
    'Helena',
    'Kitts',
    'Nevis',
    'Lucia',
    'Pierre',
    'Miquelon',
    'Vincent',
    'Grenadines',
    'Samoa',
    'San',
    'Marino',
    'Sao',
    'Tome',
    'Principe',
    'Saudi',
    'Arabia',
    'Senegal',
    'Serbia',
    'Montenegro',
    'Seychelles',
    'Sierra',
    'Leone',
    'Singapore',
    'Slovakia',
    'Slovenia',
    'Solomon',
    'Somalia',
    'South',
    'Africa',
    'South',
    'Georgia',
    'Sandwich',
    'Spain',
    'Sri',
    'Lanka',
    'Sudan',
    'Suriname',
    'Svalbard',
    'Jan',
    'Mayen',
    'Swaziland',
    'Sweden',
    'Switzerland',
    'Syrian',
    'Arab',
    'Taiwan',
    'Tajikistan',
    'Tanzania',
    'Thailand',
    'Timor',
    'Leste',
    'Togo',
    'Tokelau',
    'Tonga',
    'Trinidad',
    'Tobago',
    'Tunisia',
    'Turkey',
    'Turkmenistan',
    'Turks',
    'Caicos',
    'Tuvalu',
    'Uganda',
    'Ukraine',
    'United',
    'Emirates',
    'Kingdom',
    'States',
    'Minor',
    'Outlying',
    'Uruguay',
    'Uzbekistan',
    'Vanuatu',
    'Venezuela',
    'Viet',
    'Nam',
    'Virgin',
    'Wallis',
    'Futuna',
    'Western',
    'Sahara',
    'Yemen',
    'Zambia',
    'Zimbabwe'
];

name_set['cities'] = [
  'Shafer',
  'Greenwood',
  'Naples',
  'Cameron',
  'Dukedom',
  'Sneedville',
  'Colby',
  'Anamosa',
  'Wilmerding',
  'MartinsFerry',
  'Cleveland',
  'Industry',
  'Stephenville',
  'Chazy',
  'Scott',
  'Carrier',
  'Jacumba',
  'Ulm',
  'WestNewton',
  'Tonawanda',
  'Newport',
  'Betsy',
  'Farmdale',
  'Union',
  'Annawan',
  'BigSky',
  'Exton',
  'Ravenwood',
  'Glenwood',
  'Creek',
  'Joseph',
  'Driftwood',
  'Radnor',
  'Triangle',
  'Concord',
  'Florida',
  'Keansburg',
  'Millburn',
  'Flasher',
  'Harrietta',
  'Chassell',
  'Forestville',
  'Satsop',
  'Newry',
  'Bunn',
  'Belmont',
  'Burlington',
  'OBrien',
  'Athena',
  'Stapleton',
  'Frankford',
  'Capron',
  'Cecil',
  'Sterling',
  'Truckee',
  'Elko',
  'Wesley',
  'Presho',
  'Rosebud',
  'Charlotte',
  'Oakland',
  'PresqueIsle',
  'Arcadia',
  'Hudson',
  'Parrish',
  'Beloit',
  'Montgomery',
  'Tuntutuliak',
  'Selden',
  'Embarrass',
  'Winslow',
  'Briggs',
  'Tornado',
  'Wilmot',
  'Titusville',
  'Grantville',
  'Nunda',
  'Barnard',
  'Zanesville',
  'Evergreen',
  'Auburndale',
  'Conley',
  'Pacific',
  'Coyote',
  'Bovey',
  'Oakmont',
  'Milano',
  'Henryville',
  'Grafton',
  'Wapakoneta',
  'Forgan',
  'Saulsville',
  'Danville',
  'Kirksey',
  'Oconto',
  'Clearwater',
  'Spoutspring',
  'Rockwood',
  'Owenton',
  'Sycamore',
  'Almacenter',
  'Penryn',
  'Hudsonville',
  'OaklandGardens',
  'Clewiston',
  'Bolingbroke',
  'Grawn',
  'Longislandcity',
  'Huntingdon',
  'Spartansburg',
  'Belden',
  'Elkton',
  'Rosalia',
  'NewMarket',
  'Perris',
  'Columbus',
  'Nocona',
  'Naylor',
  'Coeburn',
  'Roseau',
  'Loveland',
  'Machias',
  'Olive',
  'StarCity',
  'Ramsey',
  'Clinton',
  'Sparks',
  'Rensselaer',
  'OceanPark',
  'Sandborn',
  'Brookfield',
  'Sarona',
  'Fairfax',
  'Monee',
  'Dixonville',
  'Oakhurst',
  'Garfield',
  'Silverdale',
  'PortReading',
  'Swisshome',
  'Deltona',
  'Lancaster',
  'Friendship',
  'Kosciusko',
  'Halltown',
  'Pembroke',
  'Bishop',
  'Williamsport',
  'Homerville',
  'CalhounFalls',
  'Montrose',
  'Devon',
  'Akron',
  'Streeter',
  'Godfrey',
  'Chanhassen',
  'Issaquah',
  'RioLinda',
  'Rolesville',
  'Baldwyn',
  'Perkiomenville',
  'Valley',
  'Whitepost',
  'Rialto',
  'Prairie',
  'Aitkin',
  'Bayou',
  'Iredell',
  'Bellecenter',
  'Hamtramck',
  'Roxana',
  'Harbor',
  'Hartford',
  'MedicineLake',
  'Nemaha',
  'Isleton',
  'Morrisonville',
  'Rogersville',
  'Agra',
  'Creole',
  'Minoa',
  'Sparta',
  'Moscow',
  'Metropolis',
  'Meadow',
  'Adamstown',
  'Wenden',
  'NewLebanon',
  'Alpena',
  'Summerfield',
  'Kirkland',
  'Conway',
  'Barlow',
  'Tavernier',
  'Kamas',
  'Randolph',
  'Texarkana',
  'Stockton',
  'WestUnity',
  'Bauxite',
  'Savannah',
  'Lynco',
  'Woonsocket',
  'Seaton',
  'Steele',
  'Stanley',
  'Kewgardens',
  'Fredericksburg',
  'FallRiver',
  'Chilton',
  'PoconoSummit',
  'Paradise',
  'Belle',
  'Newharbor',
  'Minnetonka',
  'Tioga',
  'Ontario',
  'Clarkrange',
  'Cusseta',
  'Circleville',
  'Centerbrook',
  'Stanwood',
  'Toddville',
  'Clarkson',
  'LanokaHarbor',
  'Prescott',
  'FuquayVarina',
  'AshFork',
  'Price',
  'Marlboro',
  'Vernon',
  'Bellaire',
  'Manteno',
  'Yosemite',
  'Canfield',
  'Elnora',
  'Minden',
  'Sadieville',
  'Porcupine',
  'Fayville',
  'Halma',
  'Davis',
  'NorthAdams',
  'Falkner',
  'Surgoinsville',
  'Sylacauga',
  'PortAngeles',
  'Athens',
  'Palmyra',
  'Berlin',
  'Glenwood',
  'Pampa',
  'Kansas',
  'Colona',
  'Apache',
  'Afton',
  'Smithfield',
  'Palisade',
  'Fruitland',
  'Petersburg',
  'Piedmont',
  'Reedsville',
  'Pleasant',
  'Troy',
  'Perryville',
  'Harrisonburg',
  'Sackets',
  'Loganville',
  'Clintondale',
  'Irvington',
  'Marianna',
  'NorthSalem',
  'Assaria',
  'Belleville',
  'Kaukauna',
  'Como',
  'ElPaso',
  'Canalou',
  'Kite',
  'Springfield',
  'Jenison',
  'Shubuta',
  'Sheridan',
  'WestRiver',
  'Snoqualmie',
  'Mendham',
  'Milnor',
  'Downs',
  'Staatsburg',
  'Alpine',
  'Hazelton',
  'Orangeville',
  'Kinta',
  'Stevinson',
  'QueenCreek',
  'DeWitt',
  'Tropic',
  'Batson',
  'Deer',
  'Moundridge',
  'DrippingSprings',
  'Chula',
  'Canton',
  'Powhatan',
  'Pocono',
  'Jonestown',
  'Palmer',
  'McKeesport',
  'Linwood',
  'Lincoln',
  'Stinesville',
  'Mantua',
  'Dexter',
  'Romney',
  'Indialantic',
  'Somerset',
  'Medford',
  'Rio',
  'Medicinelodge',
  'FallBranch',
  'WestBlocton',
  'Weyerhaeuser',
  'Gibson',
  'Oceanside',
  'RockIsland',
  'LittleValley',
  'Winston',
  'MineHill',
  'Oviedo',
  'Arkadelphia',
  'SantaClara',
  'Thiefriverfalls',
  'Hamler',
  'Sprakers',
  'Taylor',
  'Agar',
  'Maxton',
  'Iron',
  'Empire',
  'Fulton',
  'Lithopolis',
  'Waianae',
  'HazelGreen',
  'Somerville',
  'Whitakers',
  'Keenesburg',
  'RockyFace',
  'Newcastle',
  'Crooksville',
  'Lena',
  'Pope',
  'Mills',
  'Austinburg',
  'Zullinger',
  'Ruidoso',
  'Anthony',
  'Kennedy',
  'Nichols',
  'Wynnewood',
  'SaintPeter',
  'Lakeview',
  'Marcy',
  'Jamaica',
  'LowryCity',
  'Keystone',
  'Jaffrey',
  'Duchesne',
  'Bernstadt',
  'Bivins',
  'Ceresco',
  'Decatur',
  'NewCastle',
  'Kettleman',
  'Ochelata',
  'Waitsburg',
  'Weatherford',
  'Richmondhill',
  'Stockdale',
  'Buffalo',
  'Marbury',
  'FortDeposit',
  'Chittenden',
  'Morenovalley',
  'Hinton',
  'Utica',
  'Mandeville',
  'Valentines',
  'Meridianville',
  'NewCanton',
  'Bracey',
  'Grover',
  'WhiteOak',
  'Rockford',
  'Belmond',
  'Southaven',
  'Sedalia',
  'Grenloch',
  'Boyertown',
  'Ketchikan',
  'Penitas',
  'Horseshoe',
  'Lansford',
  'Leicester',
  'Magna',
  'Jay',
  'Cornelius',
  'Inkom',
  'Holden',
  'Collegedale',
  'Farrell',
  'Cedargrove',
  'Ogallah',
  'Eldridge',
  'Hazlehurst',
  'Temecula',
  'Grundy',
  'Everett',
  'Soldier',
  'LaPine',
  'Pinehurst',
  'Bradley',
  'Glencoe',
  'Burlingame',
  'BluffCity',
  'Thomasboro',
  'Fairfieldbay',
  'Earlimart',
  'Williamstown',
  'NewParis',
  'Jefferson',
  'Plattsburg',
  'Cimarron',
  'Mason',
  'Valier',
  'Folcroft',
  'Carrolltown',
  'CrowAgency',
  'Lebanonjunction',
  'Fishersisland',
  'Portland',
  'Kelso',
  'Moneta',
  'Kathleen',
  'Marion',
  'Milford',
  'Waucoma',
  'Wasco',
  'Hartington',
  'Ellington',
  'Millersburg',
  'Bradford',
  'Rusk',
  'Dateland',
  'LongGrove',
  'Lansing',
  'Orrington',
  'Tuckerton',
  'Salerno',
  'Guymon',
  'BuiesCreek',
  'Wooton',
  'SafetyHarbor',
  'Kremmling',
  'Viola',
  'Bellevue',
  'Kennard',
  'Wimbledon',
  'Elliottsburg',
  'Emery',
  'Wellsville',
  'Russell',
  'Telluride',
  'Laton',
  'StarLake',
  'Lakewood',
  'Rector',
  'Pickerington',
  'Castor',
  'Bowersville',
  'Granitefalls',
  'LakeHelen',
  'Emporia',
  'Winton',
  'Bandera',
  'Derma',
];


// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
if (typeof module != 'undefined') {
  module.exports={
    generate:generate_name,
    set:['egyptian','countries']
  }
}
