regexr 0.1.2

A high-performance regex engine built from scratch with JIT compilation and SIMD acceleration
Documentation
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
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914
2915
2916
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928
2929
2930
2931
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
// DO NOT EDIT THIS FILE. IT WAS AUTOMATICALLY GENERATED BY:
//
//   ucd-generate property-bool /home/farhan/Projects/tokenizer/regexr/data/.ucd-temp/ucd-17.0.0
//
// Unicode version: 17.0.0.
//
// ucd-generate 0.3.1 is available on crates.io.

pub const BY_NAME: &'static [(&'static str, &'static [(u32, u32)])] = &[
  ("ASCII_Hex_Digit", ASCII_HEX_DIGIT), ("Alphabetic", ALPHABETIC),
  ("Bidi_Control", BIDI_CONTROL), ("Bidi_Mirrored", BIDI_MIRRORED),
  ("Case_Ignorable", CASE_IGNORABLE), ("Cased", CASED),
  ("Changes_When_Casefolded", CHANGES_WHEN_CASEFOLDED),
  ("Changes_When_Casemapped", CHANGES_WHEN_CASEMAPPED),
  ("Changes_When_Lowercased", CHANGES_WHEN_LOWERCASED),
  ("Changes_When_Titlecased", CHANGES_WHEN_TITLECASED),
  ("Changes_When_Uppercased", CHANGES_WHEN_UPPERCASED), ("Dash", DASH),
  ("Default_Ignorable_Code_Point", DEFAULT_IGNORABLE_CODE_POINT),
  ("Deprecated", DEPRECATED), ("Diacritic", DIACRITIC), ("Emoji", EMOJI),
  ("Emoji_Component", EMOJI_COMPONENT), ("Emoji_Modifier", EMOJI_MODIFIER),
  ("Emoji_Modifier_Base", EMOJI_MODIFIER_BASE),
  ("Emoji_Presentation", EMOJI_PRESENTATION),
  ("Extended_Pictographic", EXTENDED_PICTOGRAPHIC), ("Extender", EXTENDER),
  ("Grapheme_Base", GRAPHEME_BASE), ("Grapheme_Extend", GRAPHEME_EXTEND),
  ("Grapheme_Link", GRAPHEME_LINK), ("Hex_Digit", HEX_DIGIT),
  ("Hyphen", HYPHEN), ("IDS_Binary_Operator", IDS_BINARY_OPERATOR),
  ("IDS_Trinary_Operator", IDS_TRINARY_OPERATOR),
  ("IDS_Unary_Operator", IDS_UNARY_OPERATOR),
  ("ID_Compat_Math_Continue", ID_COMPAT_MATH_CONTINUE),
  ("ID_Compat_Math_Start", ID_COMPAT_MATH_START),
  ("ID_Continue", ID_CONTINUE), ("ID_Start", ID_START),
  ("Ideographic", IDEOGRAPHIC), ("InCB", INCB),
  ("Join_Control", JOIN_CONTROL),
  ("Logical_Order_Exception", LOGICAL_ORDER_EXCEPTION),
  ("Lowercase", LOWERCASE), ("Math", MATH),
  ("Modifier_Combining_Mark", MODIFIER_COMBINING_MARK),
  ("Noncharacter_Code_Point", NONCHARACTER_CODE_POINT),
  ("Other_Alphabetic", OTHER_ALPHABETIC),
  ("Other_Default_Ignorable_Code_Point", OTHER_DEFAULT_IGNORABLE_CODE_POINT),
  ("Other_Grapheme_Extend", OTHER_GRAPHEME_EXTEND),
  ("Other_ID_Continue", OTHER_ID_CONTINUE),
  ("Other_ID_Start", OTHER_ID_START), ("Other_Lowercase", OTHER_LOWERCASE),
  ("Other_Math", OTHER_MATH), ("Other_Uppercase", OTHER_UPPERCASE),
  ("Pattern_Syntax", PATTERN_SYNTAX),
  ("Pattern_White_Space", PATTERN_WHITE_SPACE),
  ("Prepended_Concatenation_Mark", PREPENDED_CONCATENATION_MARK),
  ("Quotation_Mark", QUOTATION_MARK), ("Radical", RADICAL),
  ("Regional_Indicator", REGIONAL_INDICATOR),
  ("Sentence_Terminal", SENTENCE_TERMINAL), ("Soft_Dotted", SOFT_DOTTED),
  ("Terminal_Punctuation", TERMINAL_PUNCTUATION),
  ("Unified_Ideograph", UNIFIED_IDEOGRAPH), ("Uppercase", UPPERCASE),
  ("Variation_Selector", VARIATION_SELECTOR), ("White_Space", WHITE_SPACE),
  ("XID_Continue", XID_CONTINUE), ("XID_Start", XID_START),
];

pub const ASCII_HEX_DIGIT: &'static [(u32, u32)] = &[
  (48, 57), (65, 70), (97, 102),
];

pub const ALPHABETIC: &'static [(u32, u32)] = &[
  (65, 90), (97, 122), (170, 170), (181, 181), (186, 186), (192, 214),
  (216, 246), (248, 705), (710, 721), (736, 740), (748, 748), (750, 750),
  (837, 837), (867, 884), (886, 887), (890, 893), (895, 895), (902, 902),
  (904, 906), (908, 908), (910, 929), (931, 1013), (1015, 1153), (1162, 1327),
  (1329, 1366), (1369, 1369), (1376, 1416), (1456, 1469), (1471, 1471),
  (1473, 1474), (1476, 1477), (1479, 1479), (1488, 1514), (1519, 1522),
  (1552, 1562), (1568, 1623), (1625, 1631), (1646, 1747), (1749, 1756),
  (1761, 1768), (1773, 1775), (1786, 1788), (1791, 1791), (1808, 1855),
  (1869, 1969), (1994, 2026), (2036, 2037), (2042, 2042), (2048, 2071),
  (2074, 2092), (2112, 2136), (2144, 2154), (2160, 2183), (2185, 2191),
  (2199, 2199), (2208, 2249), (2260, 2271), (2275, 2281), (2288, 2363),
  (2365, 2380), (2382, 2384), (2389, 2403), (2417, 2435), (2437, 2444),
  (2447, 2448), (2451, 2472), (2474, 2480), (2482, 2482), (2486, 2489),
  (2493, 2500), (2503, 2504), (2507, 2508), (2510, 2510), (2519, 2519),
  (2524, 2525), (2527, 2531), (2544, 2545), (2556, 2556), (2561, 2563),
  (2565, 2570), (2575, 2576), (2579, 2600), (2602, 2608), (2610, 2611),
  (2613, 2614), (2616, 2617), (2622, 2626), (2631, 2632), (2635, 2636),
  (2641, 2641), (2649, 2652), (2654, 2654), (2672, 2677), (2689, 2691),
  (2693, 2701), (2703, 2705), (2707, 2728), (2730, 2736), (2738, 2739),
  (2741, 2745), (2749, 2757), (2759, 2761), (2763, 2764), (2768, 2768),
  (2784, 2787), (2809, 2812), (2817, 2819), (2821, 2828), (2831, 2832),
  (2835, 2856), (2858, 2864), (2866, 2867), (2869, 2873), (2877, 2884),
  (2887, 2888), (2891, 2892), (2902, 2903), (2908, 2909), (2911, 2915),
  (2929, 2929), (2946, 2947), (2949, 2954), (2958, 2960), (2962, 2965),
  (2969, 2970), (2972, 2972), (2974, 2975), (2979, 2980), (2984, 2986),
  (2990, 3001), (3006, 3010), (3014, 3016), (3018, 3020), (3024, 3024),
  (3031, 3031), (3072, 3084), (3086, 3088), (3090, 3112), (3114, 3129),
  (3133, 3140), (3142, 3144), (3146, 3148), (3157, 3158), (3160, 3162),
  (3164, 3165), (3168, 3171), (3200, 3203), (3205, 3212), (3214, 3216),
  (3218, 3240), (3242, 3251), (3253, 3257), (3261, 3268), (3270, 3272),
  (3274, 3276), (3285, 3286), (3292, 3294), (3296, 3299), (3313, 3315),
  (3328, 3340), (3342, 3344), (3346, 3386), (3389, 3396), (3398, 3400),
  (3402, 3404), (3406, 3406), (3412, 3415), (3423, 3427), (3450, 3455),
  (3457, 3459), (3461, 3478), (3482, 3505), (3507, 3515), (3517, 3517),
  (3520, 3526), (3535, 3540), (3542, 3542), (3544, 3551), (3570, 3571),
  (3585, 3642), (3648, 3654), (3661, 3661), (3713, 3714), (3716, 3716),
  (3718, 3722), (3724, 3747), (3749, 3749), (3751, 3769), (3771, 3773),
  (3776, 3780), (3782, 3782), (3789, 3789), (3804, 3807), (3840, 3840),
  (3904, 3911), (3913, 3948), (3953, 3971), (3976, 3991), (3993, 4028),
  (4096, 4150), (4152, 4152), (4155, 4159), (4176, 4239), (4250, 4253),
  (4256, 4293), (4295, 4295), (4301, 4301), (4304, 4346), (4348, 4680),
  (4682, 4685), (4688, 4694), (4696, 4696), (4698, 4701), (4704, 4744),
  (4746, 4749), (4752, 4784), (4786, 4789), (4792, 4798), (4800, 4800),
  (4802, 4805), (4808, 4822), (4824, 4880), (4882, 4885), (4888, 4954),
  (4992, 5007), (5024, 5109), (5112, 5117), (5121, 5740), (5743, 5759),
  (5761, 5786), (5792, 5866), (5870, 5880), (5888, 5907), (5919, 5939),
  (5952, 5971), (5984, 5996), (5998, 6000), (6002, 6003), (6016, 6067),
  (6070, 6088), (6103, 6103), (6108, 6108), (6176, 6264), (6272, 6314),
  (6320, 6389), (6400, 6430), (6432, 6443), (6448, 6456), (6480, 6509),
  (6512, 6516), (6528, 6571), (6576, 6601), (6656, 6683), (6688, 6750),
  (6753, 6772), (6823, 6823), (6847, 6848), (6860, 6862), (6912, 6963),
  (6965, 6979), (6981, 6988), (7040, 7081), (7084, 7087), (7098, 7141),
  (7143, 7153), (7168, 7222), (7245, 7247), (7258, 7293), (7296, 7306),
  (7312, 7354), (7357, 7359), (7401, 7404), (7406, 7411), (7413, 7414),
  (7418, 7418), (7424, 7615), (7635, 7668), (7680, 7957), (7960, 7965),
  (7968, 8005), (8008, 8013), (8016, 8023), (8025, 8025), (8027, 8027),
  (8029, 8029), (8031, 8061), (8064, 8116), (8118, 8124), (8126, 8126),
  (8130, 8132), (8134, 8140), (8144, 8147), (8150, 8155), (8160, 8172),
  (8178, 8180), (8182, 8188), (8305, 8305), (8319, 8319), (8336, 8348),
  (8450, 8450), (8455, 8455), (8458, 8467), (8469, 8469), (8473, 8477),
  (8484, 8484), (8486, 8486), (8488, 8488), (8490, 8493), (8495, 8505),
  (8508, 8511), (8517, 8521), (8526, 8526), (8544, 8584), (9398, 9449),
  (11264, 11492), (11499, 11502), (11506, 11507), (11520, 11557),
  (11559, 11559), (11565, 11565), (11568, 11623), (11631, 11631),
  (11648, 11670), (11680, 11686), (11688, 11694), (11696, 11702),
  (11704, 11710), (11712, 11718), (11720, 11726), (11728, 11734),
  (11736, 11742), (11744, 11775), (11823, 11823), (12293, 12295),
  (12321, 12329), (12337, 12341), (12344, 12348), (12353, 12438),
  (12445, 12447), (12449, 12538), (12540, 12543), (12549, 12591),
  (12593, 12686), (12704, 12735), (12784, 12799), (13312, 19903),
  (19968, 42124), (42192, 42237), (42240, 42508), (42512, 42527),
  (42538, 42539), (42560, 42606), (42612, 42619), (42623, 42735),
  (42775, 42783), (42786, 42888), (42891, 42972), (42993, 43013),
  (43015, 43047), (43072, 43123), (43136, 43203), (43205, 43205),
  (43250, 43255), (43259, 43259), (43261, 43263), (43274, 43306),
  (43312, 43346), (43360, 43388), (43392, 43442), (43444, 43455),
  (43471, 43471), (43488, 43503), (43514, 43518), (43520, 43574),
  (43584, 43597), (43616, 43638), (43642, 43710), (43712, 43712),
  (43714, 43714), (43739, 43741), (43744, 43759), (43762, 43765),
  (43777, 43782), (43785, 43790), (43793, 43798), (43808, 43814),
  (43816, 43822), (43824, 43866), (43868, 43881), (43888, 44010),
  (44032, 55203), (55216, 55238), (55243, 55291), (63744, 64109),
  (64112, 64217), (64256, 64262), (64275, 64279), (64285, 64296),
  (64298, 64310), (64312, 64316), (64318, 64318), (64320, 64321),
  (64323, 64324), (64326, 64433), (64467, 64829), (64848, 64911),
  (64914, 64967), (65008, 65019), (65136, 65140), (65142, 65276),
  (65313, 65338), (65345, 65370), (65382, 65470), (65474, 65479),
  (65482, 65487), (65490, 65495), (65498, 65500), (65536, 65547),
  (65549, 65574), (65576, 65594), (65596, 65597), (65599, 65613),
  (65616, 65629), (65664, 65786), (65856, 65908), (66176, 66204),
  (66208, 66256), (66304, 66335), (66349, 66378), (66384, 66426),
  (66432, 66461), (66464, 66499), (66504, 66511), (66513, 66517),
  (66560, 66717), (66736, 66771), (66776, 66811), (66816, 66855),
  (66864, 66915), (66928, 66938), (66940, 66954), (66956, 66962),
  (66964, 66965), (66967, 66977), (66979, 66993), (66995, 67001),
  (67003, 67004), (67008, 67059), (67072, 67382), (67392, 67413),
  (67424, 67431), (67456, 67461), (67463, 67504), (67506, 67514),
  (67584, 67589), (67592, 67592), (67594, 67637), (67639, 67640),
  (67644, 67644), (67647, 67669), (67680, 67702), (67712, 67742),
  (67808, 67826), (67828, 67829), (67840, 67861), (67872, 67897),
  (67904, 67929), (67968, 68023), (68030, 68031), (68096, 68099),
  (68101, 68102), (68108, 68115), (68117, 68119), (68121, 68149),
  (68192, 68220), (68224, 68252), (68288, 68295), (68297, 68324),
  (68352, 68405), (68416, 68437), (68448, 68466), (68480, 68497),
  (68608, 68680), (68736, 68786), (68800, 68850), (68864, 68903),
  (68938, 68965), (68969, 68969), (68975, 68997), (69248, 69289),
  (69291, 69292), (69296, 69297), (69314, 69319), (69370, 69372),
  (69376, 69404), (69415, 69415), (69424, 69445), (69488, 69505),
  (69552, 69572), (69600, 69622), (69632, 69701), (69745, 69749),
  (69760, 69816), (69826, 69826), (69840, 69864), (69888, 69938),
  (69956, 69959), (69968, 70002), (70006, 70006), (70016, 70079),
  (70081, 70084), (70094, 70095), (70106, 70106), (70108, 70108),
  (70144, 70161), (70163, 70196), (70199, 70199), (70206, 70209),
  (70272, 70278), (70280, 70280), (70282, 70285), (70287, 70301),
  (70303, 70312), (70320, 70376), (70400, 70403), (70405, 70412),
  (70415, 70416), (70419, 70440), (70442, 70448), (70450, 70451),
  (70453, 70457), (70461, 70468), (70471, 70472), (70475, 70476),
  (70480, 70480), (70487, 70487), (70493, 70499), (70528, 70537),
  (70539, 70539), (70542, 70542), (70544, 70581), (70583, 70592),
  (70594, 70594), (70597, 70597), (70599, 70602), (70604, 70605),
  (70609, 70609), (70611, 70611), (70656, 70721), (70723, 70725),
  (70727, 70730), (70751, 70753), (70784, 70849), (70852, 70853),
  (70855, 70855), (71040, 71093), (71096, 71102), (71128, 71133),
  (71168, 71230), (71232, 71232), (71236, 71236), (71296, 71349),
  (71352, 71352), (71424, 71450), (71453, 71466), (71488, 71494),
  (71680, 71736), (71840, 71903), (71935, 71942), (71945, 71945),
  (71948, 71955), (71957, 71958), (71960, 71989), (71991, 71992),
  (71995, 71996), (71999, 72002), (72096, 72103), (72106, 72151),
  (72154, 72159), (72161, 72161), (72163, 72164), (72192, 72242),
  (72245, 72254), (72272, 72343), (72349, 72349), (72368, 72440),
  (72544, 72551), (72640, 72672), (72704, 72712), (72714, 72758),
  (72760, 72766), (72768, 72768), (72818, 72847), (72850, 72871),
  (72873, 72886), (72960, 72966), (72968, 72969), (72971, 73014),
  (73018, 73018), (73020, 73021), (73023, 73025), (73027, 73027),
  (73030, 73031), (73056, 73061), (73063, 73064), (73066, 73102),
  (73104, 73105), (73107, 73110), (73112, 73112), (73136, 73179),
  (73440, 73462), (73472, 73488), (73490, 73530), (73534, 73536),
  (73648, 73648), (73728, 74649), (74752, 74862), (74880, 75075),
  (77712, 77808), (77824, 78895), (78913, 78918), (78944, 82938),
  (82944, 83526), (90368, 90414), (92160, 92728), (92736, 92766),
  (92784, 92862), (92880, 92909), (92928, 92975), (92992, 92995),
  (93027, 93047), (93053, 93071), (93504, 93548), (93760, 93823),
  (93856, 93880), (93883, 93907), (93952, 94026), (94031, 94087),
  (94095, 94111), (94176, 94177), (94179, 94179), (94192, 94198),
  (94208, 101589), (101631, 101662), (101760, 101874), (110576, 110579),
  (110581, 110587), (110589, 110590), (110592, 110882), (110898, 110898),
  (110928, 110930), (110933, 110933), (110948, 110951), (110960, 111355),
  (113664, 113770), (113776, 113788), (113792, 113800), (113808, 113817),
  (113822, 113822), (119808, 119892), (119894, 119964), (119966, 119967),
  (119970, 119970), (119973, 119974), (119977, 119980), (119982, 119993),
  (119995, 119995), (119997, 120003), (120005, 120069), (120071, 120074),
  (120077, 120084), (120086, 120092), (120094, 120121), (120123, 120126),
  (120128, 120132), (120134, 120134), (120138, 120144), (120146, 120485),
  (120488, 120512), (120514, 120538), (120540, 120570), (120572, 120596),
  (120598, 120628), (120630, 120654), (120656, 120686), (120688, 120712),
  (120714, 120744), (120746, 120770), (120772, 120779), (122624, 122654),
  (122661, 122666), (122880, 122886), (122888, 122904), (122907, 122913),
  (122915, 122916), (122918, 122922), (122928, 122989), (123023, 123023),
  (123136, 123180), (123191, 123197), (123214, 123214), (123536, 123565),
  (123584, 123627), (124112, 124139), (124368, 124397), (124400, 124400),
  (124608, 124638), (124640, 124661), (124670, 124671), (124896, 124902),
  (124904, 124907), (124909, 124910), (124912, 124926), (124928, 125124),
  (125184, 125251), (125255, 125255), (125259, 125259), (126464, 126467),
  (126469, 126495), (126497, 126498), (126500, 126500), (126503, 126503),
  (126505, 126514), (126516, 126519), (126521, 126521), (126523, 126523),
  (126530, 126530), (126535, 126535), (126537, 126537), (126539, 126539),
  (126541, 126543), (126545, 126546), (126548, 126548), (126551, 126551),
  (126553, 126553), (126555, 126555), (126557, 126557), (126559, 126559),
  (126561, 126562), (126564, 126564), (126567, 126570), (126572, 126578),
  (126580, 126583), (126585, 126588), (126590, 126590), (126592, 126601),
  (126603, 126619), (126625, 126627), (126629, 126633), (126635, 126651),
  (127280, 127305), (127312, 127337), (127344, 127369), (131072, 173791),
  (173824, 178205), (178208, 183981), (183984, 191456), (191472, 192093),
  (194560, 195101), (196608, 201546), (201552, 210041),
];

pub const BIDI_CONTROL: &'static [(u32, u32)] = &[
  (1564, 1564), (8206, 8207), (8234, 8238), (8294, 8297),
];

pub const BIDI_MIRRORED: &'static [(u32, u32)] = &[
  (40, 41), (60, 60), (62, 62), (91, 91), (93, 93), (123, 123), (125, 125),
  (171, 171), (187, 187), (3898, 3901), (5787, 5788), (8249, 8250),
  (8261, 8262), (8317, 8318), (8333, 8334), (8512, 8512), (8705, 8708),
  (8712, 8717), (8721, 8721), (8725, 8726), (8730, 8733), (8735, 8738),
  (8740, 8740), (8742, 8742), (8747, 8755), (8761, 8761), (8763, 8780),
  (8786, 8789), (8799, 8800), (8802, 8802), (8804, 8811), (8813, 8844),
  (8847, 8850), (8856, 8856), (8866, 8867), (8870, 8888), (8894, 8895),
  (8905, 8909), (8912, 8913), (8918, 8941), (8944, 8959), (8968, 8971),
  (8992, 8993), (9001, 9002), (10088, 10101), (10176, 10176), (10179, 10182),
  (10184, 10185), (10187, 10189), (10195, 10198), (10204, 10206),
  (10210, 10223), (10627, 10648), (10651, 10656), (10658, 10671),
  (10680, 10680), (10688, 10693), (10697, 10697), (10702, 10706),
  (10708, 10709), (10712, 10716), (10721, 10721), (10723, 10725),
  (10728, 10729), (10740, 10745), (10748, 10749), (10762, 10780),
  (10782, 10785), (10788, 10788), (10790, 10790), (10793, 10793),
  (10795, 10798), (10804, 10805), (10812, 10814), (10839, 10840),
  (10852, 10853), (10858, 10861), (10863, 10864), (10867, 10868),
  (10873, 10915), (10918, 10925), (10927, 10966), (10972, 10972),
  (10974, 10974), (10978, 10982), (10988, 10990), (10995, 10995),
  (10999, 11003), (11005, 11005), (11262, 11262), (11778, 11781),
  (11785, 11786), (11788, 11789), (11804, 11805), (11808, 11817),
  (11861, 11868), (12296, 12305), (12308, 12315), (65113, 65118),
  (65124, 65125), (65288, 65289), (65308, 65308), (65310, 65310),
  (65339, 65339), (65341, 65341), (65371, 65371), (65373, 65373),
  (65375, 65376), (65378, 65379), (120539, 120539), (120597, 120597),
  (120655, 120655), (120713, 120713), (120771, 120771),
];

pub const CASE_IGNORABLE: &'static [(u32, u32)] = &[
  (39, 39), (46, 46), (58, 58), (94, 94), (96, 96), (168, 168), (173, 173),
  (175, 175), (180, 180), (183, 184), (688, 879), (884, 885), (890, 890),
  (900, 901), (903, 903), (1155, 1161), (1369, 1369), (1375, 1375),
  (1425, 1469), (1471, 1471), (1473, 1474), (1476, 1477), (1479, 1479),
  (1524, 1524), (1536, 1541), (1552, 1562), (1564, 1564), (1600, 1600),
  (1611, 1631), (1648, 1648), (1750, 1757), (1759, 1768), (1770, 1773),
  (1807, 1807), (1809, 1809), (1840, 1866), (1958, 1968), (2027, 2037),
  (2042, 2042), (2045, 2045), (2070, 2093), (2137, 2139), (2184, 2184),
  (2192, 2193), (2199, 2207), (2249, 2306), (2362, 2362), (2364, 2364),
  (2369, 2376), (2381, 2381), (2385, 2391), (2402, 2403), (2417, 2417),
  (2433, 2433), (2492, 2492), (2497, 2500), (2509, 2509), (2530, 2531),
  (2558, 2558), (2561, 2562), (2620, 2620), (2625, 2626), (2631, 2632),
  (2635, 2637), (2641, 2641), (2672, 2673), (2677, 2677), (2689, 2690),
  (2748, 2748), (2753, 2757), (2759, 2760), (2765, 2765), (2786, 2787),
  (2810, 2815), (2817, 2817), (2876, 2876), (2879, 2879), (2881, 2884),
  (2893, 2893), (2901, 2902), (2914, 2915), (2946, 2946), (3008, 3008),
  (3021, 3021), (3072, 3072), (3076, 3076), (3132, 3132), (3134, 3136),
  (3142, 3144), (3146, 3149), (3157, 3158), (3170, 3171), (3201, 3201),
  (3260, 3260), (3263, 3263), (3270, 3270), (3276, 3277), (3298, 3299),
  (3328, 3329), (3387, 3388), (3393, 3396), (3405, 3405), (3426, 3427),
  (3457, 3457), (3530, 3530), (3538, 3540), (3542, 3542), (3633, 3633),
  (3636, 3642), (3654, 3662), (3761, 3761), (3764, 3772), (3782, 3782),
  (3784, 3790), (3864, 3865), (3893, 3893), (3895, 3895), (3897, 3897),
  (3953, 3966), (3968, 3972), (3974, 3975), (3981, 3991), (3993, 4028),
  (4038, 4038), (4141, 4144), (4146, 4151), (4153, 4154), (4157, 4158),
  (4184, 4185), (4190, 4192), (4209, 4212), (4226, 4226), (4229, 4230),
  (4237, 4237), (4253, 4253), (4348, 4348), (4957, 4959), (5906, 5908),
  (5938, 5939), (5970, 5971), (6002, 6003), (6068, 6069), (6071, 6077),
  (6086, 6086), (6089, 6099), (6103, 6103), (6109, 6109), (6155, 6159),
  (6211, 6211), (6277, 6278), (6313, 6313), (6432, 6434), (6439, 6440),
  (6450, 6450), (6457, 6459), (6679, 6680), (6683, 6683), (6742, 6742),
  (6744, 6750), (6752, 6752), (6754, 6754), (6757, 6764), (6771, 6780),
  (6783, 6783), (6823, 6823), (6832, 6877), (6880, 6891), (6912, 6915),
  (6964, 6964), (6966, 6970), (6972, 6972), (6978, 6978), (7019, 7027),
  (7040, 7041), (7074, 7077), (7080, 7081), (7083, 7085), (7142, 7142),
  (7144, 7145), (7149, 7149), (7151, 7153), (7212, 7219), (7222, 7223),
  (7288, 7293), (7376, 7378), (7380, 7392), (7394, 7400), (7405, 7405),
  (7412, 7412), (7416, 7417), (7468, 7530), (7544, 7544), (7579, 7679),
  (8125, 8125), (8127, 8129), (8141, 8143), (8157, 8159), (8173, 8175),
  (8189, 8190), (8203, 8207), (8216, 8217), (8228, 8228), (8231, 8231),
  (8234, 8238), (8288, 8292), (8294, 8303), (8305, 8305), (8319, 8319),
  (8336, 8348), (8400, 8432), (11388, 11389), (11503, 11505), (11631, 11631),
  (11647, 11647), (11744, 11775), (11823, 11823), (12293, 12293),
  (12330, 12333), (12337, 12341), (12347, 12347), (12441, 12446),
  (12540, 12542), (40981, 40981), (42232, 42237), (42508, 42508),
  (42607, 42610), (42612, 42621), (42623, 42623), (42652, 42655),
  (42736, 42737), (42752, 42785), (42864, 42864), (42888, 42890),
  (42993, 42996), (43000, 43001), (43010, 43010), (43014, 43014),
  (43019, 43019), (43045, 43046), (43052, 43052), (43204, 43205),
  (43232, 43249), (43263, 43263), (43302, 43309), (43335, 43345),
  (43392, 43394), (43443, 43443), (43446, 43449), (43452, 43453),
  (43471, 43471), (43493, 43494), (43561, 43566), (43569, 43570),
  (43573, 43574), (43587, 43587), (43596, 43596), (43632, 43632),
  (43644, 43644), (43696, 43696), (43698, 43700), (43703, 43704),
  (43710, 43711), (43713, 43713), (43741, 43741), (43756, 43757),
  (43763, 43764), (43766, 43766), (43867, 43871), (43881, 43883),
  (44005, 44005), (44008, 44008), (44013, 44013), (64286, 64286),
  (64434, 64450), (65024, 65039), (65043, 65043), (65056, 65071),
  (65106, 65106), (65109, 65109), (65279, 65279), (65287, 65287),
  (65294, 65294), (65306, 65306), (65342, 65342), (65344, 65344),
  (65392, 65392), (65438, 65439), (65507, 65507), (65529, 65531),
  (66045, 66045), (66272, 66272), (66422, 66426), (67456, 67461),
  (67463, 67504), (67506, 67514), (68097, 68099), (68101, 68102),
  (68108, 68111), (68152, 68154), (68159, 68159), (68325, 68326),
  (68900, 68903), (68942, 68942), (68969, 68973), (68975, 68975),
  (69291, 69292), (69317, 69317), (69370, 69375), (69446, 69456),
  (69506, 69509), (69633, 69633), (69688, 69702), (69744, 69744),
  (69747, 69748), (69759, 69761), (69811, 69814), (69817, 69818),
  (69821, 69821), (69826, 69826), (69837, 69837), (69888, 69890),
  (69927, 69931), (69933, 69940), (70003, 70003), (70016, 70017),
  (70070, 70078), (70089, 70092), (70095, 70095), (70191, 70193),
  (70196, 70196), (70198, 70199), (70206, 70206), (70209, 70209),
  (70367, 70367), (70371, 70378), (70400, 70401), (70459, 70460),
  (70464, 70464), (70502, 70508), (70512, 70516), (70587, 70592),
  (70606, 70606), (70608, 70608), (70610, 70610), (70625, 70626),
  (70712, 70719), (70722, 70724), (70726, 70726), (70750, 70750),
  (70835, 70840), (70842, 70842), (70847, 70848), (70850, 70851),
  (71090, 71093), (71100, 71101), (71103, 71104), (71132, 71133),
  (71219, 71226), (71229, 71229), (71231, 71232), (71339, 71339),
  (71341, 71341), (71344, 71349), (71351, 71351), (71453, 71453),
  (71455, 71455), (71458, 71461), (71463, 71467), (71727, 71735),
  (71737, 71738), (71995, 71996), (71998, 71998), (72003, 72003),
  (72148, 72151), (72154, 72155), (72160, 72160), (72193, 72202),
  (72243, 72248), (72251, 72254), (72263, 72263), (72273, 72278),
  (72281, 72283), (72330, 72342), (72344, 72345), (72544, 72544),
  (72546, 72548), (72550, 72550), (72752, 72758), (72760, 72765),
  (72767, 72767), (72850, 72871), (72874, 72880), (72882, 72883),
  (72885, 72886), (73009, 73014), (73018, 73018), (73020, 73021),
  (73023, 73029), (73031, 73031), (73104, 73105), (73109, 73109),
  (73111, 73111), (73177, 73177), (73459, 73460), (73472, 73473),
  (73526, 73530), (73536, 73536), (73538, 73538), (73562, 73562),
  (78896, 78912), (78919, 78933), (90398, 90409), (90413, 90415),
  (92912, 92916), (92976, 92982), (92992, 92995), (93504, 93506),
  (93547, 93548), (94031, 94031), (94095, 94111), (94176, 94177),
  (94179, 94180), (94194, 94195), (110576, 110579), (110581, 110587),
  (110589, 110590), (113821, 113822), (113824, 113827), (118528, 118573),
  (118576, 118598), (119143, 119145), (119155, 119170), (119173, 119179),
  (119210, 119213), (119362, 119364), (121344, 121398), (121403, 121452),
  (121461, 121461), (121476, 121476), (121499, 121503), (121505, 121519),
  (122880, 122886), (122888, 122904), (122907, 122913), (122915, 122916),
  (122918, 122922), (122928, 122989), (123023, 123023), (123184, 123197),
  (123566, 123566), (123628, 123631), (124139, 124143), (124398, 124399),
  (124643, 124643), (124646, 124646), (124654, 124655), (124661, 124661),
  (124671, 124671), (125136, 125142), (125252, 125259), (127995, 127999),
  (917505, 917505), (917536, 917631), (917760, 917999),
];

