File: LocaleDataTables.cpp

package info (click to toggle)
android-platform-frameworks-base 1%3A7.0.0%2Br33-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 137,116 kB
  • sloc: java: 704,370; cpp: 206,670; xml: 185,778; python: 2,626; ansic: 486; sh: 291; makefile: 48; sed: 19
file content (1701 lines) | stat: -rw-r--r-- 68,889 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
// Auto-generated by frameworks/base/tools/localedata/extract_icu_data.py

const char SCRIPT_CODES[][4] = {
    /* 0  */ {'A', 'h', 'o', 'm'},
    /* 1  */ {'A', 'r', 'a', 'b'},
    /* 2  */ {'A', 'r', 'm', 'i'},
    /* 3  */ {'A', 'r', 'm', 'n'},
    /* 4  */ {'A', 'v', 's', 't'},
    /* 5  */ {'B', 'a', 'm', 'u'},
    /* 6  */ {'B', 'a', 's', 's'},
    /* 7  */ {'B', 'e', 'n', 'g'},
    /* 8  */ {'B', 'r', 'a', 'h'},
    /* 9  */ {'C', 'a', 'n', 's'},
    /* 10 */ {'C', 'a', 'r', 'i'},
    /* 11 */ {'C', 'h', 'a', 'm'},
    /* 12 */ {'C', 'h', 'e', 'r'},
    /* 13 */ {'C', 'o', 'p', 't'},
    /* 14 */ {'C', 'p', 'r', 't'},
    /* 15 */ {'C', 'y', 'r', 'l'},
    /* 16 */ {'D', 'e', 'v', 'a'},
    /* 17 */ {'E', 'g', 'y', 'p'},
    /* 18 */ {'E', 't', 'h', 'i'},
    /* 19 */ {'G', 'e', 'o', 'r'},
    /* 20 */ {'G', 'o', 't', 'h'},
    /* 21 */ {'G', 'r', 'e', 'k'},
    /* 22 */ {'G', 'u', 'j', 'r'},
    /* 23 */ {'G', 'u', 'r', 'u'},
    /* 24 */ {'H', 'a', 'n', 's'},
    /* 25 */ {'H', 'a', 'n', 't'},
    /* 26 */ {'H', 'a', 't', 'r'},
    /* 27 */ {'H', 'e', 'b', 'r'},
    /* 28 */ {'H', 'l', 'u', 'w'},
    /* 29 */ {'H', 'm', 'n', 'g'},
    /* 30 */ {'I', 't', 'a', 'l'},
    /* 31 */ {'J', 'p', 'a', 'n'},
    /* 32 */ {'K', 'a', 'l', 'i'},
    /* 33 */ {'K', 'a', 'n', 'a'},
    /* 34 */ {'K', 'h', 'a', 'r'},
    /* 35 */ {'K', 'h', 'm', 'r'},
    /* 36 */ {'K', 'n', 'd', 'a'},
    /* 37 */ {'K', 'o', 'r', 'e'},
    /* 38 */ {'K', 't', 'h', 'i'},
    /* 39 */ {'L', 'a', 'n', 'a'},
    /* 40 */ {'L', 'a', 'o', 'o'},
    /* 41 */ {'L', 'a', 't', 'n'},
    /* 42 */ {'L', 'e', 'p', 'c'},
    /* 43 */ {'L', 'i', 'n', 'a'},
    /* 44 */ {'L', 'i', 's', 'u'},
    /* 45 */ {'L', 'y', 'c', 'i'},
    /* 46 */ {'L', 'y', 'd', 'i'},
    /* 47 */ {'M', 'a', 'n', 'd'},
    /* 48 */ {'M', 'a', 'n', 'i'},
    /* 49 */ {'M', 'e', 'r', 'c'},
    /* 50 */ {'M', 'l', 'y', 'm'},
    /* 51 */ {'M', 'o', 'n', 'g'},
    /* 52 */ {'M', 'r', 'o', 'o'},
    /* 53 */ {'M', 'y', 'm', 'r'},
    /* 54 */ {'N', 'a', 'r', 'b'},
    /* 55 */ {'N', 'k', 'o', 'o'},
    /* 56 */ {'O', 'g', 'a', 'm'},
    /* 57 */ {'O', 'r', 'k', 'h'},
    /* 58 */ {'O', 'r', 'y', 'a'},
    /* 59 */ {'P', 'a', 'u', 'c'},
    /* 60 */ {'P', 'h', 'l', 'i'},
    /* 61 */ {'P', 'h', 'n', 'x'},
    /* 62 */ {'P', 'l', 'r', 'd'},
    /* 63 */ {'P', 'r', 't', 'i'},
    /* 64 */ {'R', 'u', 'n', 'r'},
    /* 65 */ {'S', 'a', 'm', 'r'},
    /* 66 */ {'S', 'a', 'r', 'b'},
    /* 67 */ {'S', 'a', 'u', 'r'},
    /* 68 */ {'S', 'g', 'n', 'w'},
    /* 69 */ {'S', 'i', 'n', 'h'},
    /* 70 */ {'S', 'o', 'r', 'a'},
    /* 71 */ {'S', 'y', 'r', 'c'},
    /* 72 */ {'T', 'a', 'l', 'e'},
    /* 73 */ {'T', 'a', 'l', 'u'},
    /* 74 */ {'T', 'a', 'm', 'l'},
    /* 75 */ {'T', 'a', 'v', 't'},
    /* 76 */ {'T', 'e', 'l', 'u'},
    /* 77 */ {'T', 'f', 'n', 'g'},
    /* 78 */ {'T', 'h', 'a', 'a'},
    /* 79 */ {'T', 'h', 'a', 'i'},
    /* 80 */ {'T', 'i', 'b', 't'},
    /* 81 */ {'U', 'g', 'a', 'r'},
    /* 82 */ {'V', 'a', 'i', 'i'},
    /* 83 */ {'X', 'p', 'e', 'o'},
    /* 84 */ {'X', 's', 'u', 'x'},
    /* 85 */ {'Y', 'i', 'i', 'i'},
    /* 86 */ {'~', '~', '~', 'A'},
    /* 87 */ {'~', '~', '~', 'B'},
};


