forked from DebugST/STTextBox
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathWordSplitter.cs
More file actions
3323 lines (3302 loc) · 285 KB
/
Copy pathWordSplitter.cs
File metadata and controls
3323 lines (3302 loc) · 285 KB
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ST.Library.UI.STTextBox
{
public class WordSplitter : TextBoundary
{
// The following variable values do not have a fixed value. Just a FLAG. Just like enumeration.
public const int Other = 0;
public const int Double_Quote = 1;
public const int Single_Quote = 2;
public const int Hebrew_Letter = 3;
public const int CR = 4;
public const int LF = 5;
public const int Newline = 6;
public const int Extend = 7;
public const int Regional_Indicator = 8;
public const int Format = 9;
public const int Katakana = 10;
public const int ALetter = 11;
public const int MidLetter = 12;
public const int MidNum = 13;
public const int MidNumLet = 14;
public const int Numeric = 15;
public const int ExtendNumLet = 16;
public const int ZWJ = 17;
public const int WSegSpace = 18;
public const int Extended_Pictographic = 19;
public const int Custom_Property_Ascii = 20;
private static int[] m_arr_cache_break_type;
private static Dictionary<int, int> m_dic_cache_break_type;
private static List<RangeInfo> m_lst_code_range = new List<RangeInfo>();
static WordSplitter() {
// Cc [2] <control-000B>..<control-000C>
m_lst_code_range.Add(new RangeInfo() { Start = 0x0000B, End = 0x0000C, Type = Newline });
// Nd [10] DIGIT ZERO..DIGIT NINE
m_lst_code_range.Add(new RangeInfo() { Start = 0x00030, End = 0x00039, Type = Numeric });
// L& [26] LATIN CAPITAL LETTER A..LATIN CAPITAL LETTER Z
m_lst_code_range.Add(new RangeInfo() { Start = 0x00041, End = 0x0005A, Type = ALetter });
// L& [26] LATIN SMALL LETTER A..LATIN SMALL LETTER Z
m_lst_code_range.Add(new RangeInfo() { Start = 0x00061, End = 0x0007A, Type = ALetter });
// L& [23] LATIN CAPITAL LETTER A WITH GRAVE..LATIN CAPITAL LETTER O WITH DIAERESIS
m_lst_code_range.Add(new RangeInfo() { Start = 0x000C0, End = 0x000D6, Type = ALetter });
// L& [31] LATIN CAPITAL LETTER O WITH STROKE..LATIN SMALL LETTER O WITH DIAERESIS
m_lst_code_range.Add(new RangeInfo() { Start = 0x000D8, End = 0x000F6, Type = ALetter });
// L& [195] LATIN SMALL LETTER O WITH STROKE..LATIN SMALL LETTER EZH WITH TAIL
m_lst_code_range.Add(new RangeInfo() { Start = 0x000F8, End = 0x001BA, Type = ALetter });
// L& [4] LATIN CAPITAL LETTER TONE FIVE..LATIN LETTER WYNN
m_lst_code_range.Add(new RangeInfo() { Start = 0x001BC, End = 0x001BF, Type = ALetter });
// Lo [4] LATIN LETTER DENTAL CLICK..LATIN LETTER RETROFLEX CLICK
m_lst_code_range.Add(new RangeInfo() { Start = 0x001C0, End = 0x001C3, Type = ALetter });
// L& [208] LATIN CAPITAL LETTER DZ WITH CARON..LATIN SMALL LETTER EZH WITH CURL
m_lst_code_range.Add(new RangeInfo() { Start = 0x001C4, End = 0x00293, Type = ALetter });
// L& [27] LATIN LETTER PHARYNGEAL VOICED FRICATIVE..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL
m_lst_code_range.Add(new RangeInfo() { Start = 0x00295, End = 0x002AF, Type = ALetter });
// Lm [18] MODIFIER LETTER SMALL H..MODIFIER LETTER REVERSED GLOTTAL STOP
m_lst_code_range.Add(new RangeInfo() { Start = 0x002B0, End = 0x002C1, Type = ALetter });
// Sk [4] MODIFIER LETTER LEFT ARROWHEAD..MODIFIER LETTER DOWN ARROWHEAD
m_lst_code_range.Add(new RangeInfo() { Start = 0x002C2, End = 0x002C5, Type = ALetter });
// Lm [12] MODIFIER LETTER CIRCUMFLEX ACCENT..MODIFIER LETTER HALF TRIANGULAR COLON
m_lst_code_range.Add(new RangeInfo() { Start = 0x002C6, End = 0x002D1, Type = ALetter });
// Sk [6] MODIFIER LETTER CENTRED RIGHT HALF RING..MODIFIER LETTER MINUS SIGN
m_lst_code_range.Add(new RangeInfo() { Start = 0x002D2, End = 0x002D7, Type = ALetter });
// Sk [2] MODIFIER LETTER RHOTIC HOOK..MODIFIER LETTER CROSS ACCENT
m_lst_code_range.Add(new RangeInfo() { Start = 0x002DE, End = 0x002DF, Type = ALetter });
// Lm [5] MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
m_lst_code_range.Add(new RangeInfo() { Start = 0x002E0, End = 0x002E4, Type = ALetter });
// Sk [7] MODIFIER LETTER EXTRA-HIGH TONE BAR..MODIFIER LETTER YANG DEPARTING TONE MARK
m_lst_code_range.Add(new RangeInfo() { Start = 0x002E5, End = 0x002EB, Type = ALetter });
// Sk [17] MODIFIER LETTER LOW DOWN ARROWHEAD..MODIFIER LETTER LOW LEFT ARROW
m_lst_code_range.Add(new RangeInfo() { Start = 0x002EF, End = 0x002FF, Type = ALetter });
// Mn [112] COMBINING GRAVE ACCENT..COMBINING LATIN SMALL LETTER X
m_lst_code_range.Add(new RangeInfo() { Start = 0x00300, End = 0x0036F, Type = Extend });
// L& [4] GREEK CAPITAL LETTER HETA..GREEK SMALL LETTER ARCHAIC SAMPI
m_lst_code_range.Add(new RangeInfo() { Start = 0x00370, End = 0x00373, Type = ALetter });
// L& [2] GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA..GREEK SMALL LETTER PAMPHYLIAN DIGAMMA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00376, End = 0x00377, Type = ALetter });
// L& [3] GREEK SMALL REVERSED LUNATE SIGMA SYMBOL..GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL
m_lst_code_range.Add(new RangeInfo() { Start = 0x0037B, End = 0x0037D, Type = ALetter });
// L& [3] GREEK CAPITAL LETTER EPSILON WITH TONOS..GREEK CAPITAL LETTER IOTA WITH TONOS
m_lst_code_range.Add(new RangeInfo() { Start = 0x00388, End = 0x0038A, Type = ALetter });
// L& [20] GREEK CAPITAL LETTER UPSILON WITH TONOS..GREEK CAPITAL LETTER RHO
m_lst_code_range.Add(new RangeInfo() { Start = 0x0038E, End = 0x003A1, Type = ALetter });
// L& [83] GREEK CAPITAL LETTER SIGMA..GREEK LUNATE EPSILON SYMBOL
m_lst_code_range.Add(new RangeInfo() { Start = 0x003A3, End = 0x003F5, Type = ALetter });
// L& [139] GREEK CAPITAL LETTER SHO..CYRILLIC SMALL LETTER KOPPA
m_lst_code_range.Add(new RangeInfo() { Start = 0x003F7, End = 0x00481, Type = ALetter });
// Mn [5] COMBINING CYRILLIC TITLO..COMBINING CYRILLIC POKRYTIE
m_lst_code_range.Add(new RangeInfo() { Start = 0x00483, End = 0x00487, Type = Extend });
// Me [2] COMBINING CYRILLIC HUNDRED THOUSANDS SIGN..COMBINING CYRILLIC MILLIONS SIGN
m_lst_code_range.Add(new RangeInfo() { Start = 0x00488, End = 0x00489, Type = Extend });
// L& [166] CYRILLIC CAPITAL LETTER SHORT I WITH TAIL..CYRILLIC SMALL LETTER EL WITH DESCENDER
m_lst_code_range.Add(new RangeInfo() { Start = 0x0048A, End = 0x0052F, Type = ALetter });
// L& [38] ARMENIAN CAPITAL LETTER AYB..ARMENIAN CAPITAL LETTER FEH
m_lst_code_range.Add(new RangeInfo() { Start = 0x00531, End = 0x00556, Type = ALetter });
// Po [3] ARMENIAN APOSTROPHE..ARMENIAN EXCLAMATION MARK
m_lst_code_range.Add(new RangeInfo() { Start = 0x0055A, End = 0x0055C, Type = ALetter });
// L& [41] ARMENIAN SMALL LETTER TURNED AYB..ARMENIAN SMALL LETTER YI WITH STROKE
m_lst_code_range.Add(new RangeInfo() { Start = 0x00560, End = 0x00588, Type = ALetter });
// Mn [45] HEBREW ACCENT ETNAHTA..HEBREW POINT METEG
m_lst_code_range.Add(new RangeInfo() { Start = 0x00591, End = 0x005BD, Type = Extend });
// Mn [2] HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT
m_lst_code_range.Add(new RangeInfo() { Start = 0x005C1, End = 0x005C2, Type = Extend });
// Mn [2] HEBREW MARK UPPER DOT..HEBREW MARK LOWER DOT
m_lst_code_range.Add(new RangeInfo() { Start = 0x005C4, End = 0x005C5, Type = Extend });
// Lo [27] HEBREW LETTER ALEF..HEBREW LETTER TAV
m_lst_code_range.Add(new RangeInfo() { Start = 0x005D0, End = 0x005EA, Type = Hebrew_Letter });
// Lo [4] HEBREW YOD TRIANGLE..HEBREW LIGATURE YIDDISH DOUBLE YOD
m_lst_code_range.Add(new RangeInfo() { Start = 0x005EF, End = 0x005F2, Type = Hebrew_Letter });
// Cf [6] ARABIC NUMBER SIGN..ARABIC NUMBER MARK ABOVE
m_lst_code_range.Add(new RangeInfo() { Start = 0x00600, End = 0x00605, Type = Format });
// Po [2] ARABIC COMMA..ARABIC DATE SEPARATOR
m_lst_code_range.Add(new RangeInfo() { Start = 0x0060C, End = 0x0060D, Type = MidNum });
// Mn [11] ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM..ARABIC SMALL KASRA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00610, End = 0x0061A, Type = Extend });
// Lo [32] ARABIC LETTER KASHMIRI YEH..ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE
m_lst_code_range.Add(new RangeInfo() { Start = 0x00620, End = 0x0063F, Type = ALetter });
// Lo [10] ARABIC LETTER FEH..ARABIC LETTER YEH
m_lst_code_range.Add(new RangeInfo() { Start = 0x00641, End = 0x0064A, Type = ALetter });
// Mn [21] ARABIC FATHATAN..ARABIC WAVY HAMZA BELOW
m_lst_code_range.Add(new RangeInfo() { Start = 0x0064B, End = 0x0065F, Type = Extend });
// Nd [10] ARABIC-INDIC DIGIT ZERO..ARABIC-INDIC DIGIT NINE
m_lst_code_range.Add(new RangeInfo() { Start = 0x00660, End = 0x00669, Type = Numeric });
// Lo [2] ARABIC LETTER DOTLESS BEH..ARABIC LETTER DOTLESS QAF
m_lst_code_range.Add(new RangeInfo() { Start = 0x0066E, End = 0x0066F, Type = ALetter });
// Lo [99] ARABIC LETTER ALEF WASLA..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE
m_lst_code_range.Add(new RangeInfo() { Start = 0x00671, End = 0x006D3, Type = ALetter });
// Mn [7] ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA..ARABIC SMALL HIGH SEEN
m_lst_code_range.Add(new RangeInfo() { Start = 0x006D6, End = 0x006DC, Type = Extend });
// Mn [6] ARABIC SMALL HIGH ROUNDED ZERO..ARABIC SMALL HIGH MADDA
m_lst_code_range.Add(new RangeInfo() { Start = 0x006DF, End = 0x006E4, Type = Extend });
// Lm [2] ARABIC SMALL WAW..ARABIC SMALL YEH
m_lst_code_range.Add(new RangeInfo() { Start = 0x006E5, End = 0x006E6, Type = ALetter });
// Mn [2] ARABIC SMALL HIGH YEH..ARABIC SMALL HIGH NOON
m_lst_code_range.Add(new RangeInfo() { Start = 0x006E7, End = 0x006E8, Type = Extend });
// Mn [4] ARABIC EMPTY CENTRE LOW STOP..ARABIC SMALL LOW MEEM
m_lst_code_range.Add(new RangeInfo() { Start = 0x006EA, End = 0x006ED, Type = Extend });
// Lo [2] ARABIC LETTER DAL WITH INVERTED V..ARABIC LETTER REH WITH INVERTED V
m_lst_code_range.Add(new RangeInfo() { Start = 0x006EE, End = 0x006EF, Type = ALetter });
// Nd [10] EXTENDED ARABIC-INDIC DIGIT ZERO..EXTENDED ARABIC-INDIC DIGIT NINE
m_lst_code_range.Add(new RangeInfo() { Start = 0x006F0, End = 0x006F9, Type = Numeric });
// Lo [3] ARABIC LETTER SHEEN WITH DOT BELOW..ARABIC LETTER GHAIN WITH DOT BELOW
m_lst_code_range.Add(new RangeInfo() { Start = 0x006FA, End = 0x006FC, Type = ALetter });
// Lo [30] SYRIAC LETTER BETH..SYRIAC LETTER PERSIAN DHALATH
m_lst_code_range.Add(new RangeInfo() { Start = 0x00712, End = 0x0072F, Type = ALetter });
// Mn [27] SYRIAC PTHAHA ABOVE..SYRIAC BARREKH
m_lst_code_range.Add(new RangeInfo() { Start = 0x00730, End = 0x0074A, Type = Extend });
// Lo [89] SYRIAC LETTER SOGDIAN ZHAIN..THAANA LETTER WAAVU
m_lst_code_range.Add(new RangeInfo() { Start = 0x0074D, End = 0x007A5, Type = ALetter });
// Mn [11] THAANA ABAFILI..THAANA SUKUN
m_lst_code_range.Add(new RangeInfo() { Start = 0x007A6, End = 0x007B0, Type = Extend });
// Nd [10] NKO DIGIT ZERO..NKO DIGIT NINE
m_lst_code_range.Add(new RangeInfo() { Start = 0x007C0, End = 0x007C9, Type = Numeric });
// Lo [33] NKO LETTER A..NKO LETTER JONA RA
m_lst_code_range.Add(new RangeInfo() { Start = 0x007CA, End = 0x007EA, Type = ALetter });
// Mn [9] NKO COMBINING SHORT HIGH TONE..NKO COMBINING DOUBLE DOT ABOVE
m_lst_code_range.Add(new RangeInfo() { Start = 0x007EB, End = 0x007F3, Type = Extend });
// Lm [2] NKO HIGH TONE APOSTROPHE..NKO LOW TONE APOSTROPHE
m_lst_code_range.Add(new RangeInfo() { Start = 0x007F4, End = 0x007F5, Type = ALetter });
// Lo [22] SAMARITAN LETTER ALAF..SAMARITAN LETTER TAAF
m_lst_code_range.Add(new RangeInfo() { Start = 0x00800, End = 0x00815, Type = ALetter });
// Mn [4] SAMARITAN MARK IN..SAMARITAN MARK DAGESH
m_lst_code_range.Add(new RangeInfo() { Start = 0x00816, End = 0x00819, Type = Extend });
// Mn [9] SAMARITAN MARK EPENTHETIC YUT..SAMARITAN VOWEL SIGN A
m_lst_code_range.Add(new RangeInfo() { Start = 0x0081B, End = 0x00823, Type = Extend });
// Mn [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U
m_lst_code_range.Add(new RangeInfo() { Start = 0x00825, End = 0x00827, Type = Extend });
// Mn [5] SAMARITAN VOWEL SIGN LONG I..SAMARITAN MARK NEQUDAA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00829, End = 0x0082D, Type = Extend });
// Lo [25] MANDAIC LETTER HALQA..MANDAIC LETTER AIN
m_lst_code_range.Add(new RangeInfo() { Start = 0x00840, End = 0x00858, Type = ALetter });
// Mn [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK
m_lst_code_range.Add(new RangeInfo() { Start = 0x00859, End = 0x0085B, Type = Extend });
// Lo [11] SYRIAC LETTER MALAYALAM NGA..SYRIAC LETTER MALAYALAM SSA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00860, End = 0x0086A, Type = ALetter });
// Lo [24] ARABIC LETTER ALEF WITH ATTACHED FATHA..ARABIC BASELINE ROUND DOT
m_lst_code_range.Add(new RangeInfo() { Start = 0x00870, End = 0x00887, Type = ALetter });
// Lo [6] ARABIC LETTER NOON WITH INVERTED SMALL V..ARABIC VERTICAL TAIL
m_lst_code_range.Add(new RangeInfo() { Start = 0x00889, End = 0x0088E, Type = ALetter });
// Cf [2] ARABIC POUND MARK ABOVE..ARABIC PIASTRE MARK ABOVE
m_lst_code_range.Add(new RangeInfo() { Start = 0x00890, End = 0x00891, Type = Format });
// Mn [8] ARABIC SMALL HIGH WORD AL-JUZ..ARABIC HALF MADDA OVER MADDA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00898, End = 0x0089F, Type = Extend });
// Lo [41] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER GRAF
m_lst_code_range.Add(new RangeInfo() { Start = 0x008A0, End = 0x008C8, Type = ALetter });
// Mn [24] ARABIC SMALL HIGH FARSI YEH..ARABIC SMALL HIGH SIGN SAFHA
m_lst_code_range.Add(new RangeInfo() { Start = 0x008CA, End = 0x008E1, Type = Extend });
// Mn [32] ARABIC TURNED DAMMA BELOW..DEVANAGARI SIGN ANUSVARA
m_lst_code_range.Add(new RangeInfo() { Start = 0x008E3, End = 0x00902, Type = Extend });
// Lo [54] DEVANAGARI LETTER SHORT A..DEVANAGARI LETTER HA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00904, End = 0x00939, Type = ALetter });
// Mc [3] DEVANAGARI VOWEL SIGN AA..DEVANAGARI VOWEL SIGN II
m_lst_code_range.Add(new RangeInfo() { Start = 0x0093E, End = 0x00940, Type = Extend });
// Mn [8] DEVANAGARI VOWEL SIGN U..DEVANAGARI VOWEL SIGN AI
m_lst_code_range.Add(new RangeInfo() { Start = 0x00941, End = 0x00948, Type = Extend });
// Mc [4] DEVANAGARI VOWEL SIGN CANDRA O..DEVANAGARI VOWEL SIGN AU
m_lst_code_range.Add(new RangeInfo() { Start = 0x00949, End = 0x0094C, Type = Extend });
// Mc [2] DEVANAGARI VOWEL SIGN PRISHTHAMATRA E..DEVANAGARI VOWEL SIGN AW
m_lst_code_range.Add(new RangeInfo() { Start = 0x0094E, End = 0x0094F, Type = Extend });
// Mn [7] DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI VOWEL SIGN UUE
m_lst_code_range.Add(new RangeInfo() { Start = 0x00951, End = 0x00957, Type = Extend });
// Lo [10] DEVANAGARI LETTER QA..DEVANAGARI LETTER VOCALIC LL
m_lst_code_range.Add(new RangeInfo() { Start = 0x00958, End = 0x00961, Type = ALetter });
// Mn [2] DEVANAGARI VOWEL SIGN VOCALIC L..DEVANAGARI VOWEL SIGN VOCALIC LL
m_lst_code_range.Add(new RangeInfo() { Start = 0x00962, End = 0x00963, Type = Extend });
// Nd [10] DEVANAGARI DIGIT ZERO..DEVANAGARI DIGIT NINE
m_lst_code_range.Add(new RangeInfo() { Start = 0x00966, End = 0x0096F, Type = Numeric });
// Lo [15] DEVANAGARI LETTER CANDRA A..BENGALI ANJI
m_lst_code_range.Add(new RangeInfo() { Start = 0x00972, End = 0x00980, Type = ALetter });
// Mc [2] BENGALI SIGN ANUSVARA..BENGALI SIGN VISARGA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00982, End = 0x00983, Type = Extend });
// Lo [8] BENGALI LETTER A..BENGALI LETTER VOCALIC L
m_lst_code_range.Add(new RangeInfo() { Start = 0x00985, End = 0x0098C, Type = ALetter });
// Lo [2] BENGALI LETTER E..BENGALI LETTER AI
m_lst_code_range.Add(new RangeInfo() { Start = 0x0098F, End = 0x00990, Type = ALetter });
// Lo [22] BENGALI LETTER O..BENGALI LETTER NA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00993, End = 0x009A8, Type = ALetter });
// Lo [7] BENGALI LETTER PA..BENGALI LETTER RA
m_lst_code_range.Add(new RangeInfo() { Start = 0x009AA, End = 0x009B0, Type = ALetter });
// Lo [4] BENGALI LETTER SHA..BENGALI LETTER HA
m_lst_code_range.Add(new RangeInfo() { Start = 0x009B6, End = 0x009B9, Type = ALetter });
// Mc [3] BENGALI VOWEL SIGN AA..BENGALI VOWEL SIGN II
m_lst_code_range.Add(new RangeInfo() { Start = 0x009BE, End = 0x009C0, Type = Extend });
// Mn [4] BENGALI VOWEL SIGN U..BENGALI VOWEL SIGN VOCALIC RR
m_lst_code_range.Add(new RangeInfo() { Start = 0x009C1, End = 0x009C4, Type = Extend });
// Mc [2] BENGALI VOWEL SIGN E..BENGALI VOWEL SIGN AI
m_lst_code_range.Add(new RangeInfo() { Start = 0x009C7, End = 0x009C8, Type = Extend });
// Mc [2] BENGALI VOWEL SIGN O..BENGALI VOWEL SIGN AU
m_lst_code_range.Add(new RangeInfo() { Start = 0x009CB, End = 0x009CC, Type = Extend });
// Lo [2] BENGALI LETTER RRA..BENGALI LETTER RHA
m_lst_code_range.Add(new RangeInfo() { Start = 0x009DC, End = 0x009DD, Type = ALetter });
// Lo [3] BENGALI LETTER YYA..BENGALI LETTER VOCALIC LL
m_lst_code_range.Add(new RangeInfo() { Start = 0x009DF, End = 0x009E1, Type = ALetter });
// Mn [2] BENGALI VOWEL SIGN VOCALIC L..BENGALI VOWEL SIGN VOCALIC LL
m_lst_code_range.Add(new RangeInfo() { Start = 0x009E2, End = 0x009E3, Type = Extend });
// Nd [10] BENGALI DIGIT ZERO..BENGALI DIGIT NINE
m_lst_code_range.Add(new RangeInfo() { Start = 0x009E6, End = 0x009EF, Type = Numeric });
// Lo [2] BENGALI LETTER RA WITH MIDDLE DIAGONAL..BENGALI LETTER RA WITH LOWER DIAGONAL
m_lst_code_range.Add(new RangeInfo() { Start = 0x009F0, End = 0x009F1, Type = ALetter });
// Mn [2] GURMUKHI SIGN ADAK BINDI..GURMUKHI SIGN BINDI
m_lst_code_range.Add(new RangeInfo() { Start = 0x00A01, End = 0x00A02, Type = Extend });
// Lo [6] GURMUKHI LETTER A..GURMUKHI LETTER UU
m_lst_code_range.Add(new RangeInfo() { Start = 0x00A05, End = 0x00A0A, Type = ALetter });
// Lo [2] GURMUKHI LETTER EE..GURMUKHI LETTER AI
m_lst_code_range.Add(new RangeInfo() { Start = 0x00A0F, End = 0x00A10, Type = ALetter });
// Lo [22] GURMUKHI LETTER OO..GURMUKHI LETTER NA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00A13, End = 0x00A28, Type = ALetter });
// Lo [7] GURMUKHI LETTER PA..GURMUKHI LETTER RA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00A2A, End = 0x00A30, Type = ALetter });
// Lo [2] GURMUKHI LETTER LA..GURMUKHI LETTER LLA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00A32, End = 0x00A33, Type = ALetter });
// Lo [2] GURMUKHI LETTER VA..GURMUKHI LETTER SHA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00A35, End = 0x00A36, Type = ALetter });
// Lo [2] GURMUKHI LETTER SA..GURMUKHI LETTER HA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00A38, End = 0x00A39, Type = ALetter });
// Mc [3] GURMUKHI VOWEL SIGN AA..GURMUKHI VOWEL SIGN II
m_lst_code_range.Add(new RangeInfo() { Start = 0x00A3E, End = 0x00A40, Type = Extend });
// Mn [2] GURMUKHI VOWEL SIGN U..GURMUKHI VOWEL SIGN UU
m_lst_code_range.Add(new RangeInfo() { Start = 0x00A41, End = 0x00A42, Type = Extend });
// Mn [2] GURMUKHI VOWEL SIGN EE..GURMUKHI VOWEL SIGN AI
m_lst_code_range.Add(new RangeInfo() { Start = 0x00A47, End = 0x00A48, Type = Extend });
// Mn [3] GURMUKHI VOWEL SIGN OO..GURMUKHI SIGN VIRAMA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00A4B, End = 0x00A4D, Type = Extend });
// Lo [4] GURMUKHI LETTER KHHA..GURMUKHI LETTER RRA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00A59, End = 0x00A5C, Type = ALetter });
// Nd [10] GURMUKHI DIGIT ZERO..GURMUKHI DIGIT NINE
m_lst_code_range.Add(new RangeInfo() { Start = 0x00A66, End = 0x00A6F, Type = Numeric });
// Mn [2] GURMUKHI TIPPI..GURMUKHI ADDAK
m_lst_code_range.Add(new RangeInfo() { Start = 0x00A70, End = 0x00A71, Type = Extend });
// Lo [3] GURMUKHI IRI..GURMUKHI EK ONKAR
m_lst_code_range.Add(new RangeInfo() { Start = 0x00A72, End = 0x00A74, Type = ALetter });
// Mn [2] GUJARATI SIGN CANDRABINDU..GUJARATI SIGN ANUSVARA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00A81, End = 0x00A82, Type = Extend });
// Lo [9] GUJARATI LETTER A..GUJARATI VOWEL CANDRA E
m_lst_code_range.Add(new RangeInfo() { Start = 0x00A85, End = 0x00A8D, Type = ALetter });
// Lo [3] GUJARATI LETTER E..GUJARATI VOWEL CANDRA O
m_lst_code_range.Add(new RangeInfo() { Start = 0x00A8F, End = 0x00A91, Type = ALetter });
// Lo [22] GUJARATI LETTER O..GUJARATI LETTER NA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00A93, End = 0x00AA8, Type = ALetter });
// Lo [7] GUJARATI LETTER PA..GUJARATI LETTER RA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00AAA, End = 0x00AB0, Type = ALetter });
// Lo [2] GUJARATI LETTER LA..GUJARATI LETTER LLA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00AB2, End = 0x00AB3, Type = ALetter });
// Lo [5] GUJARATI LETTER VA..GUJARATI LETTER HA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00AB5, End = 0x00AB9, Type = ALetter });
// Mc [3] GUJARATI VOWEL SIGN AA..GUJARATI VOWEL SIGN II
m_lst_code_range.Add(new RangeInfo() { Start = 0x00ABE, End = 0x00AC0, Type = Extend });
// Mn [5] GUJARATI VOWEL SIGN U..GUJARATI VOWEL SIGN CANDRA E
m_lst_code_range.Add(new RangeInfo() { Start = 0x00AC1, End = 0x00AC5, Type = Extend });
// Mn [2] GUJARATI VOWEL SIGN E..GUJARATI VOWEL SIGN AI
m_lst_code_range.Add(new RangeInfo() { Start = 0x00AC7, End = 0x00AC8, Type = Extend });
// Mc [2] GUJARATI VOWEL SIGN O..GUJARATI VOWEL SIGN AU
m_lst_code_range.Add(new RangeInfo() { Start = 0x00ACB, End = 0x00ACC, Type = Extend });
// Lo [2] GUJARATI LETTER VOCALIC RR..GUJARATI LETTER VOCALIC LL
m_lst_code_range.Add(new RangeInfo() { Start = 0x00AE0, End = 0x00AE1, Type = ALetter });
// Mn [2] GUJARATI VOWEL SIGN VOCALIC L..GUJARATI VOWEL SIGN VOCALIC LL
m_lst_code_range.Add(new RangeInfo() { Start = 0x00AE2, End = 0x00AE3, Type = Extend });
// Nd [10] GUJARATI DIGIT ZERO..GUJARATI DIGIT NINE
m_lst_code_range.Add(new RangeInfo() { Start = 0x00AE6, End = 0x00AEF, Type = Numeric });
// Mn [6] GUJARATI SIGN SUKUN..GUJARATI SIGN TWO-CIRCLE NUKTA ABOVE
m_lst_code_range.Add(new RangeInfo() { Start = 0x00AFA, End = 0x00AFF, Type = Extend });
// Mc [2] ORIYA SIGN ANUSVARA..ORIYA SIGN VISARGA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00B02, End = 0x00B03, Type = Extend });
// Lo [8] ORIYA LETTER A..ORIYA LETTER VOCALIC L
m_lst_code_range.Add(new RangeInfo() { Start = 0x00B05, End = 0x00B0C, Type = ALetter });
// Lo [2] ORIYA LETTER E..ORIYA LETTER AI
m_lst_code_range.Add(new RangeInfo() { Start = 0x00B0F, End = 0x00B10, Type = ALetter });
// Lo [22] ORIYA LETTER O..ORIYA LETTER NA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00B13, End = 0x00B28, Type = ALetter });
// Lo [7] ORIYA LETTER PA..ORIYA LETTER RA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00B2A, End = 0x00B30, Type = ALetter });
// Lo [2] ORIYA LETTER LA..ORIYA LETTER LLA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00B32, End = 0x00B33, Type = ALetter });
// Lo [5] ORIYA LETTER VA..ORIYA LETTER HA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00B35, End = 0x00B39, Type = ALetter });
// Mn [4] ORIYA VOWEL SIGN U..ORIYA VOWEL SIGN VOCALIC RR
m_lst_code_range.Add(new RangeInfo() { Start = 0x00B41, End = 0x00B44, Type = Extend });
// Mc [2] ORIYA VOWEL SIGN E..ORIYA VOWEL SIGN AI
m_lst_code_range.Add(new RangeInfo() { Start = 0x00B47, End = 0x00B48, Type = Extend });
// Mc [2] ORIYA VOWEL SIGN O..ORIYA VOWEL SIGN AU
m_lst_code_range.Add(new RangeInfo() { Start = 0x00B4B, End = 0x00B4C, Type = Extend });
// Mn [2] ORIYA SIGN OVERLINE..ORIYA AI LENGTH MARK
m_lst_code_range.Add(new RangeInfo() { Start = 0x00B55, End = 0x00B56, Type = Extend });
// Lo [2] ORIYA LETTER RRA..ORIYA LETTER RHA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00B5C, End = 0x00B5D, Type = ALetter });
// Lo [3] ORIYA LETTER YYA..ORIYA LETTER VOCALIC LL
m_lst_code_range.Add(new RangeInfo() { Start = 0x00B5F, End = 0x00B61, Type = ALetter });
// Mn [2] ORIYA VOWEL SIGN VOCALIC L..ORIYA VOWEL SIGN VOCALIC LL
m_lst_code_range.Add(new RangeInfo() { Start = 0x00B62, End = 0x00B63, Type = Extend });
// Nd [10] ORIYA DIGIT ZERO..ORIYA DIGIT NINE
m_lst_code_range.Add(new RangeInfo() { Start = 0x00B66, End = 0x00B6F, Type = Numeric });
// Lo [6] TAMIL LETTER A..TAMIL LETTER UU
m_lst_code_range.Add(new RangeInfo() { Start = 0x00B85, End = 0x00B8A, Type = ALetter });
// Lo [3] TAMIL LETTER E..TAMIL LETTER AI
m_lst_code_range.Add(new RangeInfo() { Start = 0x00B8E, End = 0x00B90, Type = ALetter });
// Lo [4] TAMIL LETTER O..TAMIL LETTER KA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00B92, End = 0x00B95, Type = ALetter });
// Lo [2] TAMIL LETTER NGA..TAMIL LETTER CA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00B99, End = 0x00B9A, Type = ALetter });
// Lo [2] TAMIL LETTER NYA..TAMIL LETTER TTA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00B9E, End = 0x00B9F, Type = ALetter });
// Lo [2] TAMIL LETTER NNA..TAMIL LETTER TA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00BA3, End = 0x00BA4, Type = ALetter });
// Lo [3] TAMIL LETTER NA..TAMIL LETTER PA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00BA8, End = 0x00BAA, Type = ALetter });
// Lo [12] TAMIL LETTER MA..TAMIL LETTER HA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00BAE, End = 0x00BB9, Type = ALetter });
// Mc [2] TAMIL VOWEL SIGN AA..TAMIL VOWEL SIGN I
m_lst_code_range.Add(new RangeInfo() { Start = 0x00BBE, End = 0x00BBF, Type = Extend });
// Mc [2] TAMIL VOWEL SIGN U..TAMIL VOWEL SIGN UU
m_lst_code_range.Add(new RangeInfo() { Start = 0x00BC1, End = 0x00BC2, Type = Extend });
// Mc [3] TAMIL VOWEL SIGN E..TAMIL VOWEL SIGN AI
m_lst_code_range.Add(new RangeInfo() { Start = 0x00BC6, End = 0x00BC8, Type = Extend });
// Mc [3] TAMIL VOWEL SIGN O..TAMIL VOWEL SIGN AU
m_lst_code_range.Add(new RangeInfo() { Start = 0x00BCA, End = 0x00BCC, Type = Extend });
// Nd [10] TAMIL DIGIT ZERO..TAMIL DIGIT NINE
m_lst_code_range.Add(new RangeInfo() { Start = 0x00BE6, End = 0x00BEF, Type = Numeric });
// Mc [3] TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00C01, End = 0x00C03, Type = Extend });
// Lo [8] TELUGU LETTER A..TELUGU LETTER VOCALIC L
m_lst_code_range.Add(new RangeInfo() { Start = 0x00C05, End = 0x00C0C, Type = ALetter });
// Lo [3] TELUGU LETTER E..TELUGU LETTER AI
m_lst_code_range.Add(new RangeInfo() { Start = 0x00C0E, End = 0x00C10, Type = ALetter });
// Lo [23] TELUGU LETTER O..TELUGU LETTER NA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00C12, End = 0x00C28, Type = ALetter });
// Lo [16] TELUGU LETTER PA..TELUGU LETTER HA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00C2A, End = 0x00C39, Type = ALetter });
// Mn [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II
m_lst_code_range.Add(new RangeInfo() { Start = 0x00C3E, End = 0x00C40, Type = Extend });
// Mc [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR
m_lst_code_range.Add(new RangeInfo() { Start = 0x00C41, End = 0x00C44, Type = Extend });
// Mn [3] TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI
m_lst_code_range.Add(new RangeInfo() { Start = 0x00C46, End = 0x00C48, Type = Extend });
// Mn [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00C4A, End = 0x00C4D, Type = Extend });
// Mn [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK
m_lst_code_range.Add(new RangeInfo() { Start = 0x00C55, End = 0x00C56, Type = Extend });
// Lo [3] TELUGU LETTER TSA..TELUGU LETTER RRRA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00C58, End = 0x00C5A, Type = ALetter });
// Lo [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL
m_lst_code_range.Add(new RangeInfo() { Start = 0x00C60, End = 0x00C61, Type = ALetter });
// Mn [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL
m_lst_code_range.Add(new RangeInfo() { Start = 0x00C62, End = 0x00C63, Type = Extend });
// Nd [10] TELUGU DIGIT ZERO..TELUGU DIGIT NINE
m_lst_code_range.Add(new RangeInfo() { Start = 0x00C66, End = 0x00C6F, Type = Numeric });
// Mc [2] KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00C82, End = 0x00C83, Type = Extend });
// Lo [8] KANNADA LETTER A..KANNADA LETTER VOCALIC L
m_lst_code_range.Add(new RangeInfo() { Start = 0x00C85, End = 0x00C8C, Type = ALetter });
// Lo [3] KANNADA LETTER E..KANNADA LETTER AI
m_lst_code_range.Add(new RangeInfo() { Start = 0x00C8E, End = 0x00C90, Type = ALetter });
// Lo [23] KANNADA LETTER O..KANNADA LETTER NA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00C92, End = 0x00CA8, Type = ALetter });
// Lo [10] KANNADA LETTER PA..KANNADA LETTER LLA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00CAA, End = 0x00CB3, Type = ALetter });
// Lo [5] KANNADA LETTER VA..KANNADA LETTER HA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00CB5, End = 0x00CB9, Type = ALetter });
// Mc [5] KANNADA VOWEL SIGN II..KANNADA VOWEL SIGN VOCALIC RR
m_lst_code_range.Add(new RangeInfo() { Start = 0x00CC0, End = 0x00CC4, Type = Extend });
// Mc [2] KANNADA VOWEL SIGN EE..KANNADA VOWEL SIGN AI
m_lst_code_range.Add(new RangeInfo() { Start = 0x00CC7, End = 0x00CC8, Type = Extend });
// Mc [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO
m_lst_code_range.Add(new RangeInfo() { Start = 0x00CCA, End = 0x00CCB, Type = Extend });
// Mn [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00CCC, End = 0x00CCD, Type = Extend });
// Mc [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK
m_lst_code_range.Add(new RangeInfo() { Start = 0x00CD5, End = 0x00CD6, Type = Extend });
// Lo [2] KANNADA LETTER NAKAARA POLLU..KANNADA LETTER FA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00CDD, End = 0x00CDE, Type = ALetter });
// Lo [2] KANNADA LETTER VOCALIC RR..KANNADA LETTER VOCALIC LL
m_lst_code_range.Add(new RangeInfo() { Start = 0x00CE0, End = 0x00CE1, Type = ALetter });
// Mn [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
m_lst_code_range.Add(new RangeInfo() { Start = 0x00CE2, End = 0x00CE3, Type = Extend });
// Nd [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE
m_lst_code_range.Add(new RangeInfo() { Start = 0x00CE6, End = 0x00CEF, Type = Numeric });
// Lo [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00CF1, End = 0x00CF2, Type = ALetter });
// Mn [2] MALAYALAM SIGN COMBINING ANUSVARA ABOVE..MALAYALAM SIGN CANDRABINDU
m_lst_code_range.Add(new RangeInfo() { Start = 0x00D00, End = 0x00D01, Type = Extend });
// Mc [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00D02, End = 0x00D03, Type = Extend });
// Lo [9] MALAYALAM LETTER VEDIC ANUSVARA..MALAYALAM LETTER VOCALIC L
m_lst_code_range.Add(new RangeInfo() { Start = 0x00D04, End = 0x00D0C, Type = ALetter });
// Lo [3] MALAYALAM LETTER E..MALAYALAM LETTER AI
m_lst_code_range.Add(new RangeInfo() { Start = 0x00D0E, End = 0x00D10, Type = ALetter });
// Lo [41] MALAYALAM LETTER O..MALAYALAM LETTER TTTA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00D12, End = 0x00D3A, Type = ALetter });
// Mn [2] MALAYALAM SIGN VERTICAL BAR VIRAMA..MALAYALAM SIGN CIRCULAR VIRAMA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00D3B, End = 0x00D3C, Type = Extend });
// Mc [3] MALAYALAM VOWEL SIGN AA..MALAYALAM VOWEL SIGN II
m_lst_code_range.Add(new RangeInfo() { Start = 0x00D3E, End = 0x00D40, Type = Extend });
// Mn [4] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN VOCALIC RR
m_lst_code_range.Add(new RangeInfo() { Start = 0x00D41, End = 0x00D44, Type = Extend });
// Mc [3] MALAYALAM VOWEL SIGN E..MALAYALAM VOWEL SIGN AI
m_lst_code_range.Add(new RangeInfo() { Start = 0x00D46, End = 0x00D48, Type = Extend });
// Mc [3] MALAYALAM VOWEL SIGN O..MALAYALAM VOWEL SIGN AU
m_lst_code_range.Add(new RangeInfo() { Start = 0x00D4A, End = 0x00D4C, Type = Extend });
// Lo [3] MALAYALAM LETTER CHILLU M..MALAYALAM LETTER CHILLU LLL
m_lst_code_range.Add(new RangeInfo() { Start = 0x00D54, End = 0x00D56, Type = ALetter });
// Lo [3] MALAYALAM LETTER ARCHAIC II..MALAYALAM LETTER VOCALIC LL
m_lst_code_range.Add(new RangeInfo() { Start = 0x00D5F, End = 0x00D61, Type = ALetter });
// Mn [2] MALAYALAM VOWEL SIGN VOCALIC L..MALAYALAM VOWEL SIGN VOCALIC LL
m_lst_code_range.Add(new RangeInfo() { Start = 0x00D62, End = 0x00D63, Type = Extend });
// Nd [10] MALAYALAM DIGIT ZERO..MALAYALAM DIGIT NINE
m_lst_code_range.Add(new RangeInfo() { Start = 0x00D66, End = 0x00D6F, Type = Numeric });
// Lo [6] MALAYALAM LETTER CHILLU NN..MALAYALAM LETTER CHILLU K
m_lst_code_range.Add(new RangeInfo() { Start = 0x00D7A, End = 0x00D7F, Type = ALetter });
// Mc [2] SINHALA SIGN ANUSVARAYA..SINHALA SIGN VISARGAYA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00D82, End = 0x00D83, Type = Extend });
// Lo [18] SINHALA LETTER AYANNA..SINHALA LETTER AUYANNA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00D85, End = 0x00D96, Type = ALetter });
// Lo [24] SINHALA LETTER ALPAPRAANA KAYANNA..SINHALA LETTER DANTAJA NAYANNA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00D9A, End = 0x00DB1, Type = ALetter });
// Lo [9] SINHALA LETTER SANYAKA DAYANNA..SINHALA LETTER RAYANNA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00DB3, End = 0x00DBB, Type = ALetter });
// Lo [7] SINHALA LETTER VAYANNA..SINHALA LETTER FAYANNA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00DC0, End = 0x00DC6, Type = ALetter });
// Mc [3] SINHALA VOWEL SIGN AELA-PILLA..SINHALA VOWEL SIGN DIGA AEDA-PILLA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00DCF, End = 0x00DD1, Type = Extend });
// Mn [3] SINHALA VOWEL SIGN KETTI IS-PILLA..SINHALA VOWEL SIGN KETTI PAA-PILLA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00DD2, End = 0x00DD4, Type = Extend });
// Mc [8] SINHALA VOWEL SIGN GAETTA-PILLA..SINHALA VOWEL SIGN GAYANUKITTA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00DD8, End = 0x00DDF, Type = Extend });
// Nd [10] SINHALA LITH DIGIT ZERO..SINHALA LITH DIGIT NINE
m_lst_code_range.Add(new RangeInfo() { Start = 0x00DE6, End = 0x00DEF, Type = Numeric });
// Mc [2] SINHALA VOWEL SIGN DIGA GAETTA-PILLA..SINHALA VOWEL SIGN DIGA GAYANUKITTA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00DF2, End = 0x00DF3, Type = Extend });
// Mn [7] THAI CHARACTER SARA I..THAI CHARACTER PHINTHU
m_lst_code_range.Add(new RangeInfo() { Start = 0x00E34, End = 0x00E3A, Type = Extend });
// Mn [8] THAI CHARACTER MAITAIKHU..THAI CHARACTER YAMAKKAN
m_lst_code_range.Add(new RangeInfo() { Start = 0x00E47, End = 0x00E4E, Type = Extend });
// Nd [10] THAI DIGIT ZERO..THAI DIGIT NINE
m_lst_code_range.Add(new RangeInfo() { Start = 0x00E50, End = 0x00E59, Type = Numeric });
// Mn [9] LAO VOWEL SIGN I..LAO SEMIVOWEL SIGN LO
m_lst_code_range.Add(new RangeInfo() { Start = 0x00EB4, End = 0x00EBC, Type = Extend });
// Mn [6] LAO TONE MAI EK..LAO NIGGAHITA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00EC8, End = 0x00ECD, Type = Extend });
// Nd [10] LAO DIGIT ZERO..LAO DIGIT NINE
m_lst_code_range.Add(new RangeInfo() { Start = 0x00ED0, End = 0x00ED9, Type = Numeric });
// Mn [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS
m_lst_code_range.Add(new RangeInfo() { Start = 0x00F18, End = 0x00F19, Type = Extend });
// Nd [10] TIBETAN DIGIT ZERO..TIBETAN DIGIT NINE
m_lst_code_range.Add(new RangeInfo() { Start = 0x00F20, End = 0x00F29, Type = Numeric });
// Mc [2] TIBETAN SIGN YAR TSHES..TIBETAN SIGN MAR TSHES
m_lst_code_range.Add(new RangeInfo() { Start = 0x00F3E, End = 0x00F3F, Type = Extend });
// Lo [8] TIBETAN LETTER KA..TIBETAN LETTER JA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00F40, End = 0x00F47, Type = ALetter });
// Lo [36] TIBETAN LETTER NYA..TIBETAN LETTER RRA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00F49, End = 0x00F6C, Type = ALetter });
// Mn [14] TIBETAN VOWEL SIGN AA..TIBETAN SIGN RJES SU NGA RO
m_lst_code_range.Add(new RangeInfo() { Start = 0x00F71, End = 0x00F7E, Type = Extend });
// Mn [5] TIBETAN VOWEL SIGN REVERSED I..TIBETAN MARK HALANTA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00F80, End = 0x00F84, Type = Extend });
// Mn [2] TIBETAN SIGN LCI RTAGS..TIBETAN SIGN YANG RTAGS
m_lst_code_range.Add(new RangeInfo() { Start = 0x00F86, End = 0x00F87, Type = Extend });
// Lo [5] TIBETAN SIGN LCE TSA CAN..TIBETAN SIGN INVERTED MCHU CAN
m_lst_code_range.Add(new RangeInfo() { Start = 0x00F88, End = 0x00F8C, Type = ALetter });
// Mn [11] TIBETAN SUBJOINED SIGN LCE TSA CAN..TIBETAN SUBJOINED LETTER JA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00F8D, End = 0x00F97, Type = Extend });
// Mn [36] TIBETAN SUBJOINED LETTER NYA..TIBETAN SUBJOINED LETTER FIXED-FORM RA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00F99, End = 0x00FBC, Type = Extend });
// Mc [2] MYANMAR VOWEL SIGN TALL AA..MYANMAR VOWEL SIGN AA
m_lst_code_range.Add(new RangeInfo() { Start = 0x0102B, End = 0x0102C, Type = Extend });
// Mn [4] MYANMAR VOWEL SIGN I..MYANMAR VOWEL SIGN UU
m_lst_code_range.Add(new RangeInfo() { Start = 0x0102D, End = 0x01030, Type = Extend });
// Mn [6] MYANMAR VOWEL SIGN AI..MYANMAR SIGN DOT BELOW
m_lst_code_range.Add(new RangeInfo() { Start = 0x01032, End = 0x01037, Type = Extend });
// Mn [2] MYANMAR SIGN VIRAMA..MYANMAR SIGN ASAT
m_lst_code_range.Add(new RangeInfo() { Start = 0x01039, End = 0x0103A, Type = Extend });
// Mc [2] MYANMAR CONSONANT SIGN MEDIAL YA..MYANMAR CONSONANT SIGN MEDIAL RA
m_lst_code_range.Add(new RangeInfo() { Start = 0x0103B, End = 0x0103C, Type = Extend });
// Mn [2] MYANMAR CONSONANT SIGN MEDIAL WA..MYANMAR CONSONANT SIGN MEDIAL HA
m_lst_code_range.Add(new RangeInfo() { Start = 0x0103D, End = 0x0103E, Type = Extend });
// Nd [10] MYANMAR DIGIT ZERO..MYANMAR DIGIT NINE
m_lst_code_range.Add(new RangeInfo() { Start = 0x01040, End = 0x01049, Type = Numeric });
// Mc [2] MYANMAR VOWEL SIGN VOCALIC R..MYANMAR VOWEL SIGN VOCALIC RR
m_lst_code_range.Add(new RangeInfo() { Start = 0x01056, End = 0x01057, Type = Extend });
// Mn [2] MYANMAR VOWEL SIGN VOCALIC L..MYANMAR VOWEL SIGN VOCALIC LL
m_lst_code_range.Add(new RangeInfo() { Start = 0x01058, End = 0x01059, Type = Extend });
// Mn [3] MYANMAR CONSONANT SIGN MON MEDIAL NA..MYANMAR CONSONANT SIGN MON MEDIAL LA
m_lst_code_range.Add(new RangeInfo() { Start = 0x0105E, End = 0x01060, Type = Extend });
// Mc [3] MYANMAR VOWEL SIGN SGAW KAREN EU..MYANMAR TONE MARK SGAW KAREN KE PHO
m_lst_code_range.Add(new RangeInfo() { Start = 0x01062, End = 0x01064, Type = Extend });
// Mc [7] MYANMAR VOWEL SIGN WESTERN PWO KAREN EU..MYANMAR SIGN WESTERN PWO KAREN TONE-5
m_lst_code_range.Add(new RangeInfo() { Start = 0x01067, End = 0x0106D, Type = Extend });
// Mn [4] MYANMAR VOWEL SIGN GEBA KAREN I..MYANMAR VOWEL SIGN KAYAH EE
m_lst_code_range.Add(new RangeInfo() { Start = 0x01071, End = 0x01074, Type = Extend });
// Mc [2] MYANMAR VOWEL SIGN SHAN AA..MYANMAR VOWEL SIGN SHAN E
m_lst_code_range.Add(new RangeInfo() { Start = 0x01083, End = 0x01084, Type = Extend });
// Mn [2] MYANMAR VOWEL SIGN SHAN E ABOVE..MYANMAR VOWEL SIGN SHAN FINAL Y
m_lst_code_range.Add(new RangeInfo() { Start = 0x01085, End = 0x01086, Type = Extend });
// Mc [6] MYANMAR SIGN SHAN TONE-2..MYANMAR SIGN SHAN COUNCIL TONE-3
m_lst_code_range.Add(new RangeInfo() { Start = 0x01087, End = 0x0108C, Type = Extend });
// Nd [10] MYANMAR SHAN DIGIT ZERO..MYANMAR SHAN DIGIT NINE
m_lst_code_range.Add(new RangeInfo() { Start = 0x01090, End = 0x01099, Type = Numeric });
// Mc [3] MYANMAR SIGN KHAMTI TONE-1..MYANMAR VOWEL SIGN AITON A
m_lst_code_range.Add(new RangeInfo() { Start = 0x0109A, End = 0x0109C, Type = Extend });
// L& [38] GEORGIAN CAPITAL LETTER AN..GEORGIAN CAPITAL LETTER HOE
m_lst_code_range.Add(new RangeInfo() { Start = 0x010A0, End = 0x010C5, Type = ALetter });
// L& [43] GEORGIAN LETTER AN..GEORGIAN LETTER AIN
m_lst_code_range.Add(new RangeInfo() { Start = 0x010D0, End = 0x010FA, Type = ALetter });
// L& [3] GEORGIAN LETTER AEN..GEORGIAN LETTER LABIAL SIGN
m_lst_code_range.Add(new RangeInfo() { Start = 0x010FD, End = 0x010FF, Type = ALetter });
// Lo [329] HANGUL CHOSEONG KIYEOK..ETHIOPIC SYLLABLE QWA
m_lst_code_range.Add(new RangeInfo() { Start = 0x01100, End = 0x01248, Type = ALetter });
// Lo [4] ETHIOPIC SYLLABLE QWI..ETHIOPIC SYLLABLE QWE
m_lst_code_range.Add(new RangeInfo() { Start = 0x0124A, End = 0x0124D, Type = ALetter });
// Lo [7] ETHIOPIC SYLLABLE QHA..ETHIOPIC SYLLABLE QHO
m_lst_code_range.Add(new RangeInfo() { Start = 0x01250, End = 0x01256, Type = ALetter });
// Lo [4] ETHIOPIC SYLLABLE QHWI..ETHIOPIC SYLLABLE QHWE
m_lst_code_range.Add(new RangeInfo() { Start = 0x0125A, End = 0x0125D, Type = ALetter });
// Lo [41] ETHIOPIC SYLLABLE BA..ETHIOPIC SYLLABLE XWA
m_lst_code_range.Add(new RangeInfo() { Start = 0x01260, End = 0x01288, Type = ALetter });
// Lo [4] ETHIOPIC SYLLABLE XWI..ETHIOPIC SYLLABLE XWE
m_lst_code_range.Add(new RangeInfo() { Start = 0x0128A, End = 0x0128D, Type = ALetter });
// Lo [33] ETHIOPIC SYLLABLE NA..ETHIOPIC SYLLABLE KWA
m_lst_code_range.Add(new RangeInfo() { Start = 0x01290, End = 0x012B0, Type = ALetter });
// Lo [4] ETHIOPIC SYLLABLE KWI..ETHIOPIC SYLLABLE KWE
m_lst_code_range.Add(new RangeInfo() { Start = 0x012B2, End = 0x012B5, Type = ALetter });
// Lo [7] ETHIOPIC SYLLABLE KXA..ETHIOPIC SYLLABLE KXO
m_lst_code_range.Add(new RangeInfo() { Start = 0x012B8, End = 0x012BE, Type = ALetter });
// Lo [4] ETHIOPIC SYLLABLE KXWI..ETHIOPIC SYLLABLE KXWE
m_lst_code_range.Add(new RangeInfo() { Start = 0x012C2, End = 0x012C5, Type = ALetter });
// Lo [15] ETHIOPIC SYLLABLE WA..ETHIOPIC SYLLABLE PHARYNGEAL O
m_lst_code_range.Add(new RangeInfo() { Start = 0x012C8, End = 0x012D6, Type = ALetter });
// Lo [57] ETHIOPIC SYLLABLE ZA..ETHIOPIC SYLLABLE GWA
m_lst_code_range.Add(new RangeInfo() { Start = 0x012D8, End = 0x01310, Type = ALetter });
// Lo [4] ETHIOPIC SYLLABLE GWI..ETHIOPIC SYLLABLE GWE
m_lst_code_range.Add(new RangeInfo() { Start = 0x01312, End = 0x01315, Type = ALetter });
// Lo [67] ETHIOPIC SYLLABLE GGA..ETHIOPIC SYLLABLE FYA
m_lst_code_range.Add(new RangeInfo() { Start = 0x01318, End = 0x0135A, Type = ALetter });
// Mn [3] ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK..ETHIOPIC COMBINING GEMINATION MARK
m_lst_code_range.Add(new RangeInfo() { Start = 0x0135D, End = 0x0135F, Type = Extend });
// Lo [16] ETHIOPIC SYLLABLE SEBATBEIT MWA..ETHIOPIC SYLLABLE PWE
m_lst_code_range.Add(new RangeInfo() { Start = 0x01380, End = 0x0138F, Type = ALetter });
// L& [86] CHEROKEE LETTER A..CHEROKEE LETTER MV
m_lst_code_range.Add(new RangeInfo() { Start = 0x013A0, End = 0x013F5, Type = ALetter });
// L& [6] CHEROKEE SMALL LETTER YE..CHEROKEE SMALL LETTER MV
m_lst_code_range.Add(new RangeInfo() { Start = 0x013F8, End = 0x013FD, Type = ALetter });
// Lo [620] CANADIAN SYLLABICS E..CANADIAN SYLLABICS CARRIER TTSA
m_lst_code_range.Add(new RangeInfo() { Start = 0x01401, End = 0x0166C, Type = ALetter });
// Lo [17] CANADIAN SYLLABICS QAI..CANADIAN SYLLABICS BLACKFOOT W
m_lst_code_range.Add(new RangeInfo() { Start = 0x0166F, End = 0x0167F, Type = ALetter });
// Lo [26] OGHAM LETTER BEITH..OGHAM LETTER PEITH
m_lst_code_range.Add(new RangeInfo() { Start = 0x01681, End = 0x0169A, Type = ALetter });
// Lo [75] RUNIC LETTER FEHU FEOH FE F..RUNIC LETTER X
m_lst_code_range.Add(new RangeInfo() { Start = 0x016A0, End = 0x016EA, Type = ALetter });
// Nl [3] RUNIC ARLAUG SYMBOL..RUNIC BELGTHOR SYMBOL
m_lst_code_range.Add(new RangeInfo() { Start = 0x016EE, End = 0x016F0, Type = ALetter });
// Lo [8] RUNIC LETTER K..RUNIC LETTER FRANKS CASKET AESC
m_lst_code_range.Add(new RangeInfo() { Start = 0x016F1, End = 0x016F8, Type = ALetter });
// Lo [18] TAGALOG LETTER A..TAGALOG LETTER HA
m_lst_code_range.Add(new RangeInfo() { Start = 0x01700, End = 0x01711, Type = ALetter });
// Mn [3] TAGALOG VOWEL SIGN I..TAGALOG SIGN VIRAMA
m_lst_code_range.Add(new RangeInfo() { Start = 0x01712, End = 0x01714, Type = Extend });
// Lo [19] TAGALOG LETTER ARCHAIC RA..HANUNOO LETTER HA
m_lst_code_range.Add(new RangeInfo() { Start = 0x0171F, End = 0x01731, Type = ALetter });
// Mn [2] HANUNOO VOWEL SIGN I..HANUNOO VOWEL SIGN U
m_lst_code_range.Add(new RangeInfo() { Start = 0x01732, End = 0x01733, Type = Extend });
// Lo [18] BUHID LETTER A..BUHID LETTER HA
m_lst_code_range.Add(new RangeInfo() { Start = 0x01740, End = 0x01751, Type = ALetter });
// Mn [2] BUHID VOWEL SIGN I..BUHID VOWEL SIGN U
m_lst_code_range.Add(new RangeInfo() { Start = 0x01752, End = 0x01753, Type = Extend });
// Lo [13] TAGBANWA LETTER A..TAGBANWA LETTER YA
m_lst_code_range.Add(new RangeInfo() { Start = 0x01760, End = 0x0176C, Type = ALetter });
// Lo [3] TAGBANWA LETTER LA..TAGBANWA LETTER SA
m_lst_code_range.Add(new RangeInfo() { Start = 0x0176E, End = 0x01770, Type = ALetter });
// Mn [2] TAGBANWA VOWEL SIGN I..TAGBANWA VOWEL SIGN U
m_lst_code_range.Add(new RangeInfo() { Start = 0x01772, End = 0x01773, Type = Extend });
// Mn [2] KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA
m_lst_code_range.Add(new RangeInfo() { Start = 0x017B4, End = 0x017B5, Type = Extend });
// Mn [7] KHMER VOWEL SIGN I..KHMER VOWEL SIGN UA
m_lst_code_range.Add(new RangeInfo() { Start = 0x017B7, End = 0x017BD, Type = Extend });
// Mc [8] KHMER VOWEL SIGN OE..KHMER VOWEL SIGN AU
m_lst_code_range.Add(new RangeInfo() { Start = 0x017BE, End = 0x017C5, Type = Extend });
// Mc [2] KHMER SIGN REAHMUK..KHMER SIGN YUUKALEAPINTU
m_lst_code_range.Add(new RangeInfo() { Start = 0x017C7, End = 0x017C8, Type = Extend });
// Mn [11] KHMER SIGN MUUSIKATOAN..KHMER SIGN BATHAMASAT
m_lst_code_range.Add(new RangeInfo() { Start = 0x017C9, End = 0x017D3, Type = Extend });
// Nd [10] KHMER DIGIT ZERO..KHMER DIGIT NINE
m_lst_code_range.Add(new RangeInfo() { Start = 0x017E0, End = 0x017E9, Type = Numeric });
// Mn [3] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE
m_lst_code_range.Add(new RangeInfo() { Start = 0x0180B, End = 0x0180D, Type = Extend });
// Nd [10] MONGOLIAN DIGIT ZERO..MONGOLIAN DIGIT NINE
m_lst_code_range.Add(new RangeInfo() { Start = 0x01810, End = 0x01819, Type = Numeric });
// Lo [35] MONGOLIAN LETTER A..MONGOLIAN LETTER CHI
m_lst_code_range.Add(new RangeInfo() { Start = 0x01820, End = 0x01842, Type = ALetter });
// Lo [53] MONGOLIAN LETTER TODO E..MONGOLIAN LETTER CHA WITH TWO DOTS
m_lst_code_range.Add(new RangeInfo() { Start = 0x01844, End = 0x01878, Type = ALetter });
// Lo [5] MONGOLIAN LETTER ALI GALI ANUSVARA ONE..MONGOLIAN LETTER ALI GALI INVERTED UBADAMA
m_lst_code_range.Add(new RangeInfo() { Start = 0x01880, End = 0x01884, Type = ALetter });
// Mn [2] MONGOLIAN LETTER ALI GALI BALUDA..MONGOLIAN LETTER ALI GALI THREE BALUDA
m_lst_code_range.Add(new RangeInfo() { Start = 0x01885, End = 0x01886, Type = Extend });
// Lo [34] MONGOLIAN LETTER ALI GALI A..MONGOLIAN LETTER MANCHU ALI GALI BHA
m_lst_code_range.Add(new RangeInfo() { Start = 0x01887, End = 0x018A8, Type = ALetter });
// Lo [70] CANADIAN SYLLABICS OY..CANADIAN SYLLABICS CARRIER DENTAL S
m_lst_code_range.Add(new RangeInfo() { Start = 0x018B0, End = 0x018F5, Type = ALetter });
// Lo [31] LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER TRA
m_lst_code_range.Add(new RangeInfo() { Start = 0x01900, End = 0x0191E, Type = ALetter });
// Mn [3] LIMBU VOWEL SIGN A..LIMBU VOWEL SIGN U
m_lst_code_range.Add(new RangeInfo() { Start = 0x01920, End = 0x01922, Type = Extend });
// Mc [4] LIMBU VOWEL SIGN EE..LIMBU VOWEL SIGN AU
m_lst_code_range.Add(new RangeInfo() { Start = 0x01923, End = 0x01926, Type = Extend });
// Mn [2] LIMBU VOWEL SIGN E..LIMBU VOWEL SIGN O
m_lst_code_range.Add(new RangeInfo() { Start = 0x01927, End = 0x01928, Type = Extend });
// Mc [3] LIMBU SUBJOINED LETTER YA..LIMBU SUBJOINED LETTER WA
m_lst_code_range.Add(new RangeInfo() { Start = 0x01929, End = 0x0192B, Type = Extend });
// Mc [2] LIMBU SMALL LETTER KA..LIMBU SMALL LETTER NGA
m_lst_code_range.Add(new RangeInfo() { Start = 0x01930, End = 0x01931, Type = Extend });
// Mc [6] LIMBU SMALL LETTER TA..LIMBU SMALL LETTER LA
m_lst_code_range.Add(new RangeInfo() { Start = 0x01933, End = 0x01938, Type = Extend });
// Mn [3] LIMBU SIGN MUKPHRENG..LIMBU SIGN SA-I
m_lst_code_range.Add(new RangeInfo() { Start = 0x01939, End = 0x0193B, Type = Extend });
// Nd [10] LIMBU DIGIT ZERO..LIMBU DIGIT NINE
m_lst_code_range.Add(new RangeInfo() { Start = 0x01946, End = 0x0194F, Type = Numeric });
// Nd [10] NEW TAI LUE DIGIT ZERO..NEW TAI LUE DIGIT NINE
m_lst_code_range.Add(new RangeInfo() { Start = 0x019D0, End = 0x019D9, Type = Numeric });
// Lo [23] BUGINESE LETTER KA..BUGINESE LETTER HA
m_lst_code_range.Add(new RangeInfo() { Start = 0x01A00, End = 0x01A16, Type = ALetter });
// Mn [2] BUGINESE VOWEL SIGN I..BUGINESE VOWEL SIGN U
m_lst_code_range.Add(new RangeInfo() { Start = 0x01A17, End = 0x01A18, Type = Extend });
// Mc [2] BUGINESE VOWEL SIGN E..BUGINESE VOWEL SIGN O
m_lst_code_range.Add(new RangeInfo() { Start = 0x01A19, End = 0x01A1A, Type = Extend });
// Mn [7] TAI THAM SIGN MAI KANG LAI..TAI THAM CONSONANT SIGN SA
m_lst_code_range.Add(new RangeInfo() { Start = 0x01A58, End = 0x01A5E, Type = Extend });
// Mc [2] TAI THAM VOWEL SIGN AA..TAI THAM VOWEL SIGN TALL AA
m_lst_code_range.Add(new RangeInfo() { Start = 0x01A63, End = 0x01A64, Type = Extend });
// Mn [8] TAI THAM VOWEL SIGN I..TAI THAM VOWEL SIGN OA BELOW
m_lst_code_range.Add(new RangeInfo() { Start = 0x01A65, End = 0x01A6C, Type = Extend });
// Mc [6] TAI THAM VOWEL SIGN OY..TAI THAM VOWEL SIGN THAM AI
m_lst_code_range.Add(new RangeInfo() { Start = 0x01A6D, End = 0x01A72, Type = Extend });
// Mn [10] TAI THAM VOWEL SIGN OA ABOVE..TAI THAM SIGN KHUEN-LUE KARAN
m_lst_code_range.Add(new RangeInfo() { Start = 0x01A73, End = 0x01A7C, Type = Extend });
// Nd [10] TAI THAM HORA DIGIT ZERO..TAI THAM HORA DIGIT NINE
m_lst_code_range.Add(new RangeInfo() { Start = 0x01A80, End = 0x01A89, Type = Numeric });
// Nd [10] TAI THAM THAM DIGIT ZERO..TAI THAM THAM DIGIT NINE
m_lst_code_range.Add(new RangeInfo() { Start = 0x01A90, End = 0x01A99, Type = Numeric });
// Mn [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW
m_lst_code_range.Add(new RangeInfo() { Start = 0x01AB0, End = 0x01ABD, Type = Extend });
// Mn [16] COMBINING LATIN SMALL LETTER W BELOW..COMBINING LATIN SMALL LETTER INSULAR T
m_lst_code_range.Add(new RangeInfo() { Start = 0x01ABF, End = 0x01ACE, Type = Extend });
// Mn [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG
m_lst_code_range.Add(new RangeInfo() { Start = 0x01B00, End = 0x01B03, Type = Extend });
// Lo [47] BALINESE LETTER AKARA..BALINESE LETTER HA
m_lst_code_range.Add(new RangeInfo() { Start = 0x01B05, End = 0x01B33, Type = ALetter });
// Mn [5] BALINESE VOWEL SIGN ULU..BALINESE VOWEL SIGN RA REPA
m_lst_code_range.Add(new RangeInfo() { Start = 0x01B36, End = 0x01B3A, Type = Extend });
// Mc [5] BALINESE VOWEL SIGN LA LENGA TEDUNG..BALINESE VOWEL SIGN TALING REPA TEDUNG
m_lst_code_range.Add(new RangeInfo() { Start = 0x01B3D, End = 0x01B41, Type = Extend });
// Mc [2] BALINESE VOWEL SIGN PEPET TEDUNG..BALINESE ADEG ADEG
m_lst_code_range.Add(new RangeInfo() { Start = 0x01B43, End = 0x01B44, Type = Extend });
// Lo [8] BALINESE LETTER KAF SASAK..BALINESE LETTER ARCHAIC JNYA
m_lst_code_range.Add(new RangeInfo() { Start = 0x01B45, End = 0x01B4C, Type = ALetter });
// Nd [10] BALINESE DIGIT ZERO..BALINESE DIGIT NINE
m_lst_code_range.Add(new RangeInfo() { Start = 0x01B50, End = 0x01B59, Type = Numeric });
// Mn [9] BALINESE MUSICAL SYMBOL COMBINING TEGEH..BALINESE MUSICAL SYMBOL COMBINING GONG
m_lst_code_range.Add(new RangeInfo() { Start = 0x01B6B, End = 0x01B73, Type = Extend });
// Mn [2] SUNDANESE SIGN PANYECEK..SUNDANESE SIGN PANGLAYAR
m_lst_code_range.Add(new RangeInfo() { Start = 0x01B80, End = 0x01B81, Type = Extend });
// Lo [30] SUNDANESE LETTER A..SUNDANESE LETTER HA
m_lst_code_range.Add(new RangeInfo() { Start = 0x01B83, End = 0x01BA0, Type = ALetter });
// Mn [4] SUNDANESE CONSONANT SIGN PANYAKRA..SUNDANESE VOWEL SIGN PANYUKU
m_lst_code_range.Add(new RangeInfo() { Start = 0x01BA2, End = 0x01BA5, Type = Extend });
// Mc [2] SUNDANESE VOWEL SIGN PANAELAENG..SUNDANESE VOWEL SIGN PANOLONG
m_lst_code_range.Add(new RangeInfo() { Start = 0x01BA6, End = 0x01BA7, Type = Extend });
// Mn [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG
m_lst_code_range.Add(new RangeInfo() { Start = 0x01BA8, End = 0x01BA9, Type = Extend });
// Mn [3] SUNDANESE SIGN VIRAMA..SUNDANESE CONSONANT SIGN PASANGAN WA
m_lst_code_range.Add(new RangeInfo() { Start = 0x01BAB, End = 0x01BAD, Type = Extend });
// Lo [2] SUNDANESE LETTER KHA..SUNDANESE LETTER SYA
m_lst_code_range.Add(new RangeInfo() { Start = 0x01BAE, End = 0x01BAF, Type = ALetter });
// Nd [10] SUNDANESE DIGIT ZERO..SUNDANESE DIGIT NINE
m_lst_code_range.Add(new RangeInfo() { Start = 0x01BB0, End = 0x01BB9, Type = Numeric });
// Lo [44] SUNDANESE AVAGRAHA..BATAK LETTER U
m_lst_code_range.Add(new RangeInfo() { Start = 0x01BBA, End = 0x01BE5, Type = ALetter });
// Mn [2] BATAK VOWEL SIGN PAKPAK E..BATAK VOWEL SIGN EE
m_lst_code_range.Add(new RangeInfo() { Start = 0x01BE8, End = 0x01BE9, Type = Extend });
// Mc [3] BATAK VOWEL SIGN I..BATAK VOWEL SIGN O
m_lst_code_range.Add(new RangeInfo() { Start = 0x01BEA, End = 0x01BEC, Type = Extend });
// Mn [3] BATAK VOWEL SIGN U FOR SIMALUNGUN SA..BATAK CONSONANT SIGN H
m_lst_code_range.Add(new RangeInfo() { Start = 0x01BEF, End = 0x01BF1, Type = Extend });
// Mc [2] BATAK PANGOLAT..BATAK PANONGONAN
m_lst_code_range.Add(new RangeInfo() { Start = 0x01BF2, End = 0x01BF3, Type = Extend });
// Lo [36] LEPCHA LETTER KA..LEPCHA LETTER A
m_lst_code_range.Add(new RangeInfo() { Start = 0x01C00, End = 0x01C23, Type = ALetter });
// Mc [8] LEPCHA SUBJOINED LETTER YA..LEPCHA VOWEL SIGN UU
m_lst_code_range.Add(new RangeInfo() { Start = 0x01C24, End = 0x01C2B, Type = Extend });
// Mn [8] LEPCHA VOWEL SIGN E..LEPCHA CONSONANT SIGN T
m_lst_code_range.Add(new RangeInfo() { Start = 0x01C2C, End = 0x01C33, Type = Extend });
// Mc [2] LEPCHA CONSONANT SIGN NYIN-DO..LEPCHA CONSONANT SIGN KANG
m_lst_code_range.Add(new RangeInfo() { Start = 0x01C34, End = 0x01C35, Type = Extend });
// Mn [2] LEPCHA SIGN RAN..LEPCHA SIGN NUKTA
m_lst_code_range.Add(new RangeInfo() { Start = 0x01C36, End = 0x01C37, Type = Extend });
// Nd [10] LEPCHA DIGIT ZERO..LEPCHA DIGIT NINE
m_lst_code_range.Add(new RangeInfo() { Start = 0x01C40, End = 0x01C49, Type = Numeric });
// Lo [3] LEPCHA LETTER TTA..LEPCHA LETTER DDA
m_lst_code_range.Add(new RangeInfo() { Start = 0x01C4D, End = 0x01C4F, Type = ALetter });
// Nd [10] OL CHIKI DIGIT ZERO..OL CHIKI DIGIT NINE
m_lst_code_range.Add(new RangeInfo() { Start = 0x01C50, End = 0x01C59, Type = Numeric });
// Lo [30] OL CHIKI LETTER LA..OL CHIKI LETTER OH
m_lst_code_range.Add(new RangeInfo() { Start = 0x01C5A, End = 0x01C77, Type = ALetter });
// Lm [6] OL CHIKI MU TTUDDAG..OL CHIKI AHAD
m_lst_code_range.Add(new RangeInfo() { Start = 0x01C78, End = 0x01C7D, Type = ALetter });
// L& [9] CYRILLIC SMALL LETTER ROUNDED VE..CYRILLIC SMALL LETTER UNBLENDED UK
m_lst_code_range.Add(new RangeInfo() { Start = 0x01C80, End = 0x01C88, Type = ALetter });
// L& [43] GEORGIAN MTAVRULI CAPITAL LETTER AN..GEORGIAN MTAVRULI CAPITAL LETTER AIN
m_lst_code_range.Add(new RangeInfo() { Start = 0x01C90, End = 0x01CBA, Type = ALetter });
// L& [3] GEORGIAN MTAVRULI CAPITAL LETTER AEN..GEORGIAN MTAVRULI CAPITAL LETTER LABIAL SIGN
m_lst_code_range.Add(new RangeInfo() { Start = 0x01CBD, End = 0x01CBF, Type = ALetter });
// Mn [3] VEDIC TONE KARSHANA..VEDIC TONE PRENKHA
m_lst_code_range.Add(new RangeInfo() { Start = 0x01CD0, End = 0x01CD2, Type = Extend });
// Mn [13] VEDIC SIGN YAJURVEDIC MIDLINE SVARITA..VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA
m_lst_code_range.Add(new RangeInfo() { Start = 0x01CD4, End = 0x01CE0, Type = Extend });
// Mn [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA ANUDATTA WITH TAIL
m_lst_code_range.Add(new RangeInfo() { Start = 0x01CE2, End = 0x01CE8, Type = Extend });
// Lo [4] VEDIC SIGN ANUSVARA ANTARGOMUKHA..VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL
m_lst_code_range.Add(new RangeInfo() { Start = 0x01CE9, End = 0x01CEC, Type = ALetter });
// Lo [6] VEDIC SIGN HEXIFORM LONG ANUSVARA..VEDIC SIGN ROTATED ARDHAVISARGA
m_lst_code_range.Add(new RangeInfo() { Start = 0x01CEE, End = 0x01CF3, Type = ALetter });
// Lo [2] VEDIC SIGN JIHVAMULIYA..VEDIC SIGN UPADHMANIYA
m_lst_code_range.Add(new RangeInfo() { Start = 0x01CF5, End = 0x01CF6, Type = ALetter });
// Mn [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE
m_lst_code_range.Add(new RangeInfo() { Start = 0x01CF8, End = 0x01CF9, Type = Extend });
// L& [44] LATIN LETTER SMALL CAPITAL A..CYRILLIC LETTER SMALL CAPITAL EL
m_lst_code_range.Add(new RangeInfo() { Start = 0x01D00, End = 0x01D2B, Type = ALetter });
// Lm [63] MODIFIER LETTER CAPITAL A..GREEK SUBSCRIPT SMALL LETTER CHI
m_lst_code_range.Add(new RangeInfo() { Start = 0x01D2C, End = 0x01D6A, Type = ALetter });
// L& [13] LATIN SMALL LETTER UE..LATIN SMALL LETTER TURNED G
m_lst_code_range.Add(new RangeInfo() { Start = 0x01D6B, End = 0x01D77, Type = ALetter });
// L& [34] LATIN SMALL LETTER INSULAR G..LATIN SMALL LETTER EZH WITH RETROFLEX HOOK
m_lst_code_range.Add(new RangeInfo() { Start = 0x01D79, End = 0x01D9A, Type = ALetter });
// Lm [37] MODIFIER LETTER SMALL TURNED ALPHA..MODIFIER LETTER SMALL THETA
m_lst_code_range.Add(new RangeInfo() { Start = 0x01D9B, End = 0x01DBF, Type = ALetter });
// Mn [64] COMBINING DOTTED GRAVE ACCENT..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
m_lst_code_range.Add(new RangeInfo() { Start = 0x01DC0, End = 0x01DFF, Type = Extend });
// L& [278] LATIN CAPITAL LETTER A WITH RING BELOW..GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
m_lst_code_range.Add(new RangeInfo() { Start = 0x01E00, End = 0x01F15, Type = ALetter });
// L& [6] GREEK CAPITAL LETTER EPSILON WITH PSILI..GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
m_lst_code_range.Add(new RangeInfo() { Start = 0x01F18, End = 0x01F1D, Type = ALetter });
// L& [38] GREEK SMALL LETTER ETA WITH PSILI..GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
m_lst_code_range.Add(new RangeInfo() { Start = 0x01F20, End = 0x01F45, Type = ALetter });
// L& [6] GREEK CAPITAL LETTER OMICRON WITH PSILI..GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
m_lst_code_range.Add(new RangeInfo() { Start = 0x01F48, End = 0x01F4D, Type = ALetter });
// L& [8] GREEK SMALL LETTER UPSILON WITH PSILI..GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI
m_lst_code_range.Add(new RangeInfo() { Start = 0x01F50, End = 0x01F57, Type = ALetter });
// L& [31] GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI..GREEK SMALL LETTER OMEGA WITH OXIA
m_lst_code_range.Add(new RangeInfo() { Start = 0x01F5F, End = 0x01F7D, Type = ALetter });
// L& [53] GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI..GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
m_lst_code_range.Add(new RangeInfo() { Start = 0x01F80, End = 0x01FB4, Type = ALetter });
// L& [7] GREEK SMALL LETTER ALPHA WITH PERISPOMENI..GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI
m_lst_code_range.Add(new RangeInfo() { Start = 0x01FB6, End = 0x01FBC, Type = ALetter });
// L& [3] GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
m_lst_code_range.Add(new RangeInfo() { Start = 0x01FC2, End = 0x01FC4, Type = ALetter });
// L& [7] GREEK SMALL LETTER ETA WITH PERISPOMENI..GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI
m_lst_code_range.Add(new RangeInfo() { Start = 0x01FC6, End = 0x01FCC, Type = ALetter });
// L& [4] GREEK SMALL LETTER IOTA WITH VRACHY..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA
m_lst_code_range.Add(new RangeInfo() { Start = 0x01FD0, End = 0x01FD3, Type = ALetter });
// L& [6] GREEK SMALL LETTER IOTA WITH PERISPOMENI..GREEK CAPITAL LETTER IOTA WITH OXIA
m_lst_code_range.Add(new RangeInfo() { Start = 0x01FD6, End = 0x01FDB, Type = ALetter });
// L& [13] GREEK SMALL LETTER UPSILON WITH VRACHY..GREEK CAPITAL LETTER RHO WITH DASIA
m_lst_code_range.Add(new RangeInfo() { Start = 0x01FE0, End = 0x01FEC, Type = ALetter });
// L& [3] GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
m_lst_code_range.Add(new RangeInfo() { Start = 0x01FF2, End = 0x01FF4, Type = ALetter });
// L& [7] GREEK SMALL LETTER OMEGA WITH PERISPOMENI..GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI
m_lst_code_range.Add(new RangeInfo() { Start = 0x01FF6, End = 0x01FFC, Type = ALetter });
// Zs [7] EN QUAD..SIX-PER-EM SPACE
m_lst_code_range.Add(new RangeInfo() { Start = 0x02000, End = 0x02006, Type = WSegSpace });
// Zs [3] PUNCTUATION SPACE..HAIR SPACE
m_lst_code_range.Add(new RangeInfo() { Start = 0x02008, End = 0x0200A, Type = WSegSpace });
// Cf [2] LEFT-TO-RIGHT MARK..RIGHT-TO-LEFT MARK
m_lst_code_range.Add(new RangeInfo() { Start = 0x0200E, End = 0x0200F, Type = Format });
// Cf [5] LEFT-TO-RIGHT EMBEDDING..RIGHT-TO-LEFT OVERRIDE
m_lst_code_range.Add(new RangeInfo() { Start = 0x0202A, End = 0x0202E, Type = Format });
// Pc [2] UNDERTIE..CHARACTER TIE
m_lst_code_range.Add(new RangeInfo() { Start = 0x0203F, End = 0x02040, Type = ExtendNumLet });
// Cf [5] WORD JOINER..INVISIBLE PLUS
m_lst_code_range.Add(new RangeInfo() { Start = 0x02060, End = 0x02064, Type = Format });
// Cf [10] LEFT-TO-RIGHT ISOLATE..NOMINAL DIGIT SHAPES
m_lst_code_range.Add(new RangeInfo() { Start = 0x02066, End = 0x0206F, Type = Format });
// Lm [13] LATIN SUBSCRIPT SMALL LETTER A..LATIN SUBSCRIPT SMALL LETTER T
m_lst_code_range.Add(new RangeInfo() { Start = 0x02090, End = 0x0209C, Type = ALetter });
// Mn [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE
m_lst_code_range.Add(new RangeInfo() { Start = 0x020D0, End = 0x020DC, Type = Extend });
// Me [4] COMBINING ENCLOSING CIRCLE..COMBINING ENCLOSING CIRCLE BACKSLASH
m_lst_code_range.Add(new RangeInfo() { Start = 0x020DD, End = 0x020E0, Type = Extend });
// Me [3] COMBINING ENCLOSING SCREEN..COMBINING ENCLOSING UPWARD POINTING TRIANGLE
m_lst_code_range.Add(new RangeInfo() { Start = 0x020E2, End = 0x020E4, Type = Extend });
// Mn [12] COMBINING REVERSE SOLIDUS OVERLAY..COMBINING ASTERISK ABOVE
m_lst_code_range.Add(new RangeInfo() { Start = 0x020E5, End = 0x020F0, Type = Extend });
// L& [10] SCRIPT SMALL G..SCRIPT SMALL L
m_lst_code_range.Add(new RangeInfo() { Start = 0x0210A, End = 0x02113, Type = ALetter });
// L& [5] DOUBLE-STRUCK CAPITAL P..DOUBLE-STRUCK CAPITAL R
m_lst_code_range.Add(new RangeInfo() { Start = 0x02119, End = 0x0211D, Type = ALetter });
// L& [4] KELVIN SIGN..BLACK-LETTER CAPITAL C
m_lst_code_range.Add(new RangeInfo() { Start = 0x0212A, End = 0x0212D, Type = ALetter });
// L& [6] SCRIPT SMALL E..SCRIPT SMALL O
m_lst_code_range.Add(new RangeInfo() { Start = 0x0212F, End = 0x02134, Type = ALetter });
// Lo [4] ALEF SYMBOL..DALET SYMBOL
m_lst_code_range.Add(new RangeInfo() { Start = 0x02135, End = 0x02138, Type = ALetter });
// L& [4] DOUBLE-STRUCK SMALL PI..DOUBLE-STRUCK CAPITAL PI
m_lst_code_range.Add(new RangeInfo() { Start = 0x0213C, End = 0x0213F, Type = ALetter });
// L& [5] DOUBLE-STRUCK ITALIC CAPITAL D..DOUBLE-STRUCK ITALIC SMALL J
m_lst_code_range.Add(new RangeInfo() { Start = 0x02145, End = 0x02149, Type = ALetter });
// Nl [35] ROMAN NUMERAL ONE..ROMAN NUMERAL TEN THOUSAND
m_lst_code_range.Add(new RangeInfo() { Start = 0x02160, End = 0x02182, Type = ALetter });
// L& [2] ROMAN NUMERAL REVERSED ONE HUNDRED..LATIN SMALL LETTER REVERSED C
m_lst_code_range.Add(new RangeInfo() { Start = 0x02183, End = 0x02184, Type = ALetter });
// Nl [4] ROMAN NUMERAL SIX LATE FORM..ROMAN NUMERAL ONE HUNDRED THOUSAND
m_lst_code_range.Add(new RangeInfo() { Start = 0x02185, End = 0x02188, Type = ALetter });
// E0.6 [6] (↔️..↙️) left-right arrow..down-left arrow
m_lst_code_range.Add(new RangeInfo() { Start = 0x02194, End = 0x02199, Type = Extended_Pictographic });
// E0.6 [2] (↩️..↪️) right arrow curving left..left arrow curving right
m_lst_code_range.Add(new RangeInfo() { Start = 0x021A9, End = 0x021AA, Type = Extended_Pictographic });
// E0.6 [2] (⌚..⌛) watch..hourglass done
m_lst_code_range.Add(new RangeInfo() { Start = 0x0231A, End = 0x0231B, Type = Extended_Pictographic });
// E0.6 [4] (⏩..⏬) fast-forward button..fast down button
m_lst_code_range.Add(new RangeInfo() { Start = 0x023E9, End = 0x023EC, Type = Extended_Pictographic });
// E0.7 [2] (⏭️..⏮️) next track button..last track button
m_lst_code_range.Add(new RangeInfo() { Start = 0x023ED, End = 0x023EE, Type = Extended_Pictographic });
// E1.0 [2] (⏱️..⏲️) stopwatch..timer clock
m_lst_code_range.Add(new RangeInfo() { Start = 0x023F1, End = 0x023F2, Type = Extended_Pictographic });
// E0.7 [3] (⏸️..⏺️) pause button..record button
m_lst_code_range.Add(new RangeInfo() { Start = 0x023F8, End = 0x023FA, Type = Extended_Pictographic });
// So [52] CIRCLED LATIN CAPITAL LETTER A..CIRCLED LATIN SMALL LETTER Z
m_lst_code_range.Add(new RangeInfo() { Start = 0x024B6, End = 0x024E9, Type = ALetter });
// E0.6 [2] (▪️..▫️) black small square..white small square
m_lst_code_range.Add(new RangeInfo() { Start = 0x025AA, End = 0x025AB, Type = Extended_Pictographic });
// E0.6 [4] (◻️..◾) white medium square..black medium-small square
m_lst_code_range.Add(new RangeInfo() { Start = 0x025FB, End = 0x025FE, Type = Extended_Pictographic });
// E0.6 [2] (☀️..☁️) sun..cloud
m_lst_code_range.Add(new RangeInfo() { Start = 0x02600, End = 0x02601, Type = Extended_Pictographic });
// E0.7 [2] (☂️..☃️) umbrella..snowman
m_lst_code_range.Add(new RangeInfo() { Start = 0x02602, End = 0x02603, Type = Extended_Pictographic });
// E0.0 [7] (☇..☍) LIGHTNING..OPPOSITION
m_lst_code_range.Add(new RangeInfo() { Start = 0x02607, End = 0x0260D, Type = Extended_Pictographic });
// E0.0 [2] (☏..☐) WHITE TELEPHONE..BALLOT BOX
m_lst_code_range.Add(new RangeInfo() { Start = 0x0260F, End = 0x02610, Type = Extended_Pictographic });
// E0.6 [2] (☔..☕) umbrella with rain drops..hot beverage
m_lst_code_range.Add(new RangeInfo() { Start = 0x02614, End = 0x02615, Type = Extended_Pictographic });
// E0.0 [2] (☖..☗) WHITE SHOGI PIECE..BLACK SHOGI PIECE
m_lst_code_range.Add(new RangeInfo() { Start = 0x02616, End = 0x02617, Type = Extended_Pictographic });
// E0.0 [4] (☙..☜) REVERSED ROTATED FLORAL HEART BULLET..WHITE LEFT POINTING INDEX
m_lst_code_range.Add(new RangeInfo() { Start = 0x02619, End = 0x0261C, Type = Extended_Pictographic });
// E0.0 [2] (☞..☟) WHITE RIGHT POINTING INDEX..WHITE DOWN POINTING INDEX
m_lst_code_range.Add(new RangeInfo() { Start = 0x0261E, End = 0x0261F, Type = Extended_Pictographic });
// E1.0 [2] (☢️..☣️) radioactive..biohazard
m_lst_code_range.Add(new RangeInfo() { Start = 0x02622, End = 0x02623, Type = Extended_Pictographic });
// E0.0 [2] (☤..☥) CADUCEUS..ANKH
m_lst_code_range.Add(new RangeInfo() { Start = 0x02624, End = 0x02625, Type = Extended_Pictographic });
// E0.0 [3] (☧..☩) CHI RHO..CROSS OF JERUSALEM
m_lst_code_range.Add(new RangeInfo() { Start = 0x02627, End = 0x02629, Type = Extended_Pictographic });
// E0.0 [3] (☫..☭) FARSI SYMBOL..HAMMER AND SICKLE
m_lst_code_range.Add(new RangeInfo() { Start = 0x0262B, End = 0x0262D, Type = Extended_Pictographic });
// E0.0 [8] (☰..☷) TRIGRAM FOR HEAVEN..TRIGRAM FOR EARTH
m_lst_code_range.Add(new RangeInfo() { Start = 0x02630, End = 0x02637, Type = Extended_Pictographic });
// E0.7 [2] (☸️..☹️) wheel of dharma..frowning face
m_lst_code_range.Add(new RangeInfo() { Start = 0x02638, End = 0x02639, Type = Extended_Pictographic });
// E0.0 [5] (☻..☿) BLACK SMILING FACE..MERCURY
m_lst_code_range.Add(new RangeInfo() { Start = 0x0263B, End = 0x0263F, Type = Extended_Pictographic });
// E0.0 [5] (♃..♇) JUPITER..PLUTO
m_lst_code_range.Add(new RangeInfo() { Start = 0x02643, End = 0x02647, Type = Extended_Pictographic });
// E0.6 [12] (♈..♓) Aries..Pisces
m_lst_code_range.Add(new RangeInfo() { Start = 0x02648, End = 0x02653, Type = Extended_Pictographic });
// E0.0 [11] (♔..♞) WHITE CHESS KING..BLACK CHESS KNIGHT
m_lst_code_range.Add(new RangeInfo() { Start = 0x02654, End = 0x0265E, Type = Extended_Pictographic });
// E0.0 [2] (♡..♢) WHITE HEART SUIT..WHITE DIAMOND SUIT
m_lst_code_range.Add(new RangeInfo() { Start = 0x02661, End = 0x02662, Type = Extended_Pictographic });
// E0.6 [2] (♥️..♦️) heart suit..diamond suit
m_lst_code_range.Add(new RangeInfo() { Start = 0x02665, End = 0x02666, Type = Extended_Pictographic });
// E0.0 [18] (♩..♺) QUARTER NOTE..RECYCLING SYMBOL FOR GENERIC MATERIALS
m_lst_code_range.Add(new RangeInfo() { Start = 0x02669, End = 0x0267A, Type = Extended_Pictographic });
// E0.0 [2] (♼..♽) RECYCLED PAPER SYMBOL..PARTIALLY-RECYCLED PAPER SYMBOL
m_lst_code_range.Add(new RangeInfo() { Start = 0x0267C, End = 0x0267D, Type = Extended_Pictographic });
// E0.0 [6] (⚀..⚅) DIE FACE-1..DIE FACE-6
m_lst_code_range.Add(new RangeInfo() { Start = 0x02680, End = 0x02685, Type = Extended_Pictographic });
// E0.0 [2] (⚐..⚑) WHITE FLAG..BLACK FLAG
m_lst_code_range.Add(new RangeInfo() { Start = 0x02690, End = 0x02691, Type = Extended_Pictographic });
// E1.0 [2] (⚖️..⚗️) balance scale..alembic
m_lst_code_range.Add(new RangeInfo() { Start = 0x02696, End = 0x02697, Type = Extended_Pictographic });
// E1.0 [2] (⚛️..⚜️) atom symbol..fleur-de-lis
m_lst_code_range.Add(new RangeInfo() { Start = 0x0269B, End = 0x0269C, Type = Extended_Pictographic });
// E0.0 [3] (⚝..⚟) OUTLINED WHITE STAR..THREE LINES CONVERGING LEFT
m_lst_code_range.Add(new RangeInfo() { Start = 0x0269D, End = 0x0269F, Type = Extended_Pictographic });
// E0.6 [2] (⚠️..⚡) warning..high voltage
m_lst_code_range.Add(new RangeInfo() { Start = 0x026A0, End = 0x026A1, Type = Extended_Pictographic });
// E0.0 [5] (⚢..⚦) DOUBLED FEMALE SIGN..MALE WITH STROKE SIGN
m_lst_code_range.Add(new RangeInfo() { Start = 0x026A2, End = 0x026A6, Type = Extended_Pictographic });
// E0.0 [2] (⚨..⚩) VERTICAL MALE WITH STROKE SIGN..HORIZONTAL MALE WITH STROKE SIGN
m_lst_code_range.Add(new RangeInfo() { Start = 0x026A8, End = 0x026A9, Type = Extended_Pictographic });
// E0.6 [2] (⚪..⚫) white circle..black circle
m_lst_code_range.Add(new RangeInfo() { Start = 0x026AA, End = 0x026AB, Type = Extended_Pictographic });
// E0.0 [4] (⚬..⚯) MEDIUM SMALL WHITE CIRCLE..UNMARRIED PARTNERSHIP SYMBOL
m_lst_code_range.Add(new RangeInfo() { Start = 0x026AC, End = 0x026AF, Type = Extended_Pictographic });
// E1.0 [2] (⚰️..⚱️) coffin..funeral urn
m_lst_code_range.Add(new RangeInfo() { Start = 0x026B0, End = 0x026B1, Type = Extended_Pictographic });
// E0.0 [11] (⚲..⚼) NEUTER..SESQUIQUADRATE
m_lst_code_range.Add(new RangeInfo() { Start = 0x026B2, End = 0x026BC, Type = Extended_Pictographic });
// E0.6 [2] (⚽..⚾) soccer ball..baseball
m_lst_code_range.Add(new RangeInfo() { Start = 0x026BD, End = 0x026BE, Type = Extended_Pictographic });
// E0.0 [5] (⚿..⛃) SQUARED KEY..BLACK DRAUGHTS KING
m_lst_code_range.Add(new RangeInfo() { Start = 0x026BF, End = 0x026C3, Type = Extended_Pictographic });
// E0.6 [2] (⛄..⛅) snowman without snow..sun behind cloud
m_lst_code_range.Add(new RangeInfo() { Start = 0x026C4, End = 0x026C5, Type = Extended_Pictographic });
// E0.0 [2] (⛆..⛇) RAIN..BLACK SNOWMAN
m_lst_code_range.Add(new RangeInfo() { Start = 0x026C6, End = 0x026C7, Type = Extended_Pictographic });
// E0.0 [5] (⛉..⛍) TURNED WHITE SHOGI PIECE..DISABLED CAR
m_lst_code_range.Add(new RangeInfo() { Start = 0x026C9, End = 0x026CD, Type = Extended_Pictographic });
// E0.0 [20] (⛕..⛨) ALTERNATE ONE-WAY LEFT WAY TRAFFIC..BLACK CROSS ON SHIELD
m_lst_code_range.Add(new RangeInfo() { Start = 0x026D5, End = 0x026E8, Type = Extended_Pictographic });
// E0.0 [5] (⛫..⛯) CASTLE..MAP SYMBOL FOR LIGHTHOUSE
m_lst_code_range.Add(new RangeInfo() { Start = 0x026EB, End = 0x026EF, Type = Extended_Pictographic });
// E0.7 [2] (⛰️..⛱️) mountain..umbrella on ground
m_lst_code_range.Add(new RangeInfo() { Start = 0x026F0, End = 0x026F1, Type = Extended_Pictographic });
// E0.6 [2] (⛲..⛳) fountain..flag in hole
m_lst_code_range.Add(new RangeInfo() { Start = 0x026F2, End = 0x026F3, Type = Extended_Pictographic });
// E0.7 [3] (⛷️..⛹️) skier..person bouncing ball
m_lst_code_range.Add(new RangeInfo() { Start = 0x026F7, End = 0x026F9, Type = Extended_Pictographic });
// E0.0 [2] (⛻..⛼) JAPANESE BANK SYMBOL..HEADSTONE GRAVEYARD SYMBOL
m_lst_code_range.Add(new RangeInfo() { Start = 0x026FB, End = 0x026FC, Type = Extended_Pictographic });
// E0.0 [4] (⛾..✁) CUP ON BLACK SQUARE..UPPER BLADE SCISSORS
m_lst_code_range.Add(new RangeInfo() { Start = 0x026FE, End = 0x02701, Type = Extended_Pictographic });
// E0.0 [2] (✃..✄) LOWER BLADE SCISSORS..WHITE SCISSORS
m_lst_code_range.Add(new RangeInfo() { Start = 0x02703, End = 0x02704, Type = Extended_Pictographic });
// E0.6 [5] (✈️..✌️) airplane..victory hand
m_lst_code_range.Add(new RangeInfo() { Start = 0x02708, End = 0x0270C, Type = Extended_Pictographic });
// E0.0 [2] (✐..✑) UPPER RIGHT PENCIL..WHITE NIB
m_lst_code_range.Add(new RangeInfo() { Start = 0x02710, End = 0x02711, Type = Extended_Pictographic });
// E0.6 [2] (✳️..✴️) eight-spoked asterisk..eight-pointed star
m_lst_code_range.Add(new RangeInfo() { Start = 0x02733, End = 0x02734, Type = Extended_Pictographic });
// E0.6 [3] (❓..❕) red question mark..white exclamation mark
m_lst_code_range.Add(new RangeInfo() { Start = 0x02753, End = 0x02755, Type = Extended_Pictographic });
// E0.0 [3] (❥..❧) ROTATED HEAVY BLACK HEART BULLET..ROTATED FLORAL HEART BULLET
m_lst_code_range.Add(new RangeInfo() { Start = 0x02765, End = 0x02767, Type = Extended_Pictographic });
// E0.6 [3] (➕..➗) plus..divide
m_lst_code_range.Add(new RangeInfo() { Start = 0x02795, End = 0x02797, Type = Extended_Pictographic });
// E0.6 [2] (⤴️..⤵️) right arrow curving up..right arrow curving down
m_lst_code_range.Add(new RangeInfo() { Start = 0x02934, End = 0x02935, Type = Extended_Pictographic });
// E0.6 [3] (⬅️..⬇️) left arrow..down arrow
m_lst_code_range.Add(new RangeInfo() { Start = 0x02B05, End = 0x02B07, Type = Extended_Pictographic });
// E0.6 [2] (⬛..⬜) black large square..white large square
m_lst_code_range.Add(new RangeInfo() { Start = 0x02B1B, End = 0x02B1C, Type = Extended_Pictographic });
// L& [124] GLAGOLITIC CAPITAL LETTER AZU..LATIN LETTER SMALL CAPITAL TURNED E
m_lst_code_range.Add(new RangeInfo() { Start = 0x02C00, End = 0x02C7B, Type = ALetter });
// Lm [2] LATIN SUBSCRIPT SMALL LETTER J..MODIFIER LETTER CAPITAL V
m_lst_code_range.Add(new RangeInfo() { Start = 0x02C7C, End = 0x02C7D, Type = ALetter });
// L& [103] LATIN CAPITAL LETTER S WITH SWASH TAIL..COPTIC SYMBOL KAI
m_lst_code_range.Add(new RangeInfo() { Start = 0x02C7E, End = 0x02CE4, Type = ALetter });
// L& [4] COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI..COPTIC SMALL LETTER CRYPTOGRAMMIC GANGIA
m_lst_code_range.Add(new RangeInfo() { Start = 0x02CEB, End = 0x02CEE, Type = ALetter });
// Mn [3] COPTIC COMBINING NI ABOVE..COPTIC COMBINING SPIRITUS LENIS
m_lst_code_range.Add(new RangeInfo() { Start = 0x02CEF, End = 0x02CF1, Type = Extend });
// L& [2] COPTIC CAPITAL LETTER BOHAIRIC KHEI..COPTIC SMALL LETTER BOHAIRIC KHEI
m_lst_code_range.Add(new RangeInfo() { Start = 0x02CF2, End = 0x02CF3, Type = ALetter });
// L& [38] GEORGIAN SMALL LETTER AN..GEORGIAN SMALL LETTER HOE
m_lst_code_range.Add(new RangeInfo() { Start = 0x02D00, End = 0x02D25, Type = ALetter });
// Lo [56] TIFINAGH LETTER YA..TIFINAGH LETTER YO