pub const CASED: &'static [(u32, u32)] = &[
  (65, 90), (97, 122), (170, 170), (181, 181), (186, 186), (192, 214),
  (216, 246), (248, 442), (444, 447), (452, 659), (662, 696), (704, 705),
  (736, 740), (837, 837), (880, 883), (886, 887), (890, 893), (895, 895),
  (902, 902), (904, 906), (908, 908), (910, 929), (931, 1013), (1015, 1153),
  (1162, 1327), (1329, 1366), (1376, 1416), (4256, 4293), (4295, 4295),
  (4301, 4301), (4304, 4346), (4348, 4351), (5024, 5109), (5112, 5117),
  (7296, 7306), (7312, 7354), (7357, 7359), (7424, 7615), (7680, 7957),
  (7960, 7965), (7968, 8005), (8008, 8013), (8016, 8023), (8025, 8025),
  (8027, 8027), (8029, 8029), (8031, 8061), (8064, 8116), (8118, 8124),
  (8126, 8126), (8130, 8132), (8134, 8140), (8144, 8147), (8150, 8155),
  (8160, 8172), (8178, 8180), (8182, 8188), (8305, 8305), (8319, 8319),
  (8336, 8348), (8450, 8450), (8455, 8455), (8458, 8467), (8469, 8469),
  (8473, 8477), (8484, 8484), (8486, 8486), (8488, 8488), (8490, 8493),
  (8495, 8500), (8505, 8505), (8508, 8511), (8517, 8521), (8526, 8526),
  (8544, 8575), (8579, 8580), (9398, 9449), (11264, 11492), (11499, 11502),
  (11506, 11507), (11520, 11557), (11559, 11559), (11565, 11565),
  (42560, 42605), (42624, 42653), (42786, 42887), (42891, 42894),
  (42896, 42972), (42993, 42998), (43000, 43002), (43824, 43866),
  (43868, 43881), (43888, 43967), (64256, 64262), (64275, 64279),
  (65313, 65338), (65345, 65370), (66560, 66639), (66736, 66771),
  (66776, 66811), (66928, 66938), (66940, 66954), (66956, 66962),
  (66964, 66965), (66967, 66977), (66979, 66993), (66995, 67001),
  (67003, 67004), (67456, 67456), (67459, 67461), (67463, 67504),
  (67506, 67514), (68736, 68786), (68800, 68850), (68944, 68965),
  (68976, 68997), (71840, 71903), (93760, 93823), (93856, 93880),
  (93883, 93907), (119808, 119892), (119894, 119964), (119966, 119967),
  (119970, 119970), (119973, 119974), (119977, 119980), (119982, 119993),
  (119995, 119995), (119997, 120003), (120005, 120069), (120071, 120074),
  (120077, 120084), (120086, 120092), (120094, 120121), (120123, 120126),
  (120128, 120132), (120134, 120134), (120138, 120144), (120146, 120485),
  (120488, 120512), (120514, 120538), (120540, 120570), (120572, 120596),
  (120598, 120628), (120630, 120654), (120656, 120686), (120688, 120712),
  (120714, 120744), (120746, 120770), (120772, 120779), (122624, 122633),
  (122635, 122654), (122661, 122666), (122928, 122989), (125184, 125251),
  (127280, 127305), (127312, 127337), (127344, 127369),
];

pub const CHANGES_WHEN_CASEFOLDED: &'static [(u32, u32)] = &[
  (65, 90), (181, 181), (192, 214), (216, 223), (256, 256), (258, 258),
  (260, 260), (262, 262), (264, 264), (266, 266), (268, 268), (270, 270),
  (272, 272), (274, 274), (276, 276), (278, 278), (280, 280), (282, 282),
  (284, 284), (286, 286), (288, 288), (290, 290), (292, 292), (294, 294),
  (296, 296), (298, 298), (300, 300), (302, 302), (304, 304), (306, 306),
  (308, 308), (310, 310), (313, 313), (315, 315), (317, 317), (319, 319),
  (321, 321), (323, 323), (325, 325), (327, 327), (329, 330), (332, 332),
  (334, 334), (336, 336), (338, 338), (340, 340), (342, 342), (344, 344),
  (346, 346), (348, 348), (350, 350), (352, 352), (354, 354), (356, 356),
  (358, 358), (360, 360), (362, 362), (364, 364), (366, 366), (368, 368),
  (370, 370), (372, 372), (374, 374), (376, 377), (379, 379), (381, 381),
  (383, 383), (385, 386), (388, 388), (390, 391), (393, 395), (398, 401),
  (403, 404), (406, 408), (412, 413), (415, 416), (418, 418), (420, 420),
  (422, 423), (425, 425), (428, 428), (430, 431), (433, 435), (437, 437),
  (439, 440), (444, 444), (452, 453), (455, 456), (458, 459), (461, 461),
  (463, 463), (465, 465), (467, 467), (469, 469), (471, 471), (473, 473),
  (475, 475), (478, 478), (480, 480), (482, 482), (484, 484), (486, 486),
  (488, 488), (490, 490), (492, 492), (494, 494), (497, 498), (500, 500),
  (502, 504), (506, 506), (508, 508), (510, 510), (512, 512), (514, 514),
  (516, 516), (518, 518), (520, 520), (522, 522), (524, 524), (526, 526),
  (528, 528), (530, 530), (532, 532), (534, 534), (536, 536), (538, 538),
  (540, 540), (542, 542), (544, 544), (546, 546), (548, 548), (550, 550),
  (552, 552), (554, 554), (556, 556), (558, 558), (560, 560), (562, 562),
  (570, 571), (573, 574), (577, 577), (579, 582), (584, 584), (586, 586),
  (588, 588), (590, 590), (837, 837), (880, 880), (882, 882), (886, 886),
  (895, 895), (902, 902), (904, 906), (908, 908), (910, 911), (913, 929),
  (931, 939), (962, 962), (975, 977), (981, 982), (984, 984), (986, 986),
  (988, 988), (990, 990), (992, 992), (994, 994), (996, 996), (998, 998),
  (1000, 1000), (1002, 1002), (1004, 1004), (1006, 1006), (1008, 1009),
  (1012, 1013), (1015, 1015), (1017, 1018), (1021, 1071), (1120, 1120),
  (1122, 1122), (1124, 1124), (1126, 1126), (1128, 1128), (1130, 1130),
  (1132, 1132), (1134, 1134), (1136, 1136), (1138, 1138), (1140, 1140),
  (1142, 1142), (1144, 1144), (1146, 1146), (1148, 1148), (1150, 1150),
  (1152, 1152), (1162, 1162), (1164, 1164), (1166, 1166), (1168, 1168),
  (1170, 1170), (1172, 1172), (1174, 1174), (1176, 1176), (1178, 1178),
  (1180, 1180), (1182, 1182), (1184, 1184), (1186, 1186), (1188, 1188),
  (1190, 1190), (1192, 1192), (1194, 1194), (1196, 1196), (1198, 1198),
  (1200, 1200), (1202, 1202), (1204, 1204), (1206, 1206), (1208, 1208),
  (1210, 1210), (1212, 1212), (1214, 1214), (1216, 1217), (1219, 1219),
  (1221, 1221), (1223, 1223), (1225, 1225), (1227, 1227), (1229, 1229),
  (1232, 1232), (1234, 1234), (1236, 1236), (1238, 1238), (1240, 1240),
  (1242, 1242), (1244, 1244), (1246, 1246), (1248, 1248), (1250, 1250),
  (1252, 1252), (1254, 1254), (1256, 1256), (1258, 1258), (1260, 1260),
  (1262, 1262), (1264, 1264), (1266, 1266), (1268, 1268), (1270, 1270),
  (1272, 1272), (1274, 1274), (1276, 1276), (1278, 1278), (1280, 1280),
  (1282, 1282), (1284, 1284), (1286, 1286), (1288, 1288), (1290, 1290),
  (1292, 1292), (1294, 1294), (1296, 1296), (1298, 1298), (1300, 1300),
  (1302, 1302), (1304, 1304), (1306, 1306), (1308, 1308), (1310, 1310),
  (1312, 1312), (1314, 1314), (1316, 1316), (1318, 1318), (1320, 1320),
  (1322, 1322), (1324, 1324), (1326, 1326), (1329, 1366), (1415, 1415),
  (4256, 4293), (4295, 4295), (4301, 4301), (5112, 5117), (7296, 7305),
  (7312, 7354), (7357, 7359), (7680, 7680), (7682, 7682), (7684, 7684),
  (7686, 7686), (7688, 7688), (7690, 7690), (7692, 7692), (7694, 7694),
  (7696, 7696), (7698, 7698), (7700, 7700), (7702, 7702), (7704, 7704),
  (7706, 7706), (7708, 7708), (7710, 7710), (7712, 7712), (7714, 7714),
  (7716, 7716), (7718, 7718), (7720, 7720), (7722, 7722), (7724, 7724),
  (7726, 7726), (7728, 7728), (7730, 7730), (7732, 7732), (7734, 7734),
  (7736, 7736), (7738, 7738), (7740, 7740), (7742, 7742), (7744, 7744),
  (7746, 7746), (7748, 7748), (7750, 7750), (7752, 7752), (7754, 7754),
  (7756, 7756), (7758, 7758), (7760, 7760), (7762, 7762), (7764, 7764),
  (7766, 7766), (7768, 7768), (7770, 7770), (7772, 7772), (7774, 7774),
  (7776, 7776), (7778, 7778), (7780, 7780), (7782, 7782), (7784, 7784),
  (7786, 7786), (7788, 7788), (7790, 7790), (7792, 7792), (7794, 7794),
  (7796, 7796), (7798, 7798), (7800, 7800), (7802, 7802), (7804, 7804),
  (7806, 7806), (7808, 7808), (7810, 7810), (7812, 7812), (7814, 7814),
  (7816, 7816), (7818, 7818), (7820, 7820), (7822, 7822), (7824, 7824),
  (7826, 7826), (7828, 7828), (7834, 7835), (7838, 7838), (7840, 7840),
  (7842, 7842), (7844, 7844), (7846, 7846), (7848, 7848), (7850, 7850),
  (7852, 7852), (7854, 7854), (7856, 7856), (7858, 7858), (7860, 7860),
  (7862, 7862), (7864, 7864), (7866, 7866), (7868, 7868), (7870, 7870),
  (7872, 7872), (7874, 7874), (7876, 7876), (7878, 7878), (7880, 7880),
  (7882, 7882), (7884, 7884), (7886, 7886), (7888, 7888), (7890, 7890),
  (7892, 7892), (7894, 7894), (7896, 7896), (7898, 7898), (7900, 7900),
  (7902, 7902), (7904, 7904), (7906, 7906), (7908, 7908), (7910, 7910),
  (7912, 7912), (7914, 7914), (7916, 7916), (7918, 7918), (7920, 7920),
  (7922, 7922), (7924, 7924), (7926, 7926), (7928, 7928), (7930, 7930),
  (7932, 7932), (7934, 7934), (7944, 7951), (7960, 7965), (7976, 7983),
  (7992, 7999), (8008, 8013), (8025, 8025), (8027, 8027), (8029, 8029),
  (8031, 8031), (8040, 8047), (8064, 8111), (8114, 8116), (8119, 8124),
  (8130, 8132), (8135, 8140), (8152, 8155), (8168, 8172), (8178, 8180),
  (8183, 8188), (8486, 8486), (8490, 8491), (8498, 8498), (8544, 8559),
  (8579, 8579), (9398, 9423), (11264, 11311), (11360, 11360), (11362, 11364),
  (11367, 11367), (11369, 11369), (11371, 11371), (11373, 11376),
  (11378, 11378), (11381, 11381), (11390, 11392), (11394, 11394),
  (11396, 11396), (11398, 11398), (11400, 11400), (11402, 11402),
  (11404, 11404), (11406, 11406), (11408, 11408), (11410, 11410),
  (11412, 11412), (11414, 11414), (11416, 11416), (11418, 11418),
  (11420, 11420), (11422, 11422), (11424, 11424), (11426, 11426),
  (11428, 11428), (11430, 11430), (11432, 11432), (11434, 11434),
  (11436, 11436), (11438, 11438), (11440, 11440), (11442, 11442),
  (11444, 11444), (11446, 11446), (11448, 11448), (11450, 11450),
  (11452, 11452), (11454, 11454), (11456, 11456), (11458, 11458),
  (11460, 11460), (11462, 11462), (11464, 11464), (11466, 11466),
  (11468, 11468), (11470, 11470), (11472, 11472), (11474, 11474),
  (11476, 11476), (11478, 11478), (11480, 11480), (11482, 11482),
  (11484, 11484), (11486, 11486), (11488, 11488), (11490, 11490),
  (11499, 11499), (11501, 11501), (11506, 11506), (42560, 42560),
  (42562, 42562), (42564, 42564), (42566, 42566), (42568, 42568),
  (42570, 42570), (42572, 42572), (42574, 42574), (42576, 42576),
  (42578, 42578), (42580, 42580), (42582, 42582), (42584, 42584),
  (42586, 42586), (42588, 42588), (42590, 42590), (42592, 42592),
  (42594, 42594), (42596, 42596), (42598, 42598), (42600, 42600),
  (42602, 42602), (42604, 42604), (42624, 42624), (42626, 42626),
  (42628, 42628), (42630, 42630), (42632, 42632), (42634, 42634),
  (42636, 42636), (42638, 42638), (42640, 42640), (42642, 42642),
  (42644, 42644), (42646, 42646), (42648, 42648), (42650, 42650),
  (42786, 42786), (42788, 42788), (42790, 42790), (42792, 42792),
  (42794, 42794), (42796, 42796), (42798, 42798), (42802, 42802),
  (42804, 42804), (42806, 42806), (42808, 42808), (42810, 42810),
  (42812, 42812), (42814, 42814), (42816, 42816), (42818, 42818),
  (42820, 42820), (42822, 42822), (42824, 42824), (42826, 42826),
  (42828, 42828), (42830, 42830), (42832, 42832), (42834, 42834),
  (42836, 42836), (42838, 42838), (42840, 42840), (42842, 42842),
  (42844, 42844), (42846, 42846), (42848, 42848), (42850, 42850),
  (42852, 42852), (42854, 42854), (42856, 42856), (42858, 42858),
  (42860, 42860), (42862, 42862), (42873, 42873), (42875, 42875),
  (42877, 42878), (42880, 42880), (42882, 42882), (42884, 42884),
  (42886, 42886), (42891, 42891), (42893, 42893), (42896, 42896),
  (42898, 42898), (42902, 42902), (42904, 42904), (42906, 42906),
  (42908, 42908), (42910, 42910), (42912, 42912), (42914, 42914),
  (42916, 42916), (42918, 42918), (42920, 42920), (42922, 42926),
  (42928, 42932), (42934, 42934), (42936, 42936), (42938, 42938),
  (42940, 42940), (42942, 42942), (42944, 42944), (42946, 42946),
  (42948, 42951), (42953, 42953), (42955, 42956), (42958, 42958),
  (42960, 42960), (42962, 42962), (42964, 42964), (42966, 42966),
  (42968, 42968), (42970, 42970), (42972, 42972), (42997, 42997),
  (43888, 43967), (64256, 64262), (64275, 64279), (65313, 65338),
  (66560, 66599), (66736, 66771), (66928, 66938), (66940, 66954),
  (66956, 66962), (66964, 66965), (68736, 68786), (68944, 68965),
  (71840, 71871), (93760, 93791), (93856, 93880), (125184, 125217),
];

pub const CHANGES_WHEN_CASEMAPPED: &'static [(u32, u32)] = &[
  (65, 90), (97, 122), (181, 181), (192, 214), (216, 246), (248, 311),
  (313, 396), (398, 425), (428, 441), (444, 445), (447, 447), (452, 544),
  (546, 563), (570, 596), (598, 599), (601, 601), (603, 604), (608, 609),
  (611, 614), (616, 620), (623, 623), (625, 626), (629, 629), (637, 637),
  (640, 640), (642, 643), (647, 652), (658, 658), (669, 670), (837, 837),
  (880, 883), (886, 887), (891, 893), (895, 895), (902, 902), (904, 906),
  (908, 908), (910, 929), (931, 977), (981, 1013), (1015, 1019), (1021, 1153),
  (1162, 1327), (1329, 1366), (1377, 1415), (4256, 4293), (4295, 4295),
  (4301, 4301), (4304, 4346), (4349, 4351), (5024, 5109), (5112, 5117),
  (7296, 7306), (7312, 7354), (7357, 7359), (7545, 7545), (7549, 7549),
  (7566, 7566), (7680, 7835), (7838, 7838), (7840, 7957), (7960, 7965),
  (7968, 8005), (8008, 8013), (8016, 8023), (8025, 8025), (8027, 8027),
  (8029, 8029), (8031, 8061), (8064, 8116), (8118, 8124), (8126, 8126),
  (8130, 8132), (8134, 8140), (8144, 8147), (8150, 8155), (8160, 8172),
  (8178, 8180), (8182, 8188), (8486, 8486), (8490, 8491), (8498, 8498),
  (8526, 8526), (8544, 8575), (8579, 8580), (9398, 9449), (11264, 11376),
  (11378, 11379), (11381, 11382), (11390, 11491), (11499, 11502),
  (11506, 11507), (11520, 11557), (11559, 11559), (11565, 11565),
  (42560, 42605), (42624, 42651), (42786, 42799), (42802, 42863),
  (42873, 42887), (42891, 42893), (42896, 42900), (42902, 42926),
  (42928, 42972), (42997, 42998), (43859, 43859), (43888, 43967),
  (64256, 64262), (64275, 64279), (65313, 65338), (65345, 65370),
  (66560, 66639), (66736, 66771), (66776, 66811), (66928, 66938),
  (66940, 66954), (66956, 66962), (66964, 66965), (66967, 66977),
  (66979, 66993), (66995, 67001), (67003, 67004), (68736, 68786),
  (68800, 68850), (68944, 68965), (68976, 68997), (71840, 71903),
  (93760, 93823), (93856, 93880), (93883, 93907), (125184, 125251),
];

pub const CHANGES_WHEN_LOWERCASED: &'static [(u32, u32)] = &[
  (65, 90), (192, 214), (216, 222), (256, 256), (258, 258), (260, 260),
  (262, 262), (264, 264), (266, 266), (268, 268), (270, 270), (272, 272),
  (274, 274), (276, 276), (278, 278), (280, 280), (282, 282), (284, 284),
  (286, 286), (288, 288), (290, 290), (292, 292), (294, 294), (296, 296),
  (298, 298), (300, 300), (302, 302), (304, 304), (306, 306), (308, 308),
  (310, 310), (313, 313), (315, 315), (317, 317), (319, 319), (321, 321),
  (323, 323), (325, 325), (327, 327), (330, 330), (332, 332), (334, 334),
  (336, 336), (338, 338), (340, 340), (342, 342), (344, 344), (346, 346),
  (348, 348), (350, 350), (352, 352), (354, 354), (356, 356), (358, 358),
  (360, 360), (362, 362), (364, 364), (366, 366), (368, 368), (370, 370),
  (372, 372), (374, 374), (376, 377), (379, 379), (381, 381), (385, 386),
  (388, 388), (390, 391), (393, 395), (398, 401), (403, 404), (406, 408),
  (412, 413), (415, 416), (418, 418), (420, 420), (422, 423), (425, 425),
  (428, 428), (430, 431), (433, 435), (437, 437), (439, 440), (444, 444),
  (452, 453), (455, 456), (458, 459), (461, 461), (463, 463), (465, 465),
  (467, 467), (469, 469), (471, 471), (473, 473), (475, 475), (478, 478),
  (480, 480), (482, 482), (484, 484), (486, 486), (488, 488), (490, 490),
  (492, 492), (494, 494), (497, 498), (500, 500), (502, 504), (506, 506),
  (508, 508), (510, 510), (512, 512), (514, 514), (516, 516), (518, 518),
  (520, 520), (522, 522), (524, 524), (526, 526), (528, 528), (530, 530),
  (532, 532), (534, 534), (536, 536), (538, 538), (540, 540), (542, 542),
  (544, 544), (546, 546), (548, 548), (550, 550), (552, 552), (554, 554),
  (556, 556), (558, 558), (560, 560), (562, 562), (570, 571), (573, 574),
  (577, 577), (579, 582), (584, 584), (586, 586), (588, 588), (590, 590),
  (880, 880), (882, 882), (886, 886), (895, 895), (902, 902), (904, 906),
  (908, 908), (910, 911), (913, 929), (931, 939), (975, 975), (984, 984),
  (986, 986), (988, 988), (990, 990), (992, 992), (994, 994), (996, 996),
  (998, 998), (1000, 1000), (1002, 1002), (1004, 1004), (1006, 1006),
  (1012, 1012), (1015, 1015), (1017, 1018), (1021, 1071), (1120, 1120),
  (1122, 1122), (1124, 1124), (1126, 1126), (1128, 1128), (1130, 1130),
  (1132, 1132), (1134, 1134), (1136, 1136), (1138, 1138), (1140, 1140),
  (1142, 1142), (1144, 1144), (1146, 1146), (1148, 1148), (1150, 1150),
  (1152, 1152), (1162, 1162), (1164, 1164), (1166, 1166), (1168, 1168),
  (1170, 1170), (1172, 1172), (1174, 1174), (1176, 1176), (1178, 1178),
  (1180, 1180), (1182, 1182), (1184, 1184), (1186, 1186), (1188, 1188),
  (1190, 1190), (1192, 1192), (1194, 1194), (1196, 1196), (1198, 1198),
  (1200, 1200), (1202, 1202), (1204, 1204), (1206, 1206), (1208, 1208),
  (1210, 1210), (1212, 1212), (1214, 1214), (1216, 1217), (1219, 1219),
  (1221, 1221), (1223, 1223), (1225, 1225), (1227, 1227), (1229, 1229),
  (1232, 1232), (1234, 1234), (1236, 1236), (1238, 1238), (1240, 1240),
  (1242, 1242), (1244, 1244), (1246, 1246), (1248, 1248), (1250, 1250),
  (1252, 1252), (1254, 1254), (1256, 1256), (1258, 1258), (1260, 1260),
  (1262, 1262), (1264, 1264), (1266, 1266), (1268, 1268), (1270, 1270),
  (1272, 1272), (1274, 1274), (1276, 1276), (1278, 1278), (1280, 1280),
  (1282, 1282), (1284, 1284), (1286, 1286), (1288, 1288), (1290, 1290),
  (1292, 1292), (1294, 1294), (1296, 1296), (1298, 1298), (1300, 1300),
  (1302, 1302), (1304, 1304), (1306, 1306), (1308, 1308), (1310, 1310),
  (1312, 1312), (1314, 1314), (1316, 1316), (1318, 1318), (1320, 1320),
  (1322, 1322), (1324, 1324), (1326, 1326), (1329, 1366), (4256, 4293),
  (4295, 4295), (4301, 4301), (5024, 5109), (7305, 7305), (7312, 7354),
  (7357, 7359), (7680, 7680), (7682, 7682), (7684, 7684), (7686, 7686),
  (7688, 7688), (7690, 7690), (7692, 7692), (7694, 7694), (7696, 7696),
  (7698, 7698), (7700, 7700), (7702, 7702), (7704, 7704), (7706, 7706),
  (7708, 7708), (7710, 7710), (7712, 7712), (7714, 7714), (7716, 7716),
  (7718, 7718), (7720, 7720), (7722, 7722), (7724, 7724), (7726, 7726),
  (7728, 7728), (7730, 7730), (7732, 7732), (7734, 7734), (7736, 7736),
  (7738, 7738), (7740, 7740), (7742, 7742), (7744, 7744), (7746, 7746),
  (7748, 7748), (7750, 7750), (7752, 7752), (7754, 7754), (7756, 7756),
  (7758, 7758), (7760, 7760), (7762, 7762), (7764, 7764), (7766, 7766),
  (7768, 7768), (7770, 7770), (7772, 7772), (7774, 7774), (7776, 7776),
  (7778, 7778), (7780, 7780), (7782, 7782), (7784, 7784), (7786, 7786),
  (7788, 7788), (7790, 7790), (7792, 7792), (7794, 7794), (7796, 7796),
  (7798, 7798), (7800, 7800), (7802, 7802), (7804, 7804), (7806, 7806),
  (7808, 7808), (7810, 7810), (7812, 7812), (7814, 7814), (7816, 7816),
  (7818, 7818), (7820, 7820), (7822, 7822), (7824, 7824), (7826, 7826),
  (7828, 7828), (7838, 7838), (7840, 7840), (7842, 7842), (7844, 7844),
  (7846, 7846), (7848, 7848), (7850, 7850), (7852, 7852), (7854, 7854),
  (7856, 7856), (7858, 7858), (7860, 7860), (7862, 7862), (7864, 7864),
  (7866, 7866), (7868, 7868), (7870, 7870), (7872, 7872), (7874, 7874),
  (7876, 7876), (7878, 7878), (7880, 7880), (7882, 7882), (7884, 7884),
  (7886, 7886), (7888, 7888), (7890, 7890), (7892, 7892), (7894, 7894),
  (7896, 7896), (7898, 7898), (7900, 7900), (7902, 7902), (7904, 7904),
  (7906, 7906), (7908, 7908), (7910, 7910), (7912, 7912), (7914, 7914),
  (7916, 7916), (7918, 7918), (7920, 7920), (7922, 7922), (7924, 7924),
  (7926, 7926), (7928, 7928), (7930, 7930), (7932, 7932), (7934, 7934),
  (7944, 7951), (7960, 7965), (7976, 7983), (7992, 7999), (8008, 8013),
  (8025, 8025), (8027, 8027), (8029, 8029), (8031, 8031), (8040, 8047),
  (8072, 8079), (8088, 8095), (8104, 8111), (8120, 8124), (8136, 8140),
  (8152, 8155), (8168, 8172), (8184, 8188), (8486, 8486), (8490, 8491),
  (8498, 8498), (8544, 8559), (8579, 8579), (9398, 9423), (11264, 11311),
  (11360, 11360), (11362, 11364), (11367, 11367), (11369, 11369),
  (11371, 11371), (11373, 11376), (11378, 11378), (11381, 11381),
  (11390, 11392), (11394, 11394), (11396, 11396), (11398, 11398),
  (11400, 11400), (11402, 11402), (11404, 11404), (11406, 11406),
  (11408, 11408), (11410, 11410), (11412, 11412), (11414, 11414),
  (11416, 11416), (11418, 11418), (11420, 11420), (11422, 11422),
  (11424, 11424), (11426, 11426), (11428, 11428), (11430, 11430),
  (11432, 11432), (11434, 11434), (11436, 11436), (11438, 11438),
  (11440, 11440), (11442, 11442), (11444, 11444), (11446, 11446),
  (11448, 11448), (11450, 11450), (11452, 11452), (11454, 11454),
  (11456, 11456), (11458, 11458), (11460, 11460), (11462, 11462),
  (11464, 11464), (11466, 11466), (11468, 11468), (11470, 11470),
  (11472, 11472), (11474, 11474), (11476, 11476), (11478, 11478),
  (11480, 11480), (11482, 11482), (11484, 11484), (11486, 11486),
  (11488, 11488), (11490, 11490), (11499, 11499), (11501, 11501),
  (11506, 11506), (42560, 42560), (42562, 42562), (42564, 42564),
  (42566, 42566), (42568, 42568), (42570, 42570), (42572, 42572),
  (42574, 42574), (42576, 42576), (42578, 42578), (42580, 42580),
  (42582, 42582), (42584, 42584), (42586, 42586), (42588, 42588),
  (42590, 42590), (42592, 42592), (42594, 42594), (42596, 42596),
  (42598, 42598), (42600, 42600), (42602, 42602), (42604, 42604),
  (42624, 42624), (42626, 42626), (42628, 42628), (42630, 42630),
  (42632, 42632), (42634, 42634), (42636, 42636), (42638, 42638),
  (42640, 42640), (42642, 42642), (42644, 42644), (42646, 42646),
  (42648, 42648), (42650, 42650), (42786, 42786), (42788, 42788),
  (42790, 42790), (42792, 42792), (42794, 42794), (42796, 42796),
  (42798, 42798), (42802, 42802), (42804, 42804), (42806, 42806),
  (42808, 42808), (42810, 42810), (42812, 42812), (42814, 42814),
  (42816, 42816), (42818, 42818), (42820, 42820), (42822, 42822),
  (42824, 42824), (42826, 42826), (42828, 42828), (42830, 42830),
  (42832, 42832), (42834, 42834), (42836, 42836), (42838, 42838),
  (42840, 42840), (42842, 42842), (42844, 42844), (42846, 42846),
  (42848, 42848), (42850, 42850), (42852, 42852), (42854, 42854),
  (42856, 42856), (42858, 42858), (42860, 42860), (42862, 42862),
  (42873, 42873), (42875, 42875), (42877, 42878), (42880, 42880),
  (42882, 42882), (42884, 42884), (42886, 42886), (42891, 42891),
  (42893, 42893), (42896, 42896), (42898, 42898), (42902, 42902),
  (42904, 42904), (42906, 42906), (42908, 42908), (42910, 42910),
  (42912, 42912), (42914, 42914), (42916, 42916), (42918, 42918),
  (42920, 42920), (42922, 42926), (42928, 42932), (42934, 42934),
  (42936, 42936), (42938, 42938), (42940, 42940), (42942, 42942),
  (42944, 42944), (42946, 42946), (42948, 42951), (42953, 42953),
  (42955, 42956), (42958, 42958), (42960, 42960), (42962, 42962),
  (42964, 42964), (42966, 42966), (42968, 42968), (42970, 42970),
  (42972, 42972), (42997, 42997), (65313, 65338), (66560, 66599),
  (66736, 66771), (66928, 66938), (66940, 66954), (66956, 66962),
  (66964, 66965), (68736, 68786), (68944, 68965), (71840, 71871),
  (93760, 93791), (93856, 93880), (125184, 125217),
];