const std::unordered_map<uint32_t, uint8_t> LIKELY_SCRIPTS({
    {0x61610000u, 41u}, // aa -> Latn
    {0x61620000u, 15u}, // ab -> Cyrl
    {0xC4200000u, 41u}, // abr -> Latn
    {0x90400000u, 41u}, // ace -> Latn
    {0x9C400000u, 41u}, // ach -> Latn
    {0x80600000u, 41u}, // ada -> Latn
    {0xE0600000u, 15u}, // ady -> Cyrl
    {0x61650000u,  4u}, // ae -> Avst
    {0x84800000u,  1u}, // aeb -> Arab
    {0x61660000u, 41u}, // af -> Latn
    {0xC0C00000u, 41u}, // agq -> Latn
    {0xB8E00000u,  0u}, // aho -> Ahom
    {0x616B0000u, 41u}, // ak -> Latn
    {0xA9400000u, 84u}, // akk -> Xsux
    {0xB5600000u, 41u}, // aln -> Latn
    {0xCD600000u, 15u}, // alt -> Cyrl
    {0x616D0000u, 18u}, // am -> Ethi
    {0xB9800000u, 41u}, // amo -> Latn
    {0xE5C00000u, 41u}, // aoz -> Latn
    {0x61720000u,  1u}, // ar -> Arab
    {0x61725842u, 87u}, // ar-XB -> ~~~B
    {0x8A200000u,  2u}, // arc -> Armi
    {0xB6200000u, 41u}, // arn -> Latn
    {0xBA200000u, 41u}, // aro -> Latn
    {0xC2200000u,  1u}, // arq -> Arab
    {0xE2200000u,  1u}, // ary -> Arab
    {0xE6200000u,  1u}, // arz -> Arab
    {0x61730000u,  7u}, // as -> Beng
    {0x82400000u, 41u}, // asa -> Latn
    {0x92400000u, 68u}, // ase -> Sgnw
    {0xCE400000u, 41u}, // ast -> Latn
    {0xA6600000u, 41u}, // atj -> Latn
    {0x61760000u, 15u}, // av -> Cyrl
    {0x82C00000u, 16u}, // awa -> Deva
    {0x61790000u, 41u}, // ay -> Latn
    {0x617A0000u, 41u}, // az -> Latn
    {0x617A4951u,  1u}, // az-IQ -> Arab
    {0x617A4952u,  1u}, // az-IR -> Arab
    {0x617A5255u, 15u}, // az-RU -> Cyrl
    {0x62610000u, 15u}, // ba -> Cyrl
    {0xAC010000u,  1u}, // bal -> Arab
    {0xB4010000u, 41u}, // ban -> Latn
    {0xBC010000u, 16u}, // bap -> Deva
    {0xC4010000u, 41u}, // bar -> Latn
    {0xC8010000u, 41u}, // bas -> Latn
    {0xDC010000u,  5u}, // bax -> Bamu
    {0x88210000u, 41u}, // bbc -> Latn
    {0xA4210000u, 41u}, // bbj -> Latn
    {0xA0410000u, 41u}, // bci -> Latn
    {0x62650000u, 15u}, // be -> Cyrl
    {0xA4810000u,  1u}, // bej -> Arab
    {0xB0810000u, 41u}, // bem -> Latn
    {0xD8810000u, 41u}, // bew -> Latn
    {0xE4810000u, 41u}, // bez -> Latn
    {0x8CA10000u, 41u}, // bfd -> Latn
    {0xC0A10000u, 74u}, // bfq -> Taml
    {0xCCA10000u,  1u}, // bft -> Arab
    {0xE0A10000u, 16u}, // bfy -> Deva
    {0x62670000u, 15u}, // bg -> Cyrl
    {0x88C10000u, 16u}, // bgc -> Deva
    {0xB4C10000u,  1u}, // bgn -> Arab
    {0xDCC10000u, 21u}, // bgx -> Grek
    {0x62680000u, 38u}, // bh -> Kthi
    {0x84E10000u, 16u}, // bhb -> Deva
    {0xA0E10000u, 16u}, // bhi -> Deva
    {0xA8E10000u, 41u}, // bhk -> Latn
    {0xB8E10000u, 16u}, // bho -> Deva
    {0x62690000u, 41u}, // bi -> Latn
    {0xA9010000u, 41u}, // bik -> Latn
    {0xB5010000u, 41u}, // bin -> Latn
    {0xA5210000u, 16u}, // bjj -> Deva
    {0xB5210000u, 41u}, // bjn -> Latn
    {0xB1410000u, 41u}, // bkm -> Latn
    {0xD1410000u, 41u}, // bku -> Latn
    {0xCD610000u, 75u}, // blt -> Tavt
    {0x626D0000u, 41u}, // bm -> Latn
    {0xC1810000u, 41u}, // bmq -> Latn
    {0x626E0000u,  7u}, // bn -> Beng
    {0x626F0000u, 80u}, // bo -> Tibt
    {0xE1E10000u,  7u}, // bpy -> Beng
    {0xA2010000u,  1u}, // bqi -> Arab
    {0xD6010000u, 41u}, // bqv -> Latn
    {0x62720000u, 41u}, // br -> Latn
    {0x82210000u, 16u}, // bra -> Deva
    {0x9E210000u,  1u}, // brh -> Arab
    {0xDE210000u, 16u}, // brx -> Deva
    {0x62730000u, 41u}, // bs -> Latn
    {0xC2410000u,  6u}, // bsq -> Bass
    {0xCA410000u, 41u}, // bss -> Latn
    {0xBA610000u, 41u}, // bto -> Latn
    {0xD6610000u, 16u}, // btv -> Deva
    {0x82810000u, 15u}, // bua -> Cyrl
    {0x8A810000u, 41u}, // buc -> Latn
    {0x9A810000u, 41u}, // bug -> Latn
    {0xB2810000u, 41u}, // bum -> Latn
    {0x86A10000u, 41u}, // bvb -> Latn
    {0xB7010000u, 18u}, // byn -> Ethi
    {0xD7010000u, 41u}, // byv -> Latn
    {0x93210000u, 41u}, // bze -> Latn
    {0x63610000u, 41u}, // ca -> Latn
    {0x9C420000u, 41u}, // cch -> Latn
    {0xBC420000u,  7u}, // ccp -> Beng
    {0x63650000u, 15u}, // ce -> Cyrl
    {0x84820000u, 41u}, // ceb -> Latn
    {0x98C20000u, 41u}, // cgg -> Latn
    {0x63680000u, 41u}, // ch -> Latn
    {0xA8E20000u, 41u}, // chk -> Latn
    {0xB0E20000u, 15u}, // chm -> Cyrl
    {0xB8E20000u, 41u}, // cho -> Latn
    {0xBCE20000u, 41u}, // chp -> Latn
    {0xC4E20000u, 12u}, // chr -> Cher
    {0x81220000u,  1u}, // cja -> Arab
    {0xB1220000u, 11u}, // cjm -> Cham
    {0x85420000u,  1u}, // ckb -> Arab
    {0x636F0000u, 41u}, // co -> Latn
    {0xBDC20000u, 13u}, // cop -> Copt
    {0xC9E20000u, 41u}, // cps -> Latn
    {0x63720000u,  9u}, // cr -> Cans
    {0xA6220000u,  9u}, // crj -> Cans
    {0xAA220000u,  9u}, // crk -> Cans
    {0xAE220000u,  9u}, // crl -> Cans
    {0xB2220000u,  9u}, // crm -> Cans
    {0xCA220000u, 41u}, // crs -> Latn
    {0x63730000u, 41u}, // cs -> Latn
    {0x86420000u, 41u}, // csb -> Latn
    {0xDA420000u,  9u}, // csw -> Cans
    {0x8E620000u, 59u}, // ctd -> Pauc
    {0x63750000u, 15u}, // cu -> Cyrl
    {0x63760000u, 15u}, // cv -> Cyrl
    {0x63790000u, 41u}, // cy -> Latn
    {0x64610000u, 41u}, // da -> Latn
    {0xA8030000u, 41u}, // dak -> Latn
    {0xC4030000u, 15u}, // dar -> Cyrl
    {0xD4030000u, 41u}, // dav -> Latn
    {0x88430000u,  1u}, // dcc -> Arab
    {0x64650000u, 41u}, // de -> Latn
    {0xB4830000u, 41u}, // den -> Latn
    {0xC4C30000u, 41u}, // dgr -> Latn
    {0x91230000u, 41u}, // dje -> Latn
    {0xA5A30000u, 41u}, // dnj -> Latn
    {0xA1C30000u,  1u}, // doi -> Arab
    {0x86430000u, 41u}, // dsb -> Latn
    {0xB2630000u, 41u}, // dtm -> Latn
    {0xBE630000u, 41u}, // dtp -> Latn
    {0x82830000u, 41u}, // dua -> Latn
    {0x64760000u, 78u}, // dv -> Thaa
    {0xBB030000u, 41u}, // dyo -> Latn
    {0xD3030000u, 41u}, // dyu -> Latn
    {0x647A0000u, 80u}, // dz -> Tibt
    {0xD0240000u, 41u}, // ebu -> Latn
    {0x65650000u, 41u}, // ee -> Latn
    {0xA0A40000u, 41u}, // efi -> Latn
    {0xACC40000u, 41u}, // egl -> Latn
    {0xE0C40000u, 17u}, // egy -> Egyp
    {0xE1440000u, 32u}, // eky -> Kali
    {0x656C0000u, 21u}, // el -> Grek
    {0x656E0000u, 41u}, // en -> Latn
    {0x656E5841u, 86u}, // en-XA -> ~~~A
    {0x656F0000u, 41u}, // eo -> Latn
    {0x65730000u, 41u}, // es -> Latn
    {0xD2440000u, 41u}, // esu -> Latn
    {0x65740000u, 41u}, // et -> Latn
    {0xCE640000u, 30u}, // ett -> Ital
    {0x65750000u, 41u}, // eu -> Latn
    {0xBAC40000u, 41u}, // ewo -> Latn
    {0xCEE40000u, 41u}, // ext -> Latn
    {0x66610000u,  1u}, // fa -> Arab
    {0xB4050000u, 41u}, // fan -> Latn
    {0x66660000u, 41u}, // ff -> Latn
    {0xB0A50000u, 41u}, // ffm -> Latn
    {0x66690000u, 41u}, // fi -> Latn
    {0x81050000u,  1u}, // fia -> Arab
    {0xAD050000u, 41u}, // fil -> Latn
    {0xCD050000u, 41u}, // fit -> Latn
    {0x666A0000u, 41u}, // fj -> Latn
    {0x666F0000u, 41u}, // fo -> Latn
    {0xB5C50000u, 41u}, // fon -> Latn
    {0x66720000u, 41u}, // fr -> Latn
    {0x8A250000u, 41u}, // frc -> Latn
    {0xBE250000u, 41u}, // frp -> Latn
    {0xC6250000u, 41u}, // frr -> Latn
    {0xCA250000u, 41u}, // frs -> Latn
    {0x8E850000u, 41u}, // fud -> Latn
    {0xC2850000u, 41u}, // fuq -> Latn
    {0xC6850000u, 41u}, // fur -> Latn
    {0xD6850000u, 41u}, // fuv -> Latn
    {0xC6A50000u, 41u}, // fvr -> Latn
    {0x66790000u, 41u}, // fy -> Latn
    {0x67610000u, 41u}, // ga -> Latn
    {0x80060000u, 41u}, // gaa -> Latn
    {0x98060000u, 41u}, // gag -> Latn
    {0xB4060000u, 24u}, // gan -> Hans
    {0xE0060000u, 41u}, // gay -> Latn
    {0xB0260000u, 16u}, // gbm -> Deva
    {0xE4260000u,  1u}, // gbz -> Arab
    {0xC4460000u, 41u}, // gcr -> Latn
    {0x67640000u, 41u}, // gd -> Latn
    {0xE4860000u, 18u}, // gez -> Ethi
    {0xB4C60000u, 16u}, // ggn -> Deva
    {0xAD060000u, 41u}, // gil -> Latn
    {0xA9260000u,  1u}, // gjk -> Arab
    {0xD1260000u,  1u}, // gju -> Arab
    {0x676C0000u, 41u}, // gl -> Latn
    {0xA9660000u,  1u}, // glk -> Arab
    {0x676E0000u, 41u}, // gn -> Latn
    {0xB1C60000u, 16u}, // gom -> Deva
    {0xB5C60000u, 76u}, // gon -> Telu
    {0xC5C60000u, 41u}, // gor -> Latn
    {0xC9C60000u, 41u}, // gos -> Latn
    {0xCDC60000u, 20u}, // got -> Goth
    {0x8A260000u, 14u}, // grc -> Cprt
    {0xCE260000u,  7u}, // grt -> Beng
    {0xDA460000u, 41u}, // gsw -> Latn
    {0x67750000u, 22u}, // gu -> Gujr
    {0x86860000u, 41u}, // gub -> Latn
    {0x8A860000u, 41u}, // guc -> Latn
    {0xC6860000u, 41u}, // gur -> Latn
    {0xE6860000u, 41u}, // guz -> Latn
    {0x67760000u, 41u}, // gv -> Latn
    {0xC6A60000u, 16u}, // gvr -> Deva
    {0xA2C60000u, 41u}, // gwi -> Latn
    {0x68610000u, 41u}, // ha -> Latn
    {0x6861434Du,  1u}, // ha-CM -> Arab
    {0x68615344u,  1u}, // ha-SD -> Arab
    {0xA8070000u, 24u}, // hak -> Hans
    {0xD8070000u, 41u}, // haw -> Latn
    {0xE4070000u,  1u}, // haz -> Arab
    {0x68650000u, 27u}, // he -> Hebr
    {0x68690000u, 16u}, // hi -> Deva
    {0x95070000u, 41u}, // hif -> Latn
    {0xAD070000u, 41u}, // hil -> Latn
    {0xD1670000u, 28u}, // hlu -> Hluw
    {0x8D870000u, 62u}, // hmd -> Plrd
    {0x8DA70000u,  1u}, // hnd -> Arab
    {0x91A70000u, 16u}, // hne -> Deva
    {0xA5A70000u, 29u}, // hnj -> Hmng
    {0xB5A70000u, 41u}, // hnn -> Latn
    {0xB9A70000u,  1u}, // hno -> Arab
    {0x686F0000u, 41u}, // ho -> Latn
    {0x89C70000u, 16u}, // hoc -> Deva
    {0xA5C70000u, 16u}, // hoj -> Deva
    {0x68720000u, 41u}, // hr -> Latn
    {0x86470000u, 41u}, // hsb -> Latn
    {0xB6470000u, 24u}, // hsn -> Hans
    {0x68740000u, 41u}, // ht -> Latn
    {0x68750000u, 41u}, // hu -> Latn
    {0x68790000u,  3u}, // hy -> Armn
    {0x687A0000u, 41u}, // hz -> Latn
    {0x69610000u, 41u}, // ia -> Latn
    {0x80280000u, 41u}, // iba -> Latn
    {0x84280000u, 41u}, // ibb -> Latn
    {0x69640000u, 41u}, // id -> Latn
    {0x69670000u, 41u}, // ig -> Latn
    {0x69690000u, 85u}, // ii -> Yiii
    {0x696B0000u, 41u}, // ik -> Latn
    {0xCD480000u, 41u}, // ikt -> Latn
    {0xB9680000u, 41u}, // ilo -> Latn
    {0x696E0000u, 41u}, // in -> Latn
    {0x9DA80000u, 15u}, // inh -> Cyrl
    {0x69730000u, 41u}, // is -> Latn
    {0x69740000u, 41u}, // it -> Latn
    {0x69750000u,  9u}, // iu -> Cans
    {0x69770000u, 27u}, // iw -> Hebr
    {0x9F280000u, 41u}, // izh -> Latn
    {0x6A610000u, 31u}, // ja -> Jpan
    {0xB0090000u, 41u}, // jam -> Latn
    {0xB8C90000u, 41u}, // jgo -> Latn
    {0x6A690000u, 27u}, // ji -> Hebr
    {0x89890000u, 41u}, // jmc -> Latn
    {0xAD890000u, 16u}, // jml -> Deva
    {0xCE890000u, 41u}, // jut -> Latn
    {0x6A760000u, 41u}, // jv -> Latn
    {0x6A770000u, 41u}, // jw -> Latn
    {0x6B610000u, 19u}, // ka -> Geor
    {0x800A0000u, 15u}, // kaa -> Cyrl
    {0x840A0000u, 41u}, // kab -> Latn
    {0x880A0000u, 41u}, // kac -> Latn
    {0xA40A0000u, 41u}, // kaj -> Latn
    {0xB00A0000u, 41u}, // kam -> Latn
    {0xB80A0000u, 41u}, // kao -> Latn
    {0x8C2A0000u, 15u}, // kbd -> Cyrl
    {0x984A0000u, 41u}, // kcg -> Latn
    {0xA84A0000u, 41u}, // kck -> Latn
    {0x906A0000u, 41u}, // kde -> Latn
    {0xCC6A0000u, 79u}, // kdt -> Thai
    {0x808A0000u, 41u}, // kea -> Latn
    {0xB48A0000u, 41u}, // ken -> Latn
    {0xB8AA0000u, 41u}, // kfo -> Latn
    {0xC4AA0000u, 16u}, // kfr -> Deva
    {0xE0AA0000u, 16u}, // kfy -> Deva
    {0x6B670000u, 41u}, // kg -> Latn
    {0x90CA0000u, 41u}, // kge -> Latn
    {0xBCCA0000u, 41u}, // kgp -> Latn
    {0x80EA0000u, 41u}, // kha -> Latn
    {0x84EA0000u, 73u}, // khb -> Talu
    {0xB4EA0000u, 16u}, // khn -> Deva
    {0xC0EA0000u, 41u}, // khq -> Latn
    {0xCCEA0000u, 53u}, // kht -> Mymr
    {0xD8EA0000u,  1u}, // khw -> Arab
    {0x6B690000u, 41u}, // ki -> Latn
    {0xD10A0000u, 41u}, // kiu -> Latn
    {0x6B6A0000u, 41u}, // kj -> Latn
    {0x992A0000u, 40u}, // kjg -> Laoo
    {0x6B6B0000u, 15u}, // kk -> Cyrl
    {0x6B6B4146u,  1u}, // kk-AF -> Arab
    {0x6B6B434Eu,  1u}, // kk-CN -> Arab
    {0x6B6B4952u,  1u}, // kk-IR -> Arab
    {0x6B6B4D4Eu,  1u}, // kk-MN -> Arab
    {0xA54A0000u, 41u}, // kkj -> Latn
    {0x6B6C0000u, 41u}, // kl -> Latn
    {0xB56A0000u, 41u}, // kln -> Latn
    {0x6B6D0000u, 35u}, // km -> Khmr
    {0x858A0000u, 41u}, // kmb -> Latn
    {0x6B6E0000u, 36u}, // kn -> Knda
    {0x6B6F0000u, 37u}, // ko -> Kore
    {0xA1CA0000u, 15u}, // koi -> Cyrl
    {0xA9CA0000u, 16u}, // kok -> Deva
    {0xC9CA0000u, 41u}, // kos -> Latn
    {0x91EA0000u, 41u}, // kpe -> Latn
    {0x8A2A0000u, 15u}, // krc -> Cyrl
    {0xA22A0000u, 41u}, // kri -> Latn
    {0xA62A0000u, 41u}, // krj -> Latn
    {0xAE2A0000u, 41u}, // krl -> Latn
    {0xD22A0000u, 16u}, // kru -> Deva
    {0x6B730000u,  1u}, // ks -> Arab
    {0x864A0000u, 41u}, // ksb -> Latn
    {0x964A0000u, 41u}, // ksf -> Latn
    {0x9E4A0000u, 41u}, // ksh -> Latn
    {0x6B750000u, 41u}, // ku -> Latn
    {0x6B754952u,  1u}, // ku-IR -> Arab
    {0x6B754C42u,  1u}, // ku-LB -> Arab
    {0xB28A0000u, 15u}, // kum -> Cyrl
    {0x6B760000u, 15u}, // kv -> Cyrl
    {0xC6AA0000u, 41u}, // kvr -> Latn
    {0xDEAA0000u,  1u}, // kvx -> Arab
    {0x6B770000u, 41u}, // kw -> Latn
    {0xB2EA0000u, 79u}, // kxm -> Thai
    {0xBEEA0000u,  1u}, // kxp -> Arab
    {0x6B790000u, 15u}, // ky -> Cyrl
    {0x6B79434Eu,  1u}, // ky-CN -> Arab
    {0x6B795452u, 41u}, // ky-TR -> Latn
    {0x6C610000u, 41u}, // la -> Latn
    {0x840B0000u, 43u}, // lab -> Lina
    {0x8C0B0000u, 27u}, // lad -> Hebr
    {0x980B0000u, 41u}, // lag -> Latn
    {0x9C0B0000u,  1u}, // lah -> Arab
    {0xA40B0000u, 41u}, // laj -> Latn
    {0x6C620000u, 41u}, // lb -> Latn
    {0x902B0000u, 15u}, // lbe -> Cyrl
    {0xD82B0000u, 41u}, // lbw -> Latn
    {0xBC4B0000u, 79u}, // lcp -> Thai
    {0xBC8B0000u, 42u}, // lep -> Lepc
    {0xE48B0000u, 15u}, // lez -> Cyrl
    {0x6C670000u, 41u}, // lg -> Latn
    {0x6C690000u, 41u}, // li -> Latn
    {0x950B0000u, 16u}, // lif -> Deva
    {0xA50B0000u, 41u}, // lij -> Latn
    {0xC90B0000u, 44u}, // lis -> Lisu
    {0xBD2B0000u, 41u}, // ljp -> Latn
    {0xA14B0000u,  1u}, // lki -> Arab
    {0xCD4B0000u, 41u}, // lkt -> Latn
    {0xB58B0000u, 76u}, // lmn -> Telu
    {0xB98B0000u, 41u}, // lmo -> Latn
    {0x6C6E0000u, 41u}, // ln -> Latn
    {0x6C6F0000u, 40u}, // lo -> Laoo
    {0xADCB0000u, 41u}, // lol -> Latn
    {0xE5CB0000u, 41u}, // loz -> Latn
    {0x8A2B0000u,  1u}, // lrc -> Arab
    {0x6C740000u, 41u}, // lt -> Latn
    {0x9A6B0000u, 41u}, // ltg -> Latn
    {0x6C750000u, 41u}, // lu -> Latn
    {0x828B0000u, 41u}, // lua -> Latn
    {0xBA8B0000u, 41u}, // luo -> Latn
    {0xE28B0000u, 41u}, // luy -> Latn
    {0xE68B0000u,  1u}, // luz -> Arab
    {0x6C760000u, 41u}, // lv -> Latn
    {0xAECB0000u, 79u}, // lwl -> Thai
    {0x9F2B0000u, 24u}, // lzh -> Hans
    {0xE72B0000u, 41u}, // lzz -> Latn
    {0x8C0C0000u, 41u}, // mad -> Latn
    {0x940C0000u, 41u}, // maf -> Latn
    {0x980C0000u, 16u}, // mag -> Deva
    {0xA00C0000u, 16u}, // mai -> Deva
    {0xA80C0000u, 41u}, // mak -> Latn
    {0xB40C0000u, 41u}, // man -> Latn
    {0xB40C474Eu, 55u}, // man-GN -> Nkoo
    {0xC80C0000u, 41u}, // mas -> Latn
    {0xE40C0000u, 41u}, // maz -> Latn
    {0x946C0000u, 15u}, // mdf -> Cyrl
    {0x9C6C0000u, 41u}, // mdh -> Latn
    {0xC46C0000u, 41u}, // mdr -> Latn
    {0xB48C0000u, 41u}, // men -> Latn
    {0xC48C0000u, 41u}, // mer -> Latn
    {0x80AC0000u,  1u}, // mfa -> Arab
    {0x90AC0000u, 41u}, // mfe -> Latn
    {0x6D670000u, 41u}, // mg -> Latn
    {0x9CCC0000u, 41u}, // mgh -> Latn
    {0xB8CC0000u, 41u}, // mgo -> Latn
    {0xBCCC0000u, 16u}, // mgp -> Deva
    {0xE0CC0000u, 41u}, // mgy -> Latn
    {0x6D680000u, 41u}, // mh -> Latn
    {0x6D690000u, 41u}, // mi -> Latn
    {0xB50C0000u, 41u}, // min -> Latn
    {0xC90C0000u, 26u}, // mis -> Hatr
    {0x6D6B0000u, 15u}, // mk -> Cyrl
    {0x6D6C0000u, 50u}, // ml -> Mlym
    {0xC96C0000u, 41u}, // mls -> Latn
    {0x6D6E0000u, 15u}, // mn -> Cyrl
    {0x6D6E434Eu, 51u}, // mn-CN -> Mong
    {0xA1AC0000u,  7u}, // mni -> Beng
    {0xD9AC0000u, 53u}, // mnw -> Mymr
    {0x91CC0000u, 41u}, // moe -> Latn
    {0x9DCC0000u, 41u}, // moh -> Latn
    {0xC9CC0000u, 41u}, // mos -> Latn
    {0x6D720000u, 16u}, // mr -> Deva
    {0x8E2C0000u, 16u}, // mrd -> Deva
    {0xA62C0000u, 15u}, // mrj -> Cyrl
    {0xD22C0000u, 52u}, // mru -> Mroo
    {0x6D730000u, 41u}, // ms -> Latn
    {0x6D734343u,  1u}, // ms-CC -> Arab
    {0x6D734944u,  1u}, // ms-ID -> Arab
    {0x6D740000u, 41u}, // mt -> Latn
    {0xC66C0000u, 16u}, // mtr -> Deva
    {0x828C0000u, 41u}, // mua -> Latn
    {0xCA8C0000u, 41u}, // mus -> Latn
    {0xE2AC0000u,  1u}, // mvy -> Arab
    {0xAACC0000u, 41u}, // mwk -> Latn
    {0xC6CC0000u, 16u}, // mwr -> Deva
    {0xD6CC0000u, 41u}, // mwv -> Latn
    {0x8AEC0000u, 41u}, // mxc -> Latn
    {0x6D790000u, 53u}, // my -> Mymr
    {0xD70C0000u, 15u}, // myv -> Cyrl
    {0xDF0C0000u, 41u}, // myx -> Latn
    {0xE70C0000u, 47u}, // myz -> Mand
    {0xB72C0000u,  1u}, // mzn -> Arab
    {0x6E610000u, 41u}, // na -> Latn
    {0xB40D0000u, 24u}, // nan -> Hans
    {0xBC0D0000u, 41u}, // nap -> Latn
    {0xC00D0000u, 41u}, // naq -> Latn
    {0x6E620000u, 41u}, // nb -> Latn
    {0x9C4D0000u, 41u}, // nch -> Latn
    {0x6E640000u, 41u}, // nd -> Latn
    {0x886D0000u, 41u}, // ndc -> Latn
    {0xC86D0000u, 41u}, // nds -> Latn
    {0x6E650000u, 16u}, // ne -> Deva
    {0xD88D0000u, 16u}, // new -> Deva
    {0x6E670000u, 41u}, // ng -> Latn
    {0xACCD0000u, 41u}, // ngl -> Latn
    {0x90ED0000u, 41u}, // nhe -> Latn
    {0xD8ED0000u, 41u}, // nhw -> Latn
    {0xA50D0000u, 41u}, // nij -> Latn
    {0xD10D0000u, 41u}, // niu -> Latn
    {0xB92D0000u, 41u}, // njo -> Latn
    {0x6E6C0000u, 41u}, // nl -> Latn
    {0x998D0000u, 41u}, // nmg -> Latn
    {0x6E6E0000u, 41u}, // nn -> Latn
    {0x9DAD0000u, 41u}, // nnh -> Latn
    {0x6E6F0000u, 41u}, // no -> Latn
    {0x8DCD0000u, 39u}, // nod -> Lana
    {0x91CD0000u, 16u}, // noe -> Deva
    {0xB5CD0000u, 64u}, // non -> Runr
    {0xBA0D0000u, 55u}, // nqo -> Nkoo
    {0x6E720000u, 41u}, // nr -> Latn
    {0xAA4D0000u,  9u}, // nsk -> Cans
    {0xBA4D0000u, 41u}, // nso -> Latn
    {0xCA8D0000u, 41u}, // nus -> Latn
    {0x6E760000u, 41u}, // nv -> Latn
    {0xC2ED0000u, 41u}, // nxq -> Latn
    {0x6E790000u, 41u}, // ny -> Latn
    {0xB30D0000u, 41u}, // nym -> Latn
    {0xB70D0000u, 41u}, // nyn -> Latn
    {0xA32D0000u, 41u}, // nzi -> Latn
    {0x6F630000u, 41u}, // oc -> Latn
    {0x6F6D0000u, 41u}, // om -> Latn
    {0x6F720000u, 58u}, // or -> Orya
    {0x6F730000u, 15u}, // os -> Cyrl
    {0xAA6E0000u, 57u}, // otk -> Orkh
    {0x70610000u, 23u}, // pa -> Guru
    {0x7061504Bu,  1u}, // pa-PK -> Arab
    {0x980F0000u, 41u}, // pag -> Latn
    {0xAC0F0000u, 60u}, // pal -> Phli
    {0xB00F0000u, 41u}, // pam -> Latn
    {0xBC0F0000u, 41u}, // pap -> Latn
    {0xD00F0000u, 41u}, // pau -> Latn
    {0x8C4F0000u, 41u}, // pcd -> Latn
    {0xB04F0000u, 41u}, // pcm -> Latn
    {0x886F0000u, 41u}, // pdc -> Latn
    {0xCC6F0000u, 41u}, // pdt -> Latn
    {0xB88F0000u, 83u}, // peo -> Xpeo
    {0xACAF0000u, 41u}, // pfl -> Latn
    {0xB4EF0000u, 61u}, // phn -> Phnx
    {0x814F0000u,  8u}, // pka -> Brah
    {0xB94F0000u, 41u}, // pko -> Latn
    {0x706C0000u, 41u}, // pl -> Latn
    {0xC98F0000u, 41u}, // pms -> Latn
    {0xCDAF0000u, 21u}, // pnt -> Grek
    {0xB5CF0000u, 41u}, // pon -> Latn
    {0x822F0000u, 34u}, // pra -> Khar
    {0x8E2F0000u,  1u}, // prd -> Arab
    {0x9A2F0000u, 41u}, // prg -> Latn
    {0x70730000u,  1u}, // ps -> Arab
    {0x70740000u, 41u}, // pt -> Latn
    {0xD28F0000u, 41u}, // puu -> Latn
    {0x71750000u, 41u}, // qu -> Latn
    {0x8A900000u, 41u}, // quc -> Latn
    {0x9A900000u, 41u}, // qug -> Latn
    {0xA4110000u, 16u}, // raj -> Deva
    {0x94510000u, 41u}, // rcf -> Latn
    {0xA4910000u, 41u}, // rej -> Latn
    {0xB4D10000u, 41u}, // rgn -> Latn
    {0x81110000u, 41u}, // ria -> Latn
    {0x95110000u, 77u}, // rif -> Tfng
    {0x95114E4Cu, 41u}, // rif-NL -> Latn
    {0xC9310000u, 16u}, // rjs -> Deva
    {0xCD510000u,  7u}, // rkt -> Beng
    {0x726D0000u, 41u}, // rm -> Latn
    {0x95910000u, 41u}, // rmf -> Latn
    {0xB9910000u, 41u}, // rmo -> Latn
    {0xCD910000u,  1u}, // rmt -> Arab
    {0xD1910000u, 41u}, // rmu -> Latn
    {0x726E0000u, 41u}, // rn -> Latn
    {0x99B10000u, 41u}, // rng -> Latn
    {0x726F0000u, 41u}, // ro -> Latn
    {0x85D10000u, 41u}, // rob -> Latn
    {0x95D10000u, 41u}, // rof -> Latn
    {0xB2710000u, 41u}, // rtm -> Latn
    {0x72750000u, 15u}, // ru -> Cyrl
    {0x92910000u, 15u}, // rue -> Cyrl
    {0x9A910000u, 41u}, // rug -> Latn
    {0x72770000u, 41u}, // rw -> Latn
    {0xAAD10000u, 41u}, // rwk -> Latn
    {0xD3110000u, 33u}, // ryu -> Kana
    {0x73610000u, 16u}, // sa -> Deva
    {0x94120000u, 41u}, // saf -> Latn
    {0x9C120000u, 15u}, // sah -> Cyrl
    {0xC0120000u, 41u}, // saq -> Latn
    {0xC8120000u, 41u}, // sas -> Latn
    {0xCC120000u, 41u}, // sat -> Latn
    {0xE4120000u, 67u}, // saz -> Saur
    {0xBC320000u, 41u}, // sbp -> Latn
    {0x73630000u, 41u}, // sc -> Latn
    {0xA8520000u, 16u}, // sck -> Deva
    {0xB4520000u, 41u}, // scn -> Latn
    {0xB8520000u, 41u}, // sco -> Latn
    {0xC8520000u, 41u}, // scs -> Latn
    {0x73640000u,  1u}, // sd -> Arab
    {0x88720000u, 41u}, // sdc -> Latn
    {0x9C720000u,  1u}, // sdh -> Arab
    {0x73650000u, 41u}, // se -> Latn
    {0x94920000u, 41u}, // sef -> Latn
    {0x9C920000u, 41u}, // seh -> Latn
    {0xA0920000u, 41u}, // sei -> Latn
    {0xC8920000u, 41u}, // ses -> Latn
    {0x73670000u, 41u}, // sg -> Latn
    {0x80D20000u, 56u}, // sga -> Ogam
    {0xC8D20000u, 41u}, // sgs -> Latn
    {0x73680000u, 41u}, // sh -> Latn
    {0xA0F20000u, 77u}, // shi -> Tfng
    {0xB4F20000u, 53u}, // shn -> Mymr
    {0x73690000u, 69u}, // si -> Sinh
    {0x8D120000u, 41u}, // sid -> Latn
    {0x736B0000u, 41u}, // sk -> Latn
    {0xC5520000u,  1u}, // skr -> Arab
    {0x736C0000u, 41u}, // sl -> Latn
    {0xA1720000u, 41u}, // sli -> Latn
    {0xE1720000u, 41u}, // sly -> Latn
    {0x736D0000u, 41u}, // sm -> Latn
    {0x81920000u, 41u}, // sma -> Latn
    {0xA5920000u, 41u}, // smj -> Latn
    {0xB5920000u, 41u}, // smn -> Latn
    {0xBD920000u, 65u}, // smp -> Samr
    {0xC9920000u, 41u}, // sms -> Latn
    {0x736E0000u, 41u}, // sn -> Latn
    {0xA9B20000u, 41u}, // snk -> Latn
    {0x736F0000u, 41u}, // so -> Latn
    {0xD1D20000u, 79u}, // sou -> Thai
    {0x73710000u, 41u}, // sq -> Latn
    {0x73720000u, 15u}, // sr -> Cyrl
    {0x73724D45u, 41u}, // sr-ME -> Latn
    {0x7372524Fu, 41u}, // sr-RO -> Latn
    {0x73725255u, 41u}, // sr-RU -> Latn
    {0x73725452u, 41u}, // sr-TR -> Latn
    {0x86320000u, 70u}, // srb -> Sora
    {0xB6320000u, 41u}, // srn -> Latn
    {0xC6320000u, 41u}, // srr -> Latn
    {0xDE320000u, 16u}, // srx -> Deva
    {0x73730000u, 41u}, // ss -> Latn
    {0xE2520000u, 41u}, // ssy -> Latn
    {0x73740000u, 41u}, // st -> Latn
    {0xC2720000u, 41u}, // stq -> Latn
    {0x73750000u, 41u}, // su -> Latn
    {0xAA920000u, 41u}, // suk -> Latn
    {0xCA920000u, 41u}, // sus -> Latn
    {0x73760000u, 41u}, // sv -> Latn
    {0x73770000u, 41u}, // sw -> Latn
    {0x86D20000u,  1u}, // swb -> Arab
    {0x8AD20000u, 41u}, // swc -> Latn
    {0x9AD20000u, 41u}, // swg -> Latn
    {0xD6D20000u, 16u}, // swv -> Deva
    {0xB6F20000u, 41u}, // sxn -> Latn
    {0xAF120000u,  7u}, // syl -> Beng
    {0xC7120000u, 71u}, // syr -> Syrc
    {0xAF320000u, 41u}, // szl -> Latn
    {0x74610000u, 74u}, // ta -> Taml
    {0xA4130000u, 16u}, // taj -> Deva
    {0xD8330000u, 41u}, // tbw -> Latn
    {0xE0530000u, 36u}, // tcy -> Knda
    {0x8C730000u, 72u}, // tdd -> Tale
    {0x98730000u, 16u}, // tdg -> Deva
    {0x9C730000u, 16u}, // tdh -> Deva
    {0x74650000u, 76u}, // te -> Telu
    {0xB0930000u, 41u}, // tem -> Latn
    {0xB8930000u, 41u}, // teo -> Latn
    {0xCC930000u, 41u}, // tet -> Latn
    {0x74670000u, 15u}, // tg -> Cyrl
    {0x7467504Bu,  1u}, // tg-PK -> Arab
    {0x74680000u, 79u}, // th -> Thai
    {0xACF30000u, 16u}, // thl -> Deva
    {0xC0F30000u, 16u}, // thq -> Deva
    {0xC4F30000u, 16u}, // thr -> Deva
    {0x74690000u, 18u}, // ti -> Ethi
    {0x99130000u, 18u}, // tig -> Ethi
    {0xD5130000u, 41u}, // tiv -> Latn
    {0x746B0000u, 41u}, // tk -> Latn
    {0xAD530000u, 41u}, // tkl -> Latn
    {0xC5530000u, 41u}, // tkr -> Latn
    {0xCD530000u, 16u}, // tkt -> Deva
    {0x746C0000u, 41u}, // tl -> Latn
    {0xE1730000u, 41u}, // tly -> Latn
    {0x9D930000u, 41u}, // tmh -> Latn
    {0x746E0000u, 41u}, // tn -> Latn
    {0x746F0000u, 41u}, // to -> Latn
    {0x99D30000u, 41u}, // tog -> Latn
    {0xA1F30000u, 41u}, // tpi -> Latn
    {0x74720000u, 41u}, // tr -> Latn
    {0xD2330000u, 41u}, // tru -> Latn
    {0xD6330000u, 41u}, // trv -> Latn
    {0x74730000u, 41u}, // ts -> Latn
    {0x8E530000u, 21u}, // tsd -> Grek
    {0x96530000u, 16u}, // tsf -> Deva
    {0x9A530000u, 41u}, // tsg -> Latn
    {0xA6530000u, 80u}, // tsj -> Tibt
    {0x74740000u, 15u}, // tt -> Cyrl
    {0xA6730000u, 41u}, // ttj -> Latn
    {0xCA730000u, 79u}, // tts -> Thai
    {0xCE730000u, 41u}, // ttt -> Latn
    {0xB2930000u, 41u}, // tum -> Latn
    {0xAEB30000u, 41u}, // tvl -> Latn
    {0xC2D30000u, 41u}, // twq -> Latn
    {0x74790000u, 41u}, // ty -> Latn
    {0xD7130000u, 15u}, // tyv -> Cyrl
    {0xB3330000u, 41u}, // tzm -> Latn
    {0xB0740000u, 15u}, // udm -> Cyrl
    {0x75670000u,  1u}, // ug -> Arab
    {0x75674B5Au, 15u}, // ug-KZ -> Cyrl
    {0x75674D4Eu, 15u}, // ug-MN -> Cyrl
    {0x80D40000u, 81u}, // uga -> Ugar
    {0x756B0000u, 15u}, // uk -> Cyrl
    {0xA1740000u, 41u}, // uli -> Latn
    {0x85940000u, 41u}, // umb -> Latn
    {0xC5B40000u,  7u}, // unr -> Beng
    {0xC5B44E50u, 16u}, // unr-NP -> Deva
    {0xDDB40000u,  7u}, // unx -> Beng
    {0x75720000u,  1u}, // ur -> Arab
    {0x757A0000u, 41u}, // uz -> Latn
    {0x757A4146u,  1u}, // uz-AF -> Arab
    {0x757A434Eu, 15u}, // uz-CN -> Cyrl
    {0xA0150000u, 82u}, // vai -> Vaii
    {0x76650000u, 41u}, // ve -> Latn
    {0x88950000u, 41u}, // vec -> Latn
    {0xBC950000u, 41u}, // vep -> Latn
    {0x76690000u, 41u}, // vi -> Latn
    {0x89150000u, 41u}, // vic -> Latn
    {0xC9750000u, 41u}, // vls -> Latn
    {0x95950000u, 41u}, // vmf -> Latn
    {0xD9950000u, 41u}, // vmw -> Latn
    {0x766F0000u, 41u}, // vo -> Latn
    {0xCDD50000u, 41u}, // vot -> Latn
    {0xBA350000u, 41u}, // vro -> Latn
    {0xB6950000u, 41u}, // vun -> Latn
    {0x77610000u, 41u}, // wa -> Latn
    {0x90160000u, 41u}, // wae -> Latn
    {0xAC160000u, 18u}, // wal -> Ethi
    {0xC4160000u, 41u}, // war -> Latn
    {0xBC360000u, 41u}, // wbp -> Latn
    {0xC0360000u, 76u}, // wbq -> Telu
    {0xC4360000u, 16u}, // wbr -> Deva
    {0xC9760000u, 41u}, // wls -> Latn
    {0xA1B60000u,  1u}, // wni -> Arab
    {0x776F0000u, 41u}, // wo -> Latn
    {0xB2760000u, 16u}, // wtm -> Deva
    {0xD2960000u, 24u}, // wuu -> Hans
    {0xD4170000u, 41u}, // xav -> Latn
    {0xC4570000u, 10u}, // xcr -> Cari
    {0x78680000u, 41u}, // xh -> Latn
    {0x89770000u, 45u}, // xlc -> Lyci
    {0x8D770000u, 46u}, // xld -> Lydi
    {0x95970000u, 19u}, // xmf -> Geor
    {0xB5970000u, 48u}, // xmn -> Mani
    {0xC5970000u, 49u}, // xmr -> Merc
    {0x81B70000u, 54u}, // xna -> Narb
    {0xC5B70000u, 16u}, // xnr -> Deva
    {0x99D70000u, 41u}, // xog -> Latn
    {0xC5F70000u, 63u}, // xpr -> Prti
    {0x82570000u, 66u}, // xsa -> Sarb
    {0xC6570000u, 16u}, // xsr -> Deva
    {0xB8180000u, 41u}, // yao -> Latn
    {0xBC180000u, 41u}, // yap -> Latn
    {0xD4180000u, 41u}, // yav -> Latn
    {0x84380000u, 41u}, // ybb -> Latn
    {0x79690000u, 27u}, // yi -> Hebr
    {0x796F0000u, 41u}, // yo -> Latn
    {0xAE380000u, 41u}, // yrl -> Latn
    {0x82980000u, 41u}, // yua -> Latn
    {0x7A610000u, 41u}, // za -> Latn
    {0x98190000u, 41u}, // zag -> Latn
    {0xA4790000u,  1u}, // zdj -> Arab
    {0x80990000u, 41u}, // zea -> Latn
    {0x9CD90000u, 77u}, // zgh -> Tfng
    {0x7A680000u, 24u}, // zh -> Hans
    {0x7A684155u, 25u}, // zh-AU -> Hant
    {0x7A68424Eu, 25u}, // zh-BN -> Hant
    {0x7A684742u, 25u}, // zh-GB -> Hant
    {0x7A684746u, 25u}, // zh-GF -> Hant
    {0x7A68484Bu, 25u}, // zh-HK -> Hant
    {0x7A684944u, 25u}, // zh-ID -> Hant
    {0x7A684D4Fu, 25u}, // zh-MO -> Hant
    {0x7A684D59u, 25u}, // zh-MY -> Hant
    {0x7A685041u, 25u}, // zh-PA -> Hant
    {0x7A685046u, 25u}, // zh-PF -> Hant
    {0x7A685048u, 25u}, // zh-PH -> Hant
    {0x7A685352u, 25u}, // zh-SR -> Hant
    {0x7A685448u, 25u}, // zh-TH -> Hant
    {0x7A685457u, 25u}, // zh-TW -> Hant
    {0x7A685553u, 25u}, // zh-US -> Hant
    {0x7A68564Eu, 25u}, // zh-VN -> Hant
    {0xA1990000u, 41u}, // zmi -> Latn
    {0x7A750000u, 41u}, // zu -> Latn
    {0x83390000u, 41u}, // zza -> Latn
});

