No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.
 
 
 

2792 líneas
118 KiB

  1. // This file was generated by go generate; DO NOT EDIT
  2. package language
  3. import "golang.org/x/text/internal/tag"
  4. // CLDRVersion is the CLDR version from which the tables in this package are derived.
  5. const CLDRVersion = "29"
  6. const numLanguages = 8654
  7. const numScripts = 230
  8. const numRegions = 354
  9. type fromTo struct {
  10. from uint16
  11. to uint16
  12. }
  13. const nonCanonicalUnd = 649
  14. const (
  15. _af = 10
  16. _am = 17
  17. _ar = 21
  18. _az = 36
  19. _bg = 56
  20. _bn = 75
  21. _ca = 97
  22. _cs = 121
  23. _da = 128
  24. _de = 133
  25. _el = 154
  26. _en = 155
  27. _es = 157
  28. _et = 159
  29. _fa = 164
  30. _fi = 168
  31. _fil = 170
  32. _fr = 175
  33. _gu = 211
  34. _he = 224
  35. _hi = 225
  36. _hr = 238
  37. _hu = 242
  38. _hy = 243
  39. _id = 248
  40. _is = 258
  41. _it = 259
  42. _ja = 263
  43. _ka = 273
  44. _kk = 303
  45. _km = 307
  46. _kn = 309
  47. _ko = 310
  48. _ky = 333
  49. _lo = 357
  50. _lt = 361
  51. _lv = 368
  52. _mk = 396
  53. _ml = 397
  54. _mn = 399
  55. _mo = 402
  56. _mr = 406
  57. _ms = 410
  58. _mul = 414
  59. _my = 421
  60. _nb = 431
  61. _ne = 436
  62. _nl = 445
  63. _no = 449
  64. _pa = 471
  65. _pl = 487
  66. _pt = 495
  67. _ro = 515
  68. _ru = 519
  69. _sh = 549
  70. _si = 552
  71. _sk = 554
  72. _sl = 556
  73. _sq = 570
  74. _sr = 571
  75. _sv = 583
  76. _sw = 584
  77. _ta = 593
  78. _te = 600
  79. _th = 605
  80. _tl = 616
  81. _tn = 619
  82. _tr = 623
  83. _uk = 646
  84. _ur = 652
  85. _uz = 653
  86. _vi = 658
  87. _zh = 708
  88. _zu = 710
  89. _jbo = 265
  90. _ami = 1033
  91. _bnn = 1740
  92. _hak = 221
  93. _tlh = 13850
  94. _lb = 340
  95. _nv = 458
  96. _pwn = 11438
  97. _tao = 13571
  98. _tay = 13581
  99. _tsu = 14045
  100. _nn = 447
  101. _sfb = 13012
  102. _vgt = 15084
  103. _sgg = 13043
  104. _cmn = 2390
  105. _nan = 428
  106. _hsn = 240
  107. )
  108. const langPrivateStart = 0x2d09
  109. const langPrivateEnd = 0x2f10
  110. // lang holds an alphabetically sorted list of ISO-639 language identifiers.
  111. // All entries are 4 bytes. The index of the identifier (divided by 4) is the language tag.
  112. // For 2-byte language identifiers, the two successive bytes have the following meaning:
  113. // - if the first letter of the 2- and 3-letter ISO codes are the same:
  114. // the second and third letter of the 3-letter ISO code.
  115. // - otherwise: a 0 and a by 2 bits right-shifted index into altLangISO3.
  116. // For 3-byte language identifiers the 4th byte is 0.
  117. var lang tag.Index = "" + // Size: 2856 bytes
  118. "---\x00aaarabbkabr\x00ace\x00ach\x00ada\x00ady\x00aeveaeb\x00affragq\x00" +
  119. "aho\x00akkaakk\x00aln\x00alt\x00ammhamo\x00anrgaoz\x00arraarc\x00arn\x00" +
  120. "aro\x00arq\x00ary\x00arz\x00assmasa\x00ase\x00ast\x00atj\x00avvaawa\x00a" +
  121. "yymazzebaakbal\x00ban\x00bap\x00bar\x00bas\x00bax\x00bbc\x00bbj\x00bci" +
  122. "\x00beelbej\x00bem\x00bew\x00bez\x00bfd\x00bfq\x00bft\x00bfy\x00bgulbgc" +
  123. "\x00bgn\x00bgx\x00bhihbhb\x00bhi\x00bhk\x00bho\x00biisbik\x00bin\x00bjj" +
  124. "\x00bjn\x00bkm\x00bku\x00blt\x00bmambmq\x00bnenboodbpy\x00bqi\x00bqv\x00" +
  125. "brrebra\x00brh\x00brx\x00bsosbsq\x00bss\x00bto\x00btv\x00bua\x00buc\x00b" +
  126. "ug\x00bum\x00bvb\x00byn\x00byv\x00bze\x00caatcch\x00ccp\x00ceheceb\x00cg" +
  127. "g\x00chhachk\x00chm\x00cho\x00chp\x00chr\x00cja\x00cjm\x00ckb\x00cooscop" +
  128. "\x00cps\x00crrecrj\x00crk\x00crl\x00crm\x00crs\x00csescsb\x00csw\x00ctd" +
  129. "\x00cuhucvhvcyymdaandak\x00dar\x00dav\x00dcc\x00deeuden\x00dgr\x00dje" +
  130. "\x00dnj\x00doi\x00dsb\x00dtm\x00dtp\x00dty\x00dua\x00dvivdyo\x00dyu\x00d" +
  131. "zzoebu\x00eeweefi\x00egl\x00egy\x00eky\x00elllenngeopoes\x00\x05esu\x00e" +
  132. "tstett\x00euusewo\x00ext\x00faasfan\x00ffulffm\x00fiinfia\x00fil\x00fit" +
  133. "\x00fjijfoaofon\x00frrafrc\x00frp\x00frr\x00frs\x00fud\x00fuq\x00fur\x00" +
  134. "fuv\x00fvr\x00fyrygalegaa\x00gag\x00gan\x00gay\x00gbm\x00gbz\x00gcr\x00g" +
  135. "dlagez\x00ggn\x00gil\x00gjk\x00gju\x00gllgglk\x00gnrngom\x00gon\x00gor" +
  136. "\x00gos\x00got\x00grc\x00grt\x00gsw\x00guujgub\x00guc\x00gur\x00guw\x00g" +
  137. "uz\x00gvlvgvr\x00gwi\x00haauhak\x00haw\x00haz\x00heebhiinhif\x00hil\x00h" +
  138. "lu\x00hmd\x00hnd\x00hne\x00hnj\x00hnn\x00hno\x00homohoc\x00hoj\x00hrrvhs" +
  139. "b\x00hsn\x00htathuunhyyehzerianaiba\x00ibb\x00idndieleigboiiiiikpkikt" +
  140. "\x00ilo\x00inndinh\x00iodoisslittaiukuiw\x00\x03izh\x00japnjam\x00jbo" +
  141. "\x00jgo\x00ji\x00\x06jmc\x00jml\x00jut\x00jvavjwavkaatkaa\x00kab\x00kac" +
  142. "\x00kaj\x00kam\x00kao\x00kbd\x00kcg\x00kck\x00kde\x00kdt\x00kea\x00ken" +
  143. "\x00kfo\x00kfr\x00kfy\x00kgonkge\x00kgp\x00kha\x00khb\x00khn\x00khq\x00k" +
  144. "ht\x00khw\x00kiikkiu\x00kjuakjg\x00kkazkkj\x00klalkln\x00kmhmkmb\x00knan" +
  145. "koorkoi\x00kok\x00kos\x00kpe\x00kraukrc\x00kri\x00krj\x00krl\x00kru\x00k" +
  146. "sasksb\x00ksf\x00ksh\x00kuurkum\x00kvomkvr\x00kvx\x00kw\x00\x01kxm\x00kx" +
  147. "p\x00kyirlaatlab\x00lad\x00lag\x00lah\x00laj\x00lbtzlbe\x00lbw\x00lcp" +
  148. "\x00lep\x00lez\x00lgugliimlif\x00lij\x00lis\x00ljp\x00lki\x00lkt\x00lmn" +
  149. "\x00lmo\x00lninloaolol\x00loz\x00lrc\x00ltitltg\x00luublua\x00luo\x00luy" +
  150. "\x00luz\x00lvavlwl\x00lzh\x00lzz\x00mad\x00maf\x00mag\x00mai\x00mak\x00m" +
  151. "an\x00mas\x00maz\x00mdf\x00mdh\x00mdr\x00men\x00mer\x00mfa\x00mfe\x00mgl" +
  152. "gmgh\x00mgo\x00mgp\x00mgy\x00mhahmirimin\x00mis\x00mkkdmlalmls\x00mnonmn" +
  153. "i\x00mnw\x00moolmoe\x00moh\x00mos\x00mrarmrd\x00mrj\x00mro\x00mssamtltmt" +
  154. "r\x00mua\x00mul\x00mus\x00mvy\x00mwk\x00mwr\x00mwv\x00mxc\x00myyamyv\x00" +
  155. "myx\x00myz\x00mzn\x00naaunah\x00nan\x00nap\x00naq\x00nbobnch\x00nddendc" +
  156. "\x00nds\x00neepnew\x00ngdongl\x00nhe\x00nhw\x00nij\x00niu\x00njo\x00nlld" +
  157. "nmg\x00nnnonnh\x00noornod\x00noe\x00non\x00nqo\x00nrblnsk\x00nso\x00nus" +
  158. "\x00nvavnxq\x00nyyanym\x00nyn\x00nzi\x00occiojjiomrmorriosssosa\x00otk" +
  159. "\x00paanpag\x00pal\x00pam\x00pap\x00pau\x00pcd\x00pcm\x00pdc\x00pdt\x00p" +
  160. "eo\x00pfl\x00phn\x00pilipka\x00pko\x00plolpms\x00pnt\x00pon\x00pra\x00pr" +
  161. "d\x00prg\x00psusptorpuu\x00quuequc\x00qug\x00raj\x00rcf\x00rej\x00rgn" +
  162. "\x00ria\x00rif\x00rjs\x00rkt\x00rmohrmf\x00rmo\x00rmt\x00rmu\x00rnunrng" +
  163. "\x00roonrob\x00rof\x00rtm\x00ruusrue\x00rug\x00rw\x00\x04rwk\x00ryu\x00s" +
  164. "aansaf\x00sah\x00saq\x00sas\x00sat\x00saz\x00sbp\x00scrdsck\x00scn\x00sc" +
  165. "o\x00scs\x00sdndsdc\x00sdh\x00semesef\x00seh\x00sei\x00ses\x00sgagsga" +
  166. "\x00sgs\x00sh\x00\x02shi\x00shn\x00siinsid\x00sklkskr\x00sllvsli\x00sly" +
  167. "\x00smmosma\x00smi\x00smj\x00smn\x00smp\x00sms\x00snnasnk\x00soomsou\x00" +
  168. "sqqisrrpsrb\x00srn\x00srr\x00srx\x00ssswssy\x00stotstq\x00suunsuk\x00sus" +
  169. "\x00svweswwaswb\x00swc\x00swg\x00swv\x00sxn\x00syl\x00syr\x00szl\x00taam" +
  170. "taj\x00tbw\x00tcy\x00tdd\x00tdg\x00tdh\x00teeltem\x00teo\x00tet\x00tggkt" +
  171. "hhathl\x00thq\x00thr\x00tiirtig\x00tiv\x00tkuktkl\x00tkr\x00tkt\x00tlglt" +
  172. "ly\x00tmh\x00tnsntoontog\x00tpi\x00trurtru\x00trv\x00tssotsd\x00tsf\x00t" +
  173. "sg\x00tsj\x00ttatttj\x00tts\x00ttt\x00tum\x00tvl\x00twwitwq\x00txg\x00ty" +
  174. "ahtyv\x00tzm\x00udm\x00ugiguga\x00ukkruli\x00umb\x00und\x00unr\x00unx" +
  175. "\x00urrduzzbvai\x00veenvec\x00vep\x00viievic\x00vls\x00vmf\x00vmw\x00voo" +
  176. "lvot\x00vro\x00vun\x00walnwae\x00wal\x00war\x00wbp\x00wbq\x00wbr\x00wls" +
  177. "\x00wni\x00woolwtm\x00wuu\x00xav\x00xcr\x00xhhoxlc\x00xld\x00xmf\x00xmn" +
  178. "\x00xmr\x00xna\x00xnr\x00xog\x00xpr\x00xsa\x00xsr\x00yao\x00yap\x00yav" +
  179. "\x00ybb\x00yiidyooryrl\x00yua\x00yue\x00zahazag\x00zbl\x00zdj\x00zea\x00" +
  180. "zgh\x00zhhozmi\x00zuulzxx\x00zza\x00\xff\xff\xff\xff"
  181. const langNoIndexOffset = 713
  182. // langNoIndex is a bit vector of all 3-letter language codes that are not used as an index
  183. // in lookup tables. The language ids for these language codes are derived directly
  184. // from the letters and are not consecutive.
  185. // Size: 2197 bytes, 2197 elements
  186. var langNoIndex = [2197]uint8{
  187. // Entry 0 - 3F
  188. 0xff, 0xfd, 0xfd, 0xfe, 0xef, 0xf7, 0xbf, 0xd2,
  189. 0xfb, 0xbf, 0xfe, 0xfa, 0xb7, 0x1d, 0x3c, 0x57,
  190. 0x6f, 0x97, 0x73, 0xf8, 0xff, 0xef, 0xff, 0x70,
  191. 0xaf, 0x03, 0xff, 0xff, 0xcf, 0x05, 0x85, 0x62,
  192. 0xe9, 0xbf, 0xfd, 0xff, 0xff, 0xf7, 0xfd, 0x77,
  193. 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe3,
  194. 0xc9, 0xff, 0xff, 0xff, 0x4d, 0xb8, 0x0a, 0x6a,
  195. 0x7e, 0xfa, 0xe3, 0xfe, 0x7e, 0xff, 0x77, 0xff,
  196. // Entry 40 - 7F
  197. 0xff, 0xff, 0xff, 0xdf, 0x2b, 0xf4, 0xf1, 0xe0,
  198. 0x5d, 0xe7, 0x9f, 0x14, 0x07, 0x20, 0xdf, 0xed,
  199. 0x9f, 0x3f, 0xc9, 0x21, 0xf8, 0x3f, 0x94, 0xf7,
  200. 0x7e, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff,
  201. 0xff, 0xff, 0x5f, 0xfc, 0xdb, 0xfd, 0xbf, 0xb5,
  202. 0x7b, 0xdf, 0x7f, 0xf7, 0xeb, 0xfe, 0xff, 0xa7,
  203. 0xbd, 0xff, 0x7f, 0xf7, 0xff, 0xef, 0xef, 0xef,
  204. 0xff, 0xff, 0x9f, 0xff, 0xff, 0xef, 0xff, 0xdf,
  205. // Entry 80 - BF
  206. 0xff, 0xff, 0xf3, 0xff, 0xfb, 0x2f, 0xff, 0xff,
  207. 0xfb, 0xee, 0xff, 0xbd, 0xdb, 0xff, 0xdf, 0xf7,
  208. 0xff, 0xfa, 0xfd, 0xff, 0x7e, 0xaf, 0x7b, 0xfe,
  209. 0x7f, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xdf, 0xff,
  210. 0xff, 0xdf, 0xfb, 0xff, 0xfd, 0xfc, 0xfb, 0xff,
  211. 0xff, 0xff, 0xff, 0xf7, 0x7f, 0xbf, 0xfd, 0xd5,
  212. 0xa5, 0x77, 0x40, 0xff, 0x9c, 0xc1, 0x41, 0x2c,
  213. 0x08, 0x24, 0x41, 0x00, 0x50, 0x40, 0x00, 0x80,
  214. // Entry C0 - FF
  215. 0xfb, 0x4a, 0xf2, 0x9f, 0xb4, 0x42, 0x41, 0x96,
  216. 0x9b, 0x14, 0x88, 0xf6, 0x7b, 0xe7, 0x17, 0x56,
  217. 0x55, 0x7d, 0x0e, 0x1c, 0x37, 0x71, 0xf3, 0xef,
  218. 0x97, 0xff, 0x5d, 0x38, 0x64, 0x08, 0x00, 0x10,
  219. 0xbc, 0x87, 0xaf, 0xdf, 0xff, 0xf7, 0x73, 0x35,
  220. 0x3e, 0x87, 0xc7, 0xdf, 0xff, 0x00, 0x81, 0x00,
  221. 0xb0, 0x05, 0x80, 0x00, 0x00, 0x00, 0x00, 0x03,
  222. 0x40, 0x00, 0x40, 0x92, 0x21, 0xd0, 0xbf, 0x5d,
  223. // Entry 100 - 13F
  224. 0xfd, 0xde, 0xfe, 0x5e, 0x00, 0x00, 0x02, 0x64,
  225. 0x8d, 0x19, 0xc1, 0xdf, 0x79, 0x22, 0x00, 0x00,
  226. 0x00, 0xdf, 0x6d, 0xdc, 0x26, 0xe5, 0xd9, 0xf3,
  227. 0xfe, 0xff, 0xfd, 0xcb, 0x9f, 0x14, 0x01, 0x0c,
  228. 0x86, 0x00, 0xd1, 0x00, 0xf0, 0xc5, 0x67, 0x5f,
  229. 0x56, 0x89, 0x5e, 0xb7, 0xec, 0xef, 0x03, 0x00,
  230. 0x02, 0x00, 0x00, 0x00, 0xc0, 0x77, 0xda, 0x57,
  231. 0x90, 0x69, 0x01, 0x2c, 0x96, 0x79, 0xe0, 0xff,
  232. // Entry 140 - 17F
  233. 0xff, 0x7f, 0x00, 0x00, 0x00, 0x01, 0x08, 0x56,
  234. 0x01, 0x00, 0x00, 0xb0, 0x14, 0x03, 0x50, 0x16,
  235. 0x0a, 0x00, 0x01, 0x00, 0x00, 0x00, 0x11, 0x09,
  236. 0x00, 0x00, 0x60, 0x10, 0x00, 0x00, 0x00, 0x10,
  237. 0x00, 0x00, 0x44, 0x00, 0x00, 0x10, 0x00, 0x04,
  238. 0x08, 0x00, 0x00, 0x04, 0x00, 0x80, 0x28, 0x04,
  239. 0x00, 0x00, 0x50, 0xd5, 0x2d, 0x00, 0x64, 0x35,
  240. 0x24, 0x53, 0xf5, 0xd4, 0xbd, 0xe2, 0xcd, 0x03,
  241. // Entry 180 - 1BF
  242. 0x00, 0x80, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00,
  243. 0x00, 0x04, 0x17, 0x39, 0x01, 0xdd, 0x57, 0x98,
  244. 0x21, 0x98, 0xa5, 0x00, 0x00, 0x01, 0x40, 0x82,
  245. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  246. 0x01, 0x40, 0x00, 0x44, 0x00, 0x00, 0xb0, 0xfe,
  247. 0xa9, 0x39, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04,
  248. 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x40,
  249. 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
  250. // Entry 1C0 - 1FF
  251. 0x00, 0x01, 0x28, 0x05, 0x00, 0x00, 0x00, 0x00,
  252. 0x04, 0x20, 0x04, 0xa6, 0x08, 0x04, 0x00, 0x08,
  253. 0x81, 0x50, 0x00, 0x00, 0x08, 0x11, 0x86, 0x40,
  254. 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x06, 0x55,
  255. 0x02, 0x10, 0x08, 0x04, 0x00, 0x00, 0x00, 0x60,
  256. 0x3b, 0x83, 0x11, 0x00, 0x00, 0x00, 0x11, 0x00,
  257. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  258. 0x00, 0x00, 0x00, 0xbe, 0xdf, 0xff, 0xfe, 0xbf,
  259. // Entry 200 - 23F
  260. 0xdf, 0xc7, 0x83, 0x82, 0xc0, 0xff, 0xdf, 0x27,
  261. 0xcf, 0x5f, 0xe7, 0x01, 0x10, 0x20, 0xb2, 0xc5,
  262. 0xa4, 0x45, 0x25, 0x9b, 0x03, 0xcf, 0xf0, 0xdf,
  263. 0x03, 0xc4, 0x08, 0x10, 0x01, 0x0e, 0x01, 0xe3,
  264. 0x92, 0x54, 0xdb, 0x38, 0xf1, 0x7f, 0xf7, 0x6d,
  265. 0xf9, 0xff, 0x1c, 0x7d, 0x04, 0x08, 0x00, 0x01,
  266. 0x21, 0x12, 0x6c, 0x5f, 0xdd, 0x0f, 0x85, 0x4f,
  267. 0x40, 0x40, 0x00, 0x04, 0xf9, 0xfd, 0xbd, 0xd4,
  268. // Entry 240 - 27F
  269. 0xe8, 0x13, 0xf4, 0x27, 0xa3, 0x0d, 0x00, 0x00,
  270. 0x20, 0x7b, 0x39, 0x02, 0x05, 0x84, 0x00, 0xf0,
  271. 0xbf, 0x7f, 0xda, 0x00, 0x18, 0x04, 0x81, 0x00,
  272. 0x00, 0x00, 0x80, 0x10, 0x94, 0x1c, 0x01, 0x00,
  273. 0x00, 0x00, 0x00, 0x00, 0x10, 0x40, 0x00, 0x04,
  274. 0x08, 0xb4, 0x7c, 0xa5, 0x0c, 0x40, 0x00, 0x00,
  275. 0x11, 0x04, 0x04, 0x6c, 0x00, 0x20, 0x70, 0xff,
  276. 0xfb, 0x7f, 0x60, 0x00, 0x05, 0x9b, 0xdd, 0x6e,
  277. // Entry 280 - 2BF
  278. 0x03, 0x00, 0x11, 0x00, 0x00, 0x00, 0x40, 0x05,
  279. 0xb5, 0xb6, 0x80, 0x08, 0x04, 0x00, 0x04, 0x51,
  280. 0xe2, 0xff, 0xfd, 0x3f, 0x05, 0x09, 0x08, 0x05,
  281. 0x40, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00,
  282. 0x08, 0x00, 0x00, 0x00, 0x00, 0xa1, 0x02, 0x60,
  283. 0xe5, 0x48, 0x14, 0x89, 0x20, 0xc0, 0x47, 0x80,
  284. 0x07, 0x00, 0x00, 0x00, 0xcc, 0x50, 0x40, 0x24,
  285. 0x85, 0x47, 0x84, 0x40, 0x20, 0x10, 0x00, 0x20,
  286. // Entry 2C0 - 2FF
  287. 0x02, 0x50, 0x88, 0x11, 0x00, 0xd1, 0x6c, 0xee,
  288. 0x50, 0x27, 0x1d, 0x11, 0x69, 0x06, 0x59, 0xe9,
  289. 0x33, 0x08, 0x00, 0x20, 0x05, 0x40, 0x10, 0x00,
  290. 0x00, 0x00, 0x50, 0x44, 0x96, 0x49, 0xd6, 0x5d,
  291. 0xa7, 0x81, 0x47, 0x97, 0xfb, 0x00, 0x10, 0x00,
  292. 0x08, 0x00, 0x80, 0x00, 0x40, 0x45, 0x00, 0x01,
  293. 0x02, 0x00, 0x01, 0x40, 0x80, 0x00, 0x04, 0x08,
  294. 0xf8, 0xeb, 0xf6, 0x39, 0xc4, 0x89, 0x16, 0x00,
  295. // Entry 300 - 33F
  296. 0x00, 0x0c, 0x04, 0x01, 0x20, 0x20, 0xdd, 0xa2,
  297. 0x01, 0x00, 0x00, 0x00, 0x12, 0x04, 0x00, 0x00,
  298. 0x04, 0x10, 0xf0, 0x9d, 0x95, 0x13, 0x04, 0x80,
  299. 0x00, 0x01, 0xd0, 0x12, 0x40, 0x00, 0x10, 0xb0,
  300. 0x10, 0x62, 0x4c, 0xd2, 0x02, 0x01, 0x4a, 0x00,
  301. 0x46, 0x04, 0x00, 0x08, 0x02, 0x00, 0x20, 0xc0,
  302. 0x00, 0x80, 0x06, 0x00, 0x08, 0x00, 0x00, 0x00,
  303. 0x00, 0xf0, 0xd8, 0x6f, 0x15, 0x02, 0x08, 0x00,
  304. // Entry 340 - 37F
  305. 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x10, 0x01,
  306. 0x00, 0x10, 0x00, 0x00, 0x00, 0xf8, 0x85, 0xe3,
  307. 0xdd, 0xff, 0xff, 0xff, 0xbb, 0xff, 0x7f, 0xfb,
  308. 0xff, 0xfc, 0xfe, 0xdf, 0xff, 0xff, 0xff, 0xf6,
  309. 0xfb, 0xfe, 0xf7, 0x1f, 0xff, 0xb3, 0xed, 0xff,
  310. 0xdb, 0xed, 0xff, 0xfe, 0xff, 0xfe, 0xdf, 0xff,
  311. 0xff, 0xff, 0xf7, 0xff, 0xfd, 0xff, 0xff, 0xff,
  312. 0xfd, 0xff, 0xdf, 0xaf, 0x9c, 0xff, 0xfb, 0xff,
  313. // Entry 380 - 3BF
  314. 0xff, 0xff, 0xff, 0xff, 0xef, 0xd2, 0xbb, 0xdf,
  315. 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xef,
  316. 0xfd, 0xff, 0xff, 0xf7, 0xfd, 0xff, 0xff, 0xff,
  317. 0xef, 0xdb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  318. 0xff, 0x5f, 0xd3, 0x7b, 0xfd, 0xd9, 0xdf, 0xef,
  319. 0xbc, 0x18, 0x05, 0x2c, 0xff, 0x07, 0xf0, 0xff,
  320. 0xf7, 0x5f, 0x00, 0x08, 0x00, 0xc3, 0x3d, 0x1b,
  321. 0x06, 0xe6, 0x72, 0xf0, 0xdd, 0x3c, 0x7f, 0x44,
  322. // Entry 3C0 - 3FF
  323. 0x02, 0x30, 0x9f, 0x7a, 0x16, 0xfd, 0xff, 0x57,
  324. 0xf2, 0xff, 0x39, 0xff, 0xf2, 0x1e, 0x95, 0xf7,
  325. 0xf7, 0xff, 0x45, 0x80, 0x01, 0x02, 0x00, 0x00,
  326. 0x40, 0x54, 0x9f, 0x8a, 0xd9, 0xd9, 0x0e, 0x11,
  327. 0x84, 0x51, 0xc0, 0xf3, 0xfb, 0x47, 0x00, 0x01,
  328. 0x05, 0xd1, 0x50, 0x58, 0x00, 0x00, 0x00, 0x10,
  329. 0x04, 0x02, 0x00, 0x00, 0x0a, 0x00, 0x17, 0xd2,
  330. 0xf9, 0xfd, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff,
  331. // Entry 400 - 43F
  332. 0xd7, 0x6f, 0xff, 0xff, 0xdf, 0x7d, 0xbb, 0xff,
  333. 0xff, 0xff, 0xf7, 0xf3, 0xef, 0xff, 0xff, 0xf7,
  334. 0xff, 0xdf, 0xdb, 0x7f, 0xff, 0xff, 0x7f, 0xff,
  335. 0xff, 0xff, 0xef, 0xff, 0xbc, 0xff, 0xff, 0xfb,
  336. 0xff, 0xfb, 0xff, 0xde, 0x76, 0xbd, 0xff, 0xf7,
  337. 0xff, 0xff, 0xf7, 0xff, 0xff, 0xdf, 0xf3, 0xfe,
  338. 0xef, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x7f, 0xde,
  339. 0xf7, 0xbb, 0xef, 0xf7, 0xff, 0xfb, 0xbf, 0xdf,
  340. // Entry 440 - 47F
  341. 0xfd, 0xfe, 0xff, 0xff, 0xfe, 0xff, 0x5f, 0x7d,
  342. 0x7f, 0xff, 0xff, 0xf7, 0xe5, 0xfc, 0xff, 0xfd,
  343. 0x7f, 0x7f, 0xff, 0x9e, 0xae, 0xff, 0xee, 0xff,
  344. 0x7f, 0xf7, 0x7b, 0x02, 0x82, 0x04, 0xff, 0xf7,
  345. 0xff, 0xbf, 0xd7, 0xef, 0xfe, 0xdf, 0xf7, 0xfe,
  346. 0xe2, 0x8e, 0xe7, 0xff, 0xf7, 0xff, 0x56, 0xbd,
  347. 0xcd, 0xff, 0xfb, 0xff, 0xff, 0xdf, 0xef, 0xff,
  348. 0xe5, 0xdf, 0x7d, 0x0f, 0xa7, 0x51, 0x04, 0x44,
  349. // Entry 480 - 4BF
  350. 0x13, 0xd0, 0x5d, 0xaf, 0xa6, 0xfd, 0xb9, 0xff,
  351. 0x63, 0x5d, 0x5b, 0xff, 0xff, 0xbf, 0x3f, 0x20,
  352. 0x14, 0x00, 0x57, 0x51, 0x82, 0x65, 0xf5, 0x49,
  353. 0xe2, 0xff, 0xfc, 0xdf, 0x00, 0x05, 0xc5, 0x05,
  354. 0x00, 0x22, 0x00, 0x74, 0x69, 0x10, 0x08, 0x04,
  355. 0x41, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00,
  356. 0x00, 0x51, 0x60, 0x05, 0x04, 0x01, 0x00, 0x00,
  357. 0x06, 0x01, 0x20, 0x00, 0x18, 0x01, 0x92, 0xb1,
  358. // Entry 4C0 - 4FF
  359. 0xfd, 0x67, 0x4b, 0x06, 0x95, 0x06, 0x57, 0xed,
  360. 0xfb, 0x4c, 0x9d, 0x7b, 0x83, 0x04, 0x62, 0x40,
  361. 0x00, 0x15, 0x42, 0x00, 0x00, 0x00, 0x54, 0x83,
  362. 0xf9, 0x4f, 0x10, 0x8c, 0xc9, 0x46, 0xde, 0xf7,
  363. 0x13, 0x31, 0x00, 0x20, 0x00, 0x00, 0x00, 0x90,
  364. 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x10, 0x00,
  365. 0x01, 0x40, 0x00, 0xf0, 0x5b, 0xf4, 0xbe, 0x7d,
  366. 0xba, 0xcf, 0xf7, 0xaf, 0x42, 0x04, 0x84, 0x41,
  367. // Entry 500 - 53F
  368. 0xb0, 0xff, 0x79, 0x7a, 0x04, 0x00, 0x00, 0x49,
  369. 0x2d, 0x14, 0x27, 0x77, 0xed, 0xf1, 0xbf, 0xef,
  370. 0x3f, 0x00, 0x00, 0x02, 0xc6, 0xa0, 0x1e, 0xfc,
  371. 0xbb, 0xff, 0xfd, 0xfb, 0xb7, 0xfd, 0xf5, 0xff,
  372. 0xfd, 0xfc, 0xd5, 0xed, 0x47, 0xf4, 0x7f, 0x10,
  373. 0x01, 0x01, 0x84, 0x6d, 0xff, 0xf7, 0xdd, 0xf9,
  374. 0x5f, 0x05, 0x86, 0xef, 0xf5, 0x77, 0xbd, 0x3c,
  375. 0x00, 0x00, 0x00, 0x43, 0x71, 0x42, 0x00, 0x40,
  376. // Entry 540 - 57F
  377. 0x00, 0x00, 0x01, 0x43, 0x19, 0x00, 0x08, 0x00,
  378. 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  379. 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  380. 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  381. 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  382. 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  383. 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  384. 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  385. // Entry 580 - 5BF
  386. 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  387. 0xff, 0xab, 0xbd, 0xe7, 0x57, 0xee, 0x13, 0x5d,
  388. 0x09, 0xc1, 0x40, 0x21, 0xfa, 0x17, 0x01, 0x80,
  389. 0x00, 0x00, 0x00, 0x00, 0xf0, 0xde, 0xff, 0xbf,
  390. 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00,
  391. 0x00, 0x30, 0x95, 0xe3, 0x10, 0x00, 0x00, 0x00,
  392. 0x11, 0x04, 0x16, 0x00, 0x01, 0x02, 0x00, 0x81,
  393. 0xa3, 0x01, 0x50, 0x00, 0x00, 0x83, 0x11, 0x40,
  394. // Entry 5C0 - 5FF
  395. 0x00, 0x00, 0x00, 0xf0, 0xdd, 0x7b, 0x7e, 0x02,
  396. 0xaa, 0x10, 0x5d, 0xd8, 0x52, 0x00, 0x80, 0x20,
  397. 0x00, 0x00, 0x00, 0x00, 0x40, 0x10, 0x02, 0x02,
  398. 0x19, 0x00, 0x10, 0x02, 0x10, 0x61, 0x5a, 0x9d,
  399. 0x31, 0x00, 0x00, 0x00, 0x01, 0x50, 0x02, 0x20,
  400. 0x00, 0x00, 0x01, 0x00, 0x42, 0x00, 0x20, 0x00,
  401. 0x00, 0x1f, 0xdf, 0xf2, 0xfd, 0xff, 0xfd, 0x3f,
  402. 0x9f, 0x18, 0xcf, 0x9c, 0xbf, 0xaf, 0x5f, 0xfe,
  403. // Entry 600 - 63F
  404. 0x7b, 0x4b, 0x40, 0x10, 0xe1, 0xfd, 0xaf, 0xfd,
  405. 0xb7, 0xf7, 0xff, 0xf3, 0xdf, 0xff, 0x6f, 0xf1,
  406. 0x7b, 0xf1, 0x7f, 0xdf, 0x7f, 0xbf, 0xfe, 0xb7,
  407. 0xee, 0x1c, 0xfb, 0xdb, 0xef, 0xdf, 0xff, 0xfd,
  408. 0x7e, 0xbe, 0x57, 0xff, 0x6f, 0x81, 0x76, 0x1f,
  409. 0xd4, 0x77, 0xf5, 0xfd, 0xff, 0xff, 0xeb, 0xfe,
  410. 0xbf, 0x5f, 0x57, 0x1b, 0xeb, 0x5f, 0x50, 0x18,
  411. 0x02, 0xfa, 0xff, 0x9d, 0x15, 0x97, 0x15, 0x0f,
  412. // Entry 640 - 67F
  413. 0x75, 0xc4, 0x7d, 0x81, 0x82, 0xf1, 0xd7, 0x7e,
  414. 0xff, 0xff, 0xff, 0xef, 0xff, 0xfd, 0xdd, 0xde,
  415. 0xfc, 0xfd, 0xf6, 0x5f, 0x7a, 0x1f, 0x40, 0x98,
  416. 0x02, 0xff, 0xe3, 0xff, 0xf3, 0xd6, 0xf2, 0xff,
  417. 0xfb, 0xdf, 0x7d, 0x50, 0x1e, 0x15, 0x7b, 0xb4,
  418. 0xf5, 0xbe, 0xff, 0xff, 0xf3, 0xf7, 0xff, 0xf7,
  419. 0x7f, 0xff, 0xff, 0xbe, 0xdb, 0xf7, 0xd7, 0xf9,
  420. 0xef, 0x2f, 0x80, 0xbf, 0xc5, 0xff, 0xff, 0xf3,
  421. // Entry 680 - 6BF
  422. 0x97, 0x9d, 0xff, 0xff, 0xf7, 0xcf, 0xfd, 0xbf,
  423. 0xde, 0x7f, 0x06, 0x1d, 0x57, 0xff, 0xf8, 0xda,
  424. 0x5d, 0xce, 0x7d, 0x16, 0xb9, 0xea, 0x69, 0xa0,
  425. 0x1a, 0x20, 0x00, 0x30, 0x02, 0x04, 0x24, 0x48,
  426. 0x04, 0x00, 0x00, 0x40, 0xd4, 0x02, 0x04, 0x00,
  427. 0x00, 0x04, 0x00, 0x04, 0x00, 0x20, 0x01, 0x06,
  428. 0x50, 0x00, 0x08, 0x00, 0x00, 0x00, 0x24, 0x00,
  429. 0x04, 0x00, 0x10, 0x8c, 0x58, 0xd5, 0x0d, 0x0f,
  430. // Entry 6C0 - 6FF
  431. 0x14, 0x4d, 0xf1, 0x16, 0x44, 0xd1, 0x42, 0x08,
  432. 0x40, 0x00, 0x00, 0x40, 0x00, 0x08, 0x00, 0x00,
  433. 0x00, 0xdc, 0xff, 0xeb, 0x1f, 0x58, 0x08, 0x41,
  434. 0x04, 0xa0, 0x04, 0x00, 0x30, 0x12, 0x40, 0x22,
  435. 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  436. 0x01, 0x00, 0x00, 0x00, 0x80, 0x10, 0x10, 0xaf,
  437. 0x6f, 0x93, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
  438. 0x00, 0x00, 0x00, 0x80, 0x80, 0x25, 0x00, 0x00,
  439. // Entry 700 - 73F
  440. 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00,
  441. 0x80, 0x86, 0xc2, 0x02, 0x00, 0x00, 0x00, 0x01,
  442. 0xdf, 0x18, 0x00, 0x00, 0x02, 0xf0, 0xfd, 0x79,
  443. 0x3b, 0x00, 0x25, 0x00, 0x00, 0x00, 0x02, 0x00,
  444. 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00,
  445. 0x03, 0x00, 0x09, 0x20, 0x00, 0x00, 0x01, 0x00,
  446. 0x00, 0x81, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
  447. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  448. // Entry 740 - 77F
  449. 0x00, 0x00, 0x00, 0xef, 0xf7, 0xfd, 0xcf, 0x7e,
  450. 0xa0, 0x11, 0x10, 0x00, 0x00, 0x92, 0x01, 0x44,
  451. 0xcd, 0xf9, 0x5e, 0x00, 0x01, 0x00, 0x30, 0x14,
  452. 0x04, 0x55, 0x10, 0x01, 0x04, 0xf6, 0x3f, 0x7a,
  453. 0x05, 0x04, 0x00, 0xb0, 0x80, 0x00, 0x55, 0x55,
  454. 0x97, 0x7c, 0x9f, 0x71, 0xcc, 0x78, 0xd1, 0x43,
  455. 0xf5, 0x57, 0x67, 0x14, 0x01, 0x00, 0x00, 0x00,
  456. 0x00, 0x00, 0x2c, 0xf7, 0xdb, 0x1f, 0x54, 0x60,
  457. // Entry 780 - 7BF
  458. 0x03, 0x68, 0x01, 0x10, 0x8b, 0x38, 0xaa, 0x01,
  459. 0x00, 0x00, 0x30, 0x00, 0x24, 0x44, 0x00, 0x00,
  460. 0x10, 0x03, 0x11, 0x02, 0x01, 0x00, 0x00, 0xf0,
  461. 0xf5, 0xff, 0xd5, 0xd7, 0xbc, 0x70, 0xd6, 0x78,
  462. 0x78, 0x15, 0x50, 0x00, 0xa4, 0x84, 0xe9, 0x41,
  463. 0x00, 0x00, 0x00, 0x6b, 0x39, 0x52, 0x74, 0x00,
  464. 0xe8, 0x30, 0x90, 0x6a, 0x92, 0x00, 0x00, 0x02,
  465. 0xff, 0xef, 0xff, 0x4f, 0x85, 0x53, 0xf4, 0xed,
  466. // Entry 7C0 - 7FF
  467. 0xdd, 0xbf, 0x72, 0x19, 0xc7, 0x0c, 0xf5, 0x42,
  468. 0x54, 0xdd, 0x77, 0x14, 0x00, 0x80, 0xc0, 0x56,
  469. 0xcc, 0x16, 0x9e, 0xfb, 0x35, 0x7d, 0xef, 0xff,
  470. 0xbd, 0xa4, 0xaf, 0x01, 0x44, 0x18, 0x01, 0x5d,
  471. 0x4e, 0x4a, 0x08, 0x50, 0x28, 0x30, 0xe0, 0x80,
  472. 0x10, 0x20, 0x24, 0x00, 0xff, 0x3f, 0xdf, 0x67,
  473. 0xfe, 0x01, 0x06, 0x88, 0x0a, 0x40, 0x16, 0x01,
  474. 0x01, 0x15, 0x2b, 0x3e, 0x01, 0x00, 0x00, 0x10,
  475. // Entry 800 - 83F
  476. 0x90, 0x69, 0x45, 0x02, 0x02, 0x01, 0xe1, 0xbf,
  477. 0xbf, 0x03, 0x00, 0x00, 0x10, 0xd4, 0xa7, 0xd1,
  478. 0x54, 0x9e, 0x44, 0xdf, 0xfd, 0x8f, 0x66, 0xb3,
  479. 0x55, 0x20, 0xd4, 0xc3, 0xd8, 0x30, 0x3d, 0x80,
  480. 0x00, 0x00, 0x00, 0x4c, 0xd4, 0x11, 0xc5, 0x84,
  481. 0x6e, 0x50, 0x00, 0x22, 0x50, 0x6e, 0xbf, 0xdb,
  482. 0x07, 0x00, 0x20, 0x10, 0x84, 0xb2, 0x45, 0x10,
  483. 0x06, 0x44, 0x00, 0x00, 0x12, 0x02, 0x11, 0x00,
  484. // Entry 840 - 87F
  485. 0xf0, 0xfb, 0xfd, 0x3f, 0x05, 0x00, 0x12, 0x81,
  486. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x02,
  487. 0x00, 0x00, 0x00, 0x00, 0x03, 0x30, 0x02, 0x28,
  488. 0x84, 0x00, 0x33, 0xc0, 0x23, 0x24, 0x00, 0x00,
  489. 0x00, 0xcb, 0xe4, 0x3a, 0x42, 0xc8, 0x14, 0xf1,
  490. 0xef, 0xff, 0x7f, 0x16, 0x01, 0x01, 0x84, 0x50,
  491. 0x07, 0xfc, 0xff, 0xff, 0x0f, 0x01, 0x00, 0x40,
  492. 0x10, 0x38, 0x01, 0x01, 0x1c, 0x12, 0x40, 0xe1,
  493. // Entry 880 - 8BF
  494. 0x76, 0x16, 0x08, 0x03, 0x10, 0x00, 0x00, 0x00,
  495. 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x24,
  496. 0x0a, 0x00, 0x80, 0x00, 0x00,
  497. }
  498. // altLangISO3 holds an alphabetically sorted list of 3-letter language code alternatives
  499. // to 2-letter language codes that cannot be derived using the method described above.
  500. // Each 3-letter code is followed by its 1-byte langID.
  501. var altLangISO3 tag.Index = "---\x00cor\x00hbs\x01heb\x02kin\x03spa\x04yid\x05\xff\xff\xff\xff"
  502. // altLangIndex is used to convert indexes in altLangISO3 to langIDs.
  503. // Size: 12 bytes, 6 elements
  504. var altLangIndex = [6]uint16{
  505. 0x014a, 0x0225, 0x0105, 0x020a, 0x009d, 0x010b,
  506. }
  507. // langAliasMap maps langIDs to their suggested replacements.
  508. // Size: 640 bytes, 160 elements
  509. var langAliasMap = [160]fromTo{
  510. 0: {from: 0xc4, to: 0xda},
  511. 1: {from: 0xff, to: 0xf8},
  512. 2: {from: 0x105, to: 0xe0},
  513. 3: {from: 0x10b, to: 0x2b9},
  514. 4: {from: 0x110, to: 0x10f},
  515. 5: {from: 0x192, to: 0x203},
  516. 6: {from: 0x1af, to: 0x1c1},
  517. 7: {from: 0x225, to: 0x23b},
  518. 8: {from: 0x268, to: 0xaa},
  519. 9: {from: 0x274, to: 0x252},
  520. 10: {from: 0x27d, to: 0xd},
  521. 11: {from: 0x2d5, to: 0x2db},
  522. 12: {from: 0x326, to: 0x93},
  523. 13: {from: 0x3c7, to: 0x1c48},
  524. 14: {from: 0x3e8, to: 0x23a},
  525. 15: {from: 0x3f9, to: 0x23a},
  526. 16: {from: 0x484, to: 0x15},
  527. 17: {from: 0x48f, to: 0xf3},
  528. 18: {from: 0x4d5, to: 0x1f38},
  529. 19: {from: 0x54a, to: 0x23},
  530. 20: {from: 0x550, to: 0x2732},
  531. 21: {from: 0x55c, to: 0x24},
  532. 22: {from: 0x57d, to: 0xa1},
  533. 23: {from: 0x5a3, to: 0x26},
  534. 24: {from: 0x5ac, to: 0x42},
  535. 25: {from: 0x615, to: 0x5a7},
  536. 26: {from: 0x65a, to: 0xc7a},
  537. 27: {from: 0x786, to: 0x1a5},
  538. 28: {from: 0x7cd, to: 0x16e},
  539. 29: {from: 0x7d4, to: 0x59},
  540. 30: {from: 0x855, to: 0x30b9},
  541. 31: {from: 0x8cf, to: 0x2c4},
  542. 32: {from: 0x90c, to: 0x23f1},
  543. 33: {from: 0x915, to: 0x95a},
  544. 34: {from: 0x932, to: 0x24f},
  545. 35: {from: 0x953, to: 0x3fc0},
  546. 36: {from: 0x956, to: 0x2c4},
  547. 37: {from: 0x995, to: 0x2b3e},
  548. 38: {from: 0x9c5, to: 0x2f18},
  549. 39: {from: 0xa50, to: 0x73},
  550. 40: {from: 0xa9f, to: 0x79},
  551. 41: {from: 0xb5f, to: 0x8a},
  552. 42: {from: 0xb6e, to: 0x1a2},
  553. 43: {from: 0xb8f, to: 0xb92},
  554. 44: {from: 0xb95, to: 0x2c8},
  555. 45: {from: 0xc76, to: 0x1df1},
  556. 46: {from: 0xc85, to: 0x2c31},
  557. 47: {from: 0xcd0, to: 0x1bd},
  558. 48: {from: 0xe67, to: 0x9f},
  559. 49: {from: 0xe9b, to: 0x179},
  560. 50: {from: 0xf37, to: 0xfc},
  561. 51: {from: 0x1010, to: 0xd},
  562. 52: {from: 0x11bb, to: 0xaf},
  563. 53: {from: 0x1207, to: 0xa6},
  564. 54: {from: 0x12b6, to: 0xb32},
  565. 55: {from: 0x12ba, to: 0x1d2},
  566. 56: {from: 0x12c9, to: 0x145c},
  567. 57: {from: 0x1317, to: 0x111},
  568. 58: {from: 0x131a, to: 0x85},
  569. 59: {from: 0x133a, to: 0x3a46},
  570. 60: {from: 0x1401, to: 0xcc},
  571. 61: {from: 0x145f, to: 0x9a},
  572. 62: {from: 0x1497, to: 0x278f},
  573. 63: {from: 0x14af, to: 0xca},
  574. 64: {from: 0x14be, to: 0xcd6},
  575. 65: {from: 0x1511, to: 0x12bb},
  576. 66: {from: 0x15a0, to: 0x154d},
  577. 67: {from: 0x15ad, to: 0x168a},
  578. 68: {from: 0x1621, to: 0x23f},
  579. 69: {from: 0x1710, to: 0x1a98},
  580. 70: {from: 0x180b, to: 0x2947},
  581. 71: {from: 0x1821, to: 0x102},
  582. 72: {from: 0x18f1, to: 0x104},
  583. 73: {from: 0x191d, to: 0x12ac},
  584. 74: {from: 0x1dcf, to: 0x3548},
  585. 75: {from: 0x1dd4, to: 0x1e74},
  586. 76: {from: 0x1df1, to: 0x18f},
  587. 77: {from: 0x1e7a, to: 0x145},
  588. 78: {from: 0x1e85, to: 0x13b},
  589. 79: {from: 0x1e89, to: 0x122},
  590. 80: {from: 0x1e90, to: 0x138},
  591. 81: {from: 0x1ea6, to: 0x1f82},
  592. 82: {from: 0x1ecc, to: 0x147},
  593. 83: {from: 0x1f30, to: 0x8d},
  594. 84: {from: 0x1f65, to: 0x12f8},
  595. 85: {from: 0x1f7d, to: 0x4235},
  596. 86: {from: 0x1f8b, to: 0x371a},
  597. 87: {from: 0x1fc4, to: 0x8d},
  598. 88: {from: 0x1fce, to: 0x8d},
  599. 89: {from: 0x1ff9, to: 0x6c1},
  600. 90: {from: 0x20ad, to: 0x2fbd},
  601. 91: {from: 0x2119, to: 0x30fc},
  602. 92: {from: 0x2209, to: 0x170},
  603. 93: {from: 0x227b, to: 0x18c},
  604. 94: {from: 0x2287, to: 0x189},
  605. 95: {from: 0x2291, to: 0x19a},
  606. 96: {from: 0x22e7, to: 0x8f2},
  607. 97: {from: 0x2340, to: 0x69},
  608. 98: {from: 0x23d5, to: 0x179},
  609. 99: {from: 0x2460, to: 0x244b},
  610. 100: {from: 0x2490, to: 0x1f4},
  611. 101: {from: 0x24be, to: 0x3a46},
  612. 102: {from: 0x24fc, to: 0x244b},
  613. 103: {from: 0x2520, to: 0x40ef},
  614. 104: {from: 0x2686, to: 0x25ce},
  615. 105: {from: 0x26ab, to: 0x1b4},
  616. 106: {from: 0x271d, to: 0x2b3e},
  617. 107: {from: 0x28b1, to: 0x1d1},
  618. 108: {from: 0x2993, to: 0x1d3},
  619. 109: {from: 0x29d6, to: 0x3a46},
  620. 110: {from: 0x2a93, to: 0x1ee},
  621. 111: {from: 0x2aaa, to: 0x32e},
  622. 112: {from: 0x2ade, to: 0xa4},
  623. 113: {from: 0x2adf, to: 0xa4},
  624. 114: {from: 0x2b96, to: 0x183},
  625. 115: {from: 0x2b9f, to: 0x1763},
  626. 116: {from: 0x2bb1, to: 0x2b2c},
  627. 117: {from: 0x2bb8, to: 0x152},
  628. 118: {from: 0x2beb, to: 0x37},
  629. 119: {from: 0x2bfc, to: 0x2019},
  630. 120: {from: 0x2c37, to: 0x2c32},
  631. 121: {from: 0x2c86, to: 0x2c6e},
  632. 122: {from: 0x2f2a, to: 0x1f1},
  633. 123: {from: 0x30fd, to: 0x3125},
  634. 124: {from: 0x31c1, to: 0x203},
  635. 125: {from: 0x3285, to: 0x1667},
  636. 126: {from: 0x337d, to: 0x22a},
  637. 127: {from: 0x33ef, to: 0x132},
  638. 128: {from: 0x340d, to: 0x215},
  639. 129: {from: 0x3494, to: 0x248},
  640. 130: {from: 0x3557, to: 0x8d},
  641. 131: {from: 0x35ad, to: 0x3689},
  642. 132: {from: 0x35c2, to: 0x2a32},
  643. 133: {from: 0x35c6, to: 0x4c},
  644. 134: {from: 0x35c9, to: 0x2fbf},
  645. 135: {from: 0x3603, to: 0x373d},
  646. 136: {from: 0x3629, to: 0x3d57},
  647. 137: {from: 0x363c, to: 0x376e},
  648. 138: {from: 0x364b, to: 0x1d3b},
  649. 139: {from: 0x364c, to: 0x2c31},
  650. 140: {from: 0x36f3, to: 0x26a},
  651. 141: {from: 0x38e5, to: 0xb28},
  652. 142: {from: 0x390f, to: 0xe91},
  653. 143: {from: 0x3a30, to: 0x28d},
  654. 144: {from: 0x3d54, to: 0x7f},
  655. 145: {from: 0x3f9f, to: 0x828},
  656. 146: {from: 0x4055, to: 0x30a},
  657. 147: {from: 0x4090, to: 0x3cf7},
  658. 148: {from: 0x410f, to: 0x13a},
  659. 149: {from: 0x4162, to: 0x3462},
  660. 150: {from: 0x4164, to: 0x86},
  661. 151: {from: 0x4246, to: 0x30b9},
  662. 152: {from: 0x427a, to: 0x2b9},
  663. 153: {from: 0x4361, to: 0x21a0},
  664. 154: {from: 0x4374, to: 0x2473},
  665. 155: {from: 0x43a7, to: 0x4645},
  666. 156: {from: 0x4445, to: 0x4437},
  667. 157: {from: 0x44d5, to: 0x44dc},
  668. 158: {from: 0x46ad, to: 0x19a},
  669. 159: {from: 0x473e, to: 0x2be},
  670. }
  671. // Size: 160 bytes, 160 elements
  672. var langAliasTypes = [160]langAliasType{
  673. // Entry 0 - 3F
  674. 0, 0, 0, 0, 0, 0, 1, 2, 2, 0, 1, 0, 0, 1, 2, 1,
  675. 1, 2, 0, 1, 0, 1, 2, 1, 1, 0, 0, 2, 1, 1, 0, 2,
  676. 0, 0, 1, 0, 1, 0, 0, 1, 2, 1, 1, 1, 1, 0, 0, 2,
  677. 1, 1, 1, 1, 2, 1, 0, 1, 1, 2, 2, 0, 1, 2, 0, 1,
  678. // Entry 40 - 7F
  679. 0, 1, 1, 1, 1, 0, 0, 2, 1, 0, 0, 0, 1, 1, 1, 1,
  680. 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 2, 2, 2,
  681. 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0,
  682. 2, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 2, 0, 2, 1,
  683. // Entry 80 - BF
  684. 1, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1,
  685. 2, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1,
  686. }
  687. const (
  688. _Latn = 82
  689. _Hani = 50
  690. _Hans = 52
  691. _Hant = 53
  692. _Qaaa = 131
  693. _Qaai = 139
  694. _Qabx = 180
  695. _Zinh = 224
  696. _Zyyy = 229
  697. _Zzzz = 230
  698. )
  699. // script is an alphabetically sorted list of ISO 15924 codes. The index
  700. // of the script in the string, divided by 4, is the internal scriptID.
  701. var script tag.Index = "" + // Size: 928 bytes
  702. "----AdlmAfakAghbAhomArabAranArmiArmnAvstBaliBamuBassBatkBengBhksBlisBopo" +
  703. "BrahBraiBugiBuhdCakmCansCariChamCherCirtCoptCprtCyrlCyrsDevaDsrtDuplEgyd" +
  704. "EgyhEgypElbaEthiGeokGeorGlagGothGranGrekGujrGuruHanbHangHaniHanoHansHant" +
  705. "HatrHebrHiraHluwHmngHrktHungIndsItalJamoJavaJpanJurcKaliKanaKharKhmrKhoj" +
  706. "KitlKitsKndaKoreKpelKthiLanaLaooLatfLatgLatnLekeLepcLimbLinaLinbLisuLoma" +
  707. "LyciLydiMahjMandManiMarcMayaMendMercMeroMlymModiMongMoonMrooMteiMultMymr" +
  708. "NarbNbatNewaNkgbNkooNshuOgamOlckOrkhOryaOsgeOsmaPalmPaucPermPhagPhliPhlp" +
  709. "PhlvPhnxPiqdPlrdPrtiQaaaQaabQaacQaadQaaeQaafQaagQaahQaaiQaajQaakQaalQaam" +
  710. "QaanQaaoQaapQaaqQaarQaasQaatQaauQaavQaawQaaxQaayQaazQabaQabbQabcQabdQabe" +
  711. "QabfQabgQabhQabiQabjQabkQablQabmQabnQaboQabpQabqQabrQabsQabtQabuQabvQabw" +
  712. "QabxRjngRoroRunrSamrSaraSarbSaurSgnwShawShrdSiddSindSinhSoraSundSyloSyrc" +
  713. "SyreSyrjSyrnTagbTakrTaleTaluTamlTangTavtTeluTengTfngTglgThaaThaiTibtTirh" +
  714. "UgarVaiiVispWaraWoleXpeoXsuxYiiiZinhZmthZsyeZsymZxxxZyyyZzzz\xff\xff\xff" +
  715. "\xff"
  716. // suppressScript is an index from langID to the dominant script for that language,
  717. // if it exists. If a script is given, it should be suppressed from the language tag.
  718. // Size: 713 bytes, 713 elements
  719. var suppressScript = [713]uint8{
  720. // Entry 0 - 3F
  721. 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00,
  722. 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00,
  723. 0x00, 0x27, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00,
  724. 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00,
  725. 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x00,
  726. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e,
  727. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  728. 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  729. // Entry 40 - 7F
  730. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  731. 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00,
  732. 0x00, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00,
  733. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  734. 0x00, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x52,
  735. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  736. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  737. 0x00, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x52,
  738. // Entry 80 - BF
  739. 0x52, 0x00, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00,
  740. 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x00,
  741. 0xd4, 0x00, 0x00, 0xd6, 0x00, 0x00, 0x00, 0x00,
  742. 0x00, 0x00, 0x2d, 0x52, 0x52, 0x52, 0x00, 0x52,
  743. 0x00, 0x52, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
  744. 0x52, 0x00, 0x00, 0x00, 0x52, 0x52, 0x00, 0x52,
  745. 0x00, 0x00, 0x52, 0x52, 0x00, 0x00, 0x00, 0x00,
  746. 0x00, 0x52, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00,
  747. // Entry C0 - FF
  748. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  749. 0x52, 0x00, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00,
  750. 0x00, 0x00, 0x52, 0x2e, 0x00, 0x00, 0x00, 0x00,
  751. 0x00, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  752. 0x37, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  753. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x52, 0x52,
  754. 0x00, 0x52, 0x52, 0x08, 0x00, 0x00, 0x00, 0x00,
  755. 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x52,
  756. // Entry 100 - 13F
  757. 0x00, 0x00, 0x52, 0x52, 0x00, 0x37, 0x00, 0x41,
  758. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  759. 0x00, 0x29, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  760. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  761. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  762. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e,
  763. 0x00, 0x52, 0x00, 0x46, 0x00, 0x4a, 0x4b, 0x00,
  764. 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  765. // Entry 140 - 17F
  766. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  767. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x52, 0x00,
  768. 0x00, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00,
  769. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  770. 0x00, 0x00, 0x00, 0x00, 0x52, 0x4f, 0x00, 0x00,
  771. 0x00, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  772. 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20,
  773. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x52,
  774. // Entry 180 - 1BF
  775. 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x00,
  776. 0x52, 0x00, 0x00, 0x00, 0x1e, 0x64, 0x00, 0x00,
  777. 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x20, 0x00,
  778. 0x00, 0x00, 0x52, 0x52, 0x00, 0x00, 0x00, 0x00,
  779. 0x00, 0x00, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00,
  780. 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x00, 0x52,
  781. 0x00, 0x52, 0x00, 0x52, 0x20, 0x00, 0x00, 0x00,
  782. 0x00, 0x00, 0x00, 0x52, 0x00, 0x52, 0x00, 0x52,
  783. // Entry 1C0 - 1FF
  784. 0x00, 0x52, 0x00, 0x00, 0x00, 0x70, 0x52, 0x00,
  785. 0x52, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00,
  786. 0x00, 0x00, 0x52, 0x75, 0x00, 0x00, 0x00, 0x2f,
  787. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  788. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x52,
  789. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x52,
  790. 0x00, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  791. 0x00, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00,
  792. // Entry 200 - 23F
  793. 0x00, 0x52, 0x00, 0x52, 0x00, 0x00, 0x00, 0x1e,
  794. 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00,
  795. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  796. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  797. 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00,
  798. 0xc1, 0x00, 0x52, 0x00, 0x52, 0x00, 0x00, 0x52,
  799. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  800. 0x52, 0x00, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00,
  801. // Entry 240 - 27F
  802. 0x52, 0x00, 0x52, 0x00, 0x00, 0x00, 0x00, 0x52,
  803. 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  804. 0x00, 0xcd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  805. 0xd0, 0x52, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00,
  806. 0x00, 0x27, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00,
  807. 0x52, 0x00, 0x52, 0x52, 0x52, 0x00, 0x52, 0x52,
  808. 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00,
  809. 0x00, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00,
  810. // Entry 280 - 2BF
  811. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00,
  812. 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x52,
  813. 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00,
  814. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  815. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  816. 0x00, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  817. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  818. 0x00, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  819. // Entry 2C0 - 2FF
  820. 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x52, 0x00,
  821. 0x00,
  822. }
  823. const (
  824. _001 = 1
  825. _419 = 30
  826. _BR = 64
  827. _CA = 72
  828. _ES = 109
  829. _GB = 121
  830. _MD = 186
  831. _PT = 236
  832. _UK = 304
  833. _US = 306
  834. _ZZ = 354
  835. _XA = 320
  836. _XC = 322
  837. _XK = 330
  838. )
  839. // isoRegionOffset needs to be added to the index of regionISO to obtain the regionID
  840. // for 2-letter ISO codes. (The first isoRegionOffset regionIDs are reserved for
  841. // the UN.M49 codes used for groups.)
  842. const isoRegionOffset = 31
  843. // regionTypes defines the status of a region for various standards.
  844. // Size: 355 bytes, 355 elements
  845. var regionTypes = [355]uint8{
  846. // Entry 0 - 3F
  847. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  848. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  849. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  850. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05,
  851. 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
  852. 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
  853. 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
  854. 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
  855. // Entry 40 - 7F
  856. 0x06, 0x06, 0x06, 0x04, 0x06, 0x06, 0x06, 0x06,
  857. 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
  858. 0x06, 0x06, 0x06, 0x06, 0x04, 0x06, 0x04, 0x00,
  859. 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x04, 0x06,
  860. 0x04, 0x06, 0x06, 0x06, 0x06, 0x00, 0x06, 0x04,
  861. 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
  862. 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x06, 0x04,
  863. 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
  864. // Entry 80 - BF
  865. 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
  866. 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
  867. 0x06, 0x00, 0x04, 0x06, 0x06, 0x06, 0x06, 0x06,
  868. 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
  869. 0x06, 0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
  870. 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
  871. 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
  872. 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00,
  873. // Entry C0 - FF
  874. 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
  875. 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
  876. 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x06, 0x06,
  877. 0x06, 0x06, 0x00, 0x06, 0x04, 0x06, 0x06, 0x06,
  878. 0x06, 0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
  879. 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x06, 0x06,
  880. 0x00, 0x06, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05,
  881. 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05,
  882. // Entry 100 - 13F
  883. 0x06, 0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
  884. 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
  885. 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
  886. 0x06, 0x06, 0x06, 0x06, 0x04, 0x06, 0x06, 0x06,
  887. 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
  888. 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
  889. 0x02, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00,
  890. 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x06,
  891. // Entry 140 - 17F
  892. 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05,
  893. 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05,
  894. 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05,
  895. 0x05, 0x05, 0x04, 0x06, 0x06, 0x04, 0x06, 0x06,
  896. 0x04, 0x06, 0x05,
  897. }
  898. // regionISO holds a list of alphabetically sorted 2-letter ISO region codes.
  899. // Each 2-letter codes is followed by two bytes with the following meaning:
  900. // - [A-Z}{2}: the first letter of the 2-letter code plus these two
  901. // letters form the 3-letter ISO code.
  902. // - 0, n: index into altRegionISO3.
  903. var regionISO tag.Index = "" + // Size: 1300 bytes
  904. "AAAAACSCADNDAEREAFFGAGTGAIIAALLBAMRMANNTAOGOAQTAARRGASSMATUTAUUSAWBWAXLA" +
  905. "AZZEBAIHBBRBBDGDBEELBFFABGGRBHHRBIDIBJENBLLMBMMUBNRNBOOLBQESBRRABSHSBTTN" +
  906. "BUURBVVTBWWABYLRBZLZCAANCCCKCDODCFAFCGOGCHHECIIVCKOKCLHLCMMRCNHNCOOLCPPT" +
  907. "CRRICS\x00\x00CTTECUUBCVPVCWUWCXXRCYYPCZZEDDDRDEEUDGGADJJIDKNKDMMADOOMDY" +
  908. "HYDZZAEA ECCUEESTEGGYEHSHERRIESSPETTHEU\x00\x03FIINFJJIFKLKFMSMFOROFQ" +
  909. "\x00\x18FRRAFXXXGAABGBBRGDRDGEEOGFUFGGGYGHHAGIIBGLRLGMMBGNINGPLPGQNQGRRC" +
  910. "GS\x00\x06GTTMGUUMGWNBGYUYHKKGHMMDHNNDHRRVHTTIHUUNHVVOIC IDDNIERLILSRIM" +
  911. "MNINNDIOOTIQRQIRRNISSLITTAJEEYJMAMJOORJPPNJTTNKEENKGGZKHHMKIIRKM\x00\x09" +
  912. "KNNAKP\x00\x0cKRORKWWTKY\x00\x0fKZAZLAAOLBBNLCCALIIELKKALRBRLSSOLTTULUUX" +
  913. "LVVALYBYMAARMCCOMDDAMENEMFAFMGDGMHHLMIIDMKKDMLLIMMMRMNNGMOACMPNPMQTQMRRT" +
  914. "MSSRMTLTMUUSMVDVMWWIMXEXMYYSMZOZNAAMNCCLNEERNFFKNGGANHHBNIICNLLDNOORNPPL" +
  915. "NQ\x00\x1eNRRUNTTZNUIUNZZLOMMNPAANPCCIPEERPFYFPGNGPHHLPKAKPLOLPM\x00\x12" +
  916. "PNCNPRRIPSSEPTRTPUUSPWLWPYRYPZCZQAATQMMMQNNNQOOOQPPPQQQQQRRRQSSSQTTTQU" +
  917. "\x00\x03QVVVQWWWQXXXQYYYQZZZREEURHHOROOURS\x00\x15RUUSRWWASAAUSBLBSCYCSD" +
  918. "DNSEWESGGPSHHNSIVNSJJMSKVKSLLESMMRSNENSOOMSRURSSSDSTTPSUUNSVLVSXXMSYYRSZ" +
  919. "WZTAAATCCATDCDTF\x00\x18TGGOTHHATJJKTKKLTLLSTMKMTNUNTOONTPMPTRURTTTOTVUV" +
  920. "TWWNTZZAUAKRUGGAUK UMMIUSSAUYRYUZZBVAATVCCTVDDRVEENVGGBVIIRVNNMVUUTWFLF" +
  921. "WKAKWSSMXAAAXBBBXCCCXDDDXEEEXFFFXGGGXHHHXIIIXJJJXKKKXLLLXMMMXNNNXOOOXPPP" +
  922. "XQQQXRRRXSSSXTTTXUUUXVVVXWWWXXXXXYYYXZZZYDMDYEEMYT\x00\x1bYUUGZAAFZMMBZR" +
  923. "ARZWWEZZZZ\xff\xff\xff\xff"
  924. // altRegionISO3 holds a list of 3-letter region codes that cannot be
  925. // mapped to 2-letter codes using the default algorithm. This is a short list.
  926. var altRegionISO3 string = "SCGQUUSGSCOMPRKCYMSPMSRBATFMYTATN"
  927. // altRegionIDs holds a list of regionIDs the positions of which match those
  928. // of the 3-letter ISO codes in altRegionISO3.
  929. // Size: 22 bytes, 11 elements
  930. var altRegionIDs = [11]uint16{
  931. 0x0056, 0x006f, 0x0086, 0x00a6, 0x00a8, 0x00ab, 0x00e8, 0x0103,
  932. 0x011f, 0x015c, 0x00da,
  933. }
  934. // Size: 80 bytes, 20 elements
  935. var regionOldMap = [20]fromTo{
  936. 0: {from: 0x43, to: 0xc2},
  937. 1: {from: 0x57, to: 0xa5},
  938. 2: {from: 0x5e, to: 0x5f},
  939. 3: {from: 0x65, to: 0x3a},
  940. 4: {from: 0x77, to: 0x76},
  941. 5: {from: 0x91, to: 0x36},
  942. 6: {from: 0xa1, to: 0x131},
  943. 7: {from: 0xbf, to: 0x131},
  944. 8: {from: 0xd5, to: 0x13c},
  945. 9: {from: 0xda, to: 0x2a},
  946. 10: {from: 0xed, to: 0x131},
  947. 11: {from: 0xf0, to: 0xe0},
  948. 12: {from: 0xfa, to: 0x6f},
  949. 13: {from: 0x101, to: 0x161},
  950. 14: {from: 0x128, to: 0x124},
  951. 15: {from: 0x130, to: 0x79},
  952. 16: {from: 0x137, to: 0x13b},
  953. 17: {from: 0x13e, to: 0x131},
  954. 18: {from: 0x15a, to: 0x15b},
  955. 19: {from: 0x160, to: 0x4a},
  956. }
  957. // m49 maps regionIDs to UN.M49 codes. The first isoRegionOffset entries are
  958. // codes indicating collections of regions.
  959. // Size: 710 bytes, 355 elements
  960. var m49 = [355]int16{
  961. // Entry 0 - 3F
  962. 0, 1, 2, 3, 5, 9, 11, 13,
  963. 14, 15, 17, 18, 19, 21, 29, 30,
  964. 34, 35, 39, 53, 54, 57, 61, 142,
  965. 143, 145, 150, 151, 154, 155, 419, 958,
  966. 0, 20, 784, 4, 28, 660, 8, 51,
  967. 530, 24, 10, 32, 16, 40, 36, 533,
  968. 248, 31, 70, 52, 50, 56, 854, 100,
  969. 48, 108, 204, 652, 60, 96, 68, 535,
  970. // Entry 40 - 7F
  971. 76, 44, 64, 104, 74, 72, 112, 84,
  972. 124, 166, 180, 140, 178, 756, 384, 184,
  973. 152, 120, 156, 170, 0, 188, 891, 296,
  974. 192, 132, 531, 162, 196, 203, 278, 276,
  975. 0, 262, 208, 212, 214, 204, 12, 0,
  976. 218, 233, 818, 732, 232, 724, 231, 967,
  977. 246, 242, 238, 583, 234, 0, 250, 249,
  978. 266, 826, 308, 268, 254, 831, 288, 292,
  979. // Entry 80 - BF
  980. 304, 270, 324, 312, 226, 300, 239, 320,
  981. 316, 624, 328, 344, 334, 340, 191, 332,
  982. 348, 854, 0, 360, 372, 376, 833, 356,
  983. 86, 368, 364, 352, 380, 832, 388, 400,
  984. 392, 581, 404, 417, 116, 296, 174, 659,
  985. 408, 410, 414, 136, 398, 418, 422, 662,
  986. 438, 144, 430, 426, 440, 442, 428, 434,
  987. 504, 492, 498, 499, 663, 450, 584, 581,
  988. // Entry C0 - FF
  989. 807, 466, 104, 496, 446, 580, 474, 478,
  990. 500, 470, 480, 462, 454, 484, 458, 508,
  991. 516, 540, 562, 574, 566, 548, 558, 528,
  992. 578, 524, 10, 520, 536, 570, 554, 512,
  993. 591, 0, 604, 258, 598, 608, 586, 616,
  994. 666, 612, 630, 275, 620, 581, 585, 600,
  995. 591, 634, 959, 960, 961, 962, 963, 964,
  996. 965, 966, 967, 968, 969, 970, 971, 972,
  997. // Entry 100 - 13F
  998. 638, 716, 642, 688, 643, 646, 682, 90,
  999. 690, 729, 752, 702, 654, 705, 744, 703,
  1000. 694, 674, 686, 706, 740, 728, 678, 810,
  1001. 222, 534, 760, 748, 0, 796, 148, 260,
  1002. 768, 764, 762, 772, 626, 795, 788, 776,
  1003. 626, 792, 780, 798, 158, 834, 804, 800,
  1004. 826, 581, 840, 858, 860, 336, 670, 704,
  1005. 862, 92, 850, 704, 548, 876, 581, 882,
  1006. // Entry 140 - 17F
  1007. 973, 974, 975, 976, 977, 978, 979, 980,
  1008. 981, 982, 983, 984, 985, 986, 987, 988,
  1009. 989, 990, 991, 992, 993, 994, 995, 996,
  1010. 997, 998, 720, 887, 175, 891, 710, 894,
  1011. 180, 716, 999,
  1012. }
  1013. // m49Index gives indexes into fromM49 based on the three most significant bits
  1014. // of a 10-bit UN.M49 code. To search an UN.M49 code in fromM49, search in
  1015. // fromM49[m49Index[msb39(code)]:m49Index[msb3(code)+1]]
  1016. // for an entry where the first 7 bits match the 7 lsb of the UN.M49 code.
  1017. // The region code is stored in the 9 lsb of the indexed value.
  1018. // Size: 18 bytes, 9 elements
  1019. var m49Index = [9]int16{
  1020. 0, 59, 107, 142, 180, 219, 258, 290,
  1021. 332,
  1022. }
  1023. // fromM49 contains entries to map UN.M49 codes to regions. See m49Index for details.
  1024. // Size: 664 bytes, 332 elements
  1025. var fromM49 = [332]uint16{
  1026. // Entry 0 - 3F
  1027. 0x0201, 0x0402, 0x0603, 0x0823, 0x0a04, 0x1026, 0x1205, 0x142a,
  1028. 0x1606, 0x1866, 0x1a07, 0x1c08, 0x1e09, 0x202c, 0x220a, 0x240b,
  1029. 0x260c, 0x2821, 0x2a0d, 0x3029, 0x3824, 0x3a0e, 0x3c0f, 0x3e31,
  1030. 0x402b, 0x4410, 0x4611, 0x482e, 0x4e12, 0x502d, 0x5841, 0x6038,
  1031. 0x6434, 0x6627, 0x6833, 0x6a13, 0x6c14, 0x7035, 0x7215, 0x783c,
  1032. 0x7a16, 0x8042, 0x883e, 0x8c32, 0x9045, 0x9444, 0x9840, 0xa847,
  1033. 0xac98, 0xb507, 0xb939, 0xc03d, 0xc837, 0xd0c2, 0xd839, 0xe046,
  1034. 0xe8a4, 0xf051, 0xf848, 0x0859, 0x10ab, 0x184b, 0x1c17, 0x1e18,
  1035. // Entry 40 - 7F
  1036. 0x20b1, 0x2219, 0x291e, 0x2c1a, 0x2e1b, 0x3050, 0x341c, 0x361d,
  1037. 0x3852, 0x3d2c, 0x445b, 0x4c49, 0x5453, 0x5ca6, 0x5f5c, 0x644c,
  1038. 0x684a, 0x704f, 0x7855, 0x7e8e, 0x8058, 0x885c, 0x965d, 0x983a,
  1039. 0xa062, 0xa863, 0xac64, 0xb468, 0xbd18, 0xc484, 0xcc6e, 0xce6e,
  1040. 0xd06c, 0xd269, 0xd474, 0xdc72, 0xde86, 0xe471, 0xec70, 0xf030,
  1041. 0xf277, 0xf476, 0xfc7c, 0x04e3, 0x091f, 0x0c61, 0x1478, 0x187b,
  1042. 0x1c81, 0x26eb, 0x285f, 0x2c5e, 0x305f, 0x407e, 0x487f, 0x50a5,
  1043. 0x5885, 0x6080, 0x687a, 0x7083, 0x7888, 0x8087, 0x8882, 0x908a,
  1044. // Entry 80 - BF
  1045. 0x988f, 0x9c8c, 0xa135, 0xa88d, 0xb08b, 0xb890, 0xc09b, 0xc897,
  1046. 0xd093, 0xd89a, 0xe099, 0xe894, 0xf095, 0xf89c, 0x004e, 0x089e,
  1047. 0x10a0, 0x1cac, 0x209f, 0x28a2, 0x30a8, 0x34a9, 0x3caa, 0x42a3,
  1048. 0x44ad, 0x461e, 0x4cae, 0x54b3, 0x58b6, 0x5cb2, 0x64b7, 0x6cb0,
  1049. 0x70b4, 0x74b5, 0x7cc4, 0x84bd, 0x8ccc, 0x94ce, 0x9ccb, 0xa4c1,
  1050. 0xacc9, 0xb4c6, 0xbcc7, 0xc0ca, 0xc8cd, 0xd8b9, 0xe0c3, 0xe4ba,
  1051. 0xe6bb, 0xe8c8, 0xf0b8, 0xf8cf, 0x00df, 0x08d0, 0x10db, 0x18d9,
  1052. 0x20d7, 0x2428, 0x265a, 0x2a2f, 0x2d19, 0x2e3f, 0x30dc, 0x38d1,
  1053. // Entry C0 - FF
  1054. 0x493c, 0x54de, 0x5cd6, 0x64d2, 0x6cd4, 0x74dd, 0x7cd3, 0x84d8,
  1055. 0x88c5, 0x8b31, 0x8e73, 0x90be, 0x92ee, 0x94e6, 0x9ee0, 0xace4,
  1056. 0xb0ef, 0xb8e2, 0xc0e5, 0xc8e9, 0xd0e7, 0xd8ec, 0xe089, 0xe524,
  1057. 0xecea, 0xf4f1, 0xfd00, 0x0502, 0x0704, 0x0d05, 0x183b, 0x1d0c,
  1058. 0x26a7, 0x2825, 0x2caf, 0x2ebc, 0x34e8, 0x3d36, 0x4511, 0x4d16,
  1059. 0x5506, 0x5d12, 0x6103, 0x6508, 0x6d10, 0x7d0b, 0x7f0f, 0x813b,
  1060. 0x830d, 0x8513, 0x8d5e, 0x9961, 0xa15a, 0xa86d, 0xb115, 0xb309,
  1061. 0xb86b, 0xc109, 0xc914, 0xd10e, 0xd91b, 0xe10a, 0xe84d, 0xf11a,
  1062. // Entry 100 - 13F
  1063. 0xf522, 0xf921, 0x0120, 0x0923, 0x1127, 0x192a, 0x2022, 0x2926,
  1064. 0x3129, 0x3725, 0x391d, 0x3d2b, 0x412f, 0x492e, 0x4ec0, 0x5517,
  1065. 0x646a, 0x7479, 0x7e7d, 0x809d, 0x8296, 0x852d, 0x9132, 0xa53a,
  1066. 0xac36, 0xb533, 0xb934, 0xbd38, 0xd93d, 0xe53f, 0xed5b, 0xef5b,
  1067. 0xf656, 0xfd5f, 0x7c1f, 0x7ef2, 0x80f3, 0x82f4, 0x84f5, 0x86f6,
  1068. 0x88f7, 0x8af8, 0x8cf9, 0x8e6f, 0x90fb, 0x92fc, 0x94fd, 0x96fe,
  1069. 0x98ff, 0x9b40, 0x9d41, 0x9f42, 0xa143, 0xa344, 0xa545, 0xa746,
  1070. 0xa947, 0xab48, 0xad49, 0xaf4a, 0xb14b, 0xb34c, 0xb54d, 0xb74e,
  1071. // Entry 140 - 17F
  1072. 0xb94f, 0xbb50, 0xbd51, 0xbf52, 0xc153, 0xc354, 0xc555, 0xc756,
  1073. 0xc957, 0xcb58, 0xcd59, 0xcf62,
  1074. }
  1075. // Size: 1444 bytes
  1076. var variantIndex = map[string]uint8{
  1077. "1606nict": 0x0,
  1078. "1694acad": 0x1,
  1079. "1901": 0x2,
  1080. "1959acad": 0x3,
  1081. "1994": 0x45,
  1082. "1996": 0x4,
  1083. "abl1943": 0x5,
  1084. "alalc97": 0x47,
  1085. "aluku": 0x6,
  1086. "ao1990": 0x7,
  1087. "arevela": 0x8,
  1088. "arevmda": 0x9,
  1089. "baku1926": 0xa,
  1090. "balanka": 0xb,
  1091. "barla": 0xc,
  1092. "basiceng": 0xd,
  1093. "bauddha": 0xe,
  1094. "biscayan": 0xf,
  1095. "biske": 0x40,
  1096. "bohoric": 0x10,
  1097. "boont": 0x11,
  1098. "colb1945": 0x12,
  1099. "cornu": 0x13,
  1100. "dajnko": 0x14,
  1101. "ekavsk": 0x15,
  1102. "emodeng": 0x16,
  1103. "fonipa": 0x48,
  1104. "fonupa": 0x49,
  1105. "fonxsamp": 0x4a,
  1106. "hepburn": 0x17,
  1107. "heploc": 0x46,
  1108. "hognorsk": 0x18,
  1109. "ijekavsk": 0x19,
  1110. "itihasa": 0x1a,
  1111. "jauer": 0x1b,
  1112. "jyutping": 0x1c,
  1113. "kkcor": 0x1d,
  1114. "kociewie": 0x1e,
  1115. "kscor": 0x1f,
  1116. "laukika": 0x20,
  1117. "lipaw": 0x41,
  1118. "luna1918": 0x21,
  1119. "metelko": 0x22,
  1120. "monoton": 0x23,
  1121. "ndyuka": 0x24,
  1122. "nedis": 0x25,
  1123. "newfound": 0x26,
  1124. "njiva": 0x42,
  1125. "nulik": 0x27,
  1126. "osojs": 0x43,
  1127. "oxendict": 0x28,
  1128. "pamaka": 0x29,
  1129. "petr1708": 0x2a,
  1130. "pinyin": 0x2b,
  1131. "polyton": 0x2c,
  1132. "puter": 0x2d,
  1133. "rigik": 0x2e,
  1134. "rozaj": 0x2f,
  1135. "rumgr": 0x30,
  1136. "scotland": 0x31,
  1137. "scouse": 0x32,
  1138. "simple": 0x4b,
  1139. "solba": 0x44,
  1140. "sotav": 0x33,
  1141. "surmiran": 0x34,
  1142. "sursilv": 0x35,
  1143. "sutsilv": 0x36,
  1144. "tarask": 0x37,
  1145. "uccor": 0x38,
  1146. "ucrcor": 0x39,
  1147. "ulster": 0x3a,
  1148. "unifon": 0x3b,
  1149. "vaidika": 0x3c,
  1150. "valencia": 0x3d,
  1151. "vallader": 0x3e,
  1152. "wadegile": 0x3f,
  1153. }
  1154. // variantNumSpecialized is the number of specialized variants in variants.
  1155. const variantNumSpecialized = 71
  1156. // nRegionGroups is the number of region groups.
  1157. const nRegionGroups = 32
  1158. type likelyLangRegion struct {
  1159. lang uint16
  1160. region uint16
  1161. }
  1162. // likelyScript is a lookup table, indexed by scriptID, for the most likely
  1163. // languages and regions given a script.
  1164. // Size: 928 bytes, 232 elements
  1165. var likelyScript = [232]likelyLangRegion{
  1166. 1: {lang: 0xa6, region: 0x82},
  1167. 3: {lang: 0x159, region: 0x104},
  1168. 4: {lang: 0xc, region: 0x97},
  1169. 5: {lang: 0x15, region: 0x6a},
  1170. 7: {lang: 0x16, region: 0x9a},
  1171. 8: {lang: 0xf3, region: 0x27},
  1172. 9: {lang: 0x8, region: 0x9a},
  1173. 10: {lang: 0x27, region: 0x93},
  1174. 11: {lang: 0x2b, region: 0x51},
  1175. 12: {lang: 0x55, region: 0xb2},
  1176. 13: {lang: 0x2c, region: 0x93},
  1177. 14: {lang: 0x4b, region: 0x34},
  1178. 15: {lang: 0x20d, region: 0x97},
  1179. 17: {lang: 0x2c4, region: 0x12c},
  1180. 18: {lang: 0x1e5, region: 0x97},
  1181. 19: {lang: 0xaf, region: 0x76},
  1182. 20: {lang: 0x5b, region: 0x93},
  1183. 21: {lang: 0x47, region: 0xe5},
  1184. 22: {lang: 0x63, region: 0x34},
  1185. 23: {lang: 0x73, region: 0x48},
  1186. 24: {lang: 0x2a8, region: 0x129},
  1187. 25: {lang: 0x6e, region: 0x13b},
  1188. 26: {lang: 0x6c, region: 0x132},
  1189. 28: {lang: 0x71, region: 0x6a},
  1190. 29: {lang: 0xd0, region: 0x5c},
  1191. 30: {lang: 0x207, region: 0x104},
  1192. 32: {lang: 0xe1, region: 0x97},
  1193. 34: {lang: 0xaf, region: 0x76},
  1194. 37: {lang: 0x98, region: 0x6a},
  1195. 38: {lang: 0x23a, region: 0x26},
  1196. 39: {lang: 0x11, region: 0x6e},
  1197. 41: {lang: 0x111, region: 0x7b},
  1198. 42: {lang: 0x7d, region: 0x37},
  1199. 43: {lang: 0xcf, region: 0x12e},
  1200. 44: {lang: 0x20d, region: 0x97},
  1201. 45: {lang: 0x9a, region: 0x85},
  1202. 46: {lang: 0xd3, region: 0x97},
  1203. 47: {lang: 0x1d7, region: 0x97},
  1204. 48: {lang: 0x2c4, region: 0x12c},
  1205. 49: {lang: 0x136, region: 0xa9},
  1206. 50: {lang: 0x2c4, region: 0x52},
  1207. 51: {lang: 0xe9, region: 0xe5},
  1208. 52: {lang: 0x2c4, region: 0x52},
  1209. 53: {lang: 0x2c4, region: 0x12c},
  1210. 54: {lang: 0x18b, region: 0x99},
  1211. 55: {lang: 0xe0, region: 0x95},
  1212. 56: {lang: 0x107, region: 0xa0},
  1213. 57: {lang: 0xe4, region: 0x129},
  1214. 58: {lang: 0xe8, region: 0xad},
  1215. 60: {lang: 0xf2, region: 0x90},
  1216. 62: {lang: 0xa0, region: 0x9c},
  1217. 63: {lang: 0x136, region: 0xa9},
  1218. 64: {lang: 0x10f, region: 0x93},
  1219. 65: {lang: 0x107, region: 0xa0},
  1220. 67: {lang: 0x99, region: 0xc2},
  1221. 68: {lang: 0x107, region: 0xa0},
  1222. 69: {lang: 0x1eb, region: 0xe6},
  1223. 70: {lang: 0x133, region: 0xa4},
  1224. 71: {lang: 0x21a, region: 0x97},
  1225. 74: {lang: 0x135, region: 0x97},
  1226. 75: {lang: 0x136, region: 0xa9},
  1227. 77: {lang: 0x40, region: 0x97},
  1228. 78: {lang: 0x1c2, region: 0x121},
  1229. 79: {lang: 0x165, region: 0xad},
  1230. 84: {lang: 0x158, region: 0x97},
  1231. 85: {lang: 0x15c, region: 0x97},
  1232. 86: {lang: 0x14f, region: 0x85},
  1233. 87: {lang: 0xd0, region: 0x85},
  1234. 88: {lang: 0x15e, region: 0x52},
  1235. 90: {lang: 0x2aa, region: 0x129},
  1236. 91: {lang: 0x2ab, region: 0x129},
  1237. 92: {lang: 0xe1, region: 0x97},
  1238. 93: {lang: 0x1a8, region: 0x9a},
  1239. 94: {lang: 0x2ad, region: 0x52},
  1240. 95: {lang: 0x4c, region: 0x52},
  1241. 97: {lang: 0x17f, region: 0x110},
  1242. 98: {lang: 0x2ae, region: 0x109},
  1243. 99: {lang: 0x2ae, region: 0x109},
  1244. 100: {lang: 0x18d, region: 0x97},
  1245. 101: {lang: 0x196, region: 0x97},
  1246. 102: {lang: 0x18f, region: 0x52},
  1247. 104: {lang: 0x199, region: 0x34},
  1248. 105: {lang: 0x190, region: 0x97},
  1249. 106: {lang: 0x22b, region: 0xe6},
  1250. 107: {lang: 0x1a5, region: 0xc2},
  1251. 108: {lang: 0x2af, region: 0x106},
  1252. 109: {lang: 0x16, region: 0x9f},
  1253. 110: {lang: 0x1b5, region: 0xd9},
  1254. 112: {lang: 0x179, region: 0x82},
  1255. 114: {lang: 0x223, region: 0x94},
  1256. 115: {lang: 0x212, region: 0x97},
  1257. 116: {lang: 0x1d6, region: 0xc3},
  1258. 117: {lang: 0x1d3, region: 0x97},
  1259. 118: {lang: 0x1d5, region: 0x132},
  1260. 119: {lang: 0x238, region: 0x113},
  1261. 120: {lang: 0x16, region: 0x11a},
  1262. 121: {lang: 0x7c, region: 0xc2},
  1263. 122: {lang: 0x147, region: 0x104},
  1264. 123: {lang: 0x172, region: 0x52},
  1265. 124: {lang: 0x1d9, region: 0x9a},
  1266. 125: {lang: 0x1d9, region: 0x52},
  1267. 127: {lang: 0x1e3, region: 0xae},
  1268. 129: {lang: 0xe5, region: 0x52},
  1269. 130: {lang: 0x2b2, region: 0x9a},
  1270. 181: {lang: 0x1f6, region: 0x93},
  1271. 183: {lang: 0x1c4, region: 0x10a},
  1272. 184: {lang: 0x234, region: 0x95},
  1273. 186: {lang: 0x2b3, region: 0x15b},
  1274. 187: {lang: 0x213, region: 0x97},
  1275. 188: {lang: 0x1e, region: 0x132},
  1276. 189: {lang: 0x9b, region: 0x79},
  1277. 190: {lang: 0x20d, region: 0x97},
  1278. 191: {lang: 0x20d, region: 0x97},
  1279. 192: {lang: 0x21a, region: 0x97},
  1280. 193: {lang: 0x228, region: 0xb1},
  1281. 194: {lang: 0x23c, region: 0x97},
  1282. 195: {lang: 0x244, region: 0x93},
  1283. 196: {lang: 0x24e, region: 0x34},
  1284. 197: {lang: 0x24f, region: 0x99},
  1285. 201: {lang: 0x253, region: 0xe5},
  1286. 202: {lang: 0x8a, region: 0x97},
  1287. 203: {lang: 0x255, region: 0x52},
  1288. 204: {lang: 0x126, region: 0x52},
  1289. 205: {lang: 0x251, region: 0x97},
  1290. 206: {lang: 0x27f, region: 0x52},
  1291. 207: {lang: 0x48, region: 0x13b},
  1292. 208: {lang: 0x258, region: 0x97},
  1293. 210: {lang: 0x2c3, region: 0xb8},
  1294. 211: {lang: 0xaa, region: 0xe5},
  1295. 212: {lang: 0x90, region: 0xcb},
  1296. 213: {lang: 0x25d, region: 0x121},
  1297. 214: {lang: 0x4c, region: 0x52},
  1298. 215: {lang: 0x177, region: 0x97},
  1299. 216: {lang: 0x285, region: 0x11a},
  1300. 217: {lang: 0x28e, region: 0xb2},
  1301. 219: {lang: 0xec, region: 0x97},
  1302. 221: {lang: 0x1e1, region: 0x9a},
  1303. 222: {lang: 0xe, region: 0x99},
  1304. 223: {lang: 0xfb, region: 0x52},
  1305. }
  1306. type likelyScriptRegion struct {
  1307. region uint16
  1308. script uint8
  1309. flags uint8
  1310. }
  1311. // likelyLang is a lookup table, indexed by langID, for the most likely
  1312. // scripts and regions given incomplete information. If more entries exist for a
  1313. // given language, region and script are the index and size respectively
  1314. // of the list in likelyLangList.
  1315. // Size: 2852 bytes, 713 elements
  1316. var likelyLang = [713]likelyScriptRegion{
  1317. 0: {region: 0x132, script: 0x52, flags: 0x0},
  1318. 1: {region: 0x6e, script: 0x52, flags: 0x0},
  1319. 2: {region: 0x7b, script: 0x1e, flags: 0x0},
  1320. 3: {region: 0x7e, script: 0x52, flags: 0x0},
  1321. 4: {region: 0x93, script: 0x52, flags: 0x0},
  1322. 5: {region: 0x12f, script: 0x52, flags: 0x0},
  1323. 6: {region: 0x7e, script: 0x52, flags: 0x0},
  1324. 7: {region: 0x104, script: 0x1e, flags: 0x0},
  1325. 8: {region: 0x9a, script: 0x9, flags: 0x0},
  1326. 9: {region: 0x126, script: 0x5, flags: 0x0},
  1327. 10: {region: 0x15e, script: 0x52, flags: 0x0},
  1328. 11: {region: 0x51, script: 0x52, flags: 0x0},
  1329. 12: {region: 0x97, script: 0x4, flags: 0x0},
  1330. 13: {region: 0x7e, script: 0x52, flags: 0x0},
  1331. 14: {region: 0x99, script: 0xde, flags: 0x0},
  1332. 15: {region: 0x14a, script: 0x52, flags: 0x0},
  1333. 16: {region: 0x104, script: 0x1e, flags: 0x0},
  1334. 17: {region: 0x6e, script: 0x27, flags: 0x0},
  1335. 18: {region: 0xd4, script: 0x52, flags: 0x0},
  1336. 20: {region: 0x93, script: 0x52, flags: 0x0},
  1337. 21: {region: 0x6a, script: 0x5, flags: 0x0},
  1338. 22: {region: 0x0, script: 0x3, flags: 0x1},
  1339. 23: {region: 0x50, script: 0x52, flags: 0x0},
  1340. 24: {region: 0x3e, script: 0x52, flags: 0x0},
  1341. 25: {region: 0x66, script: 0x5, flags: 0x0},
  1342. 26: {region: 0xb8, script: 0x5, flags: 0x0},
  1343. 27: {region: 0x6a, script: 0x5, flags: 0x0},
  1344. 28: {region: 0x97, script: 0xe, flags: 0x0},
  1345. 29: {region: 0x12d, script: 0x52, flags: 0x0},
  1346. 30: {region: 0x132, script: 0xbc, flags: 0x0},
  1347. 31: {region: 0x6d, script: 0x52, flags: 0x0},
  1348. 32: {region: 0x48, script: 0x52, flags: 0x0},
  1349. 33: {region: 0x104, script: 0x1e, flags: 0x0},
  1350. 34: {region: 0x97, script: 0x20, flags: 0x0},
  1351. 35: {region: 0x3e, script: 0x52, flags: 0x0},
  1352. 36: {region: 0x3, script: 0x5, flags: 0x1},
  1353. 37: {region: 0x104, script: 0x1e, flags: 0x0},
  1354. 38: {region: 0xe6, script: 0x5, flags: 0x0},
  1355. 39: {region: 0x93, script: 0x52, flags: 0x0},
  1356. 40: {region: 0xd9, script: 0x20, flags: 0x0},
  1357. 41: {region: 0x2d, script: 0x52, flags: 0x0},
  1358. 42: {region: 0x51, script: 0x52, flags: 0x0},
  1359. 43: {region: 0x51, script: 0xb, flags: 0x0},
  1360. 44: {region: 0x93, script: 0x52, flags: 0x0},
  1361. 45: {region: 0x51, script: 0x52, flags: 0x0},
  1362. 46: {region: 0x4e, script: 0x52, flags: 0x0},
  1363. 47: {region: 0x46, script: 0x1e, flags: 0x0},
  1364. 48: {region: 0x109, script: 0x5, flags: 0x0},
  1365. 49: {region: 0x15f, script: 0x52, flags: 0x0},
  1366. 50: {region: 0x93, script: 0x52, flags: 0x0},
  1367. 51: {region: 0x12d, script: 0x52, flags: 0x0},
  1368. 52: {region: 0x51, script: 0x52, flags: 0x0},
  1369. 53: {region: 0x97, script: 0xcd, flags: 0x0},
  1370. 54: {region: 0xe6, script: 0x5, flags: 0x0},
  1371. 55: {region: 0x97, script: 0x20, flags: 0x0},
  1372. 56: {region: 0x37, script: 0x1e, flags: 0x0},
  1373. 57: {region: 0x97, script: 0x20, flags: 0x0},
  1374. 58: {region: 0xe6, script: 0x5, flags: 0x0},
  1375. 59: {region: 0x129, script: 0x2d, flags: 0x0},
  1376. 61: {region: 0x97, script: 0x20, flags: 0x0},
  1377. 62: {region: 0x97, script: 0x20, flags: 0x0},
  1378. 63: {region: 0xe5, script: 0x52, flags: 0x0},
  1379. 64: {region: 0x97, script: 0x20, flags: 0x0},
  1380. 65: {region: 0x13c, script: 0x52, flags: 0x0},
  1381. 66: {region: 0xe5, script: 0x52, flags: 0x0},
  1382. 67: {region: 0xd4, script: 0x52, flags: 0x0},
  1383. 68: {region: 0x97, script: 0x20, flags: 0x0},
  1384. 69: {region: 0x93, script: 0x52, flags: 0x0},
  1385. 70: {region: 0x51, script: 0x52, flags: 0x0},
  1386. 71: {region: 0xe5, script: 0x52, flags: 0x0},
  1387. 72: {region: 0x13b, script: 0xcf, flags: 0x0},
  1388. 73: {region: 0xc1, script: 0x52, flags: 0x0},
  1389. 74: {region: 0xc1, script: 0x52, flags: 0x0},
  1390. 75: {region: 0x34, script: 0xe, flags: 0x0},
  1391. 76: {region: 0x52, script: 0xd6, flags: 0x0},
  1392. 77: {region: 0x97, script: 0xe, flags: 0x0},
  1393. 78: {region: 0x9a, script: 0x5, flags: 0x0},
  1394. 79: {region: 0x4e, script: 0x52, flags: 0x0},
  1395. 80: {region: 0x76, script: 0x52, flags: 0x0},
  1396. 81: {region: 0x97, script: 0x20, flags: 0x0},
  1397. 82: {region: 0xe6, script: 0x5, flags: 0x0},
  1398. 83: {region: 0x97, script: 0x20, flags: 0x0},
  1399. 84: {region: 0x32, script: 0x52, flags: 0x0},
  1400. 85: {region: 0xb2, script: 0xc, flags: 0x0},
  1401. 86: {region: 0x51, script: 0x52, flags: 0x0},
  1402. 87: {region: 0xe5, script: 0x52, flags: 0x0},
  1403. 88: {region: 0xe6, script: 0x20, flags: 0x0},
  1404. 89: {region: 0x104, script: 0x1e, flags: 0x0},
  1405. 90: {region: 0x15c, script: 0x52, flags: 0x0},
  1406. 91: {region: 0x93, script: 0x52, flags: 0x0},
  1407. 92: {region: 0x51, script: 0x52, flags: 0x0},
  1408. 93: {region: 0x84, script: 0x52, flags: 0x0},
  1409. 94: {region: 0x6c, script: 0x27, flags: 0x0},
  1410. 95: {region: 0x51, script: 0x52, flags: 0x0},
  1411. 96: {region: 0xc1, script: 0x52, flags: 0x0},
  1412. 97: {region: 0x6d, script: 0x52, flags: 0x0},
  1413. 98: {region: 0xd4, script: 0x52, flags: 0x0},
  1414. 99: {region: 0x8, script: 0x2, flags: 0x1},
  1415. 100: {region: 0x104, script: 0x1e, flags: 0x0},
  1416. 101: {region: 0xe5, script: 0x52, flags: 0x0},
  1417. 102: {region: 0x12f, script: 0x52, flags: 0x0},
  1418. 103: {region: 0x88, script: 0x52, flags: 0x0},
  1419. 104: {region: 0x73, script: 0x52, flags: 0x0},
  1420. 105: {region: 0x104, script: 0x1e, flags: 0x0},
  1421. 106: {region: 0x132, script: 0x52, flags: 0x0},
  1422. 107: {region: 0x48, script: 0x52, flags: 0x0},
  1423. 108: {region: 0x132, script: 0x1a, flags: 0x0},
  1424. 109: {region: 0xa4, script: 0x5, flags: 0x0},
  1425. 110: {region: 0x13b, script: 0x19, flags: 0x0},
  1426. 111: {region: 0x99, script: 0x5, flags: 0x0},
  1427. 112: {region: 0x76, script: 0x52, flags: 0x0},
  1428. 113: {region: 0x6a, script: 0x1c, flags: 0x0},
  1429. 114: {region: 0xe5, script: 0x52, flags: 0x0},
  1430. 115: {region: 0x48, script: 0x17, flags: 0x0},
  1431. 116: {region: 0x48, script: 0x17, flags: 0x0},
  1432. 117: {region: 0x48, script: 0x17, flags: 0x0},
  1433. 118: {region: 0x48, script: 0x17, flags: 0x0},
  1434. 119: {region: 0x48, script: 0x17, flags: 0x0},
  1435. 120: {region: 0x108, script: 0x52, flags: 0x0},
  1436. 121: {region: 0x5d, script: 0x52, flags: 0x0},
  1437. 122: {region: 0xe7, script: 0x52, flags: 0x0},
  1438. 123: {region: 0x48, script: 0x17, flags: 0x0},
  1439. 124: {region: 0xc2, script: 0x79, flags: 0x0},
  1440. 125: {region: 0xa, script: 0x2, flags: 0x1},
  1441. 126: {region: 0x104, script: 0x1e, flags: 0x0},
  1442. 127: {region: 0x79, script: 0x52, flags: 0x0},
  1443. 128: {region: 0x62, script: 0x52, flags: 0x0},
  1444. 129: {region: 0x132, script: 0x52, flags: 0x0},
  1445. 130: {region: 0x104, script: 0x1e, flags: 0x0},
  1446. 131: {region: 0xa2, script: 0x52, flags: 0x0},
  1447. 132: {region: 0x97, script: 0x5, flags: 0x0},
  1448. 133: {region: 0x5f, script: 0x52, flags: 0x0},
  1449. 134: {region: 0x48, script: 0x52, flags: 0x0},
  1450. 135: {region: 0x48, script: 0x52, flags: 0x0},
  1451. 136: {region: 0xd2, script: 0x52, flags: 0x0},
  1452. 137: {region: 0x4e, script: 0x52, flags: 0x0},
  1453. 138: {region: 0x97, script: 0x5, flags: 0x0},
  1454. 139: {region: 0x5f, script: 0x52, flags: 0x0},
  1455. 140: {region: 0xc1, script: 0x52, flags: 0x0},
  1456. 141: {region: 0xce, script: 0x52, flags: 0x0},
  1457. 142: {region: 0xd9, script: 0x20, flags: 0x0},
  1458. 143: {region: 0x51, script: 0x52, flags: 0x0},
  1459. 144: {region: 0xcb, script: 0xd4, flags: 0x0},
  1460. 145: {region: 0x112, script: 0x52, flags: 0x0},
  1461. 146: {region: 0x36, script: 0x52, flags: 0x0},
  1462. 147: {region: 0x42, script: 0xd6, flags: 0x0},
  1463. 148: {region: 0xa2, script: 0x52, flags: 0x0},
  1464. 149: {region: 0x7e, script: 0x52, flags: 0x0},
  1465. 150: {region: 0xd4, script: 0x52, flags: 0x0},
  1466. 151: {region: 0x9c, script: 0x52, flags: 0x0},
  1467. 152: {region: 0x6a, script: 0x25, flags: 0x0},
  1468. 153: {region: 0xc2, script: 0x43, flags: 0x0},
  1469. 154: {region: 0x85, script: 0x2d, flags: 0x0},
  1470. 155: {region: 0xc, script: 0x2, flags: 0x1},
  1471. 156: {region: 0x1, script: 0x52, flags: 0x0},
  1472. 157: {region: 0x6d, script: 0x52, flags: 0x0},
  1473. 158: {region: 0x132, script: 0x52, flags: 0x0},
  1474. 159: {region: 0x69, script: 0x52, flags: 0x0},
  1475. 160: {region: 0x9c, script: 0x3e, flags: 0x0},
  1476. 161: {region: 0x6d, script: 0x52, flags: 0x0},
  1477. 162: {region: 0x51, script: 0x52, flags: 0x0},
  1478. 163: {region: 0x6d, script: 0x52, flags: 0x0},
  1479. 164: {region: 0x9a, script: 0x5, flags: 0x0},
  1480. 165: {region: 0x84, script: 0x52, flags: 0x0},
  1481. 166: {region: 0xe, script: 0x2, flags: 0x1},
  1482. 167: {region: 0xc1, script: 0x52, flags: 0x0},
  1483. 168: {region: 0x70, script: 0x52, flags: 0x0},
  1484. 169: {region: 0x109, script: 0x5, flags: 0x0},
  1485. 170: {region: 0xe5, script: 0x52, flags: 0x0},
  1486. 171: {region: 0x10a, script: 0x52, flags: 0x0},
  1487. 172: {region: 0x71, script: 0x52, flags: 0x0},
  1488. 173: {region: 0x74, script: 0x52, flags: 0x0},
  1489. 174: {region: 0x3a, script: 0x52, flags: 0x0},
  1490. 175: {region: 0x76, script: 0x52, flags: 0x0},
  1491. 176: {region: 0x132, script: 0x52, flags: 0x0},
  1492. 177: {region: 0x76, script: 0x52, flags: 0x0},
  1493. 178: {region: 0x5f, script: 0x52, flags: 0x0},
  1494. 179: {region: 0x5f, script: 0x52, flags: 0x0},
  1495. 180: {region: 0x13d, script: 0x52, flags: 0x0},
  1496. 181: {region: 0xd2, script: 0x52, flags: 0x0},
  1497. 182: {region: 0x9c, script: 0x52, flags: 0x0},
  1498. 183: {region: 0xd4, script: 0x52, flags: 0x0},
  1499. 184: {region: 0x109, script: 0x52, flags: 0x0},
  1500. 185: {region: 0xd7, script: 0x52, flags: 0x0},
  1501. 186: {region: 0x94, script: 0x52, flags: 0x0},
  1502. 187: {region: 0x7e, script: 0x52, flags: 0x0},
  1503. 188: {region: 0xba, script: 0x52, flags: 0x0},
  1504. 189: {region: 0x52, script: 0x34, flags: 0x0},
  1505. 190: {region: 0x93, script: 0x52, flags: 0x0},
  1506. 191: {region: 0x97, script: 0x20, flags: 0x0},
  1507. 192: {region: 0x9a, script: 0x5, flags: 0x0},
  1508. 193: {region: 0x7c, script: 0x52, flags: 0x0},
  1509. 194: {region: 0x79, script: 0x52, flags: 0x0},
  1510. 195: {region: 0x6e, script: 0x27, flags: 0x0},
  1511. 196: {region: 0xd9, script: 0x20, flags: 0x0},
  1512. 197: {region: 0xa5, script: 0x52, flags: 0x0},
  1513. 198: {region: 0xe6, script: 0x5, flags: 0x0},
  1514. 199: {region: 0xe6, script: 0x5, flags: 0x0},
  1515. 200: {region: 0x6d, script: 0x52, flags: 0x0},
  1516. 201: {region: 0x9a, script: 0x5, flags: 0x0},
  1517. 202: {region: 0xef, script: 0x52, flags: 0x0},
  1518. 203: {region: 0x97, script: 0x20, flags: 0x0},
  1519. 204: {region: 0x97, script: 0xd0, flags: 0x0},
  1520. 205: {region: 0x93, script: 0x52, flags: 0x0},
  1521. 206: {region: 0xd7, script: 0x52, flags: 0x0},
  1522. 207: {region: 0x12e, script: 0x2b, flags: 0x0},
  1523. 208: {region: 0x10, script: 0x2, flags: 0x1},
  1524. 209: {region: 0x97, script: 0xe, flags: 0x0},
  1525. 210: {region: 0x4d, script: 0x52, flags: 0x0},
  1526. 211: {region: 0x97, script: 0x2e, flags: 0x0},
  1527. 212: {region: 0x40, script: 0x52, flags: 0x0},
  1528. 213: {region: 0x53, script: 0x52, flags: 0x0},
  1529. 214: {region: 0x7e, script: 0x52, flags: 0x0},
  1530. 216: {region: 0xa2, script: 0x52, flags: 0x0},
  1531. 217: {region: 0x96, script: 0x52, flags: 0x0},
  1532. 218: {region: 0xd9, script: 0x20, flags: 0x0},
  1533. 219: {region: 0x48, script: 0x52, flags: 0x0},
  1534. 220: {region: 0x12, script: 0x3, flags: 0x1},
  1535. 221: {region: 0x52, script: 0x34, flags: 0x0},
  1536. 222: {region: 0x132, script: 0x52, flags: 0x0},
  1537. 223: {region: 0x23, script: 0x5, flags: 0x0},
  1538. 224: {region: 0x95, script: 0x37, flags: 0x0},
  1539. 225: {region: 0x97, script: 0x20, flags: 0x0},
  1540. 226: {region: 0x71, script: 0x52, flags: 0x0},
  1541. 227: {region: 0xe5, script: 0x52, flags: 0x0},
  1542. 228: {region: 0x129, script: 0x39, flags: 0x0},
  1543. 229: {region: 0x52, script: 0x81, flags: 0x0},
  1544. 230: {region: 0xe6, script: 0x5, flags: 0x0},
  1545. 231: {region: 0x97, script: 0x20, flags: 0x0},
  1546. 232: {region: 0xad, script: 0x3a, flags: 0x0},
  1547. 233: {region: 0xe5, script: 0x52, flags: 0x0},
  1548. 234: {region: 0xe6, script: 0x5, flags: 0x0},
  1549. 235: {region: 0xe4, script: 0x52, flags: 0x0},
  1550. 236: {region: 0x97, script: 0x20, flags: 0x0},
  1551. 237: {region: 0x97, script: 0x20, flags: 0x0},
  1552. 238: {region: 0x8e, script: 0x52, flags: 0x0},
  1553. 239: {region: 0x5f, script: 0x52, flags: 0x0},
  1554. 240: {region: 0x52, script: 0x34, flags: 0x0},
  1555. 241: {region: 0x8f, script: 0x52, flags: 0x0},
  1556. 242: {region: 0x90, script: 0x52, flags: 0x0},
  1557. 243: {region: 0x27, script: 0x8, flags: 0x0},
  1558. 244: {region: 0xd0, script: 0x52, flags: 0x0},
  1559. 245: {region: 0x76, script: 0x52, flags: 0x0},
  1560. 246: {region: 0xce, script: 0x52, flags: 0x0},
  1561. 247: {region: 0xd4, script: 0x52, flags: 0x0},
  1562. 248: {region: 0x93, script: 0x52, flags: 0x0},
  1563. 250: {region: 0xd4, script: 0x52, flags: 0x0},
  1564. 251: {region: 0x52, script: 0xdf, flags: 0x0},
  1565. 252: {region: 0x132, script: 0x52, flags: 0x0},
  1566. 253: {region: 0x48, script: 0x52, flags: 0x0},
  1567. 254: {region: 0xe5, script: 0x52, flags: 0x0},
  1568. 255: {region: 0x93, script: 0x52, flags: 0x0},
  1569. 256: {region: 0x104, script: 0x1e, flags: 0x0},
  1570. 258: {region: 0x9b, script: 0x52, flags: 0x0},
  1571. 259: {region: 0x9c, script: 0x52, flags: 0x0},
  1572. 260: {region: 0x48, script: 0x17, flags: 0x0},
  1573. 261: {region: 0x95, script: 0x37, flags: 0x0},
  1574. 262: {region: 0x104, script: 0x52, flags: 0x0},
  1575. 263: {region: 0xa0, script: 0x41, flags: 0x0},
  1576. 264: {region: 0x9e, script: 0x52, flags: 0x0},
  1577. 266: {region: 0x51, script: 0x52, flags: 0x0},
  1578. 267: {region: 0x12e, script: 0x37, flags: 0x0},
  1579. 268: {region: 0x12d, script: 0x52, flags: 0x0},
  1580. 269: {region: 0xd9, script: 0x20, flags: 0x0},
  1581. 270: {region: 0x62, script: 0x52, flags: 0x0},
  1582. 271: {region: 0x93, script: 0x52, flags: 0x0},
  1583. 272: {region: 0x93, script: 0x52, flags: 0x0},
  1584. 273: {region: 0x7b, script: 0x29, flags: 0x0},
  1585. 274: {region: 0x134, script: 0x1e, flags: 0x0},
  1586. 275: {region: 0x66, script: 0x52, flags: 0x0},
  1587. 276: {region: 0xc2, script: 0x52, flags: 0x0},
  1588. 277: {region: 0xd4, script: 0x52, flags: 0x0},
  1589. 278: {region: 0xa2, script: 0x52, flags: 0x0},
  1590. 279: {region: 0xc1, script: 0x52, flags: 0x0},
  1591. 280: {region: 0x104, script: 0x1e, flags: 0x0},
  1592. 281: {region: 0xd4, script: 0x52, flags: 0x0},
  1593. 282: {region: 0x161, script: 0x52, flags: 0x0},
  1594. 283: {region: 0x12d, script: 0x52, flags: 0x0},
  1595. 284: {region: 0x121, script: 0xd5, flags: 0x0},
  1596. 285: {region: 0x59, script: 0x52, flags: 0x0},
  1597. 286: {region: 0x51, script: 0x52, flags: 0x0},
  1598. 287: {region: 0x4e, script: 0x52, flags: 0x0},
  1599. 288: {region: 0x97, script: 0x20, flags: 0x0},
  1600. 289: {region: 0x97, script: 0x20, flags: 0x0},
  1601. 290: {region: 0x4a, script: 0x52, flags: 0x0},
  1602. 291: {region: 0x93, script: 0x52, flags: 0x0},
  1603. 292: {region: 0x40, script: 0x52, flags: 0x0},
  1604. 293: {region: 0x97, script: 0x52, flags: 0x0},
  1605. 294: {region: 0x52, script: 0xcc, flags: 0x0},
  1606. 295: {region: 0x97, script: 0x20, flags: 0x0},
  1607. 296: {region: 0xc1, script: 0x52, flags: 0x0},
  1608. 297: {region: 0x97, script: 0x6b, flags: 0x0},
  1609. 298: {region: 0xe6, script: 0x5, flags: 0x0},
  1610. 299: {region: 0xa2, script: 0x52, flags: 0x0},
  1611. 300: {region: 0x129, script: 0x52, flags: 0x0},
  1612. 301: {region: 0xd0, script: 0x52, flags: 0x0},
  1613. 302: {region: 0xad, script: 0x4f, flags: 0x0},
  1614. 303: {region: 0x15, script: 0x6, flags: 0x1},
  1615. 304: {region: 0x51, script: 0x52, flags: 0x0},
  1616. 305: {region: 0x80, script: 0x52, flags: 0x0},
  1617. 306: {region: 0xa2, script: 0x52, flags: 0x0},
  1618. 307: {region: 0xa4, script: 0x46, flags: 0x0},
  1619. 308: {region: 0x29, script: 0x52, flags: 0x0},
  1620. 309: {region: 0x97, script: 0x4a, flags: 0x0},
  1621. 310: {region: 0xa9, script: 0x4b, flags: 0x0},
  1622. 311: {region: 0x104, script: 0x1e, flags: 0x0},
  1623. 312: {region: 0x97, script: 0x20, flags: 0x0},
  1624. 313: {region: 0x73, script: 0x52, flags: 0x0},
  1625. 314: {region: 0xb2, script: 0x52, flags: 0x0},
  1626. 316: {region: 0x104, script: 0x1e, flags: 0x0},
  1627. 317: {region: 0x110, script: 0x52, flags: 0x0},
  1628. 318: {region: 0xe5, script: 0x52, flags: 0x0},
  1629. 319: {region: 0x104, script: 0x52, flags: 0x0},
  1630. 320: {region: 0x97, script: 0x20, flags: 0x0},
  1631. 321: {region: 0x97, script: 0x5, flags: 0x0},
  1632. 322: {region: 0x12d, script: 0x52, flags: 0x0},
  1633. 323: {region: 0x51, script: 0x52, flags: 0x0},
  1634. 324: {region: 0x5f, script: 0x52, flags: 0x0},
  1635. 325: {region: 0x1b, script: 0x3, flags: 0x1},
  1636. 326: {region: 0x104, script: 0x1e, flags: 0x0},
  1637. 327: {region: 0x104, script: 0x1e, flags: 0x0},
  1638. 328: {region: 0x93, script: 0x52, flags: 0x0},
  1639. 329: {region: 0xe6, script: 0x5, flags: 0x0},
  1640. 330: {region: 0x79, script: 0x52, flags: 0x0},
  1641. 331: {region: 0x121, script: 0xd5, flags: 0x0},
  1642. 332: {region: 0xe6, script: 0x5, flags: 0x0},
  1643. 333: {region: 0x1e, script: 0x5, flags: 0x1},
  1644. 334: {region: 0x135, script: 0x52, flags: 0x0},
  1645. 335: {region: 0x85, script: 0x56, flags: 0x0},
  1646. 336: {region: 0x95, script: 0x37, flags: 0x0},
  1647. 337: {region: 0x12d, script: 0x52, flags: 0x0},
  1648. 338: {region: 0xe6, script: 0x5, flags: 0x0},
  1649. 339: {region: 0x12f, script: 0x52, flags: 0x0},
  1650. 340: {region: 0xb5, script: 0x52, flags: 0x0},
  1651. 341: {region: 0x104, script: 0x1e, flags: 0x0},
  1652. 342: {region: 0x93, script: 0x52, flags: 0x0},
  1653. 343: {region: 0x52, script: 0xd5, flags: 0x0},
  1654. 344: {region: 0x97, script: 0x54, flags: 0x0},
  1655. 345: {region: 0x104, script: 0x1e, flags: 0x0},
  1656. 346: {region: 0x12f, script: 0x52, flags: 0x0},
  1657. 347: {region: 0xd7, script: 0x52, flags: 0x0},
  1658. 348: {region: 0x23, script: 0x2, flags: 0x1},
  1659. 349: {region: 0x9c, script: 0x52, flags: 0x0},
  1660. 350: {region: 0x52, script: 0x58, flags: 0x0},
  1661. 351: {region: 0x93, script: 0x52, flags: 0x0},
  1662. 352: {region: 0x9a, script: 0x5, flags: 0x0},
  1663. 353: {region: 0x132, script: 0x52, flags: 0x0},
  1664. 354: {region: 0x97, script: 0xd0, flags: 0x0},
  1665. 355: {region: 0x9c, script: 0x52, flags: 0x0},
  1666. 356: {region: 0x4a, script: 0x52, flags: 0x0},
  1667. 357: {region: 0xad, script: 0x4f, flags: 0x0},
  1668. 358: {region: 0x4a, script: 0x52, flags: 0x0},
  1669. 359: {region: 0x15f, script: 0x52, flags: 0x0},
  1670. 360: {region: 0x9a, script: 0x5, flags: 0x0},
  1671. 361: {region: 0xb4, script: 0x52, flags: 0x0},
  1672. 362: {region: 0xb6, script: 0x52, flags: 0x0},
  1673. 363: {region: 0x4a, script: 0x52, flags: 0x0},
  1674. 364: {region: 0x4a, script: 0x52, flags: 0x0},
  1675. 365: {region: 0xa2, script: 0x52, flags: 0x0},
  1676. 366: {region: 0xa2, script: 0x52, flags: 0x0},
  1677. 367: {region: 0x9a, script: 0x5, flags: 0x0},
  1678. 368: {region: 0xb6, script: 0x52, flags: 0x0},
  1679. 369: {region: 0x121, script: 0xd5, flags: 0x0},
  1680. 370: {region: 0x52, script: 0x34, flags: 0x0},
  1681. 371: {region: 0x129, script: 0x52, flags: 0x0},
  1682. 372: {region: 0x93, script: 0x52, flags: 0x0},
  1683. 373: {region: 0x51, script: 0x52, flags: 0x0},
  1684. 374: {region: 0x97, script: 0x20, flags: 0x0},
  1685. 375: {region: 0x97, script: 0x20, flags: 0x0},
  1686. 376: {region: 0x93, script: 0x52, flags: 0x0},
  1687. 377: {region: 0x25, script: 0x3, flags: 0x1},
  1688. 378: {region: 0xa2, script: 0x52, flags: 0x0},
  1689. 379: {region: 0xcd, script: 0x52, flags: 0x0},
  1690. 380: {region: 0x104, script: 0x1e, flags: 0x0},
  1691. 381: {region: 0xe5, script: 0x52, flags: 0x0},
  1692. 382: {region: 0x93, script: 0x52, flags: 0x0},
  1693. 383: {region: 0x110, script: 0x52, flags: 0x0},
  1694. 384: {region: 0xa2, script: 0x52, flags: 0x0},
  1695. 385: {region: 0x121, script: 0x5, flags: 0x0},
  1696. 386: {region: 0xca, script: 0x52, flags: 0x0},
  1697. 387: {region: 0xbd, script: 0x52, flags: 0x0},
  1698. 388: {region: 0xcf, script: 0x52, flags: 0x0},
  1699. 389: {region: 0x51, script: 0x52, flags: 0x0},
  1700. 390: {region: 0xd9, script: 0x20, flags: 0x0},
  1701. 391: {region: 0x12d, script: 0x52, flags: 0x0},
  1702. 392: {region: 0xbe, script: 0x52, flags: 0x0},
  1703. 393: {region: 0xde, script: 0x52, flags: 0x0},
  1704. 394: {region: 0x93, script: 0x52, flags: 0x0},
  1705. 395: {region: 0x99, script: 0x36, flags: 0x0},
  1706. 396: {region: 0xc0, script: 0x1e, flags: 0x0},
  1707. 397: {region: 0x97, script: 0x64, flags: 0x0},
  1708. 398: {region: 0x109, script: 0x52, flags: 0x0},
  1709. 399: {region: 0x28, script: 0x3, flags: 0x1},
  1710. 400: {region: 0x97, script: 0xe, flags: 0x0},
  1711. 401: {region: 0xc2, script: 0x6b, flags: 0x0},
  1712. 403: {region: 0x48, script: 0x52, flags: 0x0},
  1713. 404: {region: 0x48, script: 0x52, flags: 0x0},
  1714. 405: {region: 0x36, script: 0x52, flags: 0x0},
  1715. 406: {region: 0x97, script: 0x20, flags: 0x0},
  1716. 407: {region: 0xd9, script: 0x20, flags: 0x0},
  1717. 408: {region: 0x104, script: 0x1e, flags: 0x0},
  1718. 409: {region: 0x34, script: 0x68, flags: 0x0},
  1719. 410: {region: 0x2b, script: 0x3, flags: 0x1},
  1720. 411: {region: 0xc9, script: 0x52, flags: 0x0},
  1721. 412: {region: 0x97, script: 0x20, flags: 0x0},
  1722. 413: {region: 0x51, script: 0x52, flags: 0x0},
  1723. 415: {region: 0x132, script: 0x52, flags: 0x0},
  1724. 416: {region: 0xe6, script: 0x5, flags: 0x0},
  1725. 417: {region: 0xc1, script: 0x52, flags: 0x0},
  1726. 418: {region: 0x97, script: 0x20, flags: 0x0},
  1727. 419: {region: 0x93, script: 0x52, flags: 0x0},
  1728. 420: {region: 0x161, script: 0x52, flags: 0x0},
  1729. 421: {region: 0xc2, script: 0x6b, flags: 0x0},
  1730. 422: {region: 0x104, script: 0x1e, flags: 0x0},
  1731. 423: {region: 0x12f, script: 0x52, flags: 0x0},
  1732. 424: {region: 0x9a, script: 0x5d, flags: 0x0},
  1733. 425: {region: 0x9a, script: 0x5, flags: 0x0},
  1734. 426: {region: 0xdb, script: 0x52, flags: 0x0},
  1735. 428: {region: 0x52, script: 0x34, flags: 0x0},
  1736. 429: {region: 0x9c, script: 0x52, flags: 0x0},
  1737. 430: {region: 0xd0, script: 0x52, flags: 0x0},
  1738. 431: {region: 0xd8, script: 0x52, flags: 0x0},
  1739. 432: {region: 0xcd, script: 0x52, flags: 0x0},
  1740. 433: {region: 0x161, script: 0x52, flags: 0x0},
  1741. 434: {region: 0xcf, script: 0x52, flags: 0x0},
  1742. 435: {region: 0x5f, script: 0x52, flags: 0x0},
  1743. 436: {region: 0xd9, script: 0x20, flags: 0x0},
  1744. 437: {region: 0xd9, script: 0x20, flags: 0x0},
  1745. 438: {region: 0xd0, script: 0x52, flags: 0x0},
  1746. 439: {region: 0xcf, script: 0x52, flags: 0x0},
  1747. 440: {region: 0xcd, script: 0x52, flags: 0x0},
  1748. 441: {region: 0xcd, script: 0x52, flags: 0x0},
  1749. 442: {region: 0x93, script: 0x52, flags: 0x0},
  1750. 443: {region: 0xdd, script: 0x52, flags: 0x0},
  1751. 444: {region: 0x97, script: 0x52, flags: 0x0},
  1752. 445: {region: 0xd7, script: 0x52, flags: 0x0},
  1753. 446: {region: 0x51, script: 0x52, flags: 0x0},
  1754. 447: {region: 0xd8, script: 0x52, flags: 0x0},
  1755. 448: {region: 0x51, script: 0x52, flags: 0x0},
  1756. 449: {region: 0xd8, script: 0x52, flags: 0x0},
  1757. 450: {region: 0x121, script: 0x4e, flags: 0x0},
  1758. 451: {region: 0x97, script: 0x20, flags: 0x0},
  1759. 452: {region: 0x10a, script: 0xb7, flags: 0x0},
  1760. 453: {region: 0x82, script: 0x70, flags: 0x0},
  1761. 454: {region: 0x15e, script: 0x52, flags: 0x0},
  1762. 455: {region: 0x48, script: 0x17, flags: 0x0},
  1763. 456: {region: 0x15e, script: 0x52, flags: 0x0},
  1764. 457: {region: 0x115, script: 0x52, flags: 0x0},
  1765. 458: {region: 0x132, script: 0x52, flags: 0x0},
  1766. 459: {region: 0x52, script: 0x52, flags: 0x0},
  1767. 460: {region: 0xcc, script: 0x52, flags: 0x0},
  1768. 461: {region: 0x12d, script: 0x52, flags: 0x0},
  1769. 462: {region: 0x12f, script: 0x52, flags: 0x0},
  1770. 463: {region: 0x7e, script: 0x52, flags: 0x0},
  1771. 464: {region: 0x76, script: 0x52, flags: 0x0},
  1772. 466: {region: 0x6e, script: 0x52, flags: 0x0},
  1773. 467: {region: 0x97, script: 0x75, flags: 0x0},
  1774. 468: {region: 0x7b, script: 0x1e, flags: 0x0},
  1775. 469: {region: 0x132, script: 0x76, flags: 0x0},
  1776. 470: {region: 0xc3, script: 0x74, flags: 0x0},
  1777. 471: {region: 0x2e, script: 0x3, flags: 0x1},
  1778. 472: {region: 0xe5, script: 0x52, flags: 0x0},
  1779. 473: {region: 0x31, script: 0x2, flags: 0x1},
  1780. 474: {region: 0xe5, script: 0x52, flags: 0x0},
  1781. 475: {region: 0x2f, script: 0x52, flags: 0x0},
  1782. 476: {region: 0xee, script: 0x52, flags: 0x0},
  1783. 477: {region: 0x76, script: 0x52, flags: 0x0},
  1784. 478: {region: 0xd4, script: 0x52, flags: 0x0},
  1785. 479: {region: 0x132, script: 0x52, flags: 0x0},
  1786. 480: {region: 0x48, script: 0x52, flags: 0x0},
  1787. 481: {region: 0x9a, script: 0xdd, flags: 0x0},
  1788. 482: {region: 0x5f, script: 0x52, flags: 0x0},
  1789. 483: {region: 0xae, script: 0x7f, flags: 0x0},
  1790. 485: {region: 0x97, script: 0x12, flags: 0x0},
  1791. 486: {region: 0xa2, script: 0x52, flags: 0x0},
  1792. 487: {region: 0xe7, script: 0x52, flags: 0x0},
  1793. 488: {region: 0x9c, script: 0x52, flags: 0x0},
  1794. 489: {region: 0x85, script: 0x2d, flags: 0x0},
  1795. 490: {region: 0x73, script: 0x52, flags: 0x0},
  1796. 491: {region: 0xe6, script: 0x45, flags: 0x0},
  1797. 492: {region: 0x9a, script: 0x5, flags: 0x0},
  1798. 493: {region: 0x1, script: 0x52, flags: 0x0},
  1799. 494: {region: 0x23, script: 0x5, flags: 0x0},
  1800. 495: {region: 0x40, script: 0x52, flags: 0x0},
  1801. 496: {region: 0x78, script: 0x52, flags: 0x0},
  1802. 497: {region: 0xe2, script: 0x52, flags: 0x0},
  1803. 498: {region: 0x87, script: 0x52, flags: 0x0},
  1804. 499: {region: 0x68, script: 0x52, flags: 0x0},
  1805. 500: {region: 0x97, script: 0x20, flags: 0x0},
  1806. 501: {region: 0x100, script: 0x52, flags: 0x0},
  1807. 502: {region: 0x93, script: 0x52, flags: 0x0},
  1808. 503: {region: 0x9c, script: 0x52, flags: 0x0},
  1809. 504: {region: 0x97, script: 0x52, flags: 0x0},
  1810. 505: {region: 0x33, script: 0x2, flags: 0x1},
  1811. 506: {region: 0xd9, script: 0x20, flags: 0x0},
  1812. 507: {region: 0x34, script: 0xe, flags: 0x0},
  1813. 508: {region: 0x4d, script: 0x52, flags: 0x0},
  1814. 509: {region: 0x70, script: 0x52, flags: 0x0},
  1815. 510: {region: 0x4d, script: 0x52, flags: 0x0},
  1816. 511: {region: 0x9a, script: 0x5, flags: 0x0},
  1817. 512: {region: 0x10a, script: 0x52, flags: 0x0},
  1818. 513: {region: 0x39, script: 0x52, flags: 0x0},
  1819. 514: {region: 0xcf, script: 0x52, flags: 0x0},
  1820. 515: {region: 0x102, script: 0x52, flags: 0x0},
  1821. 516: {region: 0x93, script: 0x52, flags: 0x0},
  1822. 517: {region: 0x12d, script: 0x52, flags: 0x0},
  1823. 518: {region: 0x71, script: 0x52, flags: 0x0},
  1824. 519: {region: 0x104, script: 0x1e, flags: 0x0},
  1825. 520: {region: 0x12e, script: 0x1e, flags: 0x0},
  1826. 521: {region: 0x107, script: 0x52, flags: 0x0},
  1827. 522: {region: 0x105, script: 0x52, flags: 0x0},
  1828. 523: {region: 0x12d, script: 0x52, flags: 0x0},
  1829. 524: {region: 0xa0, script: 0x44, flags: 0x0},
  1830. 525: {region: 0x97, script: 0x20, flags: 0x0},
  1831. 526: {region: 0x7e, script: 0x52, flags: 0x0},
  1832. 527: {region: 0x104, script: 0x1e, flags: 0x0},
  1833. 528: {region: 0xa2, script: 0x52, flags: 0x0},
  1834. 529: {region: 0x93, script: 0x52, flags: 0x0},
  1835. 530: {region: 0x97, script: 0x52, flags: 0x0},
  1836. 531: {region: 0x97, script: 0xbb, flags: 0x0},
  1837. 532: {region: 0x12d, script: 0x52, flags: 0x0},
  1838. 533: {region: 0x9c, script: 0x52, flags: 0x0},
  1839. 534: {region: 0x97, script: 0x20, flags: 0x0},
  1840. 535: {region: 0x9c, script: 0x52, flags: 0x0},
  1841. 536: {region: 0x79, script: 0x52, flags: 0x0},
  1842. 537: {region: 0x48, script: 0x52, flags: 0x0},
  1843. 538: {region: 0x35, script: 0x4, flags: 0x1},
  1844. 539: {region: 0x9c, script: 0x52, flags: 0x0},
  1845. 540: {region: 0x9a, script: 0x5, flags: 0x0},
  1846. 541: {region: 0xd8, script: 0x52, flags: 0x0},
  1847. 542: {region: 0x4e, script: 0x52, flags: 0x0},
  1848. 543: {region: 0xcf, script: 0x52, flags: 0x0},
  1849. 544: {region: 0xcd, script: 0x52, flags: 0x0},
  1850. 545: {region: 0xc1, script: 0x52, flags: 0x0},
  1851. 546: {region: 0x4b, script: 0x52, flags: 0x0},
  1852. 547: {region: 0x94, script: 0x72, flags: 0x0},
  1853. 548: {region: 0xb4, script: 0x52, flags: 0x0},
  1854. 550: {region: 0xb8, script: 0xd2, flags: 0x0},
  1855. 551: {region: 0xc2, script: 0x6b, flags: 0x0},
  1856. 552: {region: 0xb1, script: 0xc1, flags: 0x0},
  1857. 553: {region: 0x6e, script: 0x52, flags: 0x0},
  1858. 554: {region: 0x10f, script: 0x52, flags: 0x0},
  1859. 555: {region: 0xe6, script: 0x5, flags: 0x0},
  1860. 556: {region: 0x10d, script: 0x52, flags: 0x0},
  1861. 557: {region: 0xe7, script: 0x52, flags: 0x0},
  1862. 558: {region: 0x93, script: 0x52, flags: 0x0},
  1863. 559: {region: 0x13f, script: 0x52, flags: 0x0},
  1864. 560: {region: 0x10a, script: 0x52, flags: 0x0},
  1865. 562: {region: 0x10a, script: 0x52, flags: 0x0},
  1866. 563: {region: 0x70, script: 0x52, flags: 0x0},
  1867. 564: {region: 0x95, script: 0xb8, flags: 0x0},
  1868. 565: {region: 0x70, script: 0x52, flags: 0x0},
  1869. 566: {region: 0x161, script: 0x52, flags: 0x0},
  1870. 567: {region: 0xc1, script: 0x52, flags: 0x0},
  1871. 568: {region: 0x113, script: 0x52, flags: 0x0},
  1872. 569: {region: 0x121, script: 0xd5, flags: 0x0},
  1873. 570: {region: 0x26, script: 0x52, flags: 0x0},
  1874. 571: {region: 0x39, script: 0x5, flags: 0x1},
  1875. 572: {region: 0x97, script: 0xc2, flags: 0x0},
  1876. 573: {region: 0x114, script: 0x52, flags: 0x0},
  1877. 574: {region: 0x112, script: 0x52, flags: 0x0},
  1878. 575: {region: 0x97, script: 0x20, flags: 0x0},
  1879. 576: {region: 0x15e, script: 0x52, flags: 0x0},
  1880. 577: {region: 0x6c, script: 0x52, flags: 0x0},
  1881. 578: {region: 0x15e, script: 0x52, flags: 0x0},
  1882. 579: {region: 0x5f, script: 0x52, flags: 0x0},
  1883. 580: {region: 0x93, script: 0x52, flags: 0x0},
  1884. 581: {region: 0x12d, script: 0x52, flags: 0x0},
  1885. 582: {region: 0x82, script: 0x52, flags: 0x0},
  1886. 583: {region: 0x10a, script: 0x52, flags: 0x0},
  1887. 584: {region: 0x12d, script: 0x52, flags: 0x0},
  1888. 585: {region: 0x15c, script: 0x5, flags: 0x0},
  1889. 586: {region: 0x4a, script: 0x52, flags: 0x0},
  1890. 587: {region: 0x5f, script: 0x52, flags: 0x0},
  1891. 588: {region: 0x97, script: 0x20, flags: 0x0},
  1892. 589: {region: 0x93, script: 0x52, flags: 0x0},
  1893. 590: {region: 0x34, script: 0xe, flags: 0x0},
  1894. 591: {region: 0x99, script: 0xc5, flags: 0x0},
  1895. 592: {region: 0xe7, script: 0x52, flags: 0x0},
  1896. 593: {region: 0x97, script: 0xcd, flags: 0x0},
  1897. 594: {region: 0xd9, script: 0x20, flags: 0x0},
  1898. 595: {region: 0xe5, script: 0x52, flags: 0x0},
  1899. 596: {region: 0x97, script: 0x4a, flags: 0x0},
  1900. 597: {region: 0x52, script: 0xcb, flags: 0x0},
  1901. 598: {region: 0xd9, script: 0x20, flags: 0x0},
  1902. 599: {region: 0xd9, script: 0x20, flags: 0x0},
  1903. 600: {region: 0x97, script: 0xd0, flags: 0x0},
  1904. 601: {region: 0x110, script: 0x52, flags: 0x0},
  1905. 602: {region: 0x12f, script: 0x52, flags: 0x0},
  1906. 603: {region: 0x124, script: 0x52, flags: 0x0},
  1907. 604: {region: 0x3e, script: 0x3, flags: 0x1},
  1908. 605: {region: 0x121, script: 0xd5, flags: 0x0},
  1909. 606: {region: 0xd9, script: 0x20, flags: 0x0},
  1910. 607: {region: 0xd9, script: 0x20, flags: 0x0},
  1911. 608: {region: 0xd9, script: 0x20, flags: 0x0},
  1912. 609: {region: 0x6e, script: 0x27, flags: 0x0},
  1913. 610: {region: 0x6c, script: 0x27, flags: 0x0},
  1914. 611: {region: 0xd4, script: 0x52, flags: 0x0},
  1915. 612: {region: 0x125, script: 0x52, flags: 0x0},
  1916. 613: {region: 0x123, script: 0x52, flags: 0x0},
  1917. 614: {region: 0x31, script: 0x52, flags: 0x0},
  1918. 615: {region: 0xd9, script: 0x20, flags: 0x0},
  1919. 616: {region: 0xe5, script: 0x52, flags: 0x0},
  1920. 617: {region: 0x31, script: 0x52, flags: 0x0},
  1921. 618: {region: 0xd2, script: 0x52, flags: 0x0},
  1922. 619: {region: 0x15e, script: 0x52, flags: 0x0},
  1923. 620: {region: 0x127, script: 0x52, flags: 0x0},
  1924. 621: {region: 0xcc, script: 0x52, flags: 0x0},
  1925. 622: {region: 0xe4, script: 0x52, flags: 0x0},
  1926. 623: {region: 0x129, script: 0x52, flags: 0x0},
  1927. 624: {region: 0x129, script: 0x52, flags: 0x0},
  1928. 625: {region: 0x12c, script: 0x52, flags: 0x0},
  1929. 626: {region: 0x15e, script: 0x52, flags: 0x0},
  1930. 627: {region: 0x85, script: 0x2d, flags: 0x0},
  1931. 628: {region: 0xd9, script: 0x20, flags: 0x0},
  1932. 629: {region: 0xe5, script: 0x52, flags: 0x0},
  1933. 630: {region: 0x42, script: 0xd6, flags: 0x0},
  1934. 631: {region: 0x104, script: 0x1e, flags: 0x0},
  1935. 632: {region: 0x12f, script: 0x52, flags: 0x0},
  1936. 633: {region: 0x121, script: 0xd5, flags: 0x0},
  1937. 634: {region: 0x31, script: 0x52, flags: 0x0},
  1938. 635: {region: 0xcc, script: 0x52, flags: 0x0},
  1939. 636: {region: 0x12b, script: 0x52, flags: 0x0},
  1940. 638: {region: 0xd2, script: 0x52, flags: 0x0},
  1941. 639: {region: 0x52, script: 0xce, flags: 0x0},
  1942. 640: {region: 0xe3, script: 0x52, flags: 0x0},
  1943. 641: {region: 0x104, script: 0x1e, flags: 0x0},
  1944. 642: {region: 0xb8, script: 0x52, flags: 0x0},
  1945. 643: {region: 0x104, script: 0x1e, flags: 0x0},
  1946. 644: {region: 0x41, script: 0x4, flags: 0x1},
  1947. 645: {region: 0x11a, script: 0xd8, flags: 0x0},
  1948. 646: {region: 0x12e, script: 0x1e, flags: 0x0},
  1949. 647: {region: 0x73, script: 0x52, flags: 0x0},
  1950. 648: {region: 0x29, script: 0x52, flags: 0x0},
  1951. 650: {region: 0x45, script: 0x3, flags: 0x1},
  1952. 651: {region: 0x97, script: 0xe, flags: 0x0},
  1953. 652: {region: 0xe6, script: 0x5, flags: 0x0},
  1954. 653: {region: 0x48, script: 0x4, flags: 0x1},
  1955. 654: {region: 0xb2, script: 0xd9, flags: 0x0},
  1956. 655: {region: 0x15e, script: 0x52, flags: 0x0},
  1957. 656: {region: 0x9c, script: 0x52, flags: 0x0},
  1958. 657: {region: 0x104, script: 0x52, flags: 0x0},
  1959. 658: {region: 0x13b, script: 0x52, flags: 0x0},
  1960. 659: {region: 0x119, script: 0x52, flags: 0x0},
  1961. 660: {region: 0x35, script: 0x52, flags: 0x0},
  1962. 661: {region: 0x5f, script: 0x52, flags: 0x0},
  1963. 662: {region: 0xcf, script: 0x52, flags: 0x0},
  1964. 663: {region: 0x1, script: 0x52, flags: 0x0},
  1965. 664: {region: 0x104, script: 0x52, flags: 0x0},
  1966. 665: {region: 0x69, script: 0x52, flags: 0x0},
  1967. 666: {region: 0x12d, script: 0x52, flags: 0x0},
  1968. 667: {region: 0x35, script: 0x52, flags: 0x0},
  1969. 668: {region: 0x4d, script: 0x52, flags: 0x0},
  1970. 669: {region: 0x6e, script: 0x27, flags: 0x0},
  1971. 670: {region: 0xe5, script: 0x52, flags: 0x0},
  1972. 671: {region: 0x2e, script: 0x52, flags: 0x0},
  1973. 672: {region: 0x97, script: 0xd0, flags: 0x0},
  1974. 673: {region: 0x97, script: 0x20, flags: 0x0},
  1975. 674: {region: 0x13d, script: 0x52, flags: 0x0},
  1976. 675: {region: 0xa6, script: 0x5, flags: 0x0},
  1977. 676: {region: 0x112, script: 0x52, flags: 0x0},
  1978. 677: {region: 0x97, script: 0x20, flags: 0x0},
  1979. 678: {region: 0x52, script: 0x34, flags: 0x0},
  1980. 679: {region: 0x40, script: 0x52, flags: 0x0},
  1981. 680: {region: 0x129, script: 0x18, flags: 0x0},
  1982. 681: {region: 0x15e, script: 0x52, flags: 0x0},
  1983. 682: {region: 0x129, script: 0x5a, flags: 0x0},
  1984. 683: {region: 0x129, script: 0x5b, flags: 0x0},
  1985. 684: {region: 0x7b, script: 0x29, flags: 0x0},
  1986. 685: {region: 0x52, script: 0x5e, flags: 0x0},
  1987. 686: {region: 0x109, script: 0x62, flags: 0x0},
  1988. 687: {region: 0x106, script: 0x6c, flags: 0x0},
  1989. 688: {region: 0x97, script: 0x20, flags: 0x0},
  1990. 689: {region: 0x12f, script: 0x52, flags: 0x0},
  1991. 690: {region: 0x9a, script: 0x82, flags: 0x0},
  1992. 691: {region: 0x15b, script: 0xba, flags: 0x0},
  1993. 692: {region: 0xd9, script: 0x20, flags: 0x0},
  1994. 693: {region: 0xcf, script: 0x52, flags: 0x0},
  1995. 694: {region: 0x73, script: 0x52, flags: 0x0},
  1996. 695: {region: 0x51, script: 0x52, flags: 0x0},
  1997. 696: {region: 0x51, script: 0x52, flags: 0x0},
  1998. 697: {region: 0x1, script: 0x37, flags: 0x0},
  1999. 698: {region: 0xd4, script: 0x52, flags: 0x0},
  2000. 699: {region: 0x40, script: 0x52, flags: 0x0},
  2001. 700: {region: 0xcd, script: 0x52, flags: 0x0},
  2002. 701: {region: 0x4c, script: 0x3, flags: 0x1},
  2003. 702: {region: 0x52, script: 0x52, flags: 0x0},
  2004. 703: {region: 0x109, script: 0x52, flags: 0x0},
  2005. 705: {region: 0xa6, script: 0x5, flags: 0x0},
  2006. 706: {region: 0xd7, script: 0x52, flags: 0x0},
  2007. 707: {region: 0xb8, script: 0xd2, flags: 0x0},
  2008. 708: {region: 0x4f, script: 0x14, flags: 0x1},
  2009. 709: {region: 0xce, script: 0x52, flags: 0x0},
  2010. 710: {region: 0x15e, script: 0x52, flags: 0x0},
  2011. 712: {region: 0x129, script: 0x52, flags: 0x0},
  2012. }
  2013. // likelyLangList holds lists info associated with likelyLang.
  2014. // Size: 396 bytes, 99 elements
  2015. var likelyLangList = [99]likelyScriptRegion{
  2016. 0: {region: 0x9a, script: 0x7, flags: 0x0},
  2017. 1: {region: 0x9f, script: 0x6d, flags: 0x2},
  2018. 2: {region: 0x11a, script: 0x78, flags: 0x2},
  2019. 3: {region: 0x31, script: 0x52, flags: 0x0},
  2020. 4: {region: 0x99, script: 0x5, flags: 0x4},
  2021. 5: {region: 0x9a, script: 0x5, flags: 0x4},
  2022. 6: {region: 0x104, script: 0x1e, flags: 0x4},
  2023. 7: {region: 0x9a, script: 0x5, flags: 0x2},
  2024. 8: {region: 0x97, script: 0xe, flags: 0x0},
  2025. 9: {region: 0x34, script: 0x16, flags: 0x2},
  2026. 10: {region: 0x104, script: 0x1e, flags: 0x0},
  2027. 11: {region: 0x37, script: 0x2a, flags: 0x2},
  2028. 12: {region: 0x132, script: 0x52, flags: 0x0},
  2029. 13: {region: 0x79, script: 0xbd, flags: 0x2},
  2030. 14: {region: 0x112, script: 0x52, flags: 0x0},
  2031. 15: {region: 0x82, script: 0x1, flags: 0x2},
  2032. 16: {region: 0x5c, script: 0x1d, flags: 0x0},
  2033. 17: {region: 0x85, script: 0x57, flags: 0x2},
  2034. 18: {region: 0xd4, script: 0x52, flags: 0x0},
  2035. 19: {region: 0x51, script: 0x5, flags: 0x4},
  2036. 20: {region: 0x109, script: 0x5, flags: 0x4},
  2037. 21: {region: 0xac, script: 0x1e, flags: 0x0},
  2038. 22: {region: 0x23, script: 0x5, flags: 0x4},
  2039. 23: {region: 0x52, script: 0x5, flags: 0x4},
  2040. 24: {region: 0x9a, script: 0x5, flags: 0x4},
  2041. 25: {region: 0xc3, script: 0x5, flags: 0x4},
  2042. 26: {region: 0x52, script: 0x5, flags: 0x2},
  2043. 27: {region: 0x129, script: 0x52, flags: 0x0},
  2044. 28: {region: 0xae, script: 0x5, flags: 0x4},
  2045. 29: {region: 0x99, script: 0x5, flags: 0x2},
  2046. 30: {region: 0xa3, script: 0x1e, flags: 0x0},
  2047. 31: {region: 0x52, script: 0x5, flags: 0x4},
  2048. 32: {region: 0x129, script: 0x52, flags: 0x4},
  2049. 33: {region: 0x52, script: 0x5, flags: 0x2},
  2050. 34: {region: 0x129, script: 0x52, flags: 0x2},
  2051. 35: {region: 0xd9, script: 0x20, flags: 0x0},
  2052. 36: {region: 0x97, script: 0x55, flags: 0x2},
  2053. 37: {region: 0x81, script: 0x52, flags: 0x0},
  2054. 38: {region: 0x82, script: 0x70, flags: 0x4},
  2055. 39: {region: 0x82, script: 0x70, flags: 0x2},
  2056. 40: {region: 0xc3, script: 0x1e, flags: 0x0},
  2057. 41: {region: 0x52, script: 0x66, flags: 0x4},
  2058. 42: {region: 0x52, script: 0x66, flags: 0x2},
  2059. 43: {region: 0xce, script: 0x52, flags: 0x0},
  2060. 44: {region: 0x49, script: 0x5, flags: 0x4},
  2061. 45: {region: 0x93, script: 0x5, flags: 0x4},
  2062. 46: {region: 0x97, script: 0x2f, flags: 0x0},
  2063. 47: {region: 0xe6, script: 0x5, flags: 0x4},
  2064. 48: {region: 0xe6, script: 0x5, flags: 0x2},
  2065. 49: {region: 0x9a, script: 0x7c, flags: 0x0},
  2066. 50: {region: 0x52, script: 0x7d, flags: 0x2},
  2067. 51: {region: 0xb8, script: 0xd2, flags: 0x0},
  2068. 52: {region: 0xd7, script: 0x52, flags: 0x4},
  2069. 53: {region: 0xe6, script: 0x5, flags: 0x0},
  2070. 54: {region: 0x97, script: 0x20, flags: 0x2},
  2071. 55: {region: 0x97, script: 0x47, flags: 0x2},
  2072. 56: {region: 0x97, script: 0xc0, flags: 0x2},
  2073. 57: {region: 0x103, script: 0x1e, flags: 0x0},
  2074. 58: {region: 0xbb, script: 0x52, flags: 0x4},
  2075. 59: {region: 0x102, script: 0x52, flags: 0x4},
  2076. 60: {region: 0x104, script: 0x52, flags: 0x4},
  2077. 61: {region: 0x129, script: 0x52, flags: 0x4},
  2078. 62: {region: 0x122, script: 0x1e, flags: 0x0},
  2079. 63: {region: 0xe6, script: 0x5, flags: 0x4},
  2080. 64: {region: 0xe6, script: 0x5, flags: 0x2},
  2081. 65: {region: 0x52, script: 0x5, flags: 0x0},
  2082. 66: {region: 0xac, script: 0x1e, flags: 0x4},
  2083. 67: {region: 0xc3, script: 0x1e, flags: 0x4},
  2084. 68: {region: 0xac, script: 0x1e, flags: 0x2},
  2085. 69: {region: 0x97, script: 0xe, flags: 0x0},
  2086. 70: {region: 0xd9, script: 0x20, flags: 0x4},
  2087. 71: {region: 0xd9, script: 0x20, flags: 0x2},
  2088. 72: {region: 0x134, script: 0x52, flags: 0x0},
  2089. 73: {region: 0x23, script: 0x5, flags: 0x4},
  2090. 74: {region: 0x52, script: 0x1e, flags: 0x4},
  2091. 75: {region: 0x23, script: 0x5, flags: 0x2},
  2092. 76: {region: 0x8b, script: 0x35, flags: 0x0},
  2093. 77: {region: 0x52, script: 0x34, flags: 0x4},
  2094. 78: {region: 0x52, script: 0x34, flags: 0x2},
  2095. 79: {region: 0x52, script: 0x34, flags: 0x0},
  2096. 80: {region: 0x2e, script: 0x35, flags: 0x4},
  2097. 81: {region: 0x3d, script: 0x35, flags: 0x4},
  2098. 82: {region: 0x79, script: 0x35, flags: 0x4},
  2099. 83: {region: 0x7c, script: 0x35, flags: 0x4},
  2100. 84: {region: 0x8b, script: 0x35, flags: 0x4},
  2101. 85: {region: 0x93, script: 0x35, flags: 0x4},
  2102. 86: {region: 0xc4, script: 0x35, flags: 0x4},
  2103. 87: {region: 0xce, script: 0x35, flags: 0x4},
  2104. 88: {region: 0xe0, script: 0x35, flags: 0x4},
  2105. 89: {region: 0xe3, script: 0x35, flags: 0x4},
  2106. 90: {region: 0xe5, script: 0x35, flags: 0x4},
  2107. 91: {region: 0x114, script: 0x35, flags: 0x4},
  2108. 92: {region: 0x121, script: 0x35, flags: 0x4},
  2109. 93: {region: 0x12c, script: 0x35, flags: 0x4},
  2110. 94: {region: 0x132, script: 0x35, flags: 0x4},
  2111. 95: {region: 0x13b, script: 0x35, flags: 0x4},
  2112. 96: {region: 0x12c, script: 0x11, flags: 0x2},
  2113. 97: {region: 0x12c, script: 0x30, flags: 0x2},
  2114. 98: {region: 0x12c, script: 0x35, flags: 0x2},
  2115. }
  2116. type likelyLangScript struct {
  2117. lang uint16
  2118. script uint8
  2119. flags uint8
  2120. }
  2121. // likelyRegion is a lookup table, indexed by regionID, for the most likely
  2122. // languages and scripts given incomplete information. If more entries exist
  2123. // for a given regionID, lang and script are the index and size respectively
  2124. // of the list in likelyRegionList.
  2125. // TODO: exclude containers and user-definable regions from the list.
  2126. // Size: 1420 bytes, 355 elements
  2127. var likelyRegion = [355]likelyLangScript{
  2128. 33: {lang: 0x61, script: 0x52, flags: 0x0},
  2129. 34: {lang: 0x15, script: 0x5, flags: 0x0},
  2130. 35: {lang: 0x0, script: 0x2, flags: 0x1},
  2131. 38: {lang: 0x2, script: 0x2, flags: 0x1},
  2132. 39: {lang: 0x4, script: 0x2, flags: 0x1},
  2133. 41: {lang: 0x1ef, script: 0x52, flags: 0x0},
  2134. 42: {lang: 0x0, script: 0x52, flags: 0x0},
  2135. 43: {lang: 0x9d, script: 0x52, flags: 0x0},
  2136. 44: {lang: 0x22f, script: 0x52, flags: 0x0},
  2137. 45: {lang: 0x85, script: 0x52, flags: 0x0},
  2138. 47: {lang: 0x1bd, script: 0x52, flags: 0x0},
  2139. 48: {lang: 0x247, script: 0x52, flags: 0x0},
  2140. 49: {lang: 0x24, script: 0x52, flags: 0x0},
  2141. 50: {lang: 0x6, script: 0x2, flags: 0x1},
  2142. 52: {lang: 0x4b, script: 0xe, flags: 0x0},
  2143. 53: {lang: 0x1bd, script: 0x52, flags: 0x0},
  2144. 54: {lang: 0xaf, script: 0x52, flags: 0x0},
  2145. 55: {lang: 0x38, script: 0x1e, flags: 0x0},
  2146. 56: {lang: 0x15, script: 0x5, flags: 0x0},
  2147. 57: {lang: 0x201, script: 0x52, flags: 0x0},
  2148. 58: {lang: 0xaf, script: 0x52, flags: 0x0},
  2149. 59: {lang: 0xaf, script: 0x52, flags: 0x0},
  2150. 61: {lang: 0x19a, script: 0x52, flags: 0x0},
  2151. 62: {lang: 0x9d, script: 0x52, flags: 0x0},
  2152. 63: {lang: 0x1db, script: 0x52, flags: 0x0},
  2153. 64: {lang: 0x1ef, script: 0x52, flags: 0x0},
  2154. 66: {lang: 0x8, script: 0x2, flags: 0x1},
  2155. 68: {lang: 0x0, script: 0x52, flags: 0x0},
  2156. 70: {lang: 0x2f, script: 0x1e, flags: 0x0},
  2157. 72: {lang: 0x2b9, script: 0x37, flags: 0x2},
  2158. 73: {lang: 0x19a, script: 0x5, flags: 0x2},
  2159. 74: {lang: 0x248, script: 0x52, flags: 0x0},
  2160. 75: {lang: 0xaf, script: 0x52, flags: 0x0},
  2161. 76: {lang: 0xaf, script: 0x52, flags: 0x0},
  2162. 77: {lang: 0x85, script: 0x52, flags: 0x0},
  2163. 78: {lang: 0xaf, script: 0x52, flags: 0x0},
  2164. 80: {lang: 0x9d, script: 0x52, flags: 0x0},
  2165. 81: {lang: 0xaf, script: 0x52, flags: 0x0},
  2166. 82: {lang: 0xa, script: 0x5, flags: 0x1},
  2167. 83: {lang: 0x9d, script: 0x52, flags: 0x0},
  2168. 84: {lang: 0x0, script: 0x52, flags: 0x0},
  2169. 85: {lang: 0x9d, script: 0x52, flags: 0x0},
  2170. 88: {lang: 0x9d, script: 0x52, flags: 0x0},
  2171. 89: {lang: 0x1ef, script: 0x52, flags: 0x0},
  2172. 90: {lang: 0x1db, script: 0x52, flags: 0x0},
  2173. 92: {lang: 0xf, script: 0x2, flags: 0x1},
  2174. 93: {lang: 0x79, script: 0x52, flags: 0x0},
  2175. 95: {lang: 0x85, script: 0x52, flags: 0x0},
  2176. 97: {lang: 0x1, script: 0x52, flags: 0x0},
  2177. 98: {lang: 0x80, script: 0x52, flags: 0x0},
  2178. 100: {lang: 0x9d, script: 0x52, flags: 0x0},
  2179. 102: {lang: 0x11, script: 0x2, flags: 0x1},
  2180. 103: {lang: 0x9d, script: 0x52, flags: 0x0},
  2181. 104: {lang: 0x9d, script: 0x52, flags: 0x0},
  2182. 105: {lang: 0x9f, script: 0x52, flags: 0x0},
  2183. 106: {lang: 0x15, script: 0x5, flags: 0x0},
  2184. 107: {lang: 0x15, script: 0x5, flags: 0x0},
  2185. 108: {lang: 0x261, script: 0x27, flags: 0x0},
  2186. 109: {lang: 0x9d, script: 0x52, flags: 0x0},
  2187. 110: {lang: 0x13, script: 0x2, flags: 0x1},
  2188. 112: {lang: 0xa8, script: 0x52, flags: 0x0},
  2189. 113: {lang: 0xe2, script: 0x20, flags: 0x2},
  2190. 116: {lang: 0xad, script: 0x52, flags: 0x0},
  2191. 118: {lang: 0xaf, script: 0x52, flags: 0x0},
  2192. 120: {lang: 0xaf, script: 0x52, flags: 0x0},
  2193. 121: {lang: 0x15, script: 0x2, flags: 0x1},
  2194. 123: {lang: 0x17, script: 0x3, flags: 0x1},
  2195. 124: {lang: 0xaf, script: 0x52, flags: 0x0},
  2196. 126: {lang: 0xd, script: 0x52, flags: 0x0},
  2197. 128: {lang: 0x131, script: 0x52, flags: 0x0},
  2198. 130: {lang: 0xaf, script: 0x52, flags: 0x0},
  2199. 131: {lang: 0xaf, script: 0x52, flags: 0x0},
  2200. 132: {lang: 0x9d, script: 0x52, flags: 0x0},
  2201. 133: {lang: 0x1a, script: 0x2, flags: 0x1},
  2202. 134: {lang: 0x0, script: 0x52, flags: 0x0},
  2203. 135: {lang: 0x9d, script: 0x52, flags: 0x0},
  2204. 137: {lang: 0x1ef, script: 0x52, flags: 0x0},
  2205. 139: {lang: 0x2c4, script: 0x35, flags: 0x0},
  2206. 140: {lang: 0x0, script: 0x52, flags: 0x0},
  2207. 141: {lang: 0x9d, script: 0x52, flags: 0x0},
  2208. 142: {lang: 0xee, script: 0x52, flags: 0x0},
  2209. 143: {lang: 0xf1, script: 0x52, flags: 0x0},
  2210. 144: {lang: 0xf2, script: 0x52, flags: 0x0},
  2211. 146: {lang: 0x9d, script: 0x52, flags: 0x0},
  2212. 147: {lang: 0x1c, script: 0x2, flags: 0x1},
  2213. 149: {lang: 0xe0, script: 0x37, flags: 0x0},
  2214. 151: {lang: 0x1e, script: 0x3, flags: 0x1},
  2215. 153: {lang: 0x15, script: 0x5, flags: 0x0},
  2216. 154: {lang: 0x21, script: 0x2, flags: 0x1},
  2217. 155: {lang: 0x102, script: 0x52, flags: 0x0},
  2218. 156: {lang: 0x103, script: 0x52, flags: 0x0},
  2219. 159: {lang: 0x15, script: 0x5, flags: 0x0},
  2220. 160: {lang: 0x107, script: 0x41, flags: 0x0},
  2221. 162: {lang: 0x248, script: 0x52, flags: 0x0},
  2222. 163: {lang: 0x14d, script: 0x1e, flags: 0x0},
  2223. 164: {lang: 0x23, script: 0x3, flags: 0x1},
  2224. 166: {lang: 0x26, script: 0x2, flags: 0x1},
  2225. 168: {lang: 0x136, script: 0x4b, flags: 0x0},
  2226. 169: {lang: 0x136, script: 0x4b, flags: 0x0},
  2227. 170: {lang: 0x15, script: 0x5, flags: 0x0},
  2228. 172: {lang: 0x207, script: 0x1e, flags: 0x0},
  2229. 173: {lang: 0x28, script: 0x2, flags: 0x1},
  2230. 174: {lang: 0x15, script: 0x5, flags: 0x0},
  2231. 176: {lang: 0x85, script: 0x52, flags: 0x0},
  2232. 177: {lang: 0x228, script: 0xc1, flags: 0x0},
  2233. 179: {lang: 0x242, script: 0x52, flags: 0x0},
  2234. 180: {lang: 0x169, script: 0x52, flags: 0x0},
  2235. 181: {lang: 0xaf, script: 0x52, flags: 0x0},
  2236. 182: {lang: 0x170, script: 0x52, flags: 0x0},
  2237. 183: {lang: 0x15, script: 0x5, flags: 0x0},
  2238. 184: {lang: 0x2a, script: 0x2, flags: 0x1},
  2239. 185: {lang: 0xaf, script: 0x52, flags: 0x0},
  2240. 186: {lang: 0x2c, script: 0x2, flags: 0x1},
  2241. 187: {lang: 0x23b, script: 0x52, flags: 0x0},
  2242. 188: {lang: 0xaf, script: 0x52, flags: 0x0},
  2243. 189: {lang: 0x183, script: 0x52, flags: 0x0},
  2244. 192: {lang: 0x2e, script: 0x2, flags: 0x1},
  2245. 193: {lang: 0x49, script: 0x52, flags: 0x0},
  2246. 194: {lang: 0x30, script: 0x2, flags: 0x1},
  2247. 195: {lang: 0x32, script: 0x2, flags: 0x1},
  2248. 196: {lang: 0x34, script: 0x2, flags: 0x1},
  2249. 198: {lang: 0xaf, script: 0x52, flags: 0x0},
  2250. 199: {lang: 0x36, script: 0x2, flags: 0x1},
  2251. 201: {lang: 0x19b, script: 0x52, flags: 0x0},
  2252. 202: {lang: 0x38, script: 0x3, flags: 0x1},
  2253. 203: {lang: 0x90, script: 0xd4, flags: 0x0},
  2254. 205: {lang: 0x9d, script: 0x52, flags: 0x0},
  2255. 206: {lang: 0x19a, script: 0x52, flags: 0x0},
  2256. 207: {lang: 0x1ef, script: 0x52, flags: 0x0},
  2257. 208: {lang: 0xa, script: 0x52, flags: 0x0},
  2258. 209: {lang: 0xaf, script: 0x52, flags: 0x0},
  2259. 210: {lang: 0xdc, script: 0x52, flags: 0x0},
  2260. 212: {lang: 0xdc, script: 0x5, flags: 0x2},
  2261. 214: {lang: 0x9d, script: 0x52, flags: 0x0},
  2262. 215: {lang: 0x1bd, script: 0x52, flags: 0x0},
  2263. 216: {lang: 0x1af, script: 0x52, flags: 0x0},
  2264. 217: {lang: 0x1b4, script: 0x20, flags: 0x0},
  2265. 223: {lang: 0x15, script: 0x5, flags: 0x0},
  2266. 224: {lang: 0x9d, script: 0x52, flags: 0x0},
  2267. 226: {lang: 0x9d, script: 0x52, flags: 0x0},
  2268. 227: {lang: 0xaf, script: 0x52, flags: 0x0},
  2269. 228: {lang: 0x26e, script: 0x52, flags: 0x0},
  2270. 229: {lang: 0xaa, script: 0x52, flags: 0x0},
  2271. 230: {lang: 0x3b, script: 0x3, flags: 0x1},
  2272. 231: {lang: 0x3e, script: 0x2, flags: 0x1},
  2273. 232: {lang: 0xaf, script: 0x52, flags: 0x0},
  2274. 234: {lang: 0x9d, script: 0x52, flags: 0x0},
  2275. 235: {lang: 0x15, script: 0x5, flags: 0x0},
  2276. 236: {lang: 0x1ef, script: 0x52, flags: 0x0},
  2277. 238: {lang: 0x1dc, script: 0x52, flags: 0x0},
  2278. 239: {lang: 0xca, script: 0x52, flags: 0x0},
  2279. 241: {lang: 0x15, script: 0x5, flags: 0x0},
  2280. 256: {lang: 0xaf, script: 0x52, flags: 0x0},
  2281. 258: {lang: 0x40, script: 0x2, flags: 0x1},
  2282. 259: {lang: 0x23b, script: 0x1e, flags: 0x0},
  2283. 260: {lang: 0x42, script: 0x2, flags: 0x1},
  2284. 261: {lang: 0x20a, script: 0x52, flags: 0x0},
  2285. 262: {lang: 0x15, script: 0x5, flags: 0x0},
  2286. 264: {lang: 0xaf, script: 0x52, flags: 0x0},
  2287. 265: {lang: 0x15, script: 0x5, flags: 0x0},
  2288. 266: {lang: 0x44, script: 0x2, flags: 0x1},
  2289. 269: {lang: 0x22c, script: 0x52, flags: 0x0},
  2290. 270: {lang: 0x1af, script: 0x52, flags: 0x0},
  2291. 271: {lang: 0x46, script: 0x2, flags: 0x1},
  2292. 273: {lang: 0x103, script: 0x52, flags: 0x0},
  2293. 274: {lang: 0xaf, script: 0x52, flags: 0x0},
  2294. 275: {lang: 0x238, script: 0x52, flags: 0x0},
  2295. 276: {lang: 0x1bd, script: 0x52, flags: 0x0},
  2296. 278: {lang: 0x1ef, script: 0x52, flags: 0x0},
  2297. 280: {lang: 0x9d, script: 0x52, flags: 0x0},
  2298. 282: {lang: 0x48, script: 0x2, flags: 0x1},
  2299. 286: {lang: 0xaf, script: 0x52, flags: 0x0},
  2300. 287: {lang: 0xaf, script: 0x52, flags: 0x0},
  2301. 288: {lang: 0xaf, script: 0x52, flags: 0x0},
  2302. 289: {lang: 0x4a, script: 0x3, flags: 0x1},
  2303. 290: {lang: 0x4d, script: 0x2, flags: 0x1},
  2304. 291: {lang: 0x265, script: 0x52, flags: 0x0},
  2305. 292: {lang: 0x1ef, script: 0x52, flags: 0x0},
  2306. 293: {lang: 0x264, script: 0x52, flags: 0x0},
  2307. 294: {lang: 0x4f, script: 0x2, flags: 0x1},
  2308. 295: {lang: 0x26c, script: 0x52, flags: 0x0},
  2309. 297: {lang: 0x51, script: 0x4, flags: 0x1},
  2310. 299: {lang: 0x27c, script: 0x52, flags: 0x0},
  2311. 300: {lang: 0x55, script: 0x2, flags: 0x1},
  2312. 301: {lang: 0x248, script: 0x52, flags: 0x0},
  2313. 302: {lang: 0x57, script: 0x3, flags: 0x1},
  2314. 303: {lang: 0x248, script: 0x52, flags: 0x0},
  2315. 306: {lang: 0x2b9, script: 0x37, flags: 0x2},
  2316. 307: {lang: 0x9d, script: 0x52, flags: 0x0},
  2317. 308: {lang: 0x28d, script: 0x52, flags: 0x0},
  2318. 309: {lang: 0x103, script: 0x52, flags: 0x0},
  2319. 312: {lang: 0x9d, script: 0x52, flags: 0x0},
  2320. 315: {lang: 0x292, script: 0x52, flags: 0x0},
  2321. 316: {lang: 0x41, script: 0x52, flags: 0x0},
  2322. 317: {lang: 0xaf, script: 0x52, flags: 0x0},
  2323. 319: {lang: 0x22f, script: 0x52, flags: 0x0},
  2324. 330: {lang: 0x5a, script: 0x2, flags: 0x1},
  2325. 347: {lang: 0x15, script: 0x5, flags: 0x0},
  2326. 348: {lang: 0x5c, script: 0x2, flags: 0x1},
  2327. 353: {lang: 0x236, script: 0x52, flags: 0x0},
  2328. }
  2329. // likelyRegionList holds lists info associated with likelyRegion.
  2330. // Size: 376 bytes, 94 elements
  2331. var likelyRegionList = [94]likelyLangScript{
  2332. 0: {lang: 0xa4, script: 0x5, flags: 0x0},
  2333. 1: {lang: 0x264, script: 0x52, flags: 0x0},
  2334. 2: {lang: 0x23a, script: 0x52, flags: 0x0},
  2335. 3: {lang: 0x18c, script: 0x1e, flags: 0x0},
  2336. 4: {lang: 0xf3, script: 0x8, flags: 0x0},
  2337. 5: {lang: 0x145, script: 0x52, flags: 0x0},
  2338. 6: {lang: 0x54, script: 0x52, flags: 0x0},
  2339. 7: {lang: 0x23b, script: 0x1e, flags: 0x0},
  2340. 8: {lang: 0x93, script: 0xd6, flags: 0x0},
  2341. 9: {lang: 0x1b4, script: 0x20, flags: 0x0},
  2342. 10: {lang: 0x2c4, script: 0x34, flags: 0x0},
  2343. 11: {lang: 0x284, script: 0x5, flags: 0x0},
  2344. 12: {lang: 0x2bd, script: 0x35, flags: 0x0},
  2345. 13: {lang: 0x2be, script: 0x52, flags: 0x0},
  2346. 14: {lang: 0x157, script: 0xd5, flags: 0x0},
  2347. 15: {lang: 0x9a, script: 0x2d, flags: 0x0},
  2348. 16: {lang: 0x26f, script: 0x52, flags: 0x0},
  2349. 17: {lang: 0x15, script: 0x5, flags: 0x0},
  2350. 18: {lang: 0xaf, script: 0x52, flags: 0x0},
  2351. 19: {lang: 0x11, script: 0x27, flags: 0x0},
  2352. 20: {lang: 0x9b, script: 0x52, flags: 0x0},
  2353. 21: {lang: 0x141, script: 0x5, flags: 0x2},
  2354. 22: {lang: 0x2b9, script: 0x37, flags: 0x2},
  2355. 23: {lang: 0x111, script: 0x29, flags: 0x0},
  2356. 24: {lang: 0x2, script: 0x1e, flags: 0x0},
  2357. 25: {lang: 0x145, script: 0x52, flags: 0x0},
  2358. 26: {lang: 0x9a, script: 0x2d, flags: 0x0},
  2359. 27: {lang: 0x18c, script: 0x1e, flags: 0x0},
  2360. 28: {lang: 0xf8, script: 0x52, flags: 0x0},
  2361. 29: {lang: 0x19a, script: 0x5, flags: 0x0},
  2362. 30: {lang: 0xe1, script: 0x20, flags: 0x0},
  2363. 31: {lang: 0x28c, script: 0x5, flags: 0x0},
  2364. 32: {lang: 0x129, script: 0x6b, flags: 0x0},
  2365. 33: {lang: 0xa4, script: 0x5, flags: 0x0},
  2366. 34: {lang: 0x264, script: 0x52, flags: 0x0},
  2367. 35: {lang: 0x133, script: 0x46, flags: 0x0},
  2368. 36: {lang: 0x6d, script: 0x5, flags: 0x0},
  2369. 37: {lang: 0x11c, script: 0xd5, flags: 0x0},
  2370. 38: {lang: 0x15, script: 0x5, flags: 0x0},
  2371. 39: {lang: 0xaf, script: 0x52, flags: 0x0},
  2372. 40: {lang: 0x165, script: 0x4f, flags: 0x0},
  2373. 41: {lang: 0x11c, script: 0xd5, flags: 0x0},
  2374. 42: {lang: 0x15, script: 0x5, flags: 0x0},
  2375. 43: {lang: 0xaf, script: 0x52, flags: 0x0},
  2376. 44: {lang: 0x203, script: 0x52, flags: 0x0},
  2377. 45: {lang: 0x286, script: 0x1e, flags: 0x0},
  2378. 46: {lang: 0x18c, script: 0x1e, flags: 0x0},
  2379. 47: {lang: 0x23a, script: 0x52, flags: 0x0},
  2380. 48: {lang: 0x1a5, script: 0x6b, flags: 0x0},
  2381. 49: {lang: 0x114, script: 0x52, flags: 0x0},
  2382. 50: {lang: 0x18f, script: 0x1e, flags: 0x0},
  2383. 51: {lang: 0x12f, script: 0x5, flags: 0x0},
  2384. 52: {lang: 0x2c4, script: 0x35, flags: 0x0},
  2385. 53: {lang: 0x1ef, script: 0x52, flags: 0x0},
  2386. 54: {lang: 0x15, script: 0x5, flags: 0x0},
  2387. 55: {lang: 0xaf, script: 0x52, flags: 0x0},
  2388. 56: {lang: 0x182, script: 0x52, flags: 0x0},
  2389. 57: {lang: 0x28c, script: 0x5, flags: 0x0},
  2390. 58: {lang: 0x40, script: 0x20, flags: 0x0},
  2391. 59: {lang: 0x28c, script: 0x5, flags: 0x0},
  2392. 60: {lang: 0x28c, script: 0x5, flags: 0x0},
  2393. 61: {lang: 0x58, script: 0x20, flags: 0x0},
  2394. 62: {lang: 0x1e7, script: 0x52, flags: 0x0},
  2395. 63: {lang: 0x2f, script: 0x1e, flags: 0x0},
  2396. 64: {lang: 0x203, script: 0x52, flags: 0x0},
  2397. 65: {lang: 0x38, script: 0x1e, flags: 0x0},
  2398. 66: {lang: 0x207, script: 0x1e, flags: 0x0},
  2399. 67: {lang: 0x13f, script: 0x52, flags: 0x0},
  2400. 68: {lang: 0x247, script: 0x52, flags: 0x0},
  2401. 69: {lang: 0x2b9, script: 0x37, flags: 0x0},
  2402. 70: {lang: 0x22a, script: 0x52, flags: 0x0},
  2403. 71: {lang: 0x286, script: 0x1e, flags: 0x0},
  2404. 72: {lang: 0x15, script: 0x5, flags: 0x0},
  2405. 73: {lang: 0xaf, script: 0x52, flags: 0x0},
  2406. 74: {lang: 0x25d, script: 0xd5, flags: 0x0},
  2407. 75: {lang: 0x181, script: 0x5, flags: 0x0},
  2408. 76: {lang: 0x191, script: 0x6b, flags: 0x0},
  2409. 77: {lang: 0x25c, script: 0x1e, flags: 0x0},
  2410. 78: {lang: 0xa4, script: 0x5, flags: 0x0},
  2411. 79: {lang: 0x15, script: 0x5, flags: 0x0},
  2412. 80: {lang: 0xaf, script: 0x52, flags: 0x0},
  2413. 81: {lang: 0x26f, script: 0x52, flags: 0x0},
  2414. 82: {lang: 0x24, script: 0x5, flags: 0x0},
  2415. 83: {lang: 0x118, script: 0x1e, flags: 0x0},
  2416. 84: {lang: 0x3b, script: 0x2d, flags: 0x0},
  2417. 85: {lang: 0x2c4, script: 0x35, flags: 0x0},
  2418. 86: {lang: 0x271, script: 0x52, flags: 0x0},
  2419. 87: {lang: 0x286, script: 0x1e, flags: 0x0},
  2420. 88: {lang: 0x2b9, script: 0x37, flags: 0x0},
  2421. 89: {lang: 0x1e7, script: 0x52, flags: 0x0},
  2422. 90: {lang: 0x23a, script: 0x52, flags: 0x0},
  2423. 91: {lang: 0x23b, script: 0x1e, flags: 0x0},
  2424. 92: {lang: 0xaf, script: 0x52, flags: 0x0},
  2425. 93: {lang: 0x249, script: 0x5, flags: 0x0},
  2426. }
  2427. type likelyTag struct {
  2428. lang uint16
  2429. region uint16
  2430. script uint8
  2431. }
  2432. // Size: 192 bytes, 32 elements
  2433. var likelyRegionGroup = [32]likelyTag{
  2434. 1: {lang: 0x9b, region: 0xd4, script: 0x52},
  2435. 2: {lang: 0x9b, region: 0x132, script: 0x52},
  2436. 3: {lang: 0x1ef, region: 0x40, script: 0x52},
  2437. 4: {lang: 0x9b, region: 0x2e, script: 0x52},
  2438. 5: {lang: 0x9b, region: 0xd4, script: 0x52},
  2439. 6: {lang: 0x9d, region: 0xcd, script: 0x52},
  2440. 7: {lang: 0x248, region: 0x12d, script: 0x52},
  2441. 8: {lang: 0x15, region: 0x6a, script: 0x5},
  2442. 9: {lang: 0x248, region: 0x4a, script: 0x52},
  2443. 10: {lang: 0x9b, region: 0x15e, script: 0x52},
  2444. 11: {lang: 0x9b, region: 0x132, script: 0x52},
  2445. 12: {lang: 0x9b, region: 0x132, script: 0x52},
  2446. 13: {lang: 0x9d, region: 0x58, script: 0x52},
  2447. 14: {lang: 0x2c4, region: 0x52, script: 0x34},
  2448. 15: {lang: 0xe1, region: 0x97, script: 0x20},
  2449. 16: {lang: 0xf8, region: 0x93, script: 0x52},
  2450. 17: {lang: 0x103, region: 0x9c, script: 0x52},
  2451. 18: {lang: 0x9b, region: 0x2e, script: 0x52},
  2452. 19: {lang: 0x9b, region: 0xe4, script: 0x52},
  2453. 20: {lang: 0x9b, region: 0x88, script: 0x52},
  2454. 21: {lang: 0x22f, region: 0x13f, script: 0x52},
  2455. 22: {lang: 0x2c4, region: 0x52, script: 0x34},
  2456. 23: {lang: 0x28d, region: 0x134, script: 0x52},
  2457. 24: {lang: 0x15, region: 0x106, script: 0x5},
  2458. 25: {lang: 0x207, region: 0x104, script: 0x1e},
  2459. 26: {lang: 0x207, region: 0x104, script: 0x1e},
  2460. 27: {lang: 0x9b, region: 0x79, script: 0x52},
  2461. 28: {lang: 0x85, region: 0x5f, script: 0x52},
  2462. 29: {lang: 0x9d, region: 0x1e, script: 0x52},
  2463. 30: {lang: 0x9b, region: 0x98, script: 0x52},
  2464. 31: {lang: 0x9b, region: 0x79, script: 0x52},
  2465. }
  2466. type mutualIntelligibility struct {
  2467. want uint16
  2468. have uint16
  2469. conf uint8
  2470. oneway bool
  2471. }
  2472. type scriptIntelligibility struct {
  2473. lang uint16
  2474. want uint8
  2475. have uint8
  2476. conf uint8
  2477. }
  2478. // matchLang holds pairs of langIDs of base languages that are typically
  2479. // mutually intelligible. Each pair is associated with a confidence and
  2480. // whether the intelligibility goes one or both ways.
  2481. // Size: 708 bytes, 118 elements
  2482. var matchLang = [118]mutualIntelligibility{
  2483. 0: {want: 0x1c1, have: 0x1af, conf: 0x2, oneway: false},
  2484. 1: {want: 0x145, have: 0x6f, conf: 0x2, oneway: false},
  2485. 2: {want: 0xee, have: 0x54, conf: 0x2, oneway: false},
  2486. 3: {want: 0x225, have: 0x54, conf: 0x2, oneway: false},
  2487. 4: {want: 0x23b, have: 0x54, conf: 0x2, oneway: false},
  2488. 5: {want: 0x225, have: 0xee, conf: 0x2, oneway: false},
  2489. 6: {want: 0x23b, have: 0xee, conf: 0x2, oneway: false},
  2490. 7: {want: 0x225, have: 0x23b, conf: 0x2, oneway: false},
  2491. 8: {want: 0x241, have: 0x1, conf: 0x2, oneway: false},
  2492. 9: {want: 0xd2, have: 0x85, conf: 0x2, oneway: true},
  2493. 10: {want: 0x154, have: 0x85, conf: 0x2, oneway: true},
  2494. 11: {want: 0x80, have: 0x1c1, conf: 0x2, oneway: false},
  2495. 12: {want: 0x80, have: 0x1af, conf: 0x2, oneway: false},
  2496. 13: {want: 0x6f, have: 0x145, conf: 0x2, oneway: false},
  2497. 14: {want: 0x2, have: 0x207, conf: 0x2, oneway: true},
  2498. 15: {want: 0x5, have: 0x9b, conf: 0x2, oneway: true},
  2499. 16: {want: 0xa, have: 0x1bd, conf: 0x2, oneway: true},
  2500. 17: {want: 0xd, have: 0x9b, conf: 0x2, oneway: true},
  2501. 18: {want: 0x23, have: 0x9d, conf: 0x2, oneway: true},
  2502. 19: {want: 0x24, have: 0x207, conf: 0x2, oneway: true},
  2503. 20: {want: 0x2f, have: 0x207, conf: 0x2, oneway: true},
  2504. 21: {want: 0x31, have: 0x9b, conf: 0x2, oneway: true},
  2505. 22: {want: 0x3c, have: 0xe1, conf: 0x2, oneway: true},
  2506. 23: {want: 0x4b, have: 0x9b, conf: 0x2, oneway: true},
  2507. 24: {want: 0x50, have: 0xaf, conf: 0x2, oneway: true},
  2508. 25: {want: 0x65, have: 0xaa, conf: 0x2, oneway: true},
  2509. 26: {want: 0x6c, have: 0x9b, conf: 0x2, oneway: true},
  2510. 27: {want: 0x6f, have: 0x15, conf: 0x2, oneway: true},
  2511. 28: {want: 0x70, have: 0xaf, conf: 0x2, oneway: true},
  2512. 29: {want: 0x78, have: 0xaf, conf: 0x2, oneway: true},
  2513. 30: {want: 0x7f, have: 0x9b, conf: 0x2, oneway: true},
  2514. 31: {want: 0x95, have: 0x9b, conf: 0x2, oneway: true},
  2515. 32: {want: 0x9c, have: 0x9b, conf: 0x2, oneway: true},
  2516. 33: {want: 0x9f, have: 0xa8, conf: 0x2, oneway: true},
  2517. 34: {want: 0xa1, have: 0x9d, conf: 0x2, oneway: true},
  2518. 35: {want: 0xad, have: 0x80, conf: 0x2, oneway: true},
  2519. 36: {want: 0xb9, have: 0x1bd, conf: 0x2, oneway: true},
  2520. 37: {want: 0xba, have: 0x9b, conf: 0x2, oneway: true},
  2521. 38: {want: 0xbb, have: 0x9b, conf: 0x2, oneway: true},
  2522. 39: {want: 0xc2, have: 0x9b, conf: 0x2, oneway: true},
  2523. 40: {want: 0xc8, have: 0x9d, conf: 0x2, oneway: true},
  2524. 41: {want: 0xca, have: 0x9d, conf: 0x2, oneway: true},
  2525. 42: {want: 0xd3, have: 0xe1, conf: 0x2, oneway: true},
  2526. 43: {want: 0xdc, have: 0x9b, conf: 0x2, oneway: true},
  2527. 44: {want: 0xde, have: 0x9b, conf: 0x2, oneway: true},
  2528. 45: {want: 0xf1, have: 0xaf, conf: 0x2, oneway: true},
  2529. 46: {want: 0xf3, have: 0x207, conf: 0x2, oneway: true},
  2530. 47: {want: 0xf5, have: 0x9b, conf: 0x2, oneway: true},
  2531. 48: {want: 0xfa, have: 0x9b, conf: 0x2, oneway: true},
  2532. 49: {want: 0x102, have: 0x9b, conf: 0x2, oneway: true},
  2533. 50: {want: 0x10f, have: 0xf8, conf: 0x2, oneway: true},
  2534. 51: {want: 0x111, have: 0x9b, conf: 0x2, oneway: true},
  2535. 52: {want: 0x122, have: 0xaf, conf: 0x2, oneway: true},
  2536. 53: {want: 0x12f, have: 0x207, conf: 0x2, oneway: true},
  2537. 54: {want: 0x133, have: 0x9b, conf: 0x2, oneway: true},
  2538. 55: {want: 0x135, have: 0x9b, conf: 0x2, oneway: true},
  2539. 56: {want: 0x13d, have: 0x9b, conf: 0x2, oneway: true},
  2540. 57: {want: 0x145, have: 0x26f, conf: 0x2, oneway: true},
  2541. 58: {want: 0x14d, have: 0x207, conf: 0x2, oneway: true},
  2542. 59: {want: 0x14e, have: 0x103, conf: 0x2, oneway: true},
  2543. 60: {want: 0x15a, have: 0x9b, conf: 0x2, oneway: true},
  2544. 61: {want: 0x164, have: 0xaf, conf: 0x2, oneway: true},
  2545. 62: {want: 0x165, have: 0x9b, conf: 0x2, oneway: true},
  2546. 63: {want: 0x167, have: 0x9b, conf: 0x2, oneway: true},
  2547. 64: {want: 0x16c, have: 0xaf, conf: 0x2, oneway: true},
  2548. 65: {want: 0x182, have: 0x9b, conf: 0x2, oneway: true},
  2549. 66: {want: 0x183, have: 0xaf, conf: 0x2, oneway: true},
  2550. 67: {want: 0x189, have: 0x9b, conf: 0x2, oneway: true},
  2551. 68: {want: 0x18c, have: 0x38, conf: 0x2, oneway: true},
  2552. 69: {want: 0x18d, have: 0x9b, conf: 0x2, oneway: true},
  2553. 70: {want: 0x18f, have: 0x207, conf: 0x2, oneway: true},
  2554. 71: {want: 0x196, have: 0xe1, conf: 0x2, oneway: true},
  2555. 72: {want: 0x19a, have: 0xf8, conf: 0x2, oneway: true},
  2556. 73: {want: 0x19b, have: 0x9b, conf: 0x2, oneway: true},
  2557. 74: {want: 0x1a5, have: 0x9b, conf: 0x2, oneway: true},
  2558. 75: {want: 0x1b4, have: 0x9b, conf: 0x2, oneway: true},
  2559. 76: {want: 0x1bf, have: 0x1af, conf: 0x2, oneway: false},
  2560. 77: {want: 0x1bf, have: 0x1c1, conf: 0x2, oneway: true},
  2561. 78: {want: 0x1c8, have: 0x9b, conf: 0x2, oneway: true},
  2562. 79: {want: 0x1cc, have: 0x9b, conf: 0x2, oneway: true},
  2563. 80: {want: 0x1ce, have: 0x9b, conf: 0x2, oneway: true},
  2564. 81: {want: 0x1d0, have: 0xaf, conf: 0x2, oneway: true},
  2565. 82: {want: 0x1d2, have: 0x9b, conf: 0x2, oneway: true},
  2566. 83: {want: 0x1d3, have: 0x9b, conf: 0x2, oneway: true},
  2567. 84: {want: 0x1d7, have: 0x9b, conf: 0x2, oneway: true},
  2568. 85: {want: 0x1de, have: 0x9b, conf: 0x2, oneway: true},
  2569. 86: {want: 0x1ee, have: 0x9b, conf: 0x2, oneway: true},
  2570. 87: {want: 0x1f1, have: 0x9d, conf: 0x2, oneway: true},
  2571. 88: {want: 0x1fc, have: 0x85, conf: 0x2, oneway: true},
  2572. 89: {want: 0x201, have: 0x9b, conf: 0x2, oneway: true},
  2573. 90: {want: 0x20a, have: 0xaf, conf: 0x2, oneway: true},
  2574. 91: {want: 0x20d, have: 0xe1, conf: 0x2, oneway: true},
  2575. 92: {want: 0x21a, have: 0x9b, conf: 0x2, oneway: true},
  2576. 93: {want: 0x228, have: 0x9b, conf: 0x2, oneway: true},
  2577. 94: {want: 0x236, have: 0x9b, conf: 0x2, oneway: true},
  2578. 95: {want: 0x238, have: 0x9b, conf: 0x2, oneway: true},
  2579. 96: {want: 0x23a, have: 0x9b, conf: 0x2, oneway: true},
  2580. 97: {want: 0x242, have: 0x9b, conf: 0x2, oneway: true},
  2581. 98: {want: 0x244, have: 0xf8, conf: 0x2, oneway: true},
  2582. 99: {want: 0x248, have: 0x9b, conf: 0x2, oneway: true},
  2583. 100: {want: 0x251, have: 0x9b, conf: 0x2, oneway: true},
  2584. 101: {want: 0x258, have: 0x9b, conf: 0x2, oneway: true},
  2585. 102: {want: 0x25c, have: 0x207, conf: 0x2, oneway: true},
  2586. 103: {want: 0x261, have: 0x9b, conf: 0x2, oneway: true},
  2587. 104: {want: 0x264, have: 0x207, conf: 0x2, oneway: true},
  2588. 105: {want: 0x361a, have: 0x9b, conf: 0x2, oneway: true},
  2589. 106: {want: 0x26b, have: 0x9b, conf: 0x2, oneway: true},
  2590. 107: {want: 0x26c, have: 0x9b, conf: 0x2, oneway: true},
  2591. 108: {want: 0x277, have: 0x207, conf: 0x2, oneway: true},
  2592. 109: {want: 0x27b, have: 0x9b, conf: 0x2, oneway: true},
  2593. 110: {want: 0x284, have: 0x2c4, conf: 0x2, oneway: true},
  2594. 111: {want: 0x28c, have: 0x9b, conf: 0x2, oneway: true},
  2595. 112: {want: 0x28d, have: 0x207, conf: 0x2, oneway: true},
  2596. 113: {want: 0x2a4, have: 0xaf, conf: 0x2, oneway: true},
  2597. 114: {want: 0x2a9, have: 0x9b, conf: 0x2, oneway: true},
  2598. 115: {want: 0x2b9, have: 0x9b, conf: 0x2, oneway: true},
  2599. 116: {want: 0x2ba, have: 0x9b, conf: 0x2, oneway: true},
  2600. 117: {want: 0x2c6, have: 0x9b, conf: 0x2, oneway: true},
  2601. }
  2602. // matchScript holds pairs of scriptIDs where readers of one script
  2603. // can typically also read the other. Each is associated with a confidence.
  2604. // Size: 24 bytes, 4 elements
  2605. var matchScript = [4]scriptIntelligibility{
  2606. 0: {lang: 0x23b, want: 0x52, have: 0x1e, conf: 0x2},
  2607. 1: {lang: 0x23b, want: 0x1e, have: 0x52, conf: 0x2},
  2608. 2: {lang: 0x0, want: 0x34, have: 0x35, conf: 0x1},
  2609. 3: {lang: 0x0, want: 0x35, have: 0x34, conf: 0x1},
  2610. }
  2611. // Size: 128 bytes, 32 elements
  2612. var regionContainment = [32]uint32{
  2613. 0xffffffff, 0x000007a2, 0x00003044, 0x00000008,
  2614. 0x403c0010, 0x00000020, 0x00000040, 0x00000080,
  2615. 0x00000100, 0x00000200, 0x00000400, 0x2000384c,
  2616. 0x00001000, 0x00002000, 0x00004000, 0x00008000,
  2617. 0x00010000, 0x00020000, 0x00040000, 0x00080000,
  2618. 0x00100000, 0x00200000, 0x01c1c000, 0x00800000,
  2619. 0x01000000, 0x1e020000, 0x04000000, 0x08000000,
  2620. 0x10000000, 0x20002048, 0x40000000, 0x80000000,
  2621. }
  2622. // regionInclusion maps region identifiers to sets of regions in regionInclusionBits,
  2623. // where each set holds all groupings that are directly connected in a region
  2624. // containment graph.
  2625. // Size: 355 bytes, 355 elements
  2626. var regionInclusion = [355]uint8{
  2627. // Entry 0 - 3F
  2628. 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06,
  2629. 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e,
  2630. 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16,
  2631. 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x20,
  2632. 0x21, 0x22, 0x23, 0x24, 0x25, 0x25, 0x22, 0x23,
  2633. 0x25, 0x26, 0x21, 0x27, 0x28, 0x29, 0x2a, 0x25,
  2634. 0x2b, 0x23, 0x22, 0x25, 0x24, 0x29, 0x2c, 0x2d,
  2635. 0x23, 0x2e, 0x2c, 0x25, 0x2f, 0x30, 0x27, 0x25,
  2636. // Entry 40 - 7F
  2637. 0x27, 0x25, 0x24, 0x30, 0x21, 0x31, 0x32, 0x33,
  2638. 0x2f, 0x21, 0x26, 0x26, 0x26, 0x34, 0x2c, 0x28,
  2639. 0x27, 0x26, 0x35, 0x27, 0x21, 0x33, 0x22, 0x20,
  2640. 0x25, 0x2c, 0x25, 0x21, 0x36, 0x2d, 0x34, 0x29,
  2641. 0x21, 0x2e, 0x37, 0x25, 0x25, 0x20, 0x38, 0x38,
  2642. 0x27, 0x37, 0x38, 0x38, 0x2e, 0x39, 0x2e, 0x1f,
  2643. 0x37, 0x3a, 0x27, 0x3b, 0x2b, 0x20, 0x29, 0x34,
  2644. 0x26, 0x37, 0x25, 0x23, 0x27, 0x2b, 0x2c, 0x22,
  2645. // Entry 80 - BF
  2646. 0x2f, 0x2c, 0x2c, 0x25, 0x26, 0x39, 0x21, 0x33,
  2647. 0x3b, 0x2c, 0x27, 0x35, 0x21, 0x33, 0x39, 0x25,
  2648. 0x2d, 0x20, 0x38, 0x30, 0x37, 0x23, 0x2b, 0x24,
  2649. 0x21, 0x23, 0x24, 0x2b, 0x39, 0x2b, 0x25, 0x23,
  2650. 0x35, 0x20, 0x2e, 0x3c, 0x30, 0x3b, 0x2e, 0x25,
  2651. 0x35, 0x35, 0x23, 0x25, 0x3c, 0x30, 0x23, 0x25,
  2652. 0x34, 0x24, 0x2c, 0x31, 0x37, 0x29, 0x37, 0x38,
  2653. 0x38, 0x34, 0x32, 0x22, 0x25, 0x2e, 0x3b, 0x20,
  2654. // Entry C0 - FF
  2655. 0x22, 0x2c, 0x30, 0x35, 0x35, 0x3b, 0x25, 0x2c,
  2656. 0x25, 0x39, 0x2e, 0x24, 0x2e, 0x33, 0x30, 0x2e,
  2657. 0x31, 0x3a, 0x2c, 0x2a, 0x2c, 0x20, 0x33, 0x29,
  2658. 0x2b, 0x24, 0x20, 0x3b, 0x23, 0x28, 0x2a, 0x23,
  2659. 0x33, 0x20, 0x27, 0x28, 0x3a, 0x30, 0x24, 0x2d,
  2660. 0x2f, 0x28, 0x25, 0x23, 0x39, 0x20, 0x3b, 0x27,
  2661. 0x20, 0x23, 0x20, 0x20, 0x1e, 0x20, 0x20, 0x20,
  2662. 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
  2663. // Entry 100 - 13F
  2664. 0x2e, 0x20, 0x2d, 0x22, 0x32, 0x2e, 0x23, 0x3a,
  2665. 0x2e, 0x38, 0x37, 0x30, 0x2c, 0x39, 0x2b, 0x2d,
  2666. 0x2c, 0x22, 0x2c, 0x2e, 0x27, 0x2e, 0x26, 0x32,
  2667. 0x33, 0x25, 0x23, 0x31, 0x21, 0x25, 0x26, 0x21,
  2668. 0x2c, 0x30, 0x3c, 0x28, 0x30, 0x3c, 0x38, 0x28,
  2669. 0x30, 0x23, 0x25, 0x28, 0x35, 0x2e, 0x32, 0x2e,
  2670. 0x20, 0x21, 0x2f, 0x27, 0x3c, 0x22, 0x25, 0x20,
  2671. 0x27, 0x25, 0x25, 0x30, 0x3a, 0x28, 0x20, 0x28,
  2672. // Entry 140 - 17F
  2673. 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
  2674. 0x20, 0x20, 0x22, 0x20, 0x20, 0x20, 0x20, 0x20,
  2675. 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
  2676. 0x20, 0x20, 0x23, 0x23, 0x2e, 0x22, 0x31, 0x2e,
  2677. 0x26, 0x2e, 0x20,
  2678. }
  2679. // regionInclusionBits is an array of bit vectors where every vector represents
  2680. // a set of region groupings. These sets are used to compute the distance
  2681. // between two regions for the purpose of language matching.
  2682. // Size: 288 bytes, 72 elements
  2683. var regionInclusionBits = [72]uint32{
  2684. // Entry 0 - 1F
  2685. 0x82400813, 0x000007a3, 0x00003844, 0x20000808,
  2686. 0x403c0011, 0x00000022, 0x20000844, 0x00000082,
  2687. 0x00000102, 0x00000202, 0x00000402, 0x2000384d,
  2688. 0x00001804, 0x20002804, 0x00404000, 0x00408000,
  2689. 0x00410000, 0x02020000, 0x00040010, 0x00080010,
  2690. 0x00100010, 0x00200010, 0x01c1c001, 0x00c00000,
  2691. 0x01400000, 0x1e020001, 0x06000000, 0x0a000000,
  2692. 0x12000000, 0x20002848, 0x40000010, 0x80000001,
  2693. // Entry 20 - 3F
  2694. 0x00000001, 0x40000000, 0x00020000, 0x01000000,
  2695. 0x00008000, 0x00002000, 0x00000200, 0x00000008,
  2696. 0x00200000, 0x90000000, 0x00040000, 0x08000000,
  2697. 0x00000020, 0x84000000, 0x00000080, 0x00001000,
  2698. 0x00010000, 0x00000400, 0x04000000, 0x00000040,
  2699. 0x10000000, 0x00004000, 0x81000000, 0x88000000,
  2700. 0x00000100, 0x80020000, 0x00080000, 0x00100000,
  2701. 0x00800000, 0xffffffff, 0x82400fb3, 0xc27c0813,
  2702. // Entry 40 - 5F
  2703. 0xa240385f, 0x83c1c813, 0x9e420813, 0x92000001,
  2704. 0x86000001, 0x81400001, 0x8a000001, 0x82020001,
  2705. }
  2706. // regionInclusionNext marks, for each entry in regionInclusionBits, the set of
  2707. // all groups that are reachable from the groups set in the respective entry.
  2708. // Size: 72 bytes, 72 elements
  2709. var regionInclusionNext = [72]uint8{
  2710. // Entry 0 - 3F
  2711. 0x3d, 0x3e, 0x0b, 0x0b, 0x3f, 0x01, 0x0b, 0x01,
  2712. 0x01, 0x01, 0x01, 0x40, 0x0b, 0x0b, 0x16, 0x16,
  2713. 0x16, 0x19, 0x04, 0x04, 0x04, 0x04, 0x41, 0x16,
  2714. 0x16, 0x42, 0x19, 0x19, 0x19, 0x0b, 0x04, 0x00,
  2715. 0x00, 0x1e, 0x11, 0x18, 0x0f, 0x0d, 0x09, 0x03,
  2716. 0x15, 0x43, 0x12, 0x1b, 0x05, 0x44, 0x07, 0x0c,
  2717. 0x10, 0x0a, 0x1a, 0x06, 0x1c, 0x0e, 0x45, 0x46,
  2718. 0x08, 0x47, 0x13, 0x14, 0x17, 0x3d, 0x3d, 0x3d,
  2719. // Entry 40 - 7F
  2720. 0x3d, 0x3d, 0x3d, 0x42, 0x42, 0x41, 0x42, 0x42,
  2721. }
  2722. type parentRel struct {
  2723. lang uint16
  2724. script uint8
  2725. maxScript uint8
  2726. toRegion uint16
  2727. fromRegion []uint16
  2728. }
  2729. // Size: 412 bytes, 5 elements
  2730. var parents = [5]parentRel{
  2731. 0: {lang: 0x9b, script: 0x0, maxScript: 0x52, toRegion: 0x1, fromRegion: []uint16{0x1a, 0x24, 0x25, 0x2e, 0x33, 0x35, 0x3c, 0x41, 0x45, 0x47, 0x48, 0x49, 0x4f, 0x51, 0x5b, 0x5c, 0x60, 0x63, 0x6c, 0x71, 0x72, 0x73, 0x79, 0x7a, 0x7d, 0x7e, 0x7f, 0x81, 0x8a, 0x8b, 0x94, 0x95, 0x96, 0x97, 0x98, 0x9d, 0x9e, 0xa2, 0xa5, 0xa7, 0xab, 0xaf, 0xb2, 0xb3, 0xbd, 0xc4, 0xc8, 0xc9, 0xca, 0xcc, 0xce, 0xd0, 0xd3, 0xd4, 0xdb, 0xdd, 0xde, 0xe4, 0xe5, 0xe6, 0xe9, 0xee, 0x105, 0x107, 0x108, 0x109, 0x10b, 0x10c, 0x110, 0x115, 0x119, 0x11b, 0x11d, 0x123, 0x127, 0x12a, 0x12b, 0x12d, 0x12f, 0x136, 0x139, 0x13c, 0x13f, 0x15e, 0x15f, 0x161}},
  2732. 1: {lang: 0x9b, script: 0x0, maxScript: 0x52, toRegion: 0x1a, fromRegion: []uint16{0x2d, 0x4d, 0x5f, 0x62, 0x70, 0xd7, 0x10a, 0x10d}},
  2733. 2: {lang: 0x9d, script: 0x0, maxScript: 0x52, toRegion: 0x1e, fromRegion: []uint16{0x2b, 0x3e, 0x40, 0x50, 0x53, 0x55, 0x58, 0x64, 0x68, 0x87, 0x8d, 0xcd, 0xd6, 0xe0, 0xe2, 0xea, 0xef, 0x118, 0x132, 0x133, 0x138}},
  2734. 3: {lang: 0x1ef, script: 0x0, maxScript: 0x52, toRegion: 0xec, fromRegion: []uint16{0x29, 0x4d, 0x59, 0x84, 0x89, 0xb5, 0xc4, 0xcf, 0x116, 0x124}},
  2735. 4: {lang: 0x2c4, script: 0x35, maxScript: 0x35, toRegion: 0x8b, fromRegion: []uint16{0xc4}},
  2736. }
  2737. // Total table size 20315 bytes (19KiB); checksum: C16EF251