pub const CHANGES_WHEN_TITLECASED: &'static [(u32, u32)] = &[
  (97, 122), (181, 181), (223, 246), (248, 255), (257, 257), (259, 259),
  (261, 261), (263, 263), (265, 265), (267, 267), (269, 269), (271, 271),
  (273, 273), (275, 275), (277, 277), (279, 279), (281, 281), (283, 283),
  (285, 285), (287, 287), (289, 289), (291, 291), (293, 293), (295, 295),
  (297, 297), (299, 299), (301, 301), (303, 303), (305, 305), (307, 307),
  (309, 309), (311, 311), (314, 314), (316, 316), (318, 318), (320, 320),
  (322, 322), (324, 324), (326, 326), (328, 329), (331, 331), (333, 333),
  (335, 335), (337, 337), (339, 339), (341, 341), (343, 343), (345, 345),
  (347, 347), (349, 349), (351, 351), (353, 353), (355, 355), (357, 357),
  (359, 359), (361, 361), (363, 363), (365, 365), (367, 367), (369, 369),
  (371, 371), (373, 373), (375, 375), (378, 378), (380, 380), (382, 384),
  (387, 387), (389, 389), (392, 392), (396, 396), (402, 402), (405, 405),
  (409, 411), (414, 414), (417, 417), (419, 419), (421, 421), (424, 424),
  (429, 429), (432, 432), (436, 436), (438, 438), (441, 441), (445, 445),
  (447, 447), (452, 452), (454, 455), (457, 458), (460, 460), (462, 462),
  (464, 464), (466, 466), (468, 468), (470, 470), (472, 472), (474, 474),
  (476, 477), (479, 479), (481, 481), (483, 483), (485, 485), (487, 487),
  (489, 489), (491, 491), (493, 493), (495, 497), (499, 499), (501, 501),
  (505, 505), (507, 507), (509, 509), (511, 511), (513, 513), (515, 515),
  (517, 517), (519, 519), (521, 521), (523, 523), (525, 525), (527, 527),
  (529, 529), (531, 531), (533, 533), (535, 535), (537, 537), (539, 539),
  (541, 541), (543, 543), (547, 547), (549, 549), (551, 551), (553, 553),
  (555, 555), (557, 557), (559, 559), (561, 561), (563, 563), (572, 572),
  (575, 576), (578, 578), (583, 583), (585, 585), (587, 587), (589, 589),
  (591, 596), (598, 599), (601, 601), (603, 604), (608, 609), (611, 614),
  (616, 620), (623, 623), (625, 626), (629, 629), (637, 637), (640, 640),
  (642, 643), (647, 652), (658, 658), (669, 670), (837, 837), (881, 881),
  (883, 883), (887, 887), (891, 893), (912, 912), (940, 974), (976, 977),
  (981, 983), (985, 985), (987, 987), (989, 989), (991, 991), (993, 993),
  (995, 995), (997, 997), (999, 999), (1001, 1001), (1003, 1003),
  (1005, 1005), (1007, 1011), (1013, 1013), (1016, 1016), (1019, 1019),
  (1072, 1119), (1121, 1121), (1123, 1123), (1125, 1125), (1127, 1127),
  (1129, 1129), (1131, 1131), (1133, 1133), (1135, 1135), (1137, 1137),
  (1139, 1139), (1141, 1141), (1143, 1143), (1145, 1145), (1147, 1147),
  (1149, 1149), (1151, 1151), (1153, 1153), (1163, 1163), (1165, 1165),
  (1167, 1167), (1169, 1169), (1171, 1171), (1173, 1173), (1175, 1175),
  (1177, 1177), (1179, 1179), (1181, 1181), (1183, 1183), (1185, 1185),
  (1187, 1187), (1189, 1189), (1191, 1191), (1193, 1193), (1195, 1195),
  (1197, 1197), (1199, 1199), (1201, 1201), (1203, 1203), (1205, 1205),
  (1207, 1207), (1209, 1209), (1211, 1211), (1213, 1213), (1215, 1215),
  (1218, 1218), (1220, 1220), (1222, 1222), (1224, 1224), (1226, 1226),
  (1228, 1228), (1230, 1231), (1233, 1233), (1235, 1235), (1237, 1237),
  (1239, 1239), (1241, 1241), (1243, 1243), (1245, 1245), (1247, 1247),
  (1249, 1249), (1251, 1251), (1253, 1253), (1255, 1255), (1257, 1257),
  (1259, 1259), (1261, 1261), (1263, 1263), (1265, 1265), (1267, 1267),
  (1269, 1269), (1271, 1271), (1273, 1273), (1275, 1275), (1277, 1277),
  (1279, 1279), (1281, 1281), (1283, 1283), (1285, 1285), (1287, 1287),
  (1289, 1289), (1291, 1291), (1293, 1293), (1295, 1295), (1297, 1297),
  (1299, 1299), (1301, 1301), (1303, 1303), (1305, 1305), (1307, 1307),
  (1309, 1309), (1311, 1311), (1313, 1313), (1315, 1315), (1317, 1317),
  (1319, 1319), (1321, 1321), (1323, 1323), (1325, 1325), (1327, 1327),
  (1377, 1415), (5112, 5117), (7296, 7304), (7306, 7306), (7545, 7545),
  (7549, 7549), (7566, 7566), (7681, 7681), (7683, 7683), (7685, 7685),
  (7687, 7687), (7689, 7689), (7691, 7691), (7693, 7693), (7695, 7695),
  (7697, 7697), (7699, 7699), (7701, 7701), (7703, 7703), (7705, 7705),
  (7707, 7707), (7709, 7709), (7711, 7711), (7713, 7713), (7715, 7715),
  (7717, 7717), (7719, 7719), (7721, 7721), (7723, 7723), (7725, 7725),
  (7727, 7727), (7729, 7729), (7731, 7731), (7733, 7733), (7735, 7735),
  (7737, 7737), (7739, 7739), (7741, 7741), (7743, 7743), (7745, 7745),
  (7747, 7747), (7749, 7749), (7751, 7751), (7753, 7753), (7755, 7755),
  (7757, 7757), (7759, 7759), (7761, 7761), (7763, 7763), (7765, 7765),
  (7767, 7767), (7769, 7769), (7771, 7771), (7773, 7773), (7775, 7775),
  (7777, 7777), (7779, 7779), (7781, 7781), (7783, 7783), (7785, 7785),
  (7787, 7787), (7789, 7789), (7791, 7791), (7793, 7793), (7795, 7795),
  (7797, 7797), (7799, 7799), (7801, 7801), (7803, 7803), (7805, 7805),
  (7807, 7807), (7809, 7809), (7811, 7811), (7813, 7813), (7815, 7815),
  (7817, 7817), (7819, 7819), (7821, 7821), (7823, 7823), (7825, 7825),
  (7827, 7827), (7829, 7835), (7841, 7841), (7843, 7843), (7845, 7845),
  (7847, 7847), (7849, 7849), (7851, 7851), (7853, 7853), (7855, 7855),
  (7857, 7857), (7859, 7859), (7861, 7861), (7863, 7863), (7865, 7865),
  (7867, 7867), (7869, 7869), (7871, 7871), (7873, 7873), (7875, 7875),
  (7877, 7877), (7879, 7879), (7881, 7881), (7883, 7883), (7885, 7885),
  (7887, 7887), (7889, 7889), (7891, 7891), (7893, 7893), (7895, 7895),
  (7897, 7897), (7899, 7899), (7901, 7901), (7903, 7903), (7905, 7905),
  (7907, 7907), (7909, 7909), (7911, 7911), (7913, 7913), (7915, 7915),
  (7917, 7917), (7919, 7919), (7921, 7921), (7923, 7923), (7925, 7925),
  (7927, 7927), (7929, 7929), (7931, 7931), (7933, 7933), (7935, 7943),
  (7952, 7957), (7968, 7975), (7984, 7991), (8000, 8005), (8016, 8023),
  (8032, 8039), (8048, 8061), (8064, 8071), (8080, 8087), (8096, 8103),
  (8112, 8116), (8118, 8119), (8126, 8126), (8130, 8132), (8134, 8135),
  (8144, 8147), (8150, 8151), (8160, 8167), (8178, 8180), (8182, 8183),
  (8526, 8526), (8560, 8575), (8580, 8580), (9424, 9449), (11312, 11359),
  (11361, 11361), (11365, 11366), (11368, 11368), (11370, 11370),
  (11372, 11372), (11379, 11379), (11382, 11382), (11393, 11393),
  (11395, 11395), (11397, 11397), (11399, 11399), (11401, 11401),
  (11403, 11403), (11405, 11405), (11407, 11407), (11409, 11409),
  (11411, 11411), (11413, 11413), (11415, 11415), (11417, 11417),
  (11419, 11419), (11421, 11421), (11423, 11423), (11425, 11425),
  (11427, 11427), (11429, 11429), (11431, 11431), (11433, 11433),
  (11435, 11435), (11437, 11437), (11439, 11439), (11441, 11441),
  (11443, 11443), (11445, 11445), (11447, 11447), (11449, 11449),
  (11451, 11451), (11453, 11453), (11455, 11455), (11457, 11457),
  (11459, 11459), (11461, 11461), (11463, 11463), (11465, 11465),
  (11467, 11467), (11469, 11469), (11471, 11471), (11473, 11473),
  (11475, 11475), (11477, 11477), (11479, 11479), (11481, 11481),
  (11483, 11483), (11485, 11485), (11487, 11487), (11489, 11489),
  (11491, 11491), (11500, 11500), (11502, 11502), (11507, 11507),
  (11520, 11557), (11559, 11559), (11565, 11565), (42561, 42561),
  (42563, 42563), (42565, 42565), (42567, 42567), (42569, 42569),
  (42571, 42571), (42573, 42573), (42575, 42575), (42577, 42577),
  (42579, 42579), (42581, 42581), (42583, 42583), (42585, 42585),
  (42587, 42587), (42589, 42589), (42591, 42591), (42593, 42593),
  (42595, 42595), (42597, 42597), (42599, 42599), (42601, 42601),
  (42603, 42603), (42605, 42605), (42625, 42625), (42627, 42627),
  (42629, 42629), (42631, 42631), (42633, 42633), (42635, 42635),
  (42637, 42637), (42639, 42639), (42641, 42641), (42643, 42643),
  (42645, 42645), (42647, 42647), (42649, 42649), (42651, 42651),
  (42787, 42787), (42789, 42789), (42791, 42791), (42793, 42793),
  (42795, 42795), (42797, 42797), (42799, 42799), (42803, 42803),
  (42805, 42805), (42807, 42807), (42809, 42809), (42811, 42811),
  (42813, 42813), (42815, 42815), (42817, 42817), (42819, 42819),
  (42821, 42821), (42823, 42823), (42825, 42825), (42827, 42827),
  (42829, 42829), (42831, 42831), (42833, 42833), (42835, 42835),
  (42837, 42837), (42839, 42839), (42841, 42841), (42843, 42843),
  (42845, 42845), (42847, 42847), (42849, 42849), (42851, 42851),
  (42853, 42853), (42855, 42855), (42857, 42857), (42859, 42859),
  (42861, 42861), (42863, 42863), (42874, 42874), (42876, 42876),
  (42879, 42879), (42881, 42881), (42883, 42883), (42885, 42885),
  (42887, 42887), (42892, 42892), (42897, 42897), (42899, 42900),
  (42903, 42903), (42905, 42905), (42907, 42907), (42909, 42909),
  (42911, 42911), (42913, 42913), (42915, 42915), (42917, 42917),
  (42919, 42919), (42921, 42921), (42933, 42933), (42935, 42935),
  (42937, 42937), (42939, 42939), (42941, 42941), (42943, 42943),
  (42945, 42945), (42947, 42947), (42952, 42952), (42954, 42954),
  (42957, 42957), (42959, 42959), (42961, 42961), (42963, 42963),
  (42965, 42965), (42967, 42967), (42969, 42969), (42971, 42971),
  (42998, 42998), (43859, 43859), (43888, 43967), (64256, 64262),
  (64275, 64279), (65345, 65370), (66600, 66639), (66776, 66811),
  (66967, 66977), (66979, 66993), (66995, 67001), (67003, 67004),
  (68800, 68850), (68976, 68997), (71872, 71903), (93792, 93823),
  (93883, 93907), (125218, 125251),
];

pub const CHANGES_WHEN_UPPERCASED: &'static [(u32, u32)] = &[
  (97, 122), (181, 181), (223, 246), (248, 255), (257, 257), (259, 259),
  (261, 261), (263, 263), (265, 265), (267, 267), (269, 269), (271, 271),
  (273, 273), (275, 275), (277, 277), (279, 279), (281, 281), (283, 283),
  (285, 285), (287, 287), (289, 289), (291, 291), (293, 293), (295, 295),
  (297, 297), (299, 299), (301, 301), (303, 303), (305, 305), (307, 307),
  (309, 309), (311, 311), (314, 314), (316, 316), (318, 318), (320, 320),
  (322, 322), (324, 324), (326, 326), (328, 329), (331, 331), (333, 333),
  (335, 335), (337, 337), (339, 339), (341, 341), (343, 343), (345, 345),
  (347, 347), (349, 349), (351, 351), (353, 353), (355, 355), (357, 357),
  (359, 359), (361, 361), (363, 363), (365, 365), (367, 367), (369, 369),
  (371, 371), (373, 373), (375, 375), (378, 378), (380, 380), (382, 384),
  (387, 387), (389, 389), (392, 392), (396, 396), (402, 402), (405, 405),
  (409, 411), (414, 414), (417, 417), (419, 419), (421, 421), (424, 424),
  (429, 429), (432, 432), (436, 436), (438, 438), (441, 441), (445, 445),
  (447, 447), (453, 454), (456, 457), (459, 460), (462, 462), (464, 464),
  (466, 466), (468, 468), (470, 470), (472, 472), (474, 474), (476, 477),
  (479, 479), (481, 481), (483, 483), (485, 485), (487, 487), (489, 489),
  (491, 491), (493, 493), (495, 496), (498, 499), (501, 501), (505, 505),
  (507, 507), (509, 509), (511, 511), (513, 513), (515, 515), (517, 517),
  (519, 519), (521, 521), (523, 523), (525, 525), (527, 527), (529, 529),
  (531, 531), (533, 533), (535, 535), (537, 537), (539, 539), (541, 541),
  (543, 543), (547, 547), (549, 549), (551, 551), (553, 553), (555, 555),
  (557, 557), (559, 559), (561, 561), (563, 563), (572, 572), (575, 576),
  (578, 578), (583, 583), (585, 585), (587, 587), (589, 589), (591, 596),
  (598, 599), (601, 601), (603, 604), (608, 609), (611, 614), (616, 620),
  (623, 623), (625, 626), (629, 629), (637, 637), (640, 640), (642, 643),
  (647, 652), (658, 658), (669, 670), (837, 837), (881, 881), (883, 883),
  (887, 887), (891, 893), (912, 912), (940, 974), (976, 977), (981, 983),
  (985, 985), (987, 987), (989, 989), (991, 991), (993, 993), (995, 995),
  (997, 997), (999, 999), (1001, 1001), (1003, 1003), (1005, 1005),
  (1007, 1011), (1013, 1013), (1016, 1016), (1019, 1019), (1072, 1119),
  (1121, 1121), (1123, 1123), (1125, 1125), (1127, 1127), (1129, 1129),
  (1131, 1131), (1133, 1133), (1135, 1135), (1137, 1137), (1139, 1139),
  (1141, 1141), (1143, 1143), (1145, 1145), (1147, 1147), (1149, 1149),
  (1151, 1151), (1153, 1153), (1163, 1163), (1165, 1165), (1167, 1167),
  (1169, 1169), (1171, 1171), (1173, 1173), (1175, 1175), (1177, 1177),
  (1179, 1179), (1181, 1181), (1183, 1183), (1185, 1185), (1187, 1187),
  (1189, 1189), (1191, 1191), (1193, 1193), (1195, 1195), (1197, 1197),
  (1199, 1199), (1201, 1201), (1203, 1203), (1205, 1205), (1207, 1207),
  (1209, 1209), (1211, 1211), (1213, 1213), (1215, 1215), (1218, 1218),
  (1220, 1220), (1222, 1222), (1224, 1224), (1226, 1226), (1228, 1228),
  (1230, 1231), (1233, 1233), (1235, 1235), (1237, 1237), (1239, 1239),
  (1241, 1241), (1243, 1243), (1245, 1245), (1247, 1247), (1249, 1249),
  (1251, 1251), (1253, 1253), (1255, 1255), (1257, 1257), (1259, 1259),
  (1261, 1261), (1263, 1263), (1265, 1265), (1267, 1267), (1269, 1269),
  (1271, 1271), (1273, 1273), (1275, 1275), (1277, 1277), (1279, 1279),
  (1281, 1281), (1283, 1283), (1285, 1285), (1287, 1287), (1289, 1289),
  (1291, 1291), (1293, 1293), (1295, 1295), (1297, 1297), (1299, 1299),
  (1301, 1301), (1303, 1303), (1305, 1305), (1307, 1307), (1309, 1309),
  (1311, 1311), (1313, 1313), (1315, 1315), (1317, 1317), (1319, 1319),
  (1321, 1321), (1323, 1323), (1325, 1325), (1327, 1327), (1377, 1415),
  (4304, 4346), (4349, 4351), (5112, 5117), (7296, 7304), (7306, 7306),
  (7545, 7545), (7549, 7549), (7566, 7566), (7681, 7681), (7683, 7683),
  (7685, 7685), (7687, 7687), (7689, 7689), (7691, 7691), (7693, 7693),
  (7695, 7695), (7697, 7697), (7699, 7699), (7701, 7701), (7703, 7703),
  (7705, 7705), (7707, 7707), (7709, 7709), (7711, 7711), (7713, 7713),
  (7715, 7715), (7717, 7717), (7719, 7719), (7721, 7721), (7723, 7723),
  (7725, 7725), (7727, 7727), (7729, 7729), (7731, 7731), (7733, 7733),
  (7735, 7735), (7737, 7737), (7739, 7739), (7741, 7741), (7743, 7743),
  (7745, 7745), (7747, 7747), (7749, 7749), (7751, 7751), (7753, 7753),
  (7755, 7755), (7757, 7757), (7759, 7759), (7761, 7761), (7763, 7763),
  (7765, 7765), (7767, 7767), (7769, 7769), (7771, 7771), (7773, 7773),
  (7775, 7775), (7777, 7777), (7779, 7779), (7781, 7781), (7783, 7783),
  (7785, 7785), (7787, 7787), (7789, 7789), (7791, 7791), (7793, 7793),
  (7795, 7795), (7797, 7797), (7799, 7799), (7801, 7801), (7803, 7803),
  (7805, 7805), (7807, 7807), (7809, 7809), (7811, 7811), (7813, 7813),
  (7815, 7815), (7817, 7817), (7819, 7819), (7821, 7821), (7823, 7823),
  (7825, 7825), (7827, 7827), (7829, 7835), (7841, 7841), (7843, 7843),
  (7845, 7845), (7847, 7847), (7849, 7849), (7851, 7851), (7853, 7853),
  (7855, 7855), (7857, 7857), (7859, 7859), (7861, 7861), (7863, 7863),
  (7865, 7865), (7867, 7867), (7869, 7869), (7871, 7871), (7873, 7873),
  (7875, 7875), (7877, 7877), (7879, 7879), (7881, 7881), (7883, 7883),
  (7885, 7885), (7887, 7887), (7889, 7889), (7891, 7891), (7893, 7893),
  (7895, 7895), (7897, 7897), (7899, 7899), (7901, 7901), (7903, 7903),
  (7905, 7905), (7907, 7907), (7909, 7909), (7911, 7911), (7913, 7913),
  (7915, 7915), (7917, 7917), (7919, 7919), (7921, 7921), (7923, 7923),
  (7925, 7925), (7927, 7927), (7929, 7929), (7931, 7931), (7933, 7933),
  (7935, 7943), (7952, 7957), (7968, 7975), (7984, 7991), (8000, 8005),
  (8016, 8023), (8032, 8039), (8048, 8061), (8064, 8116), (8118, 8119),
  (8124, 8124), (8126, 8126), (8130, 8132), (8134, 8135), (8140, 8140),
  (8144, 8147), (8150, 8151), (8160, 8167), (8178, 8180), (8182, 8183),
  (8188, 8188), (8526, 8526), (8560, 8575), (8580, 8580), (9424, 9449),
  (11312, 11359), (11361, 11361), (11365, 11366), (11368, 11368),
  (11370, 11370), (11372, 11372), (11379, 11379), (11382, 11382),
  (11393, 11393), (11395, 11395), (11397, 11397), (11399, 11399),
  (11401, 11401), (11403, 11403), (11405, 11405), (11407, 11407),
  (11409, 11409), (11411, 11411), (11413, 11413), (11415, 11415),
  (11417, 11417), (11419, 11419), (11421, 11421), (11423, 11423),
  (11425, 11425), (11427, 11427), (11429, 11429), (11431, 11431),
  (11433, 11433), (11435, 11435), (11437, 11437), (11439, 11439),
  (11441, 11441), (11443, 11443), (11445, 11445), (11447, 11447),
  (11449, 11449), (11451, 11451), (11453, 11453), (11455, 11455),
  (11457, 11457), (11459, 11459), (11461, 11461), (11463, 11463),
  (11465, 11465), (11467, 11467), (11469, 11469), (11471, 11471),
  (11473, 11473), (11475, 11475), (11477, 11477), (11479, 11479),
  (11481, 11481), (11483, 11483), (11485, 11485), (11487, 11487),
  (11489, 11489), (11491, 11491), (11500, 11500), (11502, 11502),
  (11507, 11507), (11520, 11557), (11559, 11559), (11565, 11565),
  (42561, 42561), (42563, 42563), (42565, 42565), (42567, 42567),
  (42569, 42569), (42571, 42571), (42573, 42573), (42575, 42575),
  (42577, 42577), (42579, 42579), (42581, 42581), (42583, 42583),
  (42585, 42585), (42587, 42587), (42589, 42589), (42591, 42591),
  (42593, 42593), (42595, 42595), (42597, 42597), (42599, 42599),
  (42601, 42601), (42603, 42603), (42605, 42605), (42625, 42625),
  (42627, 42627), (42629, 42629), (42631, 42631), (42633, 42633),
  (42635, 42635), (42637, 42637), (42639, 42639), (42641, 42641),
  (42643, 42643), (42645, 42645), (42647, 42647), (42649, 42649),
  (42651, 42651), (42787, 42787), (42789, 42789), (42791, 42791),
  (42793, 42793), (42795, 42795), (42797, 42797), (42799, 42799),
  (42803, 42803), (42805, 42805), (42807, 42807), (42809, 42809),
  (42811, 42811), (42813, 42813), (42815, 42815), (42817, 42817),
  (42819, 42819), (42821, 42821), (42823, 42823), (42825, 42825),
  (42827, 42827), (42829, 42829), (42831, 42831), (42833, 42833),
  (42835, 42835), (42837, 42837), (42839, 42839), (42841, 42841),
  (42843, 42843), (42845, 42845), (42847, 42847), (42849, 42849),
  (42851, 42851), (42853, 42853), (42855, 42855), (42857, 42857),
  (42859, 42859), (42861, 42861), (42863, 42863), (42874, 42874),
  (42876, 42876), (42879, 42879), (42881, 42881), (42883, 42883),
  (42885, 42885), (42887, 42887), (42892, 42892), (42897, 42897),
  (42899, 42900), (42903, 42903), (42905, 42905), (42907, 42907),
  (42909, 42909), (42911, 42911), (42913, 42913), (42915, 42915),
  (42917, 42917), (42919, 42919), (42921, 42921), (42933, 42933),
  (42935, 42935), (42937, 42937), (42939, 42939), (42941, 42941),
  (42943, 42943), (42945, 42945), (42947, 42947), (42952, 42952),
  (42954, 42954), (42957, 42957), (42959, 42959), (42961, 42961),
  (42963, 42963), (42965, 42965), (42967, 42967), (42969, 42969),
  (42971, 42971), (42998, 42998), (43859, 43859), (43888, 43967),
  (64256, 64262), (64275, 64279), (65345, 65370), (66600, 66639),
  (66776, 66811), (66967, 66977), (66979, 66993), (66995, 67001),
  (67003, 67004), (68800, 68850), (68976, 68997), (71872, 71903),
  (93792, 93823), (93883, 93907), (125218, 125251),
];

pub const DASH: &'static [(u32, u32)] = &[
  (45, 45), (1418, 1418), (1470, 1470), (5120, 5120), (6150, 6150),
  (8208, 8213), (8275, 8275), (8315, 8315), (8331, 8331), (8722, 8722),
  (11799, 11799), (11802, 11802), (11834, 11835), (11840, 11840),
  (11869, 11869), (12316, 12316), (12336, 12336), (12448, 12448),
  (65073, 65074), (65112, 65112), (65123, 65123), (65293, 65293),
  (68974, 68974), (69293, 69293),
];

pub const DEFAULT_IGNORABLE_CODE_POINT: &'static [(u32, u32)] = &[
  (173, 173), (847, 847), (1564, 1564), (4447, 4448), (6068, 6069),
  (6155, 6159), (8203, 8207), (8234, 8238), (8288, 8303), (12644, 12644),
  (65024, 65039), (65279, 65279), (65440, 65440), (65520, 65528),
  (113824, 113827), (119155, 119162), (917504, 921599),
];

pub const DEPRECATED: &'static [(u32, u32)] = &[
  (329, 329), (1651, 1651), (3959, 3959), (3961, 3961), (6051, 6052),
  (8298, 8303), (9001, 9002), (917505, 917505),
];

pub const DIACRITIC: &'static [(u32, u32)] = &[
  (94, 94), (96, 96), (168, 168), (175, 175), (180, 180), (183, 184),
  (688, 846), (848, 855), (861, 866), (884, 885), (890, 890), (900, 901),
  (1155, 1159), (1369, 1369), (1425, 1469), (1471, 1471), (1473, 1474),
  (1476, 1477), (1479, 1479), (1611, 1618), (1623, 1624), (1759, 1760),
  (1765, 1766), (1770, 1772), (1840, 1866), (1958, 1968), (2027, 2037),
  (2072, 2073), (2200, 2207), (2249, 2258), (2275, 2302), (2364, 2364),
  (2381, 2381), (2385, 2388), (2417, 2417), (2492, 2492), (2509, 2509),
  (2620, 2620), (2637, 2637), (2748, 2748), (2765, 2765), (2813, 2815),
  (2876, 2876), (2893, 2893), (2901, 2901), (3021, 3021), (3132, 3132),
  (3149, 3149), (3260, 3260), (3277, 3277), (3387, 3388), (3405, 3405),
  (3530, 3530), (3642, 3642), (3655, 3660), (3662, 3662), (3770, 3770),
  (3784, 3788), (3864, 3865), (3893, 3893), (3895, 3895), (3897, 3897),
  (3902, 3903), (3970, 3972), (3974, 3975), (4038, 4038), (4151, 4151),
  (4153, 4154), (4195, 4196), (4201, 4205), (4231, 4237), (4239, 4239),
  (4250, 4251), (4957, 4959), (5908, 5909), (5940, 5940), (6089, 6099),
  (6109, 6109), (6457, 6459), (6752, 6752), (6773, 6780), (6783, 6783),
  (6832, 6846), (6849, 6859), (6863, 6877), (6880, 6891), (6964, 6964),
  (6980, 6980), (7019, 7027), (7082, 7083), (7142, 7142), (7154, 7155),
  (7222, 7223), (7288, 7293), (7376, 7400), (7405, 7405), (7412, 7412),
  (7415, 7417), (7468, 7530), (7579, 7614), (7620, 7631), (7669, 7679),
  (8125, 8125), (8127, 8129), (8141, 8143), (8157, 8159), (8173, 8175),
  (8189, 8190), (11503, 11505), (11823, 11823), (12330, 12335),
  (12441, 12444), (12540, 12540), (42607, 42607), (42620, 42621),
  (42623, 42623), (42652, 42653), (42736, 42737), (42752, 42785),
  (42888, 42890), (42993, 42993), (43000, 43001), (43014, 43014),
  (43052, 43052), (43204, 43204), (43232, 43249), (43307, 43310),
  (43347, 43347), (43443, 43443), (43456, 43456), (43493, 43493),
  (43643, 43645), (43711, 43714), (43766, 43766), (43867, 43871),
  (43881, 43883), (44012, 44013), (64286, 64286), (65056, 65071),
  (65342, 65342), (65344, 65344), (65392, 65392), (65438, 65439),
  (65507, 65507), (66272, 66272), (67456, 67461), (67463, 67504),
  (67506, 67514), (68152, 68154), (68159, 68159), (68325, 68326),
  (68898, 68903), (68942, 68942), (68969, 68973), (69370, 69370),
  (69373, 69375), (69446, 69456), (69506, 69509), (69702, 69702),
  (69744, 69744), (69817, 69818), (69939, 69940), (70003, 70003),
  (70080, 70080), (70090, 70092), (70197, 70198), (70377, 70378),
  (70459, 70460), (70477, 70477), (70502, 70508), (70512, 70516),
  (70606, 70608), (70610, 70611), (70625, 70626), (70722, 70722),
  (70726, 70726), (70850, 70851), (71103, 71104), (71231, 71231),
  (71350, 71351), (71467, 71467), (71737, 71738), (71997, 71998),
  (72003, 72003), (72160, 72160), (72244, 72244), (72263, 72263),
  (72345, 72345), (72767, 72767), (73026, 73026), (73028, 73029),
  (73111, 73111), (73177, 73177), (73537, 73538), (73562, 73562),
  (78919, 78933), (90415, 90415), (92912, 92916), (92976, 92982),
  (93547, 93548), (94095, 94111), (94192, 94193), (110576, 110579),
  (110581, 110587), (110589, 110590), (118528, 118573), (118576, 118598),
  (119143, 119145), (119149, 119154), (119163, 119170), (119173, 119179),
  (119210, 119213), (122928, 122989), (123184, 123190), (123566, 123566),
  (123628, 123631), (124398, 124399), (125136, 125142), (125252, 125254),
  (125256, 125258),
];

pub const EMOJI: &'static [(u32, u32)] = &[
  (35, 35), (42, 42), (48, 57), (169, 169), (174, 174), (8252, 8252),
  (8265, 8265), (8482, 8482), (8505, 8505), (8596, 8601), (8617, 8618),
  (8986, 8987), (9000, 9000), (9167, 9167), (9193, 9203), (9208, 9210),
  (9410, 9410), (9642, 9643), (9654, 9654), (9664, 9664), (9723, 9726),
  (9728, 9732), (9742, 9742), (9745, 9745), (9748, 9749), (9752, 9752),
  (9757, 9757), (9760, 9760), (9762, 9763), (9766, 9766), (9770, 9770),
  (9774, 9775), (9784, 9786), (9792, 9792), (9794, 9794), (9800, 9811),
  (9823, 9824), (9827, 9827), (9829, 9830), (9832, 9832), (9851, 9851),
  (9854, 9855), (9874, 9879), (9881, 9881), (9883, 9884), (9888, 9889),
  (9895, 9895), (9898, 9899), (9904, 9905), (9917, 9918), (9924, 9925),
  (9928, 9928), (9934, 9935), (9937, 9937), (9939, 9940), (9961, 9962),
  (9968, 9973), (9975, 9978), (9981, 9981), (9986, 9986), (9989, 9989),
  (9992, 9997), (9999, 9999), (10002, 10002), (10004, 10004), (10006, 10006),
  (10013, 10013), (10017, 10017), (10024, 10024), (10035, 10036),
  (10052, 10052), (10055, 10055), (10060, 10060), (10062, 10062),
  (10067, 10069), (10071, 10071), (10083, 10084), (10133, 10135),
  (10145, 10145), (10160, 10160), (10175, 10175), (10548, 10549),
  (11013, 11015), (11035, 11036), (11088, 11088), (11093, 11093),
  (12336, 12336), (12349, 12349), (12951, 12951), (12953, 12953),
  (126980, 126980), (127183, 127183), (127344, 127345), (127358, 127359),
  (127374, 127374), (127377, 127386), (127462, 127487), (127489, 127490),
  (127514, 127514), (127535, 127535), (127538, 127546), (127568, 127569),
  (127744, 127777), (127780, 127891), (127894, 127895), (127897, 127899),
  (127902, 127984), (127987, 127989), (127991, 128253), (128255, 128317),
  (128329, 128334), (128336, 128359), (128367, 128368), (128371, 128378),
  (128391, 128391), (128394, 128397), (128400, 128400), (128405, 128406),
  (128420, 128421), (128424, 128424), (128433, 128434), (128444, 128444),
  (128450, 128452), (128465, 128467), (128476, 128478), (128481, 128481),
  (128483, 128483), (128488, 128488), (128495, 128495), (128499, 128499),
  (128506, 128591), (128640, 128709), (128715, 128722), (128725, 128728),
  (128732, 128741), (128745, 128745), (128747, 128748), (128752, 128752),
  (128755, 128764), (128992, 129003), (129008, 129008), (129292, 129338),
  (129340, 129349), (129351, 129535), (129648, 129660), (129664, 129674),
  (129678, 129734), (129736, 129736), (129741, 129756), (129759, 129770),
  (129775, 129784),
];