std::unordered_set<uint64_t> REPRESENTATIVE_LOCALES({
    0x616145544C61746Ellu, // aa_Latn_ET
    0x616247454379726Cllu, // ab_Cyrl_GE
    0xC42047484C61746Ellu, // abr_Latn_GH
    0x904049444C61746Ellu, // ace_Latn_ID
    0x9C4055474C61746Ellu, // ach_Latn_UG
    0x806047484C61746Ellu, // ada_Latn_GH
    0xE06052554379726Cllu, // ady_Cyrl_RU
    0x6165495241767374llu, // ae_Avst_IR
    0x8480544E41726162llu, // aeb_Arab_TN
    0x61665A414C61746Ellu, // af_Latn_ZA
    0xC0C0434D4C61746Ellu, // agq_Latn_CM
    0xB8E0494E41686F6Dllu, // aho_Ahom_IN
    0x616B47484C61746Ellu, // ak_Latn_GH
    0xA940495158737578llu, // akk_Xsux_IQ
    0xB560584B4C61746Ellu, // aln_Latn_XK
    0xCD6052554379726Cllu, // alt_Cyrl_RU
    0x616D455445746869llu, // am_Ethi_ET
    0xB9804E474C61746Ellu, // amo_Latn_NG
    0xE5C049444C61746Ellu, // aoz_Latn_ID
    0x6172454741726162llu, // ar_Arab_EG
    0x8A20495241726D69llu, // arc_Armi_IR
    0x8A204A4F4E626174llu, // arc_Nbat_JO
    0x8A20535950616C6Dllu, // arc_Palm_SY
    0xB620434C4C61746Ellu, // arn_Latn_CL
    0xBA20424F4C61746Ellu, // aro_Latn_BO
    0xC220445A41726162llu, // arq_Arab_DZ
    0xE2204D4141726162llu, // ary_Arab_MA
    0xE620454741726162llu, // arz_Arab_EG
    0x6173494E42656E67llu, // as_Beng_IN
    0x8240545A4C61746Ellu, // asa_Latn_TZ
    0x9240555353676E77llu, // ase_Sgnw_US
    0xCE4045534C61746Ellu, // ast_Latn_ES
    0xA66043414C61746Ellu, // atj_Latn_CA
    0x617652554379726Cllu, // av_Cyrl_RU
    0x82C0494E44657661llu, // awa_Deva_IN
    0x6179424F4C61746Ellu, // ay_Latn_BO
    0x617A495241726162llu, // az_Arab_IR
    0x617A415A4C61746Ellu, // az_Latn_AZ
    0x626152554379726Cllu, // ba_Cyrl_RU
    0xAC01504B41726162llu, // bal_Arab_PK
    0xB40149444C61746Ellu, // ban_Latn_ID
    0xBC014E5044657661llu, // bap_Deva_NP
    0xC40141544C61746Ellu, // bar_Latn_AT
    0xC801434D4C61746Ellu, // bas_Latn_CM
    0xDC01434D42616D75llu, // bax_Bamu_CM
    0x882149444C61746Ellu, // bbc_Latn_ID
    0xA421434D4C61746Ellu, // bbj_Latn_CM
    0xA04143494C61746Ellu, // bci_Latn_CI
    0x626542594379726Cllu, // be_Cyrl_BY
    0xA481534441726162llu, // bej_Arab_SD
    0xB0815A4D4C61746Ellu, // bem_Latn_ZM
    0xD88149444C61746Ellu, // bew_Latn_ID
    0xE481545A4C61746Ellu, // bez_Latn_TZ
    0x8CA1434D4C61746Ellu, // bfd_Latn_CM
    0xC0A1494E54616D6Cllu, // bfq_Taml_IN
    0xCCA1504B41726162llu, // bft_Arab_PK
    0xE0A1494E44657661llu, // bfy_Deva_IN
    0x626742474379726Cllu, // bg_Cyrl_BG
    0x88C1494E44657661llu, // bgc_Deva_IN
    0xB4C1504B41726162llu, // bgn_Arab_PK
    0xDCC154524772656Bllu, // bgx_Grek_TR
    0x6268494E4B746869llu, // bh_Kthi_IN
    0x84E1494E44657661llu, // bhb_Deva_IN
    0xA0E1494E44657661llu, // bhi_Deva_IN
    0xA8E150484C61746Ellu, // bhk_Latn_PH
    0xB8E1494E44657661llu, // bho_Deva_IN
    0x626956554C61746Ellu, // bi_Latn_VU
    0xA90150484C61746Ellu, // bik_Latn_PH
    0xB5014E474C61746Ellu, // bin_Latn_NG
    0xA521494E44657661llu, // bjj_Deva_IN
    0xB52149444C61746Ellu, // bjn_Latn_ID
    0xB141434D4C61746Ellu, // bkm_Latn_CM
    0xD14150484C61746Ellu, // bku_Latn_PH
    0xCD61564E54617674llu, // blt_Tavt_VN
    0x626D4D4C4C61746Ellu, // bm_Latn_ML
    0xC1814D4C4C61746Ellu, // bmq_Latn_ML
    0x626E424442656E67llu, // bn_Beng_BD
    0x626F434E54696274llu, // bo_Tibt_CN
    0xE1E1494E42656E67llu, // bpy_Beng_IN
    0xA201495241726162llu, // bqi_Arab_IR
    0xD60143494C61746Ellu, // bqv_Latn_CI
    0x627246524C61746Ellu, // br_Latn_FR
    0x8221494E44657661llu, // bra_Deva_IN
    0x9E21504B41726162llu, // brh_Arab_PK
    0xDE21494E44657661llu, // brx_Deva_IN
    0x627342414C61746Ellu, // bs_Latn_BA
    0xC2414C5242617373llu, // bsq_Bass_LR
    0xCA41434D4C61746Ellu, // bss_Latn_CM
    0xBA6150484C61746Ellu, // bto_Latn_PH
    0xD661504B44657661llu, // btv_Deva_PK
    0x828152554379726Cllu, // bua_Cyrl_RU
    0x8A8159544C61746Ellu, // buc_Latn_YT
    0x9A8149444C61746Ellu, // bug_Latn_ID
    0xB281434D4C61746Ellu, // bum_Latn_CM
    0x86A147514C61746Ellu, // bvb_Latn_GQ
    0xB701455245746869llu, // byn_Ethi_ER
    0xD701434D4C61746Ellu, // byv_Latn_CM
    0x93214D4C4C61746Ellu, // bze_Latn_ML
    0x636145534C61746Ellu, // ca_Latn_ES
    0x9C424E474C61746Ellu, // cch_Latn_NG
    0xBC42494E42656E67llu, // ccp_Beng_IN
    0xBC42424443616B6Dllu, // ccp_Cakm_BD
    0x636552554379726Cllu, // ce_Cyrl_RU
    0x848250484C61746Ellu, // ceb_Latn_PH
    0x98C255474C61746Ellu, // cgg_Latn_UG
    0x636847554C61746Ellu, // ch_Latn_GU
    0xA8E2464D4C61746Ellu, // chk_Latn_FM
    0xB0E252554379726Cllu, // chm_Cyrl_RU
    0xB8E255534C61746Ellu, // cho_Latn_US
    0xBCE243414C61746Ellu, // chp_Latn_CA
    0xC4E2555343686572llu, // chr_Cher_US
    0x81224B4841726162llu, // cja_Arab_KH
    0xB122564E4368616Dllu, // cjm_Cham_VN
    0x8542495141726162llu, // ckb_Arab_IQ
    0x636F46524C61746Ellu, // co_Latn_FR
    0xBDC24547436F7074llu, // cop_Copt_EG
    0xC9E250484C61746Ellu, // cps_Latn_PH
    0x6372434143616E73llu, // cr_Cans_CA
    0xA622434143616E73llu, // crj_Cans_CA
    0xAA22434143616E73llu, // crk_Cans_CA
    0xAE22434143616E73llu, // crl_Cans_CA
    0xB222434143616E73llu, // crm_Cans_CA
    0xCA2253434C61746Ellu, // crs_Latn_SC
    0x6373435A4C61746Ellu, // cs_Latn_CZ
    0x8642504C4C61746Ellu, // csb_Latn_PL
    0xDA42434143616E73llu, // csw_Cans_CA
    0x8E624D4D50617563llu, // ctd_Pauc_MM
    0x637552554379726Cllu, // cu_Cyrl_RU
    0x63754247476C6167llu, // cu_Glag_BG
    0x637652554379726Cllu, // cv_Cyrl_RU
    0x637947424C61746Ellu, // cy_Latn_GB
    0x6461444B4C61746Ellu, // da_Latn_DK
    0xA80355534C61746Ellu, // dak_Latn_US
    0xC40352554379726Cllu, // dar_Cyrl_RU
    0xD4034B454C61746Ellu, // dav_Latn_KE
    0x8843494E41726162llu, // dcc_Arab_IN
    0x646544454C61746Ellu, // de_Latn_DE
    0xB48343414C61746Ellu, // den_Latn_CA
    0xC4C343414C61746Ellu, // dgr_Latn_CA
    0x91234E454C61746Ellu, // dje_Latn_NE
    0xA5A343494C61746Ellu, // dnj_Latn_CI
    0xA1C3494E41726162llu, // doi_Arab_IN
    0x864344454C61746Ellu, // dsb_Latn_DE
    0xB2634D4C4C61746Ellu, // dtm_Latn_ML
    0xBE634D594C61746Ellu, // dtp_Latn_MY
    0x8283434D4C61746Ellu, // dua_Latn_CM
    0x64764D5654686161llu, // dv_Thaa_MV
    0xBB03534E4C61746Ellu, // dyo_Latn_SN
    0xD30342464C61746Ellu, // dyu_Latn_BF
    0x647A425454696274llu, // dz_Tibt_BT
    0xD0244B454C61746Ellu, // ebu_Latn_KE
    0x656547484C61746Ellu, // ee_Latn_GH
    0xA0A44E474C61746Ellu, // efi_Latn_NG
    0xACC449544C61746Ellu, // egl_Latn_IT
    0xE0C4454745677970llu, // egy_Egyp_EG
    0xE1444D4D4B616C69llu, // eky_Kali_MM
    0x656C47524772656Bllu, // el_Grek_GR
    0x656E47424C61746Ellu, // en_Latn_GB
    0x656E55534C61746Ellu, // en_Latn_US
    0x656E474253686177llu, // en_Shaw_GB
    0x657345534C61746Ellu, // es_Latn_ES
    0x65734D584C61746Ellu, // es_Latn_MX
    0x657355534C61746Ellu, // es_Latn_US
    0xD24455534C61746Ellu, // esu_Latn_US
    0x657445454C61746Ellu, // et_Latn_EE
    0xCE6449544974616Cllu, // ett_Ital_IT
    0x657545534C61746Ellu, // eu_Latn_ES
    0xBAC4434D4C61746Ellu, // ewo_Latn_CM
    0xCEE445534C61746Ellu, // ext_Latn_ES
    0x6661495241726162llu, // fa_Arab_IR
    0xB40547514C61746Ellu, // fan_Latn_GQ
    0x6666534E4C61746Ellu, // ff_Latn_SN
    0xB0A54D4C4C61746Ellu, // ffm_Latn_ML
    0x666946494C61746Ellu, // fi_Latn_FI
    0x8105534441726162llu, // fia_Arab_SD
    0xAD0550484C61746Ellu, // fil_Latn_PH
    0xCD0553454C61746Ellu, // fit_Latn_SE
    0x666A464A4C61746Ellu, // fj_Latn_FJ
    0x666F464F4C61746Ellu, // fo_Latn_FO
    0xB5C5424A4C61746Ellu, // fon_Latn_BJ
    0x667246524C61746Ellu, // fr_Latn_FR
    0x8A2555534C61746Ellu, // frc_Latn_US
    0xBE2546524C61746Ellu, // frp_Latn_FR
    0xC62544454C61746Ellu, // frr_Latn_DE
    0xCA2544454C61746Ellu, // frs_Latn_DE
    0x8E8557464C61746Ellu, // fud_Latn_WF
    0xC2854E454C61746Ellu, // fuq_Latn_NE
    0xC68549544C61746Ellu, // fur_Latn_IT
    0xD6854E474C61746Ellu, // fuv_Latn_NG
    0xC6A553444C61746Ellu, // fvr_Latn_SD
    0x66794E4C4C61746Ellu, // fy_Latn_NL
    0x676149454C61746Ellu, // ga_Latn_IE
    0x800647484C61746Ellu, // gaa_Latn_GH
    0x98064D444C61746Ellu, // gag_Latn_MD
    0xB406434E48616E73llu, // gan_Hans_CN
    0xE00649444C61746Ellu, // gay_Latn_ID
    0xB026494E44657661llu, // gbm_Deva_IN
    0xE426495241726162llu, // gbz_Arab_IR
    0xC44647464C61746Ellu, // gcr_Latn_GF
    0x676447424C61746Ellu, // gd_Latn_GB
    0xE486455445746869llu, // gez_Ethi_ET
    0xB4C64E5044657661llu, // ggn_Deva_NP
    0xAD064B494C61746Ellu, // gil_Latn_KI
    0xA926504B41726162llu, // gjk_Arab_PK
    0xD126504B41726162llu, // gju_Arab_PK
    0x676C45534C61746Ellu, // gl_Latn_ES
    0xA966495241726162llu, // glk_Arab_IR
    0x676E50594C61746Ellu, // gn_Latn_PY
    0xB1C6494E44657661llu, // gom_Deva_IN
    0xB5C6494E54656C75llu, // gon_Telu_IN
    0xC5C649444C61746Ellu, // gor_Latn_ID
    0xC9C64E4C4C61746Ellu, // gos_Latn_NL
    0xCDC65541476F7468llu, // got_Goth_UA
    0x8A26435943707274llu, // grc_Cprt_CY
    0x8A2647524C696E62llu, // grc_Linb_GR
    0xCE26494E42656E67llu, // grt_Beng_IN
    0xDA4643484C61746Ellu, // gsw_Latn_CH
    0x6775494E47756A72llu, // gu_Gujr_IN
    0x868642524C61746Ellu, // gub_Latn_BR
    0x8A86434F4C61746Ellu, // guc_Latn_CO
    0xC68647484C61746Ellu, // gur_Latn_GH
    0xE6864B454C61746Ellu, // guz_Latn_KE
    0x6776494D4C61746Ellu, // gv_Latn_IM
    0xC6A64E5044657661llu, // gvr_Deva_NP
    0xA2C643414C61746Ellu, // gwi_Latn_CA
    0x68614E474C61746Ellu, // ha_Latn_NG
    0xA807434E48616E73llu, // hak_Hans_CN
    0xD80755534C61746Ellu, // haw_Latn_US
    0xE407414641726162llu, // haz_Arab_AF
    0x6865494C48656272llu, // he_Hebr_IL
    0x6869494E44657661llu, // hi_Deva_IN
    0x9507464A4C61746Ellu, // hif_Latn_FJ
    0xAD0750484C61746Ellu, // hil_Latn_PH
    0xD1675452486C7577llu, // hlu_Hluw_TR
    0x8D87434E506C7264llu, // hmd_Plrd_CN
    0x8DA7504B41726162llu, // hnd_Arab_PK
    0x91A7494E44657661llu, // hne_Deva_IN
    0xA5A74C41486D6E67llu, // hnj_Hmng_LA
    0xB5A750484C61746Ellu, // hnn_Latn_PH
    0xB9A7504B41726162llu, // hno_Arab_PK
    0x686F50474C61746Ellu, // ho_Latn_PG
    0x89C7494E44657661llu, // hoc_Deva_IN
    0xA5C7494E44657661llu, // hoj_Deva_IN
    0x687248524C61746Ellu, // hr_Latn_HR
    0x864744454C61746Ellu, // hsb_Latn_DE
    0xB647434E48616E73llu, // hsn_Hans_CN
    0x687448544C61746Ellu, // ht_Latn_HT
    0x687548554C61746Ellu, // hu_Latn_HU
    0x6879414D41726D6Ellu, // hy_Armn_AM
    0x687A4E414C61746Ellu, // hz_Latn_NA
    0x696146524C61746Ellu, // ia_Latn_FR
    0x80284D594C61746Ellu, // iba_Latn_MY
    0x84284E474C61746Ellu, // ibb_Latn_NG
    0x696449444C61746Ellu, // id_Latn_ID
    0x69674E474C61746Ellu, // ig_Latn_NG
    0x6969434E59696969llu, // ii_Yiii_CN
    0x696B55534C61746Ellu, // ik_Latn_US
    0xCD4843414C61746Ellu, // ikt_Latn_CA
    0xB96850484C61746Ellu, // ilo_Latn_PH
    0x696E49444C61746Ellu, // in_Latn_ID
    0x9DA852554379726Cllu, // inh_Cyrl_RU
    0x697349534C61746Ellu, // is_Latn_IS
    0x697449544C61746Ellu, // it_Latn_IT
    0x6975434143616E73llu, // iu_Cans_CA
    0x6977494C48656272llu, // iw_Hebr_IL
    0x9F2852554C61746Ellu, // izh_Latn_RU
    0x6A614A504A70616Ellu, // ja_Jpan_JP
    0xB0094A4D4C61746Ellu, // jam_Latn_JM
    0xB8C9434D4C61746Ellu, // jgo_Latn_CM
    0x6A69554148656272llu, // ji_Hebr_UA
    0x8989545A4C61746Ellu, // jmc_Latn_TZ
    0xAD894E5044657661llu, // jml_Deva_NP
    0xCE89444B4C61746Ellu, // jut_Latn_DK
    0x6A7649444C61746Ellu, // jv_Latn_ID
    0x6A7749444C61746Ellu, // jw_Latn_ID
    0x6B61474547656F72llu, // ka_Geor_GE
    0x800A555A4379726Cllu, // kaa_Cyrl_UZ
    0x840A445A4C61746Ellu, // kab_Latn_DZ
    0x880A4D4D4C61746Ellu, // kac_Latn_MM
    0xA40A4E474C61746Ellu, // kaj_Latn_NG
    0xB00A4B454C61746Ellu, // kam_Latn_KE
    0xB80A4D4C4C61746Ellu, // kao_Latn_ML
    0x8C2A52554379726Cllu, // kbd_Cyrl_RU
    0x984A4E474C61746Ellu, // kcg_Latn_NG
    0xA84A5A574C61746Ellu, // kck_Latn_ZW
    0x906A545A4C61746Ellu, // kde_Latn_TZ
    0xCC6A544854686169llu, // kdt_Thai_TH
    0x808A43564C61746Ellu, // kea_Latn_CV
    0xB48A434D4C61746Ellu, // ken_Latn_CM
    0xB8AA43494C61746Ellu, // kfo_Latn_CI
    0xC4AA494E44657661llu, // kfr_Deva_IN
    0xE0AA494E44657661llu, // kfy_Deva_IN
    0x6B6743444C61746Ellu, // kg_Latn_CD
    0x90CA49444C61746Ellu, // kge_Latn_ID
    0xBCCA42524C61746Ellu, // kgp_Latn_BR
    0x80EA494E4C61746Ellu, // kha_Latn_IN
    0x84EA434E54616C75llu, // khb_Talu_CN
    0xB4EA494E44657661llu, // khn_Deva_IN
    0xC0EA4D4C4C61746Ellu, // khq_Latn_ML
    0xCCEA494E4D796D72llu, // kht_Mymr_IN
    0xD8EA504B41726162llu, // khw_Arab_PK
    0x6B694B454C61746Ellu, // ki_Latn_KE
    0xD10A54524C61746Ellu, // kiu_Latn_TR
    0x6B6A4E414C61746Ellu, // kj_Latn_NA
    0x992A4C414C616F6Fllu, // kjg_Laoo_LA
    0x6B6B434E41726162llu, // kk_Arab_CN
    0x6B6B4B5A4379726Cllu, // kk_Cyrl_KZ
    0xA54A434D4C61746Ellu, // kkj_Latn_CM
    0x6B6C474C4C61746Ellu, // kl_Latn_GL
    0xB56A4B454C61746Ellu, // kln_Latn_KE
    0x6B6D4B484B686D72llu, // km_Khmr_KH
    0x858A414F4C61746Ellu, // kmb_Latn_AO
    0x6B6E494E4B6E6461llu, // kn_Knda_IN
    0x6B6F4B524B6F7265llu, // ko_Kore_KR
    0xA1CA52554379726Cllu, // koi_Cyrl_RU
    0xA9CA494E44657661llu, // kok_Deva_IN
    0xC9CA464D4C61746Ellu, // kos_Latn_FM
    0x91EA4C524C61746Ellu, // kpe_Latn_LR
    0x8A2A52554379726Cllu, // krc_Cyrl_RU
    0xA22A534C4C61746Ellu, // kri_Latn_SL
    0xA62A50484C61746Ellu, // krj_Latn_PH
    0xAE2A52554C61746Ellu, // krl_Latn_RU
    0xD22A494E44657661llu, // kru_Deva_IN
    0x6B73494E41726162llu, // ks_Arab_IN
    0x864A545A4C61746Ellu, // ksb_Latn_TZ
    0x964A434D4C61746Ellu, // ksf_Latn_CM
    0x9E4A44454C61746Ellu, // ksh_Latn_DE
    0x6B75495141726162llu, // ku_Arab_IQ
    0x6B7554524C61746Ellu, // ku_Latn_TR
    0xB28A52554379726Cllu, // kum_Cyrl_RU
    0x6B7652554379726Cllu, // kv_Cyrl_RU
    0xC6AA49444C61746Ellu, // kvr_Latn_ID
    0xDEAA504B41726162llu, // kvx_Arab_PK
    0x6B7747424C61746Ellu, // kw_Latn_GB
    0xB2EA544854686169llu, // kxm_Thai_TH
    0xBEEA504B41726162llu, // kxp_Arab_PK
    0x6B79434E41726162llu, // ky_Arab_CN
    0x6B794B474379726Cllu, // ky_Cyrl_KG
    0x6B7954524C61746Ellu, // ky_Latn_TR
    0x6C6156414C61746Ellu, // la_Latn_VA
    0x840B47524C696E61llu, // lab_Lina_GR
    0x8C0B494C48656272llu, // lad_Hebr_IL
    0x980B545A4C61746Ellu, // lag_Latn_TZ
    0x9C0B504B41726162llu, // lah_Arab_PK
    0xA40B55474C61746Ellu, // laj_Latn_UG
    0x6C624C554C61746Ellu, // lb_Latn_LU
    0x902B52554379726Cllu, // lbe_Cyrl_RU
    0xD82B49444C61746Ellu, // lbw_Latn_ID
    0xBC4B434E54686169llu, // lcp_Thai_CN
    0xBC8B494E4C657063llu, // lep_Lepc_IN
    0xE48B52554379726Cllu, // lez_Cyrl_RU
    0x6C6755474C61746Ellu, // lg_Latn_UG
    0x6C694E4C4C61746Ellu, // li_Latn_NL
    0x950B4E5044657661llu, // lif_Deva_NP
    0x950B494E4C696D62llu, // lif_Limb_IN
    0xA50B49544C61746Ellu, // lij_Latn_IT
    0xC90B434E4C697375llu, // lis_Lisu_CN
    0xBD2B49444C61746Ellu, // ljp_Latn_ID
    0xA14B495241726162llu, // lki_Arab_IR
    0xCD4B55534C61746Ellu, // lkt_Latn_US
    0xB58B494E54656C75llu, // lmn_Telu_IN
    0xB98B49544C61746Ellu, // lmo_Latn_IT
    0x6C6E43444C61746Ellu, // ln_Latn_CD
    0x6C6F4C414C616F6Fllu, // lo_Laoo_LA
    0xADCB43444C61746Ellu, // lol_Latn_CD
    0xE5CB5A4D4C61746Ellu, // loz_Latn_ZM
    0x8A2B495241726162llu, // lrc_Arab_IR
    0x6C744C544C61746Ellu, // lt_Latn_LT
    0x9A6B4C564C61746Ellu, // ltg_Latn_LV
    0x6C7543444C61746Ellu, // lu_Latn_CD
    0x828B43444C61746Ellu, // lua_Latn_CD
    0xBA8B4B454C61746Ellu, // luo_Latn_KE
    0xE28B4B454C61746Ellu, // luy_Latn_KE
    0xE68B495241726162llu, // luz_Arab_IR
    0x6C764C564C61746Ellu, // lv_Latn_LV
    0xAECB544854686169llu, // lwl_Thai_TH
    0x9F2B434E48616E73llu, // lzh_Hans_CN
    0xE72B54524C61746Ellu, // lzz_Latn_TR
    0x8C0C49444C61746Ellu, // mad_Latn_ID
    0x940C434D4C61746Ellu, // maf_Latn_CM
    0x980C494E44657661llu, // mag_Deva_IN
    0xA00C494E44657661llu, // mai_Deva_IN
    0xA80C49444C61746Ellu, // mak_Latn_ID
    0xB40C474D4C61746Ellu, // man_Latn_GM
    0xB40C474E4E6B6F6Fllu, // man_Nkoo_GN
    0xC80C4B454C61746Ellu, // mas_Latn_KE
    0xE40C4D584C61746Ellu, // maz_Latn_MX
    0x946C52554379726Cllu, // mdf_Cyrl_RU
    0x9C6C50484C61746Ellu, // mdh_Latn_PH
    0xC46C49444C61746Ellu, // mdr_Latn_ID
    0xB48C534C4C61746Ellu, // men_Latn_SL
    0xC48C4B454C61746Ellu, // mer_Latn_KE
    0x80AC544841726162llu, // mfa_Arab_TH
    0x90AC4D554C61746Ellu, // mfe_Latn_MU
    0x6D674D474C61746Ellu, // mg_Latn_MG
    0x9CCC4D5A4C61746Ellu, // mgh_Latn_MZ
    0xB8CC434D4C61746Ellu, // mgo_Latn_CM
    0xBCCC4E5044657661llu, // mgp_Deva_NP
    0xE0CC545A4C61746Ellu, // mgy_Latn_TZ
    0x6D684D484C61746Ellu, // mh_Latn_MH
    0x6D694E5A4C61746Ellu, // mi_Latn_NZ
    0xB50C49444C61746Ellu, // min_Latn_ID
    0xC90C495148617472llu, // mis_Hatr_IQ
    0x6D6B4D4B4379726Cllu, // mk_Cyrl_MK
    0x6D6C494E4D6C796Dllu, // ml_Mlym_IN
    0xC96C53444C61746Ellu, // mls_Latn_SD
    0x6D6E4D4E4379726Cllu, // mn_Cyrl_MN
    0x6D6E434E4D6F6E67llu, // mn_Mong_CN
    0xA1AC494E42656E67llu, // mni_Beng_IN
    0xD9AC4D4D4D796D72llu, // mnw_Mymr_MM
    0x91CC43414C61746Ellu, // moe_Latn_CA
    0x9DCC43414C61746Ellu, // moh_Latn_CA
    0xC9CC42464C61746Ellu, // mos_Latn_BF
    0x6D72494E44657661llu, // mr_Deva_IN
    0x8E2C4E5044657661llu, // mrd_Deva_NP
    0xA62C52554379726Cllu, // mrj_Cyrl_RU
    0xD22C42444D726F6Fllu, // mru_Mroo_BD
    0x6D734D594C61746Ellu, // ms_Latn_MY
    0x6D744D544C61746Ellu, // mt_Latn_MT
    0xC66C494E44657661llu, // mtr_Deva_IN
    0x828C434D4C61746Ellu, // mua_Latn_CM
    0xCA8C55534C61746Ellu, // mus_Latn_US
    0xE2AC504B41726162llu, // mvy_Arab_PK
    0xAACC4D4C4C61746Ellu, // mwk_Latn_ML
    0xC6CC494E44657661llu, // mwr_Deva_IN
    0xD6CC49444C61746Ellu, // mwv_Latn_ID
    0x8AEC5A574C61746Ellu, // mxc_Latn_ZW
    0x6D794D4D4D796D72llu, // my_Mymr_MM
    0xD70C52554379726Cllu, // myv_Cyrl_RU
    0xDF0C55474C61746Ellu, // myx_Latn_UG
    0xE70C49524D616E64llu, // myz_Mand_IR
    0xB72C495241726162llu, // mzn_Arab_IR
    0x6E614E524C61746Ellu, // na_Latn_NR
    0xB40D434E48616E73llu, // nan_Hans_CN
    0xBC0D49544C61746Ellu, // nap_Latn_IT
    0xC00D4E414C61746Ellu, // naq_Latn_NA
    0x6E624E4F4C61746Ellu, // nb_Latn_NO
    0x9C4D4D584C61746Ellu, // nch_Latn_MX
    0x6E645A574C61746Ellu, // nd_Latn_ZW
    0x886D4D5A4C61746Ellu, // ndc_Latn_MZ
    0xC86D44454C61746Ellu, // nds_Latn_DE
    0x6E654E5044657661llu, // ne_Deva_NP
    0xD88D4E5044657661llu, // new_Deva_NP
    0x6E674E414C61746Ellu, // ng_Latn_NA
    0xACCD4D5A4C61746Ellu, // ngl_Latn_MZ
    0x90ED4D584C61746Ellu, // nhe_Latn_MX
    0xD8ED4D584C61746Ellu, // nhw_Latn_MX
    0xA50D49444C61746Ellu, // nij_Latn_ID
    0xD10D4E554C61746Ellu, // niu_Latn_NU
    0xB92D494E4C61746Ellu, // njo_Latn_IN
    0x6E6C4E4C4C61746Ellu, // nl_Latn_NL
    0x998D434D4C61746Ellu, // nmg_Latn_CM
    0x6E6E4E4F4C61746Ellu, // nn_Latn_NO
    0x9DAD434D4C61746Ellu, // nnh_Latn_CM
    0x6E6F4E4F4C61746Ellu, // no_Latn_NO
    0x8DCD54484C616E61llu, // nod_Lana_TH
    0x91CD494E44657661llu, // noe_Deva_IN
    0xB5CD534552756E72llu, // non_Runr_SE
    0xBA0D474E4E6B6F6Fllu, // nqo_Nkoo_GN
    0x6E725A414C61746Ellu, // nr_Latn_ZA
    0xAA4D434143616E73llu, // nsk_Cans_CA
    0xBA4D5A414C61746Ellu, // nso_Latn_ZA
    0xCA8D53534C61746Ellu, // nus_Latn_SS
    0x6E7655534C61746Ellu, // nv_Latn_US
    0xC2ED434E4C61746Ellu, // nxq_Latn_CN
    0x6E794D574C61746Ellu, // ny_Latn_MW
    0xB30D545A4C61746Ellu, // nym_Latn_TZ
    0xB70D55474C61746Ellu, // nyn_Latn_UG
    0xA32D47484C61746Ellu, // nzi_Latn_GH
    0x6F6346524C61746Ellu, // oc_Latn_FR
    0x6F6D45544C61746Ellu, // om_Latn_ET
    0x6F72494E4F727961llu, // or_Orya_IN
    0x6F7347454379726Cllu, // os_Cyrl_GE
    0xAA6E4D4E4F726B68llu, // otk_Orkh_MN
    0x7061504B41726162llu, // pa_Arab_PK
    0x7061494E47757275llu, // pa_Guru_IN
    0x980F50484C61746Ellu, // pag_Latn_PH
    0xAC0F495250686C69llu, // pal_Phli_IR
    0xAC0F434E50686C70llu, // pal_Phlp_CN
    0xB00F50484C61746Ellu, // pam_Latn_PH
    0xBC0F41574C61746Ellu, // pap_Latn_AW
    0xD00F50574C61746Ellu, // pau_Latn_PW
    0x8C4F46524C61746Ellu, // pcd_Latn_FR
    0xB04F4E474C61746Ellu, // pcm_Latn_NG
    0x886F55534C61746Ellu, // pdc_Latn_US
    0xCC6F43414C61746Ellu, // pdt_Latn_CA
    0xB88F49525870656Fllu, // peo_Xpeo_IR
    0xACAF44454C61746Ellu, // pfl_Latn_DE
    0xB4EF4C4250686E78llu, // phn_Phnx_LB
    0x814F494E42726168llu, // pka_Brah_IN
    0xB94F4B454C61746Ellu, // pko_Latn_KE
    0x706C504C4C61746Ellu, // pl_Latn_PL
    0xC98F49544C61746Ellu, // pms_Latn_IT
    0xCDAF47524772656Bllu, // pnt_Grek_GR
    0xB5CF464D4C61746Ellu, // pon_Latn_FM
    0x822F504B4B686172llu, // pra_Khar_PK
    0x8E2F495241726162llu, // prd_Arab_IR
    0x7073414641726162llu, // ps_Arab_AF
    0x707442524C61746Ellu, // pt_Latn_BR
    0xD28F47414C61746Ellu, // puu_Latn_GA
    0x717550454C61746Ellu, // qu_Latn_PE
    0x8A9047544C61746Ellu, // quc_Latn_GT
    0x9A9045434C61746Ellu, // qug_Latn_EC
    0xA411494E44657661llu, // raj_Deva_IN
    0x945152454C61746Ellu, // rcf_Latn_RE
    0xA49149444C61746Ellu, // rej_Latn_ID
    0xB4D149544C61746Ellu, // rgn_Latn_IT
    0x8111494E4C61746Ellu, // ria_Latn_IN
    0x95114D4154666E67llu, // rif_Tfng_MA
    0xC9314E5044657661llu, // rjs_Deva_NP
    0xCD51424442656E67llu, // rkt_Beng_BD
    0x726D43484C61746Ellu, // rm_Latn_CH
    0x959146494C61746Ellu, // rmf_Latn_FI
    0xB99143484C61746Ellu, // rmo_Latn_CH
    0xCD91495241726162llu, // rmt_Arab_IR
    0xD19153454C61746Ellu, // rmu_Latn_SE
    0x726E42494C61746Ellu, // rn_Latn_BI
    0x99B14D5A4C61746Ellu, // rng_Latn_MZ
    0x726F524F4C61746Ellu, // ro_Latn_RO
    0x85D149444C61746Ellu, // rob_Latn_ID
    0x95D1545A4C61746Ellu, // rof_Latn_TZ
    0xB271464A4C61746Ellu, // rtm_Latn_FJ
    0x727552554379726Cllu, // ru_Cyrl_RU
    0x929155414379726Cllu, // rue_Cyrl_UA
    0x9A9153424C61746Ellu, // rug_Latn_SB
    0x727752574C61746Ellu, // rw_Latn_RW
    0xAAD1545A4C61746Ellu, // rwk_Latn_TZ
    0xD3114A504B616E61llu, // ryu_Kana_JP
    0x7361494E44657661llu, // sa_Deva_IN
    0x941247484C61746Ellu, // saf_Latn_GH
    0x9C1252554379726Cllu, // sah_Cyrl_RU
    0xC0124B454C61746Ellu, // saq_Latn_KE
    0xC81249444C61746Ellu, // sas_Latn_ID
    0xCC12494E4C61746Ellu, // sat_Latn_IN
    0xE412494E53617572llu, // saz_Saur_IN
    0xBC32545A4C61746Ellu, // sbp_Latn_TZ
    0x736349544C61746Ellu, // sc_Latn_IT
    0xA852494E44657661llu, // sck_Deva_IN
    0xB45249544C61746Ellu, // scn_Latn_IT
    0xB85247424C61746Ellu, // sco_Latn_GB
    0xC85243414C61746Ellu, // scs_Latn_CA
    0x7364504B41726162llu, // sd_Arab_PK
    0x7364494E44657661llu, // sd_Deva_IN
    0x7364494E4B686F6Allu, // sd_Khoj_IN
    0x7364494E53696E64llu, // sd_Sind_IN
    0x887249544C61746Ellu, // sdc_Latn_IT
    0x9C72495241726162llu, // sdh_Arab_IR
    0x73654E4F4C61746Ellu, // se_Latn_NO
    0x949243494C61746Ellu, // sef_Latn_CI
    0x9C924D5A4C61746Ellu, // seh_Latn_MZ
    0xA0924D584C61746Ellu, // sei_Latn_MX
    0xC8924D4C4C61746Ellu, // ses_Latn_ML
    0x736743464C61746Ellu, // sg_Latn_CF
    0x80D249454F67616Dllu, // sga_Ogam_IE
    0xC8D24C544C61746Ellu, // sgs_Latn_LT
    0xA0F24D4154666E67llu, // shi_Tfng_MA
    0xB4F24D4D4D796D72llu, // shn_Mymr_MM
    0x73694C4B53696E68llu, // si_Sinh_LK
    0x8D1245544C61746Ellu, // sid_Latn_ET
    0x736B534B4C61746Ellu, // sk_Latn_SK
    0xC552504B41726162llu, // skr_Arab_PK
    0x736C53494C61746Ellu, // sl_Latn_SI
    0xA172504C4C61746Ellu, // sli_Latn_PL
    0xE17249444C61746Ellu, // sly_Latn_ID
    0x736D57534C61746Ellu, // sm_Latn_WS
    0x819253454C61746Ellu, // sma_Latn_SE
    0xA59253454C61746Ellu, // smj_Latn_SE
    0xB59246494C61746Ellu, // smn_Latn_FI
    0xBD92494C53616D72llu, // smp_Samr_IL
    0xC99246494C61746Ellu, // sms_Latn_FI
    0x736E5A574C61746Ellu, // sn_Latn_ZW
    0xA9B24D4C4C61746Ellu, // snk_Latn_ML
    0x736F534F4C61746Ellu, // so_Latn_SO
    0xD1D2544854686169llu, // sou_Thai_TH
    0x7371414C4C61746Ellu, // sq_Latn_AL
    0x737252534379726Cllu, // sr_Cyrl_RS
    0x737252534C61746Ellu, // sr_Latn_RS
    0x8632494E536F7261llu, // srb_Sora_IN
    0xB63253524C61746Ellu, // srn_Latn_SR
    0xC632534E4C61746Ellu, // srr_Latn_SN
    0xDE32494E44657661llu, // srx_Deva_IN
    0x73735A414C61746Ellu, // ss_Latn_ZA
    0xE25245524C61746Ellu, // ssy_Latn_ER
    0x73745A414C61746Ellu, // st_Latn_ZA
    0xC27244454C61746Ellu, // stq_Latn_DE
    0x737549444C61746Ellu, // su_Latn_ID
    0xAA92545A4C61746Ellu, // suk_Latn_TZ
    0xCA92474E4C61746Ellu, // sus_Latn_GN
    0x737653454C61746Ellu, // sv_Latn_SE
    0x7377545A4C61746Ellu, // sw_Latn_TZ
    0x86D2595441726162llu, // swb_Arab_YT
    0x8AD243444C61746Ellu, // swc_Latn_CD
    0x9AD244454C61746Ellu, // swg_Latn_DE
    0xD6D2494E44657661llu, // swv_Deva_IN
    0xB6F249444C61746Ellu, // sxn_Latn_ID
    0xAF12424442656E67llu, // syl_Beng_BD
    0xC712495153797263llu, // syr_Syrc_IQ
    0xAF32504C4C61746Ellu, // szl_Latn_PL
    0x7461494E54616D6Cllu, // ta_Taml_IN
    0xA4134E5044657661llu, // taj_Deva_NP
    0xD83350484C61746Ellu, // tbw_Latn_PH
    0xE053494E4B6E6461llu, // tcy_Knda_IN
    0x8C73434E54616C65llu, // tdd_Tale_CN
    0x98734E5044657661llu, // tdg_Deva_NP
    0x9C734E5044657661llu, // tdh_Deva_NP
    0x7465494E54656C75llu, // te_Telu_IN
    0xB093534C4C61746Ellu, // tem_Latn_SL
    0xB89355474C61746Ellu, // teo_Latn_UG
    0xCC93544C4C61746Ellu, // tet_Latn_TL
    0x7467504B41726162llu, // tg_Arab_PK
    0x7467544A4379726Cllu, // tg_Cyrl_TJ
    0x7468544854686169llu, // th_Thai_TH
    0xACF34E5044657661llu, // thl_Deva_NP
    0xC0F34E5044657661llu, // thq_Deva_NP
    0xC4F34E5044657661llu, // thr_Deva_NP
    0x7469455445746869llu, // ti_Ethi_ET
    0x9913455245746869llu, // tig_Ethi_ER
    0xD5134E474C61746Ellu, // tiv_Latn_NG
    0x746B544D4C61746Ellu, // tk_Latn_TM
    0xAD53544B4C61746Ellu, // tkl_Latn_TK
    0xC553415A4C61746Ellu, // tkr_Latn_AZ
    0xCD534E5044657661llu, // tkt_Deva_NP
    0x746C50484C61746Ellu, // tl_Latn_PH
    0xE173415A4C61746Ellu, // tly_Latn_AZ
    0x9D934E454C61746Ellu, // tmh_Latn_NE
    0x746E5A414C61746Ellu, // tn_Latn_ZA
    0x746F544F4C61746Ellu, // to_Latn_TO
    0x99D34D574C61746Ellu, // tog_Latn_MW
    0xA1F350474C61746Ellu, // tpi_Latn_PG
    0x747254524C61746Ellu, // tr_Latn_TR
    0xD23354524C61746Ellu, // tru_Latn_TR
    0xD63354574C61746Ellu, // trv_Latn_TW
    0x74735A414C61746Ellu, // ts_Latn_ZA
    0x8E5347524772656Bllu, // tsd_Grek_GR
    0x96534E5044657661llu, // tsf_Deva_NP
    0x9A5350484C61746Ellu, // tsg_Latn_PH
    0xA653425454696274llu, // tsj_Tibt_BT
    0x747452554379726Cllu, // tt_Cyrl_RU
    0xA67355474C61746Ellu, // ttj_Latn_UG
    0xCA73544854686169llu, // tts_Thai_TH
    0xCE73415A4C61746Ellu, // ttt_Latn_AZ
    0xB2934D574C61746Ellu, // tum_Latn_MW
    0xAEB354564C61746Ellu, // tvl_Latn_TV
    0xC2D34E454C61746Ellu, // twq_Latn_NE
    0x747950464C61746Ellu, // ty_Latn_PF
    0xD71352554379726Cllu, // tyv_Cyrl_RU
    0xB3334D414C61746Ellu, // tzm_Latn_MA
    0xB07452554379726Cllu, // udm_Cyrl_RU
    0x7567434E41726162llu, // ug_Arab_CN
    0x75674B5A4379726Cllu, // ug_Cyrl_KZ
    0x80D4535955676172llu, // uga_Ugar_SY
    0x756B55414379726Cllu, // uk_Cyrl_UA
    0xA174464D4C61746Ellu, // uli_Latn_FM
    0x8594414F4C61746Ellu, // umb_Latn_AO
    0xC5B4494E42656E67llu, // unr_Beng_IN
    0xC5B44E5044657661llu, // unr_Deva_NP
    0xDDB4494E42656E67llu, // unx_Beng_IN
    0x7572504B41726162llu, // ur_Arab_PK
    0x757A414641726162llu, // uz_Arab_AF
    0x757A555A4C61746Ellu, // uz_Latn_UZ
    0xA0154C5256616969llu, // vai_Vaii_LR
    0x76655A414C61746Ellu, // ve_Latn_ZA
    0x889549544C61746Ellu, // vec_Latn_IT
    0xBC9552554C61746Ellu, // vep_Latn_RU
    0x7669564E4C61746Ellu, // vi_Latn_VN
    0x891553584C61746Ellu, // vic_Latn_SX
    0xC97542454C61746Ellu, // vls_Latn_BE
    0x959544454C61746Ellu, // vmf_Latn_DE
    0xD9954D5A4C61746Ellu, // vmw_Latn_MZ
    0xCDD552554C61746Ellu, // vot_Latn_RU
    0xBA3545454C61746Ellu, // vro_Latn_EE
    0xB695545A4C61746Ellu, // vun_Latn_TZ
    0x776142454C61746Ellu, // wa_Latn_BE
    0x901643484C61746Ellu, // wae_Latn_CH
    0xAC16455445746869llu, // wal_Ethi_ET
    0xC41650484C61746Ellu, // war_Latn_PH
    0xBC3641554C61746Ellu, // wbp_Latn_AU
    0xC036494E54656C75llu, // wbq_Telu_IN
    0xC436494E44657661llu, // wbr_Deva_IN
    0xC97657464C61746Ellu, // wls_Latn_WF
    0xA1B64B4D41726162llu, // wni_Arab_KM
    0x776F534E4C61746Ellu, // wo_Latn_SN
    0xB276494E44657661llu, // wtm_Deva_IN
    0xD296434E48616E73llu, // wuu_Hans_CN
    0xD41742524C61746Ellu, // xav_Latn_BR
    0xC457545243617269llu, // xcr_Cari_TR
    0x78685A414C61746Ellu, // xh_Latn_ZA
    0x897754524C796369llu, // xlc_Lyci_TR
    0x8D7754524C796469llu, // xld_Lydi_TR
    0x9597474547656F72llu, // xmf_Geor_GE
    0xB597434E4D616E69llu, // xmn_Mani_CN
    0xC59753444D657263llu, // xmr_Merc_SD
    0x81B753414E617262llu, // xna_Narb_SA
    0xC5B7494E44657661llu, // xnr_Deva_IN
    0x99D755474C61746Ellu, // xog_Latn_UG
    0xC5F7495250727469llu, // xpr_Prti_IR
    0x8257594553617262llu, // xsa_Sarb_YE
    0xC6574E5044657661llu, // xsr_Deva_NP
    0xB8184D5A4C61746Ellu, // yao_Latn_MZ
    0xBC18464D4C61746Ellu, // yap_Latn_FM
    0xD418434D4C61746Ellu, // yav_Latn_CM
    0x8438434D4C61746Ellu, // ybb_Latn_CM
    0x796F4E474C61746Ellu, // yo_Latn_NG
    0xAE3842524C61746Ellu, // yrl_Latn_BR
    0x82984D584C61746Ellu, // yua_Latn_MX
    0x7A61434E4C61746Ellu, // za_Latn_CN
    0x981953444C61746Ellu, // zag_Latn_SD
    0xA4794B4D41726162llu, // zdj_Arab_KM
    0x80994E4C4C61746Ellu, // zea_Latn_NL
    0x9CD94D4154666E67llu, // zgh_Tfng_MA
    0x7A685457426F706Fllu, // zh_Bopo_TW
    0x7A68434E48616E73llu, // zh_Hans_CN
    0x7A68545748616E74llu, // zh_Hant_TW
    0xA1994D594C61746Ellu, // zmi_Latn_MY
    0x7A755A414C61746Ellu, // zu_Latn_ZA
    0x833954524C61746Ellu, // zza_Latn_TR
});

