Cod:
$tlds['ac'] = array('com', 'edu', 'gov', 'net', 'mil', 'org');
$tlds['ad'] = array('nom');
$tlds['ae'] = array('co', 'net', 'org', 'sch', 'ac', 'gov', 'mil');
$tlds['af'] = array('gov', 'com', 'org', 'net', 'edu');
$tlds['ag'] = array('com', 'org', 'net', 'co', 'nom');
$tlds['ai'] = array('off', 'com', 'net', 'org');
$tlds['al'] = array('com', 'edu', 'gov', 'mil', 'net', 'org');
$tlds['an'] = array('com', 'net', 'org', 'edu');
$tlds['ao'] = array('ed', 'gv', 'og', 'co', 'pb', 'it');
$tlds['as'] = array('gov');
$tlds['at'] = array('ac', 'co', 'gv', 'or', 'biz', 'info', 'priv');
$tlds['au'] = array('act', 'nsw', 'nt', 'qld', 'sa', 'tas', 'vic', 'wa', 'edu', 'gov');
$tlds['aw'] = array('com');
$tlds['az'] = array('com', 'net', 'int', 'gov', 'org', 'edu', 'info', 'pp', 'mil', 'name', 'pro', 'biz');
$tlds['ba'] = array('org', 'net', 'edu', 'gov', 'mil', 'unsa', 'unbi', 'co', 'com', 'rs');
$tlds['bb'] = array('biz', 'com', 'edu', 'gov', 'info', 'net', 'org');
$tlds['be'] = array('ac');
$tlds['bf'] = array('gov');
$tlds['bg'] = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9');
$tlds['bh'] = array('com', 'edu', 'net', 'org', 'gov');
$tlds['bi'] = array('co', 'com', 'edu', 'or', 'org');
$tlds['bj'] = array('asso', 'gouv');
$tlds['bm'] = array('com', 'edu', 'gov', 'net', 'org');
$tlds['bo'] = array('com', 'edu', 'gov', 'gob', 'int', 'org', 'net', 'mil', 'tv');
$tlds['br'] = array('adm', 'adv', 'agr', 'am', 'arq', 'art', 'ato', 'b', 'bio', 'blog', 'bmd', 'can', 'cim', 'cng', 'cnt', 'com', 'coop', 'ecn', 'edu', 'emp', 'eng', 'esp', 'etc', 'eti', 'far', 'flog', 'fm', 'fnd', 'fot', 'fst', 'g12', 'ggf', 'gov', 'imb', 'ind', 'inf', 'jor', 'jus', 'lel', 'mat', 'med', 'mil', 'mus', 'net', 'nom', 'not', 'ntr', 'odo', 'org', 'ppg', 'pro', 'psc', 'psi', 'qsl', 'rec', 'slg', 'srv', 'taxi', 'teo', 'tmp', 'trd', 'tur', 'tv', 'vet', 'vlog', 'wiki', 'zlg');
$tlds['bs'] = array('com', 'net', 'org', 'edu', 'gov');
$tlds['bt'] = array('com', 'edu', 'gov', 'net', 'org');
$tlds['bw'] = array('co', 'org');
$tlds['by'] = array('gov', 'mil', 'com', 'of');
$tlds['bz'] = array('com', 'net', 'org', 'edu', 'gov');
$tlds['ca'] = array('ab', 'bc', 'mb', 'nb', 'nf', 'nl', 'ns', 'nt', 'nu', 'on', 'pe', 'qc', 'sk', 'yk', 'gc');
$tlds['cd'] = array('gov');
$tlds['ci'] = array('org', 'or', 'com', 'co', 'edu', 'ed', 'ac', 'net', 'go', 'asso', 'int', 'md', 'gouv');
$tlds['cl'] = array('gov', 'gob');
$tlds['cm'] = array('gov');
$tlds['cn'] = array('ac', 'com', 'edu', 'gov', 'net', 'org', 'mil', 'ah', 'bj', 'cq', 'fj', 'gd', 'gs', 'gz', 'gx', 'ha', 'hb', 'he', 'hi', 'hl', 'hn', 'jl', 'js', 'jx', 'ln', 'nm', 'nx', 'qh', 'sc', 'sd', 'sh', 'sn', 'sx', 'tj', 'xj', 'xz', 'yn', 'zj', 'hk', 'mo', 'tw');
$tlds['co'] = array('arts', 'com', 'edu', 'firm', 'gov', 'info', 'int', 'mil', 'net', 'nom', 'org', 'rec', 'web');
$tlds['com'] = array('ar', 'br', 'cn', 'de', 'eu', 'gb', 'hu', 'jpn', 'kr', 'no', 'qc', 'ru', 'sa', 'se', 'uk', 'us', 'uy', 'za');
$tlds['cr'] = array('ac', 'co', 'ed', 'fi', 'go', 'or', 'sa');
$tlds['cu'] = array('com', 'edu', 'org', 'net', 'gov', 'inf');
$tlds['cx'] = array('gov');
$tlds['dm'] = array('com', 'net', 'org', 'edu', 'gov');
$tlds['do'] = array('art', 'com', 'edu', 'gob', 'gov', 'mil', 'net', 'org', 'sld', 'web');
$tlds['dz'] = array('com', 'org', 'net', 'gov', 'edu', 'asso', 'pol', 'art');
$tlds['ec'] = array('com', 'info', 'net', 'fin', 'k12', 'med', 'pro', 'org', 'edu', 'gov', 'gob', 'mil');
$tlds['ee'] = array('edu', 'gov', 'riik', 'lib', 'med', 'com', 'pri', 'aip', 'org', 'fie');
$tlds['eg'] = array('com', 'edu', 'eun', 'gov', 'mil', 'name', 'net', 'org', 'sci');
$tlds['es'] = array('com', 'nom', 'org', 'gob', 'edu');
$tlds['fr'] = array('com', 'asso', 'nom', 'prd', 'tm', 'gouv');
$tlds['ge'] = array('com', 'edu', 'gov', 'org', 'mil', 'net', 'pvt');
$tlds['gg'] = array('co', 'org', 'net', 'sch', 'gov');
$tlds['gh'] = array('com', 'edu', 'gov', 'org', 'mil');
$tlds['gi'] = array('com', 'ltd', 'gov', 'mod', 'edu', 'org');
$tlds['gn'] = array('ac', 'com', 'edu', 'gov', 'org', 'net');
$tlds['gp'] = array('com', 'net', 'mobi', 'edu', 'org', 'asso');
$tlds['gr'] = array('com', 'edu', 'net', 'org', 'gov');
$tlds['gy'] = array('co', 'com', 'net');
$tlds['hk'] = array('com', 'edu', 'gov', 'idv', 'net', 'org');
$tlds['hn'] = array('com', 'edu', 'org', 'net', 'mil', 'gob');
$tlds['hr'] = array('iz', 'from', 'name', 'com');
$tlds['ht'] = array('com', 'shop', 'firm', 'info', 'net', 'pro', 'org', 'med', 'art', 'coop', 'pol', 'asso', 'edu', 'rel', 'gouv');
$tlds['hu'] = array('co', 'info', 'org', 'priv', 'tm', 'bolt', 'city', 'film', 'news', 'sex', 'shop', 'suli', 'szex');
$tlds['id'] = array('ac', 'co', 'go', 'mil', 'net', 'or', 'sch', 'web');
$tlds['ie'] = array('gov');
$tlds['im'] = array('co', 'net', 'gov', 'org', 'nic', 'ac');
$tlds['in'] = array('co', 'firm', 'net', 'org', 'gen', 'ind', 'nic', 'ac', 'edu', 'res', 'gov', 'mil');
$tlds['int'] = array('eu');
$tlds['io'] = array('com');
$tlds['iq'] = array('gov', 'edu', 'mil', 'com', 'org', 'net');
$tlds['ir'] = array('ac', 'co', 'gov', 'id', 'net', 'org', 'sch');
$tlds['is'] = array('net', 'com', 'edu', 'gov', 'org', 'int');
$tlds['it'] = array('gov', 'edu', 'ag', 'al', 'an', 'ao', 'ar', 'ap', 'at', 'av', 'ba', 'bt', 'bl', 'bn', 'bg', 'bi', 'bo', 'bz', 'bs', 'br', 'ca', 'cl', 'cb', 'ci', 'ce', 'ct', 'cz', 'ch', 'co', 'cs', 'cr', 'kr', 'cn', 'og', 'en', 'fe', 'fm', 'fi', 'fg', 'fc', 'fr', 'ge', 'go', 'gr', 'im', 'is', 'aq', 'sp', 'lt', 'le', 'lc', 'li', 'lo', 'lu', 'mc', 'mn', 'ms', 'mt', 'vs', 'me', 'mi', 'mo', 'mb', 'na', 'no', 'nu', 'or', 'pd', 'pa', 'pr', 'pv', 'pg', 'pe', 'pu', 'pc', 'pi', 'pt', 'pn', 'pz', 'po', 'rg', 'ra', 'rc', 're', 'ri', 'rn', 'rm', 'ro', 'sa', 'ss', 'sv', 'si', 'sr', 'so', 'ta', 'ot', 'te', 'tr', 'to', 'tp', 'tn', 'tv', 'ts', 'ud', 'va', 've', 'vb', 'vc', 'vr', 'vv', 'vi', 'vt');
$tlds['je'] = array('co', 'org', 'net', 'sch', 'gov');
$tlds['jo'] = array('com', 'org', 'net', 'edu', 'sch', 'gov', 'mil', 'name');
$tlds['jp'] = array('ac', 'ad', 'co', 'ed', 'go', 'gr', 'lg', 'ne', 'or');
$tlds['kg'] = array('org', 'net', 'com', 'edu', 'gov', 'mil');
$tlds['ki'] = array('edu', 'biz', 'net', 'org', 'gov', 'info', 'com');
$tlds['km'] = array('org', 'nom', 'gov', 'prd', 'tm', 'edu', 'mil', 'ass', 'com', 'coop', 'asso', 'gouv');
$tlds['kn'] = array('net', 'org', 'edu', 'gov');
$tlds['kp'] = array('com', 'edu', 'gov', 'org', 'rep', 'tra');
$tlds['kr'] = array('ac', 'co', 'es', 'go', 'hs', 'kg', 'mil', 'ms', 'ne', 'or', 'pe', 're', 'sc');
$tlds['ky'] = array('edu', 'gov', 'com', 'org', 'net');
$tlds['kz'] = array('org', 'edu', 'net', 'gov', 'mil', 'com');
$tlds['la'] = array('int', 'net', 'info', 'edu', 'gov', 'per', 'com', 'org', 'c');
$tlds['lb'] = array('com', 'edu', 'gov', 'net', 'org');
$tlds['lc'] = array('com', 'net', 'co', 'org', 'edu', 'gov');
$tlds['lk'] = array('gov', 'sch', 'net', 'int', 'com', 'org', 'edu', 'ngo', 'soc', 'web', 'ltd', 'assn', 'grp');
$tlds['lr'] = array('com', 'edu', 'gov', 'org', 'net');
$tlds['ls'] = array('co', 'org');
$tlds['lt'] = array('gov');
$tlds['lv'] = array('com', 'edu', 'gov', 'org', 'mil', 'id', 'net', 'asn', 'conf');
$tlds['ly'] = array('com', 'net', 'gov', 'plc', 'edu', 'sch', 'med', 'org', 'id');
$tlds['ma'] = array('co', 'net', 'gov', 'org', 'ac');
$tlds['mc'] = array('tm', 'asso');
$tlds['me'] = array('co', 'net', 'org', 'edu', 'ac', 'gov', 'its', 'priv');
$tlds['mg'] = array('org', 'nom', 'gov', 'prd', 'tm', 'edu', 'mil', 'com');
$tlds['mk'] = array('com', 'org', 'net', 'edu', 'gov', 'inf', 'name');
$tlds['ml'] = array('com', 'edu', 'gouv', 'gov', 'net', 'org');
$tlds['mn'] = array('gov', 'edu', 'org');
$tlds['mo'] = array('com', 'net', 'org', 'edu', 'gov');
$tlds['mr'] = array('gov');
$tlds['mu'] = array('com', 'net', 'org', 'gov', 'ac', 'co', 'or');
$tlds['mv'] = array('aero', 'biz', 'com', 'coop', 'edu', 'gov', 'info', 'int', 'mil', 'name', 'net', 'org', 'pro');
$tlds['mw'] = array('ac', 'biz', 'co', 'com', 'coop', 'edu', 'gov', 'int', 'net', 'org');
$tlds['mx'] = array('com', 'org', 'gob', 'edu', 'net');
$tlds['my'] = array('com', 'net', 'org', 'gov', 'edu', 'mil', 'name');
$tlds['na'] = array('info', 'pro', 'name', 'or', 'dr', 'us', 'mx', 'ca', 'in', 'cc', 'tv', 'ws', 'mobi', 'co', 'com', 'org');
$tlds['nc'] = array('asso');
$tlds['net'] = array('gb', 'se', 'uk', 'za');
$tlds['nf'] = array('com', 'net', 'per', 'rec', 'web', 'arts', 'firm', 'info');
$tlds['ng'] = array('ac', 'com', 'edu', 'gov', 'net', 'org');
$tlds['nl'] = array('bv', 'co');
$tlds['no'] = array('fhs', 'vgs', 'priv', 'mil', 'stat', 'dep', 'aa', 'ah', 'bu', 'fm', 'hl', 'hm', 'mr', 'nl', 'nt', 'of', 'ol', 'oslo', 'rl', 'sf', 'st', 'tm', 'tr', 'va', 'vf', 'co');
$tlds['nr'] = array('biz', 'info', 'gov', 'edu', 'org', 'net', 'com');
$tlds['org'] = array('ae', 'za');
$tlds['pa'] = array('ac', 'gob', 'com', 'org', 'sld', 'edu', 'net', 'ing', 'abo', 'med', 'nom');
$tlds['pe'] = array('edu', 'gob', 'nom', 'mil', 'org', 'com', 'net');
$tlds['pf'] = array('com', 'org', 'edu');
$tlds['ph'] = array('com', 'net', 'org', 'gov', 'edu', 'ngo', 'mil', 'i');
$tlds['pk'] = array('com', 'net', 'edu', 'org', 'fam', 'biz', 'web', 'gov', 'gob', 'gok', 'gon', 'gop', 'gos', 'info');
$tlds['pl'] = array('aid', 'agro', 'atm', 'auto', 'biz', 'com', 'edu', 'gsm', 'info', 'mail', 'mil', 'net', 'nom', 'org', 'pc', 'priv', 'rel', 'sex', 'shop', 'sos', 'tm', 'art', 'gov', 'ngo', 'irc', 'elk', 'lapy', 'nysa', 'pila', 'pisz', 'waw', 'gda', 'med', 'wroc', 'co');
$tlds['pn'] = array('gov', 'co', 'org', 'edu', 'net');
$tlds['pr'] = array('com', 'net', 'org', 'gov', 'edu', 'isla', 'pro', 'biz', 'info', 'name', 'est', 'prof', 'ac');
$tlds['pro'] = array('aca', 'bar', 'cpa', 'jur', 'law', 'med', 'eng');
$tlds['ps'] = array('edu', 'gov', 'sec', 'plo', 'com', 'org', 'net');
$tlds['pt'] = array('net', 'gov', 'org', 'edu', 'int', 'publ', 'com', 'nome');
$tlds['pw'] = array('co', 'ne', 'or', 'ed', 'go');
$tlds['re'] = array('com', 'asso', 'nom');
$tlds['ro'] = array('com', 'org', 'tm', 'nt', 'nom', 'info', 'rec', 'arts', 'firm', 'www');
$tlds['rs'] = array('co', 'org', 'edu', 'ac', 'gov', 'in');
$tlds['ru'] = array('ac', 'com', 'edu', 'int', 'net', 'org', 'pp', 'amur', 'bir', 'cbg', 'chel', 'jar', 'kchr', 'khv', 'komi', 'mari', 'msk', 'nnov', 'nov', 'nsk', 'omsk', 'perm', 'ptz', 'rnd', 'spb', 'stv', 'tom', 'tsk', 'tula', 'tuva', 'tver', 'udm', 'vrn', 'cmw', 'kms', 'nkz', 'snz', 'gov', 'mil', 'test');
$tlds['rw'] = array('gov', 'net', 'edu', 'ac', 'com', 'co', 'int', 'mil', 'gouv');
$tlds['sa'] = array('com', 'net', 'org', 'gov', 'med', 'pub', 'edu', 'sch');
$tlds['sb'] = array('com', 'edu', 'gov', 'net', 'org');
$tlds['sc'] = array('com', 'gov', 'net', 'org', 'edu');
$tlds['sd'] = array('com', 'net', 'org', 'edu', 'med', 'gov', 'info');
$tlds['se'] = array('a', 'ac', 'b', 'bd', 'c', 'd', 'e', 'f', 'fh', 'fhsk', 'fhv', 'g', 'h', 'i', 'k', 'l', 'm', 'n', 'o', 'org', 'p', 'pp', 'r', 's', 'sshn', 't', 'tm', 'u', 'w', 'x', 'y', 'z');
$tlds['sg'] = array('com', 'net', 'org', 'gov', 'edu', 'per');
$tlds['sl'] = array('com', 'net', 'edu', 'gov', 'org');
$tlds['sn'] = array('art', 'com', 'edu', 'gouv', 'org', 'univ');
$tlds['so'] = array('com', 'net', 'org');
$tlds['st'] = array('co', 'com', 'edu', 'gov', 'mil', 'net', 'org');
$tlds['sy'] = array('edu', 'gov', 'net', 'mil', 'com', 'org');
$tlds['sz'] = array('co', 'ac', 'org');
$tlds['th'] = array('ac', 'co', 'go', 'in', 'mi', 'net', 'or');
$tlds['tj'] = array('ac', 'biz', 'co', 'com', 'edu', 'go', 'gov', 'int', 'mil', 'name', 'net', 'nic', 'org', 'test', 'web');
$tlds['tl'] = array('gov');
$tlds['tn'] = array('com', 'ens', 'fin', 'gov', 'ind', 'intl', 'nat', 'net', 'org', 'info', 'rnrt', 'rns', 'rnu');
$tlds['to'] = array('com', 'gov', 'net', 'org', 'edu', 'mil');
$tlds['tr'] = array('nc');
$tlds['tt'] = array('co', 'com', 'org', 'net', 'biz', 'info', 'pro', 'int', 'coop', 'jobs', 'mobi', 'aero', 'name', 'gov', 'edu');
$tlds['tw'] = array('edu', 'gov', 'mil', 'com', 'net', 'org', 'idv', 'game', 'ebiz', 'club');
$tlds['tz'] = array('ac', 'co', 'go', 'mil', 'ne', 'or', 'sc');
$tlds['ua'] = array('com', 'edu', 'gov', 'in', 'net', 'org', 'ck', 'cn', 'cv', 'dn', 'dp', 'if', 'kh', 'kiev', 'km', 'kr', 'ks', 'kv', 'lg', 'lviv', 'mk', 'od', 'pl', 'rv', 'te', 'vn', 'zp', 'zt');
$tlds['ug'] = array('co', 'ac', 'sc', 'go', 'ne', 'or');
$tlds['uk'] = array('co', 'sch');
$tlds['us'] = array('dni', 'fed', 'isa', 'kids', 'nsn', 'ak', 'al', 'ar', 'as', 'az', 'ca', 'co', 'ct', 'dc', 'de', 'fl', 'ga', 'gu', 'hi', 'ia', 'id', 'il', 'in', 'ks', 'ky', 'la', 'ma', 'md', 'me', 'mi', 'mn', 'mo', 'ms', 'mt', 'nc', 'nd', 'ne', 'nh', 'nj', 'nm', 'nv', 'ny', 'oh', 'ok', 'or', 'pa', 'pr', 'ri', 'sc', 'sd', 'tn', 'tx', 'ut', 'vi', 'vt', 'va', 'wa', 'wi', 'wv', 'wy');
$tlds['uz'] = array('com', 'co');
$tlds['vc'] = array('com', 'net', 'org', 'gov', 'mil', 'edu');
$tlds['vi'] = array('co', 'com', 'k12', 'net', 'org');
$tlds['vn'] = array('com', 'net', 'org', 'edu', 'gov', 'int', 'ac', 'biz', 'info', 'name', 'pro');
$tlds['ws'] = array('com', 'net', 'org', 'gov', 'edu');