pub const EMOJI_COMPONENT: &'static [(u32, u32)] = &[
  (35, 35), (42, 42), (48, 57), (8205, 8205), (8419, 8419), (65039, 65039),
  (127462, 127487), (127995, 127999), (129456, 129459), (917536, 917631),
];

pub const EMOJI_MODIFIER: &'static [(u32, u32)] = &[
  (127995, 127999),
];

pub const EMOJI_MODIFIER_BASE: &'static [(u32, u32)] = &[
  (9757, 9757), (9977, 9977), (9994, 9997), (127877, 127877),
  (127938, 127940), (127943, 127943), (127946, 127948), (128066, 128067),
  (128070, 128080), (128102, 128120), (128124, 128124), (128129, 128131),
  (128133, 128135), (128143, 128143), (128145, 128145), (128170, 128170),
  (128372, 128373), (128378, 128378), (128400, 128400), (128405, 128406),
  (128581, 128583), (128587, 128591), (128675, 128675), (128692, 128694),
  (128704, 128704), (128716, 128716), (129292, 129292), (129295, 129295),
  (129304, 129311), (129318, 129318), (129328, 129337), (129340, 129342),
  (129399, 129399), (129461, 129462), (129464, 129465), (129467, 129467),
  (129485, 129487), (129489, 129501), (129731, 129733), (129776, 129784),
];

pub const EMOJI_PRESENTATION: &'static [(u32, u32)] = &[
  (8986, 8987), (9193, 9196), (9200, 9200), (9203, 9203), (9725, 9726),
  (9748, 9749), (9800, 9811), (9855, 9855), (9875, 9875), (9889, 9889),
  (9898, 9899), (9917, 9918), (9924, 9925), (9934, 9934), (9940, 9940),
  (9962, 9962), (9970, 9971), (9973, 9973), (9978, 9978), (9981, 9981),
  (9989, 9989), (9994, 9995), (10024, 10024), (10060, 10060), (10062, 10062),
  (10067, 10069), (10071, 10071), (10133, 10135), (10160, 10160),
  (10175, 10175), (11035, 11036), (11088, 11088), (11093, 11093),
  (126980, 126980), (127183, 127183), (127374, 127374), (127377, 127386),
  (127462, 127487), (127489, 127489), (127514, 127514), (127535, 127535),
  (127538, 127542), (127544, 127546), (127568, 127569), (127744, 127776),
  (127789, 127797), (127799, 127868), (127870, 127891), (127904, 127946),
  (127951, 127955), (127968, 127984), (127988, 127988), (127992, 128062),
  (128064, 128064), (128066, 128252), (128255, 128317), (128331, 128334),
  (128336, 128359), (128378, 128378), (128405, 128406), (128420, 128420),
  (128507, 128591), (128640, 128709), (128716, 128716), (128720, 128722),
  (128725, 128728), (128732, 128735), (128747, 128748), (128756, 128764),
  (128992, 129003), (129008, 129008), (129292, 129338), (129340, 129349),
  (129351, 129535), (129648, 129660), (129664, 129674), (129678, 129734),
  (129736, 129736), (129741, 129756), (129759, 129770), (129775, 129784),
];

pub const EXTENDED_PICTOGRAPHIC: &'static [(u32, u32)] = &[
  (169, 169), (174, 174), (8252, 8252), (8265, 8265), (8482, 8482),
  (8505, 8505), (8596, 8601), (8617, 8618), (8986, 8987), (9000, 9000),
  (9167, 9167), (9193, 9203), (9208, 9210), (9410, 9410), (9642, 9643),
  (9654, 9654), (9664, 9664), (9723, 9726), (9728, 9732), (9742, 9742),
  (9745, 9745), (9748, 9749), (9752, 9752), (9757, 9757), (9760, 9760),
  (9762, 9763), (9766, 9766), (9770, 9770), (9774, 9775), (9784, 9786),
  (9792, 9792), (9794, 9794), (9800, 9811), (9823, 9824), (9827, 9827),
  (9829, 9830), (9832, 9832), (9851, 9851), (9854, 9855), (9874, 9879),
  (9881, 9881), (9883, 9884), (9888, 9889), (9895, 9895), (9898, 9899),
  (9904, 9905), (9917, 9918), (9924, 9925), (9928, 9928), (9934, 9935),
  (9937, 9937), (9939, 9940), (9961, 9962), (9968, 9973), (9975, 9978),
  (9981, 9981), (9986, 9986), (9989, 9989), (9992, 9997), (9999, 9999),
  (10002, 10002), (10004, 10004), (10006, 10006), (10013, 10013),
  (10017, 10017), (10024, 10024), (10035, 10036), (10052, 10052),
  (10055, 10055), (10060, 10060), (10062, 10062), (10067, 10069),
  (10071, 10071), (10083, 10084), (10133, 10135), (10145, 10145),
  (10160, 10160), (10175, 10175), (10548, 10549), (11013, 11015),
  (11035, 11036), (11088, 11088), (11093, 11093), (12336, 12336),
  (12349, 12349), (12951, 12951), (12953, 12953), (126980, 126980),
  (127020, 127023), (127124, 127135), (127151, 127152), (127168, 127168),
  (127183, 127184), (127222, 127231), (127344, 127345), (127358, 127359),
  (127374, 127374), (127377, 127386), (127406, 127461), (127489, 127503),
  (127514, 127514), (127535, 127535), (127538, 127546), (127548, 127551),
  (127561, 127583), (127590, 127777), (127780, 127891), (127894, 127895),
  (127897, 127899), (127902, 127984), (127987, 127989), (127991, 127994),
  (128000, 128253), (128255, 128317), (128329, 128334), (128336, 128359),
  (128367, 128368), (128371, 128378), (128391, 128391), (128394, 128397),
  (128400, 128400), (128405, 128406), (128420, 128421), (128424, 128424),
  (128433, 128434), (128444, 128444), (128450, 128452), (128465, 128467),
  (128476, 128478), (128481, 128481), (128483, 128483), (128488, 128488),
  (128495, 128495), (128499, 128499), (128506, 128591), (128640, 128709),
  (128715, 128722), (128725, 128741), (128745, 128745), (128747, 128752),
  (128755, 128767), (128986, 129023), (129036, 129039), (129096, 129103),
  (129114, 129119), (129160, 129167), (129198, 129199), (129212, 129215),
  (129218, 129231), (129241, 129279), (129292, 129338), (129340, 129349),
  (129351, 129535), (129624, 129631), (129646, 129791), (130048, 131069),
];

pub const EXTENDER: &'static [(u32, u32)] = &[
  (183, 183), (720, 721), (1600, 1600), (2042, 2042), (2673, 2673),
  (2811, 2811), (2901, 2901), (3654, 3654), (3782, 3782), (6154, 6154),
  (6211, 6211), (6823, 6823), (7222, 7222), (7291, 7291), (12293, 12293),
  (12337, 12341), (12445, 12446), (12540, 12542), (40981, 40981),
  (42508, 42508), (43471, 43471), (43494, 43494), (43632, 43632),
  (43741, 43741), (43763, 43764), (65392, 65392), (67457, 67458),
  (68942, 68942), (68970, 68970), (68975, 68975), (70199, 70199),
  (70493, 70493), (70610, 70611), (71110, 71112), (72344, 72344),
  (73177, 73177), (92994, 92995), (94176, 94177), (94179, 94179),
  (94194, 94195), (123196, 123197), (124399, 124399), (125252, 125254),
];

pub const GRAPHEME_BASE: &'static [(u32, u32)] = &[
  (32, 126), (160, 172), (174, 767), (880, 887), (890, 895), (900, 906),
  (908, 908), (910, 929), (931, 1154), (1162, 1327), (1329, 1366),
  (1369, 1418), (1421, 1423), (1470, 1470), (1472, 1472), (1475, 1475),
  (1478, 1478), (1488, 1514), (1519, 1524), (1542, 1551), (1563, 1563),
  (1565, 1610), (1632, 1647), (1649, 1749), (1758, 1758), (1765, 1766),
  (1769, 1769), (1774, 1805), (1808, 1808), (1810, 1839), (1869, 1957),
  (1969, 1969), (1984, 2026), (2036, 2042), (2046, 2069), (2074, 2074),
  (2084, 2084), (2088, 2088), (2096, 2110), (2112, 2136), (2142, 2142),
  (2144, 2154), (2160, 2191), (2208, 2249), (2307, 2361), (2363, 2363),
  (2365, 2368), (2377, 2380), (2382, 2384), (2392, 2401), (2404, 2432),
  (2434, 2435), (2437, 2444), (2447, 2448), (2451, 2472), (2474, 2480),
  (2482, 2482), (2486, 2489), (2493, 2493), (2495, 2496), (2503, 2504),
  (2507, 2508), (2510, 2510), (2524, 2525), (2527, 2529), (2534, 2557),
  (2563, 2563), (2565, 2570), (2575, 2576), (2579, 2600), (2602, 2608),
  (2610, 2611), (2613, 2614), (2616, 2617), (2622, 2624), (2649, 2652),
  (2654, 2654), (2662, 2671), (2674, 2676), (2678, 2678), (2691, 2691),
  (2693, 2701), (2703, 2705), (2707, 2728), (2730, 2736), (2738, 2739),
  (2741, 2745), (2749, 2752), (2761, 2761), (2763, 2764), (2768, 2768),
  (2784, 2785), (2790, 2801), (2809, 2809), (2818, 2819), (2821, 2828),
  (2831, 2832), (2835, 2856), (2858, 2864), (2866, 2867), (2869, 2873),
  (2877, 2877), (2880, 2880), (2887, 2888), (2891, 2892), (2908, 2909),
  (2911, 2913), (2918, 2935), (2947, 2947), (2949, 2954), (2958, 2960),
  (2962, 2965), (2969, 2970), (2972, 2972), (2974, 2975), (2979, 2980),
  (2984, 2986), (2990, 3001), (3007, 3007), (3009, 3010), (3014, 3016),
  (3018, 3020), (3024, 3024), (3046, 3066), (3073, 3075), (3077, 3084),
  (3086, 3088), (3090, 3112), (3114, 3129), (3133, 3133), (3137, 3140),
  (3160, 3162), (3164, 3165), (3168, 3169), (3174, 3183), (3191, 3200),
  (3202, 3212), (3214, 3216), (3218, 3240), (3242, 3251), (3253, 3257),
  (3261, 3262), (3265, 3265), (3267, 3268), (3292, 3294), (3296, 3297),
  (3302, 3311), (3313, 3315), (3330, 3340), (3342, 3344), (3346, 3386),
  (3389, 3389), (3391, 3392), (3398, 3400), (3402, 3404), (3406, 3407),
  (3412, 3414), (3416, 3425), (3430, 3455), (3458, 3459), (3461, 3478),
  (3482, 3505), (3507, 3515), (3517, 3517), (3520, 3526), (3536, 3537),
  (3544, 3550), (3558, 3567), (3570, 3572), (3585, 3632), (3634, 3635),
  (3647, 3654), (3663, 3675), (3713, 3714), (3716, 3716), (3718, 3722),
  (3724, 3747), (3749, 3749), (3751, 3760), (3762, 3763), (3773, 3773),
  (3776, 3780), (3782, 3782), (3792, 3801), (3804, 3807), (3840, 3863),
  (3866, 3892), (3894, 3894), (3896, 3896), (3898, 3911), (3913, 3948),
  (3967, 3967), (3973, 3973), (3976, 3980), (4030, 4037), (4039, 4044),
  (4046, 4058), (4096, 4140), (4145, 4145), (4152, 4152), (4155, 4156),
  (4159, 4183), (4186, 4189), (4193, 4208), (4213, 4225), (4227, 4228),
  (4231, 4236), (4238, 4252), (4254, 4293), (4295, 4295), (4301, 4301),
  (4304, 4680), (4682, 4685), (4688, 4694), (4696, 4696), (4698, 4701),
  (4704, 4744), (4746, 4749), (4752, 4784), (4786, 4789), (4792, 4798),
  (4800, 4800), (4802, 4805), (4808, 4822), (4824, 4880), (4882, 4885),
  (4888, 4954), (4960, 4988), (4992, 5017), (5024, 5109), (5112, 5117),
  (5120, 5788), (5792, 5880), (5888, 5905), (5919, 5937), (5941, 5942),
  (5952, 5969), (5984, 5996), (5998, 6000), (6016, 6067), (6070, 6070),
  (6078, 6085), (6087, 6088), (6100, 6108), (6112, 6121), (6128, 6137),
  (6144, 6154), (6160, 6169), (6176, 6264), (6272, 6276), (6279, 6312),
  (6314, 6314), (6320, 6389), (6400, 6430), (6435, 6438), (6441, 6443),
  (6448, 6449), (6451, 6456), (6464, 6464), (6468, 6509), (6512, 6516),
  (6528, 6571), (6576, 6601), (6608, 6618), (6622, 6678), (6681, 6682),
  (6686, 6741), (6743, 6743), (6753, 6753), (6755, 6756), (6765, 6770),
  (6784, 6793), (6800, 6809), (6816, 6829), (6916, 6963), (6974, 6977),
  (6981, 6988), (6990, 7018), (7028, 7039), (7042, 7073), (7078, 7079),
  (7086, 7141), (7143, 7143), (7146, 7148), (7150, 7150), (7164, 7211),
  (7220, 7221), (7227, 7241), (7245, 7306), (7312, 7354), (7357, 7367),
  (7379, 7379), (7393, 7393), (7401, 7404), (7406, 7411), (7413, 7415),
  (7418, 7418), (7424, 7615), (7680, 7957), (7960, 7965), (7968, 8005),
  (8008, 8013), (8016, 8023), (8025, 8025), (8027, 8027), (8029, 8029),
  (8031, 8061), (8064, 8116), (8118, 8132), (8134, 8147), (8150, 8155),
  (8157, 8175), (8178, 8180), (8182, 8190), (8192, 8202), (8208, 8231),
  (8239, 8287), (8304, 8305), (8308, 8334), (8336, 8348), (8352, 8385),
  (8448, 8587), (8592, 9257), (9280, 9290), (9312, 11123), (11126, 11502),
  (11506, 11507), (11513, 11557), (11559, 11559), (11565, 11565),
  (11568, 11623), (11631, 11632), (11648, 11670), (11680, 11686),
  (11688, 11694), (11696, 11702), (11704, 11710), (11712, 11718),
  (11720, 11726), (11728, 11734), (11736, 11742), (11776, 11869),
  (11904, 11929), (11931, 12019), (12032, 12245), (12272, 12329),
  (12336, 12351), (12353, 12438), (12443, 12543), (12549, 12591),
  (12593, 12686), (12688, 12773), (12783, 12830), (12832, 42124),
  (42128, 42182), (42192, 42539), (42560, 42606), (42611, 42611),
  (42622, 42653), (42656, 42735), (42738, 42743), (42752, 42972),
  (42993, 43009), (43011, 43013), (43015, 43018), (43020, 43044),
  (43047, 43051), (43056, 43065), (43072, 43127), (43136, 43203),
  (43214, 43225), (43250, 43262), (43264, 43301), (43310, 43334),
  (43346, 43346), (43359, 43388), (43395, 43442), (43444, 43445),
  (43450, 43451), (43454, 43455), (43457, 43469), (43471, 43481),
  (43486, 43492), (43494, 43518), (43520, 43560), (43567, 43568),
  (43571, 43572), (43584, 43586), (43588, 43595), (43597, 43597),
  (43600, 43609), (43612, 43643), (43645, 43695), (43697, 43697),
  (43701, 43702), (43705, 43709), (43712, 43712), (43714, 43714),
  (43739, 43755), (43758, 43765), (43777, 43782), (43785, 43790),
  (43793, 43798), (43808, 43814), (43816, 43822), (43824, 43883),
  (43888, 44004), (44006, 44007), (44009, 44012), (44016, 44025),
  (44032, 55203), (55216, 55238), (55243, 55291), (63744, 64109),
  (64112, 64217), (64256, 64262), (64275, 64279), (64285, 64285),
  (64287, 64310), (64312, 64316), (64318, 64318), (64320, 64321),
  (64323, 64324), (64326, 64975), (65008, 65023), (65040, 65049),
  (65072, 65106), (65108, 65126), (65128, 65131), (65136, 65140),
  (65142, 65276), (65281, 65437), (65440, 65470), (65474, 65479),
  (65482, 65487), (65490, 65495), (65498, 65500), (65504, 65510),
  (65512, 65518), (65532, 65533), (65536, 65547), (65549, 65574),
  (65576, 65594), (65596, 65597), (65599, 65613), (65616, 65629),
  (65664, 65786), (65792, 65794), (65799, 65843), (65847, 65934),
  (65936, 65948), (65952, 65952), (66000, 66044), (66176, 66204),
  (66208, 66256), (66273, 66299), (66304, 66339), (66349, 66378),
  (66384, 66421), (66432, 66461), (66463, 66499), (66504, 66517),
  (66560, 66717), (66720, 66729), (66736, 66771), (66776, 66811),
  (66816, 66855), (66864, 66915), (66927, 66938), (66940, 66954),
  (66956, 66962), (66964, 66965), (66967, 66977), (66979, 66993),
  (66995, 67001), (67003, 67004), (67008, 67059), (67072, 67382),
  (67392, 67413), (67424, 67431), (67456, 67461), (67463, 67504),
  (67506, 67514), (67584, 67589), (67592, 67592), (67594, 67637),
  (67639, 67640), (67644, 67644), (67647, 67669), (67671, 67742),
  (67751, 67759), (67808, 67826), (67828, 67829), (67835, 67867),
  (67871, 67897), (67903, 67929), (67968, 68023), (68028, 68047),
  (68050, 68096), (68112, 68115), (68117, 68119), (68121, 68149),
  (68160, 68168), (68176, 68184), (68192, 68255), (68288, 68324),
  (68331, 68342), (68352, 68405), (68409, 68437), (68440, 68466),
  (68472, 68497), (68505, 68508), (68521, 68527), (68608, 68680),
  (68736, 68786), (68800, 68850), (68858, 68899), (68912, 68921),
  (68928, 68965), (68974, 68997), (69006, 69007), (69216, 69246),
  (69248, 69289), (69293, 69293), (69296, 69297), (69314, 69319),
  (69328, 69336), (69376, 69415), (69424, 69445), (69457, 69465),
  (69488, 69505), (69510, 69513), (69552, 69579), (69600, 69622),
  (69632, 69632), (69634, 69687), (69703, 69709), (69714, 69743),
  (69745, 69746), (69749, 69749), (69762, 69810), (69815, 69816),
  (69819, 69820), (69822, 69825), (69840, 69864), (69872, 69881),
  (69891, 69926), (69932, 69932), (69942, 69959), (69968, 70002),
  (70004, 70006), (70018, 70069), (70079, 70079), (70081, 70088),
  (70093, 70094), (70096, 70111), (70113, 70132), (70144, 70161),
  (70163, 70190), (70194, 70195), (70200, 70205), (70207, 70208),
  (70272, 70278), (70280, 70280), (70282, 70285), (70287, 70301),
  (70303, 70313), (70320, 70366), (70368, 70370), (70384, 70393),
  (70402, 70403), (70405, 70412), (70415, 70416), (70419, 70440),
  (70442, 70448), (70450, 70451), (70453, 70457), (70461, 70461),
  (70463, 70463), (70465, 70468), (70471, 70472), (70475, 70476),
  (70480, 70480), (70493, 70499), (70528, 70537), (70539, 70539),
  (70542, 70542), (70544, 70581), (70583, 70583), (70585, 70586),
  (70602, 70602), (70604, 70605), (70609, 70609), (70611, 70613),
  (70615, 70616), (70656, 70711), (70720, 70721), (70725, 70725),
  (70727, 70747), (70749, 70749), (70751, 70753), (70784, 70831),
  (70833, 70834), (70841, 70841), (70843, 70844), (70846, 70846),
  (70849, 70849), (70852, 70855), (70864, 70873), (71040, 71086),
  (71088, 71089), (71096, 71099), (71102, 71102), (71105, 71131),
  (71168, 71218), (71227, 71228), (71230, 71230), (71233, 71236),
  (71248, 71257), (71264, 71276), (71296, 71338), (71340, 71340),
  (71342, 71343), (71352, 71353), (71360, 71369), (71376, 71395),
  (71424, 71450), (71454, 71454), (71456, 71457), (71462, 71462),
  (71472, 71494), (71680, 71726), (71736, 71736), (71739, 71739),
  (71840, 71922), (71935, 71942), (71945, 71945), (71948, 71955),
  (71957, 71958), (71960, 71983), (71985, 71989), (71991, 71992),
  (71999, 72002), (72004, 72006), (72016, 72025), (72096, 72103),
  (72106, 72147), (72156, 72159), (72161, 72164), (72192, 72192),
  (72203, 72242), (72249, 72250), (72255, 72262), (72272, 72272),
  (72279, 72280), (72284, 72329), (72343, 72343), (72346, 72354),
  (72368, 72440), (72448, 72457), (72545, 72545), (72549, 72549),
  (72551, 72551), (72640, 72673), (72688, 72697), (72704, 72712),
  (72714, 72751), (72766, 72766), (72768, 72773), (72784, 72812),
  (72816, 72847), (72873, 72873), (72881, 72881), (72884, 72884),
  (72960, 72966), (72968, 72969), (72971, 73008), (73030, 73030),
  (73040, 73049), (73056, 73061), (73063, 73064), (73066, 73102),
  (73107, 73108), (73110, 73110), (73112, 73112), (73120, 73129),
  (73136, 73179), (73184, 73193), (73440, 73458), (73461, 73464),
  (73474, 73488), (73490, 73525), (73534, 73535), (73539, 73561),
  (73648, 73648), (73664, 73713), (73727, 74649), (74752, 74862),
  (74864, 74868), (74880, 75075), (77712, 77810), (77824, 78895),
  (78913, 78918), (78944, 82938), (82944, 83526), (90368, 90397),
  (90410, 90412), (90416, 90425), (92160, 92728), (92736, 92766),
  (92768, 92777), (92782, 92862), (92864, 92873), (92880, 92909),
  (92917, 92917), (92928, 92975), (92983, 92997), (93008, 93017),
  (93019, 93025), (93027, 93047), (93053, 93071), (93504, 93561),
  (93760, 93850), (93856, 93880), (93883, 93907), (93952, 94026),
  (94032, 94087), (94099, 94111), (94176, 94179), (94194, 94198),
  (94208, 101589), (101631, 101662), (101760, 101874), (110576, 110579),
  (110581, 110587), (110589, 110590), (110592, 110882), (110898, 110898),
  (110928, 110930), (110933, 110933), (110948, 110951), (110960, 111355),
  (113664, 113770), (113776, 113788), (113792, 113800), (113808, 113817),
  (113820, 113820), (113823, 113823), (117760, 118012), (118016, 118451),
  (118458, 118480), (118496, 118512), (118608, 118723), (118784, 119029),
  (119040, 119078), (119081, 119140), (119146, 119148), (119171, 119172),
  (119180, 119209), (119214, 119274), (119296, 119361), (119365, 119365),
  (119488, 119507), (119520, 119539), (119552, 119638), (119648, 119672),
  (119808, 119892), (119894, 119964), (119966, 119967), (119970, 119970),
  (119973, 119974), (119977, 119980), (119982, 119993), (119995, 119995),
  (119997, 120003), (120005, 120069), (120071, 120074), (120077, 120084),
  (120086, 120092), (120094, 120121), (120123, 120126), (120128, 120132),
  (120134, 120134), (120138, 120144), (120146, 120485), (120488, 120779),
  (120782, 121343), (121399, 121402), (121453, 121460), (121462, 121475),
  (121477, 121483), (122624, 122654), (122661, 122666), (122928, 122989),
  (123136, 123180), (123191, 123197), (123200, 123209), (123214, 123215),
  (123536, 123565), (123584, 123627), (123632, 123641), (123647, 123647),
  (124112, 124139), (124144, 124153), (124368, 124397), (124400, 124410),
  (124415, 124415), (124608, 124638), (124640, 124642), (124644, 124645),
  (124647, 124653), (124656, 124660), (124670, 124671), (124896, 124902),
  (124904, 124907), (124909, 124910), (124912, 124926), (124928, 125124),
  (125127, 125135), (125184, 125251), (125259, 125259), (125264, 125273),
  (125278, 125279), (126065, 126132), (126209, 126269), (126464, 126467),
  (126469, 126495), (126497, 126498), (126500, 126500), (126503, 126503),
  (126505, 126514), (126516, 126519), (126521, 126521), (126523, 126523),
  (126530, 126530), (126535, 126535), (126537, 126537), (126539, 126539),
  (126541, 126543), (126545, 126546), (126548, 126548), (126551, 126551),
  (126553, 126553), (126555, 126555), (126557, 126557), (126559, 126559),
  (126561, 126562), (126564, 126564), (126567, 126570), (126572, 126578),
  (126580, 126583), (126585, 126588), (126590, 126590), (126592, 126601),
  (126603, 126619), (126625, 126627), (126629, 126633), (126635, 126651),
  (126704, 126705), (126976, 127019), (127024, 127123), (127136, 127150),
  (127153, 127167), (127169, 127183), (127185, 127221), (127232, 127405),
  (127462, 127490), (127504, 127547), (127552, 127560), (127568, 127569),
  (127584, 127589), (127744, 128728), (128732, 128748), (128752, 128764),
  (128768, 128985), (128992, 129003), (129008, 129008), (129024, 129035),
  (129040, 129095), (129104, 129113), (129120, 129159), (129168, 129197),
  (129200, 129211), (129216, 129217), (129232, 129240), (129280, 129623),
  (129632, 129645), (129648, 129660), (129664, 129674), (129678, 129734),
  (129736, 129736), (129741, 129756), (129759, 129770), (129775, 129784),
  (129792, 129938), (129940, 130042), (131072, 173791), (173824, 178205),
  (178208, 183981), (183984, 191456), (191472, 192093), (194560, 195101),
  (196608, 201546), (201552, 210041),
];

pub const GRAPHEME_EXTEND: &'static [(u32, u32)] = &[
  (768, 879), (1155, 1161), (1425, 1469), (1471, 1471), (1473, 1474),
  (1476, 1477), (1479, 1479), (1552, 1562), (1611, 1631), (1648, 1648),
  (1750, 1756), (1759, 1764), (1767, 1768), (1770, 1773), (1809, 1809),
  (1840, 1866), (1958, 1968), (2027, 2035), (2045, 2045), (2070, 2073),
  (2075, 2083), (2085, 2087), (2089, 2093), (2137, 2139), (2199, 2207),
  (2250, 2273), (2275, 2306), (2362, 2362), (2364, 2364), (2369, 2376),
  (2381, 2381), (2385, 2391), (2402, 2403), (2433, 2433), (2492, 2492),
  (2494, 2494), (2497, 2500), (2509, 2509), (2519, 2519), (2530, 2531),
  (2558, 2558), (2561, 2562), (2620, 2620), (2625, 2626), (2631, 2632),
  (2635, 2637), (2641, 2641), (2672, 2673), (2677, 2677), (2689, 2690),
  (2748, 2748), (2753, 2757), (2759, 2760), (2765, 2765), (2786, 2787),
  (2810, 2815), (2817, 2817), (2876, 2876), (2878, 2879), (2881, 2884),
  (2893, 2893), (2901, 2903), (2914, 2915), (2946, 2946), (3006, 3006),
  (3008, 3008), (3021, 3021), (3031, 3031), (3072, 3072), (3076, 3076),
  (3132, 3132), (3134, 3136), (3142, 3144), (3146, 3149), (3157, 3158),
  (3170, 3171), (3201, 3201), (3260, 3260), (3263, 3264), (3266, 3266),
  (3270, 3272), (3274, 3277), (3285, 3286), (3298, 3299), (3328, 3329),
  (3387, 3388), (3390, 3390), (3393, 3396), (3405, 3405), (3415, 3415),
  (3426, 3427), (3457, 3457), (3530, 3530), (3535, 3535), (3538, 3540),
  (3542, 3542), (3551, 3551), (3633, 3633), (3636, 3642), (3655, 3662),
  (3761, 3761), (3764, 3772), (3784, 3790), (3864, 3865), (3893, 3893),
  (3895, 3895), (3897, 3897), (3953, 3966), (3968, 3972), (3974, 3975),
  (3981, 3991), (3993, 4028), (4038, 4038), (4141, 4144), (4146, 4151),
  (4153, 4154), (4157, 4158), (4184, 4185), (4190, 4192), (4209, 4212),
  (4226, 4226), (4229, 4230), (4237, 4237), (4253, 4253), (4957, 4959),
  (5906, 5909), (5938, 5940), (5970, 5971), (6002, 6003), (6068, 6069),
  (6071, 6077), (6086, 6086), (6089, 6099), (6109, 6109), (6155, 6157),
  (6159, 6159), (6277, 6278), (6313, 6313), (6432, 6434), (6439, 6440),
  (6450, 6450), (6457, 6459), (6679, 6680), (6683, 6683), (6742, 6742),
  (6744, 6750), (6752, 6752), (6754, 6754), (6757, 6764), (6771, 6780),
  (6783, 6783), (6832, 6877), (6880, 6891), (6912, 6915), (6964, 6973),
  (6978, 6980), (7019, 7027), (7040, 7041), (7074, 7077), (7080, 7085),
  (7142, 7142), (7144, 7145), (7149, 7149), (7151, 7155), (7212, 7219),
  (7222, 7223), (7376, 7378), (7380, 7392), (7394, 7400), (7405, 7405),
  (7412, 7412), (7416, 7417), (7616, 7679), (8204, 8204), (8400, 8432),
  (11503, 11505), (11647, 11647), (11744, 11775), (12330, 12335),
  (12441, 12442), (42607, 42610), (42612, 42621), (42654, 42655),
  (42736, 42737), (43010, 43010), (43014, 43014), (43019, 43019),
  (43045, 43046), (43052, 43052), (43204, 43205), (43232, 43249),
  (43263, 43263), (43302, 43309), (43335, 43345), (43347, 43347),
  (43392, 43394), (43443, 43443), (43446, 43449), (43452, 43453),
  (43456, 43456), (43493, 43493), (43561, 43566), (43569, 43570),
  (43573, 43574), (43587, 43587), (43596, 43596), (43644, 43644),
  (43696, 43696), (43698, 43700), (43703, 43704), (43710, 43711),
  (43713, 43713), (43756, 43757), (43766, 43766), (44005, 44005),
  (44008, 44008), (44013, 44013), (64286, 64286), (65024, 65039),
  (65056, 65071), (65438, 65439), (66045, 66045), (66272, 66272),
  (66422, 66426), (68097, 68099), (68101, 68102), (68108, 68111),
  (68152, 68154), (68159, 68159), (68325, 68326), (68900, 68903),
  (68969, 68973), (69291, 69292), (69370, 69375), (69446, 69456),
  (69506, 69509), (69633, 69633), (69688, 69702), (69744, 69744),
  (69747, 69748), (69759, 69761), (69811, 69814), (69817, 69818),
  (69826, 69826), (69888, 69890), (69927, 69931), (69933, 69940),
  (70003, 70003), (70016, 70017), (70070, 70078), (70080, 70080),
  (70089, 70092), (70095, 70095), (70191, 70193), (70196, 70199),
  (70206, 70206), (70209, 70209), (70367, 70367), (70371, 70378),
  (70400, 70401), (70459, 70460), (70462, 70462), (70464, 70464),
  (70477, 70477), (70487, 70487), (70502, 70508), (70512, 70516),
  (70584, 70584), (70587, 70592), (70594, 70594), (70597, 70597),
  (70599, 70601), (70606, 70608), (70610, 70610), (70625, 70626),
  (70712, 70719), (70722, 70724), (70726, 70726), (70750, 70750),
  (70832, 70832), (70835, 70840), (70842, 70842), (70845, 70845),
  (70847, 70848), (70850, 70851), (71087, 71087), (71090, 71093),
  (71100, 71101), (71103, 71104), (71132, 71133), (71219, 71226),
  (71229, 71229), (71231, 71232), (71339, 71339), (71341, 71341),
  (71344, 71351), (71453, 71453), (71455, 71455), (71458, 71461),
  (71463, 71467), (71727, 71735), (71737, 71738), (71984, 71984),
  (71995, 71998), (72003, 72003), (72148, 72151), (72154, 72155),
  (72160, 72160), (72193, 72202), (72243, 72248), (72251, 72254),
  (72263, 72263), (72273, 72278), (72281, 72283), (72330, 72342),
  (72344, 72345), (72544, 72544), (72546, 72548), (72550, 72550),
  (72752, 72758), (72760, 72765), (72767, 72767), (72850, 72871),
  (72874, 72880), (72882, 72883), (72885, 72886), (73009, 73014),
  (73018, 73018), (73020, 73021), (73023, 73029), (73031, 73031),
  (73104, 73105), (73109, 73109), (73111, 73111), (73459, 73460),
  (73472, 73473), (73526, 73530), (73536, 73538), (73562, 73562),
  (78912, 78912), (78919, 78933), (90398, 90409), (90413, 90415),
  (92912, 92916), (92976, 92982), (94031, 94031), (94095, 94098),
  (94180, 94180), (94192, 94193), (113821, 113822), (118528, 118573),
  (118576, 118598), (119141, 119145), (119149, 119154), (119163, 119170),
  (119173, 119179), (119210, 119213), (119362, 119364), (121344, 121398),
  (121403, 121452), (121461, 121461), (121476, 121476), (121499, 121503),
  (121505, 121519), (122880, 122886), (122888, 122904), (122907, 122913),
  (122915, 122916), (122918, 122922), (123023, 123023), (123184, 123190),
  (123566, 123566), (123628, 123631), (124140, 124143), (124398, 124399),
  (124643, 124643), (124646, 124646), (124654, 124655), (124661, 124661),
  (125136, 125142), (125252, 125258), (917536, 917631), (917760, 917999),
];

