scnr2_generate 0.3.3

Scanner/Lexer with regex patterns and multiple modes
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
pub mod test_scanner {
    use scnr2::{
        AcceptData, Dfa, DfaState, DfaTransition, Lookahead, ScannerImpl, ScannerMode, Transition,
    };
    pub const MODES: &[ScannerMode] = &[
        ScannerMode {
            name: "INITIAL",
            transitions: &[Transition::SetMode(8usize, 1usize)],
            dfa: Dfa {
                states: &[
                    DfaState {
                        transitions: &[
                            Some(DfaTransition { to: 22usize }),
                            Some(DfaTransition { to: 5usize }),
                            Some(DfaTransition { to: 3usize }),
                            Some(DfaTransition { to: 4usize }),
                            Some(DfaTransition { to: 12usize }),
                            Some(DfaTransition { to: 9usize }),
                            Some(DfaTransition { to: 22usize }),
                            Some(DfaTransition { to: 23usize }),
                            Some(DfaTransition { to: 22usize }),
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 19usize }),
                            Some(DfaTransition { to: 20usize }),
                            Some(DfaTransition { to: 22usize }),
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                        ],
                        accept_data: None,
                    },
                    DfaState {
                        transitions: &[
                            Some(DfaTransition { to: 1usize }),
                            Some(DfaTransition { to: 1usize }),
                            Some(DfaTransition { to: 1usize }),
                            Some(DfaTransition { to: 1usize }),
                            Some(DfaTransition { to: 1usize }),
                            Some(DfaTransition { to: 1usize }),
                            Some(DfaTransition { to: 2usize }),
                            Some(DfaTransition { to: 1usize }),
                            Some(DfaTransition { to: 1usize }),
                            Some(DfaTransition { to: 1usize }),
                            Some(DfaTransition { to: 1usize }),
                            Some(DfaTransition { to: 1usize }),
                            Some(DfaTransition { to: 1usize }),
                            Some(DfaTransition { to: 1usize }),
                            Some(DfaTransition { to: 1usize }),
                            Some(DfaTransition { to: 1usize }),
                            Some(DfaTransition { to: 1usize }),
                            Some(DfaTransition { to: 1usize }),
                            Some(DfaTransition { to: 1usize }),
                        ],
                        accept_data: None,
                    },
                    DfaState {
                        transitions: &[
                            Some(DfaTransition { to: 1usize }),
                            Some(DfaTransition { to: 1usize }),
                            Some(DfaTransition { to: 1usize }),
                            Some(DfaTransition { to: 1usize }),
                            Some(DfaTransition { to: 1usize }),
                            Some(DfaTransition { to: 1usize }),
                            Some(DfaTransition { to: 1usize }),
                            Some(DfaTransition { to: 8usize }),
                            Some(DfaTransition { to: 1usize }),
                            Some(DfaTransition { to: 1usize }),
                            Some(DfaTransition { to: 1usize }),
                            Some(DfaTransition { to: 1usize }),
                            Some(DfaTransition { to: 1usize }),
                            Some(DfaTransition { to: 1usize }),
                            Some(DfaTransition { to: 1usize }),
                            Some(DfaTransition { to: 1usize }),
                            Some(DfaTransition { to: 1usize }),
                            Some(DfaTransition { to: 1usize }),
                            Some(DfaTransition { to: 1usize }),
                        ],
                        accept_data: None,
                    },
                    DfaState {
                        transitions: &[
                            None, None, None, None, None, None, None, None, None, None, None, None,
                            None, None, None, None, None, None, None,
                        ],
                        accept_data: Some(AcceptData {
                            token_type: 1usize,
                            priority: 0usize,
                            lookahead: Lookahead::None,
                        }),
                    },
                    DfaState {
                        transitions: &[
                            None,
                            None,
                            Some(DfaTransition { to: 3usize }),
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                        ],
                        accept_data: Some(AcceptData {
                            token_type: 1usize,
                            priority: 0usize,
                            lookahead: Lookahead::None,
                        }),
                    },
                    DfaState {
                        transitions: &[
                            None,
                            Some(DfaTransition { to: 5usize }),
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                        ],
                        accept_data: Some(AcceptData {
                            token_type: 2usize,
                            priority: 1usize,
                            lookahead: Lookahead::None,
                        }),
                    },
                    DfaState {
                        transitions: &[
                            None, None, None, None, None, None, None, None, None, None, None, None,
                            None, None, None, None, None, None, None,
                        ],
                        accept_data: Some(AcceptData {
                            token_type: 3usize,
                            priority: 2usize,
                            lookahead: Lookahead::None,
                        }),
                    },
                    DfaState {
                        transitions: &[
                            Some(DfaTransition { to: 7usize }),
                            Some(DfaTransition { to: 7usize }),
                            Some(DfaTransition { to: 6usize }),
                            Some(DfaTransition { to: 7usize }),
                            Some(DfaTransition { to: 7usize }),
                            Some(DfaTransition { to: 7usize }),
                            Some(DfaTransition { to: 7usize }),
                            Some(DfaTransition { to: 7usize }),
                            Some(DfaTransition { to: 7usize }),
                            Some(DfaTransition { to: 7usize }),
                            Some(DfaTransition { to: 7usize }),
                            Some(DfaTransition { to: 7usize }),
                            Some(DfaTransition { to: 7usize }),
                            Some(DfaTransition { to: 7usize }),
                            Some(DfaTransition { to: 7usize }),
                            Some(DfaTransition { to: 7usize }),
                            Some(DfaTransition { to: 7usize }),
                            Some(DfaTransition { to: 7usize }),
                            Some(DfaTransition { to: 7usize }),
                        ],
                        accept_data: Some(AcceptData {
                            token_type: 3usize,
                            priority: 2usize,
                            lookahead: Lookahead::None,
                        }),
                    },
                    DfaState {
                        transitions: &[
                            None, None, None, None, None, None, None, None, None, None, None, None,
                            None, None, None, None, None, None, None,
                        ],
                        accept_data: Some(AcceptData {
                            token_type: 4usize,
                            priority: 3usize,
                            lookahead: Lookahead::None,
                        }),
                    },
                    DfaState {
                        transitions: &[
                            None, None, None, None, None, None, None, None, None, None, None, None,
                            None, None, None, None, None, None, None,
                        ],
                        accept_data: Some(AcceptData {
                            token_type: 8usize,
                            priority: 4usize,
                            lookahead: Lookahead::None,
                        }),
                    },
                    DfaState {
                        transitions: &[
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                            None,
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                        ],
                        accept_data: Some(AcceptData {
                            token_type: 9usize,
                            priority: 5usize,
                            lookahead: Lookahead::None,
                        }),
                    },
                    DfaState {
                        transitions: &[
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                            None,
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                        ],
                        accept_data: Some(AcceptData {
                            token_type: 10usize,
                            priority: 6usize,
                            lookahead: Lookahead::None,
                        }),
                    },
                    DfaState {
                        transitions: &[
                            None, None, None, None, None, None, None, None, None, None, None, None,
                            None, None, None, None, None, None, None,
                        ],
                        accept_data: Some(AcceptData {
                            token_type: 12usize,
                            priority: 8usize,
                            lookahead: Lookahead::Negative(Dfa {
                                states: &[
                                    DfaState {
                                        transitions: &[
                                            None,
                                            None,
                                            None,
                                            None,
                                            Some(DfaTransition { to: 1usize }),
                                            None,
                                            None,
                                            None,
                                            None,
                                            None,
                                            None,
                                            None,
                                            None,
                                            None,
                                            None,
                                            None,
                                            None,
                                            None,
                                            None,
                                        ],
                                        accept_data: None,
                                    },
                                    DfaState {
                                        transitions: &[
                                            None, None, None, None, None, None, None, None, None,
                                            None, None, None, None, None, None, None, None, None,
                                            None,
                                        ],
                                        accept_data: Some(AcceptData {
                                            token_type: 4294967295usize,
                                            priority: 0usize,
                                            lookahead: Lookahead::None,
                                        }),
                                    },
                                ],
                            }),
                        }),
                    },
                    DfaState {
                        transitions: &[
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                            None,
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 11usize }),
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                        ],
                        accept_data: Some(AcceptData {
                            token_type: 13usize,
                            priority: 9usize,
                            lookahead: Lookahead::None,
                        }),
                    },
                    DfaState {
                        transitions: &[
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                            None,
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 10usize }),
                            Some(DfaTransition { to: 21usize }),
                        ],
                        accept_data: Some(AcceptData {
                            token_type: 13usize,
                            priority: 9usize,
                            lookahead: Lookahead::None,
                        }),
                    },
                    DfaState {
                        transitions: &[
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                            None,
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 13usize }),
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                        ],
                        accept_data: Some(AcceptData {
                            token_type: 13usize,
                            priority: 9usize,
                            lookahead: Lookahead::None,
                        }),
                    },
                    DfaState {
                        transitions: &[
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                            None,
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 14usize }),
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                        ],
                        accept_data: Some(AcceptData {
                            token_type: 13usize,
                            priority: 9usize,
                            lookahead: Lookahead::None,
                        }),
                    },
                    DfaState {
                        transitions: &[
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                            None,
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 16usize }),
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                        ],
                        accept_data: Some(AcceptData {
                            token_type: 13usize,
                            priority: 9usize,
                            lookahead: Lookahead::None,
                        }),
                    },
                    DfaState {
                        transitions: &[
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                            None,
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 15usize }),
                        ],
                        accept_data: Some(AcceptData {
                            token_type: 13usize,
                            priority: 9usize,
                            lookahead: Lookahead::None,
                        }),
                    },
                    DfaState {
                        transitions: &[
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                            None,
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 17usize }),
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                        ],
                        accept_data: Some(AcceptData {
                            token_type: 13usize,
                            priority: 9usize,
                            lookahead: Lookahead::None,
                        }),
                    },
                    DfaState {
                        transitions: &[
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                            None,
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 18usize }),
                            Some(DfaTransition { to: 21usize }),
                        ],
                        accept_data: Some(AcceptData {
                            token_type: 13usize,
                            priority: 9usize,
                            lookahead: Lookahead::None,
                        }),
                    },
                    DfaState {
                        transitions: &[
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                            None,
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                            Some(DfaTransition { to: 21usize }),
                        ],
                        accept_data: Some(AcceptData {
                            token_type: 13usize,
                            priority: 9usize,
                            lookahead: Lookahead::None,
                        }),
                    },
                    DfaState {
                        transitions: &[
                            None, None, None, None, None, None, None, None, None, None, None, None,
                            None, None, None, None, None, None, None,
                        ],
                        accept_data: Some(AcceptData {
                            token_type: 14usize,
                            priority: 10usize,
                            lookahead: Lookahead::None,
                        }),
                    },
                    DfaState {
                        transitions: &[
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            Some(DfaTransition { to: 1usize }),
                            Some(DfaTransition { to: 7usize }),
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                        ],
                        accept_data: Some(AcceptData {
                            token_type: 14usize,
                            priority: 10usize,
                            lookahead: Lookahead::None,
                        }),
                    },
                ],
            },
        },
        ScannerMode {
            name: "STRING",
            transitions: &[Transition::SetMode(8usize, 0usize)],
            dfa: Dfa {
                states: &[
                    DfaState {
                        transitions: &[
                            Some(DfaTransition { to: 5usize }),
                            Some(DfaTransition { to: 5usize }),
                            Some(DfaTransition { to: 5usize }),
                            Some(DfaTransition { to: 5usize }),
                            Some(DfaTransition { to: 5usize }),
                            Some(DfaTransition { to: 6usize }),
                            Some(DfaTransition { to: 5usize }),
                            Some(DfaTransition { to: 5usize }),
                            Some(DfaTransition { to: 5usize }),
                            Some(DfaTransition { to: 5usize }),
                            Some(DfaTransition { to: 5usize }),
                            Some(DfaTransition { to: 5usize }),
                            Some(DfaTransition { to: 7usize }),
                            Some(DfaTransition { to: 5usize }),
                            Some(DfaTransition { to: 5usize }),
                            Some(DfaTransition { to: 5usize }),
                            Some(DfaTransition { to: 5usize }),
                            Some(DfaTransition { to: 5usize }),
                            Some(DfaTransition { to: 5usize }),
                        ],
                        accept_data: None,
                    },
                    DfaState {
                        transitions: &[
                            None,
                            Some(DfaTransition { to: 1usize }),
                            Some(DfaTransition { to: 4usize }),
                            Some(DfaTransition { to: 2usize }),
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                        ],
                        accept_data: None,
                    },
                    DfaState {
                        transitions: &[
                            None,
                            None,
                            Some(DfaTransition { to: 4usize }),
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                        ],
                        accept_data: None,
                    },
                    DfaState {
                        transitions: &[
                            None, None, None, None, None, None, None, None, None, None, None, None,
                            None, None, None, None, None, None, None,
                        ],
                        accept_data: Some(AcceptData {
                            token_type: 5usize,
                            priority: 0usize,
                            lookahead: Lookahead::None,
                        }),
                    },
                    DfaState {
                        transitions: &[
                            None, None, None, None, None, None, None, None, None, None, None, None,
                            None, None, None, None, None, None, None,
                        ],
                        accept_data: Some(AcceptData {
                            token_type: 6usize,
                            priority: 1usize,
                            lookahead: Lookahead::None,
                        }),
                    },
                    DfaState {
                        transitions: &[
                            Some(DfaTransition { to: 5usize }),
                            Some(DfaTransition { to: 5usize }),
                            Some(DfaTransition { to: 5usize }),
                            Some(DfaTransition { to: 5usize }),
                            Some(DfaTransition { to: 5usize }),
                            None,
                            Some(DfaTransition { to: 5usize }),
                            Some(DfaTransition { to: 5usize }),
                            Some(DfaTransition { to: 5usize }),
                            Some(DfaTransition { to: 5usize }),
                            Some(DfaTransition { to: 5usize }),
                            Some(DfaTransition { to: 5usize }),
                            None,
                            Some(DfaTransition { to: 5usize }),
                            Some(DfaTransition { to: 5usize }),
                            Some(DfaTransition { to: 5usize }),
                            Some(DfaTransition { to: 5usize }),
                            Some(DfaTransition { to: 5usize }),
                            Some(DfaTransition { to: 5usize }),
                        ],
                        accept_data: Some(AcceptData {
                            token_type: 7usize,
                            priority: 2usize,
                            lookahead: Lookahead::None,
                        }),
                    },
                    DfaState {
                        transitions: &[
                            None, None, None, None, None, None, None, None, None, None, None, None,
                            None, None, None, None, None, None, None,
                        ],
                        accept_data: Some(AcceptData {
                            token_type: 8usize,
                            priority: 3usize,
                            lookahead: Lookahead::None,
                        }),
                    },
                    DfaState {
                        transitions: &[
                            None,
                            Some(DfaTransition { to: 1usize }),
                            Some(DfaTransition { to: 4usize }),
                            Some(DfaTransition { to: 2usize }),
                            None,
                            Some(DfaTransition { to: 3usize }),
                            None,
                            None,
                            None,
                            None,
                            None,
                            None,
                            Some(DfaTransition { to: 3usize }),
                            Some(DfaTransition { to: 3usize }),
                            None,
                            None,
                            None,
                            None,
                            None,
                        ],
                        accept_data: Some(AcceptData {
                            token_type: 14usize,
                            priority: 4usize,
                            lookahead: Lookahead::None,
                        }),
                    },
                ],
            },
        },
    ];
    #[doc = r" The scanner type generated for this grammar."]
    pub struct TestScanner {
        #[doc = r" The member that handles the actual scanning logic."]
        pub scanner_impl: std::rc::Rc<std::cell::RefCell<ScannerImpl>>,
    }
    impl TestScanner {
        #[doc = r" Creates a new instance of the scanner."]
        pub fn new() -> Self {
            TestScanner {
                scanner_impl: std::rc::Rc::new(std::cell::RefCell::new(ScannerImpl::new(MODES))),
            }
        }
        #[doc = r" Returns the disjunct character classes of the given character."]
        #[doc = r" Used for matching characters in the scanner."]
        #[allow(clippy::manual_is_ascii_check, dead_code)]
        pub(crate) fn match_function(c: char) -> Option<usize> {
            use std::cmp::Ordering;
            static INTERVALS: &[(std::ops::RangeInclusive<char>, usize)] = &[
                ('\0'..='\u{8}', 0usize),
                ('\t'..='\t', 1usize),
                ('\n'..='\n', 2usize),
                ('\u{b}'..='\u{c}', 1usize),
                ('\r'..='\r', 3usize),
                ('\u{e}'..='\u{1f}', 0usize),
                (' '..=' ', 1usize),
                ('!'..='!', 4usize),
                ('"'..='"', 5usize),
                ('#'..=')', 0usize),
                ('*'..='*', 6usize),
                ('+'..='.', 0usize),
                ('/'..='/', 7usize),
                ('0'..='9', 8usize),
                (':'..='@', 0usize),
                ('A'..='G', 9usize),
                ('H'..='H', 10usize),
                ('I'..='V', 9usize),
                ('W'..='W', 11usize),
                ('X'..='Z', 9usize),
                ('['..='[', 0usize),
                ('\\'..='\\', 12usize),
                (']'..='^', 0usize),
                ('_'..='_', 9usize),
                ('`'..='`', 0usize),
                ('a'..='a', 9usize),
                ('b'..='b', 13usize),
                ('c'..='c', 9usize),
                ('d'..='d', 14usize),
                ('e'..='e', 15usize),
                ('f'..='f', 13usize),
                ('g'..='k', 9usize),
                ('l'..='l', 16usize),
                ('m'..='m', 9usize),
                ('n'..='n', 13usize),
                ('o'..='o', 17usize),
                ('p'..='q', 9usize),
                ('r'..='r', 18usize),
                ('s'..='s', 9usize),
                ('t'..='t', 13usize),
                ('u'..='z', 9usize),
                ('{'..='\u{84}', 0usize),
                ('\u{85}'..='\u{85}', 1usize),
                ('\u{86}'..='\u{9f}', 0usize),
                ('\u{a0}'..='\u{a0}', 1usize),
                ('¡'..='©', 0usize),
                ('ª'..='ª', 8usize),
                ('«'..='´', 0usize),
                ('µ'..='µ', 8usize),
                (''..='¹', 0usize),
                ('º'..='º', 8usize),
                ('»'..='¿', 0usize),
                ('À'..='Ö', 8usize),
                ('×'..='×', 0usize),
                ('Ø'..='ö', 8usize),
                ('÷'..='÷', 0usize),
                ('ø'..='ˁ', 8usize),
                ('˂'..='˅', 0usize),
                ('ˆ'..='ˑ', 8usize),
                ('˒'..='˟', 0usize),
                ('ˠ'..='ˤ', 8usize),
                ('˥'..='˫', 0usize),
                ('ˬ'..='ˬ', 8usize),
                ('˭'..='˭', 0usize),
                ('ˮ'..='ˮ', 8usize),
                ('˯'..='˿', 0usize),
                ('\u{300}'..='ʹ', 8usize),
                ('͵'..='͵', 0usize),
                ('Ͷ'..='ͷ', 8usize),
                ('\u{378}'..='\u{379}', 0usize),
                ('ͺ'..='ͽ', 8usize),
                (';'..=';', 0usize),
                ('Ϳ'..='Ϳ', 8usize),
                ('\u{380}'..='΅', 0usize),
                ('Ά'..='Ά', 8usize),
                ('·'..='·', 0usize),
                ('Έ'..='Ί', 8usize),
                ('\u{38b}'..='\u{38b}', 0usize),
                ('Ό'..='Ό', 8usize),
                ('\u{38d}'..='\u{38d}', 0usize),
                ('Ύ'..='Ρ', 8usize),
                ('\u{3a2}'..='\u{3a2}', 0usize),
                ('Σ'..='ϵ', 8usize),
                ('϶'..='϶', 0usize),
                ('Ϸ'..='ҁ', 8usize),
                ('҂'..='҂', 0usize),
                ('\u{483}'..='ԯ', 8usize),
                ('\u{530}'..='\u{530}', 0usize),
                ('Ա'..='Ֆ', 8usize),
                ('\u{557}'..='\u{558}', 0usize),
                ('ՙ'..='ՙ', 8usize),
                ('՚'..='՟', 0usize),
                ('ՠ'..='ֈ', 8usize),
                ('։'..='\u{590}', 0usize),
                ('\u{591}'..='\u{5bd}', 8usize),
                ('־'..='־', 0usize),
                ('\u{5bf}'..='\u{5bf}', 8usize),
                ('׀'..='׀', 0usize),
                ('\u{5c1}'..='\u{5c2}', 8usize),
                ('׃'..='׃', 0usize),
                ('\u{5c4}'..='\u{5c5}', 8usize),
                ('׆'..='׆', 0usize),
                ('\u{5c7}'..='\u{5c7}', 8usize),
                ('\u{5c8}'..='\u{5cf}', 0usize),
                ('א'..='ת', 8usize),
                ('\u{5eb}'..='\u{5ee}', 0usize),
                ('ׯ'..='ײ', 8usize),
                ('׳'..='؏', 0usize),
                ('\u{610}'..='\u{61a}', 8usize),
                ('؛'..='؟', 0usize),
                ('ؠ'..='٩', 8usize),
                ('٪'..='٭', 0usize),
                ('ٮ'..='ۓ', 8usize),
                ('۔'..='۔', 0usize),
                ('ە'..='\u{6dc}', 8usize),
                ('\u{6dd}'..='۞', 0usize),
                ('\u{6df}'..='\u{6e8}', 8usize),
                ('۩'..='۩', 0usize),
                ('\u{6ea}'..='ۼ', 8usize),
                ('۽'..='۾', 0usize),
                ('ۿ'..='ۿ', 8usize),
                ('܀'..='\u{70f}', 0usize),
                ('ܐ'..='\u{74a}', 8usize),
                ('\u{74b}'..='\u{74c}', 0usize),
                ('ݍ'..='ޱ', 8usize),
                ('\u{7b2}'..='\u{7bf}', 0usize),
                ('߀'..='ߵ', 8usize),
                ('߶'..='߹', 0usize),
                ('ߺ'..='ߺ', 8usize),
                ('\u{7fb}'..='\u{7fc}', 0usize),
                ('\u{7fd}'..='\u{7fd}', 8usize),
                ('߾'..='߿', 0usize),
                (''..='\u{82d}', 8usize),
                ('\u{82e}'..='\u{83f}', 0usize),
                (''..='\u{85b}', 8usize),
                ('\u{85c}'..='\u{85f}', 0usize),
                (''..='', 8usize),
                ('\u{86b}'..='\u{86f}', 0usize),
                (''..='', 8usize),
                (''..='', 0usize),
                (''..='', 8usize),
                ('\u{88f}'..='\u{896}', 0usize),
                ('\u{897}'..='\u{8e1}', 8usize),
                ('\u{8e2}'..='\u{8e2}', 0usize),
                ('\u{8e3}'..='\u{963}', 8usize),
                (''..='', 0usize),
                (''..='', 8usize),
                (''..='', 0usize),
                (''..='', 8usize),
                ('\u{984}'..='\u{984}', 0usize),
                (''..='', 8usize),
                ('\u{98d}'..='\u{98e}', 0usize),
                (''..='', 8usize),
                ('\u{991}'..='\u{992}', 0usize),
                (''..='', 8usize),
                ('\u{9a9}'..='\u{9a9}', 0usize),
                (''..='', 8usize),
                ('\u{9b1}'..='\u{9b1}', 0usize),
                (''..='', 8usize),
                ('\u{9b3}'..='\u{9b5}', 0usize),
                (''..='', 8usize),
                ('\u{9ba}'..='\u{9bb}', 0usize),
                ('\u{9bc}'..='\u{9c4}', 8usize),
                ('\u{9c5}'..='\u{9c6}', 0usize),
                (''..='', 8usize),
                ('\u{9c9}'..='\u{9ca}', 0usize),
                (''..='', 8usize),
                ('\u{9cf}'..='\u{9d6}', 0usize),
                ('\u{9d7}'..='\u{9d7}', 8usize),
                ('\u{9d8}'..='\u{9db}', 0usize),
                (''..='', 8usize),
                ('\u{9de}'..='\u{9de}', 0usize),
                (''..='\u{9e3}', 8usize),
                ('\u{9e4}'..='\u{9e5}', 0usize),
                (''..='', 8usize),
                (''..='', 0usize),
                (''..='', 8usize),
                (''..='', 0usize),
                ('\u{9fe}'..='\u{9fe}', 8usize),
                ('\u{9ff}'..='\u{a00}', 0usize),
                ('\u{a01}'..='', 8usize),
                ('\u{a04}'..='\u{a04}', 0usize),
                (''..='', 8usize),
                ('\u{a0b}'..='\u{a0e}', 0usize),
                (''..='', 8usize),
                ('\u{a11}'..='\u{a12}', 0usize),
                (''..='', 8usize),
                ('\u{a29}'..='\u{a29}', 0usize),
                (''..='', 8usize),
                ('\u{a31}'..='\u{a31}', 0usize),
                (''..='', 8usize),
                ('\u{a34}'..='\u{a34}', 0usize),
                (''..='', 8usize),
                ('\u{a37}'..='\u{a37}', 0usize),
                (''..='', 8usize),
                ('\u{a3a}'..='\u{a3b}', 0usize),
                ('\u{a3c}'..='\u{a3c}', 8usize),
                ('\u{a3d}'..='\u{a3d}', 0usize),
                (''..='\u{a42}', 8usize),
                ('\u{a43}'..='\u{a46}', 0usize),
                ('\u{a47}'..='\u{a48}', 8usize),
                ('\u{a49}'..='\u{a4a}', 0usize),
                ('\u{a4b}'..='\u{a4d}', 8usize),
                ('\u{a4e}'..='\u{a50}', 0usize),
                ('\u{a51}'..='\u{a51}', 8usize),
                ('\u{a52}'..='\u{a58}', 0usize),
                (''..='', 8usize),
                ('\u{a5d}'..='\u{a5d}', 0usize),
                (''..='', 8usize),
                ('\u{a5f}'..='\u{a65}', 0usize),
                (''..='\u{a75}', 8usize),
                (''..='\u{a80}', 0usize),
                ('\u{a81}'..='', 8usize),
                ('\u{a84}'..='\u{a84}', 0usize),
                (''..='', 8usize),
                ('\u{a8e}'..='\u{a8e}', 0usize),
                (''..='', 8usize),
                ('\u{a92}'..='\u{a92}', 0usize),
                (''..='', 8usize),
                ('\u{aa9}'..='\u{aa9}', 0usize),
                (''..='', 8usize),
                ('\u{ab1}'..='\u{ab1}', 0usize),
                (''..='', 8usize),
                ('\u{ab4}'..='\u{ab4}', 0usize),
                (''..='', 8usize),
                ('\u{aba}'..='\u{abb}', 0usize),
                ('\u{abc}'..='\u{ac5}', 8usize),
                ('\u{ac6}'..='\u{ac6}', 0usize),
                ('\u{ac7}'..='', 8usize),
                ('\u{aca}'..='\u{aca}', 0usize),
                (''..='\u{acd}', 8usize),
                ('\u{ace}'..='\u{acf}', 0usize),
                (''..='', 8usize),
                ('\u{ad1}'..='\u{adf}', 0usize),
                (''..='\u{ae3}', 8usize),
                ('\u{ae4}'..='\u{ae5}', 0usize),
                (''..='', 8usize),
                (''..='\u{af8}', 0usize),
                (''..='\u{aff}', 8usize),
                ('\u{b00}'..='\u{b00}', 0usize),
                ('\u{b01}'..='', 8usize),
                ('\u{b04}'..='\u{b04}', 0usize),
                (''..='', 8usize),
                ('\u{b0d}'..='\u{b0e}', 0usize),
                (''..='', 8usize),
                ('\u{b11}'..='\u{b12}', 0usize),
                (''..='', 8usize),
                ('\u{b29}'..='\u{b29}', 0usize),
                (''..='', 8usize),
                ('\u{b31}'..='\u{b31}', 0usize),
                (''..='', 8usize),
                ('\u{b34}'..='\u{b34}', 0usize),
                (''..='', 8usize),
                ('\u{b3a}'..='\u{b3b}', 0usize),
                ('\u{b3c}'..='\u{b44}', 8usize),
                ('\u{b45}'..='\u{b46}', 0usize),
                (''..='', 8usize),
                ('\u{b49}'..='\u{b4a}', 0usize),
                (''..='\u{b4d}', 8usize),
                ('\u{b4e}'..='\u{b54}', 0usize),
                ('\u{b55}'..='\u{b57}', 8usize),
                ('\u{b58}'..='\u{b5b}', 0usize),
                (''..='', 8usize),
                ('\u{b5e}'..='\u{b5e}', 0usize),
                (''..='\u{b63}', 8usize),
                ('\u{b64}'..='\u{b65}', 0usize),
                (''..='', 8usize),
                (''..='', 0usize),
                (''..='', 8usize),
                (''..='\u{b81}', 0usize),
                ('\u{b82}'..='', 8usize),
                ('\u{b84}'..='\u{b84}', 0usize),
                (''..='', 8usize),
                ('\u{b8b}'..='\u{b8d}', 0usize),
                (''..='', 8usize),
                ('\u{b91}'..='\u{b91}', 0usize),
                (''..='', 8usize),
                ('\u{b96}'..='\u{b98}', 0usize),
                (''..='', 8usize),
                ('\u{b9b}'..='\u{b9b}', 0usize),
                (''..='', 8usize),
                ('\u{b9d}'..='\u{b9d}', 0usize),
                (''..='', 8usize),
                ('\u{ba0}'..='\u{ba2}', 0usize),
                (''..='', 8usize),
                ('\u{ba5}'..='\u{ba7}', 0usize),
                (''..='', 8usize),
                ('\u{bab}'..='\u{bad}', 0usize),
                (''..='', 8usize),
                ('\u{bba}'..='\u{bbd}', 0usize),
                ('\u{bbe}'..='', 8usize),
                ('\u{bc3}'..='\u{bc5}', 0usize),
                (''..='', 8usize),
                ('\u{bc9}'..='\u{bc9}', 0usize),
                (''..='\u{bcd}', 8usize),
                ('\u{bce}'..='\u{bcf}', 0usize),
                (''..='', 8usize),
                ('\u{bd1}'..='\u{bd6}', 0usize),
                ('\u{bd7}'..='\u{bd7}', 8usize),
                ('\u{bd8}'..='\u{be5}', 0usize),
                (''..='', 8usize),
                (''..='\u{bff}', 0usize),
                ('\u{c00}'..='', 8usize),
                ('\u{c0d}'..='\u{c0d}', 0usize),
                (''..='', 8usize),
                ('\u{c11}'..='\u{c11}', 0usize),
                (''..='', 8usize),
                ('\u{c29}'..='\u{c29}', 0usize),
                (''..='', 8usize),
                ('\u{c3a}'..='\u{c3b}', 0usize),
                ('\u{c3c}'..='', 8usize),
                ('\u{c45}'..='\u{c45}', 0usize),
                ('\u{c46}'..='\u{c48}', 8usize),
                ('\u{c49}'..='\u{c49}', 0usize),
                ('\u{c4a}'..='\u{c4d}', 8usize),
                ('\u{c4e}'..='\u{c54}', 0usize),
                ('\u{c55}'..='\u{c56}', 8usize),
                ('\u{c57}'..='\u{c57}', 0usize),
                (''..='', 8usize),
                ('\u{c5b}'..='\u{c5c}', 0usize),
                (''..='', 8usize),
                ('\u{c5e}'..='\u{c5f}', 0usize),
                (''..='\u{c63}', 8usize),
                ('\u{c64}'..='\u{c65}', 0usize),
                (''..='', 8usize),
                ('\u{c70}'..='౿', 0usize),
                (''..='', 8usize),
                (''..='', 0usize),
                (''..='', 8usize),
                ('\u{c8d}'..='\u{c8d}', 0usize),
                (''..='', 8usize),
                ('\u{c91}'..='\u{c91}', 0usize),
                (''..='', 8usize),
                ('\u{ca9}'..='\u{ca9}', 0usize),
                (''..='', 8usize),
                ('\u{cb4}'..='\u{cb4}', 0usize),
                (''..='', 8usize),
                ('\u{cba}'..='\u{cbb}', 0usize),
                ('\u{cbc}'..='', 8usize),
                ('\u{cc5}'..='\u{cc5}', 0usize),
                ('\u{cc6}'..='\u{cc8}', 8usize),
                ('\u{cc9}'..='\u{cc9}', 0usize),
                ('\u{cca}'..='\u{ccd}', 8usize),
                ('\u{cce}'..='\u{cd4}', 0usize),
                ('\u{cd5}'..='\u{cd6}', 8usize),
                ('\u{cd7}'..='\u{cdc}', 0usize),
                (''..='', 8usize),
                ('\u{cdf}'..='\u{cdf}', 0usize),
                (''..='\u{ce3}', 8usize),
                ('\u{ce4}'..='\u{ce5}', 0usize),
                (''..='', 8usize),
                ('\u{cf0}'..='\u{cf0}', 0usize),
                (''..='', 8usize),
                ('\u{cf4}'..='\u{cff}', 0usize),
                ('\u{d00}'..='', 8usize),
                ('\u{d0d}'..='\u{d0d}', 0usize),
                (''..='', 8usize),
                ('\u{d11}'..='\u{d11}', 0usize),
                (''..='\u{d44}', 8usize),
                ('\u{d45}'..='\u{d45}', 0usize),
                (''..='', 8usize),
                ('\u{d49}'..='\u{d49}', 0usize),
                (''..='', 8usize),
                (''..='\u{d53}', 0usize),
                (''..='\u{d57}', 8usize),
                (''..='', 0usize),
                (''..='\u{d63}', 8usize),
                ('\u{d64}'..='\u{d65}', 0usize),
                (''..='', 8usize),
                (''..='', 0usize),
                (''..='ൿ', 8usize),
                ('\u{d80}'..='\u{d80}', 0usize),
                ('\u{d81}'..='', 8usize),
                ('\u{d84}'..='\u{d84}', 0usize),
                (''..='', 8usize),
                ('\u{d97}'..='\u{d99}', 0usize),
                (''..='', 8usize),
                ('\u{db2}'..='\u{db2}', 0usize),
                (''..='', 8usize),
                ('\u{dbc}'..='\u{dbc}', 0usize),
                (''..='', 8usize),
                ('\u{dbe}'..='\u{dbf}', 0usize),
                (''..='', 8usize),
                ('\u{dc7}'..='\u{dc9}', 0usize),
                ('\u{dca}'..='\u{dca}', 8usize),
                ('\u{dcb}'..='\u{dce}', 0usize),
                ('\u{dcf}'..='\u{dd4}', 8usize),
                ('\u{dd5}'..='\u{dd5}', 0usize),
                ('\u{dd6}'..='\u{dd6}', 8usize),
                ('\u{dd7}'..='\u{dd7}', 0usize),
                (''..='\u{ddf}', 8usize),
                ('\u{de0}'..='\u{de5}', 0usize),
                (''..='', 8usize),
                ('\u{df0}'..='\u{df1}', 0usize),
                (''..='', 8usize),
                (''..='\u{e00}', 0usize),
                (''..='\u{e3a}', 8usize),
                ('\u{e3b}'..='฿', 0usize),
                (''..='\u{e4e}', 8usize),
                (''..='', 0usize),
                (''..='', 8usize),
                (''..='\u{e80}', 0usize),
                (''..='', 8usize),
                ('\u{e83}'..='\u{e83}', 0usize),
                (''..='', 8usize),
                ('\u{e85}'..='\u{e85}', 0usize),
                (''..='', 8usize),
                ('\u{e8b}'..='\u{e8b}', 0usize),
                (''..='', 8usize),
                ('\u{ea4}'..='\u{ea4}', 0usize),
                (''..='', 8usize),
                ('\u{ea6}'..='\u{ea6}', 0usize),
                (''..='', 8usize),
                ('\u{ebe}'..='\u{ebf}', 0usize),
                (''..='', 8usize),
                ('\u{ec5}'..='\u{ec5}', 0usize),
                (''..='', 8usize),
                ('\u{ec7}'..='\u{ec7}', 0usize),
                ('\u{ec8}'..='\u{ece}', 8usize),
                ('\u{ecf}'..='\u{ecf}', 0usize),
                (''..='', 8usize),
                ('\u{eda}'..='\u{edb}', 0usize),
                (''..='', 8usize),
                ('\u{ee0}'..='\u{eff}', 0usize),
                (''..='', 8usize),
                (''..='', 0usize),
                ('\u{f18}'..='\u{f19}', 8usize),
                (''..='', 0usize),
                (''..='', 8usize),
                (''..='', 0usize),
                ('\u{f35}'..='\u{f35}', 8usize),
                (''..='', 0usize),
                ('\u{f37}'..='\u{f37}', 8usize),
                (''..='', 0usize),
                ('\u{f39}'..='\u{f39}', 8usize),
                (''..='', 0usize),
                (''..='', 8usize),
                ('\u{f48}'..='\u{f48}', 0usize),
                (''..='', 8usize),
                ('\u{f6d}'..='\u{f70}', 0usize),
                ('\u{f71}'..='\u{f84}', 8usize),
                (''..='', 0usize),
                ('\u{f86}'..='\u{f97}', 8usize),
                ('\u{f98}'..='\u{f98}', 0usize),
                ('\u{f99}'..='\u{fbc}', 8usize),
                ('\u{fbd}'..='', 0usize),
                ('\u{fc6}'..='\u{fc6}', 8usize),
                (''..='\u{fff}', 0usize),
                ('က'..='', 8usize),
                (''..='', 0usize),
                (''..='\u{109d}', 8usize),
                (''..='', 0usize),
                (''..='', 8usize),
                ('\u{10c6}'..='\u{10c6}', 0usize),
                (''..='', 8usize),
                ('\u{10c8}'..='\u{10cc}', 0usize),
                (''..='', 8usize),
                ('\u{10ce}'..='\u{10cf}', 0usize),
                (''..='', 8usize),
                (''..='', 0usize),
                (''..='', 8usize),
                ('\u{1249}'..='\u{1249}', 0usize),
                (''..='', 8usize),
                ('\u{124e}'..='\u{124f}', 0usize),
                (''..='', 8usize),
                ('\u{1257}'..='\u{1257}', 0usize),
                (''..='', 8usize),
                ('\u{1259}'..='\u{1259}', 0usize),
                (''..='', 8usize),
                ('\u{125e}'..='\u{125f}', 0usize),
                (''..='', 8usize),
                ('\u{1289}'..='\u{1289}', 0usize),
                (''..='', 8usize),
                ('\u{128e}'..='\u{128f}', 0usize),
                (''..='', 8usize),
                ('\u{12b1}'..='\u{12b1}', 0usize),
                (''..='', 8usize),
                ('\u{12b6}'..='\u{12b7}', 0usize),
                (''..='', 8usize),
                ('\u{12bf}'..='\u{12bf}', 0usize),
                (''..='', 8usize),
                ('\u{12c1}'..='\u{12c1}', 0usize),
                (''..='', 8usize),
                ('\u{12c6}'..='\u{12c7}', 0usize),
                (''..='', 8usize),
                ('\u{12d7}'..='\u{12d7}', 0usize),
                (''..='', 8usize),
                ('\u{1311}'..='\u{1311}', 0usize),
                (''..='', 8usize),
                ('\u{1316}'..='\u{1317}', 0usize),
                (''..='', 8usize),
                ('\u{135b}'..='\u{135c}', 0usize),
                ('\u{135d}'..='\u{135f}', 8usize),
                (''..='\u{137f}', 0usize),
                (''..='', 8usize),
                (''..='\u{139f}', 0usize),
                (''..='', 8usize),
                ('\u{13f6}'..='\u{13f7}', 0usize),
                (''..='', 8usize),
                ('\u{13fe}'..='', 0usize),
                (''..='', 8usize),
                (''..='', 0usize),
                (''..='', 8usize),
                ('\u{1680}'..='\u{1680}', 1usize),
                (''..='', 8usize),
                (''..='\u{169f}', 0usize),
                (''..='', 8usize),
                (''..='', 0usize),
                (''..='', 8usize),
                ('\u{16f9}'..='\u{16ff}', 0usize),
                (''..='\u{1715}', 8usize),
                ('\u{1716}'..='\u{171e}', 0usize),
                (''..='\u{1734}', 8usize),
                (''..='\u{173f}', 0usize),
                (''..='\u{1753}', 8usize),
                ('\u{1754}'..='\u{175f}', 0usize),
                (''..='', 8usize),
                ('\u{176d}'..='\u{176d}', 0usize),
                (''..='', 8usize),
                ('\u{1771}'..='\u{1771}', 0usize),
                ('\u{1772}'..='\u{1773}', 8usize),
                ('\u{1774}'..='\u{177f}', 0usize),
                (''..='\u{17d3}', 8usize),
                (''..='', 0usize),
                (''..='', 8usize),
                (''..='', 0usize),
                (''..='\u{17dd}', 8usize),
                ('\u{17de}'..='\u{17df}', 0usize),
                (''..='', 8usize),
                ('\u{17ea}'..='', 0usize),
                ('\u{180b}'..='\u{180d}', 8usize),
                ('\u{180e}'..='\u{180e}', 0usize),
                ('\u{180f}'..='', 8usize),
                ('\u{181a}'..='\u{181f}', 0usize),
                (''..='', 8usize),
                ('\u{1879}'..='\u{187f}', 0usize),
                (''..='', 8usize),
                ('\u{18ab}'..='\u{18af}', 0usize),
                (''..='', 8usize),
                ('\u{18f6}'..='\u{18ff}', 0usize),
                (''..='', 8usize),
                ('\u{191f}'..='\u{191f}', 0usize),
                ('\u{1920}'..='', 8usize),
                ('\u{192c}'..='\u{192f}', 0usize),
                (''..='\u{193b}', 8usize),
                ('\u{193c}'..='', 0usize),
                (''..='', 8usize),
                ('\u{196e}'..='\u{196f}', 0usize),
                (''..='', 8usize),
                ('\u{1975}'..='\u{197f}', 0usize),
                (''..='', 8usize),
                ('\u{19ac}'..='\u{19af}', 0usize),
                (''..='', 8usize),
                ('\u{19ca}'..='\u{19cf}', 0usize),
                (''..='', 8usize),
                (''..='᧿', 0usize),
                (''..='\u{1a1b}', 8usize),
                ('\u{1a1c}'..='', 0usize),
                (''..='\u{1a5e}', 8usize),
                ('\u{1a5f}'..='\u{1a5f}', 0usize),
                ('\u{1a60}'..='\u{1a7c}', 8usize),
                ('\u{1a7d}'..='\u{1a7e}', 0usize),
                ('\u{1a7f}'..='', 8usize),
                ('\u{1a8a}'..='\u{1a8f}', 0usize),
                (''..='', 8usize),
                ('\u{1a9a}'..='', 0usize),
                (''..='', 8usize),
                (''..='\u{1aaf}', 0usize),
                ('\u{1ab0}'..='\u{1ace}', 8usize),
                ('\u{1acf}'..='\u{1aff}', 0usize),
                ('\u{1b00}'..='', 8usize),
                ('\u{1b4d}'..='', 0usize),
                (''..='', 8usize),
                (''..='', 0usize),
                ('\u{1b6b}'..='\u{1b73}', 8usize),
                (''..='᭿', 0usize),
                ('\u{1b80}'..='\u{1bf3}', 8usize),
                ('\u{1bf4}'..='᯿', 0usize),
                (''..='\u{1c37}', 8usize),
                ('\u{1c38}'..='᰿', 0usize),
                (''..='', 8usize),
                ('\u{1c4a}'..='\u{1c4c}', 0usize),
                (''..='', 8usize),
                (''..='᱿', 0usize),
                (''..='', 8usize),
                ('\u{1c8b}'..='\u{1c8f}', 0usize),
                (''..='', 8usize),
                ('\u{1cbb}'..='\u{1cbc}', 0usize),
                (''..='Ჿ', 8usize),
                (''..='\u{1ccf}', 0usize),
                ('\u{1cd0}'..='\u{1cd2}', 8usize),
                (''..='', 0usize),
                ('\u{1cd4}'..='', 8usize),
                ('\u{1cfb}'..='\u{1cff}', 0usize),
                (''..='', 8usize),
                ('\u{1f16}'..='\u{1f17}', 0usize),
                (''..='', 8usize),
                ('\u{1f1e}'..='\u{1f1f}', 0usize),
                (''..='', 8usize),
                ('\u{1f46}'..='\u{1f47}', 0usize),
                (''..='', 8usize),
                ('\u{1f4e}'..='\u{1f4f}', 0usize),
                (''..='', 8usize),
                ('\u{1f58}'..='\u{1f58}', 0usize),
                (''..='', 8usize),
                ('\u{1f5a}'..='\u{1f5a}', 0usize),
                (''..='', 8usize),
                ('\u{1f5c}'..='\u{1f5c}', 0usize),
                (''..='', 8usize),
                ('\u{1f5e}'..='\u{1f5e}', 0usize),
                (''..='', 8usize),
                ('\u{1f7e}'..='\u{1f7f}', 0usize),
                (''..='', 8usize),
                ('\u{1fb5}'..='\u{1fb5}', 0usize),
                (''..='', 8usize),
                (''..='', 0usize),
                (''..='', 8usize),
                ('᾿'..='', 0usize),
                (''..='', 8usize),
                ('\u{1fc5}'..='\u{1fc5}', 0usize),
                (''..='', 8usize),
                (''..='', 0usize),
                (''..='', 8usize),
                ('\u{1fd4}'..='\u{1fd5}', 0usize),
                (''..='', 8usize),
                ('\u{1fdc}'..='', 0usize),
                (''..='', 8usize),
                (''..='\u{1ff1}', 0usize),
                (''..='', 8usize),
                ('\u{1ff5}'..='\u{1ff5}', 0usize),
                (''..='', 8usize),
                (''..='\u{1fff}', 0usize),
                ('\u{2000}'..='\u{200a}', 1usize),
                ('\u{200b}'..='\u{200b}', 0usize),
                ('\u{200c}'..='\u{200d}', 8usize),
                ('\u{200e}'..='', 0usize),
                ('\u{2028}'..='\u{2029}', 1usize),
                ('\u{202a}'..='\u{202e}', 0usize),
                ('\u{202f}'..='\u{202f}', 1usize),
                (''..='', 0usize),
                (''..='', 8usize),
                (''..='', 0usize),
                (''..='', 8usize),
                (''..='', 0usize),
                ('\u{205f}'..='\u{205f}', 1usize),
                ('\u{2060}'..='', 0usize),
                (''..='', 8usize),
                ('\u{2072}'..='', 0usize),
                (''..='', 8usize),
                (''..='\u{208f}', 0usize),
                (''..='', 8usize),
                ('\u{209d}'..='\u{20cf}', 0usize),
                ('\u{20d0}'..='\u{20f0}', 8usize),
                ('\u{20f1}'..='', 0usize),
                (''..='', 8usize),
                (''..='', 0usize),
                (''..='', 8usize),
                (''..='', 0usize),
                (''..='', 8usize),
                (''..='', 0usize),
                (''..='', 8usize),
                (''..='', 0usize),
                (''..='', 8usize),
                (''..='', 0usize),
                (''..='', 8usize),
                (''..='', 0usize),
                (''..='', 8usize),
                (''..='', 0usize),
                (''..='', 8usize),
                (''..='', 0usize),
                (''..='', 8usize),
                (''..='', 0usize),
                (''..='', 8usize),
                (''..='', 0usize),
                (''..='', 8usize),
                (''..='', 0usize),
                (''..='', 8usize),
                (''..='', 0usize),
                (''..='', 8usize),
                (''..='', 0usize),
                (''..='', 8usize),
                (''..='', 0usize),
                (''..='', 8usize),
                (''..='⯿', 0usize),
                (''..='', 8usize),
                (''..='', 0usize),
                (''..='', 8usize),
                ('\u{2cf4}'..='⳿', 0usize),
                (''..='', 8usize),
                ('\u{2d26}'..='\u{2d26}', 0usize),
                (''..='', 8usize),
                ('\u{2d28}'..='\u{2d2c}', 0usize),
                (''..='', 8usize),
                ('\u{2d2e}'..='\u{2d2f}', 0usize),
                (''..='', 8usize),
                ('\u{2d68}'..='\u{2d6e}', 0usize),
                (''..='', 8usize),
                (''..='\u{2d7e}', 0usize),
                ('\u{2d7f}'..='', 8usize),
                ('\u{2d97}'..='\u{2d9f}', 0usize),
                (''..='', 8usize),
                ('\u{2da7}'..='\u{2da7}', 0usize),
                (''..='', 8usize),
                ('\u{2daf}'..='\u{2daf}', 0usize),
                (''..='', 8usize),
                ('\u{2db7}'..='\u{2db7}', 0usize),
                (''..='', 8usize),
                ('\u{2dbf}'..='\u{2dbf}', 0usize),
                (''..='', 8usize),
                ('\u{2dc7}'..='\u{2dc7}', 0usize),
                (''..='', 8usize),
                ('\u{2dcf}'..='\u{2dcf}', 0usize),
                (''..='', 8usize),
                ('\u{2dd7}'..='\u{2dd7}', 0usize),
                (''..='', 8usize),
                ('\u{2ddf}'..='\u{2ddf}', 0usize),
                ('\u{2de0}'..='\u{2dff}', 8usize),
                (''..='', 0usize),
                (''..='', 8usize),
                (''..='⿿', 0usize),
                ('\u{3000}'..='\u{3000}', 1usize),
                (''..='', 0usize),
                (''..='', 8usize),
                (''..='', 0usize),
                (''..='\u{302f}', 8usize),
                (''..='', 0usize),
                (''..='', 8usize),
                (''..='', 0usize),
                (''..='', 8usize),
                (''..='\u{3040}', 0usize),
                (''..='', 8usize),
                ('\u{3097}'..='\u{3098}', 0usize),
                ('\u{3099}'..='\u{309a}', 8usize),
                (''..='', 0usize),
                (''..='', 8usize),
                (''..='', 0usize),
                (''..='', 8usize),
                (''..='', 0usize),
                (''..='', 8usize),
                ('\u{3100}'..='\u{3104}', 0usize),
                (''..='', 8usize),
                ('\u{3130}'..='\u{3130}', 0usize),
                (''..='', 8usize),
                ('\u{318f}'..='', 0usize),
                (''..='', 8usize),
                (''..='', 0usize),
                (''..='', 8usize),
                (''..='', 0usize),
                (''..='䶿', 8usize),
                (''..='䷿', 0usize),
                (''..='', 8usize),
                ('\u{a48d}'..='\u{a4cf}', 0usize),
                (''..='', 8usize),
                (''..='', 0usize),
                (''..='', 8usize),
                (''..='', 0usize),
                (''..='', 8usize),
                ('\u{a62c}'..='\u{a63f}', 0usize),
                (''..='\u{a672}', 8usize),
                (''..='', 0usize),
                ('\u{a674}'..='\u{a67d}', 8usize),
                (''..='', 0usize),
                (''..='\u{a6f1}', 8usize),
                (''..='', 0usize),
                (''..='', 8usize),
                (''..='', 0usize),
                (''..='', 8usize),
                (''..='', 0usize),
                (''..='', 8usize),
                ('\u{a7ce}'..='\u{a7cf}', 0usize),
                (''..='', 8usize),
                ('\u{a7d2}'..='\u{a7d2}', 0usize),
                (''..='', 8usize),
                ('\u{a7d4}'..='\u{a7d4}', 0usize),
                (''..='', 8usize),
                ('\u{a7dd}'..='\u{a7f1}', 0usize),
                (''..='', 8usize),
                (''..='', 0usize),
                ('\u{a82c}'..='\u{a82c}', 8usize),
                ('\u{a82d}'..='\u{a83f}', 0usize),
                (''..='', 8usize),
                (''..='\u{a87f}', 0usize),
                (''..='\u{a8c5}', 8usize),
                ('\u{a8c6}'..='', 0usize),
                (''..='', 8usize),
                ('\u{a8da}'..='\u{a8df}', 0usize),
                ('\u{a8e0}'..='', 8usize),
                (''..='', 0usize),
                (''..='', 8usize),
                (''..='', 0usize),
                (''..='\u{a92d}', 8usize),
                (''..='', 0usize),
                (''..='\u{a953}', 8usize),
                ('\u{a954}'..='', 0usize),
                (''..='', 8usize),
                ('\u{a97d}'..='\u{a97f}', 0usize),
                ('\u{a980}'..='\u{a9c0}', 8usize),
                (''..='\u{a9ce}', 0usize),
                (''..='', 8usize),
                ('\u{a9da}'..='', 0usize),
                (''..='', 8usize),
                ('\u{a9ff}'..='\u{a9ff}', 0usize),
                (''..='\u{aa36}', 8usize),
                ('\u{aa37}'..='\u{aa3f}', 0usize),
                (''..='', 8usize),
                ('\u{aa4e}'..='\u{aa4f}', 0usize),
                (''..='', 8usize),
                ('\u{aa5a}'..='', 0usize),
                (''..='', 8usize),
                (''..='', 0usize),
                (''..='', 8usize),
                ('\u{aac3}'..='\u{aada}', 0usize),
                (''..='', 8usize),
                (''..='', 0usize),
                (''..='', 8usize),
                (''..='', 0usize),
                (''..='\u{aaf6}', 8usize),
                ('\u{aaf7}'..='\u{ab00}', 0usize),
                (''..='', 8usize),
                ('\u{ab07}'..='\u{ab08}', 0usize),
                (''..='', 8usize),
                ('\u{ab0f}'..='\u{ab10}', 0usize),
                (''..='', 8usize),
                ('\u{ab17}'..='\u{ab1f}', 0usize),
                (''..='', 8usize),
                ('\u{ab27}'..='\u{ab27}', 0usize),
                (''..='', 8usize),
                ('\u{ab2f}'..='\u{ab2f}', 0usize),
                (''..='', 8usize),
                (''..='', 0usize),
                (''..='', 8usize),
                (''..='\u{ab6f}', 0usize),
                (''..='', 8usize),
                (''..='', 0usize),
                (''..='\u{abed}', 8usize),
                ('\u{abee}'..='\u{abef}', 0usize),
                (''..='', 8usize),
                ('\u{abfa}'..='\u{abff}', 0usize),
                (''..='', 8usize),
                ('\u{d7a4}'..='\u{d7af}', 0usize),
                (''..='', 8usize),
                ('\u{d7c7}'..='\u{d7ca}', 0usize),
                (''..='', 8usize),
                ('\u{d7fc}'..='\u{f8ff}', 0usize),
                (''..='', 8usize),
                ('\u{fa6e}'..='\u{fa6f}', 0usize),
                (''..='', 8usize),
                ('\u{fada}'..='\u{faff}', 0usize),
                (''..='', 8usize),
                ('\u{fb07}'..='\u{fb12}', 0usize),
                (''..='', 8usize),
                ('\u{fb18}'..='\u{fb1c}', 0usize),
                (''..='', 8usize),
                (''..='', 0usize),
                (''..='', 8usize),
                ('\u{fb37}'..='\u{fb37}', 0usize),
                (''..='', 8usize),
                ('\u{fb3d}'..='\u{fb3d}', 0usize),
                (''..='', 8usize),
                ('\u{fb3f}'..='\u{fb3f}', 0usize),
                (''..='', 8usize),
                ('\u{fb42}'..='\u{fb42}', 0usize),
                (''..='', 8usize),
                ('\u{fb45}'..='\u{fb45}', 0usize),
                (''..='', 8usize),
                (''..='\u{fbd2}', 0usize),
                (''..='', 8usize),
                (''..='', 0usize),
                (''..='', 8usize),
                ('\u{fd90}'..='\u{fd91}', 0usize),
                (''..='', 8usize),
                ('\u{fdc8}'..='\u{fdef}', 0usize),
                (''..='', 8usize),
                (''..='﷿', 0usize),
                ('\u{fe00}'..='\u{fe0f}', 8usize),
                (''..='\u{fe1f}', 0usize),
                ('\u{fe20}'..='\u{fe2f}', 8usize),
                (''..='', 0usize),
                (''..='', 8usize),
                (''..='', 0usize),
                (''..='', 8usize),
                (''..='\u{fe6f}', 0usize),
                (''..='', 8usize),
                ('\u{fe75}'..='\u{fe75}', 0usize),
                (''..='', 8usize),
                ('\u{fefd}'..='', 0usize),
                (''..='', 8usize),
                (''..='', 0usize),
                (''..='', 8usize),
                (''..='', 0usize),
                ('_'..='_', 8usize),
                (''..='', 0usize),
                (''..='', 8usize),
                (''..='', 0usize),
                (''..='', 8usize),
                ('\u{ffbf}'..='\u{ffc1}', 0usize),
                (''..='', 8usize),
                ('\u{ffc8}'..='\u{ffc9}', 0usize),
                (''..='', 8usize),
                ('\u{ffd0}'..='\u{ffd1}', 0usize),
                (''..='', 8usize),
                ('\u{ffd8}'..='\u{ffd9}', 0usize),
                (''..='', 8usize),
                ('\u{ffdd}'..='\u{ffff}', 0usize),
                ('𐀀'..='𐀋', 8usize),
                ('\u{1000c}'..='\u{1000c}', 0usize),
                ('𐀍'..='𐀦', 8usize),
                ('\u{10027}'..='\u{10027}', 0usize),
                ('𐀨'..='𐀺', 8usize),
                ('\u{1003b}'..='\u{1003b}', 0usize),
                ('𐀼'..='𐀽', 8usize),
                ('\u{1003e}'..='\u{1003e}', 0usize),
                ('𐀿'..='𐁍', 8usize),
                ('\u{1004e}'..='\u{1004f}', 0usize),
                ('𐁐'..='𐁝', 8usize),
                ('\u{1005e}'..='\u{1007f}', 0usize),
                ('𐂀'..='𐃺', 8usize),
                ('\u{100fb}'..='𐄿', 0usize),
                ('𐅀'..='𐅴', 8usize),
                ('𐅵'..='𐇼', 0usize),
                ('\u{101fd}'..='\u{101fd}', 8usize),
                ('\u{101fe}'..='\u{1027f}', 0usize),
                ('𐊀'..='𐊜', 8usize),
                ('\u{1029d}'..='\u{1029f}', 0usize),
                ('𐊠'..='𐋐', 8usize),
                ('\u{102d1}'..='\u{102df}', 0usize),
                ('\u{102e0}'..='\u{102e0}', 8usize),
                ('𐋡'..='\u{102ff}', 0usize),
                ('𐌀'..='𐌟', 8usize),
                ('𐌠'..='\u{1032c}', 0usize),
                ('𐌭'..='𐍊', 8usize),
                ('\u{1034b}'..='\u{1034f}', 0usize),
                ('𐍐'..='\u{1037a}', 8usize),
                ('\u{1037b}'..='\u{1037f}', 0usize),
                ('𐎀'..='𐎝', 8usize),
                ('\u{1039e}'..='𐎟', 0usize),
                ('𐎠'..='𐏃', 8usize),
                ('\u{103c4}'..='\u{103c7}', 0usize),
                ('𐏈'..='𐏏', 8usize),
                ('𐏐'..='𐏐', 0usize),
                ('𐏑'..='𐏕', 8usize),
                ('\u{103d6}'..='\u{103ff}', 0usize),
                ('𐐀'..='𐒝', 8usize),
                ('\u{1049e}'..='\u{1049f}', 0usize),
                ('𐒠'..='𐒩', 8usize),
                ('\u{104aa}'..='\u{104af}', 0usize),
                ('𐒰'..='𐓓', 8usize),
                ('\u{104d4}'..='\u{104d7}', 0usize),
                ('𐓘'..='𐓻', 8usize),
                ('\u{104fc}'..='\u{104ff}', 0usize),
                ('𐔀'..='𐔧', 8usize),
                ('\u{10528}'..='\u{1052f}', 0usize),
                ('𐔰'..='𐕣', 8usize),
                ('\u{10564}'..='𐕯', 0usize),
                ('𐕰'..='𐕺', 8usize),
                ('\u{1057b}'..='\u{1057b}', 0usize),
                ('𐕼'..='𐖊', 8usize),
                ('\u{1058b}'..='\u{1058b}', 0usize),
                ('𐖌'..='𐖒', 8usize),
                ('\u{10593}'..='\u{10593}', 0usize),
                ('𐖔'..='𐖕', 8usize),
                ('\u{10596}'..='\u{10596}', 0usize),
                ('𐖗'..='𐖡', 8usize),
                ('\u{105a2}'..='\u{105a2}', 0usize),
                ('𐖣'..='𐖱', 8usize),
                ('\u{105b2}'..='\u{105b2}', 0usize),
                ('𐖳'..='𐖹', 8usize),
                ('\u{105ba}'..='\u{105ba}', 0usize),
                ('𐖻'..='𐖼', 8usize),
                ('\u{105bd}'..='\u{105bf}', 0usize),
                ('𐗀'..='𐗳', 8usize),
                ('\u{105f4}'..='\u{105ff}', 0usize),
                ('𐘀'..='𐜶', 8usize),
                ('\u{10737}'..='\u{1073f}', 0usize),
                ('𐝀'..='𐝕', 8usize),
                ('\u{10756}'..='\u{1075f}', 0usize),
                ('𐝠'..='𐝧', 8usize),
                ('\u{10768}'..='\u{1077f}', 0usize),
                ('𐞀'..='𐞅', 8usize),
                ('\u{10786}'..='\u{10786}', 0usize),
                ('𐞇'..='𐞰', 8usize),
                ('\u{107b1}'..='\u{107b1}', 0usize),
                ('𐞲'..='𐞺', 8usize),
                ('\u{107bb}'..='\u{107ff}', 0usize),
                ('𐠀'..='𐠅', 8usize),
                ('\u{10806}'..='\u{10807}', 0usize),
                ('𐠈'..='𐠈', 8usize),
                ('\u{10809}'..='\u{10809}', 0usize),
                ('𐠊'..='𐠵', 8usize),
                ('\u{10836}'..='\u{10836}', 0usize),
                ('𐠷'..='𐠸', 8usize),
                ('\u{10839}'..='\u{1083b}', 0usize),
                ('𐠼'..='𐠼', 8usize),
                ('\u{1083d}'..='\u{1083e}', 0usize),
                ('𐠿'..='𐡕', 8usize),
                ('\u{10856}'..='𐡟', 0usize),
                ('𐡠'..='𐡶', 8usize),
                ('𐡷'..='𐡿', 0usize),
                ('𐢀'..='𐢞', 8usize),
                ('\u{1089f}'..='\u{108df}', 0usize),
                ('𐣠'..='𐣲', 8usize),
                ('\u{108f3}'..='\u{108f3}', 0usize),
                ('𐣴'..='𐣵', 8usize),
                ('\u{108f6}'..='𐣿', 0usize),
                ('𐤀'..='𐤕', 8usize),
                ('𐤖'..='𐤟', 0usize),
                ('𐤠'..='𐤹', 8usize),
                ('\u{1093a}'..='\u{1097f}', 0usize),
                ('𐦀'..='𐦷', 8usize),
                ('\u{109b8}'..='𐦽', 0usize),
                ('𐦾'..='𐦿', 8usize),
                ('𐧀'..='𐧿', 0usize),
                ('𐨀'..='\u{10a03}', 8usize),
                ('\u{10a04}'..='\u{10a04}', 0usize),
                ('\u{10a05}'..='\u{10a06}', 8usize),
                ('\u{10a07}'..='\u{10a0b}', 0usize),
                ('\u{10a0c}'..='𐨓', 8usize),
                ('\u{10a14}'..='\u{10a14}', 0usize),
                ('𐨕'..='𐨗', 8usize),
                ('\u{10a18}'..='\u{10a18}', 0usize),
                ('𐨙'..='𐨵', 8usize),
                ('\u{10a36}'..='\u{10a37}', 0usize),
                ('\u{10a38}'..='\u{10a3a}', 8usize),
                ('\u{10a3b}'..='\u{10a3e}', 0usize),
                ('\u{10a3f}'..='\u{10a3f}', 8usize),
                ('𐩀'..='\u{10a5f}', 0usize),
                ('𐩠'..='𐩼', 8usize),
                ('𐩽'..='𐩿', 0usize),
                ('𐪀'..='𐪜', 8usize),
                ('𐪝'..='\u{10abf}', 0usize),
                ('𐫀'..='𐫇', 8usize),
                ('𐫈'..='𐫈', 0usize),
                ('𐫉'..='\u{10ae6}', 8usize),
                ('\u{10ae7}'..='\u{10aff}', 0usize),
                ('𐬀'..='𐬵', 8usize),
                ('\u{10b36}'..='𐬿', 0usize),
                ('𐭀'..='𐭕', 8usize),
                ('\u{10b56}'..='𐭟', 0usize),
                ('𐭠'..='𐭲', 8usize),
                ('\u{10b73}'..='𐭿', 0usize),
                ('𐮀'..='𐮑', 8usize),
                ('\u{10b92}'..='\u{10bff}', 0usize),
                ('𐰀'..='𐱈', 8usize),
                ('\u{10c49}'..='\u{10c7f}', 0usize),
                ('𐲀'..='𐲲', 8usize),
                ('\u{10cb3}'..='\u{10cbf}', 0usize),
                ('𐳀'..='𐳲', 8usize),
                ('\u{10cf3}'..='𐳿', 0usize),
                ('𐴀'..='\u{10d27}', 8usize),
                ('\u{10d28}'..='\u{10d2f}', 0usize),
                ('𐴰'..='𐴹', 8usize),
                ('\u{10d3a}'..='\u{10d3f}', 0usize),
                ('𐵀'..='𐵥', 8usize),
                ('\u{10d66}'..='\u{10d68}', 0usize),
                ('\u{10d69}'..='\u{10d6d}', 8usize),
                ('𐵮'..='𐵮', 0usize),
                ('𐵯'..='𐶅', 8usize),
                ('\u{10d86}'..='\u{10e7f}', 0usize),
                ('𐺀'..='𐺩', 8usize),
                ('\u{10eaa}'..='\u{10eaa}', 0usize),
                ('\u{10eab}'..='\u{10eac}', 8usize),
                ('𐺭'..='\u{10eaf}', 0usize),
                ('𐺰'..='𐺱', 8usize),
                ('\u{10eb2}'..='\u{10ec1}', 0usize),
                ('𐻂'..='𐻄', 8usize),
                ('\u{10ec5}'..='\u{10efb}', 0usize),
                ('\u{10efc}'..='𐼜', 8usize),
                ('𐼝'..='𐼦', 0usize),
                ('𐼧'..='𐼧', 8usize),
                ('\u{10f28}'..='\u{10f2f}', 0usize),
                ('𐼰'..='\u{10f50}', 8usize),
                ('𐽑'..='\u{10f6f}', 0usize),
                ('𐽰'..='\u{10f85}', 8usize),
                ('𐾆'..='\u{10faf}', 0usize),
                ('𐾰'..='𐿄', 8usize),
                ('𐿅'..='\u{10fdf}', 0usize),
                ('𐿠'..='𐿶', 8usize),
                ('\u{10ff7}'..='\u{10fff}', 0usize),
                ('𑀀'..='\u{11046}', 8usize),
                ('𑁇'..='𑁥', 0usize),
                ('𑁦'..='𑁵', 8usize),
                ('\u{11076}'..='\u{1107e}', 0usize),
                ('\u{1107f}'..='\u{110ba}', 8usize),
                ('𑂻'..='𑃁', 0usize),
                ('\u{110c2}'..='\u{110c2}', 8usize),
                ('\u{110c3}'..='\u{110cf}', 0usize),
                ('𑃐'..='𑃨', 8usize),
                ('\u{110e9}'..='\u{110ef}', 0usize),
                ('𑃰'..='𑃹', 8usize),
                ('\u{110fa}'..='\u{110ff}', 0usize),
                ('\u{11100}'..='\u{11134}', 8usize),
                ('\u{11135}'..='\u{11135}', 0usize),
                ('𑄶'..='𑄿', 8usize),
                ('𑅀'..='𑅃', 0usize),
                ('𑅄'..='𑅇', 8usize),
                ('\u{11148}'..='\u{1114f}', 0usize),
                ('𑅐'..='\u{11173}', 8usize),
                ('𑅴'..='𑅵', 0usize),
                ('𑅶'..='𑅶', 8usize),
                ('\u{11177}'..='\u{1117f}', 0usize),
                ('\u{11180}'..='𑇄', 8usize),
                ('𑇅'..='𑇈', 0usize),
                ('\u{111c9}'..='\u{111cc}', 8usize),
                ('𑇍'..='𑇍', 0usize),
                ('𑇎'..='𑇚', 8usize),
                ('𑇛'..='𑇛', 0usize),
                ('𑇜'..='𑇜', 8usize),
                ('𑇝'..='\u{111ff}', 0usize),
                ('𑈀'..='𑈑', 8usize),
                ('\u{11212}'..='\u{11212}', 0usize),
                ('𑈓'..='\u{11237}', 8usize),
                ('𑈸'..='𑈽', 0usize),
                ('\u{1123e}'..='\u{11241}', 8usize),
                ('\u{11242}'..='\u{1127f}', 0usize),
                ('𑊀'..='𑊆', 8usize),
                ('\u{11287}'..='\u{11287}', 0usize),
                ('𑊈'..='𑊈', 8usize),
                ('\u{11289}'..='\u{11289}', 0usize),
                ('𑊊'..='𑊍', 8usize),
                ('\u{1128e}'..='\u{1128e}', 0usize),
                ('𑊏'..='𑊝', 8usize),
                ('\u{1129e}'..='\u{1129e}', 0usize),
                ('𑊟'..='𑊨', 8usize),
                ('𑊩'..='\u{112af}', 0usize),
                ('𑊰'..='\u{112ea}', 8usize),
                ('\u{112eb}'..='\u{112ef}', 0usize),
                ('𑋰'..='𑋹', 8usize),
                ('\u{112fa}'..='\u{112ff}', 0usize),
                ('\u{11300}'..='𑌃', 8usize),
                ('\u{11304}'..='\u{11304}', 0usize),
                ('𑌅'..='𑌌', 8usize),
                ('\u{1130d}'..='\u{1130e}', 0usize),
                ('𑌏'..='𑌐', 8usize),
                ('\u{11311}'..='\u{11312}', 0usize),
                ('𑌓'..='𑌨', 8usize),
                ('\u{11329}'..='\u{11329}', 0usize),
                ('𑌪'..='𑌰', 8usize),
                ('\u{11331}'..='\u{11331}', 0usize),
                ('𑌲'..='𑌳', 8usize),
                ('\u{11334}'..='\u{11334}', 0usize),
                ('𑌵'..='𑌹', 8usize),
                ('\u{1133a}'..='\u{1133a}', 0usize),
                ('\u{1133b}'..='𑍄', 8usize),
                ('\u{11345}'..='\u{11346}', 0usize),
                ('𑍇'..='𑍈', 8usize),
                ('\u{11349}'..='\u{1134a}', 0usize),
                ('𑍋'..='\u{1134d}', 8usize),
                ('\u{1134e}'..='\u{1134f}', 0usize),
                ('𑍐'..='𑍐', 8usize),
                ('\u{11351}'..='\u{11356}', 0usize),
                ('\u{11357}'..='\u{11357}', 8usize),
                ('\u{11358}'..='\u{1135c}', 0usize),
                ('𑍝'..='𑍣', 8usize),
                ('\u{11364}'..='\u{11365}', 0usize),
                ('\u{11366}'..='\u{1136c}', 8usize),
                ('\u{1136d}'..='\u{1136f}', 0usize),
                ('\u{11370}'..='\u{11374}', 8usize),
                ('\u{11375}'..='\u{1137f}', 0usize),
                ('𑎀'..='𑎉', 8usize),
                ('\u{1138a}'..='\u{1138a}', 0usize),
                ('𑎋'..='𑎋', 8usize),
                ('\u{1138c}'..='\u{1138d}', 0usize),
                ('𑎎'..='𑎎', 8usize),
                ('\u{1138f}'..='\u{1138f}', 0usize),
                ('𑎐'..='𑎵', 8usize),
                ('\u{113b6}'..='\u{113b6}', 0usize),
                ('𑎷'..='\u{113c0}', 8usize),
                ('\u{113c1}'..='\u{113c1}', 0usize),
                ('\u{113c2}'..='\u{113c2}', 8usize),
                ('\u{113c3}'..='\u{113c4}', 0usize),
                ('\u{113c5}'..='\u{113c5}', 8usize),
                ('\u{113c6}'..='\u{113c6}', 0usize),
                ('\u{113c7}'..='𑏊', 8usize),
                ('\u{113cb}'..='\u{113cb}', 0usize),
                ('𑏌'..='𑏓', 8usize),
                ('𑏔'..='\u{113e0}', 0usize),
                ('\u{113e1}'..='\u{113e2}', 8usize),
                ('\u{113e3}'..='\u{113ff}', 0usize),
                ('𑐀'..='𑑊', 8usize),
                ('𑑋'..='𑑏', 0usize),
                ('𑑐'..='𑑙', 8usize),
                ('𑑚'..='𑑝', 0usize),
                ('\u{1145e}'..='𑑡', 8usize),
                ('\u{11462}'..='\u{1147f}', 0usize),
                ('𑒀'..='𑓅', 8usize),
                ('𑓆'..='𑓆', 0usize),
                ('𑓇'..='𑓇', 8usize),
                ('\u{114c8}'..='\u{114cf}', 0usize),
                ('𑓐'..='𑓙', 8usize),
                ('\u{114da}'..='\u{1157f}', 0usize),
                ('𑖀'..='\u{115b5}', 8usize),
                ('\u{115b6}'..='\u{115b7}', 0usize),
                ('𑖸'..='\u{115c0}', 8usize),
                ('𑗁'..='𑗗', 0usize),
                ('𑗘'..='\u{115dd}', 8usize),
                ('\u{115de}'..='\u{115ff}', 0usize),
                ('𑘀'..='\u{11640}', 8usize),
                ('𑙁'..='𑙃', 0usize),
                ('𑙄'..='𑙄', 8usize),
                ('\u{11645}'..='\u{1164f}', 0usize),
                ('𑙐'..='𑙙', 8usize),
                ('\u{1165a}'..='\u{1167f}', 0usize),
                ('𑚀'..='𑚸', 8usize),
                ('𑚹'..='\u{116bf}', 0usize),
                ('𑛀'..='𑛉', 8usize),
                ('\u{116ca}'..='\u{116cf}', 0usize),
                ('𑛐'..='𑛣', 8usize),
                ('\u{116e4}'..='\u{116ff}', 0usize),
                ('𑜀'..='𑜚', 8usize),
                ('\u{1171b}'..='\u{1171c}', 0usize),
                ('\u{1171d}'..='\u{1172b}', 8usize),
                ('\u{1172c}'..='\u{1172f}', 0usize),
                ('𑜰'..='𑜹', 8usize),
                ('𑜺'..='𑜿', 0usize),
                ('𑝀'..='𑝆', 8usize),
                ('\u{11747}'..='\u{117ff}', 0usize),
                ('𑠀'..='\u{1183a}', 8usize),
                ('𑠻'..='\u{1189f}', 0usize),
                ('𑢠'..='𑣩', 8usize),
                ('𑣪'..='\u{118fe}', 0usize),
                ('𑣿'..='𑤆', 8usize),
                ('\u{11907}'..='\u{11908}', 0usize),
                ('𑤉'..='𑤉', 8usize),
                ('\u{1190a}'..='\u{1190b}', 0usize),
                ('𑤌'..='𑤓', 8usize),
                ('\u{11914}'..='\u{11914}', 0usize),
                ('𑤕'..='𑤖', 8usize),
                ('\u{11917}'..='\u{11917}', 0usize),
                ('𑤘'..='𑤵', 8usize),
                ('\u{11936}'..='\u{11936}', 0usize),
                ('𑤷'..='𑤸', 8usize),
                ('\u{11939}'..='\u{1193a}', 0usize),
                ('\u{1193b}'..='\u{11943}', 8usize),
                ('𑥄'..='\u{1194f}', 0usize),
                ('𑥐'..='𑥙', 8usize),
                ('\u{1195a}'..='\u{1199f}', 0usize),
                ('𑦠'..='𑦧', 8usize),
                ('\u{119a8}'..='\u{119a9}', 0usize),
                ('𑦪'..='\u{119d7}', 8usize),
                ('\u{119d8}'..='\u{119d9}', 0usize),
                ('\u{119da}'..='𑧡', 8usize),
                ('𑧢'..='𑧢', 0usize),
                ('𑧣'..='𑧤', 8usize),
                ('\u{119e5}'..='\u{119ff}', 0usize),
                ('𑨀'..='\u{11a3e}', 8usize),
                ('𑨿'..='𑩆', 0usize),
                ('\u{11a47}'..='\u{11a47}', 8usize),
                ('\u{11a48}'..='\u{11a4f}', 0usize),
                ('𑩐'..='\u{11a99}', 8usize),
                ('𑪚'..='𑪜', 0usize),
                ('𑪝'..='𑪝', 8usize),
                ('𑪞'..='\u{11aaf}', 0usize),
                ('𑪰'..='𑫸', 8usize),
                ('\u{11af9}'..='\u{11bbf}', 0usize),
                ('𑯀'..='𑯠', 8usize),
                ('𑯡'..='\u{11bef}', 0usize),
                ('𑯰'..='𑯹', 8usize),
                ('\u{11bfa}'..='\u{11bff}', 0usize),
                ('𑰀'..='𑰈', 8usize),
                ('\u{11c09}'..='\u{11c09}', 0usize),
                ('𑰊'..='\u{11c36}', 8usize),
                ('\u{11c37}'..='\u{11c37}', 0usize),
                ('\u{11c38}'..='𑱀', 8usize),
                ('𑱁'..='\u{11c4f}', 0usize),
                ('𑱐'..='𑱙', 8usize),
                ('𑱚'..='𑱱', 0usize),
                ('𑱲'..='𑲏', 8usize),
                ('\u{11c90}'..='\u{11c91}', 0usize),
                ('\u{11c92}'..='\u{11ca7}', 8usize),
                ('\u{11ca8}'..='\u{11ca8}', 0usize),
                ('𑲩'..='\u{11cb6}', 8usize),
                ('\u{11cb7}'..='\u{11cff}', 0usize),
                ('𑴀'..='𑴆', 8usize),
                ('\u{11d07}'..='\u{11d07}', 0usize),
                ('𑴈'..='𑴉', 8usize),
                ('\u{11d0a}'..='\u{11d0a}', 0usize),
                ('𑴋'..='\u{11d36}', 8usize),
                ('\u{11d37}'..='\u{11d39}', 0usize),
                ('\u{11d3a}'..='\u{11d3a}', 8usize),
                ('\u{11d3b}'..='\u{11d3b}', 0usize),
                ('\u{11d3c}'..='\u{11d3d}', 8usize),
                ('\u{11d3e}'..='\u{11d3e}', 0usize),
                ('\u{11d3f}'..='\u{11d47}', 8usize),
                ('\u{11d48}'..='\u{11d4f}', 0usize),
                ('𑵐'..='𑵙', 8usize),
                ('\u{11d5a}'..='\u{11d5f}', 0usize),
                ('𑵠'..='𑵥', 8usize),
                ('\u{11d66}'..='\u{11d66}', 0usize),
                ('𑵧'..='𑵨', 8usize),
                ('\u{11d69}'..='\u{11d69}', 0usize),
                ('𑵪'..='𑶎', 8usize),
                ('\u{11d8f}'..='\u{11d8f}', 0usize),
                ('\u{11d90}'..='\u{11d91}', 8usize),
                ('\u{11d92}'..='\u{11d92}', 0usize),
                ('𑶓'..='𑶘', 8usize),
                ('\u{11d99}'..='\u{11d9f}', 0usize),
                ('𑶠'..='𑶩', 8usize),
                ('\u{11daa}'..='\u{11edf}', 0usize),
                ('𑻠'..='𑻶', 8usize),
                ('𑻷'..='\u{11eff}', 0usize),
                ('\u{11f00}'..='𑼐', 8usize),
                ('\u{11f11}'..='\u{11f11}', 0usize),
                ('𑼒'..='\u{11f3a}', 8usize),
                ('\u{11f3b}'..='\u{11f3d}', 0usize),
                ('𑼾'..='\u{11f42}', 8usize),
                ('𑽃'..='𑽏', 0usize),
                ('𑽐'..='\u{11f5a}', 8usize),
                ('\u{11f5b}'..='\u{11faf}', 0usize),
                ('𑾰'..='𑾰', 8usize),
                ('\u{11fb1}'..='𑿿', 0usize),
                ('𒀀'..='𒎙', 8usize),
                ('\u{1239a}'..='\u{123ff}', 0usize),
                ('𒐀'..='𒑮', 8usize),
                ('\u{1246f}'..='\u{1247f}', 0usize),
                ('𒒀'..='𒕃', 8usize),
                ('\u{12544}'..='\u{12f8f}', 0usize),
                ('𒾐'..='𒿰', 8usize),
                ('𒿱'..='\u{12fff}', 0usize),
                ('𓀀'..='𓐯', 8usize),
                ('\u{13430}'..='\u{1343f}', 0usize),
                ('\u{13440}'..='\u{13455}', 8usize),
                ('\u{13456}'..='\u{1345f}', 0usize),
                ('𓑠'..='𔏺', 8usize),
                ('\u{143fb}'..='\u{143ff}', 0usize),
                ('𔐀'..='𔙆', 8usize),
                ('\u{14647}'..='\u{160ff}', 0usize),
                ('𖄀'..='𖄹', 8usize),
                ('\u{1613a}'..='\u{167ff}', 0usize),
                ('𖠀'..='𖨸', 8usize),
                ('\u{16a39}'..='\u{16a3f}', 0usize),
                ('𖩀'..='𖩞', 8usize),
                ('\u{16a5f}'..='\u{16a5f}', 0usize),
                ('𖩠'..='𖩩', 8usize),
                ('\u{16a6a}'..='𖩯', 0usize),
                ('𖩰'..='𖪾', 8usize),
                ('\u{16abf}'..='\u{16abf}', 0usize),
                ('𖫀'..='𖫉', 8usize),
                ('\u{16aca}'..='\u{16acf}', 0usize),
                ('𖫐'..='𖫭', 8usize),
                ('\u{16aee}'..='\u{16aef}', 0usize),
                ('\u{16af0}'..='\u{16af4}', 8usize),
                ('𖫵'..='\u{16aff}', 0usize),
                ('𖬀'..='\u{16b36}', 8usize),
                ('𖬷'..='𖬿', 0usize),
                ('𖭀'..='𖭃', 8usize),
                ('𖭄'..='\u{16b4f}', 0usize),
                ('𖭐'..='𖭙', 8usize),
                ('\u{16b5a}'..='\u{16b62}', 0usize),
                ('𖭣'..='𖭷', 8usize),
                ('\u{16b78}'..='\u{16b7c}', 0usize),
                ('𖭽'..='𖮏', 8usize),
                ('\u{16b90}'..='\u{16d3f}', 0usize),
                ('𖵀'..='𖵬', 8usize),
                ('𖵭'..='𖵯', 0usize),
                ('𖵰'..='𖵹', 8usize),
                ('\u{16d7a}'..='\u{16e3f}', 0usize),
                ('𖹀'..='𖹿', 8usize),
                ('𖺀'..='\u{16eff}', 0usize),
                ('𖼀'..='𖽊', 8usize),
                ('\u{16f4b}'..='\u{16f4e}', 0usize),
                ('\u{16f4f}'..='𖾇', 8usize),
                ('\u{16f88}'..='\u{16f8e}', 0usize),
                ('\u{16f8f}'..='𖾟', 8usize),
                ('\u{16fa0}'..='\u{16fdf}', 0usize),
                ('𖿠'..='𖿡', 8usize),
                ('𖿢'..='𖿢', 0usize),
                ('𖿣'..='\u{16fe4}', 8usize),
                ('\u{16fe5}'..='\u{16fef}', 0usize),
                ('\u{16ff0}'..='\u{16ff1}', 8usize),
                ('\u{16ff2}'..='\u{16fff}', 0usize),
                ('𗀀'..='𘟷', 8usize),
                ('\u{187f8}'..='\u{187ff}', 0usize),
                ('𘠀'..='𘳕', 8usize),
                ('\u{18cd6}'..='\u{18cfe}', 0usize),
                ('𘳿'..='𘴈', 8usize),
                ('\u{18d09}'..='\u{1afef}', 0usize),
                ('𚿰'..='𚿳', 8usize),
                ('\u{1aff4}'..='\u{1aff4}', 0usize),
                ('𚿵'..='𚿻', 8usize),
                ('\u{1affc}'..='\u{1affc}', 0usize),
                ('𚿽'..='𚿾', 8usize),
                ('\u{1afff}'..='\u{1afff}', 0usize),
                ('𛀀'..='𛄢', 8usize),
                ('\u{1b123}'..='\u{1b131}', 0usize),
                ('𛄲'..='𛄲', 8usize),
                ('\u{1b133}'..='\u{1b14f}', 0usize),
                ('𛅐'..='𛅒', 8usize),
                ('\u{1b153}'..='\u{1b154}', 0usize),
                ('𛅕'..='𛅕', 8usize),
                ('\u{1b156}'..='\u{1b163}', 0usize),
                ('𛅤'..='𛅧', 8usize),
                ('\u{1b168}'..='\u{1b16f}', 0usize),
                ('𛅰'..='𛋻', 8usize),
                ('\u{1b2fc}'..='\u{1bbff}', 0usize),
                ('𛰀'..='𛱪', 8usize),
                ('\u{1bc6b}'..='\u{1bc6f}', 0usize),
                ('𛱰'..='𛱼', 8usize),
                ('\u{1bc7d}'..='\u{1bc7f}', 0usize),
                ('𛲀'..='𛲈', 8usize),
                ('\u{1bc89}'..='\u{1bc8f}', 0usize),
                ('𛲐'..='𛲙', 8usize),
                ('\u{1bc9a}'..='𛲜', 0usize),
                ('\u{1bc9d}'..='\u{1bc9e}', 8usize),
                ('𛲟'..='𜳯', 0usize),
                ('𜳰'..='𜳹', 8usize),
                ('\u{1ccfa}'..='\u{1ceff}', 0usize),
                ('\u{1cf00}'..='\u{1cf2d}', 8usize),
                ('\u{1cf2e}'..='\u{1cf2f}', 0usize),
                ('\u{1cf30}'..='\u{1cf46}', 8usize),
                ('\u{1cf47}'..='𝅘𝅥𝅲', 0usize),
                ('\u{1d165}'..='\u{1d169}', 8usize),
                ('𝅪'..='𝅬', 0usize),
                ('\u{1d16d}'..='\u{1d172}', 8usize),
                ('\u{1d173}'..='\u{1d17a}', 0usize),
                ('\u{1d17b}'..='\u{1d182}', 8usize),
                ('𝆃'..='𝆄', 0usize),
                ('\u{1d185}'..='\u{1d18b}', 8usize),
                ('𝆌'..='𝆩', 0usize),
                ('\u{1d1aa}'..='\u{1d1ad}', 8usize),
                ('𝆮'..='𝉁', 0usize),
                ('\u{1d242}'..='\u{1d244}', 8usize),
                ('𝉅'..='\u{1d3ff}', 0usize),
                ('𝐀'..='𝑔', 8usize),
                ('\u{1d455}'..='\u{1d455}', 0usize),
                ('𝑖'..='𝒜', 8usize),
                ('\u{1d49d}'..='\u{1d49d}', 0usize),
                ('𝒞'..='𝒟', 8usize),
                ('\u{1d4a0}'..='\u{1d4a1}', 0usize),
                ('𝒢'..='𝒢', 8usize),
                ('\u{1d4a3}'..='\u{1d4a4}', 0usize),
                ('𝒥'..='𝒦', 8usize),
                ('\u{1d4a7}'..='\u{1d4a8}', 0usize),
                ('𝒩'..='𝒬', 8usize),
                ('\u{1d4ad}'..='\u{1d4ad}', 0usize),
                ('𝒮'..='𝒹', 8usize),
                ('\u{1d4ba}'..='\u{1d4ba}', 0usize),
                ('𝒻'..='𝒻', 8usize),
                ('\u{1d4bc}'..='\u{1d4bc}', 0usize),
                ('𝒽'..='𝓃', 8usize),
                ('\u{1d4c4}'..='\u{1d4c4}', 0usize),
                ('𝓅'..='𝔅', 8usize),
                ('\u{1d506}'..='\u{1d506}', 0usize),
                ('𝔇'..='𝔊', 8usize),
                ('\u{1d50b}'..='\u{1d50c}', 0usize),
                ('𝔍'..='𝔔', 8usize),
                ('\u{1d515}'..='\u{1d515}', 0usize),
                ('𝔖'..='𝔜', 8usize),
                ('\u{1d51d}'..='\u{1d51d}', 0usize),
                ('𝔞'..='𝔹', 8usize),
                ('\u{1d53a}'..='\u{1d53a}', 0usize),
                ('𝔻'..='𝔾', 8usize),
                ('\u{1d53f}'..='\u{1d53f}', 0usize),
                ('𝕀'..='𝕄', 8usize),
                ('\u{1d545}'..='\u{1d545}', 0usize),
                ('𝕆'..='𝕆', 8usize),
                ('\u{1d547}'..='\u{1d549}', 0usize),
                ('𝕊'..='𝕐', 8usize),
                ('\u{1d551}'..='\u{1d551}', 0usize),
                ('𝕒'..='𝚥', 8usize),
                ('\u{1d6a6}'..='\u{1d6a7}', 0usize),
                ('𝚨'..='𝛀', 8usize),
                ('𝛁'..='𝛁', 0usize),
                ('𝛂'..='𝛚', 8usize),
                ('𝛛'..='𝛛', 0usize),
                ('𝛜'..='𝛺', 8usize),
                ('𝛻'..='𝛻', 0usize),
                ('𝛼'..='𝜔', 8usize),
                ('𝜕'..='𝜕', 0usize),
                ('𝜖'..='𝜴', 8usize),
                ('𝜵'..='𝜵', 0usize),
                ('𝜶'..='𝝎', 8usize),
                ('𝝏'..='𝝏', 0usize),
                ('𝝐'..='𝝮', 8usize),
                ('𝝯'..='𝝯', 0usize),
                ('𝝰'..='𝞈', 8usize),
                ('𝞉'..='𝞉', 0usize),
                ('𝞊'..='𝞨', 8usize),
                ('𝞩'..='𝞩', 0usize),
                ('𝞪'..='𝟂', 8usize),
                ('𝟃'..='𝟃', 0usize),
                ('𝟄'..='𝟋', 8usize),
                ('\u{1d7cc}'..='\u{1d7cd}', 0usize),
                ('𝟎'..='𝟿', 8usize),
                ('𝠀'..='𝧿', 0usize),
                ('\u{1da00}'..='\u{1da36}', 8usize),
                ('𝨷'..='𝨺', 0usize),
                ('\u{1da3b}'..='\u{1da6c}', 8usize),
                ('𝩭'..='𝩴', 0usize),
                ('\u{1da75}'..='\u{1da75}', 8usize),
                ('𝩶'..='𝪃', 0usize),
                ('\u{1da84}'..='\u{1da84}', 8usize),
                ('𝪅'..='\u{1da9a}', 0usize),
                ('\u{1da9b}'..='\u{1da9f}', 8usize),
                ('\u{1daa0}'..='\u{1daa0}', 0usize),
                ('\u{1daa1}'..='\u{1daaf}', 8usize),
                ('\u{1dab0}'..='\u{1deff}', 0usize),
                ('𝼀'..='𝼞', 8usize),
                ('\u{1df1f}'..='\u{1df24}', 0usize),
                ('𝼥'..='𝼪', 8usize),
                ('\u{1df2b}'..='\u{1dfff}', 0usize),
                ('\u{1e000}'..='\u{1e006}', 8usize),
                ('\u{1e007}'..='\u{1e007}', 0usize),
                ('\u{1e008}'..='\u{1e018}', 8usize),
                ('\u{1e019}'..='\u{1e01a}', 0usize),
                ('\u{1e01b}'..='\u{1e021}', 8usize),
                ('\u{1e022}'..='\u{1e022}', 0usize),
                ('\u{1e023}'..='\u{1e024}', 8usize),
                ('\u{1e025}'..='\u{1e025}', 0usize),
                ('\u{1e026}'..='\u{1e02a}', 8usize),
                ('\u{1e02b}'..='\u{1e02f}', 0usize),
                ('𞀰'..='𞁭', 8usize),
                ('\u{1e06e}'..='\u{1e08e}', 0usize),
                ('\u{1e08f}'..='\u{1e08f}', 8usize),
                ('\u{1e090}'..='\u{1e0ff}', 0usize),
                ('𞄀'..='𞄬', 8usize),
                ('\u{1e12d}'..='\u{1e12f}', 0usize),
                ('\u{1e130}'..='𞄽', 8usize),
                ('\u{1e13e}'..='\u{1e13f}', 0usize),
                ('𞅀'..='𞅉', 8usize),
                ('\u{1e14a}'..='\u{1e14d}', 0usize),
                ('𞅎'..='𞅎', 8usize),
                ('𞅏'..='\u{1e28f}', 0usize),
                ('𞊐'..='\u{1e2ae}', 8usize),
                ('\u{1e2af}'..='\u{1e2bf}', 0usize),
                ('𞋀'..='𞋹', 8usize),
                ('\u{1e2fa}'..='\u{1e4cf}', 0usize),
                ('𞓐'..='𞓹', 8usize),
                ('\u{1e4fa}'..='\u{1e5cf}', 0usize),
                ('𞗐'..='𞗺', 8usize),
                ('\u{1e5fb}'..='\u{1e7df}', 0usize),
                ('𞟠'..='𞟦', 8usize),
                ('\u{1e7e7}'..='\u{1e7e7}', 0usize),
                ('𞟨'..='𞟫', 8usize),
                ('\u{1e7ec}'..='\u{1e7ec}', 0usize),
                ('𞟭'..='𞟮', 8usize),
                ('\u{1e7ef}'..='\u{1e7ef}', 0usize),
                ('𞟰'..='𞟾', 8usize),
                ('\u{1e7ff}'..='\u{1e7ff}', 0usize),
                ('𞠀'..='𞣄', 8usize),
                ('\u{1e8c5}'..='𞣏', 0usize),
                ('\u{1e8d0}'..='\u{1e8d6}', 8usize),
                ('\u{1e8d7}'..='\u{1e8ff}', 0usize),
                ('𞤀'..='𞥋', 8usize),
                ('\u{1e94c}'..='\u{1e94f}', 0usize),
                ('𞥐'..='𞥙', 8usize),
                ('\u{1e95a}'..='\u{1edff}', 0usize),
                ('𞸀'..='𞸃', 8usize),
                ('\u{1ee04}'..='\u{1ee04}', 0usize),
                ('𞸅'..='𞸟', 8usize),
                ('\u{1ee20}'..='\u{1ee20}', 0usize),
                ('𞸡'..='𞸢', 8usize),
                ('\u{1ee23}'..='\u{1ee23}', 0usize),
                ('𞸤'..='𞸤', 8usize),
                ('\u{1ee25}'..='\u{1ee26}', 0usize),
                ('𞸧'..='𞸧', 8usize),
                ('\u{1ee28}'..='\u{1ee28}', 0usize),
                ('𞸩'..='𞸲', 8usize),
                ('\u{1ee33}'..='\u{1ee33}', 0usize),
                ('𞸴'..='𞸷', 8usize),
                ('\u{1ee38}'..='\u{1ee38}', 0usize),
                ('𞸹'..='𞸹', 8usize),
                ('\u{1ee3a}'..='\u{1ee3a}', 0usize),
                ('𞸻'..='𞸻', 8usize),
                ('\u{1ee3c}'..='\u{1ee41}', 0usize),
                ('𞹂'..='𞹂', 8usize),
                ('\u{1ee43}'..='\u{1ee46}', 0usize),
                ('𞹇'..='𞹇', 8usize),
                ('\u{1ee48}'..='\u{1ee48}', 0usize),
                ('𞹉'..='𞹉', 8usize),
                ('\u{1ee4a}'..='\u{1ee4a}', 0usize),
                ('𞹋'..='𞹋', 8usize),
                ('\u{1ee4c}'..='\u{1ee4c}', 0usize),
                ('𞹍'..='𞹏', 8usize),
                ('\u{1ee50}'..='\u{1ee50}', 0usize),
                ('𞹑'..='𞹒', 8usize),
                ('\u{1ee53}'..='\u{1ee53}', 0usize),
                ('𞹔'..='𞹔', 8usize),
                ('\u{1ee55}'..='\u{1ee56}', 0usize),
                ('𞹗'..='𞹗', 8usize),
                ('\u{1ee58}'..='\u{1ee58}', 0usize),
                ('𞹙'..='𞹙', 8usize),
                ('\u{1ee5a}'..='\u{1ee5a}', 0usize),
                ('𞹛'..='𞹛', 8usize),
                ('\u{1ee5c}'..='\u{1ee5c}', 0usize),
                ('𞹝'..='𞹝', 8usize),
                ('\u{1ee5e}'..='\u{1ee5e}', 0usize),
                ('𞹟'..='𞹟', 8usize),
                ('\u{1ee60}'..='\u{1ee60}', 0usize),
                ('𞹡'..='𞹢', 8usize),
                ('\u{1ee63}'..='\u{1ee63}', 0usize),
                ('𞹤'..='𞹤', 8usize),
                ('\u{1ee65}'..='\u{1ee66}', 0usize),
                ('𞹧'..='𞹪', 8usize),
                ('\u{1ee6b}'..='\u{1ee6b}', 0usize),
                ('𞹬'..='𞹲', 8usize),
                ('\u{1ee73}'..='\u{1ee73}', 0usize),
                ('𞹴'..='𞹷', 8usize),
                ('\u{1ee78}'..='\u{1ee78}', 0usize),
                ('𞹹'..='𞹼', 8usize),
                ('\u{1ee7d}'..='\u{1ee7d}', 0usize),
                ('𞹾'..='𞹾', 8usize),
                ('\u{1ee7f}'..='\u{1ee7f}', 0usize),
                ('𞺀'..='𞺉', 8usize),
                ('\u{1ee8a}'..='\u{1ee8a}', 0usize),
                ('𞺋'..='𞺛', 8usize),
                ('\u{1ee9c}'..='\u{1eea0}', 0usize),
                ('𞺡'..='𞺣', 8usize),
                ('\u{1eea4}'..='\u{1eea4}', 0usize),
                ('𞺥'..='𞺩', 8usize),
                ('\u{1eeaa}'..='\u{1eeaa}', 0usize),
                ('𞺫'..='𞺻', 8usize),
                ('\u{1eebc}'..='🄯', 0usize),
                ('🄰'..='🅉', 8usize),
                ('🅊'..='🅏', 0usize),
                ('🅐'..='🅩', 8usize),
                ('🅪'..='🅯', 0usize),
                ('🅰'..='🆉', 8usize),
                ('🆊'..='🯯', 0usize),
                ('🯰'..='🯹', 8usize),
                ('\u{1fbfa}'..='\u{1ffff}', 0usize),
                ('𠀀'..='𪛟', 8usize),
                ('\u{2a6e0}'..='\u{2a6ff}', 0usize),
                ('𪜀'..='𫜹', 8usize),
                ('\u{2b73a}'..='\u{2b73f}', 0usize),
                ('𫝀'..='𫠝', 8usize),
                ('\u{2b81e}'..='\u{2b81f}', 0usize),
                ('𫠠'..='𬺡', 8usize),
                ('\u{2cea2}'..='\u{2ceaf}', 0usize),
                ('𬺰'..='𮯠', 8usize),
                ('\u{2ebe1}'..='\u{2ebef}', 0usize),
                ('𮯰'..='𮹝', 8usize),
                ('\u{2ee5e}'..='\u{2f7ff}', 0usize),
                ('丽'..='𪘀', 8usize),
                ('\u{2fa1e}'..='\u{2ffff}', 0usize),
                ('𰀀'..='𱍊', 8usize),
                ('\u{3134b}'..='\u{3134f}', 0usize),
                ('𱍐'..='𲎯', 8usize),
                ('\u{323b0}'..='\u{e00ff}', 0usize),
                ('\u{e0100}'..='\u{e01ef}', 8usize),
                ('\u{e01f0}'..='\u{10fffe}', 0usize),
            ];
            let interval_idx = match INTERVALS.binary_search_by(|interval| {
                if c < *interval.0.start() {
                    Ordering::Greater
                } else if c > *interval.0.end() {
                    Ordering::Less
                } else {
                    Ordering::Equal
                }
            }) {
                Ok(idx) => idx,
                Err(_) => return None,
            };
            INTERVALS[interval_idx].1.into()
        }
        #[doc = r" Creates a find_matches iterator for the given input and offset."]
        pub fn find_matches<'a>(
            &'a self,
            input: &'a str,
            offset: usize,
        ) -> scnr2::FindMatches<'a, fn(char) -> Option<usize>> {
            ScannerImpl::find_matches(
                self.scanner_impl.clone(),
                input,
                offset,
                &(Self::match_function as fn(char) -> Option<usize>),
            )
        }
        #[doc = r" Creates a find_matches_with_position iterator for the given input and offset."]
        pub fn find_matches_with_position<'a>(
            &'a self,
            input: &'a str,
            offset: usize,
        ) -> scnr2::FindMatchesWithPosition<'a, fn(char) -> Option<usize>> {
            ScannerImpl::find_matches_with_position(
                self.scanner_impl.clone(),
                input,
                offset,
                &(Self::match_function as fn(char) -> Option<usize>),
            )
        }
        #[doc = r" Returns the current mode index."]
        pub fn current_mode_index(&self) -> usize {
            self.scanner_impl.borrow().current_mode_index()
        }
        #[doc = r" Returns the name of the given mode."]
        pub fn mode_name(&self, index: usize) -> Option<&'static str> {
            self.scanner_impl.borrow().mode_name(index)
        }
        #[doc = r" returns the name of the current mode."]
        pub fn current_mode_name(&self) -> &'static str {
            self.scanner_impl.borrow().current_mode_name()
        }
    }
}