const std::unordered_map<uint32_t, uint32_t> ARAB_PARENTS({
    {0x6172445Au, 0x61729420u}, // ar-DZ -> ar-015
    {0x61724548u, 0x61729420u}, // ar-EH -> ar-015
    {0x61724C59u, 0x61729420u}, // ar-LY -> ar-015
    {0x61724D41u, 0x61729420u}, // ar-MA -> ar-015
    {0x6172544Eu, 0x61729420u}, // ar-TN -> ar-015
});

const std::unordered_map<uint32_t, uint32_t> HANT_PARENTS({
    {0x7A684D4Fu, 0x7A68484Bu}, // zh-Hant-MO -> zh-Hant-HK
});

const std::unordered_map<uint32_t, uint32_t> LATN_PARENTS({
    {0x656E80A1u, 0x656E8400u}, // en-150 -> en-001
    {0x656E4147u, 0x656E8400u}, // en-AG -> en-001
    {0x656E4149u, 0x656E8400u}, // en-AI -> en-001
    {0x656E4154u, 0x656E80A1u}, // en-AT -> en-150
    {0x656E4155u, 0x656E8400u}, // en-AU -> en-001
    {0x656E4242u, 0x656E8400u}, // en-BB -> en-001
    {0x656E4245u, 0x656E8400u}, // en-BE -> en-001
    {0x656E424Du, 0x656E8400u}, // en-BM -> en-001
    {0x656E4253u, 0x656E8400u}, // en-BS -> en-001
    {0x656E4257u, 0x656E8400u}, // en-BW -> en-001
    {0x656E425Au, 0x656E8400u}, // en-BZ -> en-001
    {0x656E4341u, 0x656E8400u}, // en-CA -> en-001
    {0x656E4343u, 0x656E8400u}, // en-CC -> en-001
    {0x656E4348u, 0x656E80A1u}, // en-CH -> en-150
    {0x656E434Bu, 0x656E8400u}, // en-CK -> en-001
    {0x656E434Du, 0x656E8400u}, // en-CM -> en-001
    {0x656E4358u, 0x656E8400u}, // en-CX -> en-001
    {0x656E4359u, 0x656E8400u}, // en-CY -> en-001
    {0x656E4445u, 0x656E80A1u}, // en-DE -> en-150
    {0x656E4447u, 0x656E8400u}, // en-DG -> en-001
    {0x656E444Bu, 0x656E80A1u}, // en-DK -> en-150
    {0x656E444Du, 0x656E8400u}, // en-DM -> en-001
    {0x656E4552u, 0x656E8400u}, // en-ER -> en-001
    {0x656E4649u, 0x656E80A1u}, // en-FI -> en-150
    {0x656E464Au, 0x656E8400u}, // en-FJ -> en-001
    {0x656E464Bu, 0x656E8400u}, // en-FK -> en-001
    {0x656E464Du, 0x656E8400u}, // en-FM -> en-001
    {0x656E4742u, 0x656E8400u}, // en-GB -> en-001
    {0x656E4744u, 0x656E8400u}, // en-GD -> en-001
    {0x656E4747u, 0x656E8400u}, // en-GG -> en-001
    {0x656E4748u, 0x656E8400u}, // en-GH -> en-001
    {0x656E4749u, 0x656E8400u}, // en-GI -> en-001
    {0x656E474Du, 0x656E8400u}, // en-GM -> en-001
    {0x656E4759u, 0x656E8400u}, // en-GY -> en-001
    {0x656E484Bu, 0x656E8400u}, // en-HK -> en-001
    {0x656E4945u, 0x656E8400u}, // en-IE -> en-001
    {0x656E494Cu, 0x656E8400u}, // en-IL -> en-001
    {0x656E494Du, 0x656E8400u}, // en-IM -> en-001
    {0x656E494Eu, 0x656E8400u}, // en-IN -> en-001
    {0x656E494Fu, 0x656E8400u}, // en-IO -> en-001
    {0x656E4A45u, 0x656E8400u}, // en-JE -> en-001
    {0x656E4A4Du, 0x656E8400u}, // en-JM -> en-001
    {0x656E4B45u, 0x656E8400u}, // en-KE -> en-001
    {0x656E4B49u, 0x656E8400u}, // en-KI -> en-001
    {0x656E4B4Eu, 0x656E8400u}, // en-KN -> en-001
    {0x656E4B59u, 0x656E8400u}, // en-KY -> en-001
    {0x656E4C43u, 0x656E8400u}, // en-LC -> en-001
    {0x656E4C52u, 0x656E8400u}, // en-LR -> en-001
    {0x656E4C53u, 0x656E8400u}, // en-LS -> en-001
    {0x656E4D47u, 0x656E8400u}, // en-MG -> en-001
    {0x656E4D4Fu, 0x656E8400u}, // en-MO -> en-001
    {0x656E4D53u, 0x656E8400u}, // en-MS -> en-001
    {0x656E4D54u, 0x656E8400u}, // en-MT -> en-001
    {0x656E4D55u, 0x656E8400u}, // en-MU -> en-001
    {0x656E4D57u, 0x656E8400u}, // en-MW -> en-001
    {0x656E4D59u, 0x656E8400u}, // en-MY -> en-001
    {0x656E4E41u, 0x656E8400u}, // en-NA -> en-001
    {0x656E4E46u, 0x656E8400u}, // en-NF -> en-001
    {0x656E4E47u, 0x656E8400u}, // en-NG -> en-001
    {0x656E4E4Cu, 0x656E80A1u}, // en-NL -> en-150
    {0x656E4E52u, 0x656E8400u}, // en-NR -> en-001
    {0x656E4E55u, 0x656E8400u}, // en-NU -> en-001
    {0x656E4E5Au, 0x656E8400u}, // en-NZ -> en-001
    {0x656E5047u, 0x656E8400u}, // en-PG -> en-001
    {0x656E5048u, 0x656E8400u}, // en-PH -> en-001
    {0x656E504Bu, 0x656E8400u}, // en-PK -> en-001
    {0x656E504Eu, 0x656E8400u}, // en-PN -> en-001
    {0x656E5057u, 0x656E8400u}, // en-PW -> en-001
    {0x656E5257u, 0x656E8400u}, // en-RW -> en-001
    {0x656E5342u, 0x656E8400u}, // en-SB -> en-001
    {0x656E5343u, 0x656E8400u}, // en-SC -> en-001
    {0x656E5344u, 0x656E8400u}, // en-SD -> en-001
    {0x656E5345u, 0x656E80A1u}, // en-SE -> en-150
    {0x656E5347u, 0x656E8400u}, // en-SG -> en-001
    {0x656E5348u, 0x656E8400u}, // en-SH -> en-001
    {0x656E5349u, 0x656E80A1u}, // en-SI -> en-150
    {0x656E534Cu, 0x656E8400u}, // en-SL -> en-001
    {0x656E5353u, 0x656E8400u}, // en-SS -> en-001
    {0x656E5358u, 0x656E8400u}, // en-SX -> en-001
    {0x656E535Au, 0x656E8400u}, // en-SZ -> en-001
    {0x656E5443u, 0x656E8400u}, // en-TC -> en-001
    {0x656E544Bu, 0x656E8400u}, // en-TK -> en-001
    {0x656E544Fu, 0x656E8400u}, // en-TO -> en-001
    {0x656E5454u, 0x656E8400u}, // en-TT -> en-001
    {0x656E5456u, 0x656E8400u}, // en-TV -> en-001
    {0x656E545Au, 0x656E8400u}, // en-TZ -> en-001
    {0x656E5547u, 0x656E8400u}, // en-UG -> en-001
    {0x656E5643u, 0x656E8400u}, // en-VC -> en-001
    {0x656E5647u, 0x656E8400u}, // en-VG -> en-001
    {0x656E5655u, 0x656E8400u}, // en-VU -> en-001
    {0x656E5753u, 0x656E8400u}, // en-WS -> en-001
    {0x656E5A41u, 0x656E8400u}, // en-ZA -> en-001
    {0x656E5A4Du, 0x656E8400u}, // en-ZM -> en-001
    {0x656E5A57u, 0x656E8400u}, // en-ZW -> en-001
    {0x65734152u, 0x6573A424u}, // es-AR -> es-419
    {0x6573424Fu, 0x6573A424u}, // es-BO -> es-419
    {0x6573434Cu, 0x6573A424u}, // es-CL -> es-419
    {0x6573434Fu, 0x6573A424u}, // es-CO -> es-419
    {0x65734352u, 0x6573A424u}, // es-CR -> es-419
    {0x65734355u, 0x6573A424u}, // es-CU -> es-419
    {0x6573444Fu, 0x6573A424u}, // es-DO -> es-419
    {0x65734543u, 0x6573A424u}, // es-EC -> es-419
    {0x65734754u, 0x6573A424u}, // es-GT -> es-419
    {0x6573484Eu, 0x6573A424u}, // es-HN -> es-419
    {0x65734D58u, 0x6573A424u}, // es-MX -> es-419
    {0x65734E49u, 0x6573A424u}, // es-NI -> es-419
    {0x65735041u, 0x6573A424u}, // es-PA -> es-419
    {0x65735045u, 0x6573A424u}, // es-PE -> es-419
    {0x65735052u, 0x6573A424u}, // es-PR -> es-419
    {0x65735059u, 0x6573A424u}, // es-PY -> es-419
    {0x65735356u, 0x6573A424u}, // es-SV -> es-419
    {0x65735553u, 0x6573A424u}, // es-US -> es-419
    {0x65735559u, 0x6573A424u}, // es-UY -> es-419
    {0x65735645u, 0x6573A424u}, // es-VE -> es-419
    {0x7074414Fu, 0x70745054u}, // pt-AO -> pt-PT
    {0x70744356u, 0x70745054u}, // pt-CV -> pt-PT
    {0x70744757u, 0x70745054u}, // pt-GW -> pt-PT
    {0x70744D4Fu, 0x70745054u}, // pt-MO -> pt-PT
    {0x70744D5Au, 0x70745054u}, // pt-MZ -> pt-PT
    {0x70745354u, 0x70745054u}, // pt-ST -> pt-PT
    {0x7074544Cu, 0x70745054u}, // pt-TL -> pt-PT
});

const struct {
    const char script[4];
    const std::unordered_map<uint32_t, uint32_t>* map;
} SCRIPT_PARENTS[] = {
    {{'A', 'r', 'a', 'b'}, &ARAB_PARENTS},
    {{'H', 'a', 'n', 't'}, &HANT_PARENTS},
    {{'L', 'a', 't', 'n'}, &LATN_PARENTS},
};

const size_t MAX_PARENT_DEPTH = 3;