pub const GRAPHEME_LINK: &'static [(u32, u32)] = &[
  (2381, 2381), (2509, 2509), (2637, 2637), (2765, 2765), (2893, 2893),
  (3021, 3021), (3149, 3149), (3277, 3277), (3387, 3388), (3405, 3405),
  (3530, 3530), (3642, 3642), (3770, 3770), (3972, 3972), (4153, 4154),
  (5908, 5909), (5940, 5940), (6098, 6098), (6752, 6752), (6980, 6980),
  (7082, 7083), (7154, 7155), (11647, 11647), (43014, 43014), (43052, 43052),
  (43204, 43204), (43347, 43347), (43456, 43456), (43766, 43766),
  (44013, 44013), (68159, 68159), (69702, 69702), (69744, 69744),
  (69759, 69759), (69817, 69817), (69939, 69940), (70080, 70080),
  (70197, 70197), (70378, 70378), (70477, 70477), (70606, 70608),
  (70722, 70722), (70850, 70850), (71103, 71103), (71231, 71231),
  (71350, 71350), (71467, 71467), (71737, 71737), (71997, 71998),
  (72160, 72160), (72244, 72244), (72263, 72263), (72345, 72345),
  (72767, 72767), (73028, 73029), (73111, 73111), (73537, 73538),
  (90415, 90415),
];

pub const HEX_DIGIT: &'static [(u32, u32)] = &[
  (48, 57), (65, 70), (97, 102), (65296, 65305), (65313, 65318),
  (65345, 65350),
];

pub const HYPHEN: &'static [(u32, u32)] = &[
  (45, 45), (173, 173), (1418, 1418), (6150, 6150), (8208, 8209),
  (11799, 11799), (12539, 12539), (65123, 65123), (65293, 65293),
  (65381, 65381),
];

pub const IDS_BINARY_OPERATOR: &'static [(u32, u32)] = &[
  (12272, 12273), (12276, 12285), (12783, 12783),
];

pub const IDS_TRINARY_OPERATOR: &'static [(u32, u32)] = &[
  (12274, 12275),
];

pub const IDS_UNARY_OPERATOR: &'static [(u32, u32)] = &[
  (12286, 12287),
];

pub const ID_COMPAT_MATH_CONTINUE: &'static [(u32, u32)] = &[
  (178, 179), (185, 185), (8304, 8304), (8308, 8318), (8320, 8334),
  (8706, 8706), (8711, 8711), (8734, 8734), (120513, 120513),
  (120539, 120539), (120571, 120571), (120597, 120597), (120629, 120629),
  (120655, 120655), (120687, 120687), (120713, 120713), (120745, 120745),
  (120771, 120771),
];

pub const ID_COMPAT_MATH_START: &'static [(u32, u32)] = &[
  (8706, 8706), (8711, 8711), (8734, 8734), (120513, 120513),
  (120539, 120539), (120571, 120571), (120597, 120597), (120629, 120629),
  (120655, 120655), (120687, 120687), (120713, 120713), (120745, 120745),
  (120771, 120771),
];

pub const ID_CONTINUE: &'static [(u32, u32)] = &[
  (48, 57), (65, 90), (95, 95), (97, 122), (170, 170), (181, 181), (183, 183),
  (186, 186), (192, 214), (216, 246), (248, 705), (710, 721), (736, 740),
  (748, 748), (750, 750), (768, 884), (886, 887), (890, 893), (895, 895),
  (902, 906), (908, 908), (910, 929), (931, 1013), (1015, 1153), (1155, 1159),
  (1162, 1327), (1329, 1366), (1369, 1369), (1376, 1416), (1425, 1469),
  (1471, 1471), (1473, 1474), (1476, 1477), (1479, 1479), (1488, 1514),
  (1519, 1522), (1552, 1562), (1568, 1641), (1646, 1747), (1749, 1756),
  (1759, 1768), (1770, 1788), (1791, 1791), (1808, 1866), (1869, 1969),
  (1984, 2037), (2042, 2042), (2045, 2045), (2048, 2093), (2112, 2139),
  (2144, 2154), (2160, 2183), (2185, 2191), (2199, 2273), (2275, 2403),
  (2406, 2415), (2417, 2435), (2437, 2444), (2447, 2448), (2451, 2472),
  (2474, 2480), (2482, 2482), (2486, 2489), (2492, 2500), (2503, 2504),
  (2507, 2510), (2519, 2519), (2524, 2525), (2527, 2531), (2534, 2545),
  (2556, 2556), (2558, 2558), (2561, 2563), (2565, 2570), (2575, 2576),
  (2579, 2600), (2602, 2608), (2610, 2611), (2613, 2614), (2616, 2617),
  (2620, 2620), (2622, 2626), (2631, 2632), (2635, 2637), (2641, 2641),
  (2649, 2652), (2654, 2654), (2662, 2677), (2689, 2691), (2693, 2701),
  (2703, 2705), (2707, 2728), (2730, 2736), (2738, 2739), (2741, 2745),
  (2748, 2757), (2759, 2761), (2763, 2765), (2768, 2768), (2784, 2787),
  (2790, 2799), (2809, 2815), (2817, 2819), (2821, 2828), (2831, 2832),
  (2835, 2856), (2858, 2864), (2866, 2867), (2869, 2873), (2876, 2884),
  (2887, 2888), (2891, 2893), (2901, 2903), (2908, 2909), (2911, 2915),
  (2918, 2927), (2929, 2929), (2946, 2947), (2949, 2954), (2958, 2960),
  (2962, 2965), (2969, 2970), (2972, 2972), (2974, 2975), (2979, 2980),
  (2984, 2986), (2990, 3001), (3006, 3010), (3014, 3016), (3018, 3021),
  (3024, 3024), (3031, 3031), (3046, 3055), (3072, 3084), (3086, 3088),
  (3090, 3112), (3114, 3129), (3132, 3140), (3142, 3144), (3146, 3149),
  (3157, 3158), (3160, 3162), (3164, 3165), (3168, 3171), (3174, 3183),
  (3200, 3203), (3205, 3212), (3214, 3216), (3218, 3240), (3242, 3251),
  (3253, 3257), (3260, 3268), (3270, 3272), (3274, 3277), (3285, 3286),
  (3292, 3294), (3296, 3299), (3302, 3311), (3313, 3315), (3328, 3340),
  (3342, 3344), (3346, 3396), (3398, 3400), (3402, 3406), (3412, 3415),
  (3423, 3427), (3430, 3439), (3450, 3455), (3457, 3459), (3461, 3478),
  (3482, 3505), (3507, 3515), (3517, 3517), (3520, 3526), (3530, 3530),
  (3535, 3540), (3542, 3542), (3544, 3551), (3558, 3567), (3570, 3571),
  (3585, 3642), (3648, 3662), (3664, 3673), (3713, 3714), (3716, 3716),
  (3718, 3722), (3724, 3747), (3749, 3749), (3751, 3773), (3776, 3780),
  (3782, 3782), (3784, 3790), (3792, 3801), (3804, 3807), (3840, 3840),
  (3864, 3865), (3872, 3881), (3893, 3893), (3895, 3895), (3897, 3897),
  (3902, 3911), (3913, 3948), (3953, 3972), (3974, 3991), (3993, 4028),
  (4038, 4038), (4096, 4169), (4176, 4253), (4256, 4293), (4295, 4295),
  (4301, 4301), (4304, 4346), (4348, 4680), (4682, 4685), (4688, 4694),
  (4696, 4696), (4698, 4701), (4704, 4744), (4746, 4749), (4752, 4784),
  (4786, 4789), (4792, 4798), (4800, 4800), (4802, 4805), (4808, 4822),
  (4824, 4880), (4882, 4885), (4888, 4954), (4957, 4959), (4969, 4977),
  (4992, 5007), (5024, 5109), (5112, 5117), (5121, 5740), (5743, 5759),
  (5761, 5786), (5792, 5866), (5870, 5880), (5888, 5909), (5919, 5940),
  (5952, 5971), (5984, 5996), (5998, 6000), (6002, 6003), (6016, 6099),
  (6103, 6103), (6108, 6109), (6112, 6121), (6155, 6157), (6159, 6169),
  (6176, 6264), (6272, 6314), (6320, 6389), (6400, 6430), (6432, 6443),
  (6448, 6459), (6470, 6509), (6512, 6516), (6528, 6571), (6576, 6601),
  (6608, 6618), (6656, 6683), (6688, 6750), (6752, 6780), (6783, 6793),
  (6800, 6809), (6823, 6823), (6832, 6845), (6847, 6877), (6880, 6891),
  (6912, 6988), (6992, 7001), (7019, 7027), (7040, 7155), (7168, 7223),
  (7232, 7241), (7245, 7293), (7296, 7306), (7312, 7354), (7357, 7359),
  (7376, 7378), (7380, 7418), (7424, 7957), (7960, 7965), (7968, 8005),
  (8008, 8013), (8016, 8023), (8025, 8025), (8027, 8027), (8029, 8029),
  (8031, 8061), (8064, 8116), (8118, 8124), (8126, 8126), (8130, 8132),
  (8134, 8140), (8144, 8147), (8150, 8155), (8160, 8172), (8178, 8180),
  (8182, 8188), (8204, 8205), (8255, 8256), (8276, 8276), (8305, 8305),
  (8319, 8319), (8336, 8348), (8400, 8412), (8417, 8417), (8421, 8432),
  (8450, 8450), (8455, 8455), (8458, 8467), (8469, 8469), (8472, 8477),
  (8484, 8484), (8486, 8486), (8488, 8488), (8490, 8505), (8508, 8511),
  (8517, 8521), (8526, 8526), (8544, 8584), (11264, 11492), (11499, 11507),
  (11520, 11557), (11559, 11559), (11565, 11565), (11568, 11623),
  (11631, 11631), (11647, 11670), (11680, 11686), (11688, 11694),
  (11696, 11702), (11704, 11710), (11712, 11718), (11720, 11726),
  (11728, 11734), (11736, 11742), (11744, 11775), (12293, 12295),
  (12321, 12335), (12337, 12341), (12344, 12348), (12353, 12438),
  (12441, 12447), (12449, 12543), (12549, 12591), (12593, 12686),
  (12704, 12735), (12784, 12799), (13312, 19903), (19968, 42124),
  (42192, 42237), (42240, 42508), (42512, 42539), (42560, 42607),
  (42612, 42621), (42623, 42737), (42775, 42783), (42786, 42888),
  (42891, 42972), (42993, 43047), (43052, 43052), (43072, 43123),
  (43136, 43205), (43216, 43225), (43232, 43255), (43259, 43259),
  (43261, 43309), (43312, 43347), (43360, 43388), (43392, 43456),
  (43471, 43481), (43488, 43518), (43520, 43574), (43584, 43597),
  (43600, 43609), (43616, 43638), (43642, 43714), (43739, 43741),
  (43744, 43759), (43762, 43766), (43777, 43782), (43785, 43790),
  (43793, 43798), (43808, 43814), (43816, 43822), (43824, 43866),
  (43868, 43881), (43888, 44010), (44012, 44013), (44016, 44025),
  (44032, 55203), (55216, 55238), (55243, 55291), (63744, 64109),
  (64112, 64217), (64256, 64262), (64275, 64279), (64285, 64296),
  (64298, 64310), (64312, 64316), (64318, 64318), (64320, 64321),
  (64323, 64324), (64326, 64433), (64467, 64829), (64848, 64911),
  (64914, 64967), (65008, 65019), (65024, 65039), (65056, 65071),
  (65075, 65076), (65101, 65103), (65136, 65140), (65142, 65276),
  (65296, 65305), (65313, 65338), (65343, 65343), (65345, 65370),
  (65381, 65470), (65474, 65479), (65482, 65487), (65490, 65495),
  (65498, 65500), (65536, 65547), (65549, 65574), (65576, 65594),
  (65596, 65597), (65599, 65613), (65616, 65629), (65664, 65786),
  (65856, 65908), (66045, 66045), (66176, 66204), (66208, 66256),
  (66272, 66272), (66304, 66335), (66349, 66378), (66384, 66426),
  (66432, 66461), (66464, 66499), (66504, 66511), (66513, 66517),
  (66560, 66717), (66720, 66729), (66736, 66771), (66776, 66811),
  (66816, 66855), (66864, 66915), (66928, 66938), (66940, 66954),
  (66956, 66962), (66964, 66965), (66967, 66977), (66979, 66993),
  (66995, 67001), (67003, 67004), (67008, 67059), (67072, 67382),
  (67392, 67413), (67424, 67431), (67456, 67461), (67463, 67504),
  (67506, 67514), (67584, 67589), (67592, 67592), (67594, 67637),
  (67639, 67640), (67644, 67644), (67647, 67669), (67680, 67702),
  (67712, 67742), (67808, 67826), (67828, 67829), (67840, 67861),
  (67872, 67897), (67904, 67929), (67968, 68023), (68030, 68031),
  (68096, 68099), (68101, 68102), (68108, 68115), (68117, 68119),
  (68121, 68149), (68152, 68154), (68159, 68159), (68192, 68220),
  (68224, 68252), (68288, 68295), (68297, 68326), (68352, 68405),
  (68416, 68437), (68448, 68466), (68480, 68497), (68608, 68680),
  (68736, 68786), (68800, 68850), (68864, 68903), (68912, 68921),
  (68928, 68965), (68969, 68973), (68975, 68997), (69248, 69289),
  (69291, 69292), (69296, 69297), (69314, 69319), (69370, 69404),
  (69415, 69415), (69424, 69456), (69488, 69509), (69552, 69572),
  (69600, 69622), (69632, 69702), (69734, 69749), (69759, 69818),
  (69826, 69826), (69840, 69864), (69872, 69881), (69888, 69940),
  (69942, 69951), (69956, 69959), (69968, 70003), (70006, 70006),
  (70016, 70084), (70089, 70092), (70094, 70106), (70108, 70108),
  (70144, 70161), (70163, 70199), (70206, 70209), (70272, 70278),
  (70280, 70280), (70282, 70285), (70287, 70301), (70303, 70312),
  (70320, 70378), (70384, 70393), (70400, 70403), (70405, 70412),
  (70415, 70416), (70419, 70440), (70442, 70448), (70450, 70451),
  (70453, 70457), (70459, 70468), (70471, 70472), (70475, 70477),
  (70480, 70480), (70487, 70487), (70493, 70499), (70502, 70508),
  (70512, 70516), (70528, 70537), (70539, 70539), (70542, 70542),
  (70544, 70581), (70583, 70592), (70594, 70594), (70597, 70597),
  (70599, 70602), (70604, 70611), (70625, 70626), (70656, 70730),
  (70736, 70745), (70750, 70753), (70784, 70853), (70855, 70855),
  (70864, 70873), (71040, 71093), (71096, 71104), (71128, 71133),
  (71168, 71232), (71236, 71236), (71248, 71257), (71296, 71352),
  (71360, 71369), (71376, 71395), (71424, 71450), (71453, 71467),
  (71472, 71481), (71488, 71494), (71680, 71738), (71840, 71913),
  (71935, 71942), (71945, 71945), (71948, 71955), (71957, 71958),
  (71960, 71989), (71991, 71992), (71995, 72003), (72016, 72025),
  (72096, 72103), (72106, 72151), (72154, 72161), (72163, 72164),
  (72192, 72254), (72263, 72263), (72272, 72345), (72349, 72349),
  (72368, 72440), (72544, 72551), (72640, 72672), (72688, 72697),
  (72704, 72712), (72714, 72758), (72760, 72768), (72784, 72793),
  (72818, 72847), (72850, 72871), (72873, 72886), (72960, 72966),
  (72968, 72969), (72971, 73014), (73018, 73018), (73020, 73021),
  (73023, 73031), (73040, 73049), (73056, 73061), (73063, 73064),
  (73066, 73102), (73104, 73105), (73107, 73112), (73120, 73129),
  (73136, 73179), (73184, 73193), (73440, 73462), (73472, 73488),
  (73490, 73530), (73534, 73538), (73552, 73562), (73648, 73648),
  (73728, 74649), (74752, 74862), (74880, 75075), (77712, 77808),
  (77824, 78895), (78912, 78933), (78944, 82938), (82944, 83526),
  (90368, 90425), (92160, 92728), (92736, 92766), (92768, 92777),
  (92784, 92862), (92864, 92873), (92880, 92909), (92912, 92916),
  (92928, 92982), (92992, 92995), (93008, 93017), (93027, 93047),
  (93053, 93071), (93504, 93548), (93552, 93561), (93760, 93823),
  (93856, 93880), (93883, 93907), (93952, 94026), (94031, 94087),
  (94095, 94111), (94176, 94177), (94179, 94180), (94192, 94198),
  (94208, 101589), (101631, 101662), (101760, 101874), (110576, 110579),
  (110581, 110587), (110589, 110590), (110592, 110882), (110898, 110898),
  (110928, 110930), (110933, 110933), (110948, 110951), (110960, 111355),
  (113664, 113770), (113776, 113788), (113792, 113800), (113808, 113817),
  (113821, 113822), (118000, 118009), (118528, 118573), (118576, 118598),
  (119141, 119145), (119149, 119154), (119163, 119170), (119173, 119179),
  (119210, 119213), (119362, 119364), (119808, 119892), (119894, 119964),
  (119966, 119967), (119970, 119970), (119973, 119974), (119977, 119980),
  (119982, 119993), (119995, 119995), (119997, 120003), (120005, 120069),
  (120071, 120074), (120077, 120084), (120086, 120092), (120094, 120121),
  (120123, 120126), (120128, 120132), (120134, 120134), (120138, 120144),
  (120146, 120485), (120488, 120512), (120514, 120538), (120540, 120570),
  (120572, 120596), (120598, 120628), (120630, 120654), (120656, 120686),
  (120688, 120712), (120714, 120744), (120746, 120770), (120772, 120779),
  (120782, 120831), (121344, 121398), (121403, 121452), (121461, 121461),
  (121476, 121476), (121499, 121503), (121505, 121519), (122624, 122654),
  (122661, 122666), (122880, 122886), (122888, 122904), (122907, 122913),
  (122915, 122916), (122918, 122922), (122928, 122989), (123023, 123023),
  (123136, 123180), (123184, 123197), (123200, 123209), (123214, 123214),
  (123536, 123566), (123584, 123641), (124112, 124153), (124368, 124410),
  (124608, 124638), (124640, 124661), (124670, 124671), (124896, 124902),
  (124904, 124907), (124909, 124910), (124912, 124926), (124928, 125124),
  (125136, 125142), (125184, 125259), (125264, 125273), (126464, 126467),
  (126469, 126495), (126497, 126498), (126500, 126500), (126503, 126503),
  (126505, 126514), (126516, 126519), (126521, 126521), (126523, 126523),
  (126530, 126530), (126535, 126535), (126537, 126537), (126539, 126539),
  (126541, 126543), (126545, 126546), (126548, 126548), (126551, 126551),
  (126553, 126553), (126555, 126555), (126557, 126557), (126559, 126559),
  (126561, 126562), (126564, 126564), (126567, 126570), (126572, 126578),
  (126580, 126583), (126585, 126588), (126590, 126590), (126592, 126601),
  (126603, 126619), (126625, 126627), (126629, 126633), (126635, 126651),
  (130032, 130041), (131072, 173791), (173824, 178205), (178208, 183981),
  (183984, 191456), (191472, 192093), (194560, 195101), (196608, 201546),
  (201552, 210041), (917760, 917999),
];

pub const ID_START: &'static [(u32, u32)] = &[
  (65, 90), (97, 122), (170, 170), (181, 181), (186, 186), (192, 214),
  (216, 246), (248, 705), (710, 721), (736, 740), (748, 748), (750, 750),
  (880, 884), (886, 887), (890, 893), (895, 895), (902, 902), (904, 906),
  (908, 908), (910, 929), (931, 1013), (1015, 1153), (1162, 1327),
  (1329, 1366), (1369, 1369), (1376, 1416), (1488, 1514), (1519, 1522),
  (1568, 1610), (1646, 1647), (1649, 1747), (1749, 1749), (1765, 1766),
  (1774, 1775), (1786, 1788), (1791, 1791), (1808, 1808), (1810, 1839),
  (1869, 1957), (1969, 1969), (1994, 2026), (2036, 2037), (2042, 2042),
  (2048, 2069), (2074, 2074), (2084, 2084), (2088, 2088), (2112, 2136),
  (2144, 2154), (2160, 2183), (2185, 2191), (2208, 2249), (2308, 2361),
  (2365, 2365), (2384, 2384), (2392, 2401), (2417, 2432), (2437, 2444),
  (2447, 2448), (2451, 2472), (2474, 2480), (2482, 2482), (2486, 2489),
  (2493, 2493), (2510, 2510), (2524, 2525), (2527, 2529), (2544, 2545),
  (2556, 2556), (2565, 2570), (2575, 2576), (2579, 2600), (2602, 2608),
  (2610, 2611), (2613, 2614), (2616, 2617), (2649, 2652), (2654, 2654),
  (2674, 2676), (2693, 2701), (2703, 2705), (2707, 2728), (2730, 2736),
  (2738, 2739), (2741, 2745), (2749, 2749), (2768, 2768), (2784, 2785),
  (2809, 2809), (2821, 2828), (2831, 2832), (2835, 2856), (2858, 2864),
  (2866, 2867), (2869, 2873), (2877, 2877), (2908, 2909), (2911, 2913),
  (2929, 2929), (2947, 2947), (2949, 2954), (2958, 2960), (2962, 2965),
  (2969, 2970), (2972, 2972), (2974, 2975), (2979, 2980), (2984, 2986),
  (2990, 3001), (3024, 3024), (3077, 3084), (3086, 3088), (3090, 3112),
  (3114, 3129), (3133, 3133), (3160, 3162), (3164, 3165), (3168, 3169),
  (3200, 3200), (3205, 3212), (3214, 3216), (3218, 3240), (3242, 3251),
  (3253, 3257), (3261, 3261), (3292, 3294), (3296, 3297), (3313, 3314),
  (3332, 3340), (3342, 3344), (3346, 3386), (3389, 3389), (3406, 3406),
  (3412, 3414), (3423, 3425), (3450, 3455), (3461, 3478), (3482, 3505),
  (3507, 3515), (3517, 3517), (3520, 3526), (3585, 3632), (3634, 3635),
  (3648, 3654), (3713, 3714), (3716, 3716), (3718, 3722), (3724, 3747),
  (3749, 3749), (3751, 3760), (3762, 3763), (3773, 3773), (3776, 3780),
  (3782, 3782), (3804, 3807), (3840, 3840), (3904, 3911), (3913, 3948),
  (3976, 3980), (4096, 4138), (4159, 4159), (4176, 4181), (4186, 4189),
  (4193, 4193), (4197, 4198), (4206, 4208), (4213, 4225), (4238, 4238),
  (4256, 4293), (4295, 4295), (4301, 4301), (4304, 4346), (4348, 4680),
  (4682, 4685), (4688, 4694), (4696, 4696), (4698, 4701), (4704, 4744),
  (4746, 4749), (4752, 4784), (4786, 4789), (4792, 4798), (4800, 4800),
  (4802, 4805), (4808, 4822), (4824, 4880), (4882, 4885), (4888, 4954),
  (4992, 5007), (5024, 5109), (5112, 5117), (5121, 5740), (5743, 5759),
  (5761, 5786), (5792, 5866), (5870, 5880), (5888, 5905), (5919, 5937),
  (5952, 5969), (5984, 5996), (5998, 6000), (6016, 6067), (6103, 6103),
  (6108, 6108), (6176, 6264), (6272, 6312), (6314, 6314), (6320, 6389),
  (6400, 6430), (6480, 6509), (6512, 6516), (6528, 6571), (6576, 6601),
  (6656, 6678), (6688, 6740), (6823, 6823), (6917, 6963), (6981, 6988),
  (7043, 7072), (7086, 7087), (7098, 7141), (7168, 7203), (7245, 7247),
  (7258, 7293), (7296, 7306), (7312, 7354), (7357, 7359), (7401, 7404),
  (7406, 7411), (7413, 7414), (7418, 7418), (7424, 7615), (7680, 7957),
  (7960, 7965), (7968, 8005), (8008, 8013), (8016, 8023), (8025, 8025),
  (8027, 8027), (8029, 8029), (8031, 8061), (8064, 8116), (8118, 8124),
  (8126, 8126), (8130, 8132), (8134, 8140), (8144, 8147), (8150, 8155),
  (8160, 8172), (8178, 8180), (8182, 8188), (8305, 8305), (8319, 8319),
  (8336, 8348), (8450, 8450), (8455, 8455), (8458, 8467), (8469, 8469),
  (8472, 8477), (8484, 8484), (8486, 8486), (8488, 8488), (8490, 8505),
  (8508, 8511), (8517, 8521), (8526, 8526), (8544, 8584), (11264, 11492),
  (11499, 11502), (11506, 11507), (11520, 11557), (11559, 11559),
  (11565, 11565), (11568, 11623), (11631, 11631), (11648, 11670),
  (11680, 11686), (11688, 11694), (11696, 11702), (11704, 11710),
  (11712, 11718), (11720, 11726), (11728, 11734), (11736, 11742),
  (12293, 12295), (12321, 12329), (12337, 12341), (12344, 12348),
  (12353, 12438), (12443, 12447), (12449, 12538), (12540, 12543),
  (12549, 12591), (12593, 12686), (12704, 12735), (12784, 12799),
  (13312, 19903), (19968, 42124), (42192, 42237), (42240, 42508),
  (42512, 42527), (42538, 42539), (42560, 42606), (42623, 42653),
  (42656, 42735), (42775, 42783), (42786, 42888), (42891, 42972),
  (42993, 43009), (43011, 43013), (43015, 43018), (43020, 43042),
  (43072, 43123), (43138, 43187), (43250, 43255), (43259, 43259),
  (43261, 43262), (43274, 43301), (43312, 43334), (43360, 43388),
  (43396, 43442), (43471, 43471), (43488, 43492), (43494, 43503),
  (43514, 43518), (43520, 43560), (43584, 43586), (43588, 43595),
  (43616, 43638), (43642, 43642), (43646, 43695), (43697, 43697),
  (43701, 43702), (43705, 43709), (43712, 43712), (43714, 43714),
  (43739, 43741), (43744, 43754), (43762, 43764), (43777, 43782),
  (43785, 43790), (43793, 43798), (43808, 43814), (43816, 43822),
  (43824, 43866), (43868, 43881), (43888, 44002), (44032, 55203),
  (55216, 55238), (55243, 55291), (63744, 64109), (64112, 64217),
  (64256, 64262), (64275, 64279), (64285, 64285), (64287, 64296),
  (64298, 64310), (64312, 64316), (64318, 64318), (64320, 64321),
  (64323, 64324), (64326, 64433), (64467, 64829), (64848, 64911),
  (64914, 64967), (65008, 65019), (65136, 65140), (65142, 65276),
  (65313, 65338), (65345, 65370), (65382, 65470), (65474, 65479),
  (65482, 65487), (65490, 65495), (65498, 65500), (65536, 65547),
  (65549, 65574), (65576, 65594), (65596, 65597), (65599, 65613),
  (65616, 65629), (65664, 65786), (65856, 65908), (66176, 66204),
  (66208, 66256), (66304, 66335), (66349, 66378), (66384, 66421),
  (66432, 66461), (66464, 66499), (66504, 66511), (66513, 66517),
  (66560, 66717), (66736, 66771), (66776, 66811), (66816, 66855),
  (66864, 66915), (66928, 66938), (66940, 66954), (66956, 66962),
  (66964, 66965), (66967, 66977), (66979, 66993), (66995, 67001),
  (67003, 67004), (67008, 67059), (67072, 67382), (67392, 67413),
  (67424, 67431), (67456, 67461), (67463, 67504), (67506, 67514),
  (67584, 67589), (67592, 67592), (67594, 67637), (67639, 67640),
  (67644, 67644), (67647, 67669), (67680, 67702), (67712, 67742),
  (67808, 67826), (67828, 67829), (67840, 67861), (67872, 67897),
  (67904, 67929), (67968, 68023), (68030, 68031), (68096, 68096),
  (68112, 68115), (68117, 68119), (68121, 68149), (68192, 68220),
  (68224, 68252), (68288, 68295), (68297, 68324), (68352, 68405),
  (68416, 68437), (68448, 68466), (68480, 68497), (68608, 68680),
  (68736, 68786), (68800, 68850), (68864, 68899), (68938, 68965),
  (68975, 68997), (69248, 69289), (69296, 69297), (69314, 69319),
  (69376, 69404), (69415, 69415), (69424, 69445), (69488, 69505),
  (69552, 69572), (69600, 69622), (69635, 69687), (69745, 69746),
  (69749, 69749), (69763, 69807), (69840, 69864), (69891, 69926),
  (69956, 69956), (69959, 69959), (69968, 70002), (70006, 70006),
  (70019, 70066), (70081, 70084), (70106, 70106), (70108, 70108),
  (70144, 70161), (70163, 70187), (70207, 70208), (70272, 70278),
  (70280, 70280), (70282, 70285), (70287, 70301), (70303, 70312),
  (70320, 70366), (70405, 70412), (70415, 70416), (70419, 70440),
  (70442, 70448), (70450, 70451), (70453, 70457), (70461, 70461),
  (70480, 70480), (70493, 70497), (70528, 70537), (70539, 70539),
  (70542, 70542), (70544, 70581), (70583, 70583), (70609, 70609),
  (70611, 70611), (70656, 70708), (70727, 70730), (70751, 70753),
  (70784, 70831), (70852, 70853), (70855, 70855), (71040, 71086),
  (71128, 71131), (71168, 71215), (71236, 71236), (71296, 71338),
  (71352, 71352), (71424, 71450), (71488, 71494), (71680, 71723),
  (71840, 71903), (71935, 71942), (71945, 71945), (71948, 71955),
  (71957, 71958), (71960, 71983), (71999, 71999), (72001, 72001),
  (72096, 72103), (72106, 72144), (72161, 72161), (72163, 72163),
  (72192, 72192), (72203, 72242), (72250, 72250), (72272, 72272),
  (72284, 72329), (72349, 72349), (72368, 72440), (72640, 72672),
  (72704, 72712), (72714, 72750), (72768, 72768), (72818, 72847),
  (72960, 72966), (72968, 72969), (72971, 73008), (73030, 73030),
  (73056, 73061), (73063, 73064), (73066, 73097), (73112, 73112),
  (73136, 73179), (73440, 73458), (73474, 73474), (73476, 73488),
  (73490, 73523), (73648, 73648), (73728, 74649), (74752, 74862),
  (74880, 75075), (77712, 77808), (77824, 78895), (78913, 78918),
  (78944, 82938), (82944, 83526), (90368, 90397), (92160, 92728),
  (92736, 92766), (92784, 92862), (92880, 92909), (92928, 92975),
  (92992, 92995), (93027, 93047), (93053, 93071), (93504, 93548),
  (93760, 93823), (93856, 93880), (93883, 93907), (93952, 94026),
  (94032, 94032), (94099, 94111), (94176, 94177), (94179, 94179),
  (94194, 94198), (94208, 101589), (101631, 101662), (101760, 101874),
  (110576, 110579), (110581, 110587), (110589, 110590), (110592, 110882),
  (110898, 110898), (110928, 110930), (110933, 110933), (110948, 110951),
  (110960, 111355), (113664, 113770), (113776, 113788), (113792, 113800),
  (113808, 113817), (119808, 119892), (119894, 119964), (119966, 119967),
  (119970, 119970), (119973, 119974), (119977, 119980), (119982, 119993),
  (119995, 119995), (119997, 120003), (120005, 120069), (120071, 120074),
  (120077, 120084), (120086, 120092), (120094, 120121), (120123, 120126),
  (120128, 120132), (120134, 120134), (120138, 120144), (120146, 120485),
  (120488, 120512), (120514, 120538), (120540, 120570), (120572, 120596),
  (120598, 120628), (120630, 120654), (120656, 120686), (120688, 120712),
  (120714, 120744), (120746, 120770), (120772, 120779), (122624, 122654),
  (122661, 122666), (122928, 122989), (123136, 123180), (123191, 123197),
  (123214, 123214), (123536, 123565), (123584, 123627), (124112, 124139),
  (124368, 124397), (124400, 124400), (124608, 124638), (124640, 124642),
  (124644, 124645), (124647, 124653), (124656, 124660), (124670, 124671),
  (124896, 124902), (124904, 124907), (124909, 124910), (124912, 124926),
  (124928, 125124), (125184, 125251), (125259, 125259), (126464, 126467),
  (126469, 126495), (126497, 126498), (126500, 126500), (126503, 126503),
  (126505, 126514), (126516, 126519), (126521, 126521), (126523, 126523),
  (126530, 126530), (126535, 126535), (126537, 126537), (126539, 126539),
  (126541, 126543), (126545, 126546), (126548, 126548), (126551, 126551),
  (126553, 126553), (126555, 126555), (126557, 126557), (126559, 126559),
  (126561, 126562), (126564, 126564), (126567, 126570), (126572, 126578),
  (126580, 126583), (126585, 126588), (126590, 126590), (126592, 126601),
  (126603, 126619), (126625, 126627), (126629, 126633), (126635, 126651),
  (131072, 173791), (173824, 178205), (178208, 183981), (183984, 191456),
  (191472, 192093), (194560, 195101), (196608, 201546), (201552, 210041),
];

pub const IDEOGRAPHIC: &'static [(u32, u32)] = &[
  (12294, 12295), (12321, 12329), (12344, 12346), (13312, 19903),
  (19968, 40959), (63744, 64109), (64112, 64217), (94180, 94180),
  (94194, 94198), (94208, 101589), (101631, 101662), (101760, 101874),
  (110960, 111355), (131072, 173791), (173824, 178205), (178208, 183981),
  (183984, 191456), (191472, 192093), (194560, 195101), (196608, 201546),
  (201552, 210041),
];

pub const INCB: &'static [(u32, u32)] = &[
  (768, 879), (1155, 1161), (1425, 1469), (1471, 1471), (1473, 1474),
  (1476, 1477), (1479, 1479), (1552, 1562), (1611, 1631), (1648, 1648),
  (1750, 1756), (1759, 1764), (1767, 1768), (1770, 1773), (1809, 1809),
  (1840, 1866), (1958, 1968), (2027, 2035), (2045, 2045), (2070, 2073),
  (2075, 2083), (2085, 2087), (2089, 2093), (2137, 2139), (2199, 2207),
  (2250, 2273), (2275, 2306), (2325, 2362), (2364, 2364), (2369, 2376),
  (2381, 2381), (2385, 2399), (2402, 2403), (2424, 2431), (2433, 2433),
  (2453, 2472), (2474, 2480), (2482, 2482), (2486, 2489), (2492, 2492),
  (2494, 2494), (2497, 2500), (2509, 2509), (2519, 2519), (2524, 2525),
  (2527, 2527), (2530, 2531), (2544, 2545), (2558, 2558), (2561, 2562),
  (2620, 2620), (2625, 2626), (2631, 2632), (2635, 2637), (2641, 2641),
  (2672, 2673), (2677, 2677), (2689, 2690), (2709, 2728), (2730, 2736),
  (2738, 2739), (2741, 2745), (2748, 2748), (2753, 2757), (2759, 2760),
  (2765, 2765), (2786, 2787), (2809, 2815), (2817, 2817), (2837, 2856),
  (2858, 2864), (2866, 2867), (2869, 2873), (2876, 2876), (2878, 2879),
  (2881, 2884), (2893, 2893), (2901, 2903), (2908, 2909), (2911, 2911),
  (2914, 2915), (2929, 2929), (2946, 2946), (3006, 3006), (3008, 3008),
  (3021, 3021), (3031, 3031), (3072, 3072), (3076, 3076), (3093, 3112),
  (3114, 3129), (3132, 3132), (3134, 3136), (3142, 3144), (3146, 3149),
  (3157, 3158), (3160, 3162), (3170, 3171), (3201, 3201), (3260, 3260),
  (3263, 3264), (3266, 3266), (3270, 3272), (3274, 3277), (3285, 3286),
  (3298, 3299), (3328, 3329), (3349, 3388), (3390, 3390), (3393, 3396),
  (3405, 3405), (3415, 3415), (3426, 3427), (3457, 3457), (3530, 3530),
  (3535, 3535), (3538, 3540), (3542, 3542), (3551, 3551), (3633, 3633),
  (3636, 3642), (3655, 3662), (3761, 3761), (3764, 3772), (3784, 3790),
  (3864, 3865), (3893, 3893), (3895, 3895), (3897, 3897), (3953, 3966),
  (3968, 3972), (3974, 3975), (3981, 3991), (3993, 4028), (4038, 4038),
  (4096, 4138), (4141, 4144), (4146, 4151), (4153, 4154), (4157, 4159),
  (4176, 4181), (4184, 4193), (4197, 4198), (4206, 4226), (4229, 4230),
  (4237, 4238), (4253, 4253), (4957, 4959), (5906, 5909), (5938, 5940),
  (5970, 5971), (6002, 6003), (6016, 6069), (6071, 6077), (6086, 6086),
  (6089, 6099), (6109, 6109), (6155, 6157), (6159, 6159), (6277, 6278),
  (6313, 6313), (6432, 6434), (6439, 6440), (6450, 6450), (6457, 6459),
  (6679, 6680), (6683, 6683), (6688, 6740), (6742, 6742), (6744, 6750),
  (6752, 6752), (6754, 6754), (6757, 6764), (6771, 6780), (6783, 6783),
  (6832, 6877), (6880, 6891), (6912, 6915), (6923, 6924), (6931, 6973),
  (6978, 6988), (7019, 7027), (7040, 7041), (7043, 7072), (7074, 7077),
  (7080, 7087), (7099, 7101), (7142, 7142), (7144, 7145), (7149, 7149),
  (7151, 7155), (7212, 7219), (7222, 7223), (7376, 7378), (7380, 7392),
  (7394, 7400), (7405, 7405), (7412, 7412), (7416, 7417), (7616, 7679),
  (8205, 8205), (8400, 8432), (11503, 11505), (11647, 11647), (11744, 11775),
  (12330, 12335), (12441, 12442), (42607, 42610), (42612, 42621),
  (42654, 42655), (42736, 42737), (43010, 43010), (43014, 43014),
  (43019, 43019), (43045, 43046), (43052, 43052), (43204, 43205),
  (43232, 43249), (43263, 43263), (43302, 43309), (43335, 43345),
  (43347, 43347), (43392, 43394), (43401, 43403), (43407, 43443),
  (43446, 43449), (43452, 43453), (43456, 43456), (43488, 43493),
  (43495, 43503), (43514, 43518), (43561, 43566), (43569, 43570),
  (43573, 43574), (43587, 43587), (43596, 43596), (43616, 43631),
  (43633, 43635), (43642, 43642), (43644, 43644), (43646, 43647),
  (43696, 43696), (43698, 43700), (43703, 43704), (43710, 43711),
  (43713, 43713), (43744, 43754), (43756, 43757), (43766, 43766),
  (43968, 43994), (44005, 44005), (44008, 44008), (44013, 44013),
  (64286, 64286), (65024, 65039), (65056, 65071), (65438, 65439),
  (66045, 66045), (66272, 66272), (66422, 66426), (68096, 68099),
  (68101, 68102), (68108, 68115), (68117, 68119), (68121, 68149),
  (68152, 68154), (68159, 68159), (68325, 68326), (68900, 68903),
  (68969, 68973), (69291, 69292), (69370, 69375), (69446, 69456),
  (69506, 69509), (69633, 69633), (69688, 69702), (69744, 69744),
  (69747, 69748), (69759, 69761), (69811, 69814), (69817, 69818),
  (69826, 69826), (69888, 69931), (69933, 69940), (69956, 69956),
  (69959, 69959), (70003, 70003), (70016, 70017), (70070, 70078),
  (70080, 70080), (70089, 70092), (70095, 70095), (70191, 70193),
  (70196, 70199), (70206, 70206), (70209, 70209), (70367, 70367),
  (70371, 70378), (70400, 70401), (70459, 70460), (70462, 70462),
  (70464, 70464), (70477, 70477), (70487, 70487), (70502, 70508),
  (70512, 70516), (70528, 70537), (70539, 70539), (70542, 70542),
  (70544, 70581), (70584, 70584), (70587, 70592), (70594, 70594),
  (70597, 70597), (70599, 70601), (70606, 70608), (70610, 70610),
  (70625, 70626), (70712, 70719), (70722, 70724), (70726, 70726),
  (70750, 70750), (70832, 70832), (70835, 70840), (70842, 70842),
  (70845, 70845), (70847, 70848), (70850, 70851), (71087, 71087),
  (71090, 71093), (71100, 71101), (71103, 71104), (71132, 71133),
  (71219, 71226), (71229, 71229), (71231, 71232), (71339, 71339),
  (71341, 71341), (71344, 71351), (71453, 71453), (71455, 71455),
  (71458, 71461), (71463, 71467), (71727, 71735), (71737, 71738),
  (71936, 71942), (71945, 71945), (71948, 71955), (71957, 71958),
  (71960, 71984), (71995, 71998), (72003, 72003), (72148, 72151),
  (72154, 72155), (72160, 72160), (72192, 72248), (72251, 72254),
  (72263, 72263), (72272, 72278), (72281, 72323), (72330, 72342),
  (72344, 72345), (72544, 72544), (72546, 72548), (72550, 72550),
  (72752, 72758), (72760, 72765), (72767, 72767), (72850, 72871),
  (72874, 72880), (72882, 72883), (72885, 72886), (73009, 73014),
  (73018, 73018), (73020, 73021), (73023, 73029), (73031, 73031),
  (73104, 73105), (73109, 73109), (73111, 73111), (73459, 73460),
  (73472, 73473), (73476, 73488), (73490, 73523), (73526, 73530),
  (73536, 73538), (73562, 73562), (78912, 78912), (78919, 78933),
  (90398, 90409), (90413, 90415), (92912, 92916), (92976, 92982),
  (94031, 94031), (94095, 94098), (94180, 94180), (94192, 94193),
  (113821, 113822), (118528, 118573), (118576, 118598), (119141, 119145),
  (119149, 119154), (119163, 119170), (119173, 119179), (119210, 119213),
  (119362, 119364), (121344, 121398), (121403, 121452), (121461, 121461),
  (121476, 121476), (121499, 121503), (121505, 121519), (122880, 122886),
  (122888, 122904), (122907, 122913), (122915, 122916), (122918, 122922),
  (123023, 123023), (123184, 123190), (123566, 123566), (123628, 123631),
  (124140, 124143), (124398, 124399), (124643, 124643), (124646, 124646),
  (124654, 124655), (124661, 124661), (125136, 125142), (125252, 125258),
  (127995, 127999), (917536, 917631), (917760, 917999),
];

pub const JOIN_CONTROL: &'static [(u32, u32)] = &[
  (8204, 8205),
];

pub const LOGICAL_ORDER_EXCEPTION: &'static [(u32, u32)] = &[
  (3648, 3652), (3776, 3780), (6581, 6583), (6586, 6586), (43701, 43702),
  (43705, 43705), (43707, 43708),
];

pub const LOWERCASE: &'static [(u32, u32)] = &[
  (97, 122), (170, 170), (181, 181), (186, 186), (223, 246), (248, 255),
  (257, 257), (259, 259), (261, 261), (263, 263), (265, 265), (267, 267),
  (269, 269), (271, 271), (273, 273), (275, 275), (277, 277), (279, 279),
  (281, 281), (283, 283), (285, 285), (287, 287), (289, 289), (291, 291),
  (293, 293), (295, 295), (297, 297), (299, 299), (301, 301), (303, 303),
  (305, 305), (307, 307), (309, 309), (311, 312), (314, 314), (316, 316),
  (318, 318), (320, 320), (322, 322), (324, 324), (326, 326), (328, 329),
  (331, 331), (333, 333), (335, 335), (337, 337), (339, 339), (341, 341),
  (343, 343), (345, 345), (347, 347), (349, 349), (351, 351), (353, 353),
  (355, 355), (357, 357), (359, 359), (361, 361), (363, 363), (365, 365),
  (367, 367), (369, 369), (371, 371), (373, 373), (375, 375), (378, 378),
  (380, 380), (382, 384), (387, 387), (389, 389), (392, 392), (396, 397),
  (402, 402), (405, 405), (409, 411), (414, 414), (417, 417), (419, 419),
  (421, 421), (424, 424), (426, 427), (429, 429), (432, 432), (436, 436),
  (438, 438), (441, 442), (445, 447), (454, 454), (457, 457), (460, 460),
  (462, 462), (464, 464), (466, 466), (468, 468), (470, 470), (472, 472),
  (474, 474), (476, 477), (479, 479), (481, 481), (483, 483), (485, 485),
  (487, 487), (489, 489), (491, 491), (493, 493), (495, 496), (499, 499),
  (501, 501), (505, 505), (507, 507), (509, 509), (511, 511), (513, 513),
  (515, 515), (517, 517), (519, 519), (521, 521), (523, 523), (525, 525),
  (527, 527), (529, 529), (531, 531), (533, 533), (535, 535), (537, 537),
  (539, 539), (541, 541), (543, 543), (545, 545), (547, 547), (549, 549),
  (551, 551), (553, 553), (555, 555), (557, 557), (559, 559), (561, 561),
  (563, 569), (572, 572), (575, 576), (578, 578), (583, 583), (585, 585),
  (587, 587), (589, 589), (591, 659), (662, 696), (704, 705), (736, 740),
  (837, 837), (881, 881), (883, 883), (887, 887), (890, 893), (912, 912),
  (940, 974), (976, 977), (981, 983), (985, 985), (987, 987), (989, 989),
  (991, 991), (993, 993), (995, 995), (997, 997), (999, 999), (1001, 1001),
  (1003, 1003), (1005, 1005), (1007, 1011), (1013, 1013), (1016, 1016),
  (1019, 1020), (1072, 1119), (1121, 1121), (1123, 1123), (1125, 1125),
  (1127, 1127), (1129, 1129), (1131, 1131), (1133, 1133), (1135, 1135),
  (1137, 1137), (1139, 1139), (1141, 1141), (1143, 1143), (1145, 1145),
  (1147, 1147), (1149, 1149), (1151, 1151), (1153, 1153), (1163, 1163),
  (1165, 1165), (1167, 1167), (1169, 1169), (1171, 1171), (1173, 1173),
  (1175, 1175), (1177, 1177), (1179, 1179), (1181, 1181), (1183, 1183),
  (1185, 1185), (1187, 1187), (1189, 1189), (1191, 1191), (1193, 1193),
  (1195, 1195), (1197, 1197), (1199, 1199), (1201, 1201), (1203, 1203),
  (1205, 1205), (1207, 1207), (1209, 1209), (1211, 1211), (1213, 1213),
  (1215, 1215), (1218, 1218), (1220, 1220), (1222, 1222), (1224, 1224),
  (1226, 1226), (1228, 1228), (1230, 1231), (1233, 1233), (1235, 1235),
  (1237, 1237), (1239, 1239), (1241, 1241), (1243, 1243), (1245, 1245),
  (1247, 1247), (1249, 1249), (1251, 1251), (1253, 1253), (1255, 1255),
  (1257, 1257), (1259, 1259), (1261, 1261), (1263, 1263), (1265, 1265),
  (1267, 1267), (1269, 1269), (1271, 1271), (1273, 1273), (1275, 1275),
  (1277, 1277), (1279, 1279), (1281, 1281), (1283, 1283), (1285, 1285),
  (1287, 1287), (1289, 1289), (1291, 1291), (1293, 1293), (1295, 1295),
  (1297, 1297), (1299, 1299), (1301, 1301), (1303, 1303), (1305, 1305),
  (1307, 1307), (1309, 1309), (1311, 1311), (1313, 1313), (1315, 1315),
  (1317, 1317), (1319, 1319), (1321, 1321), (1323, 1323), (1325, 1325),
  (1327, 1327), (1376, 1416), (4304, 4346), (4348, 4351), (5112, 5117),
  (7296, 7304), (7306, 7306), (7424, 7615), (7681, 7681), (7683, 7683),
  (7685, 7685), (7687, 7687), (7689, 7689), (7691, 7691), (7693, 7693),
  (7695, 7695), (7697, 7697), (7699, 7699), (7701, 7701), (7703, 7703),
  (7705, 7705), (7707, 7707), (7709, 7709), (7711, 7711), (7713, 7713),
  (7715, 7715), (7717, 7717), (7719, 7719), (7721, 7721), (7723, 7723),
  (7725, 7725), (7727, 7727), (7729, 7729), (7731, 7731), (7733, 7733),
  (7735, 7735), (7737, 7737), (7739, 7739), (7741, 7741), (7743, 7743),
  (7745, 7745), (7747, 7747), (7749, 7749), (7751, 7751), (7753, 7753),
  (7755, 7755), (7757, 7757), (7759, 7759), (7761, 7761), (7763, 7763),
  (7765, 7765), (7767, 7767), (7769, 7769), (7771, 7771), (7773, 7773),
  (7775, 7775), (7777, 7777), (7779, 7779), (7781, 7781), (7783, 7783),
  (7785, 7785), (7787, 7787), (7789, 7789), (7791, 7791), (7793, 7793),
  (7795, 7795), (7797, 7797), (7799, 7799), (7801, 7801), (7803, 7803),
  (7805, 7805), (7807, 7807), (7809, 7809), (7811, 7811), (7813, 7813),
  (7815, 7815), (7817, 7817), (7819, 7819), (7821, 7821), (7823, 7823),
  (7825, 7825), (7827, 7827), (7829, 7837), (7839, 7839), (7841, 7841),
  (7843, 7843), (7845, 7845), (7847, 7847), (7849, 7849), (7851, 7851),
  (7853, 7853), (7855, 7855), (7857, 7857), (7859, 7859), (7861, 7861),
  (7863, 7863), (7865, 7865), (7867, 7867), (7869, 7869), (7871, 7871),
  (7873, 7873), (7875, 7875), (7877, 7877), (7879, 7879), (7881, 7881),
  (7883, 7883), (7885, 7885), (7887, 7887), (7889, 7889), (7891, 7891),
  (7893, 7893), (7895, 7895), (7897, 7897), (7899, 7899), (7901, 7901),
  (7903, 7903), (7905, 7905), (7907, 7907), (7909, 7909), (7911, 7911),
  (7913, 7913), (7915, 7915), (7917, 7917), (7919, 7919), (7921, 7921),
  (7923, 7923), (7925, 7925), (7927, 7927), (7929, 7929), (7931, 7931),
  (7933, 7933), (7935, 7943), (7952, 7957), (7968, 7975), (7984, 7991),
  (8000, 8005), (8016, 8023), (8032, 8039), (8048, 8061), (8064, 8071),
  (8080, 8087), (8096, 8103), (8112, 8116), (8118, 8119), (8126, 8126),
  (8130, 8132), (8134, 8135), (8144, 8147), (8150, 8151), (8160, 8167),
  (8178, 8180), (8182, 8183), (8305, 8305), (8319, 8319), (8336, 8348),
  (8458, 8458), (8462, 8463), (8467, 8467), (8495, 8495), (8500, 8500),
  (8505, 8505), (8508, 8509), (8518, 8521), (8526, 8526), (8560, 8575),
  (8580, 8580), (9424, 9449), (11312, 11359), (11361, 11361), (11365, 11366),
  (11368, 11368), (11370, 11370), (11372, 11372), (11377, 11377),
  (11379, 11380), (11382, 11389), (11393, 11393), (11395, 11395),
  (11397, 11397), (11399, 11399), (11401, 11401), (11403, 11403),
  (11405, 11405), (11407, 11407), (11409, 11409), (11411, 11411),
  (11413, 11413), (11415, 11415), (11417, 11417), (11419, 11419),
  (11421, 11421), (11423, 11423), (11425, 11425), (11427, 11427),
  (11429, 11429), (11431, 11431), (11433, 11433), (11435, 11435),
  (11437, 11437), (11439, 11439), (11441, 11441), (11443, 11443),
  (11445, 11445), (11447, 11447), (11449, 11449), (11451, 11451),
  (11453, 11453), (11455, 11455), (11457, 11457), (11459, 11459),
  (11461, 11461), (11463, 11463), (11465, 11465), (11467, 11467),
  (11469, 11469), (11471, 11471), (11473, 11473), (11475, 11475),
  (11477, 11477), (11479, 11479), (11481, 11481), (11483, 11483),
  (11485, 11485), (11487, 11487), (11489, 11489), (11491, 11492),
  (11500, 11500), (11502, 11502), (11507, 11507), (11520, 11557),
  (11559, 11559), (11565, 11565), (42561, 42561), (42563, 42563),
  (42565, 42565), (42567, 42567), (42569, 42569), (42571, 42571),
  (42573, 42573), (42575, 42575), (42577, 42577), (42579, 42579),
  (42581, 42581), (42583, 42583), (42585, 42585), (42587, 42587),
  (42589, 42589), (42591, 42591), (42593, 42593), (42595, 42595),
  (42597, 42597), (42599, 42599), (42601, 42601), (42603, 42603),
  (42605, 42605), (42625, 42625), (42627, 42627), (42629, 42629),
  (42631, 42631), (42633, 42633), (42635, 42635), (42637, 42637),
  (42639, 42639), (42641, 42641), (42643, 42643), (42645, 42645),
  (42647, 42647), (42649, 42649), (42651, 42653), (42787, 42787),
  (42789, 42789), (42791, 42791), (42793, 42793), (42795, 42795),
  (42797, 42797), (42799, 42801), (42803, 42803), (42805, 42805),
  (42807, 42807), (42809, 42809), (42811, 42811), (42813, 42813),
  (42815, 42815), (42817, 42817), (42819, 42819), (42821, 42821),
  (42823, 42823), (42825, 42825), (42827, 42827), (42829, 42829),
  (42831, 42831), (42833, 42833), (42835, 42835), (42837, 42837),
  (42839, 42839), (42841, 42841), (42843, 42843), (42845, 42845),
  (42847, 42847), (42849, 42849), (42851, 42851), (42853, 42853),
  (42855, 42855), (42857, 42857), (42859, 42859), (42861, 42861),
  (42863, 42872), (42874, 42874), (42876, 42876), (42879, 42879),
  (42881, 42881), (42883, 42883), (42885, 42885), (42887, 42887),
  (42892, 42892), (42894, 42894), (42897, 42897), (42899, 42901),
  (42903, 42903), (42905, 42905), (42907, 42907), (42909, 42909),
  (42911, 42911), (42913, 42913), (42915, 42915), (42917, 42917),
  (42919, 42919), (42921, 42921), (42927, 42927), (42933, 42933),
  (42935, 42935), (42937, 42937), (42939, 42939), (42941, 42941),
  (42943, 42943), (42945, 42945), (42947, 42947), (42952, 42952),
  (42954, 42954), (42957, 42957), (42959, 42959), (42961, 42961),
  (42963, 42963), (42965, 42965), (42967, 42967), (42969, 42969),
  (42971, 42971), (42993, 42996), (42998, 42998), (43000, 43002),
  (43824, 43866), (43868, 43881), (43888, 43967), (64256, 64262),
  (64275, 64279), (65345, 65370), (66600, 66639), (66776, 66811),
  (66967, 66977), (66979, 66993), (66995, 67001), (67003, 67004),
  (67456, 67456), (67459, 67461), (67463, 67504), (67506, 67514),
  (68800, 68850), (68976, 68997), (71872, 71903), (93792, 93823),
  (93883, 93907), (119834, 119859), (119886, 119892), (119894, 119911),
  (119938, 119963), (119990, 119993), (119995, 119995), (119997, 120003),
  (120005, 120015), (120042, 120067), (120094, 120119), (120146, 120171),
  (120198, 120223), (120250, 120275), (120302, 120327), (120354, 120379),
  (120406, 120431), (120458, 120485), (120514, 120538), (120540, 120545),
  (120572, 120596), (120598, 120603), (120630, 120654), (120656, 120661),
  (120688, 120712), (120714, 120719), (120746, 120770), (120772, 120777),
  (120779, 120779), (122624, 122633), (122635, 122654), (122661, 122666),
  (122928, 122989), (125218, 125251),
];

pub const MATH: &'static [(u32, u32)] = &[
  (43, 43), (60, 62), (94, 94), (124, 124), (126, 126), (172, 172),
  (177, 177), (215, 215), (247, 247), (976, 978), (981, 981), (1008, 1009),
  (1012, 1014), (1542, 1544), (8214, 8214), (8242, 8244), (8256, 8256),
  (8260, 8260), (8274, 8274), (8289, 8292), (8314, 8318), (8330, 8334),
  (8400, 8412), (8417, 8417), (8421, 8422), (8427, 8431), (8450, 8450),
  (8455, 8455), (8458, 8467), (8469, 8469), (8472, 8477), (8484, 8484),
  (8488, 8489), (8492, 8493), (8495, 8497), (8499, 8504), (8508, 8521),
  (8523, 8523), (8592, 8615), (8617, 8622), (8624, 8625), (8630, 8631),
  (8636, 8667), (8669, 8669), (8676, 8677), (8692, 8959), (8968, 8971),
  (8992, 8993), (9084, 9084), (9115, 9141), (9143, 9143), (9168, 9168),
  (9180, 9186), (9632, 9633), (9646, 9655), (9660, 9665), (9670, 9671),
  (9674, 9675), (9679, 9683), (9698, 9698), (9700, 9700), (9703, 9708),
  (9720, 9727), (9733, 9734), (9792, 9792), (9794, 9794), (9824, 9827),
  (9837, 9839), (10176, 10239), (10496, 11007), (11056, 11076),
  (11079, 11084), (64297, 64297), (65121, 65126), (65128, 65128),
  (65291, 65291), (65308, 65310), (65340, 65340), (65342, 65342),
  (65372, 65372), (65374, 65374), (65506, 65506), (65513, 65516),
  (69006, 69007), (118512, 118512), (119808, 119892), (119894, 119964),
  (119966, 119967), (119970, 119970), (119973, 119974), (119977, 119980),
  (119982, 119993), (119995, 119995), (119997, 120003), (120005, 120069),
  (120071, 120074), (120077, 120084), (120086, 120092), (120094, 120121),
  (120123, 120126), (120128, 120132), (120134, 120134), (120138, 120144),
  (120146, 120485), (120488, 120779), (120782, 120831), (126464, 126467),
  (126469, 126495), (126497, 126498), (126500, 126500), (126503, 126503),
  (126505, 126514), (126516, 126519), (126521, 126521), (126523, 126523),
  (126530, 126530), (126535, 126535), (126537, 126537), (126539, 126539),
  (126541, 126543), (126545, 126546), (126548, 126548), (126551, 126551),
  (126553, 126553), (126555, 126555), (126557, 126557), (126559, 126559),
  (126561, 126562), (126564, 126564), (126567, 126570), (126572, 126578),
  (126580, 126583), (126585, 126588), (126590, 126590), (126592, 126601),
  (126603, 126619), (126625, 126627), (126629, 126633), (126635, 126651),
  (126704, 126705), (129232, 129240),
];

pub const MODIFIER_COMBINING_MARK: &'static [(u32, u32)] = &[
  (1620, 1621), (1624, 1624), (1756, 1756), (1763, 1763), (1767, 1768),
  (2250, 2251), (2253, 2255), (2259, 2259), (2291, 2291),
];

pub const NONCHARACTER_CODE_POINT: &'static [(u32, u32)] = &[
  (64976, 65007), (65534, 65535), (131070, 131071), (196606, 196607),
  (262142, 262143), (327678, 327679), (393214, 393215), (458750, 458751),
  (524286, 524287), (589822, 589823), (655358, 655359), (720894, 720895),
  (786430, 786431), (851966, 851967), (917502, 917503), (983038, 983039),
  (1048574, 1048575), (1114110, 1114111),
];

pub const OTHER_ALPHABETIC: &'static [(u32, u32)] = &[
  (837, 837), (867, 879), (1456, 1469), (1471, 1471), (1473, 1474),
  (1476, 1477), (1479, 1479), (1552, 1562), (1611, 1623), (1625, 1631),
  (1648, 1648), (1750, 1756), (1761, 1764), (1767, 1768), (1773, 1773),
  (1809, 1809), (1840, 1855), (1958, 1968), (2070, 2071), (2075, 2083),
  (2085, 2087), (2089, 2092), (2199, 2199), (2260, 2271), (2275, 2281),
  (2288, 2307), (2362, 2363), (2366, 2380), (2382, 2383), (2389, 2391),
  (2402, 2403), (2433, 2435), (2494, 2500), (2503, 2504), (2507, 2508),
  (2519, 2519), (2530, 2531), (2561, 2563), (2622, 2626), (2631, 2632),
  (2635, 2636), (2641, 2641), (2672, 2673), (2677, 2677), (2689, 2691),
  (2750, 2757), (2759, 2761), (2763, 2764), (2786, 2787), (2810, 2812),
  (2817, 2819), (2878, 2884), (2887, 2888), (2891, 2892), (2902, 2903),
  (2914, 2915), (2946, 2946), (3006, 3010), (3014, 3016), (3018, 3020),
  (3031, 3031), (3072, 3076), (3134, 3140), (3142, 3144), (3146, 3148),
  (3157, 3158), (3170, 3171), (3201, 3203), (3262, 3268), (3270, 3272),
  (3274, 3276), (3285, 3286), (3298, 3299), (3315, 3315), (3328, 3331),
  (3390, 3396), (3398, 3400), (3402, 3404), (3415, 3415), (3426, 3427),
  (3457, 3459), (3535, 3540), (3542, 3542), (3544, 3551), (3570, 3571),
  (3633, 3633), (3636, 3642), (3661, 3661), (3761, 3761), (3764, 3769),
  (3771, 3772), (3789, 3789), (3953, 3971), (3981, 3991), (3993, 4028),
  (4139, 4150), (4152, 4152), (4155, 4158), (4182, 4185), (4190, 4192),
  (4194, 4196), (4199, 4205), (4209, 4212), (4226, 4237), (4239, 4239),
  (4250, 4253), (5906, 5907), (5938, 5939), (5970, 5971), (6002, 6003),
  (6070, 6088), (6277, 6278), (6313, 6313), (6432, 6443), (6448, 6456),
  (6679, 6683), (6741, 6750), (6753, 6772), (6847, 6848), (6860, 6862),
  (6912, 6916), (6965, 6979), (7040, 7042), (7073, 7081), (7084, 7085),
  (7143, 7153), (7204, 7222), (7635, 7668), (9398, 9449), (11744, 11775),
  (42612, 42619), (42654, 42655), (43010, 43010), (43019, 43019),
  (43043, 43047), (43136, 43137), (43188, 43203), (43205, 43205),
  (43263, 43263), (43302, 43306), (43335, 43346), (43392, 43395),
  (43444, 43455), (43493, 43493), (43561, 43574), (43587, 43587),
  (43596, 43597), (43643, 43645), (43696, 43696), (43698, 43700),
  (43703, 43704), (43710, 43710), (43755, 43759), (43765, 43765),
  (44003, 44010), (64286, 64286), (66422, 66426), (68097, 68099),
  (68101, 68102), (68108, 68111), (68900, 68903), (68969, 68969),
  (69291, 69292), (69370, 69372), (69632, 69634), (69688, 69701),
  (69747, 69748), (69760, 69762), (69808, 69816), (69826, 69826),
  (69888, 69890), (69927, 69938), (69957, 69958), (70016, 70018),
  (70067, 70079), (70094, 70095), (70188, 70196), (70199, 70199),
  (70206, 70206), (70209, 70209), (70367, 70376), (70400, 70403),
  (70462, 70468), (70471, 70472), (70475, 70476), (70487, 70487),
  (70498, 70499), (70584, 70592), (70594, 70594), (70597, 70597),
  (70599, 70602), (70604, 70605), (70709, 70721), (70723, 70725),
  (70832, 70849), (71087, 71093), (71096, 71102), (71132, 71133),
  (71216, 71230), (71232, 71232), (71339, 71349), (71453, 71466),
  (71724, 71736), (71984, 71989), (71991, 71992), (71995, 71996),
  (72000, 72000), (72002, 72002), (72145, 72151), (72154, 72159),
  (72164, 72164), (72193, 72202), (72245, 72249), (72251, 72254),
  (72273, 72283), (72330, 72343), (72544, 72551), (72751, 72758),
  (72760, 72766), (72850, 72871), (72873, 72886), (73009, 73014),
  (73018, 73018), (73020, 73021), (73023, 73025), (73027, 73027),
  (73031, 73031), (73098, 73102), (73104, 73105), (73107, 73110),
  (73459, 73462), (73472, 73473), (73475, 73475), (73524, 73530),
  (73534, 73536), (90398, 90414), (94031, 94031), (94033, 94087),
  (94095, 94098), (94192, 94193), (113822, 113822), (122880, 122886),
  (122888, 122904), (122907, 122913), (122915, 122916), (122918, 122922),
  (123023, 123023), (124643, 124643), (124646, 124646), (124654, 124655),
  (124661, 124661), (125255, 125255), (127280, 127305), (127312, 127337),
  (127344, 127369),
];

pub const OTHER_DEFAULT_IGNORABLE_CODE_POINT: &'static [(u32, u32)] = &[
  (847, 847), (4447, 4448), (6068, 6069), (8293, 8293), (12644, 12644),
  (65440, 65440), (65520, 65528), (917504, 917504), (917506, 917535),
  (917632, 917759), (918000, 921599),
];

pub const OTHER_GRAPHEME_EXTEND: &'static [(u32, u32)] = &[
  (2494, 2494), (2519, 2519), (2878, 2878), (2903, 2903), (3006, 3006),
  (3031, 3031), (3264, 3264), (3266, 3266), (3271, 3272), (3274, 3275),
  (3285, 3286), (3390, 3390), (3415, 3415), (3535, 3535), (3551, 3551),
  (5909, 5909), (5940, 5940), (6965, 6965), (6971, 6971), (6973, 6973),
  (6979, 6980), (7082, 7082), (7154, 7155), (8204, 8204), (12334, 12335),
  (43347, 43347), (43456, 43456), (65438, 65439), (70080, 70080),
  (70197, 70197), (70462, 70462), (70477, 70477), (70487, 70487),
  (70584, 70584), (70594, 70594), (70597, 70597), (70599, 70601),
  (70607, 70607), (70832, 70832), (70845, 70845), (71087, 71087),
  (71350, 71350), (71984, 71984), (71997, 71997), (73537, 73537),
  (94192, 94193), (119141, 119142), (119149, 119154), (917536, 917631),
];

pub const OTHER_ID_CONTINUE: &'static [(u32, u32)] = &[
  (183, 183), (903, 903), (4969, 4977), (6618, 6618), (8204, 8205),
  (12539, 12539), (65381, 65381),
];

pub const OTHER_ID_START: &'static [(u32, u32)] = &[
  (6277, 6278), (8472, 8472), (8494, 8494), (12443, 12444),
];

pub const OTHER_LOWERCASE: &'static [(u32, u32)] = &[
  (170, 170), (186, 186), (688, 696), (704, 705), (736, 740), (837, 837),
  (890, 890), (4348, 4348), (7468, 7530), (7544, 7544), (7579, 7615),
  (8305, 8305), (8319, 8319), (8336, 8348), (8560, 8575), (9424, 9449),
  (11388, 11389), (42652, 42653), (42864, 42864), (42993, 42996),
  (43000, 43001), (43868, 43871), (43881, 43881), (67456, 67456),
  (67459, 67461), (67463, 67504), (67506, 67514), (122928, 122989),
];

pub const OTHER_MATH: &'static [(u32, u32)] = &[
  (94, 94), (976, 978), (981, 981), (1008, 1009), (1012, 1013), (8214, 8214),
  (8242, 8244), (8256, 8256), (8289, 8292), (8317, 8318), (8333, 8334),
  (8400, 8412), (8417, 8417), (8421, 8422), (8427, 8431), (8450, 8450),
  (8455, 8455), (8458, 8467), (8469, 8469), (8473, 8477), (8484, 8484),
  (8488, 8489), (8492, 8493), (8495, 8497), (8499, 8504), (8508, 8511),
  (8517, 8521), (8597, 8601), (8604, 8607), (8609, 8610), (8612, 8613),
  (8615, 8615), (8617, 8621), (8624, 8625), (8630, 8631), (8636, 8653),
  (8656, 8657), (8659, 8659), (8661, 8667), (8669, 8669), (8676, 8677),
  (8968, 8971), (9140, 9141), (9143, 9143), (9168, 9168), (9186, 9186),
  (9632, 9633), (9646, 9654), (9660, 9664), (9670, 9671), (9674, 9675),
  (9679, 9683), (9698, 9698), (9700, 9700), (9703, 9708), (9733, 9734),
  (9792, 9792), (9794, 9794), (9824, 9827), (9837, 9838), (10181, 10182),
  (10214, 10223), (10627, 10648), (10712, 10715), (10748, 10749),
  (65121, 65121), (65123, 65123), (65128, 65128), (65340, 65340),
  (65342, 65342), (119808, 119892), (119894, 119964), (119966, 119967),
  (119970, 119970), (119973, 119974), (119977, 119980), (119982, 119993),
  (119995, 119995), (119997, 120003), (120005, 120069), (120071, 120074),
  (120077, 120084), (120086, 120092), (120094, 120121), (120123, 120126),
  (120128, 120132), (120134, 120134), (120138, 120144), (120146, 120485),
  (120488, 120512), (120514, 120538), (120540, 120570), (120572, 120596),
  (120598, 120628), (120630, 120654), (120656, 120686), (120688, 120712),
  (120714, 120744), (120746, 120770), (120772, 120779), (120782, 120831),
  (126464, 126467), (126469, 126495), (126497, 126498), (126500, 126500),
  (126503, 126503), (126505, 126514), (126516, 126519), (126521, 126521),
  (126523, 126523), (126530, 126530), (126535, 126535), (126537, 126537),
  (126539, 126539), (126541, 126543), (126545, 126546), (126548, 126548),
  (126551, 126551), (126553, 126553), (126555, 126555), (126557, 126557),
  (126559, 126559), (126561, 126562), (126564, 126564), (126567, 126570),
  (126572, 126578), (126580, 126583), (126585, 126588), (126590, 126590),
  (126592, 126601), (126603, 126619), (126625, 126627), (126629, 126633),
  (126635, 126651),
];

pub const OTHER_UPPERCASE: &'static [(u32, u32)] = &[
  (8544, 8559), (9398, 9423), (127280, 127305), (127312, 127337),
  (127344, 127369),
];

pub const PATTERN_SYNTAX: &'static [(u32, u32)] = &[
  (33, 47), (58, 64), (91, 94), (96, 96), (123, 126), (161, 167), (169, 169),
  (171, 172), (174, 174), (176, 177), (182, 182), (187, 187), (191, 191),
  (215, 215), (247, 247), (8208, 8231), (8240, 8254), (8257, 8275),
  (8277, 8286), (8592, 9311), (9472, 10101), (10132, 11263), (11776, 11903),
  (12289, 12291), (12296, 12320), (12336, 12336), (64830, 64831),
  (65093, 65094),
];

pub const PATTERN_WHITE_SPACE: &'static [(u32, u32)] = &[
  (9, 13), (32, 32), (133, 133), (8206, 8207), (8232, 8233),
];

pub const PREPENDED_CONCATENATION_MARK: &'static [(u32, u32)] = &[
  (1536, 1541), (1757, 1757), (1807, 1807), (2192, 2193), (2274, 2274),
  (69821, 69821), (69837, 69837),
];

pub const QUOTATION_MARK: &'static [(u32, u32)] = &[
  (34, 34), (39, 39), (171, 171), (187, 187), (8216, 8223), (8249, 8250),
  (11842, 11842), (12300, 12303), (12317, 12319), (65089, 65092),
  (65282, 65282), (65287, 65287), (65378, 65379),
];

pub const RADICAL: &'static [(u32, u32)] = &[
  (11904, 11929), (11931, 12019), (12032, 12245),
];

pub const REGIONAL_INDICATOR: &'static [(u32, u32)] = &[
  (127462, 127487),
];

pub const SENTENCE_TERMINAL: &'static [(u32, u32)] = &[
  (33, 33), (46, 46), (63, 63), (1417, 1417), (1565, 1567), (1748, 1748),
  (1792, 1794), (2041, 2041), (2103, 2103), (2105, 2105), (2109, 2110),
  (2404, 2405), (4170, 4171), (4962, 4962), (4967, 4968), (5742, 5742),
  (5941, 5942), (6100, 6101), (6147, 6147), (6153, 6153), (6468, 6469),
  (6824, 6827), (6990, 6991), (7002, 7003), (7006, 7007), (7037, 7039),
  (7227, 7228), (7294, 7295), (8228, 8228), (8252, 8253), (8263, 8265),
  (11513, 11515), (11822, 11822), (11836, 11836), (11859, 11860),
  (12290, 12290), (42239, 42239), (42510, 42511), (42739, 42739),
  (42743, 42743), (43126, 43127), (43214, 43215), (43311, 43311),
  (43464, 43465), (43613, 43615), (43760, 43761), (44011, 44011),
  (65042, 65042), (65045, 65046), (65106, 65106), (65110, 65111),
  (65281, 65281), (65294, 65294), (65311, 65311), (65377, 65377),
  (68182, 68183), (69461, 69465), (69510, 69513), (69703, 69704),
  (69822, 69825), (69953, 69955), (70085, 70086), (70093, 70093),
  (70110, 70111), (70200, 70201), (70203, 70204), (70313, 70313),
  (70612, 70613), (70731, 70732), (71106, 71107), (71113, 71127),
  (71233, 71234), (71484, 71486), (72004, 72004), (72006, 72006),
  (72258, 72259), (72347, 72348), (72769, 72770), (73463, 73464),
  (73539, 73540), (92782, 92783), (92917, 92917), (92983, 92984),
  (92996, 92996), (93550, 93551), (93848, 93848), (113823, 113823),
  (121480, 121480),
];

pub const SOFT_DOTTED: &'static [(u32, u32)] = &[
  (105, 106), (303, 303), (585, 585), (616, 616), (669, 669), (690, 690),
  (1011, 1011), (1110, 1110), (1112, 1112), (7522, 7522), (7574, 7574),
  (7588, 7588), (7592, 7592), (7725, 7725), (7883, 7883), (8305, 8305),
  (8520, 8521), (11388, 11388), (119842, 119843), (119894, 119895),
  (119946, 119947), (119998, 119999), (120050, 120051), (120102, 120103),
  (120154, 120155), (120206, 120207), (120258, 120259), (120310, 120311),
  (120362, 120363), (120414, 120415), (120466, 120467), (122650, 122650),
  (122956, 122957), (122984, 122984),
];

pub const TERMINAL_PUNCTUATION: &'static [(u32, u32)] = &[
  (33, 33), (44, 44), (46, 46), (58, 59), (63, 63), (894, 894), (903, 903),
  (1417, 1417), (1475, 1475), (1548, 1548), (1563, 1563), (1565, 1567),
  (1748, 1748), (1792, 1802), (1804, 1804), (2040, 2041), (2096, 2101),
  (2103, 2110), (2142, 2142), (2404, 2405), (3674, 3675), (3848, 3848),
  (3853, 3858), (4170, 4171), (4961, 4968), (5742, 5742), (5867, 5869),
  (5941, 5942), (6100, 6102), (6106, 6106), (6146, 6149), (6152, 6153),
  (6468, 6469), (6824, 6827), (6990, 6991), (7002, 7003), (7005, 7007),
  (7037, 7039), (7227, 7231), (7294, 7295), (8228, 8228), (8252, 8253),
  (8263, 8265), (11513, 11515), (11822, 11822), (11836, 11836),
  (11841, 11841), (11852, 11852), (11854, 11855), (11859, 11860),
  (12289, 12290), (42238, 42239), (42509, 42511), (42739, 42743),
  (43126, 43127), (43214, 43215), (43311, 43311), (43463, 43465),
  (43613, 43615), (43743, 43743), (43760, 43761), (44011, 44011),
  (65042, 65042), (65045, 65046), (65104, 65106), (65108, 65111),
  (65281, 65281), (65292, 65292), (65294, 65294), (65306, 65307),
  (65311, 65311), (65377, 65377), (65380, 65380), (66463, 66463),
  (66512, 66512), (67671, 67671), (67871, 67871), (68182, 68183),
  (68336, 68341), (68410, 68415), (68505, 68508), (69461, 69465),
  (69510, 69513), (69703, 69709), (69822, 69825), (69953, 69955),
  (70085, 70086), (70093, 70093), (70110, 70111), (70200, 70204),
  (70313, 70313), (70612, 70613), (70731, 70733), (70746, 70747),
  (71106, 71109), (71113, 71127), (71233, 71234), (71484, 71486),
  (72004, 72004), (72006, 72006), (72258, 72259), (72347, 72348),
  (72353, 72354), (72769, 72771), (72817, 72817), (73463, 73464),
  (73539, 73540), (74864, 74868), (92782, 92783), (92917, 92917),
  (92983, 92985), (92996, 92996), (93550, 93551), (93847, 93848),
  (113823, 113823), (121479, 121482),
];

pub const UNIFIED_IDEOGRAPH: &'static [(u32, u32)] = &[
  (13312, 19903), (19968, 40959), (64014, 64015), (64017, 64017),
  (64019, 64020), (64031, 64031), (64033, 64033), (64035, 64036),
  (64039, 64041), (131072, 173791), (173824, 178205), (178208, 183981),
  (183984, 191456), (191472, 192093), (196608, 201546), (201552, 210041),
];

pub const UPPERCASE: &'static [(u32, u32)] = &[
  (65, 90), (192, 214), (216, 222), (256, 256), (258, 258), (260, 260),
  (262, 262), (264, 264), (266, 266), (268, 268), (270, 270), (272, 272),
  (274, 274), (276, 276), (278, 278), (280, 280), (282, 282), (284, 284),
  (286, 286), (288, 288), (290, 290), (292, 292), (294, 294), (296, 296),
  (298, 298), (300, 300), (302, 302), (304, 304), (306, 306), (308, 308),
  (310, 310), (313, 313), (315, 315), (317, 317), (319, 319), (321, 321),
  (323, 323), (325, 325), (327, 327), (330, 330), (332, 332), (334, 334),
  (336, 336), (338, 338), (340, 340), (342, 342), (344, 344), (346, 346),
  (348, 348), (350, 350), (352, 352), (354, 354), (356, 356), (358, 358),
  (360, 360), (362, 362), (364, 364), (366, 366), (368, 368), (370, 370),
  (372, 372), (374, 374), (376, 377), (379, 379), (381, 381), (385, 386),
  (388, 388), (390, 391), (393, 395), (398, 401), (403, 404), (406, 408),
  (412, 413), (415, 416), (418, 418), (420, 420), (422, 423), (425, 425),
  (428, 428), (430, 431), (433, 435), (437, 437), (439, 440), (444, 444),
  (452, 452), (455, 455), (458, 458), (461, 461), (463, 463), (465, 465),
  (467, 467), (469, 469), (471, 471), (473, 473), (475, 475), (478, 478),
  (480, 480), (482, 482), (484, 484), (486, 486), (488, 488), (490, 490),
  (492, 492), (494, 494), (497, 497), (500, 500), (502, 504), (506, 506),
  (508, 508), (510, 510), (512, 512), (514, 514), (516, 516), (518, 518),
  (520, 520), (522, 522), (524, 524), (526, 526), (528, 528), (530, 530),
  (532, 532), (534, 534), (536, 536), (538, 538), (540, 540), (542, 542),
  (544, 544), (546, 546), (548, 548), (550, 550), (552, 552), (554, 554),
  (556, 556), (558, 558), (560, 560), (562, 562), (570, 571), (573, 574),
  (577, 577), (579, 582), (584, 584), (586, 586), (588, 588), (590, 590),
  (880, 880), (882, 882), (886, 886), (895, 895), (902, 902), (904, 906),
  (908, 908), (910, 911), (913, 929), (931, 939), (975, 975), (978, 980),
  (984, 984), (986, 986), (988, 988), (990, 990), (992, 992), (994, 994),
  (996, 996), (998, 998), (1000, 1000), (1002, 1002), (1004, 1004),
  (1006, 1006), (1012, 1012), (1015, 1015), (1017, 1018), (1021, 1071),
  (1120, 1120), (1122, 1122), (1124, 1124), (1126, 1126), (1128, 1128),
  (1130, 1130), (1132, 1132), (1134, 1134), (1136, 1136), (1138, 1138),
  (1140, 1140), (1142, 1142), (1144, 1144), (1146, 1146), (1148, 1148),
  (1150, 1150), (1152, 1152), (1162, 1162), (1164, 1164), (1166, 1166),
  (1168, 1168), (1170, 1170), (1172, 1172), (1174, 1174), (1176, 1176),
  (1178, 1178), (1180, 1180), (1182, 1182), (1184, 1184), (1186, 1186),
  (1188, 1188), (1190, 1190), (1192, 1192), (1194, 1194), (1196, 1196),
  (1198, 1198), (1200, 1200), (1202, 1202), (1204, 1204), (1206, 1206),
  (1208, 1208), (1210, 1210), (1212, 1212), (1214, 1214), (1216, 1217),
  (1219, 1219), (1221, 1221), (1223, 1223), (1225, 1225), (1227, 1227),
  (1229, 1229), (1232, 1232), (1234, 1234), (1236, 1236), (1238, 1238),
  (1240, 1240), (1242, 1242), (1244, 1244), (1246, 1246), (1248, 1248),
  (1250, 1250), (1252, 1252), (1254, 1254), (1256, 1256), (1258, 1258),
  (1260, 1260), (1262, 1262), (1264, 1264), (1266, 1266), (1268, 1268),
  (1270, 1270), (1272, 1272), (1274, 1274), (1276, 1276), (1278, 1278),
  (1280, 1280), (1282, 1282), (1284, 1284), (1286, 1286), (1288, 1288),
  (1290, 1290), (1292, 1292), (1294, 1294), (1296, 1296), (1298, 1298),
  (1300, 1300), (1302, 1302), (1304, 1304), (1306, 1306), (1308, 1308),
  (1310, 1310), (1312, 1312), (1314, 1314), (1316, 1316), (1318, 1318),
  (1320, 1320), (1322, 1322), (1324, 1324), (1326, 1326), (1329, 1366),
  (4256, 4293), (4295, 4295), (4301, 4301), (5024, 5109), (7305, 7305),
  (7312, 7354), (7357, 7359), (7680, 7680), (7682, 7682), (7684, 7684),
  (7686, 7686), (7688, 7688), (7690, 7690), (7692, 7692), (7694, 7694),
  (7696, 7696), (7698, 7698), (7700, 7700), (7702, 7702), (7704, 7704),
  (7706, 7706), (7708, 7708), (7710, 7710), (7712, 7712), (7714, 7714),
  (7716, 7716), (7718, 7718), (7720, 7720), (7722, 7722), (7724, 7724),
  (7726, 7726), (7728, 7728), (7730, 7730), (7732, 7732), (7734, 7734),
  (7736, 7736), (7738, 7738), (7740, 7740), (7742, 7742), (7744, 7744),
  (7746, 7746), (7748, 7748), (7750, 7750), (7752, 7752), (7754, 7754),
  (7756, 7756), (7758, 7758), (7760, 7760), (7762, 7762), (7764, 7764),
  (7766, 7766), (7768, 7768), (7770, 7770), (7772, 7772), (7774, 7774),
  (7776, 7776), (7778, 7778), (7780, 7780), (7782, 7782), (7784, 7784),
  (7786, 7786), (7788, 7788), (7790, 7790), (7792, 7792), (7794, 7794),
  (7796, 7796), (7798, 7798), (7800, 7800), (7802, 7802), (7804, 7804),
  (7806, 7806), (7808, 7808), (7810, 7810), (7812, 7812), (7814, 7814),
  (7816, 7816), (7818, 7818), (7820, 7820), (7822, 7822), (7824, 7824),
  (7826, 7826), (7828, 7828), (7838, 7838), (7840, 7840), (7842, 7842),
  (7844, 7844), (7846, 7846), (7848, 7848), (7850, 7850), (7852, 7852),
  (7854, 7854), (7856, 7856), (7858, 7858), (7860, 7860), (7862, 7862),
  (7864, 7864), (7866, 7866), (7868, 7868), (7870, 7870), (7872, 7872),
  (7874, 7874), (7876, 7876), (7878, 7878), (7880, 7880), (7882, 7882),
  (7884, 7884), (7886, 7886), (7888, 7888), (7890, 7890), (7892, 7892),
  (7894, 7894), (7896, 7896), (7898, 7898), (7900, 7900), (7902, 7902),
  (7904, 7904), (7906, 7906), (7908, 7908), (7910, 7910), (7912, 7912),
  (7914, 7914), (7916, 7916), (7918, 7918), (7920, 7920), (7922, 7922),
  (7924, 7924), (7926, 7926), (7928, 7928), (7930, 7930), (7932, 7932),
  (7934, 7934), (7944, 7951), (7960, 7965), (7976, 7983), (7992, 7999),
  (8008, 8013), (8025, 8025), (8027, 8027), (8029, 8029), (8031, 8031),
  (8040, 8047), (8120, 8123), (8136, 8139), (8152, 8155), (8168, 8172),
  (8184, 8187), (8450, 8450), (8455, 8455), (8459, 8461), (8464, 8466),
  (8469, 8469), (8473, 8477), (8484, 8484), (8486, 8486), (8488, 8488),
  (8490, 8493), (8496, 8499), (8510, 8511), (8517, 8517), (8544, 8559),
  (8579, 8579), (9398, 9423), (11264, 11311), (11360, 11360), (11362, 11364),
  (11367, 11367), (11369, 11369), (11371, 11371), (11373, 11376),
  (11378, 11378), (11381, 11381), (11390, 11392), (11394, 11394),
  (11396, 11396), (11398, 11398), (11400, 11400), (11402, 11402),
  (11404, 11404), (11406, 11406), (11408, 11408), (11410, 11410),
  (11412, 11412), (11414, 11414), (11416, 11416), (11418, 11418),
  (11420, 11420), (11422, 11422), (11424, 11424), (11426, 11426),
  (11428, 11428), (11430, 11430), (11432, 11432), (11434, 11434),
  (11436, 11436), (11438, 11438), (11440, 11440), (11442, 11442),
  (11444, 11444), (11446, 11446), (11448, 11448), (11450, 11450),
  (11452, 11452), (11454, 11454), (11456, 11456), (11458, 11458),
  (11460, 11460), (11462, 11462), (11464, 11464), (11466, 11466),
  (11468, 11468), (11470, 11470), (11472, 11472), (11474, 11474),
  (11476, 11476), (11478, 11478), (11480, 11480), (11482, 11482),
  (11484, 11484), (11486, 11486), (11488, 11488), (11490, 11490),
  (11499, 11499), (11501, 11501), (11506, 11506), (42560, 42560),
  (42562, 42562), (42564, 42564), (42566, 42566), (42568, 42568),
  (42570, 42570), (42572, 42572), (42574, 42574), (42576, 42576),
  (42578, 42578), (42580, 42580), (42582, 42582), (42584, 42584),
  (42586, 42586), (42588, 42588), (42590, 42590), (42592, 42592),
  (42594, 42594), (42596, 42596), (42598, 42598), (42600, 42600),
  (42602, 42602), (42604, 42604), (42624, 42624), (42626, 42626),
  (42628, 42628), (42630, 42630), (42632, 42632), (42634, 42634),
  (42636, 42636), (42638, 42638), (42640, 42640), (42642, 42642),
  (42644, 42644), (42646, 42646), (42648, 42648), (42650, 42650),
  (42786, 42786), (42788, 42788), (42790, 42790), (42792, 42792),
  (42794, 42794), (42796, 42796), (42798, 42798), (42802, 42802),
  (42804, 42804), (42806, 42806), (42808, 42808), (42810, 42810),
  (42812, 42812), (42814, 42814), (42816, 42816), (42818, 42818),
  (42820, 42820), (42822, 42822), (42824, 42824), (42826, 42826),
  (42828, 42828), (42830, 42830), (42832, 42832), (42834, 42834),
  (42836, 42836), (42838, 42838), (42840, 42840), (42842, 42842),
  (42844, 42844), (42846, 42846), (42848, 42848), (42850, 42850),
  (42852, 42852), (42854, 42854), (42856, 42856), (42858, 42858),
  (42860, 42860), (42862, 42862), (42873, 42873), (42875, 42875),
  (42877, 42878), (42880, 42880), (42882, 42882), (42884, 42884),
  (42886, 42886), (42891, 42891), (42893, 42893), (42896, 42896),
  (42898, 42898), (42902, 42902), (42904, 42904), (42906, 42906),
  (42908, 42908), (42910, 42910), (42912, 42912), (42914, 42914),
  (42916, 42916), (42918, 42918), (42920, 42920), (42922, 42926),
  (42928, 42932), (42934, 42934), (42936, 42936), (42938, 42938),
  (42940, 42940), (42942, 42942), (42944, 42944), (42946, 42946),
  (42948, 42951), (42953, 42953), (42955, 42956), (42958, 42958),
  (42960, 42960), (42962, 42962), (42964, 42964), (42966, 42966),
  (42968, 42968), (42970, 42970), (42972, 42972), (42997, 42997),
  (65313, 65338), (66560, 66599), (66736, 66771), (66928, 66938),
  (66940, 66954), (66956, 66962), (66964, 66965), (68736, 68786),
  (68944, 68965), (71840, 71871), (93760, 93791), (93856, 93880),
  (119808, 119833), (119860, 119885), (119912, 119937), (119964, 119964),
  (119966, 119967), (119970, 119970), (119973, 119974), (119977, 119980),
  (119982, 119989), (120016, 120041), (120068, 120069), (120071, 120074),
  (120077, 120084), (120086, 120092), (120120, 120121), (120123, 120126),
  (120128, 120132), (120134, 120134), (120138, 120144), (120172, 120197),
  (120224, 120249), (120276, 120301), (120328, 120353), (120380, 120405),
  (120432, 120457), (120488, 120512), (120546, 120570), (120604, 120628),
  (120662, 120686), (120720, 120744), (120778, 120778), (125184, 125217),
  (127280, 127305), (127312, 127337), (127344, 127369),
];

pub const VARIATION_SELECTOR: &'static [(u32, u32)] = &[
  (6155, 6157), (6159, 6159), (65024, 65039), (917760, 917999),
];

pub const WHITE_SPACE: &'static [(u32, u32)] = &[
  (9, 13), (32, 32), (133, 133), (160, 160), (5760, 5760), (8192, 8202),
  (8232, 8233), (8239, 8239), (8287, 8287), (12288, 12288),
];

pub const XID_CONTINUE: &'static [(u32, u32)] = &[
  (48, 57), (65, 90), (95, 95), (97, 122), (170, 170), (181, 181), (183, 183),
  (186, 186), (192, 214), (216, 246), (248, 705), (710, 721), (736, 740),
  (748, 748), (750, 750), (768, 884), (886, 887), (891, 893), (895, 895),
  (902, 906), (908, 908), (910, 929), (931, 1013), (1015, 1153), (1155, 1159),
  (1162, 1327), (1329, 1366), (1369, 1369), (1376, 1416), (1425, 1469),
  (1471, 1471), (1473, 1474), (1476, 1477), (1479, 1479), (1488, 1514),
  (1519, 1522), (1552, 1562), (1568, 1641), (1646, 1747), (1749, 1756),
  (1759, 1768), (1770, 1788), (1791, 1791), (1808, 1866), (1869, 1969),
  (1984, 2037), (2042, 2042), (2045, 2045), (2048, 2093), (2112, 2139),
  (2144, 2154), (2160, 2183), (2185, 2191), (2199, 2273), (2275, 2403),
  (2406, 2415), (2417, 2435), (2437, 2444), (2447, 2448), (2451, 2472),
  (2474, 2480), (2482, 2482), (2486, 2489), (2492, 2500), (2503, 2504),
  (2507, 2510), (2519, 2519), (2524, 2525), (2527, 2531), (2534, 2545),
  (2556, 2556), (2558, 2558), (2561, 2563), (2565, 2570), (2575, 2576),
  (2579, 2600), (2602, 2608), (2610, 2611), (2613, 2614), (2616, 2617),
  (2620, 2620), (2622, 2626), (2631, 2632), (2635, 2637), (2641, 2641),
  (2649, 2652), (2654, 2654), (2662, 2677), (2689, 2691), (2693, 2701),
  (2703, 2705), (2707, 2728), (2730, 2736), (2738, 2739), (2741, 2745),
  (2748, 2757), (2759, 2761), (2763, 2765), (2768, 2768), (2784, 2787),
  (2790, 2799), (2809, 2815), (2817, 2819), (2821, 2828), (2831, 2832),
  (2835, 2856), (2858, 2864), (2866, 2867), (2869, 2873), (2876, 2884),
  (2887, 2888), (2891, 2893), (2901, 2903), (2908, 2909), (2911, 2915),
  (2918, 2927), (2929, 2929), (2946, 2947), (2949, 2954), (2958, 2960),
  (2962, 2965), (2969, 2970), (2972, 2972), (2974, 2975), (2979, 2980),
  (2984, 2986), (2990, 3001), (3006, 3010), (3014, 3016), (3018, 3021),
  (3024, 3024), (3031, 3031), (3046, 3055), (3072, 3084), (3086, 3088),
  (3090, 3112), (3114, 3129), (3132, 3140), (3142, 3144), (3146, 3149),
  (3157, 3158), (3160, 3162), (3164, 3165), (3168, 3171), (3174, 3183),
  (3200, 3203), (3205, 3212), (3214, 3216), (3218, 3240), (3242, 3251),
  (3253, 3257), (3260, 3268), (3270, 3272), (3274, 3277), (3285, 3286),
  (3292, 3294), (3296, 3299), (3302, 3311), (3313, 3315), (3328, 3340),
  (3342, 3344), (3346, 3396), (3398, 3400), (3402, 3406), (3412, 3415),
  (3423, 3427), (3430, 3439), (3450, 3455), (3457, 3459), (3461, 3478),
  (3482, 3505), (3507, 3515), (3517, 3517), (3520, 3526), (3530, 3530),
  (3535, 3540), (3542, 3542), (3544, 3551), (3558, 3567), (3570, 3571),
  (3585, 3642), (3648, 3662), (3664, 3673), (3713, 3714), (3716, 3716),
  (3718, 3722), (3724, 3747), (3749, 3749), (3751, 3773), (3776, 3780),
  (3782, 3782), (3784, 3790), (3792, 3801), (3804, 3807), (3840, 3840),
  (3864, 3865), (3872, 3881), (3893, 3893), (3895, 3895), (3897, 3897),
  (3902, 3911), (3913, 3948), (3953, 3972), (3974, 3991), (3993, 4028),
  (4038, 4038), (4096, 4169), (4176, 4253), (4256, 4293), (4295, 4295),
  (4301, 4301), (4304, 4346), (4348, 4680), (4682, 4685), (4688, 4694),
  (4696, 4696), (4698, 4701), (4704, 4744), (4746, 4749), (4752, 4784),
  (4786, 4789), (4792, 4798), (4800, 4800), (4802, 4805), (4808, 4822),
  (4824, 4880), (4882, 4885), (4888, 4954), (4957, 4959), (4969, 4977),
  (4992, 5007), (5024, 5109), (5112, 5117), (5121, 5740), (5743, 5759),
  (5761, 5786), (5792, 5866), (5870, 5880), (5888, 5909), (5919, 5940),
  (5952, 5971), (5984, 5996), (5998, 6000), (6002, 6003), (6016, 6099),
  (6103, 6103), (6108, 6109), (6112, 6121), (6155, 6157), (6159, 6169),
  (6176, 6264), (6272, 6314), (6320, 6389), (6400, 6430), (6432, 6443),
  (6448, 6459), (6470, 6509), (6512, 6516), (6528, 6571), (6576, 6601),
  (6608, 6618), (6656, 6683), (6688, 6750), (6752, 6780), (6783, 6793),
  (6800, 6809), (6823, 6823), (6832, 6845), (6847, 6877), (6880, 6891),
  (6912, 6988), (6992, 7001), (7019, 7027), (7040, 7155), (7168, 7223),
  (7232, 7241), (7245, 7293), (7296, 7306), (7312, 7354), (7357, 7359),
  (7376, 7378), (7380, 7418), (7424, 7957), (7960, 7965), (7968, 8005),
  (8008, 8013), (8016, 8023), (8025, 8025), (8027, 8027), (8029, 8029),
  (8031, 8061), (8064, 8116), (8118, 8124), (8126, 8126), (8130, 8132),
  (8134, 8140), (8144, 8147), (8150, 8155), (8160, 8172), (8178, 8180),
  (8182, 8188), (8204, 8205), (8255, 8256), (8276, 8276), (8305, 8305),
  (8319, 8319), (8336, 8348), (8400, 8412), (8417, 8417), (8421, 8432),
  (8450, 8450), (8455, 8455), (8458, 8467), (8469, 8469), (8472, 8477),
  (8484, 8484), (8486, 8486), (8488, 8488), (8490, 8505), (8508, 8511),
  (8517, 8521), (8526, 8526), (8544, 8584), (11264, 11492), (11499, 11507),
  (11520, 11557), (11559, 11559), (11565, 11565), (11568, 11623),
  (11631, 11631), (11647, 11670), (11680, 11686), (11688, 11694),
  (11696, 11702), (11704, 11710), (11712, 11718), (11720, 11726),
  (11728, 11734), (11736, 11742), (11744, 11775), (12293, 12295),
  (12321, 12335), (12337, 12341), (12344, 12348), (12353, 12438),
  (12441, 12442), (12445, 12447), (12449, 12543), (12549, 12591),
  (12593, 12686), (12704, 12735), (12784, 12799), (13312, 19903),
  (19968, 42124), (42192, 42237), (42240, 42508), (42512, 42539),
  (42560, 42607), (42612, 42621), (42623, 42737), (42775, 42783),
  (42786, 42888), (42891, 42972), (42993, 43047), (43052, 43052),
  (43072, 43123), (43136, 43205), (43216, 43225), (43232, 43255),
  (43259, 43259), (43261, 43309), (43312, 43347), (43360, 43388),
  (43392, 43456), (43471, 43481), (43488, 43518), (43520, 43574),
  (43584, 43597), (43600, 43609), (43616, 43638), (43642, 43714),
  (43739, 43741), (43744, 43759), (43762, 43766), (43777, 43782),
  (43785, 43790), (43793, 43798), (43808, 43814), (43816, 43822),
  (43824, 43866), (43868, 43881), (43888, 44010), (44012, 44013),
  (44016, 44025), (44032, 55203), (55216, 55238), (55243, 55291),
  (63744, 64109), (64112, 64217), (64256, 64262), (64275, 64279),
  (64285, 64296), (64298, 64310), (64312, 64316), (64318, 64318),
  (64320, 64321), (64323, 64324), (64326, 64433), (64467, 64605),
  (64612, 64829), (64848, 64911), (64914, 64967), (65008, 65017),
  (65024, 65039), (65056, 65071), (65075, 65076), (65101, 65103),
  (65137, 65137), (65139, 65139), (65143, 65143), (65145, 65145),
  (65147, 65147), (65149, 65149), (65151, 65276), (65296, 65305),
  (65313, 65338), (65343, 65343), (65345, 65370), (65381, 65470),
  (65474, 65479), (65482, 65487), (65490, 65495), (65498, 65500),
  (65536, 65547), (65549, 65574), (65576, 65594), (65596, 65597),
  (65599, 65613), (65616, 65629), (65664, 65786), (65856, 65908),
  (66045, 66045), (66176, 66204), (66208, 66256), (66272, 66272),
  (66304, 66335), (66349, 66378), (66384, 66426), (66432, 66461),
  (66464, 66499), (66504, 66511), (66513, 66517), (66560, 66717),
  (66720, 66729), (66736, 66771), (66776, 66811), (66816, 66855),
  (66864, 66915), (66928, 66938), (66940, 66954), (66956, 66962),
  (66964, 66965), (66967, 66977), (66979, 66993), (66995, 67001),
  (67003, 67004), (67008, 67059), (67072, 67382), (67392, 67413),
  (67424, 67431), (67456, 67461), (67463, 67504), (67506, 67514),
  (67584, 67589), (67592, 67592), (67594, 67637), (67639, 67640),
  (67644, 67644), (67647, 67669), (67680, 67702), (67712, 67742),
  (67808, 67826), (67828, 67829), (67840, 67861), (67872, 67897),
  (67904, 67929), (67968, 68023), (68030, 68031), (68096, 68099),
  (68101, 68102), (68108, 68115), (68117, 68119), (68121, 68149),
  (68152, 68154), (68159, 68159), (68192, 68220), (68224, 68252),
  (68288, 68295), (68297, 68326), (68352, 68405), (68416, 68437),
  (68448, 68466), (68480, 68497), (68608, 68680), (68736, 68786),
  (68800, 68850), (68864, 68903), (68912, 68921), (68928, 68965),
  (68969, 68973), (68975, 68997), (69248, 69289), (69291, 69292),
  (69296, 69297), (69314, 69319), (69370, 69404), (69415, 69415),
  (69424, 69456), (69488, 69509), (69552, 69572), (69600, 69622),
  (69632, 69702), (69734, 69749), (69759, 69818), (69826, 69826),
  (69840, 69864), (69872, 69881), (69888, 69940), (69942, 69951),
  (69956, 69959), (69968, 70003), (70006, 70006), (70016, 70084),
  (70089, 70092), (70094, 70106), (70108, 70108), (70144, 70161),
  (70163, 70199), (70206, 70209), (70272, 70278), (70280, 70280),
  (70282, 70285), (70287, 70301), (70303, 70312), (70320, 70378),
  (70384, 70393), (70400, 70403), (70405, 70412), (70415, 70416),
  (70419, 70440), (70442, 70448), (70450, 70451), (70453, 70457),
  (70459, 70468), (70471, 70472), (70475, 70477), (70480, 70480),
  (70487, 70487), (70493, 70499), (70502, 70508), (70512, 70516),
  (70528, 70537), (70539, 70539), (70542, 70542), (70544, 70581),
  (70583, 70592), (70594, 70594), (70597, 70597), (70599, 70602),
  (70604, 70611), (70625, 70626), (70656, 70730), (70736, 70745),
  (70750, 70753), (70784, 70853), (70855, 70855), (70864, 70873),
  (71040, 71093), (71096, 71104), (71128, 71133), (71168, 71232),
  (71236, 71236), (71248, 71257), (71296, 71352), (71360, 71369),
  (71376, 71395), (71424, 71450), (71453, 71467), (71472, 71481),
  (71488, 71494), (71680, 71738), (71840, 71913), (71935, 71942),
  (71945, 71945), (71948, 71955), (71957, 71958), (71960, 71989),
  (71991, 71992), (71995, 72003), (72016, 72025), (72096, 72103),
  (72106, 72151), (72154, 72161), (72163, 72164), (72192, 72254),
  (72263, 72263), (72272, 72345), (72349, 72349), (72368, 72440),
  (72544, 72551), (72640, 72672), (72688, 72697), (72704, 72712),
  (72714, 72758), (72760, 72768), (72784, 72793), (72818, 72847),
  (72850, 72871), (72873, 72886), (72960, 72966), (72968, 72969),
  (72971, 73014), (73018, 73018), (73020, 73021), (73023, 73031),
  (73040, 73049), (73056, 73061), (73063, 73064), (73066, 73102),
  (73104, 73105), (73107, 73112), (73120, 73129), (73136, 73179),
  (73184, 73193), (73440, 73462), (73472, 73488), (73490, 73530),
  (73534, 73538), (73552, 73562), (73648, 73648), (73728, 74649),
  (74752, 74862), (74880, 75075), (77712, 77808), (77824, 78895),
  (78912, 78933), (78944, 82938), (82944, 83526), (90368, 90425),
  (92160, 92728), (92736, 92766), (92768, 92777), (92784, 92862),
  (92864, 92873), (92880, 92909), (92912, 92916), (92928, 92982),
  (92992, 92995), (93008, 93017), (93027, 93047), (93053, 93071),
  (93504, 93548), (93552, 93561), (93760, 93823), (93856, 93880),
  (93883, 93907), (93952, 94026), (94031, 94087), (94095, 94111),
  (94176, 94177), (94179, 94180), (94192, 94198), (94208, 101589),
  (101631, 101662), (101760, 101874), (110576, 110579), (110581, 110587),
  (110589, 110590), (110592, 110882), (110898, 110898), (110928, 110930),
  (110933, 110933), (110948, 110951), (110960, 111355), (113664, 113770),
  (113776, 113788), (113792, 113800), (113808, 113817), (113821, 113822),
  (118000, 118009), (118528, 118573), (118576, 118598), (119141, 119145),
  (119149, 119154), (119163, 119170), (119173, 119179), (119210, 119213),
  (119362, 119364), (119808, 119892), (119894, 119964), (119966, 119967),
  (119970, 119970), (119973, 119974), (119977, 119980), (119982, 119993),
  (119995, 119995), (119997, 120003), (120005, 120069), (120071, 120074),
  (120077, 120084), (120086, 120092), (120094, 120121), (120123, 120126),
  (120128, 120132), (120134, 120134), (120138, 120144), (120146, 120485),
  (120488, 120512), (120514, 120538), (120540, 120570), (120572, 120596),
  (120598, 120628), (120630, 120654), (120656, 120686), (120688, 120712),
  (120714, 120744), (120746, 120770), (120772, 120779), (120782, 120831),
  (121344, 121398), (121403, 121452), (121461, 121461), (121476, 121476),
  (121499, 121503), (121505, 121519), (122624, 122654), (122661, 122666),
  (122880, 122886), (122888, 122904), (122907, 122913), (122915, 122916),
  (122918, 122922), (122928, 122989), (123023, 123023), (123136, 123180),
  (123184, 123197), (123200, 123209), (123214, 123214), (123536, 123566),
  (123584, 123641), (124112, 124153), (124368, 124410), (124608, 124638),
  (124640, 124661), (124670, 124671), (124896, 124902), (124904, 124907),
  (124909, 124910), (124912, 124926), (124928, 125124), (125136, 125142),
  (125184, 125259), (125264, 125273), (126464, 126467), (126469, 126495),
  (126497, 126498), (126500, 126500), (126503, 126503), (126505, 126514),
  (126516, 126519), (126521, 126521), (126523, 126523), (126530, 126530),
  (126535, 126535), (126537, 126537), (126539, 126539), (126541, 126543),
  (126545, 126546), (126548, 126548), (126551, 126551), (126553, 126553),
  (126555, 126555), (126557, 126557), (126559, 126559), (126561, 126562),
  (126564, 126564), (126567, 126570), (126572, 126578), (126580, 126583),
  (126585, 126588), (126590, 126590), (126592, 126601), (126603, 126619),
  (126625, 126627), (126629, 126633), (126635, 126651), (130032, 130041),
  (131072, 173791), (173824, 178205), (178208, 183981), (183984, 191456),
  (191472, 192093), (194560, 195101), (196608, 201546), (201552, 210041),
  (917760, 917999),
];

pub const XID_START: &'static [(u32, u32)] = &[
  (65, 90), (97, 122), (170, 170), (181, 181), (186, 186), (192, 214),
  (216, 246), (248, 705), (710, 721), (736, 740), (748, 748), (750, 750),
  (880, 884), (886, 887), (891, 893), (895, 895), (902, 902), (904, 906),
  (908, 908), (910, 929), (931, 1013), (1015, 1153), (1162, 1327),
  (1329, 1366), (1369, 1369), (1376, 1416), (1488, 1514), (1519, 1522),
  (1568, 1610), (1646, 1647), (1649, 1747), (1749, 1749), (1765, 1766),
  (1774, 1775), (1786, 1788), (1791, 1791), (1808, 1808), (1810, 1839),
  (1869, 1957), (1969, 1969), (1994, 2026), (2036, 2037), (2042, 2042),
  (2048, 2069), (2074, 2074), (2084, 2084), (2088, 2088), (2112, 2136),
  (2144, 2154), (2160, 2183), (2185, 2191), (2208, 2249), (2308, 2361),
  (2365, 2365), (2384, 2384), (2392, 2401), (2417, 2432), (2437, 2444),
  (2447, 2448), (2451, 2472), (2474, 2480), (2482, 2482), (2486, 2489),
  (2493, 2493), (2510, 2510), (2524, 2525), (2527, 2529), (2544, 2545),
  (2556, 2556), (2565, 2570), (2575, 2576), (2579, 2600), (2602, 2608),
  (2610, 2611), (2613, 2614), (2616, 2617), (2649, 2652), (2654, 2654),
  (2674, 2676), (2693, 2701), (2703, 2705), (2707, 2728), (2730, 2736),
  (2738, 2739), (2741, 2745), (2749, 2749), (2768, 2768), (2784, 2785),
  (2809, 2809), (2821, 2828), (2831, 2832), (2835, 2856), (2858, 2864),
  (2866, 2867), (2869, 2873), (2877, 2877), (2908, 2909), (2911, 2913),
  (2929, 2929), (2947, 2947), (2949, 2954), (2958, 2960), (2962, 2965),
  (2969, 2970), (2972, 2972), (2974, 2975), (2979, 2980), (2984, 2986),
  (2990, 3001), (3024, 3024), (3077, 3084), (3086, 3088), (3090, 3112),
  (3114, 3129), (3133, 3133), (3160, 3162), (3164, 3165), (3168, 3169),
  (3200, 3200), (3205, 3212), (3214, 3216), (3218, 3240), (3242, 3251),
  (3253, 3257), (3261, 3261), (3292, 3294), (3296, 3297), (3313, 3314),
  (3332, 3340), (3342, 3344), (3346, 3386), (3389, 3389), (3406, 3406),
  (3412, 3414), (3423, 3425), (3450, 3455), (3461, 3478), (3482, 3505),
  (3507, 3515), (3517, 3517), (3520, 3526), (3585, 3632), (3634, 3634),
  (3648, 3654), (3713, 3714), (3716, 3716), (3718, 3722), (3724, 3747),
  (3749, 3749), (3751, 3760), (3762, 3762), (3773, 3773), (3776, 3780),
  (3782, 3782), (3804, 3807), (3840, 3840), (3904, 3911), (3913, 3948),
  (3976, 3980), (4096, 4138), (4159, 4159), (4176, 4181), (4186, 4189),
  (4193, 4193), (4197, 4198), (4206, 4208), (4213, 4225), (4238, 4238),
  (4256, 4293), (4295, 4295), (4301, 4301), (4304, 4346), (4348, 4680),
  (4682, 4685), (4688, 4694), (4696, 4696), (4698, 4701), (4704, 4744),
  (4746, 4749), (4752, 4784), (4786, 4789), (4792, 4798), (4800, 4800),
  (4802, 4805), (4808, 4822), (4824, 4880), (4882, 4885), (4888, 4954),
  (4992, 5007), (5024, 5109), (5112, 5117), (5121, 5740), (5743, 5759),
  (5761, 5786), (5792, 5866), (5870, 5880), (5888, 5905), (5919, 5937),
  (5952, 5969), (5984, 5996), (5998, 6000), (6016, 6067), (6103, 6103),
  (6108, 6108), (6176, 6264), (6272, 6312), (6314, 6314), (6320, 6389),
  (6400, 6430), (6480, 6509), (6512, 6516), (6528, 6571), (6576, 6601),
  (6656, 6678), (6688, 6740), (6823, 6823), (6917, 6963), (6981, 6988),
  (7043, 7072), (7086, 7087), (7098, 7141), (7168, 7203), (7245, 7247),
  (7258, 7293), (7296, 7306), (7312, 7354), (7357, 7359), (7401, 7404),
  (7406, 7411), (7413, 7414), (7418, 7418), (7424, 7615), (7680, 7957),
  (7960, 7965), (7968, 8005), (8008, 8013), (8016, 8023), (8025, 8025),
  (8027, 8027), (8029, 8029), (8031, 8061), (8064, 8116), (8118, 8124),
  (8126, 8126), (8130, 8132), (8134, 8140), (8144, 8147), (8150, 8155),
  (8160, 8172), (8178, 8180), (8182, 8188), (8305, 8305), (8319, 8319),
  (8336, 8348), (8450, 8450), (8455, 8455), (8458, 8467), (8469, 8469),
  (8472, 8477), (8484, 8484), (8486, 8486), (8488, 8488), (8490, 8505),
  (8508, 8511), (8517, 8521), (8526, 8526), (8544, 8584), (11264, 11492),
  (11499, 11502), (11506, 11507), (11520, 11557), (11559, 11559),
  (11565, 11565), (11568, 11623), (11631, 11631), (11648, 11670),
  (11680, 11686), (11688, 11694), (11696, 11702), (11704, 11710),
  (11712, 11718), (11720, 11726), (11728, 11734), (11736, 11742),
  (12293, 12295), (12321, 12329), (12337, 12341), (12344, 12348),
  (12353, 12438), (12445, 12447), (12449, 12538), (12540, 12543),
  (12549, 12591), (12593, 12686), (12704, 12735), (12784, 12799),
  (13312, 19903), (19968, 42124), (42192, 42237), (42240, 42508),
  (42512, 42527), (42538, 42539), (42560, 42606), (42623, 42653),
  (42656, 42735), (42775, 42783), (42786, 42888), (42891, 42972),
  (42993, 43009), (43011, 43013), (43015, 43018), (43020, 43042),
  (43072, 43123), (43138, 43187), (43250, 43255), (43259, 43259),
  (43261, 43262), (43274, 43301), (43312, 43334), (43360, 43388),
  (43396, 43442), (43471, 43471), (43488, 43492), (43494, 43503),
  (43514, 43518), (43520, 43560), (43584, 43586), (43588, 43595),
  (43616, 43638), (43642, 43642), (43646, 43695), (43697, 43697),
  (43701, 43702), (43705, 43709), (43712, 43712), (43714, 43714),
  (43739, 43741), (43744, 43754), (43762, 43764), (43777, 43782),
  (43785, 43790), (43793, 43798), (43808, 43814), (43816, 43822),
  (43824, 43866), (43868, 43881), (43888, 44002), (44032, 55203),
  (55216, 55238), (55243, 55291), (63744, 64109), (64112, 64217),
  (64256, 64262), (64275, 64279), (64285, 64285), (64287, 64296),
  (64298, 64310), (64312, 64316), (64318, 64318), (64320, 64321),
  (64323, 64324), (64326, 64433), (64467, 64605), (64612, 64829),
  (64848, 64911), (64914, 64967), (65008, 65017), (65137, 65137),
  (65139, 65139), (65143, 65143), (65145, 65145), (65147, 65147),
  (65149, 65149), (65151, 65276), (65313, 65338), (65345, 65370),
  (65382, 65437), (65440, 65470), (65474, 65479), (65482, 65487),
  (65490, 65495), (65498, 65500), (65536, 65547), (65549, 65574),
  (65576, 65594), (65596, 65597), (65599, 65613), (65616, 65629),
  (65664, 65786), (65856, 65908), (66176, 66204), (66208, 66256),
  (66304, 66335), (66349, 66378), (66384, 66421), (66432, 66461),
  (66464, 66499), (66504, 66511), (66513, 66517), (66560, 66717),
  (66736, 66771), (66776, 66811), (66816, 66855), (66864, 66915),
  (66928, 66938), (66940, 66954), (66956, 66962), (66964, 66965),
  (66967, 66977), (66979, 66993), (66995, 67001), (67003, 67004),
  (67008, 67059), (67072, 67382), (67392, 67413), (67424, 67431),
  (67456, 67461), (67463, 67504), (67506, 67514), (67584, 67589),
  (67592, 67592), (67594, 67637), (67639, 67640), (67644, 67644),
  (67647, 67669), (67680, 67702), (67712, 67742), (67808, 67826),
  (67828, 67829), (67840, 67861), (67872, 67897), (67904, 67929),
  (67968, 68023), (68030, 68031), (68096, 68096), (68112, 68115),
  (68117, 68119), (68121, 68149), (68192, 68220), (68224, 68252),
  (68288, 68295), (68297, 68324), (68352, 68405), (68416, 68437),
  (68448, 68466), (68480, 68497), (68608, 68680), (68736, 68786),
  (68800, 68850), (68864, 68899), (68938, 68965), (68975, 68997),
  (69248, 69289), (69296, 69297), (69314, 69319), (69376, 69404),
  (69415, 69415), (69424, 69445), (69488, 69505), (69552, 69572),
  (69600, 69622), (69635, 69687), (69745, 69746), (69749, 69749),
  (69763, 69807), (69840, 69864), (69891, 69926), (69956, 69956),
  (69959, 69959), (69968, 70002), (70006, 70006), (70019, 70066),
  (70081, 70084), (70106, 70106), (70108, 70108), (70144, 70161),
  (70163, 70187), (70207, 70208), (70272, 70278), (70280, 70280),
  (70282, 70285), (70287, 70301), (70303, 70312), (70320, 70366),
  (70405, 70412), (70415, 70416), (70419, 70440), (70442, 70448),
  (70450, 70451), (70453, 70457), (70461, 70461), (70480, 70480),
  (70493, 70497), (70528, 70537), (70539, 70539), (70542, 70542),
  (70544, 70581), (70583, 70583), (70609, 70609), (70611, 70611),
  (70656, 70708), (70727, 70730), (70751, 70753), (70784, 70831),
  (70852, 70853), (70855, 70855), (71040, 71086), (71128, 71131),
  (71168, 71215), (71236, 71236), (71296, 71338), (71352, 71352),
  (71424, 71450), (71488, 71494), (71680, 71723), (71840, 71903),
  (71935, 71942), (71945, 71945), (71948, 71955), (71957, 71958),
  (71960, 71983), (71999, 71999), (72001, 72001), (72096, 72103),
  (72106, 72144), (72161, 72161), (72163, 72163), (72192, 72192),
  (72203, 72242), (72250, 72250), (72272, 72272), (72284, 72329),
  (72349, 72349), (72368, 72440), (72640, 72672), (72704, 72712),
  (72714, 72750), (72768, 72768), (72818, 72847), (72960, 72966),
  (72968, 72969), (72971, 73008), (73030, 73030), (73056, 73061),
  (73063, 73064), (73066, 73097), (73112, 73112), (73136, 73179),
  (73440, 73458), (73474, 73474), (73476, 73488), (73490, 73523),
  (73648, 73648), (73728, 74649), (74752, 74862), (74880, 75075),
  (77712, 77808), (77824, 78895), (78913, 78918), (78944, 82938),
  (82944, 83526), (90368, 90397), (92160, 92728), (92736, 92766),
  (92784, 92862), (92880, 92909), (92928, 92975), (92992, 92995),
  (93027, 93047), (93053, 93071), (93504, 93548), (93760, 93823),
  (93856, 93880), (93883, 93907), (93952, 94026), (94032, 94032),
  (94099, 94111), (94176, 94177), (94179, 94179), (94194, 94198),
  (94208, 101589), (101631, 101662), (101760, 101874), (110576, 110579),
  (110581, 110587), (110589, 110590), (110592, 110882), (110898, 110898),
  (110928, 110930), (110933, 110933), (110948, 110951), (110960, 111355),
  (113664, 113770), (113776, 113788), (113792, 113800), (113808, 113817),
  (119808, 119892), (119894, 119964), (119966, 119967), (119970, 119970),
  (119973, 119974), (119977, 119980), (119982, 119993), (119995, 119995),
  (119997, 120003), (120005, 120069), (120071, 120074), (120077, 120084),
  (120086, 120092), (120094, 120121), (120123, 120126), (120128, 120132),
  (120134, 120134), (120138, 120144), (120146, 120485), (120488, 120512),
  (120514, 120538), (120540, 120570), (120572, 120596), (120598, 120628),
  (120630, 120654), (120656, 120686), (120688, 120712), (120714, 120744),
  (120746, 120770), (120772, 120779), (122624, 122654), (122661, 122666),
  (122928, 122989), (123136, 123180), (123191, 123197), (123214, 123214),
  (123536, 123565), (123584, 123627), (124112, 124139), (124368, 124397),
  (124400, 124400), (124608, 124638), (124640, 124642), (124644, 124645),
  (124647, 124653), (124656, 124660), (124670, 124671), (124896, 124902),
  (124904, 124907), (124909, 124910), (124912, 124926), (124928, 125124),
  (125184, 125251), (125259, 125259), (126464, 126467), (126469, 126495),
  (126497, 126498), (126500, 126500), (126503, 126503), (126505, 126514),
  (126516, 126519), (126521, 126521), (126523, 126523), (126530, 126530),
  (126535, 126535), (126537, 126537), (126539, 126539), (126541, 126543),
  (126545, 126546), (126548, 126548), (126551, 126551), (126553, 126553),
  (126555, 126555), (126557, 126557), (126559, 126559), (126561, 126562),
  (126564, 126564), (126567, 126570), (126572, 126578), (126580, 126583),
  (126585, 126588), (126590, 126590), (126592, 126601), (126603, 126619),
  (126625, 126627), (126629, 126633), (126635, 126651), (131072, 173791),
  (173824, 178205), (178208, 183981), (183984, 191456), (191472, 192093),
  (194560, 195101), (196608, 201546), (201552, 210041),
];