@d3plus/dom 3.1.1 → 3.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -14
- package/es/index.js +2 -0
- package/es/index.js.map +1 -0
- package/es/src/D3Selection.js +2 -0
- package/es/src/D3Selection.js.map +1 -0
- package/es/src/assign.js +2 -0
- package/es/src/assign.js.map +1 -0
- package/es/src/attrize.js +2 -0
- package/es/src/attrize.js.map +1 -0
- package/es/src/backgroundColor.js +2 -0
- package/es/src/backgroundColor.js.map +1 -0
- package/es/src/date.js +2 -0
- package/es/src/date.js.map +1 -0
- package/es/src/elem.js +2 -0
- package/es/src/elem.js.map +1 -0
- package/es/src/fontExists.js +2 -0
- package/es/src/fontExists.js.map +1 -0
- package/es/src/getSize.js +2 -0
- package/es/src/getSize.js.map +1 -0
- package/es/src/inViewport.js +2 -0
- package/es/src/inViewport.js.map +1 -0
- package/es/src/isObject.js +2 -0
- package/es/src/isObject.js.map +1 -0
- package/es/src/parseSides.js +2 -0
- package/es/src/parseSides.js.map +1 -0
- package/es/src/rtl.js +2 -0
- package/es/src/rtl.js.map +1 -0
- package/es/src/stylize.js +2 -0
- package/es/src/stylize.js.map +1 -0
- package/es/src/textWidth.js +2 -0
- package/es/src/textWidth.js.map +1 -0
- package/package.json +2 -2
- package/umd/d3plus-dom.full.js +4155 -501
- package/umd/d3plus-dom.full.js.map +1 -1
- package/umd/d3plus-dom.full.min.js +71 -44
- package/umd/d3plus-dom.js +1 -1
- package/umd/d3plus-dom.min.js +1 -1
package/umd/d3plus-dom.full.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
@d3plus/dom v3.1.
|
|
2
|
+
@d3plus/dom v3.1.2
|
|
3
3
|
JavaScript functions for manipulating and analyzing DOM elements.
|
|
4
4
|
Copyright (c) 2026 D3plus - https://d3plus.org
|
|
5
5
|
@license MIT
|
|
@@ -2382,12 +2382,11 @@
|
|
|
2382
2382
|
return update;
|
|
2383
2383
|
}
|
|
2384
2384
|
|
|
2385
|
-
//
|
|
2386
|
-
//
|
|
2387
|
-
//
|
|
2388
|
-
//
|
|
2389
|
-
|
|
2390
|
-
const baseTypes = [
|
|
2385
|
+
// Generated by scripts/generate-bidi-data.ts from scripts/unicode/DerivedBidiClass-17.0.0.txt.
|
|
2386
|
+
// Do not edit by hand. Regenerate with `bun run generate:bidi-data`.
|
|
2387
|
+
// Formatting and isolate controls are projected onto `BN` because the rich
|
|
2388
|
+
// bidi helper consumes a simplified class set and does not model UBA isolates.
|
|
2389
|
+
const latin1BidiTypes = [
|
|
2391
2390
|
'BN',
|
|
2392
2391
|
'BN',
|
|
2393
2392
|
'BN',
|
|
@@ -2431,11 +2430,11 @@
|
|
|
2431
2430
|
'ON',
|
|
2432
2431
|
'ON',
|
|
2433
2432
|
'ON',
|
|
2434
|
-
'
|
|
2433
|
+
'ES',
|
|
2434
|
+
'CS',
|
|
2435
|
+
'ES',
|
|
2435
2436
|
'CS',
|
|
2436
|
-
'ON',
|
|
2437
2437
|
'CS',
|
|
2438
|
-
'ON',
|
|
2439
2438
|
'EN',
|
|
2440
2439
|
'EN',
|
|
2441
2440
|
'EN',
|
|
@@ -2446,7 +2445,7 @@
|
|
|
2446
2445
|
'EN',
|
|
2447
2446
|
'EN',
|
|
2448
2447
|
'EN',
|
|
2449
|
-
'
|
|
2448
|
+
'CS',
|
|
2450
2449
|
'ON',
|
|
2451
2450
|
'ON',
|
|
2452
2451
|
'ON',
|
|
@@ -2561,7 +2560,7 @@
|
|
|
2561
2560
|
'L',
|
|
2562
2561
|
'ON',
|
|
2563
2562
|
'ON',
|
|
2564
|
-
'
|
|
2563
|
+
'BN',
|
|
2565
2564
|
'ON',
|
|
2566
2565
|
'ON',
|
|
2567
2566
|
'ET',
|
|
@@ -2645,269 +2644,3601 @@
|
|
|
2645
2644
|
'L',
|
|
2646
2645
|
'L'
|
|
2647
2646
|
];
|
|
2648
|
-
const
|
|
2649
|
-
|
|
2650
|
-
|
|
2651
|
-
|
|
2652
|
-
|
|
2653
|
-
|
|
2654
|
-
|
|
2655
|
-
|
|
2656
|
-
|
|
2657
|
-
|
|
2658
|
-
|
|
2659
|
-
|
|
2660
|
-
|
|
2661
|
-
|
|
2662
|
-
|
|
2663
|
-
|
|
2664
|
-
|
|
2665
|
-
|
|
2666
|
-
|
|
2667
|
-
|
|
2668
|
-
|
|
2669
|
-
|
|
2670
|
-
|
|
2671
|
-
|
|
2672
|
-
|
|
2673
|
-
|
|
2674
|
-
|
|
2675
|
-
|
|
2676
|
-
|
|
2677
|
-
|
|
2678
|
-
|
|
2679
|
-
|
|
2680
|
-
|
|
2681
|
-
|
|
2682
|
-
|
|
2683
|
-
|
|
2684
|
-
|
|
2685
|
-
|
|
2686
|
-
|
|
2687
|
-
|
|
2688
|
-
|
|
2689
|
-
|
|
2690
|
-
|
|
2691
|
-
|
|
2692
|
-
|
|
2693
|
-
|
|
2694
|
-
|
|
2695
|
-
|
|
2696
|
-
|
|
2697
|
-
|
|
2698
|
-
|
|
2699
|
-
|
|
2700
|
-
|
|
2701
|
-
|
|
2702
|
-
|
|
2703
|
-
|
|
2704
|
-
|
|
2705
|
-
|
|
2706
|
-
|
|
2707
|
-
|
|
2708
|
-
|
|
2709
|
-
|
|
2710
|
-
|
|
2711
|
-
|
|
2712
|
-
|
|
2713
|
-
|
|
2714
|
-
|
|
2715
|
-
|
|
2716
|
-
|
|
2717
|
-
|
|
2718
|
-
|
|
2719
|
-
|
|
2720
|
-
|
|
2721
|
-
|
|
2722
|
-
|
|
2723
|
-
|
|
2724
|
-
|
|
2725
|
-
|
|
2726
|
-
|
|
2727
|
-
|
|
2728
|
-
|
|
2729
|
-
|
|
2730
|
-
|
|
2731
|
-
|
|
2732
|
-
|
|
2733
|
-
|
|
2734
|
-
|
|
2735
|
-
|
|
2736
|
-
|
|
2737
|
-
|
|
2738
|
-
|
|
2739
|
-
|
|
2740
|
-
|
|
2741
|
-
|
|
2742
|
-
|
|
2743
|
-
|
|
2744
|
-
|
|
2745
|
-
|
|
2746
|
-
|
|
2747
|
-
|
|
2748
|
-
|
|
2749
|
-
|
|
2750
|
-
|
|
2751
|
-
|
|
2752
|
-
|
|
2753
|
-
|
|
2754
|
-
|
|
2755
|
-
|
|
2756
|
-
|
|
2757
|
-
|
|
2758
|
-
|
|
2759
|
-
|
|
2760
|
-
|
|
2761
|
-
|
|
2762
|
-
|
|
2763
|
-
|
|
2764
|
-
|
|
2765
|
-
|
|
2766
|
-
|
|
2767
|
-
|
|
2768
|
-
|
|
2769
|
-
|
|
2770
|
-
|
|
2771
|
-
|
|
2772
|
-
|
|
2773
|
-
|
|
2774
|
-
|
|
2775
|
-
|
|
2776
|
-
|
|
2777
|
-
|
|
2778
|
-
|
|
2779
|
-
|
|
2780
|
-
|
|
2781
|
-
|
|
2782
|
-
|
|
2783
|
-
|
|
2784
|
-
|
|
2785
|
-
|
|
2786
|
-
|
|
2787
|
-
|
|
2788
|
-
|
|
2789
|
-
|
|
2790
|
-
|
|
2791
|
-
|
|
2792
|
-
|
|
2793
|
-
|
|
2794
|
-
|
|
2795
|
-
|
|
2796
|
-
|
|
2797
|
-
|
|
2798
|
-
|
|
2799
|
-
|
|
2800
|
-
|
|
2801
|
-
|
|
2802
|
-
|
|
2803
|
-
|
|
2804
|
-
|
|
2805
|
-
|
|
2806
|
-
|
|
2807
|
-
|
|
2808
|
-
|
|
2809
|
-
|
|
2810
|
-
|
|
2811
|
-
|
|
2812
|
-
|
|
2813
|
-
|
|
2814
|
-
|
|
2815
|
-
|
|
2816
|
-
|
|
2817
|
-
|
|
2818
|
-
|
|
2819
|
-
|
|
2820
|
-
|
|
2821
|
-
|
|
2822
|
-
|
|
2823
|
-
|
|
2824
|
-
|
|
2825
|
-
|
|
2826
|
-
|
|
2827
|
-
|
|
2828
|
-
|
|
2829
|
-
|
|
2830
|
-
|
|
2831
|
-
|
|
2832
|
-
|
|
2833
|
-
|
|
2834
|
-
|
|
2835
|
-
|
|
2836
|
-
|
|
2837
|
-
|
|
2838
|
-
|
|
2839
|
-
|
|
2840
|
-
|
|
2841
|
-
|
|
2842
|
-
|
|
2843
|
-
|
|
2844
|
-
|
|
2845
|
-
|
|
2846
|
-
|
|
2847
|
-
|
|
2848
|
-
|
|
2849
|
-
|
|
2850
|
-
|
|
2851
|
-
|
|
2852
|
-
|
|
2853
|
-
|
|
2854
|
-
|
|
2855
|
-
|
|
2856
|
-
|
|
2857
|
-
|
|
2858
|
-
|
|
2859
|
-
|
|
2860
|
-
|
|
2861
|
-
|
|
2862
|
-
|
|
2863
|
-
|
|
2864
|
-
|
|
2865
|
-
|
|
2866
|
-
|
|
2867
|
-
|
|
2868
|
-
|
|
2869
|
-
|
|
2870
|
-
|
|
2871
|
-
|
|
2872
|
-
|
|
2873
|
-
|
|
2874
|
-
|
|
2875
|
-
|
|
2876
|
-
|
|
2877
|
-
|
|
2878
|
-
|
|
2879
|
-
|
|
2880
|
-
|
|
2881
|
-
|
|
2882
|
-
|
|
2883
|
-
|
|
2884
|
-
|
|
2885
|
-
|
|
2886
|
-
|
|
2887
|
-
|
|
2888
|
-
|
|
2889
|
-
|
|
2890
|
-
|
|
2891
|
-
|
|
2892
|
-
|
|
2893
|
-
|
|
2894
|
-
|
|
2895
|
-
|
|
2896
|
-
|
|
2897
|
-
|
|
2898
|
-
|
|
2899
|
-
|
|
2900
|
-
|
|
2901
|
-
|
|
2902
|
-
|
|
2903
|
-
|
|
2904
|
-
|
|
2647
|
+
const nonLatin1BidiRanges = [
|
|
2648
|
+
[
|
|
2649
|
+
0x2B9,
|
|
2650
|
+
0x2BA,
|
|
2651
|
+
'ON'
|
|
2652
|
+
],
|
|
2653
|
+
[
|
|
2654
|
+
0x2C2,
|
|
2655
|
+
0x2CF,
|
|
2656
|
+
'ON'
|
|
2657
|
+
],
|
|
2658
|
+
[
|
|
2659
|
+
0x2D2,
|
|
2660
|
+
0x2DF,
|
|
2661
|
+
'ON'
|
|
2662
|
+
],
|
|
2663
|
+
[
|
|
2664
|
+
0x2E5,
|
|
2665
|
+
0x2ED,
|
|
2666
|
+
'ON'
|
|
2667
|
+
],
|
|
2668
|
+
[
|
|
2669
|
+
0x2EF,
|
|
2670
|
+
0x2FF,
|
|
2671
|
+
'ON'
|
|
2672
|
+
],
|
|
2673
|
+
[
|
|
2674
|
+
0x300,
|
|
2675
|
+
0x36F,
|
|
2676
|
+
'NSM'
|
|
2677
|
+
],
|
|
2678
|
+
[
|
|
2679
|
+
0x374,
|
|
2680
|
+
0x375,
|
|
2681
|
+
'ON'
|
|
2682
|
+
],
|
|
2683
|
+
[
|
|
2684
|
+
0x37E,
|
|
2685
|
+
0x37E,
|
|
2686
|
+
'ON'
|
|
2687
|
+
],
|
|
2688
|
+
[
|
|
2689
|
+
0x384,
|
|
2690
|
+
0x385,
|
|
2691
|
+
'ON'
|
|
2692
|
+
],
|
|
2693
|
+
[
|
|
2694
|
+
0x387,
|
|
2695
|
+
0x387,
|
|
2696
|
+
'ON'
|
|
2697
|
+
],
|
|
2698
|
+
[
|
|
2699
|
+
0x3F6,
|
|
2700
|
+
0x3F6,
|
|
2701
|
+
'ON'
|
|
2702
|
+
],
|
|
2703
|
+
[
|
|
2704
|
+
0x483,
|
|
2705
|
+
0x489,
|
|
2706
|
+
'NSM'
|
|
2707
|
+
],
|
|
2708
|
+
[
|
|
2709
|
+
0x58A,
|
|
2710
|
+
0x58A,
|
|
2711
|
+
'ON'
|
|
2712
|
+
],
|
|
2713
|
+
[
|
|
2714
|
+
0x58D,
|
|
2715
|
+
0x58E,
|
|
2716
|
+
'ON'
|
|
2717
|
+
],
|
|
2718
|
+
[
|
|
2719
|
+
0x58F,
|
|
2720
|
+
0x58F,
|
|
2721
|
+
'ET'
|
|
2722
|
+
],
|
|
2723
|
+
[
|
|
2724
|
+
0x590,
|
|
2725
|
+
0x590,
|
|
2726
|
+
'R'
|
|
2727
|
+
],
|
|
2728
|
+
[
|
|
2729
|
+
0x591,
|
|
2730
|
+
0x5BD,
|
|
2731
|
+
'NSM'
|
|
2732
|
+
],
|
|
2733
|
+
[
|
|
2734
|
+
0x5BE,
|
|
2735
|
+
0x5BE,
|
|
2736
|
+
'R'
|
|
2737
|
+
],
|
|
2738
|
+
[
|
|
2739
|
+
0x5BF,
|
|
2740
|
+
0x5BF,
|
|
2741
|
+
'NSM'
|
|
2742
|
+
],
|
|
2743
|
+
[
|
|
2744
|
+
0x5C0,
|
|
2745
|
+
0x5C0,
|
|
2746
|
+
'R'
|
|
2747
|
+
],
|
|
2748
|
+
[
|
|
2749
|
+
0x5C1,
|
|
2750
|
+
0x5C2,
|
|
2751
|
+
'NSM'
|
|
2752
|
+
],
|
|
2753
|
+
[
|
|
2754
|
+
0x5C3,
|
|
2755
|
+
0x5C3,
|
|
2756
|
+
'R'
|
|
2757
|
+
],
|
|
2758
|
+
[
|
|
2759
|
+
0x5C4,
|
|
2760
|
+
0x5C5,
|
|
2761
|
+
'NSM'
|
|
2762
|
+
],
|
|
2763
|
+
[
|
|
2764
|
+
0x5C6,
|
|
2765
|
+
0x5C6,
|
|
2766
|
+
'R'
|
|
2767
|
+
],
|
|
2768
|
+
[
|
|
2769
|
+
0x5C7,
|
|
2770
|
+
0x5C7,
|
|
2771
|
+
'NSM'
|
|
2772
|
+
],
|
|
2773
|
+
[
|
|
2774
|
+
0x5C8,
|
|
2775
|
+
0x5FF,
|
|
2776
|
+
'R'
|
|
2777
|
+
],
|
|
2778
|
+
[
|
|
2779
|
+
0x600,
|
|
2780
|
+
0x605,
|
|
2781
|
+
'AN'
|
|
2782
|
+
],
|
|
2783
|
+
[
|
|
2784
|
+
0x606,
|
|
2785
|
+
0x607,
|
|
2786
|
+
'ON'
|
|
2787
|
+
],
|
|
2788
|
+
[
|
|
2789
|
+
0x608,
|
|
2790
|
+
0x608,
|
|
2791
|
+
'AL'
|
|
2792
|
+
],
|
|
2793
|
+
[
|
|
2794
|
+
0x609,
|
|
2795
|
+
0x60A,
|
|
2796
|
+
'ET'
|
|
2797
|
+
],
|
|
2798
|
+
[
|
|
2799
|
+
0x60B,
|
|
2800
|
+
0x60B,
|
|
2801
|
+
'AL'
|
|
2802
|
+
],
|
|
2803
|
+
[
|
|
2804
|
+
0x60C,
|
|
2805
|
+
0x60C,
|
|
2806
|
+
'CS'
|
|
2807
|
+
],
|
|
2808
|
+
[
|
|
2809
|
+
0x60D,
|
|
2810
|
+
0x60D,
|
|
2811
|
+
'AL'
|
|
2812
|
+
],
|
|
2813
|
+
[
|
|
2814
|
+
0x60E,
|
|
2815
|
+
0x60F,
|
|
2816
|
+
'ON'
|
|
2817
|
+
],
|
|
2818
|
+
[
|
|
2819
|
+
0x610,
|
|
2820
|
+
0x61A,
|
|
2821
|
+
'NSM'
|
|
2822
|
+
],
|
|
2823
|
+
[
|
|
2824
|
+
0x61B,
|
|
2825
|
+
0x64A,
|
|
2826
|
+
'AL'
|
|
2827
|
+
],
|
|
2828
|
+
[
|
|
2829
|
+
0x64B,
|
|
2830
|
+
0x65F,
|
|
2831
|
+
'NSM'
|
|
2832
|
+
],
|
|
2833
|
+
[
|
|
2834
|
+
0x660,
|
|
2835
|
+
0x669,
|
|
2836
|
+
'AN'
|
|
2837
|
+
],
|
|
2838
|
+
[
|
|
2839
|
+
0x66A,
|
|
2840
|
+
0x66A,
|
|
2841
|
+
'ET'
|
|
2842
|
+
],
|
|
2843
|
+
[
|
|
2844
|
+
0x66B,
|
|
2845
|
+
0x66C,
|
|
2846
|
+
'AN'
|
|
2847
|
+
],
|
|
2848
|
+
[
|
|
2849
|
+
0x66D,
|
|
2850
|
+
0x66F,
|
|
2851
|
+
'AL'
|
|
2852
|
+
],
|
|
2853
|
+
[
|
|
2854
|
+
0x670,
|
|
2855
|
+
0x670,
|
|
2856
|
+
'NSM'
|
|
2857
|
+
],
|
|
2858
|
+
[
|
|
2859
|
+
0x671,
|
|
2860
|
+
0x6D5,
|
|
2861
|
+
'AL'
|
|
2862
|
+
],
|
|
2863
|
+
[
|
|
2864
|
+
0x6D6,
|
|
2865
|
+
0x6DC,
|
|
2866
|
+
'NSM'
|
|
2867
|
+
],
|
|
2868
|
+
[
|
|
2869
|
+
0x6DD,
|
|
2870
|
+
0x6DD,
|
|
2871
|
+
'AN'
|
|
2872
|
+
],
|
|
2873
|
+
[
|
|
2874
|
+
0x6DE,
|
|
2875
|
+
0x6DE,
|
|
2876
|
+
'ON'
|
|
2877
|
+
],
|
|
2878
|
+
[
|
|
2879
|
+
0x6DF,
|
|
2880
|
+
0x6E4,
|
|
2881
|
+
'NSM'
|
|
2882
|
+
],
|
|
2883
|
+
[
|
|
2884
|
+
0x6E5,
|
|
2885
|
+
0x6E6,
|
|
2886
|
+
'AL'
|
|
2887
|
+
],
|
|
2888
|
+
[
|
|
2889
|
+
0x6E7,
|
|
2890
|
+
0x6E8,
|
|
2891
|
+
'NSM'
|
|
2892
|
+
],
|
|
2893
|
+
[
|
|
2894
|
+
0x6E9,
|
|
2895
|
+
0x6E9,
|
|
2896
|
+
'ON'
|
|
2897
|
+
],
|
|
2898
|
+
[
|
|
2899
|
+
0x6EA,
|
|
2900
|
+
0x6ED,
|
|
2901
|
+
'NSM'
|
|
2902
|
+
],
|
|
2903
|
+
[
|
|
2904
|
+
0x6EE,
|
|
2905
|
+
0x6EF,
|
|
2906
|
+
'AL'
|
|
2907
|
+
],
|
|
2908
|
+
[
|
|
2909
|
+
0x6F0,
|
|
2910
|
+
0x6F9,
|
|
2911
|
+
'EN'
|
|
2912
|
+
],
|
|
2913
|
+
[
|
|
2914
|
+
0x6FA,
|
|
2915
|
+
0x710,
|
|
2916
|
+
'AL'
|
|
2917
|
+
],
|
|
2918
|
+
[
|
|
2919
|
+
0x711,
|
|
2920
|
+
0x711,
|
|
2921
|
+
'NSM'
|
|
2922
|
+
],
|
|
2923
|
+
[
|
|
2924
|
+
0x712,
|
|
2925
|
+
0x72F,
|
|
2926
|
+
'AL'
|
|
2927
|
+
],
|
|
2928
|
+
[
|
|
2929
|
+
0x730,
|
|
2930
|
+
0x74A,
|
|
2931
|
+
'NSM'
|
|
2932
|
+
],
|
|
2933
|
+
[
|
|
2934
|
+
0x74B,
|
|
2935
|
+
0x7A5,
|
|
2936
|
+
'AL'
|
|
2937
|
+
],
|
|
2938
|
+
[
|
|
2939
|
+
0x7A6,
|
|
2940
|
+
0x7B0,
|
|
2941
|
+
'NSM'
|
|
2942
|
+
],
|
|
2943
|
+
[
|
|
2944
|
+
0x7B1,
|
|
2945
|
+
0x7BF,
|
|
2946
|
+
'AL'
|
|
2947
|
+
],
|
|
2948
|
+
[
|
|
2949
|
+
0x7C0,
|
|
2950
|
+
0x7EA,
|
|
2951
|
+
'R'
|
|
2952
|
+
],
|
|
2953
|
+
[
|
|
2954
|
+
0x7EB,
|
|
2955
|
+
0x7F3,
|
|
2956
|
+
'NSM'
|
|
2957
|
+
],
|
|
2958
|
+
[
|
|
2959
|
+
0x7F4,
|
|
2960
|
+
0x7F5,
|
|
2961
|
+
'R'
|
|
2962
|
+
],
|
|
2963
|
+
[
|
|
2964
|
+
0x7F6,
|
|
2965
|
+
0x7F9,
|
|
2966
|
+
'ON'
|
|
2967
|
+
],
|
|
2968
|
+
[
|
|
2969
|
+
0x7FA,
|
|
2970
|
+
0x7FC,
|
|
2971
|
+
'R'
|
|
2972
|
+
],
|
|
2973
|
+
[
|
|
2974
|
+
0x7FD,
|
|
2975
|
+
0x7FD,
|
|
2976
|
+
'NSM'
|
|
2977
|
+
],
|
|
2978
|
+
[
|
|
2979
|
+
0x7FE,
|
|
2980
|
+
0x815,
|
|
2981
|
+
'R'
|
|
2982
|
+
],
|
|
2983
|
+
[
|
|
2984
|
+
0x816,
|
|
2985
|
+
0x819,
|
|
2986
|
+
'NSM'
|
|
2987
|
+
],
|
|
2988
|
+
[
|
|
2989
|
+
0x81A,
|
|
2990
|
+
0x81A,
|
|
2991
|
+
'R'
|
|
2992
|
+
],
|
|
2993
|
+
[
|
|
2994
|
+
0x81B,
|
|
2995
|
+
0x823,
|
|
2996
|
+
'NSM'
|
|
2997
|
+
],
|
|
2998
|
+
[
|
|
2999
|
+
0x824,
|
|
3000
|
+
0x824,
|
|
3001
|
+
'R'
|
|
3002
|
+
],
|
|
3003
|
+
[
|
|
3004
|
+
0x825,
|
|
3005
|
+
0x827,
|
|
3006
|
+
'NSM'
|
|
3007
|
+
],
|
|
3008
|
+
[
|
|
3009
|
+
0x828,
|
|
3010
|
+
0x828,
|
|
3011
|
+
'R'
|
|
3012
|
+
],
|
|
3013
|
+
[
|
|
3014
|
+
0x829,
|
|
3015
|
+
0x82D,
|
|
3016
|
+
'NSM'
|
|
3017
|
+
],
|
|
3018
|
+
[
|
|
3019
|
+
0x82E,
|
|
3020
|
+
0x858,
|
|
3021
|
+
'R'
|
|
3022
|
+
],
|
|
3023
|
+
[
|
|
3024
|
+
0x859,
|
|
3025
|
+
0x85B,
|
|
3026
|
+
'NSM'
|
|
3027
|
+
],
|
|
3028
|
+
[
|
|
3029
|
+
0x85C,
|
|
3030
|
+
0x85F,
|
|
3031
|
+
'R'
|
|
3032
|
+
],
|
|
3033
|
+
[
|
|
3034
|
+
0x860,
|
|
3035
|
+
0x88F,
|
|
3036
|
+
'AL'
|
|
3037
|
+
],
|
|
3038
|
+
[
|
|
3039
|
+
0x890,
|
|
3040
|
+
0x891,
|
|
3041
|
+
'AN'
|
|
3042
|
+
],
|
|
3043
|
+
[
|
|
3044
|
+
0x892,
|
|
3045
|
+
0x896,
|
|
3046
|
+
'AL'
|
|
3047
|
+
],
|
|
3048
|
+
[
|
|
3049
|
+
0x897,
|
|
3050
|
+
0x89F,
|
|
3051
|
+
'NSM'
|
|
3052
|
+
],
|
|
3053
|
+
[
|
|
3054
|
+
0x8A0,
|
|
3055
|
+
0x8C9,
|
|
3056
|
+
'AL'
|
|
3057
|
+
],
|
|
3058
|
+
[
|
|
3059
|
+
0x8CA,
|
|
3060
|
+
0x8E1,
|
|
3061
|
+
'NSM'
|
|
3062
|
+
],
|
|
3063
|
+
[
|
|
3064
|
+
0x8E2,
|
|
3065
|
+
0x8E2,
|
|
3066
|
+
'AN'
|
|
3067
|
+
],
|
|
3068
|
+
[
|
|
3069
|
+
0x8E3,
|
|
3070
|
+
0x902,
|
|
3071
|
+
'NSM'
|
|
3072
|
+
],
|
|
3073
|
+
[
|
|
3074
|
+
0x93A,
|
|
3075
|
+
0x93A,
|
|
3076
|
+
'NSM'
|
|
3077
|
+
],
|
|
3078
|
+
[
|
|
3079
|
+
0x93C,
|
|
3080
|
+
0x93C,
|
|
3081
|
+
'NSM'
|
|
3082
|
+
],
|
|
3083
|
+
[
|
|
3084
|
+
0x941,
|
|
3085
|
+
0x948,
|
|
3086
|
+
'NSM'
|
|
3087
|
+
],
|
|
3088
|
+
[
|
|
3089
|
+
0x94D,
|
|
3090
|
+
0x94D,
|
|
3091
|
+
'NSM'
|
|
3092
|
+
],
|
|
3093
|
+
[
|
|
3094
|
+
0x951,
|
|
3095
|
+
0x957,
|
|
3096
|
+
'NSM'
|
|
3097
|
+
],
|
|
3098
|
+
[
|
|
3099
|
+
0x962,
|
|
3100
|
+
0x963,
|
|
3101
|
+
'NSM'
|
|
3102
|
+
],
|
|
3103
|
+
[
|
|
3104
|
+
0x981,
|
|
3105
|
+
0x981,
|
|
3106
|
+
'NSM'
|
|
3107
|
+
],
|
|
3108
|
+
[
|
|
3109
|
+
0x9BC,
|
|
3110
|
+
0x9BC,
|
|
3111
|
+
'NSM'
|
|
3112
|
+
],
|
|
3113
|
+
[
|
|
3114
|
+
0x9C1,
|
|
3115
|
+
0x9C4,
|
|
3116
|
+
'NSM'
|
|
3117
|
+
],
|
|
3118
|
+
[
|
|
3119
|
+
0x9CD,
|
|
3120
|
+
0x9CD,
|
|
3121
|
+
'NSM'
|
|
3122
|
+
],
|
|
3123
|
+
[
|
|
3124
|
+
0x9E2,
|
|
3125
|
+
0x9E3,
|
|
3126
|
+
'NSM'
|
|
3127
|
+
],
|
|
3128
|
+
[
|
|
3129
|
+
0x9F2,
|
|
3130
|
+
0x9F3,
|
|
3131
|
+
'ET'
|
|
3132
|
+
],
|
|
3133
|
+
[
|
|
3134
|
+
0x9FB,
|
|
3135
|
+
0x9FB,
|
|
3136
|
+
'ET'
|
|
3137
|
+
],
|
|
3138
|
+
[
|
|
3139
|
+
0x9FE,
|
|
3140
|
+
0x9FE,
|
|
3141
|
+
'NSM'
|
|
3142
|
+
],
|
|
3143
|
+
[
|
|
3144
|
+
0xA01,
|
|
3145
|
+
0xA02,
|
|
3146
|
+
'NSM'
|
|
3147
|
+
],
|
|
3148
|
+
[
|
|
3149
|
+
0xA3C,
|
|
3150
|
+
0xA3C,
|
|
3151
|
+
'NSM'
|
|
3152
|
+
],
|
|
3153
|
+
[
|
|
3154
|
+
0xA41,
|
|
3155
|
+
0xA42,
|
|
3156
|
+
'NSM'
|
|
3157
|
+
],
|
|
3158
|
+
[
|
|
3159
|
+
0xA47,
|
|
3160
|
+
0xA48,
|
|
3161
|
+
'NSM'
|
|
3162
|
+
],
|
|
3163
|
+
[
|
|
3164
|
+
0xA4B,
|
|
3165
|
+
0xA4D,
|
|
3166
|
+
'NSM'
|
|
3167
|
+
],
|
|
3168
|
+
[
|
|
3169
|
+
0xA51,
|
|
3170
|
+
0xA51,
|
|
3171
|
+
'NSM'
|
|
3172
|
+
],
|
|
3173
|
+
[
|
|
3174
|
+
0xA70,
|
|
3175
|
+
0xA71,
|
|
3176
|
+
'NSM'
|
|
3177
|
+
],
|
|
3178
|
+
[
|
|
3179
|
+
0xA75,
|
|
3180
|
+
0xA75,
|
|
3181
|
+
'NSM'
|
|
3182
|
+
],
|
|
3183
|
+
[
|
|
3184
|
+
0xA81,
|
|
3185
|
+
0xA82,
|
|
3186
|
+
'NSM'
|
|
3187
|
+
],
|
|
3188
|
+
[
|
|
3189
|
+
0xABC,
|
|
3190
|
+
0xABC,
|
|
3191
|
+
'NSM'
|
|
3192
|
+
],
|
|
3193
|
+
[
|
|
3194
|
+
0xAC1,
|
|
3195
|
+
0xAC5,
|
|
3196
|
+
'NSM'
|
|
3197
|
+
],
|
|
3198
|
+
[
|
|
3199
|
+
0xAC7,
|
|
3200
|
+
0xAC8,
|
|
3201
|
+
'NSM'
|
|
3202
|
+
],
|
|
3203
|
+
[
|
|
3204
|
+
0xACD,
|
|
3205
|
+
0xACD,
|
|
3206
|
+
'NSM'
|
|
3207
|
+
],
|
|
3208
|
+
[
|
|
3209
|
+
0xAE2,
|
|
3210
|
+
0xAE3,
|
|
3211
|
+
'NSM'
|
|
3212
|
+
],
|
|
3213
|
+
[
|
|
3214
|
+
0xAF1,
|
|
3215
|
+
0xAF1,
|
|
3216
|
+
'ET'
|
|
3217
|
+
],
|
|
3218
|
+
[
|
|
3219
|
+
0xAFA,
|
|
3220
|
+
0xAFF,
|
|
3221
|
+
'NSM'
|
|
3222
|
+
],
|
|
3223
|
+
[
|
|
3224
|
+
0xB01,
|
|
3225
|
+
0xB01,
|
|
3226
|
+
'NSM'
|
|
3227
|
+
],
|
|
3228
|
+
[
|
|
3229
|
+
0xB3C,
|
|
3230
|
+
0xB3C,
|
|
3231
|
+
'NSM'
|
|
3232
|
+
],
|
|
3233
|
+
[
|
|
3234
|
+
0xB3F,
|
|
3235
|
+
0xB3F,
|
|
3236
|
+
'NSM'
|
|
3237
|
+
],
|
|
3238
|
+
[
|
|
3239
|
+
0xB41,
|
|
3240
|
+
0xB44,
|
|
3241
|
+
'NSM'
|
|
3242
|
+
],
|
|
3243
|
+
[
|
|
3244
|
+
0xB4D,
|
|
3245
|
+
0xB4D,
|
|
3246
|
+
'NSM'
|
|
3247
|
+
],
|
|
3248
|
+
[
|
|
3249
|
+
0xB55,
|
|
3250
|
+
0xB56,
|
|
3251
|
+
'NSM'
|
|
3252
|
+
],
|
|
3253
|
+
[
|
|
3254
|
+
0xB62,
|
|
3255
|
+
0xB63,
|
|
3256
|
+
'NSM'
|
|
3257
|
+
],
|
|
3258
|
+
[
|
|
3259
|
+
0xB82,
|
|
3260
|
+
0xB82,
|
|
3261
|
+
'NSM'
|
|
3262
|
+
],
|
|
3263
|
+
[
|
|
3264
|
+
0xBC0,
|
|
3265
|
+
0xBC0,
|
|
3266
|
+
'NSM'
|
|
3267
|
+
],
|
|
3268
|
+
[
|
|
3269
|
+
0xBCD,
|
|
3270
|
+
0xBCD,
|
|
3271
|
+
'NSM'
|
|
3272
|
+
],
|
|
3273
|
+
[
|
|
3274
|
+
0xBF3,
|
|
3275
|
+
0xBF8,
|
|
3276
|
+
'ON'
|
|
3277
|
+
],
|
|
3278
|
+
[
|
|
3279
|
+
0xBF9,
|
|
3280
|
+
0xBF9,
|
|
3281
|
+
'ET'
|
|
3282
|
+
],
|
|
3283
|
+
[
|
|
3284
|
+
0xBFA,
|
|
3285
|
+
0xBFA,
|
|
3286
|
+
'ON'
|
|
3287
|
+
],
|
|
3288
|
+
[
|
|
3289
|
+
0xC00,
|
|
3290
|
+
0xC00,
|
|
3291
|
+
'NSM'
|
|
3292
|
+
],
|
|
3293
|
+
[
|
|
3294
|
+
0xC04,
|
|
3295
|
+
0xC04,
|
|
3296
|
+
'NSM'
|
|
3297
|
+
],
|
|
3298
|
+
[
|
|
3299
|
+
0xC3C,
|
|
3300
|
+
0xC3C,
|
|
3301
|
+
'NSM'
|
|
3302
|
+
],
|
|
3303
|
+
[
|
|
3304
|
+
0xC3E,
|
|
3305
|
+
0xC40,
|
|
3306
|
+
'NSM'
|
|
3307
|
+
],
|
|
3308
|
+
[
|
|
3309
|
+
0xC46,
|
|
3310
|
+
0xC48,
|
|
3311
|
+
'NSM'
|
|
3312
|
+
],
|
|
3313
|
+
[
|
|
3314
|
+
0xC4A,
|
|
3315
|
+
0xC4D,
|
|
3316
|
+
'NSM'
|
|
3317
|
+
],
|
|
3318
|
+
[
|
|
3319
|
+
0xC55,
|
|
3320
|
+
0xC56,
|
|
3321
|
+
'NSM'
|
|
3322
|
+
],
|
|
3323
|
+
[
|
|
3324
|
+
0xC62,
|
|
3325
|
+
0xC63,
|
|
3326
|
+
'NSM'
|
|
3327
|
+
],
|
|
3328
|
+
[
|
|
3329
|
+
0xC78,
|
|
3330
|
+
0xC7E,
|
|
3331
|
+
'ON'
|
|
3332
|
+
],
|
|
3333
|
+
[
|
|
3334
|
+
0xC81,
|
|
3335
|
+
0xC81,
|
|
3336
|
+
'NSM'
|
|
3337
|
+
],
|
|
3338
|
+
[
|
|
3339
|
+
0xCBC,
|
|
3340
|
+
0xCBC,
|
|
3341
|
+
'NSM'
|
|
3342
|
+
],
|
|
3343
|
+
[
|
|
3344
|
+
0xCCC,
|
|
3345
|
+
0xCCD,
|
|
3346
|
+
'NSM'
|
|
3347
|
+
],
|
|
3348
|
+
[
|
|
3349
|
+
0xCE2,
|
|
3350
|
+
0xCE3,
|
|
3351
|
+
'NSM'
|
|
3352
|
+
],
|
|
3353
|
+
[
|
|
3354
|
+
0xD00,
|
|
3355
|
+
0xD01,
|
|
3356
|
+
'NSM'
|
|
3357
|
+
],
|
|
3358
|
+
[
|
|
3359
|
+
0xD3B,
|
|
3360
|
+
0xD3C,
|
|
3361
|
+
'NSM'
|
|
3362
|
+
],
|
|
3363
|
+
[
|
|
3364
|
+
0xD41,
|
|
3365
|
+
0xD44,
|
|
3366
|
+
'NSM'
|
|
3367
|
+
],
|
|
3368
|
+
[
|
|
3369
|
+
0xD4D,
|
|
3370
|
+
0xD4D,
|
|
3371
|
+
'NSM'
|
|
3372
|
+
],
|
|
3373
|
+
[
|
|
3374
|
+
0xD62,
|
|
3375
|
+
0xD63,
|
|
3376
|
+
'NSM'
|
|
3377
|
+
],
|
|
3378
|
+
[
|
|
3379
|
+
0xD81,
|
|
3380
|
+
0xD81,
|
|
3381
|
+
'NSM'
|
|
3382
|
+
],
|
|
3383
|
+
[
|
|
3384
|
+
0xDCA,
|
|
3385
|
+
0xDCA,
|
|
3386
|
+
'NSM'
|
|
3387
|
+
],
|
|
3388
|
+
[
|
|
3389
|
+
0xDD2,
|
|
3390
|
+
0xDD4,
|
|
3391
|
+
'NSM'
|
|
3392
|
+
],
|
|
3393
|
+
[
|
|
3394
|
+
0xDD6,
|
|
3395
|
+
0xDD6,
|
|
3396
|
+
'NSM'
|
|
3397
|
+
],
|
|
3398
|
+
[
|
|
3399
|
+
0xE31,
|
|
3400
|
+
0xE31,
|
|
3401
|
+
'NSM'
|
|
3402
|
+
],
|
|
3403
|
+
[
|
|
3404
|
+
0xE34,
|
|
3405
|
+
0xE3A,
|
|
3406
|
+
'NSM'
|
|
3407
|
+
],
|
|
3408
|
+
[
|
|
3409
|
+
0xE3F,
|
|
3410
|
+
0xE3F,
|
|
3411
|
+
'ET'
|
|
3412
|
+
],
|
|
3413
|
+
[
|
|
3414
|
+
0xE47,
|
|
3415
|
+
0xE4E,
|
|
3416
|
+
'NSM'
|
|
3417
|
+
],
|
|
3418
|
+
[
|
|
3419
|
+
0xEB1,
|
|
3420
|
+
0xEB1,
|
|
3421
|
+
'NSM'
|
|
3422
|
+
],
|
|
3423
|
+
[
|
|
3424
|
+
0xEB4,
|
|
3425
|
+
0xEBC,
|
|
3426
|
+
'NSM'
|
|
3427
|
+
],
|
|
3428
|
+
[
|
|
3429
|
+
0xEC8,
|
|
3430
|
+
0xECE,
|
|
3431
|
+
'NSM'
|
|
3432
|
+
],
|
|
3433
|
+
[
|
|
3434
|
+
0xF18,
|
|
3435
|
+
0xF19,
|
|
3436
|
+
'NSM'
|
|
3437
|
+
],
|
|
3438
|
+
[
|
|
3439
|
+
0xF35,
|
|
3440
|
+
0xF35,
|
|
3441
|
+
'NSM'
|
|
3442
|
+
],
|
|
3443
|
+
[
|
|
3444
|
+
0xF37,
|
|
3445
|
+
0xF37,
|
|
3446
|
+
'NSM'
|
|
3447
|
+
],
|
|
3448
|
+
[
|
|
3449
|
+
0xF39,
|
|
3450
|
+
0xF39,
|
|
3451
|
+
'NSM'
|
|
3452
|
+
],
|
|
3453
|
+
[
|
|
3454
|
+
0xF3A,
|
|
3455
|
+
0xF3D,
|
|
3456
|
+
'ON'
|
|
3457
|
+
],
|
|
3458
|
+
[
|
|
3459
|
+
0xF71,
|
|
3460
|
+
0xF7E,
|
|
3461
|
+
'NSM'
|
|
3462
|
+
],
|
|
3463
|
+
[
|
|
3464
|
+
0xF80,
|
|
3465
|
+
0xF84,
|
|
3466
|
+
'NSM'
|
|
3467
|
+
],
|
|
3468
|
+
[
|
|
3469
|
+
0xF86,
|
|
3470
|
+
0xF87,
|
|
3471
|
+
'NSM'
|
|
3472
|
+
],
|
|
3473
|
+
[
|
|
3474
|
+
0xF8D,
|
|
3475
|
+
0xF97,
|
|
3476
|
+
'NSM'
|
|
3477
|
+
],
|
|
3478
|
+
[
|
|
3479
|
+
0xF99,
|
|
3480
|
+
0xFBC,
|
|
3481
|
+
'NSM'
|
|
3482
|
+
],
|
|
3483
|
+
[
|
|
3484
|
+
0xFC6,
|
|
3485
|
+
0xFC6,
|
|
3486
|
+
'NSM'
|
|
3487
|
+
],
|
|
3488
|
+
[
|
|
3489
|
+
0x102D,
|
|
3490
|
+
0x1030,
|
|
3491
|
+
'NSM'
|
|
3492
|
+
],
|
|
3493
|
+
[
|
|
3494
|
+
0x1032,
|
|
3495
|
+
0x1037,
|
|
3496
|
+
'NSM'
|
|
3497
|
+
],
|
|
3498
|
+
[
|
|
3499
|
+
0x1039,
|
|
3500
|
+
0x103A,
|
|
3501
|
+
'NSM'
|
|
3502
|
+
],
|
|
3503
|
+
[
|
|
3504
|
+
0x103D,
|
|
3505
|
+
0x103E,
|
|
3506
|
+
'NSM'
|
|
3507
|
+
],
|
|
3508
|
+
[
|
|
3509
|
+
0x1058,
|
|
3510
|
+
0x1059,
|
|
3511
|
+
'NSM'
|
|
3512
|
+
],
|
|
3513
|
+
[
|
|
3514
|
+
0x105E,
|
|
3515
|
+
0x1060,
|
|
3516
|
+
'NSM'
|
|
3517
|
+
],
|
|
3518
|
+
[
|
|
3519
|
+
0x1071,
|
|
3520
|
+
0x1074,
|
|
3521
|
+
'NSM'
|
|
3522
|
+
],
|
|
3523
|
+
[
|
|
3524
|
+
0x1082,
|
|
3525
|
+
0x1082,
|
|
3526
|
+
'NSM'
|
|
3527
|
+
],
|
|
3528
|
+
[
|
|
3529
|
+
0x1085,
|
|
3530
|
+
0x1086,
|
|
3531
|
+
'NSM'
|
|
3532
|
+
],
|
|
3533
|
+
[
|
|
3534
|
+
0x108D,
|
|
3535
|
+
0x108D,
|
|
3536
|
+
'NSM'
|
|
3537
|
+
],
|
|
3538
|
+
[
|
|
3539
|
+
0x109D,
|
|
3540
|
+
0x109D,
|
|
3541
|
+
'NSM'
|
|
3542
|
+
],
|
|
3543
|
+
[
|
|
3544
|
+
0x135D,
|
|
3545
|
+
0x135F,
|
|
3546
|
+
'NSM'
|
|
3547
|
+
],
|
|
3548
|
+
[
|
|
3549
|
+
0x1390,
|
|
3550
|
+
0x1399,
|
|
3551
|
+
'ON'
|
|
3552
|
+
],
|
|
3553
|
+
[
|
|
3554
|
+
0x1400,
|
|
3555
|
+
0x1400,
|
|
3556
|
+
'ON'
|
|
3557
|
+
],
|
|
3558
|
+
[
|
|
3559
|
+
0x1680,
|
|
3560
|
+
0x1680,
|
|
3561
|
+
'WS'
|
|
3562
|
+
],
|
|
3563
|
+
[
|
|
3564
|
+
0x169B,
|
|
3565
|
+
0x169C,
|
|
3566
|
+
'ON'
|
|
3567
|
+
],
|
|
3568
|
+
[
|
|
3569
|
+
0x1712,
|
|
3570
|
+
0x1714,
|
|
3571
|
+
'NSM'
|
|
3572
|
+
],
|
|
3573
|
+
[
|
|
3574
|
+
0x1732,
|
|
3575
|
+
0x1733,
|
|
3576
|
+
'NSM'
|
|
3577
|
+
],
|
|
3578
|
+
[
|
|
3579
|
+
0x1752,
|
|
3580
|
+
0x1753,
|
|
3581
|
+
'NSM'
|
|
3582
|
+
],
|
|
3583
|
+
[
|
|
3584
|
+
0x1772,
|
|
3585
|
+
0x1773,
|
|
3586
|
+
'NSM'
|
|
3587
|
+
],
|
|
3588
|
+
[
|
|
3589
|
+
0x17B4,
|
|
3590
|
+
0x17B5,
|
|
3591
|
+
'NSM'
|
|
3592
|
+
],
|
|
3593
|
+
[
|
|
3594
|
+
0x17B7,
|
|
3595
|
+
0x17BD,
|
|
3596
|
+
'NSM'
|
|
3597
|
+
],
|
|
3598
|
+
[
|
|
3599
|
+
0x17C6,
|
|
3600
|
+
0x17C6,
|
|
3601
|
+
'NSM'
|
|
3602
|
+
],
|
|
3603
|
+
[
|
|
3604
|
+
0x17C9,
|
|
3605
|
+
0x17D3,
|
|
3606
|
+
'NSM'
|
|
3607
|
+
],
|
|
3608
|
+
[
|
|
3609
|
+
0x17DB,
|
|
3610
|
+
0x17DB,
|
|
3611
|
+
'ET'
|
|
3612
|
+
],
|
|
3613
|
+
[
|
|
3614
|
+
0x17DD,
|
|
3615
|
+
0x17DD,
|
|
3616
|
+
'NSM'
|
|
3617
|
+
],
|
|
3618
|
+
[
|
|
3619
|
+
0x17F0,
|
|
3620
|
+
0x17F9,
|
|
3621
|
+
'ON'
|
|
3622
|
+
],
|
|
3623
|
+
[
|
|
3624
|
+
0x1800,
|
|
3625
|
+
0x180A,
|
|
3626
|
+
'ON'
|
|
3627
|
+
],
|
|
3628
|
+
[
|
|
3629
|
+
0x180B,
|
|
3630
|
+
0x180D,
|
|
3631
|
+
'NSM'
|
|
3632
|
+
],
|
|
3633
|
+
[
|
|
3634
|
+
0x180E,
|
|
3635
|
+
0x180E,
|
|
3636
|
+
'BN'
|
|
3637
|
+
],
|
|
3638
|
+
[
|
|
3639
|
+
0x180F,
|
|
3640
|
+
0x180F,
|
|
3641
|
+
'NSM'
|
|
3642
|
+
],
|
|
3643
|
+
[
|
|
3644
|
+
0x1885,
|
|
3645
|
+
0x1886,
|
|
3646
|
+
'NSM'
|
|
3647
|
+
],
|
|
3648
|
+
[
|
|
3649
|
+
0x18A9,
|
|
3650
|
+
0x18A9,
|
|
3651
|
+
'NSM'
|
|
3652
|
+
],
|
|
3653
|
+
[
|
|
3654
|
+
0x1920,
|
|
3655
|
+
0x1922,
|
|
3656
|
+
'NSM'
|
|
3657
|
+
],
|
|
3658
|
+
[
|
|
3659
|
+
0x1927,
|
|
3660
|
+
0x1928,
|
|
3661
|
+
'NSM'
|
|
3662
|
+
],
|
|
3663
|
+
[
|
|
3664
|
+
0x1932,
|
|
3665
|
+
0x1932,
|
|
3666
|
+
'NSM'
|
|
3667
|
+
],
|
|
3668
|
+
[
|
|
3669
|
+
0x1939,
|
|
3670
|
+
0x193B,
|
|
3671
|
+
'NSM'
|
|
3672
|
+
],
|
|
3673
|
+
[
|
|
3674
|
+
0x1940,
|
|
3675
|
+
0x1940,
|
|
3676
|
+
'ON'
|
|
3677
|
+
],
|
|
3678
|
+
[
|
|
3679
|
+
0x1944,
|
|
3680
|
+
0x1945,
|
|
3681
|
+
'ON'
|
|
3682
|
+
],
|
|
3683
|
+
[
|
|
3684
|
+
0x19DE,
|
|
3685
|
+
0x19FF,
|
|
3686
|
+
'ON'
|
|
3687
|
+
],
|
|
3688
|
+
[
|
|
3689
|
+
0x1A17,
|
|
3690
|
+
0x1A18,
|
|
3691
|
+
'NSM'
|
|
3692
|
+
],
|
|
3693
|
+
[
|
|
3694
|
+
0x1A1B,
|
|
3695
|
+
0x1A1B,
|
|
3696
|
+
'NSM'
|
|
3697
|
+
],
|
|
3698
|
+
[
|
|
3699
|
+
0x1A56,
|
|
3700
|
+
0x1A56,
|
|
3701
|
+
'NSM'
|
|
3702
|
+
],
|
|
3703
|
+
[
|
|
3704
|
+
0x1A58,
|
|
3705
|
+
0x1A5E,
|
|
3706
|
+
'NSM'
|
|
3707
|
+
],
|
|
3708
|
+
[
|
|
3709
|
+
0x1A60,
|
|
3710
|
+
0x1A60,
|
|
3711
|
+
'NSM'
|
|
3712
|
+
],
|
|
3713
|
+
[
|
|
3714
|
+
0x1A62,
|
|
3715
|
+
0x1A62,
|
|
3716
|
+
'NSM'
|
|
3717
|
+
],
|
|
3718
|
+
[
|
|
3719
|
+
0x1A65,
|
|
3720
|
+
0x1A6C,
|
|
3721
|
+
'NSM'
|
|
3722
|
+
],
|
|
3723
|
+
[
|
|
3724
|
+
0x1A73,
|
|
3725
|
+
0x1A7C,
|
|
3726
|
+
'NSM'
|
|
3727
|
+
],
|
|
3728
|
+
[
|
|
3729
|
+
0x1A7F,
|
|
3730
|
+
0x1A7F,
|
|
3731
|
+
'NSM'
|
|
3732
|
+
],
|
|
3733
|
+
[
|
|
3734
|
+
0x1AB0,
|
|
3735
|
+
0x1ADD,
|
|
3736
|
+
'NSM'
|
|
3737
|
+
],
|
|
3738
|
+
[
|
|
3739
|
+
0x1AE0,
|
|
3740
|
+
0x1AEB,
|
|
3741
|
+
'NSM'
|
|
3742
|
+
],
|
|
3743
|
+
[
|
|
3744
|
+
0x1B00,
|
|
3745
|
+
0x1B03,
|
|
3746
|
+
'NSM'
|
|
3747
|
+
],
|
|
3748
|
+
[
|
|
3749
|
+
0x1B34,
|
|
3750
|
+
0x1B34,
|
|
3751
|
+
'NSM'
|
|
3752
|
+
],
|
|
3753
|
+
[
|
|
3754
|
+
0x1B36,
|
|
3755
|
+
0x1B3A,
|
|
3756
|
+
'NSM'
|
|
3757
|
+
],
|
|
3758
|
+
[
|
|
3759
|
+
0x1B3C,
|
|
3760
|
+
0x1B3C,
|
|
3761
|
+
'NSM'
|
|
3762
|
+
],
|
|
3763
|
+
[
|
|
3764
|
+
0x1B42,
|
|
3765
|
+
0x1B42,
|
|
3766
|
+
'NSM'
|
|
3767
|
+
],
|
|
3768
|
+
[
|
|
3769
|
+
0x1B6B,
|
|
3770
|
+
0x1B73,
|
|
3771
|
+
'NSM'
|
|
3772
|
+
],
|
|
3773
|
+
[
|
|
3774
|
+
0x1B80,
|
|
3775
|
+
0x1B81,
|
|
3776
|
+
'NSM'
|
|
3777
|
+
],
|
|
3778
|
+
[
|
|
3779
|
+
0x1BA2,
|
|
3780
|
+
0x1BA5,
|
|
3781
|
+
'NSM'
|
|
3782
|
+
],
|
|
3783
|
+
[
|
|
3784
|
+
0x1BA8,
|
|
3785
|
+
0x1BA9,
|
|
3786
|
+
'NSM'
|
|
3787
|
+
],
|
|
3788
|
+
[
|
|
3789
|
+
0x1BAB,
|
|
3790
|
+
0x1BAD,
|
|
3791
|
+
'NSM'
|
|
3792
|
+
],
|
|
3793
|
+
[
|
|
3794
|
+
0x1BE6,
|
|
3795
|
+
0x1BE6,
|
|
3796
|
+
'NSM'
|
|
3797
|
+
],
|
|
3798
|
+
[
|
|
3799
|
+
0x1BE8,
|
|
3800
|
+
0x1BE9,
|
|
3801
|
+
'NSM'
|
|
3802
|
+
],
|
|
3803
|
+
[
|
|
3804
|
+
0x1BED,
|
|
3805
|
+
0x1BED,
|
|
3806
|
+
'NSM'
|
|
3807
|
+
],
|
|
3808
|
+
[
|
|
3809
|
+
0x1BEF,
|
|
3810
|
+
0x1BF1,
|
|
3811
|
+
'NSM'
|
|
3812
|
+
],
|
|
3813
|
+
[
|
|
3814
|
+
0x1C2C,
|
|
3815
|
+
0x1C33,
|
|
3816
|
+
'NSM'
|
|
3817
|
+
],
|
|
3818
|
+
[
|
|
3819
|
+
0x1C36,
|
|
3820
|
+
0x1C37,
|
|
3821
|
+
'NSM'
|
|
3822
|
+
],
|
|
3823
|
+
[
|
|
3824
|
+
0x1CD0,
|
|
3825
|
+
0x1CD2,
|
|
3826
|
+
'NSM'
|
|
3827
|
+
],
|
|
3828
|
+
[
|
|
3829
|
+
0x1CD4,
|
|
3830
|
+
0x1CE0,
|
|
3831
|
+
'NSM'
|
|
3832
|
+
],
|
|
3833
|
+
[
|
|
3834
|
+
0x1CE2,
|
|
3835
|
+
0x1CE8,
|
|
3836
|
+
'NSM'
|
|
3837
|
+
],
|
|
3838
|
+
[
|
|
3839
|
+
0x1CED,
|
|
3840
|
+
0x1CED,
|
|
3841
|
+
'NSM'
|
|
3842
|
+
],
|
|
3843
|
+
[
|
|
3844
|
+
0x1CF4,
|
|
3845
|
+
0x1CF4,
|
|
3846
|
+
'NSM'
|
|
3847
|
+
],
|
|
3848
|
+
[
|
|
3849
|
+
0x1CF8,
|
|
3850
|
+
0x1CF9,
|
|
3851
|
+
'NSM'
|
|
3852
|
+
],
|
|
3853
|
+
[
|
|
3854
|
+
0x1DC0,
|
|
3855
|
+
0x1DFF,
|
|
3856
|
+
'NSM'
|
|
3857
|
+
],
|
|
3858
|
+
[
|
|
3859
|
+
0x1FBD,
|
|
3860
|
+
0x1FBD,
|
|
3861
|
+
'ON'
|
|
3862
|
+
],
|
|
3863
|
+
[
|
|
3864
|
+
0x1FBF,
|
|
3865
|
+
0x1FC1,
|
|
3866
|
+
'ON'
|
|
3867
|
+
],
|
|
3868
|
+
[
|
|
3869
|
+
0x1FCD,
|
|
3870
|
+
0x1FCF,
|
|
3871
|
+
'ON'
|
|
3872
|
+
],
|
|
3873
|
+
[
|
|
3874
|
+
0x1FDD,
|
|
3875
|
+
0x1FDF,
|
|
3876
|
+
'ON'
|
|
3877
|
+
],
|
|
3878
|
+
[
|
|
3879
|
+
0x1FED,
|
|
3880
|
+
0x1FEF,
|
|
3881
|
+
'ON'
|
|
3882
|
+
],
|
|
3883
|
+
[
|
|
3884
|
+
0x1FFD,
|
|
3885
|
+
0x1FFE,
|
|
3886
|
+
'ON'
|
|
3887
|
+
],
|
|
3888
|
+
[
|
|
3889
|
+
0x2000,
|
|
3890
|
+
0x200A,
|
|
3891
|
+
'WS'
|
|
3892
|
+
],
|
|
3893
|
+
[
|
|
3894
|
+
0x200B,
|
|
3895
|
+
0x200D,
|
|
3896
|
+
'BN'
|
|
3897
|
+
],
|
|
3898
|
+
[
|
|
3899
|
+
0x200F,
|
|
3900
|
+
0x200F,
|
|
3901
|
+
'R'
|
|
3902
|
+
],
|
|
3903
|
+
[
|
|
3904
|
+
0x2010,
|
|
3905
|
+
0x2027,
|
|
3906
|
+
'ON'
|
|
3907
|
+
],
|
|
3908
|
+
[
|
|
3909
|
+
0x2028,
|
|
3910
|
+
0x2028,
|
|
3911
|
+
'WS'
|
|
3912
|
+
],
|
|
3913
|
+
[
|
|
3914
|
+
0x2029,
|
|
3915
|
+
0x2029,
|
|
3916
|
+
'B'
|
|
3917
|
+
],
|
|
3918
|
+
[
|
|
3919
|
+
0x202A,
|
|
3920
|
+
0x202E,
|
|
3921
|
+
'BN'
|
|
3922
|
+
],
|
|
3923
|
+
[
|
|
3924
|
+
0x202F,
|
|
3925
|
+
0x202F,
|
|
3926
|
+
'CS'
|
|
3927
|
+
],
|
|
3928
|
+
[
|
|
3929
|
+
0x2030,
|
|
3930
|
+
0x2034,
|
|
3931
|
+
'ET'
|
|
3932
|
+
],
|
|
3933
|
+
[
|
|
3934
|
+
0x2035,
|
|
3935
|
+
0x2043,
|
|
3936
|
+
'ON'
|
|
3937
|
+
],
|
|
3938
|
+
[
|
|
3939
|
+
0x2044,
|
|
3940
|
+
0x2044,
|
|
3941
|
+
'CS'
|
|
3942
|
+
],
|
|
3943
|
+
[
|
|
3944
|
+
0x2045,
|
|
3945
|
+
0x205E,
|
|
3946
|
+
'ON'
|
|
3947
|
+
],
|
|
3948
|
+
[
|
|
3949
|
+
0x205F,
|
|
3950
|
+
0x205F,
|
|
3951
|
+
'WS'
|
|
3952
|
+
],
|
|
3953
|
+
[
|
|
3954
|
+
0x2060,
|
|
3955
|
+
0x206F,
|
|
3956
|
+
'BN'
|
|
3957
|
+
],
|
|
3958
|
+
[
|
|
3959
|
+
0x2070,
|
|
3960
|
+
0x2070,
|
|
3961
|
+
'EN'
|
|
3962
|
+
],
|
|
3963
|
+
[
|
|
3964
|
+
0x2074,
|
|
3965
|
+
0x2079,
|
|
3966
|
+
'EN'
|
|
3967
|
+
],
|
|
3968
|
+
[
|
|
3969
|
+
0x207A,
|
|
3970
|
+
0x207B,
|
|
3971
|
+
'ES'
|
|
3972
|
+
],
|
|
3973
|
+
[
|
|
3974
|
+
0x207C,
|
|
3975
|
+
0x207E,
|
|
3976
|
+
'ON'
|
|
3977
|
+
],
|
|
3978
|
+
[
|
|
3979
|
+
0x2080,
|
|
3980
|
+
0x2089,
|
|
3981
|
+
'EN'
|
|
3982
|
+
],
|
|
3983
|
+
[
|
|
3984
|
+
0x208A,
|
|
3985
|
+
0x208B,
|
|
3986
|
+
'ES'
|
|
3987
|
+
],
|
|
3988
|
+
[
|
|
3989
|
+
0x208C,
|
|
3990
|
+
0x208E,
|
|
3991
|
+
'ON'
|
|
3992
|
+
],
|
|
3993
|
+
[
|
|
3994
|
+
0x20A0,
|
|
3995
|
+
0x20CF,
|
|
3996
|
+
'ET'
|
|
3997
|
+
],
|
|
3998
|
+
[
|
|
3999
|
+
0x20D0,
|
|
4000
|
+
0x20F0,
|
|
4001
|
+
'NSM'
|
|
4002
|
+
],
|
|
4003
|
+
[
|
|
4004
|
+
0x2100,
|
|
4005
|
+
0x2101,
|
|
4006
|
+
'ON'
|
|
4007
|
+
],
|
|
4008
|
+
[
|
|
4009
|
+
0x2103,
|
|
4010
|
+
0x2106,
|
|
4011
|
+
'ON'
|
|
4012
|
+
],
|
|
4013
|
+
[
|
|
4014
|
+
0x2108,
|
|
4015
|
+
0x2109,
|
|
4016
|
+
'ON'
|
|
4017
|
+
],
|
|
4018
|
+
[
|
|
4019
|
+
0x2114,
|
|
4020
|
+
0x2114,
|
|
4021
|
+
'ON'
|
|
4022
|
+
],
|
|
4023
|
+
[
|
|
4024
|
+
0x2116,
|
|
4025
|
+
0x2118,
|
|
4026
|
+
'ON'
|
|
4027
|
+
],
|
|
4028
|
+
[
|
|
4029
|
+
0x211E,
|
|
4030
|
+
0x2123,
|
|
4031
|
+
'ON'
|
|
4032
|
+
],
|
|
4033
|
+
[
|
|
4034
|
+
0x2125,
|
|
4035
|
+
0x2125,
|
|
4036
|
+
'ON'
|
|
4037
|
+
],
|
|
4038
|
+
[
|
|
4039
|
+
0x2127,
|
|
4040
|
+
0x2127,
|
|
4041
|
+
'ON'
|
|
4042
|
+
],
|
|
4043
|
+
[
|
|
4044
|
+
0x2129,
|
|
4045
|
+
0x2129,
|
|
4046
|
+
'ON'
|
|
4047
|
+
],
|
|
4048
|
+
[
|
|
4049
|
+
0x212E,
|
|
4050
|
+
0x212E,
|
|
4051
|
+
'ET'
|
|
4052
|
+
],
|
|
4053
|
+
[
|
|
4054
|
+
0x213A,
|
|
4055
|
+
0x213B,
|
|
4056
|
+
'ON'
|
|
4057
|
+
],
|
|
4058
|
+
[
|
|
4059
|
+
0x2140,
|
|
4060
|
+
0x2144,
|
|
4061
|
+
'ON'
|
|
4062
|
+
],
|
|
4063
|
+
[
|
|
4064
|
+
0x214A,
|
|
4065
|
+
0x214D,
|
|
4066
|
+
'ON'
|
|
4067
|
+
],
|
|
4068
|
+
[
|
|
4069
|
+
0x2150,
|
|
4070
|
+
0x215F,
|
|
4071
|
+
'ON'
|
|
4072
|
+
],
|
|
4073
|
+
[
|
|
4074
|
+
0x2189,
|
|
4075
|
+
0x218B,
|
|
4076
|
+
'ON'
|
|
4077
|
+
],
|
|
4078
|
+
[
|
|
4079
|
+
0x2190,
|
|
4080
|
+
0x2211,
|
|
4081
|
+
'ON'
|
|
4082
|
+
],
|
|
4083
|
+
[
|
|
4084
|
+
0x2212,
|
|
4085
|
+
0x2212,
|
|
4086
|
+
'ES'
|
|
4087
|
+
],
|
|
4088
|
+
[
|
|
4089
|
+
0x2213,
|
|
4090
|
+
0x2213,
|
|
4091
|
+
'ET'
|
|
4092
|
+
],
|
|
4093
|
+
[
|
|
4094
|
+
0x2214,
|
|
4095
|
+
0x2335,
|
|
4096
|
+
'ON'
|
|
4097
|
+
],
|
|
4098
|
+
[
|
|
4099
|
+
0x237B,
|
|
4100
|
+
0x2394,
|
|
4101
|
+
'ON'
|
|
4102
|
+
],
|
|
4103
|
+
[
|
|
4104
|
+
0x2396,
|
|
4105
|
+
0x2429,
|
|
4106
|
+
'ON'
|
|
4107
|
+
],
|
|
4108
|
+
[
|
|
4109
|
+
0x2440,
|
|
4110
|
+
0x244A,
|
|
4111
|
+
'ON'
|
|
4112
|
+
],
|
|
4113
|
+
[
|
|
4114
|
+
0x2460,
|
|
4115
|
+
0x2487,
|
|
4116
|
+
'ON'
|
|
4117
|
+
],
|
|
4118
|
+
[
|
|
4119
|
+
0x2488,
|
|
4120
|
+
0x249B,
|
|
4121
|
+
'EN'
|
|
4122
|
+
],
|
|
4123
|
+
[
|
|
4124
|
+
0x24EA,
|
|
4125
|
+
0x26AB,
|
|
4126
|
+
'ON'
|
|
4127
|
+
],
|
|
4128
|
+
[
|
|
4129
|
+
0x26AD,
|
|
4130
|
+
0x27FF,
|
|
4131
|
+
'ON'
|
|
4132
|
+
],
|
|
4133
|
+
[
|
|
4134
|
+
0x2900,
|
|
4135
|
+
0x2B73,
|
|
4136
|
+
'ON'
|
|
4137
|
+
],
|
|
4138
|
+
[
|
|
4139
|
+
0x2B76,
|
|
4140
|
+
0x2BFF,
|
|
4141
|
+
'ON'
|
|
4142
|
+
],
|
|
4143
|
+
[
|
|
4144
|
+
0x2CE5,
|
|
4145
|
+
0x2CEA,
|
|
4146
|
+
'ON'
|
|
4147
|
+
],
|
|
4148
|
+
[
|
|
4149
|
+
0x2CEF,
|
|
4150
|
+
0x2CF1,
|
|
4151
|
+
'NSM'
|
|
4152
|
+
],
|
|
4153
|
+
[
|
|
4154
|
+
0x2CF9,
|
|
4155
|
+
0x2CFF,
|
|
4156
|
+
'ON'
|
|
4157
|
+
],
|
|
4158
|
+
[
|
|
4159
|
+
0x2D7F,
|
|
4160
|
+
0x2D7F,
|
|
4161
|
+
'NSM'
|
|
4162
|
+
],
|
|
4163
|
+
[
|
|
4164
|
+
0x2DE0,
|
|
4165
|
+
0x2DFF,
|
|
4166
|
+
'NSM'
|
|
4167
|
+
],
|
|
4168
|
+
[
|
|
4169
|
+
0x2E00,
|
|
4170
|
+
0x2E5D,
|
|
4171
|
+
'ON'
|
|
4172
|
+
],
|
|
4173
|
+
[
|
|
4174
|
+
0x2E80,
|
|
4175
|
+
0x2E99,
|
|
4176
|
+
'ON'
|
|
4177
|
+
],
|
|
4178
|
+
[
|
|
4179
|
+
0x2E9B,
|
|
4180
|
+
0x2EF3,
|
|
4181
|
+
'ON'
|
|
4182
|
+
],
|
|
4183
|
+
[
|
|
4184
|
+
0x2F00,
|
|
4185
|
+
0x2FD5,
|
|
4186
|
+
'ON'
|
|
4187
|
+
],
|
|
4188
|
+
[
|
|
4189
|
+
0x2FF0,
|
|
4190
|
+
0x2FFF,
|
|
4191
|
+
'ON'
|
|
4192
|
+
],
|
|
4193
|
+
[
|
|
4194
|
+
0x3000,
|
|
4195
|
+
0x3000,
|
|
4196
|
+
'WS'
|
|
4197
|
+
],
|
|
4198
|
+
[
|
|
4199
|
+
0x3001,
|
|
4200
|
+
0x3004,
|
|
4201
|
+
'ON'
|
|
4202
|
+
],
|
|
4203
|
+
[
|
|
4204
|
+
0x3008,
|
|
4205
|
+
0x3020,
|
|
4206
|
+
'ON'
|
|
4207
|
+
],
|
|
4208
|
+
[
|
|
4209
|
+
0x302A,
|
|
4210
|
+
0x302D,
|
|
4211
|
+
'NSM'
|
|
4212
|
+
],
|
|
4213
|
+
[
|
|
4214
|
+
0x3030,
|
|
4215
|
+
0x3030,
|
|
4216
|
+
'ON'
|
|
4217
|
+
],
|
|
4218
|
+
[
|
|
4219
|
+
0x3036,
|
|
4220
|
+
0x3037,
|
|
4221
|
+
'ON'
|
|
4222
|
+
],
|
|
4223
|
+
[
|
|
4224
|
+
0x303D,
|
|
4225
|
+
0x303F,
|
|
4226
|
+
'ON'
|
|
4227
|
+
],
|
|
4228
|
+
[
|
|
4229
|
+
0x3099,
|
|
4230
|
+
0x309A,
|
|
4231
|
+
'NSM'
|
|
4232
|
+
],
|
|
4233
|
+
[
|
|
4234
|
+
0x309B,
|
|
4235
|
+
0x309C,
|
|
4236
|
+
'ON'
|
|
4237
|
+
],
|
|
4238
|
+
[
|
|
4239
|
+
0x30A0,
|
|
4240
|
+
0x30A0,
|
|
4241
|
+
'ON'
|
|
4242
|
+
],
|
|
4243
|
+
[
|
|
4244
|
+
0x30FB,
|
|
4245
|
+
0x30FB,
|
|
4246
|
+
'ON'
|
|
4247
|
+
],
|
|
4248
|
+
[
|
|
4249
|
+
0x31C0,
|
|
4250
|
+
0x31E5,
|
|
4251
|
+
'ON'
|
|
4252
|
+
],
|
|
4253
|
+
[
|
|
4254
|
+
0x31EF,
|
|
4255
|
+
0x31EF,
|
|
4256
|
+
'ON'
|
|
4257
|
+
],
|
|
4258
|
+
[
|
|
4259
|
+
0x321D,
|
|
4260
|
+
0x321E,
|
|
4261
|
+
'ON'
|
|
4262
|
+
],
|
|
4263
|
+
[
|
|
4264
|
+
0x3250,
|
|
4265
|
+
0x325F,
|
|
4266
|
+
'ON'
|
|
4267
|
+
],
|
|
4268
|
+
[
|
|
4269
|
+
0x327C,
|
|
4270
|
+
0x327E,
|
|
4271
|
+
'ON'
|
|
4272
|
+
],
|
|
4273
|
+
[
|
|
4274
|
+
0x32B1,
|
|
4275
|
+
0x32BF,
|
|
4276
|
+
'ON'
|
|
4277
|
+
],
|
|
4278
|
+
[
|
|
4279
|
+
0x32CC,
|
|
4280
|
+
0x32CF,
|
|
4281
|
+
'ON'
|
|
4282
|
+
],
|
|
4283
|
+
[
|
|
4284
|
+
0x3377,
|
|
4285
|
+
0x337A,
|
|
4286
|
+
'ON'
|
|
4287
|
+
],
|
|
4288
|
+
[
|
|
4289
|
+
0x33DE,
|
|
4290
|
+
0x33DF,
|
|
4291
|
+
'ON'
|
|
4292
|
+
],
|
|
4293
|
+
[
|
|
4294
|
+
0x33FF,
|
|
4295
|
+
0x33FF,
|
|
4296
|
+
'ON'
|
|
4297
|
+
],
|
|
4298
|
+
[
|
|
4299
|
+
0x4DC0,
|
|
4300
|
+
0x4DFF,
|
|
4301
|
+
'ON'
|
|
4302
|
+
],
|
|
4303
|
+
[
|
|
4304
|
+
0xA490,
|
|
4305
|
+
0xA4C6,
|
|
4306
|
+
'ON'
|
|
4307
|
+
],
|
|
4308
|
+
[
|
|
4309
|
+
0xA60D,
|
|
4310
|
+
0xA60F,
|
|
4311
|
+
'ON'
|
|
4312
|
+
],
|
|
4313
|
+
[
|
|
4314
|
+
0xA66F,
|
|
4315
|
+
0xA672,
|
|
4316
|
+
'NSM'
|
|
4317
|
+
],
|
|
4318
|
+
[
|
|
4319
|
+
0xA673,
|
|
4320
|
+
0xA673,
|
|
4321
|
+
'ON'
|
|
4322
|
+
],
|
|
4323
|
+
[
|
|
4324
|
+
0xA674,
|
|
4325
|
+
0xA67D,
|
|
4326
|
+
'NSM'
|
|
4327
|
+
],
|
|
4328
|
+
[
|
|
4329
|
+
0xA67E,
|
|
4330
|
+
0xA67F,
|
|
4331
|
+
'ON'
|
|
4332
|
+
],
|
|
4333
|
+
[
|
|
4334
|
+
0xA69E,
|
|
4335
|
+
0xA69F,
|
|
4336
|
+
'NSM'
|
|
4337
|
+
],
|
|
4338
|
+
[
|
|
4339
|
+
0xA6F0,
|
|
4340
|
+
0xA6F1,
|
|
4341
|
+
'NSM'
|
|
4342
|
+
],
|
|
4343
|
+
[
|
|
4344
|
+
0xA700,
|
|
4345
|
+
0xA721,
|
|
4346
|
+
'ON'
|
|
4347
|
+
],
|
|
4348
|
+
[
|
|
4349
|
+
0xA788,
|
|
4350
|
+
0xA788,
|
|
4351
|
+
'ON'
|
|
4352
|
+
],
|
|
4353
|
+
[
|
|
4354
|
+
0xA802,
|
|
4355
|
+
0xA802,
|
|
4356
|
+
'NSM'
|
|
4357
|
+
],
|
|
4358
|
+
[
|
|
4359
|
+
0xA806,
|
|
4360
|
+
0xA806,
|
|
4361
|
+
'NSM'
|
|
4362
|
+
],
|
|
4363
|
+
[
|
|
4364
|
+
0xA80B,
|
|
4365
|
+
0xA80B,
|
|
4366
|
+
'NSM'
|
|
4367
|
+
],
|
|
4368
|
+
[
|
|
4369
|
+
0xA825,
|
|
4370
|
+
0xA826,
|
|
4371
|
+
'NSM'
|
|
4372
|
+
],
|
|
4373
|
+
[
|
|
4374
|
+
0xA828,
|
|
4375
|
+
0xA82B,
|
|
4376
|
+
'ON'
|
|
4377
|
+
],
|
|
4378
|
+
[
|
|
4379
|
+
0xA82C,
|
|
4380
|
+
0xA82C,
|
|
4381
|
+
'NSM'
|
|
4382
|
+
],
|
|
4383
|
+
[
|
|
4384
|
+
0xA838,
|
|
4385
|
+
0xA839,
|
|
4386
|
+
'ET'
|
|
4387
|
+
],
|
|
4388
|
+
[
|
|
4389
|
+
0xA874,
|
|
4390
|
+
0xA877,
|
|
4391
|
+
'ON'
|
|
4392
|
+
],
|
|
4393
|
+
[
|
|
4394
|
+
0xA8C4,
|
|
4395
|
+
0xA8C5,
|
|
4396
|
+
'NSM'
|
|
4397
|
+
],
|
|
4398
|
+
[
|
|
4399
|
+
0xA8E0,
|
|
4400
|
+
0xA8F1,
|
|
4401
|
+
'NSM'
|
|
4402
|
+
],
|
|
4403
|
+
[
|
|
4404
|
+
0xA8FF,
|
|
4405
|
+
0xA8FF,
|
|
4406
|
+
'NSM'
|
|
4407
|
+
],
|
|
4408
|
+
[
|
|
4409
|
+
0xA926,
|
|
4410
|
+
0xA92D,
|
|
4411
|
+
'NSM'
|
|
4412
|
+
],
|
|
4413
|
+
[
|
|
4414
|
+
0xA947,
|
|
4415
|
+
0xA951,
|
|
4416
|
+
'NSM'
|
|
4417
|
+
],
|
|
4418
|
+
[
|
|
4419
|
+
0xA980,
|
|
4420
|
+
0xA982,
|
|
4421
|
+
'NSM'
|
|
4422
|
+
],
|
|
4423
|
+
[
|
|
4424
|
+
0xA9B3,
|
|
4425
|
+
0xA9B3,
|
|
4426
|
+
'NSM'
|
|
4427
|
+
],
|
|
4428
|
+
[
|
|
4429
|
+
0xA9B6,
|
|
4430
|
+
0xA9B9,
|
|
4431
|
+
'NSM'
|
|
4432
|
+
],
|
|
4433
|
+
[
|
|
4434
|
+
0xA9BC,
|
|
4435
|
+
0xA9BD,
|
|
4436
|
+
'NSM'
|
|
4437
|
+
],
|
|
4438
|
+
[
|
|
4439
|
+
0xA9E5,
|
|
4440
|
+
0xA9E5,
|
|
4441
|
+
'NSM'
|
|
4442
|
+
],
|
|
4443
|
+
[
|
|
4444
|
+
0xAA29,
|
|
4445
|
+
0xAA2E,
|
|
4446
|
+
'NSM'
|
|
4447
|
+
],
|
|
4448
|
+
[
|
|
4449
|
+
0xAA31,
|
|
4450
|
+
0xAA32,
|
|
4451
|
+
'NSM'
|
|
4452
|
+
],
|
|
4453
|
+
[
|
|
4454
|
+
0xAA35,
|
|
4455
|
+
0xAA36,
|
|
4456
|
+
'NSM'
|
|
4457
|
+
],
|
|
4458
|
+
[
|
|
4459
|
+
0xAA43,
|
|
4460
|
+
0xAA43,
|
|
4461
|
+
'NSM'
|
|
4462
|
+
],
|
|
4463
|
+
[
|
|
4464
|
+
0xAA4C,
|
|
4465
|
+
0xAA4C,
|
|
4466
|
+
'NSM'
|
|
4467
|
+
],
|
|
4468
|
+
[
|
|
4469
|
+
0xAA7C,
|
|
4470
|
+
0xAA7C,
|
|
4471
|
+
'NSM'
|
|
4472
|
+
],
|
|
4473
|
+
[
|
|
4474
|
+
0xAAB0,
|
|
4475
|
+
0xAAB0,
|
|
4476
|
+
'NSM'
|
|
4477
|
+
],
|
|
4478
|
+
[
|
|
4479
|
+
0xAAB2,
|
|
4480
|
+
0xAAB4,
|
|
4481
|
+
'NSM'
|
|
4482
|
+
],
|
|
4483
|
+
[
|
|
4484
|
+
0xAAB7,
|
|
4485
|
+
0xAAB8,
|
|
4486
|
+
'NSM'
|
|
4487
|
+
],
|
|
4488
|
+
[
|
|
4489
|
+
0xAABE,
|
|
4490
|
+
0xAABF,
|
|
4491
|
+
'NSM'
|
|
4492
|
+
],
|
|
4493
|
+
[
|
|
4494
|
+
0xAAC1,
|
|
4495
|
+
0xAAC1,
|
|
4496
|
+
'NSM'
|
|
4497
|
+
],
|
|
4498
|
+
[
|
|
4499
|
+
0xAAEC,
|
|
4500
|
+
0xAAED,
|
|
4501
|
+
'NSM'
|
|
4502
|
+
],
|
|
4503
|
+
[
|
|
4504
|
+
0xAAF6,
|
|
4505
|
+
0xAAF6,
|
|
4506
|
+
'NSM'
|
|
4507
|
+
],
|
|
4508
|
+
[
|
|
4509
|
+
0xAB6A,
|
|
4510
|
+
0xAB6B,
|
|
4511
|
+
'ON'
|
|
4512
|
+
],
|
|
4513
|
+
[
|
|
4514
|
+
0xABE5,
|
|
4515
|
+
0xABE5,
|
|
4516
|
+
'NSM'
|
|
4517
|
+
],
|
|
4518
|
+
[
|
|
4519
|
+
0xABE8,
|
|
4520
|
+
0xABE8,
|
|
4521
|
+
'NSM'
|
|
4522
|
+
],
|
|
4523
|
+
[
|
|
4524
|
+
0xABED,
|
|
4525
|
+
0xABED,
|
|
4526
|
+
'NSM'
|
|
4527
|
+
],
|
|
4528
|
+
[
|
|
4529
|
+
0xFB1D,
|
|
4530
|
+
0xFB1D,
|
|
4531
|
+
'R'
|
|
4532
|
+
],
|
|
4533
|
+
[
|
|
4534
|
+
0xFB1E,
|
|
4535
|
+
0xFB1E,
|
|
4536
|
+
'NSM'
|
|
4537
|
+
],
|
|
4538
|
+
[
|
|
4539
|
+
0xFB1F,
|
|
4540
|
+
0xFB28,
|
|
4541
|
+
'R'
|
|
4542
|
+
],
|
|
4543
|
+
[
|
|
4544
|
+
0xFB29,
|
|
4545
|
+
0xFB29,
|
|
4546
|
+
'ES'
|
|
4547
|
+
],
|
|
4548
|
+
[
|
|
4549
|
+
0xFB2A,
|
|
4550
|
+
0xFB4F,
|
|
4551
|
+
'R'
|
|
4552
|
+
],
|
|
4553
|
+
[
|
|
4554
|
+
0xFB50,
|
|
4555
|
+
0xFBC2,
|
|
4556
|
+
'AL'
|
|
4557
|
+
],
|
|
4558
|
+
[
|
|
4559
|
+
0xFBC3,
|
|
4560
|
+
0xFBD2,
|
|
4561
|
+
'ON'
|
|
4562
|
+
],
|
|
4563
|
+
[
|
|
4564
|
+
0xFBD3,
|
|
4565
|
+
0xFD3D,
|
|
4566
|
+
'AL'
|
|
4567
|
+
],
|
|
4568
|
+
[
|
|
4569
|
+
0xFD3E,
|
|
4570
|
+
0xFD4F,
|
|
4571
|
+
'ON'
|
|
4572
|
+
],
|
|
4573
|
+
[
|
|
4574
|
+
0xFD50,
|
|
4575
|
+
0xFD8F,
|
|
4576
|
+
'AL'
|
|
4577
|
+
],
|
|
4578
|
+
[
|
|
4579
|
+
0xFD90,
|
|
4580
|
+
0xFD91,
|
|
4581
|
+
'ON'
|
|
4582
|
+
],
|
|
4583
|
+
[
|
|
4584
|
+
0xFD92,
|
|
4585
|
+
0xFDC7,
|
|
4586
|
+
'AL'
|
|
4587
|
+
],
|
|
4588
|
+
[
|
|
4589
|
+
0xFDC8,
|
|
4590
|
+
0xFDCF,
|
|
4591
|
+
'ON'
|
|
4592
|
+
],
|
|
4593
|
+
[
|
|
4594
|
+
0xFDD0,
|
|
4595
|
+
0xFDEF,
|
|
4596
|
+
'BN'
|
|
4597
|
+
],
|
|
4598
|
+
[
|
|
4599
|
+
0xFDF0,
|
|
4600
|
+
0xFDFC,
|
|
4601
|
+
'AL'
|
|
4602
|
+
],
|
|
4603
|
+
[
|
|
4604
|
+
0xFDFD,
|
|
4605
|
+
0xFDFF,
|
|
4606
|
+
'ON'
|
|
4607
|
+
],
|
|
4608
|
+
[
|
|
4609
|
+
0xFE00,
|
|
4610
|
+
0xFE0F,
|
|
4611
|
+
'NSM'
|
|
4612
|
+
],
|
|
4613
|
+
[
|
|
4614
|
+
0xFE10,
|
|
4615
|
+
0xFE19,
|
|
4616
|
+
'ON'
|
|
4617
|
+
],
|
|
4618
|
+
[
|
|
4619
|
+
0xFE20,
|
|
4620
|
+
0xFE2F,
|
|
4621
|
+
'NSM'
|
|
4622
|
+
],
|
|
4623
|
+
[
|
|
4624
|
+
0xFE30,
|
|
4625
|
+
0xFE4F,
|
|
4626
|
+
'ON'
|
|
4627
|
+
],
|
|
4628
|
+
[
|
|
4629
|
+
0xFE50,
|
|
4630
|
+
0xFE50,
|
|
4631
|
+
'CS'
|
|
4632
|
+
],
|
|
4633
|
+
[
|
|
4634
|
+
0xFE51,
|
|
4635
|
+
0xFE51,
|
|
4636
|
+
'ON'
|
|
4637
|
+
],
|
|
4638
|
+
[
|
|
4639
|
+
0xFE52,
|
|
4640
|
+
0xFE52,
|
|
4641
|
+
'CS'
|
|
4642
|
+
],
|
|
4643
|
+
[
|
|
4644
|
+
0xFE54,
|
|
4645
|
+
0xFE54,
|
|
4646
|
+
'ON'
|
|
4647
|
+
],
|
|
4648
|
+
[
|
|
4649
|
+
0xFE55,
|
|
4650
|
+
0xFE55,
|
|
4651
|
+
'CS'
|
|
4652
|
+
],
|
|
4653
|
+
[
|
|
4654
|
+
0xFE56,
|
|
4655
|
+
0xFE5E,
|
|
4656
|
+
'ON'
|
|
4657
|
+
],
|
|
4658
|
+
[
|
|
4659
|
+
0xFE5F,
|
|
4660
|
+
0xFE5F,
|
|
4661
|
+
'ET'
|
|
4662
|
+
],
|
|
4663
|
+
[
|
|
4664
|
+
0xFE60,
|
|
4665
|
+
0xFE61,
|
|
4666
|
+
'ON'
|
|
4667
|
+
],
|
|
4668
|
+
[
|
|
4669
|
+
0xFE62,
|
|
4670
|
+
0xFE63,
|
|
4671
|
+
'ES'
|
|
4672
|
+
],
|
|
4673
|
+
[
|
|
4674
|
+
0xFE64,
|
|
4675
|
+
0xFE66,
|
|
4676
|
+
'ON'
|
|
4677
|
+
],
|
|
4678
|
+
[
|
|
4679
|
+
0xFE68,
|
|
4680
|
+
0xFE68,
|
|
4681
|
+
'ON'
|
|
4682
|
+
],
|
|
4683
|
+
[
|
|
4684
|
+
0xFE69,
|
|
4685
|
+
0xFE6A,
|
|
4686
|
+
'ET'
|
|
4687
|
+
],
|
|
4688
|
+
[
|
|
4689
|
+
0xFE6B,
|
|
4690
|
+
0xFE6B,
|
|
4691
|
+
'ON'
|
|
4692
|
+
],
|
|
4693
|
+
[
|
|
4694
|
+
0xFE70,
|
|
4695
|
+
0xFEFE,
|
|
4696
|
+
'AL'
|
|
4697
|
+
],
|
|
4698
|
+
[
|
|
4699
|
+
0xFEFF,
|
|
4700
|
+
0xFEFF,
|
|
4701
|
+
'BN'
|
|
4702
|
+
],
|
|
4703
|
+
[
|
|
4704
|
+
0xFF01,
|
|
4705
|
+
0xFF02,
|
|
4706
|
+
'ON'
|
|
4707
|
+
],
|
|
4708
|
+
[
|
|
4709
|
+
0xFF03,
|
|
4710
|
+
0xFF05,
|
|
4711
|
+
'ET'
|
|
4712
|
+
],
|
|
4713
|
+
[
|
|
4714
|
+
0xFF06,
|
|
4715
|
+
0xFF0A,
|
|
4716
|
+
'ON'
|
|
4717
|
+
],
|
|
4718
|
+
[
|
|
4719
|
+
0xFF0B,
|
|
4720
|
+
0xFF0B,
|
|
4721
|
+
'ES'
|
|
4722
|
+
],
|
|
4723
|
+
[
|
|
4724
|
+
0xFF0C,
|
|
4725
|
+
0xFF0C,
|
|
4726
|
+
'CS'
|
|
4727
|
+
],
|
|
4728
|
+
[
|
|
4729
|
+
0xFF0D,
|
|
4730
|
+
0xFF0D,
|
|
4731
|
+
'ES'
|
|
4732
|
+
],
|
|
4733
|
+
[
|
|
4734
|
+
0xFF0E,
|
|
4735
|
+
0xFF0F,
|
|
4736
|
+
'CS'
|
|
4737
|
+
],
|
|
4738
|
+
[
|
|
4739
|
+
0xFF10,
|
|
4740
|
+
0xFF19,
|
|
4741
|
+
'EN'
|
|
4742
|
+
],
|
|
4743
|
+
[
|
|
4744
|
+
0xFF1A,
|
|
4745
|
+
0xFF1A,
|
|
4746
|
+
'CS'
|
|
4747
|
+
],
|
|
4748
|
+
[
|
|
4749
|
+
0xFF1B,
|
|
4750
|
+
0xFF20,
|
|
4751
|
+
'ON'
|
|
4752
|
+
],
|
|
4753
|
+
[
|
|
4754
|
+
0xFF3B,
|
|
4755
|
+
0xFF40,
|
|
4756
|
+
'ON'
|
|
4757
|
+
],
|
|
4758
|
+
[
|
|
4759
|
+
0xFF5B,
|
|
4760
|
+
0xFF65,
|
|
4761
|
+
'ON'
|
|
4762
|
+
],
|
|
4763
|
+
[
|
|
4764
|
+
0xFFE0,
|
|
4765
|
+
0xFFE1,
|
|
4766
|
+
'ET'
|
|
4767
|
+
],
|
|
4768
|
+
[
|
|
4769
|
+
0xFFE2,
|
|
4770
|
+
0xFFE4,
|
|
4771
|
+
'ON'
|
|
4772
|
+
],
|
|
4773
|
+
[
|
|
4774
|
+
0xFFE5,
|
|
4775
|
+
0xFFE6,
|
|
4776
|
+
'ET'
|
|
4777
|
+
],
|
|
4778
|
+
[
|
|
4779
|
+
0xFFE8,
|
|
4780
|
+
0xFFEE,
|
|
4781
|
+
'ON'
|
|
4782
|
+
],
|
|
4783
|
+
[
|
|
4784
|
+
0xFFF0,
|
|
4785
|
+
0xFFF8,
|
|
4786
|
+
'BN'
|
|
4787
|
+
],
|
|
4788
|
+
[
|
|
4789
|
+
0xFFF9,
|
|
4790
|
+
0xFFFD,
|
|
4791
|
+
'ON'
|
|
4792
|
+
],
|
|
4793
|
+
[
|
|
4794
|
+
0xFFFE,
|
|
4795
|
+
0xFFFF,
|
|
4796
|
+
'BN'
|
|
4797
|
+
],
|
|
4798
|
+
[
|
|
4799
|
+
0x10101,
|
|
4800
|
+
0x10101,
|
|
4801
|
+
'ON'
|
|
4802
|
+
],
|
|
4803
|
+
[
|
|
4804
|
+
0x10140,
|
|
4805
|
+
0x1018C,
|
|
4806
|
+
'ON'
|
|
4807
|
+
],
|
|
4808
|
+
[
|
|
4809
|
+
0x10190,
|
|
4810
|
+
0x1019C,
|
|
4811
|
+
'ON'
|
|
4812
|
+
],
|
|
4813
|
+
[
|
|
4814
|
+
0x101A0,
|
|
4815
|
+
0x101A0,
|
|
4816
|
+
'ON'
|
|
4817
|
+
],
|
|
4818
|
+
[
|
|
4819
|
+
0x101FD,
|
|
4820
|
+
0x101FD,
|
|
4821
|
+
'NSM'
|
|
4822
|
+
],
|
|
4823
|
+
[
|
|
4824
|
+
0x102E0,
|
|
4825
|
+
0x102E0,
|
|
4826
|
+
'NSM'
|
|
4827
|
+
],
|
|
4828
|
+
[
|
|
4829
|
+
0x102E1,
|
|
4830
|
+
0x102FB,
|
|
4831
|
+
'EN'
|
|
4832
|
+
],
|
|
4833
|
+
[
|
|
4834
|
+
0x10376,
|
|
4835
|
+
0x1037A,
|
|
4836
|
+
'NSM'
|
|
4837
|
+
],
|
|
4838
|
+
[
|
|
4839
|
+
0x10800,
|
|
4840
|
+
0x1091E,
|
|
4841
|
+
'R'
|
|
4842
|
+
],
|
|
4843
|
+
[
|
|
4844
|
+
0x1091F,
|
|
4845
|
+
0x1091F,
|
|
4846
|
+
'ON'
|
|
4847
|
+
],
|
|
4848
|
+
[
|
|
4849
|
+
0x10920,
|
|
4850
|
+
0x10A00,
|
|
4851
|
+
'R'
|
|
4852
|
+
],
|
|
4853
|
+
[
|
|
4854
|
+
0x10A01,
|
|
4855
|
+
0x10A03,
|
|
4856
|
+
'NSM'
|
|
4857
|
+
],
|
|
4858
|
+
[
|
|
4859
|
+
0x10A04,
|
|
4860
|
+
0x10A04,
|
|
4861
|
+
'R'
|
|
4862
|
+
],
|
|
4863
|
+
[
|
|
4864
|
+
0x10A05,
|
|
4865
|
+
0x10A06,
|
|
4866
|
+
'NSM'
|
|
4867
|
+
],
|
|
4868
|
+
[
|
|
4869
|
+
0x10A07,
|
|
4870
|
+
0x10A0B,
|
|
4871
|
+
'R'
|
|
4872
|
+
],
|
|
4873
|
+
[
|
|
4874
|
+
0x10A0C,
|
|
4875
|
+
0x10A0F,
|
|
4876
|
+
'NSM'
|
|
4877
|
+
],
|
|
4878
|
+
[
|
|
4879
|
+
0x10A10,
|
|
4880
|
+
0x10A37,
|
|
4881
|
+
'R'
|
|
4882
|
+
],
|
|
4883
|
+
[
|
|
4884
|
+
0x10A38,
|
|
4885
|
+
0x10A3A,
|
|
4886
|
+
'NSM'
|
|
4887
|
+
],
|
|
4888
|
+
[
|
|
4889
|
+
0x10A3B,
|
|
4890
|
+
0x10A3E,
|
|
4891
|
+
'R'
|
|
4892
|
+
],
|
|
4893
|
+
[
|
|
4894
|
+
0x10A3F,
|
|
4895
|
+
0x10A3F,
|
|
4896
|
+
'NSM'
|
|
4897
|
+
],
|
|
4898
|
+
[
|
|
4899
|
+
0x10A40,
|
|
4900
|
+
0x10AE4,
|
|
4901
|
+
'R'
|
|
4902
|
+
],
|
|
4903
|
+
[
|
|
4904
|
+
0x10AE5,
|
|
4905
|
+
0x10AE6,
|
|
4906
|
+
'NSM'
|
|
4907
|
+
],
|
|
4908
|
+
[
|
|
4909
|
+
0x10AE7,
|
|
4910
|
+
0x10B38,
|
|
4911
|
+
'R'
|
|
4912
|
+
],
|
|
4913
|
+
[
|
|
4914
|
+
0x10B39,
|
|
4915
|
+
0x10B3F,
|
|
4916
|
+
'ON'
|
|
4917
|
+
],
|
|
4918
|
+
[
|
|
4919
|
+
0x10B40,
|
|
4920
|
+
0x10CFF,
|
|
4921
|
+
'R'
|
|
4922
|
+
],
|
|
4923
|
+
[
|
|
4924
|
+
0x10D00,
|
|
4925
|
+
0x10D23,
|
|
4926
|
+
'AL'
|
|
4927
|
+
],
|
|
4928
|
+
[
|
|
4929
|
+
0x10D24,
|
|
4930
|
+
0x10D27,
|
|
4931
|
+
'NSM'
|
|
4932
|
+
],
|
|
4933
|
+
[
|
|
4934
|
+
0x10D28,
|
|
4935
|
+
0x10D2F,
|
|
4936
|
+
'AL'
|
|
4937
|
+
],
|
|
4938
|
+
[
|
|
4939
|
+
0x10D30,
|
|
4940
|
+
0x10D39,
|
|
4941
|
+
'AN'
|
|
4942
|
+
],
|
|
4943
|
+
[
|
|
4944
|
+
0x10D3A,
|
|
4945
|
+
0x10D3F,
|
|
4946
|
+
'AL'
|
|
4947
|
+
],
|
|
4948
|
+
[
|
|
4949
|
+
0x10D40,
|
|
4950
|
+
0x10D49,
|
|
4951
|
+
'AN'
|
|
4952
|
+
],
|
|
4953
|
+
[
|
|
4954
|
+
0x10D4A,
|
|
4955
|
+
0x10D68,
|
|
4956
|
+
'R'
|
|
4957
|
+
],
|
|
4958
|
+
[
|
|
4959
|
+
0x10D69,
|
|
4960
|
+
0x10D6D,
|
|
4961
|
+
'NSM'
|
|
4962
|
+
],
|
|
4963
|
+
[
|
|
4964
|
+
0x10D6E,
|
|
4965
|
+
0x10D6E,
|
|
4966
|
+
'ON'
|
|
4967
|
+
],
|
|
4968
|
+
[
|
|
4969
|
+
0x10D6F,
|
|
4970
|
+
0x10E5F,
|
|
4971
|
+
'R'
|
|
4972
|
+
],
|
|
4973
|
+
[
|
|
4974
|
+
0x10E60,
|
|
4975
|
+
0x10E7E,
|
|
4976
|
+
'AN'
|
|
4977
|
+
],
|
|
4978
|
+
[
|
|
4979
|
+
0x10E7F,
|
|
4980
|
+
0x10EAA,
|
|
4981
|
+
'R'
|
|
4982
|
+
],
|
|
4983
|
+
[
|
|
4984
|
+
0x10EAB,
|
|
4985
|
+
0x10EAC,
|
|
4986
|
+
'NSM'
|
|
4987
|
+
],
|
|
4988
|
+
[
|
|
4989
|
+
0x10EAD,
|
|
4990
|
+
0x10EBF,
|
|
4991
|
+
'R'
|
|
4992
|
+
],
|
|
4993
|
+
[
|
|
4994
|
+
0x10EC0,
|
|
4995
|
+
0x10ECF,
|
|
4996
|
+
'AL'
|
|
4997
|
+
],
|
|
4998
|
+
[
|
|
4999
|
+
0x10ED0,
|
|
5000
|
+
0x10ED8,
|
|
5001
|
+
'ON'
|
|
5002
|
+
],
|
|
5003
|
+
[
|
|
5004
|
+
0x10ED9,
|
|
5005
|
+
0x10EF9,
|
|
5006
|
+
'AL'
|
|
5007
|
+
],
|
|
5008
|
+
[
|
|
5009
|
+
0x10EFA,
|
|
5010
|
+
0x10EFF,
|
|
5011
|
+
'NSM'
|
|
5012
|
+
],
|
|
5013
|
+
[
|
|
5014
|
+
0x10F00,
|
|
5015
|
+
0x10F2F,
|
|
5016
|
+
'R'
|
|
5017
|
+
],
|
|
5018
|
+
[
|
|
5019
|
+
0x10F30,
|
|
5020
|
+
0x10F45,
|
|
5021
|
+
'AL'
|
|
5022
|
+
],
|
|
5023
|
+
[
|
|
5024
|
+
0x10F46,
|
|
5025
|
+
0x10F50,
|
|
5026
|
+
'NSM'
|
|
5027
|
+
],
|
|
5028
|
+
[
|
|
5029
|
+
0x10F51,
|
|
5030
|
+
0x10F6F,
|
|
5031
|
+
'AL'
|
|
5032
|
+
],
|
|
5033
|
+
[
|
|
5034
|
+
0x10F70,
|
|
5035
|
+
0x10F81,
|
|
5036
|
+
'R'
|
|
5037
|
+
],
|
|
5038
|
+
[
|
|
5039
|
+
0x10F82,
|
|
5040
|
+
0x10F85,
|
|
5041
|
+
'NSM'
|
|
5042
|
+
],
|
|
5043
|
+
[
|
|
5044
|
+
0x10F86,
|
|
5045
|
+
0x10FFF,
|
|
5046
|
+
'R'
|
|
5047
|
+
],
|
|
5048
|
+
[
|
|
5049
|
+
0x11001,
|
|
5050
|
+
0x11001,
|
|
5051
|
+
'NSM'
|
|
5052
|
+
],
|
|
5053
|
+
[
|
|
5054
|
+
0x11038,
|
|
5055
|
+
0x11046,
|
|
5056
|
+
'NSM'
|
|
5057
|
+
],
|
|
5058
|
+
[
|
|
5059
|
+
0x11052,
|
|
5060
|
+
0x11065,
|
|
5061
|
+
'ON'
|
|
5062
|
+
],
|
|
5063
|
+
[
|
|
5064
|
+
0x11070,
|
|
5065
|
+
0x11070,
|
|
5066
|
+
'NSM'
|
|
5067
|
+
],
|
|
5068
|
+
[
|
|
5069
|
+
0x11073,
|
|
5070
|
+
0x11074,
|
|
5071
|
+
'NSM'
|
|
5072
|
+
],
|
|
5073
|
+
[
|
|
5074
|
+
0x1107F,
|
|
5075
|
+
0x11081,
|
|
5076
|
+
'NSM'
|
|
5077
|
+
],
|
|
5078
|
+
[
|
|
5079
|
+
0x110B3,
|
|
5080
|
+
0x110B6,
|
|
5081
|
+
'NSM'
|
|
5082
|
+
],
|
|
5083
|
+
[
|
|
5084
|
+
0x110B9,
|
|
5085
|
+
0x110BA,
|
|
5086
|
+
'NSM'
|
|
5087
|
+
],
|
|
5088
|
+
[
|
|
5089
|
+
0x110C2,
|
|
5090
|
+
0x110C2,
|
|
5091
|
+
'NSM'
|
|
5092
|
+
],
|
|
5093
|
+
[
|
|
5094
|
+
0x11100,
|
|
5095
|
+
0x11102,
|
|
5096
|
+
'NSM'
|
|
5097
|
+
],
|
|
5098
|
+
[
|
|
5099
|
+
0x11127,
|
|
5100
|
+
0x1112B,
|
|
5101
|
+
'NSM'
|
|
5102
|
+
],
|
|
5103
|
+
[
|
|
5104
|
+
0x1112D,
|
|
5105
|
+
0x11134,
|
|
5106
|
+
'NSM'
|
|
5107
|
+
],
|
|
5108
|
+
[
|
|
5109
|
+
0x11173,
|
|
5110
|
+
0x11173,
|
|
5111
|
+
'NSM'
|
|
5112
|
+
],
|
|
5113
|
+
[
|
|
5114
|
+
0x11180,
|
|
5115
|
+
0x11181,
|
|
5116
|
+
'NSM'
|
|
5117
|
+
],
|
|
5118
|
+
[
|
|
5119
|
+
0x111B6,
|
|
5120
|
+
0x111BE,
|
|
5121
|
+
'NSM'
|
|
5122
|
+
],
|
|
5123
|
+
[
|
|
5124
|
+
0x111C9,
|
|
5125
|
+
0x111CC,
|
|
5126
|
+
'NSM'
|
|
5127
|
+
],
|
|
5128
|
+
[
|
|
5129
|
+
0x111CF,
|
|
5130
|
+
0x111CF,
|
|
5131
|
+
'NSM'
|
|
5132
|
+
],
|
|
5133
|
+
[
|
|
5134
|
+
0x1122F,
|
|
5135
|
+
0x11231,
|
|
5136
|
+
'NSM'
|
|
5137
|
+
],
|
|
5138
|
+
[
|
|
5139
|
+
0x11234,
|
|
5140
|
+
0x11234,
|
|
5141
|
+
'NSM'
|
|
5142
|
+
],
|
|
5143
|
+
[
|
|
5144
|
+
0x11236,
|
|
5145
|
+
0x11237,
|
|
5146
|
+
'NSM'
|
|
5147
|
+
],
|
|
5148
|
+
[
|
|
5149
|
+
0x1123E,
|
|
5150
|
+
0x1123E,
|
|
5151
|
+
'NSM'
|
|
5152
|
+
],
|
|
5153
|
+
[
|
|
5154
|
+
0x11241,
|
|
5155
|
+
0x11241,
|
|
5156
|
+
'NSM'
|
|
5157
|
+
],
|
|
5158
|
+
[
|
|
5159
|
+
0x112DF,
|
|
5160
|
+
0x112DF,
|
|
5161
|
+
'NSM'
|
|
5162
|
+
],
|
|
5163
|
+
[
|
|
5164
|
+
0x112E3,
|
|
5165
|
+
0x112EA,
|
|
5166
|
+
'NSM'
|
|
5167
|
+
],
|
|
5168
|
+
[
|
|
5169
|
+
0x11300,
|
|
5170
|
+
0x11301,
|
|
5171
|
+
'NSM'
|
|
5172
|
+
],
|
|
5173
|
+
[
|
|
5174
|
+
0x1133B,
|
|
5175
|
+
0x1133C,
|
|
5176
|
+
'NSM'
|
|
5177
|
+
],
|
|
5178
|
+
[
|
|
5179
|
+
0x11340,
|
|
5180
|
+
0x11340,
|
|
5181
|
+
'NSM'
|
|
5182
|
+
],
|
|
5183
|
+
[
|
|
5184
|
+
0x11366,
|
|
5185
|
+
0x1136C,
|
|
5186
|
+
'NSM'
|
|
5187
|
+
],
|
|
5188
|
+
[
|
|
5189
|
+
0x11370,
|
|
5190
|
+
0x11374,
|
|
5191
|
+
'NSM'
|
|
5192
|
+
],
|
|
5193
|
+
[
|
|
5194
|
+
0x113BB,
|
|
5195
|
+
0x113C0,
|
|
5196
|
+
'NSM'
|
|
5197
|
+
],
|
|
5198
|
+
[
|
|
5199
|
+
0x113CE,
|
|
5200
|
+
0x113CE,
|
|
5201
|
+
'NSM'
|
|
5202
|
+
],
|
|
5203
|
+
[
|
|
5204
|
+
0x113D0,
|
|
5205
|
+
0x113D0,
|
|
5206
|
+
'NSM'
|
|
5207
|
+
],
|
|
5208
|
+
[
|
|
5209
|
+
0x113D2,
|
|
5210
|
+
0x113D2,
|
|
5211
|
+
'NSM'
|
|
5212
|
+
],
|
|
5213
|
+
[
|
|
5214
|
+
0x113E1,
|
|
5215
|
+
0x113E2,
|
|
5216
|
+
'NSM'
|
|
5217
|
+
],
|
|
5218
|
+
[
|
|
5219
|
+
0x11438,
|
|
5220
|
+
0x1143F,
|
|
5221
|
+
'NSM'
|
|
5222
|
+
],
|
|
5223
|
+
[
|
|
5224
|
+
0x11442,
|
|
5225
|
+
0x11444,
|
|
5226
|
+
'NSM'
|
|
5227
|
+
],
|
|
5228
|
+
[
|
|
5229
|
+
0x11446,
|
|
5230
|
+
0x11446,
|
|
5231
|
+
'NSM'
|
|
5232
|
+
],
|
|
5233
|
+
[
|
|
5234
|
+
0x1145E,
|
|
5235
|
+
0x1145E,
|
|
5236
|
+
'NSM'
|
|
5237
|
+
],
|
|
5238
|
+
[
|
|
5239
|
+
0x114B3,
|
|
5240
|
+
0x114B8,
|
|
5241
|
+
'NSM'
|
|
5242
|
+
],
|
|
5243
|
+
[
|
|
5244
|
+
0x114BA,
|
|
5245
|
+
0x114BA,
|
|
5246
|
+
'NSM'
|
|
5247
|
+
],
|
|
5248
|
+
[
|
|
5249
|
+
0x114BF,
|
|
5250
|
+
0x114C0,
|
|
5251
|
+
'NSM'
|
|
5252
|
+
],
|
|
5253
|
+
[
|
|
5254
|
+
0x114C2,
|
|
5255
|
+
0x114C3,
|
|
5256
|
+
'NSM'
|
|
5257
|
+
],
|
|
5258
|
+
[
|
|
5259
|
+
0x115B2,
|
|
5260
|
+
0x115B5,
|
|
5261
|
+
'NSM'
|
|
5262
|
+
],
|
|
5263
|
+
[
|
|
5264
|
+
0x115BC,
|
|
5265
|
+
0x115BD,
|
|
5266
|
+
'NSM'
|
|
5267
|
+
],
|
|
5268
|
+
[
|
|
5269
|
+
0x115BF,
|
|
5270
|
+
0x115C0,
|
|
5271
|
+
'NSM'
|
|
5272
|
+
],
|
|
5273
|
+
[
|
|
5274
|
+
0x115DC,
|
|
5275
|
+
0x115DD,
|
|
5276
|
+
'NSM'
|
|
5277
|
+
],
|
|
5278
|
+
[
|
|
5279
|
+
0x11633,
|
|
5280
|
+
0x1163A,
|
|
5281
|
+
'NSM'
|
|
5282
|
+
],
|
|
5283
|
+
[
|
|
5284
|
+
0x1163D,
|
|
5285
|
+
0x1163D,
|
|
5286
|
+
'NSM'
|
|
5287
|
+
],
|
|
5288
|
+
[
|
|
5289
|
+
0x1163F,
|
|
5290
|
+
0x11640,
|
|
5291
|
+
'NSM'
|
|
5292
|
+
],
|
|
5293
|
+
[
|
|
5294
|
+
0x11660,
|
|
5295
|
+
0x1166C,
|
|
5296
|
+
'ON'
|
|
5297
|
+
],
|
|
5298
|
+
[
|
|
5299
|
+
0x116AB,
|
|
5300
|
+
0x116AB,
|
|
5301
|
+
'NSM'
|
|
5302
|
+
],
|
|
5303
|
+
[
|
|
5304
|
+
0x116AD,
|
|
5305
|
+
0x116AD,
|
|
5306
|
+
'NSM'
|
|
5307
|
+
],
|
|
5308
|
+
[
|
|
5309
|
+
0x116B0,
|
|
5310
|
+
0x116B5,
|
|
5311
|
+
'NSM'
|
|
5312
|
+
],
|
|
5313
|
+
[
|
|
5314
|
+
0x116B7,
|
|
5315
|
+
0x116B7,
|
|
5316
|
+
'NSM'
|
|
5317
|
+
],
|
|
5318
|
+
[
|
|
5319
|
+
0x1171D,
|
|
5320
|
+
0x1171D,
|
|
5321
|
+
'NSM'
|
|
5322
|
+
],
|
|
5323
|
+
[
|
|
5324
|
+
0x1171F,
|
|
5325
|
+
0x1171F,
|
|
5326
|
+
'NSM'
|
|
5327
|
+
],
|
|
5328
|
+
[
|
|
5329
|
+
0x11722,
|
|
5330
|
+
0x11725,
|
|
5331
|
+
'NSM'
|
|
5332
|
+
],
|
|
5333
|
+
[
|
|
5334
|
+
0x11727,
|
|
5335
|
+
0x1172B,
|
|
5336
|
+
'NSM'
|
|
5337
|
+
],
|
|
5338
|
+
[
|
|
5339
|
+
0x1182F,
|
|
5340
|
+
0x11837,
|
|
5341
|
+
'NSM'
|
|
5342
|
+
],
|
|
5343
|
+
[
|
|
5344
|
+
0x11839,
|
|
5345
|
+
0x1183A,
|
|
5346
|
+
'NSM'
|
|
5347
|
+
],
|
|
5348
|
+
[
|
|
5349
|
+
0x1193B,
|
|
5350
|
+
0x1193C,
|
|
5351
|
+
'NSM'
|
|
5352
|
+
],
|
|
5353
|
+
[
|
|
5354
|
+
0x1193E,
|
|
5355
|
+
0x1193E,
|
|
5356
|
+
'NSM'
|
|
5357
|
+
],
|
|
5358
|
+
[
|
|
5359
|
+
0x11943,
|
|
5360
|
+
0x11943,
|
|
5361
|
+
'NSM'
|
|
5362
|
+
],
|
|
5363
|
+
[
|
|
5364
|
+
0x119D4,
|
|
5365
|
+
0x119D7,
|
|
5366
|
+
'NSM'
|
|
5367
|
+
],
|
|
5368
|
+
[
|
|
5369
|
+
0x119DA,
|
|
5370
|
+
0x119DB,
|
|
5371
|
+
'NSM'
|
|
5372
|
+
],
|
|
5373
|
+
[
|
|
5374
|
+
0x119E0,
|
|
5375
|
+
0x119E0,
|
|
5376
|
+
'NSM'
|
|
5377
|
+
],
|
|
5378
|
+
[
|
|
5379
|
+
0x11A01,
|
|
5380
|
+
0x11A06,
|
|
5381
|
+
'NSM'
|
|
5382
|
+
],
|
|
5383
|
+
[
|
|
5384
|
+
0x11A09,
|
|
5385
|
+
0x11A0A,
|
|
5386
|
+
'NSM'
|
|
5387
|
+
],
|
|
5388
|
+
[
|
|
5389
|
+
0x11A33,
|
|
5390
|
+
0x11A38,
|
|
5391
|
+
'NSM'
|
|
5392
|
+
],
|
|
5393
|
+
[
|
|
5394
|
+
0x11A3B,
|
|
5395
|
+
0x11A3E,
|
|
5396
|
+
'NSM'
|
|
5397
|
+
],
|
|
5398
|
+
[
|
|
5399
|
+
0x11A47,
|
|
5400
|
+
0x11A47,
|
|
5401
|
+
'NSM'
|
|
5402
|
+
],
|
|
5403
|
+
[
|
|
5404
|
+
0x11A51,
|
|
5405
|
+
0x11A56,
|
|
5406
|
+
'NSM'
|
|
5407
|
+
],
|
|
5408
|
+
[
|
|
5409
|
+
0x11A59,
|
|
5410
|
+
0x11A5B,
|
|
5411
|
+
'NSM'
|
|
5412
|
+
],
|
|
5413
|
+
[
|
|
5414
|
+
0x11A8A,
|
|
5415
|
+
0x11A96,
|
|
5416
|
+
'NSM'
|
|
5417
|
+
],
|
|
5418
|
+
[
|
|
5419
|
+
0x11A98,
|
|
5420
|
+
0x11A99,
|
|
5421
|
+
'NSM'
|
|
5422
|
+
],
|
|
5423
|
+
[
|
|
5424
|
+
0x11B60,
|
|
5425
|
+
0x11B60,
|
|
5426
|
+
'NSM'
|
|
5427
|
+
],
|
|
5428
|
+
[
|
|
5429
|
+
0x11B62,
|
|
5430
|
+
0x11B64,
|
|
5431
|
+
'NSM'
|
|
5432
|
+
],
|
|
5433
|
+
[
|
|
5434
|
+
0x11B66,
|
|
5435
|
+
0x11B66,
|
|
5436
|
+
'NSM'
|
|
5437
|
+
],
|
|
5438
|
+
[
|
|
5439
|
+
0x11C30,
|
|
5440
|
+
0x11C36,
|
|
5441
|
+
'NSM'
|
|
5442
|
+
],
|
|
5443
|
+
[
|
|
5444
|
+
0x11C38,
|
|
5445
|
+
0x11C3D,
|
|
5446
|
+
'NSM'
|
|
5447
|
+
],
|
|
5448
|
+
[
|
|
5449
|
+
0x11C92,
|
|
5450
|
+
0x11CA7,
|
|
5451
|
+
'NSM'
|
|
5452
|
+
],
|
|
5453
|
+
[
|
|
5454
|
+
0x11CAA,
|
|
5455
|
+
0x11CB0,
|
|
5456
|
+
'NSM'
|
|
5457
|
+
],
|
|
5458
|
+
[
|
|
5459
|
+
0x11CB2,
|
|
5460
|
+
0x11CB3,
|
|
5461
|
+
'NSM'
|
|
5462
|
+
],
|
|
5463
|
+
[
|
|
5464
|
+
0x11CB5,
|
|
5465
|
+
0x11CB6,
|
|
5466
|
+
'NSM'
|
|
5467
|
+
],
|
|
5468
|
+
[
|
|
5469
|
+
0x11D31,
|
|
5470
|
+
0x11D36,
|
|
5471
|
+
'NSM'
|
|
5472
|
+
],
|
|
5473
|
+
[
|
|
5474
|
+
0x11D3A,
|
|
5475
|
+
0x11D3A,
|
|
5476
|
+
'NSM'
|
|
5477
|
+
],
|
|
5478
|
+
[
|
|
5479
|
+
0x11D3C,
|
|
5480
|
+
0x11D3D,
|
|
5481
|
+
'NSM'
|
|
5482
|
+
],
|
|
5483
|
+
[
|
|
5484
|
+
0x11D3F,
|
|
5485
|
+
0x11D45,
|
|
5486
|
+
'NSM'
|
|
5487
|
+
],
|
|
5488
|
+
[
|
|
5489
|
+
0x11D47,
|
|
5490
|
+
0x11D47,
|
|
5491
|
+
'NSM'
|
|
5492
|
+
],
|
|
5493
|
+
[
|
|
5494
|
+
0x11D90,
|
|
5495
|
+
0x11D91,
|
|
5496
|
+
'NSM'
|
|
5497
|
+
],
|
|
5498
|
+
[
|
|
5499
|
+
0x11D95,
|
|
5500
|
+
0x11D95,
|
|
5501
|
+
'NSM'
|
|
5502
|
+
],
|
|
5503
|
+
[
|
|
5504
|
+
0x11D97,
|
|
5505
|
+
0x11D97,
|
|
5506
|
+
'NSM'
|
|
5507
|
+
],
|
|
5508
|
+
[
|
|
5509
|
+
0x11EF3,
|
|
5510
|
+
0x11EF4,
|
|
5511
|
+
'NSM'
|
|
5512
|
+
],
|
|
5513
|
+
[
|
|
5514
|
+
0x11F00,
|
|
5515
|
+
0x11F01,
|
|
5516
|
+
'NSM'
|
|
5517
|
+
],
|
|
5518
|
+
[
|
|
5519
|
+
0x11F36,
|
|
5520
|
+
0x11F3A,
|
|
5521
|
+
'NSM'
|
|
5522
|
+
],
|
|
5523
|
+
[
|
|
5524
|
+
0x11F40,
|
|
5525
|
+
0x11F40,
|
|
5526
|
+
'NSM'
|
|
5527
|
+
],
|
|
5528
|
+
[
|
|
5529
|
+
0x11F42,
|
|
5530
|
+
0x11F42,
|
|
5531
|
+
'NSM'
|
|
5532
|
+
],
|
|
5533
|
+
[
|
|
5534
|
+
0x11F5A,
|
|
5535
|
+
0x11F5A,
|
|
5536
|
+
'NSM'
|
|
5537
|
+
],
|
|
5538
|
+
[
|
|
5539
|
+
0x11FD5,
|
|
5540
|
+
0x11FDC,
|
|
5541
|
+
'ON'
|
|
5542
|
+
],
|
|
5543
|
+
[
|
|
5544
|
+
0x11FDD,
|
|
5545
|
+
0x11FE0,
|
|
5546
|
+
'ET'
|
|
5547
|
+
],
|
|
5548
|
+
[
|
|
5549
|
+
0x11FE1,
|
|
5550
|
+
0x11FF1,
|
|
5551
|
+
'ON'
|
|
5552
|
+
],
|
|
5553
|
+
[
|
|
5554
|
+
0x13440,
|
|
5555
|
+
0x13440,
|
|
5556
|
+
'NSM'
|
|
5557
|
+
],
|
|
5558
|
+
[
|
|
5559
|
+
0x13447,
|
|
5560
|
+
0x13455,
|
|
5561
|
+
'NSM'
|
|
5562
|
+
],
|
|
5563
|
+
[
|
|
5564
|
+
0x1611E,
|
|
5565
|
+
0x16129,
|
|
5566
|
+
'NSM'
|
|
5567
|
+
],
|
|
5568
|
+
[
|
|
5569
|
+
0x1612D,
|
|
5570
|
+
0x1612F,
|
|
5571
|
+
'NSM'
|
|
5572
|
+
],
|
|
5573
|
+
[
|
|
5574
|
+
0x16AF0,
|
|
5575
|
+
0x16AF4,
|
|
5576
|
+
'NSM'
|
|
5577
|
+
],
|
|
5578
|
+
[
|
|
5579
|
+
0x16B30,
|
|
5580
|
+
0x16B36,
|
|
5581
|
+
'NSM'
|
|
5582
|
+
],
|
|
5583
|
+
[
|
|
5584
|
+
0x16F4F,
|
|
5585
|
+
0x16F4F,
|
|
5586
|
+
'NSM'
|
|
5587
|
+
],
|
|
5588
|
+
[
|
|
5589
|
+
0x16F8F,
|
|
5590
|
+
0x16F92,
|
|
5591
|
+
'NSM'
|
|
5592
|
+
],
|
|
5593
|
+
[
|
|
5594
|
+
0x16FE2,
|
|
5595
|
+
0x16FE2,
|
|
5596
|
+
'ON'
|
|
5597
|
+
],
|
|
5598
|
+
[
|
|
5599
|
+
0x16FE4,
|
|
5600
|
+
0x16FE4,
|
|
5601
|
+
'NSM'
|
|
5602
|
+
],
|
|
5603
|
+
[
|
|
5604
|
+
0x1BC9D,
|
|
5605
|
+
0x1BC9E,
|
|
5606
|
+
'NSM'
|
|
5607
|
+
],
|
|
5608
|
+
[
|
|
5609
|
+
0x1BCA0,
|
|
5610
|
+
0x1BCA3,
|
|
5611
|
+
'BN'
|
|
5612
|
+
],
|
|
5613
|
+
[
|
|
5614
|
+
0x1CC00,
|
|
5615
|
+
0x1CCD5,
|
|
5616
|
+
'ON'
|
|
5617
|
+
],
|
|
5618
|
+
[
|
|
5619
|
+
0x1CCF0,
|
|
5620
|
+
0x1CCF9,
|
|
5621
|
+
'EN'
|
|
5622
|
+
],
|
|
5623
|
+
[
|
|
5624
|
+
0x1CCFA,
|
|
5625
|
+
0x1CCFC,
|
|
5626
|
+
'ON'
|
|
5627
|
+
],
|
|
5628
|
+
[
|
|
5629
|
+
0x1CD00,
|
|
5630
|
+
0x1CEB3,
|
|
5631
|
+
'ON'
|
|
5632
|
+
],
|
|
5633
|
+
[
|
|
5634
|
+
0x1CEBA,
|
|
5635
|
+
0x1CED0,
|
|
5636
|
+
'ON'
|
|
5637
|
+
],
|
|
5638
|
+
[
|
|
5639
|
+
0x1CEE0,
|
|
5640
|
+
0x1CEF0,
|
|
5641
|
+
'ON'
|
|
5642
|
+
],
|
|
5643
|
+
[
|
|
5644
|
+
0x1CF00,
|
|
5645
|
+
0x1CF2D,
|
|
5646
|
+
'NSM'
|
|
5647
|
+
],
|
|
5648
|
+
[
|
|
5649
|
+
0x1CF30,
|
|
5650
|
+
0x1CF46,
|
|
5651
|
+
'NSM'
|
|
5652
|
+
],
|
|
5653
|
+
[
|
|
5654
|
+
0x1D167,
|
|
5655
|
+
0x1D169,
|
|
5656
|
+
'NSM'
|
|
5657
|
+
],
|
|
5658
|
+
[
|
|
5659
|
+
0x1D173,
|
|
5660
|
+
0x1D17A,
|
|
5661
|
+
'BN'
|
|
5662
|
+
],
|
|
5663
|
+
[
|
|
5664
|
+
0x1D17B,
|
|
5665
|
+
0x1D182,
|
|
5666
|
+
'NSM'
|
|
5667
|
+
],
|
|
5668
|
+
[
|
|
5669
|
+
0x1D185,
|
|
5670
|
+
0x1D18B,
|
|
5671
|
+
'NSM'
|
|
5672
|
+
],
|
|
5673
|
+
[
|
|
5674
|
+
0x1D1AA,
|
|
5675
|
+
0x1D1AD,
|
|
5676
|
+
'NSM'
|
|
5677
|
+
],
|
|
5678
|
+
[
|
|
5679
|
+
0x1D1E9,
|
|
5680
|
+
0x1D1EA,
|
|
5681
|
+
'ON'
|
|
5682
|
+
],
|
|
5683
|
+
[
|
|
5684
|
+
0x1D200,
|
|
5685
|
+
0x1D241,
|
|
5686
|
+
'ON'
|
|
5687
|
+
],
|
|
5688
|
+
[
|
|
5689
|
+
0x1D242,
|
|
5690
|
+
0x1D244,
|
|
5691
|
+
'NSM'
|
|
5692
|
+
],
|
|
5693
|
+
[
|
|
5694
|
+
0x1D245,
|
|
5695
|
+
0x1D245,
|
|
5696
|
+
'ON'
|
|
5697
|
+
],
|
|
5698
|
+
[
|
|
5699
|
+
0x1D300,
|
|
5700
|
+
0x1D356,
|
|
5701
|
+
'ON'
|
|
5702
|
+
],
|
|
5703
|
+
[
|
|
5704
|
+
0x1D6C1,
|
|
5705
|
+
0x1D6C1,
|
|
5706
|
+
'ON'
|
|
5707
|
+
],
|
|
5708
|
+
[
|
|
5709
|
+
0x1D6DB,
|
|
5710
|
+
0x1D6DB,
|
|
5711
|
+
'ON'
|
|
5712
|
+
],
|
|
5713
|
+
[
|
|
5714
|
+
0x1D6FB,
|
|
5715
|
+
0x1D6FB,
|
|
5716
|
+
'ON'
|
|
5717
|
+
],
|
|
5718
|
+
[
|
|
5719
|
+
0x1D715,
|
|
5720
|
+
0x1D715,
|
|
5721
|
+
'ON'
|
|
5722
|
+
],
|
|
5723
|
+
[
|
|
5724
|
+
0x1D735,
|
|
5725
|
+
0x1D735,
|
|
5726
|
+
'ON'
|
|
5727
|
+
],
|
|
5728
|
+
[
|
|
5729
|
+
0x1D74F,
|
|
5730
|
+
0x1D74F,
|
|
5731
|
+
'ON'
|
|
5732
|
+
],
|
|
5733
|
+
[
|
|
5734
|
+
0x1D76F,
|
|
5735
|
+
0x1D76F,
|
|
5736
|
+
'ON'
|
|
5737
|
+
],
|
|
5738
|
+
[
|
|
5739
|
+
0x1D789,
|
|
5740
|
+
0x1D789,
|
|
5741
|
+
'ON'
|
|
5742
|
+
],
|
|
5743
|
+
[
|
|
5744
|
+
0x1D7A9,
|
|
5745
|
+
0x1D7A9,
|
|
5746
|
+
'ON'
|
|
5747
|
+
],
|
|
5748
|
+
[
|
|
5749
|
+
0x1D7C3,
|
|
5750
|
+
0x1D7C3,
|
|
5751
|
+
'ON'
|
|
5752
|
+
],
|
|
5753
|
+
[
|
|
5754
|
+
0x1D7CE,
|
|
5755
|
+
0x1D7FF,
|
|
5756
|
+
'EN'
|
|
5757
|
+
],
|
|
5758
|
+
[
|
|
5759
|
+
0x1DA00,
|
|
5760
|
+
0x1DA36,
|
|
5761
|
+
'NSM'
|
|
5762
|
+
],
|
|
5763
|
+
[
|
|
5764
|
+
0x1DA3B,
|
|
5765
|
+
0x1DA6C,
|
|
5766
|
+
'NSM'
|
|
5767
|
+
],
|
|
5768
|
+
[
|
|
5769
|
+
0x1DA75,
|
|
5770
|
+
0x1DA75,
|
|
5771
|
+
'NSM'
|
|
5772
|
+
],
|
|
5773
|
+
[
|
|
5774
|
+
0x1DA84,
|
|
5775
|
+
0x1DA84,
|
|
5776
|
+
'NSM'
|
|
5777
|
+
],
|
|
5778
|
+
[
|
|
5779
|
+
0x1DA9B,
|
|
5780
|
+
0x1DA9F,
|
|
5781
|
+
'NSM'
|
|
5782
|
+
],
|
|
5783
|
+
[
|
|
5784
|
+
0x1DAA1,
|
|
5785
|
+
0x1DAAF,
|
|
5786
|
+
'NSM'
|
|
5787
|
+
],
|
|
5788
|
+
[
|
|
5789
|
+
0x1E000,
|
|
5790
|
+
0x1E006,
|
|
5791
|
+
'NSM'
|
|
5792
|
+
],
|
|
5793
|
+
[
|
|
5794
|
+
0x1E008,
|
|
5795
|
+
0x1E018,
|
|
5796
|
+
'NSM'
|
|
5797
|
+
],
|
|
5798
|
+
[
|
|
5799
|
+
0x1E01B,
|
|
5800
|
+
0x1E021,
|
|
5801
|
+
'NSM'
|
|
5802
|
+
],
|
|
5803
|
+
[
|
|
5804
|
+
0x1E023,
|
|
5805
|
+
0x1E024,
|
|
5806
|
+
'NSM'
|
|
5807
|
+
],
|
|
5808
|
+
[
|
|
5809
|
+
0x1E026,
|
|
5810
|
+
0x1E02A,
|
|
5811
|
+
'NSM'
|
|
5812
|
+
],
|
|
5813
|
+
[
|
|
5814
|
+
0x1E08F,
|
|
5815
|
+
0x1E08F,
|
|
5816
|
+
'NSM'
|
|
5817
|
+
],
|
|
5818
|
+
[
|
|
5819
|
+
0x1E130,
|
|
5820
|
+
0x1E136,
|
|
5821
|
+
'NSM'
|
|
5822
|
+
],
|
|
5823
|
+
[
|
|
5824
|
+
0x1E2AE,
|
|
5825
|
+
0x1E2AE,
|
|
5826
|
+
'NSM'
|
|
5827
|
+
],
|
|
5828
|
+
[
|
|
5829
|
+
0x1E2EC,
|
|
5830
|
+
0x1E2EF,
|
|
5831
|
+
'NSM'
|
|
5832
|
+
],
|
|
5833
|
+
[
|
|
5834
|
+
0x1E2FF,
|
|
5835
|
+
0x1E2FF,
|
|
5836
|
+
'ET'
|
|
5837
|
+
],
|
|
5838
|
+
[
|
|
5839
|
+
0x1E4EC,
|
|
5840
|
+
0x1E4EF,
|
|
5841
|
+
'NSM'
|
|
5842
|
+
],
|
|
5843
|
+
[
|
|
5844
|
+
0x1E5EE,
|
|
5845
|
+
0x1E5EF,
|
|
5846
|
+
'NSM'
|
|
5847
|
+
],
|
|
5848
|
+
[
|
|
5849
|
+
0x1E6E3,
|
|
5850
|
+
0x1E6E3,
|
|
5851
|
+
'NSM'
|
|
5852
|
+
],
|
|
5853
|
+
[
|
|
5854
|
+
0x1E6E6,
|
|
5855
|
+
0x1E6E6,
|
|
5856
|
+
'NSM'
|
|
5857
|
+
],
|
|
5858
|
+
[
|
|
5859
|
+
0x1E6EE,
|
|
5860
|
+
0x1E6EF,
|
|
5861
|
+
'NSM'
|
|
5862
|
+
],
|
|
5863
|
+
[
|
|
5864
|
+
0x1E6F5,
|
|
5865
|
+
0x1E6F5,
|
|
5866
|
+
'NSM'
|
|
5867
|
+
],
|
|
5868
|
+
[
|
|
5869
|
+
0x1E800,
|
|
5870
|
+
0x1E8CF,
|
|
5871
|
+
'R'
|
|
5872
|
+
],
|
|
5873
|
+
[
|
|
5874
|
+
0x1E8D0,
|
|
5875
|
+
0x1E8D6,
|
|
5876
|
+
'NSM'
|
|
5877
|
+
],
|
|
5878
|
+
[
|
|
5879
|
+
0x1E8D7,
|
|
5880
|
+
0x1E943,
|
|
5881
|
+
'R'
|
|
5882
|
+
],
|
|
5883
|
+
[
|
|
5884
|
+
0x1E944,
|
|
5885
|
+
0x1E94A,
|
|
5886
|
+
'NSM'
|
|
5887
|
+
],
|
|
5888
|
+
[
|
|
5889
|
+
0x1E94B,
|
|
5890
|
+
0x1EC6F,
|
|
5891
|
+
'R'
|
|
5892
|
+
],
|
|
5893
|
+
[
|
|
5894
|
+
0x1EC70,
|
|
5895
|
+
0x1ECBF,
|
|
5896
|
+
'AL'
|
|
5897
|
+
],
|
|
5898
|
+
[
|
|
5899
|
+
0x1ECC0,
|
|
5900
|
+
0x1ECFF,
|
|
5901
|
+
'R'
|
|
5902
|
+
],
|
|
5903
|
+
[
|
|
5904
|
+
0x1ED00,
|
|
5905
|
+
0x1ED4F,
|
|
5906
|
+
'AL'
|
|
5907
|
+
],
|
|
5908
|
+
[
|
|
5909
|
+
0x1ED50,
|
|
5910
|
+
0x1EDFF,
|
|
5911
|
+
'R'
|
|
5912
|
+
],
|
|
5913
|
+
[
|
|
5914
|
+
0x1EE00,
|
|
5915
|
+
0x1EEEF,
|
|
5916
|
+
'AL'
|
|
5917
|
+
],
|
|
5918
|
+
[
|
|
5919
|
+
0x1EEF0,
|
|
5920
|
+
0x1EEF1,
|
|
5921
|
+
'ON'
|
|
5922
|
+
],
|
|
5923
|
+
[
|
|
5924
|
+
0x1EEF2,
|
|
5925
|
+
0x1EEFF,
|
|
5926
|
+
'AL'
|
|
5927
|
+
],
|
|
5928
|
+
[
|
|
5929
|
+
0x1EF00,
|
|
5930
|
+
0x1EFFF,
|
|
5931
|
+
'R'
|
|
5932
|
+
],
|
|
5933
|
+
[
|
|
5934
|
+
0x1F000,
|
|
5935
|
+
0x1F02B,
|
|
5936
|
+
'ON'
|
|
5937
|
+
],
|
|
5938
|
+
[
|
|
5939
|
+
0x1F030,
|
|
5940
|
+
0x1F093,
|
|
5941
|
+
'ON'
|
|
5942
|
+
],
|
|
5943
|
+
[
|
|
5944
|
+
0x1F0A0,
|
|
5945
|
+
0x1F0AE,
|
|
5946
|
+
'ON'
|
|
5947
|
+
],
|
|
5948
|
+
[
|
|
5949
|
+
0x1F0B1,
|
|
5950
|
+
0x1F0BF,
|
|
5951
|
+
'ON'
|
|
5952
|
+
],
|
|
5953
|
+
[
|
|
5954
|
+
0x1F0C1,
|
|
5955
|
+
0x1F0CF,
|
|
5956
|
+
'ON'
|
|
5957
|
+
],
|
|
5958
|
+
[
|
|
5959
|
+
0x1F0D1,
|
|
5960
|
+
0x1F0F5,
|
|
5961
|
+
'ON'
|
|
5962
|
+
],
|
|
5963
|
+
[
|
|
5964
|
+
0x1F100,
|
|
5965
|
+
0x1F10A,
|
|
5966
|
+
'EN'
|
|
5967
|
+
],
|
|
5968
|
+
[
|
|
5969
|
+
0x1F10B,
|
|
5970
|
+
0x1F10F,
|
|
5971
|
+
'ON'
|
|
5972
|
+
],
|
|
5973
|
+
[
|
|
5974
|
+
0x1F12F,
|
|
5975
|
+
0x1F12F,
|
|
5976
|
+
'ON'
|
|
5977
|
+
],
|
|
5978
|
+
[
|
|
5979
|
+
0x1F16A,
|
|
5980
|
+
0x1F16F,
|
|
5981
|
+
'ON'
|
|
5982
|
+
],
|
|
5983
|
+
[
|
|
5984
|
+
0x1F1AD,
|
|
5985
|
+
0x1F1AD,
|
|
5986
|
+
'ON'
|
|
5987
|
+
],
|
|
5988
|
+
[
|
|
5989
|
+
0x1F260,
|
|
5990
|
+
0x1F265,
|
|
5991
|
+
'ON'
|
|
5992
|
+
],
|
|
5993
|
+
[
|
|
5994
|
+
0x1F300,
|
|
5995
|
+
0x1F6D8,
|
|
5996
|
+
'ON'
|
|
5997
|
+
],
|
|
5998
|
+
[
|
|
5999
|
+
0x1F6DC,
|
|
6000
|
+
0x1F6EC,
|
|
6001
|
+
'ON'
|
|
6002
|
+
],
|
|
6003
|
+
[
|
|
6004
|
+
0x1F6F0,
|
|
6005
|
+
0x1F6FC,
|
|
6006
|
+
'ON'
|
|
6007
|
+
],
|
|
6008
|
+
[
|
|
6009
|
+
0x1F700,
|
|
6010
|
+
0x1F7D9,
|
|
6011
|
+
'ON'
|
|
6012
|
+
],
|
|
6013
|
+
[
|
|
6014
|
+
0x1F7E0,
|
|
6015
|
+
0x1F7EB,
|
|
6016
|
+
'ON'
|
|
6017
|
+
],
|
|
6018
|
+
[
|
|
6019
|
+
0x1F7F0,
|
|
6020
|
+
0x1F7F0,
|
|
6021
|
+
'ON'
|
|
6022
|
+
],
|
|
6023
|
+
[
|
|
6024
|
+
0x1F800,
|
|
6025
|
+
0x1F80B,
|
|
6026
|
+
'ON'
|
|
6027
|
+
],
|
|
6028
|
+
[
|
|
6029
|
+
0x1F810,
|
|
6030
|
+
0x1F847,
|
|
6031
|
+
'ON'
|
|
6032
|
+
],
|
|
6033
|
+
[
|
|
6034
|
+
0x1F850,
|
|
6035
|
+
0x1F859,
|
|
6036
|
+
'ON'
|
|
6037
|
+
],
|
|
6038
|
+
[
|
|
6039
|
+
0x1F860,
|
|
6040
|
+
0x1F887,
|
|
6041
|
+
'ON'
|
|
6042
|
+
],
|
|
6043
|
+
[
|
|
6044
|
+
0x1F890,
|
|
6045
|
+
0x1F8AD,
|
|
6046
|
+
'ON'
|
|
6047
|
+
],
|
|
6048
|
+
[
|
|
6049
|
+
0x1F8B0,
|
|
6050
|
+
0x1F8BB,
|
|
6051
|
+
'ON'
|
|
6052
|
+
],
|
|
6053
|
+
[
|
|
6054
|
+
0x1F8C0,
|
|
6055
|
+
0x1F8C1,
|
|
6056
|
+
'ON'
|
|
6057
|
+
],
|
|
6058
|
+
[
|
|
6059
|
+
0x1F8D0,
|
|
6060
|
+
0x1F8D8,
|
|
6061
|
+
'ON'
|
|
6062
|
+
],
|
|
6063
|
+
[
|
|
6064
|
+
0x1F900,
|
|
6065
|
+
0x1FA57,
|
|
6066
|
+
'ON'
|
|
6067
|
+
],
|
|
6068
|
+
[
|
|
6069
|
+
0x1FA60,
|
|
6070
|
+
0x1FA6D,
|
|
6071
|
+
'ON'
|
|
6072
|
+
],
|
|
6073
|
+
[
|
|
6074
|
+
0x1FA70,
|
|
6075
|
+
0x1FA7C,
|
|
6076
|
+
'ON'
|
|
6077
|
+
],
|
|
6078
|
+
[
|
|
6079
|
+
0x1FA80,
|
|
6080
|
+
0x1FA8A,
|
|
6081
|
+
'ON'
|
|
6082
|
+
],
|
|
6083
|
+
[
|
|
6084
|
+
0x1FA8E,
|
|
6085
|
+
0x1FAC6,
|
|
6086
|
+
'ON'
|
|
6087
|
+
],
|
|
6088
|
+
[
|
|
6089
|
+
0x1FAC8,
|
|
6090
|
+
0x1FAC8,
|
|
6091
|
+
'ON'
|
|
6092
|
+
],
|
|
6093
|
+
[
|
|
6094
|
+
0x1FACD,
|
|
6095
|
+
0x1FADC,
|
|
6096
|
+
'ON'
|
|
6097
|
+
],
|
|
6098
|
+
[
|
|
6099
|
+
0x1FADF,
|
|
6100
|
+
0x1FAEA,
|
|
6101
|
+
'ON'
|
|
6102
|
+
],
|
|
6103
|
+
[
|
|
6104
|
+
0x1FAEF,
|
|
6105
|
+
0x1FAF8,
|
|
6106
|
+
'ON'
|
|
6107
|
+
],
|
|
6108
|
+
[
|
|
6109
|
+
0x1FB00,
|
|
6110
|
+
0x1FB92,
|
|
6111
|
+
'ON'
|
|
6112
|
+
],
|
|
6113
|
+
[
|
|
6114
|
+
0x1FB94,
|
|
6115
|
+
0x1FBEF,
|
|
6116
|
+
'ON'
|
|
6117
|
+
],
|
|
6118
|
+
[
|
|
6119
|
+
0x1FBF0,
|
|
6120
|
+
0x1FBF9,
|
|
6121
|
+
'EN'
|
|
6122
|
+
],
|
|
6123
|
+
[
|
|
6124
|
+
0x1FBFA,
|
|
6125
|
+
0x1FBFA,
|
|
6126
|
+
'ON'
|
|
6127
|
+
],
|
|
6128
|
+
[
|
|
6129
|
+
0x1FFFE,
|
|
6130
|
+
0x1FFFF,
|
|
6131
|
+
'BN'
|
|
6132
|
+
],
|
|
6133
|
+
[
|
|
6134
|
+
0x2FFFE,
|
|
6135
|
+
0x2FFFF,
|
|
6136
|
+
'BN'
|
|
6137
|
+
],
|
|
6138
|
+
[
|
|
6139
|
+
0x3FFFE,
|
|
6140
|
+
0x3FFFF,
|
|
6141
|
+
'BN'
|
|
6142
|
+
],
|
|
6143
|
+
[
|
|
6144
|
+
0x4FFFE,
|
|
6145
|
+
0x4FFFF,
|
|
6146
|
+
'BN'
|
|
6147
|
+
],
|
|
6148
|
+
[
|
|
6149
|
+
0x5FFFE,
|
|
6150
|
+
0x5FFFF,
|
|
6151
|
+
'BN'
|
|
6152
|
+
],
|
|
6153
|
+
[
|
|
6154
|
+
0x6FFFE,
|
|
6155
|
+
0x6FFFF,
|
|
6156
|
+
'BN'
|
|
6157
|
+
],
|
|
6158
|
+
[
|
|
6159
|
+
0x7FFFE,
|
|
6160
|
+
0x7FFFF,
|
|
6161
|
+
'BN'
|
|
6162
|
+
],
|
|
6163
|
+
[
|
|
6164
|
+
0x8FFFE,
|
|
6165
|
+
0x8FFFF,
|
|
6166
|
+
'BN'
|
|
6167
|
+
],
|
|
6168
|
+
[
|
|
6169
|
+
0x9FFFE,
|
|
6170
|
+
0x9FFFF,
|
|
6171
|
+
'BN'
|
|
6172
|
+
],
|
|
6173
|
+
[
|
|
6174
|
+
0xAFFFE,
|
|
6175
|
+
0xAFFFF,
|
|
6176
|
+
'BN'
|
|
6177
|
+
],
|
|
6178
|
+
[
|
|
6179
|
+
0xBFFFE,
|
|
6180
|
+
0xBFFFF,
|
|
6181
|
+
'BN'
|
|
6182
|
+
],
|
|
6183
|
+
[
|
|
6184
|
+
0xCFFFE,
|
|
6185
|
+
0xCFFFF,
|
|
6186
|
+
'BN'
|
|
6187
|
+
],
|
|
6188
|
+
[
|
|
6189
|
+
0xDFFFE,
|
|
6190
|
+
0xE00FF,
|
|
6191
|
+
'BN'
|
|
6192
|
+
],
|
|
6193
|
+
[
|
|
6194
|
+
0xE0100,
|
|
6195
|
+
0xE01EF,
|
|
6196
|
+
'NSM'
|
|
6197
|
+
],
|
|
6198
|
+
[
|
|
6199
|
+
0xE01F0,
|
|
6200
|
+
0xE0FFF,
|
|
6201
|
+
'BN'
|
|
6202
|
+
],
|
|
6203
|
+
[
|
|
6204
|
+
0xEFFFE,
|
|
6205
|
+
0xEFFFF,
|
|
6206
|
+
'BN'
|
|
6207
|
+
],
|
|
6208
|
+
[
|
|
6209
|
+
0xFFFFE,
|
|
6210
|
+
0xFFFFF,
|
|
6211
|
+
'BN'
|
|
6212
|
+
],
|
|
6213
|
+
[
|
|
6214
|
+
0x10FFFE,
|
|
6215
|
+
0x10FFFF,
|
|
6216
|
+
'BN'
|
|
6217
|
+
]
|
|
2905
6218
|
];
|
|
2906
|
-
|
|
2907
|
-
|
|
2908
|
-
|
|
2909
|
-
|
|
2910
|
-
|
|
6219
|
+
|
|
6220
|
+
// Simplified bidi metadata helper for the rich prepareWithSegments() path,
|
|
6221
|
+
// forked from pdf.js via Sebastian's text-layout. It classifies characters
|
|
6222
|
+
// into bidi types, computes embedding levels, and maps them onto prepared
|
|
6223
|
+
// segments for custom rendering. The line-breaking engine does not consume
|
|
6224
|
+
// these levels.
|
|
6225
|
+
function classifyCodePoint(codePoint) {
|
|
6226
|
+
if (codePoint <= 0x00FF) return latin1BidiTypes[codePoint];
|
|
6227
|
+
let lo = 0;
|
|
6228
|
+
let hi = nonLatin1BidiRanges.length - 1;
|
|
6229
|
+
while(lo <= hi){
|
|
6230
|
+
const mid = lo + hi >> 1;
|
|
6231
|
+
const range = nonLatin1BidiRanges[mid];
|
|
6232
|
+
if (codePoint < range[0]) {
|
|
6233
|
+
hi = mid - 1;
|
|
6234
|
+
continue;
|
|
6235
|
+
}
|
|
6236
|
+
if (codePoint > range[1]) {
|
|
6237
|
+
lo = mid + 1;
|
|
6238
|
+
continue;
|
|
6239
|
+
}
|
|
6240
|
+
return range[2];
|
|
6241
|
+
}
|
|
2911
6242
|
return 'L';
|
|
2912
6243
|
}
|
|
2913
6244
|
function computeBidiLevels(str) {
|
|
@@ -2915,14 +6246,44 @@
|
|
|
2915
6246
|
if (len === 0) return null;
|
|
2916
6247
|
// eslint-disable-next-line unicorn/no-new-array
|
|
2917
6248
|
const types = new Array(len);
|
|
2918
|
-
let
|
|
6249
|
+
let sawBidi = false;
|
|
6250
|
+
// Keep the resolved bidi classes aligned to UTF-16 code-unit offsets,
|
|
6251
|
+
// because the rich prepared segments index back into the normalized string
|
|
6252
|
+
// with JavaScript string offsets.
|
|
6253
|
+
for(let i = 0; i < len;){
|
|
6254
|
+
const first = str.charCodeAt(i);
|
|
6255
|
+
let codePoint = first;
|
|
6256
|
+
let codeUnitLength = 1;
|
|
6257
|
+
if (first >= 0xD800 && first <= 0xDBFF && i + 1 < len) {
|
|
6258
|
+
const second = str.charCodeAt(i + 1);
|
|
6259
|
+
if (second >= 0xDC00 && second <= 0xDFFF) {
|
|
6260
|
+
codePoint = (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;
|
|
6261
|
+
codeUnitLength = 2;
|
|
6262
|
+
}
|
|
6263
|
+
}
|
|
6264
|
+
const t = classifyCodePoint(codePoint);
|
|
6265
|
+
if (t === 'R' || t === 'AL' || t === 'AN') sawBidi = true;
|
|
6266
|
+
for(let j = 0; j < codeUnitLength; j++){
|
|
6267
|
+
types[i + j] = t;
|
|
6268
|
+
}
|
|
6269
|
+
i += codeUnitLength;
|
|
6270
|
+
}
|
|
6271
|
+
if (!sawBidi) return null;
|
|
6272
|
+
// Use the first strong character to pick the paragraph base direction.
|
|
6273
|
+
// Rich-path bidi metadata is only an approximation, but this keeps mixed
|
|
6274
|
+
// LTR/RTL text aligned with the common UBA paragraph rule.
|
|
6275
|
+
let startLevel = 0;
|
|
2919
6276
|
for(let i = 0; i < len; i++){
|
|
2920
|
-
const t =
|
|
2921
|
-
if (t === '
|
|
2922
|
-
|
|
6277
|
+
const t = types[i];
|
|
6278
|
+
if (t === 'L') {
|
|
6279
|
+
startLevel = 0;
|
|
6280
|
+
break;
|
|
6281
|
+
}
|
|
6282
|
+
if (t === 'R' || t === 'AL') {
|
|
6283
|
+
startLevel = 1;
|
|
6284
|
+
break;
|
|
6285
|
+
}
|
|
2923
6286
|
}
|
|
2924
|
-
if (numBidi === 0) return null;
|
|
2925
|
-
const startLevel = len / numBidi < 0.3 ? 0 : 1;
|
|
2926
6287
|
const levels = new Int8Array(len);
|
|
2927
6288
|
for(let i = 0; i < len; i++)levels[i] = startLevel;
|
|
2928
6289
|
const e = startLevel & 1 ? 'R' : 'L';
|
|
@@ -3050,15 +6411,46 @@
|
|
|
3050
6411
|
function containsArabicScript(text) {
|
|
3051
6412
|
return arabicScriptRe.test(text);
|
|
3052
6413
|
}
|
|
6414
|
+
function isCJKCodePoint(codePoint) {
|
|
6415
|
+
return codePoint >= 0x4E00 && codePoint <= 0x9FFF || codePoint >= 0x3400 && codePoint <= 0x4DBF || codePoint >= 0x20000 && codePoint <= 0x2A6DF || codePoint >= 0x2A700 && codePoint <= 0x2B73F || codePoint >= 0x2B740 && codePoint <= 0x2B81F || codePoint >= 0x2B820 && codePoint <= 0x2CEAF || codePoint >= 0x2CEB0 && codePoint <= 0x2EBEF || codePoint >= 0x2EBF0 && codePoint <= 0x2EE5D || codePoint >= 0x2F800 && codePoint <= 0x2FA1F || codePoint >= 0x30000 && codePoint <= 0x3134F || codePoint >= 0x31350 && codePoint <= 0x323AF || codePoint >= 0x323B0 && codePoint <= 0x33479 || codePoint >= 0xF900 && codePoint <= 0xFAFF || codePoint >= 0x3000 && codePoint <= 0x303F || codePoint >= 0x3040 && codePoint <= 0x309F || codePoint >= 0x30A0 && codePoint <= 0x30FF || codePoint >= 0xAC00 && codePoint <= 0xD7AF || codePoint >= 0xFF00 && codePoint <= 0xFFEF;
|
|
6416
|
+
}
|
|
3053
6417
|
function isCJK(s) {
|
|
3054
|
-
for
|
|
3055
|
-
const
|
|
3056
|
-
if (
|
|
3057
|
-
|
|
6418
|
+
for(let i = 0; i < s.length; i++){
|
|
6419
|
+
const first = s.charCodeAt(i);
|
|
6420
|
+
if (first < 0x3000) continue;
|
|
6421
|
+
if (first >= 0xD800 && first <= 0xDBFF && i + 1 < s.length) {
|
|
6422
|
+
const second = s.charCodeAt(i + 1);
|
|
6423
|
+
if (second >= 0xDC00 && second <= 0xDFFF) {
|
|
6424
|
+
const codePoint = (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;
|
|
6425
|
+
if (isCJKCodePoint(codePoint)) return true;
|
|
6426
|
+
i++;
|
|
6427
|
+
continue;
|
|
6428
|
+
}
|
|
3058
6429
|
}
|
|
6430
|
+
if (isCJKCodePoint(first)) return true;
|
|
3059
6431
|
}
|
|
3060
6432
|
return false;
|
|
3061
6433
|
}
|
|
6434
|
+
function endsWithLineStartProhibitedText(text) {
|
|
6435
|
+
const last = getLastCodePoint(text);
|
|
6436
|
+
return last !== null && (kinsokuStart.has(last) || leftStickyPunctuation.has(last));
|
|
6437
|
+
}
|
|
6438
|
+
const keepAllGlueChars = new Set([
|
|
6439
|
+
'\u00A0',
|
|
6440
|
+
'\u202F',
|
|
6441
|
+
'\u2060',
|
|
6442
|
+
'\uFEFF'
|
|
6443
|
+
]);
|
|
6444
|
+
function containsCJKText(text) {
|
|
6445
|
+
return isCJK(text);
|
|
6446
|
+
}
|
|
6447
|
+
function endsWithKeepAllGlueText(text) {
|
|
6448
|
+
const last = getLastCodePoint(text);
|
|
6449
|
+
return last !== null && keepAllGlueChars.has(last);
|
|
6450
|
+
}
|
|
6451
|
+
function canContinueKeepAllTextRun(previousText) {
|
|
6452
|
+
return !endsWithLineStartProhibitedText(previousText) && !endsWithKeepAllGlueText(previousText);
|
|
6453
|
+
}
|
|
3062
6454
|
const kinsokuStart = new Set([
|
|
3063
6455
|
'\uFF0C',
|
|
3064
6456
|
'\uFF0E',
|
|
@@ -3199,6 +6591,21 @@
|
|
|
3199
6591
|
}
|
|
3200
6592
|
return sawQuote;
|
|
3201
6593
|
}
|
|
6594
|
+
function previousCodePointStart(text, end) {
|
|
6595
|
+
const last = end - 1;
|
|
6596
|
+
if (last <= 0) return Math.max(last, 0);
|
|
6597
|
+
const lastCodeUnit = text.charCodeAt(last);
|
|
6598
|
+
if (lastCodeUnit < 0xDC00 || lastCodeUnit > 0xDFFF) return last;
|
|
6599
|
+
const maybeHigh = last - 1;
|
|
6600
|
+
if (maybeHigh < 0) return last;
|
|
6601
|
+
const highCodeUnit = text.charCodeAt(maybeHigh);
|
|
6602
|
+
return highCodeUnit >= 0xD800 && highCodeUnit <= 0xDBFF ? maybeHigh : last;
|
|
6603
|
+
}
|
|
6604
|
+
function getLastCodePoint(text) {
|
|
6605
|
+
if (text.length === 0) return null;
|
|
6606
|
+
const start = previousCodePointStart(text, text.length);
|
|
6607
|
+
return text.slice(start);
|
|
6608
|
+
}
|
|
3202
6609
|
function splitTrailingForwardStickyCluster(text) {
|
|
3203
6610
|
const chars = Array.from(text);
|
|
3204
6611
|
let splitIndex = chars.length;
|
|
@@ -3220,20 +6627,25 @@
|
|
|
3220
6627
|
tail: chars.slice(splitIndex).join('')
|
|
3221
6628
|
};
|
|
3222
6629
|
}
|
|
3223
|
-
function
|
|
3224
|
-
|
|
3225
|
-
|
|
3226
|
-
|
|
3227
|
-
|
|
3228
|
-
|
|
6630
|
+
function getRepeatableSingleCharRunChar(text, isWordLike, kind) {
|
|
6631
|
+
return kind === 'text' && !isWordLike && text.length === 1 && text !== '-' && text !== '—' ? text : null;
|
|
6632
|
+
}
|
|
6633
|
+
function materializeDeferredSingleCharRun(texts, chars, lengths, index) {
|
|
6634
|
+
const ch = chars[index];
|
|
6635
|
+
const text = texts[index];
|
|
6636
|
+
if (ch == null) return text;
|
|
6637
|
+
const length = lengths[index];
|
|
6638
|
+
if (text.length === length) return text;
|
|
6639
|
+
const materialized = ch.repeat(length);
|
|
6640
|
+
texts[index] = materialized;
|
|
6641
|
+
return materialized;
|
|
3229
6642
|
}
|
|
3230
|
-
function
|
|
3231
|
-
|
|
3232
|
-
return arabicNoSpaceTrailingPunctuation.has(segment[segment.length - 1]);
|
|
6643
|
+
function hasArabicNoSpacePunctuation(containsArabic, lastCodePoint) {
|
|
6644
|
+
return containsArabic && lastCodePoint !== null && arabicNoSpaceTrailingPunctuation.has(lastCodePoint);
|
|
3233
6645
|
}
|
|
3234
6646
|
function endsWithMyanmarMedialGlue(segment) {
|
|
3235
|
-
|
|
3236
|
-
return myanmarMedialGlue.has(
|
|
6647
|
+
const lastCodePoint = getLastCodePoint(segment);
|
|
6648
|
+
return lastCodePoint !== null && myanmarMedialGlue.has(lastCodePoint);
|
|
3237
6649
|
}
|
|
3238
6650
|
function splitLeadingSpaceAndMarks(segment) {
|
|
3239
6651
|
if (segment.length < 2 || segment[0] !== ' ') return null;
|
|
@@ -3247,10 +6659,13 @@
|
|
|
3247
6659
|
return null;
|
|
3248
6660
|
}
|
|
3249
6661
|
function endsWithClosingQuote(text) {
|
|
3250
|
-
|
|
3251
|
-
|
|
6662
|
+
let end = text.length;
|
|
6663
|
+
while(end > 0){
|
|
6664
|
+
const start = previousCodePointStart(text, end);
|
|
6665
|
+
const ch = text.slice(start, end);
|
|
3252
6666
|
if (closingQuoteChars.has(ch)) return true;
|
|
3253
6667
|
if (!leftStickyPunctuation.has(ch)) return false;
|
|
6668
|
+
end = start;
|
|
3254
6669
|
}
|
|
3255
6670
|
return false;
|
|
3256
6671
|
}
|
|
@@ -3268,10 +6683,33 @@
|
|
|
3268
6683
|
if (ch === '\u00AD') return 'soft-hyphen';
|
|
3269
6684
|
return 'text';
|
|
3270
6685
|
}
|
|
6686
|
+
// All characters that classifySegmentBreakChar maps to a non-'text' kind.
|
|
6687
|
+
const breakCharRe = /[\x20\t\n\xA0\xAD\u200B\u202F\u2060\uFEFF]/;
|
|
6688
|
+
function joinTextParts(parts) {
|
|
6689
|
+
return parts.length === 1 ? parts[0] : parts.join('');
|
|
6690
|
+
}
|
|
6691
|
+
function joinReversedPrefixParts(prefixParts, tail) {
|
|
6692
|
+
const parts = [];
|
|
6693
|
+
for(let i = prefixParts.length - 1; i >= 0; i--){
|
|
6694
|
+
parts.push(prefixParts[i]);
|
|
6695
|
+
}
|
|
6696
|
+
parts.push(tail);
|
|
6697
|
+
return joinTextParts(parts);
|
|
6698
|
+
}
|
|
3271
6699
|
function splitSegmentByBreakKind(segment, isWordLike, start, whiteSpaceProfile) {
|
|
6700
|
+
if (!breakCharRe.test(segment)) {
|
|
6701
|
+
return [
|
|
6702
|
+
{
|
|
6703
|
+
text: segment,
|
|
6704
|
+
isWordLike,
|
|
6705
|
+
kind: 'text',
|
|
6706
|
+
start
|
|
6707
|
+
}
|
|
6708
|
+
];
|
|
6709
|
+
}
|
|
3272
6710
|
const pieces = [];
|
|
3273
6711
|
let currentKind = null;
|
|
3274
|
-
let
|
|
6712
|
+
let currentTextParts = [];
|
|
3275
6713
|
let currentStart = start;
|
|
3276
6714
|
let currentWordLike = false;
|
|
3277
6715
|
let offset = 0;
|
|
@@ -3279,27 +6717,29 @@
|
|
|
3279
6717
|
const kind = classifySegmentBreakChar(ch, whiteSpaceProfile);
|
|
3280
6718
|
const wordLike = kind === 'text' && isWordLike;
|
|
3281
6719
|
if (currentKind !== null && kind === currentKind && wordLike === currentWordLike) {
|
|
3282
|
-
|
|
6720
|
+
currentTextParts.push(ch);
|
|
3283
6721
|
offset += ch.length;
|
|
3284
6722
|
continue;
|
|
3285
6723
|
}
|
|
3286
6724
|
if (currentKind !== null) {
|
|
3287
6725
|
pieces.push({
|
|
3288
|
-
text:
|
|
6726
|
+
text: joinTextParts(currentTextParts),
|
|
3289
6727
|
isWordLike: currentWordLike,
|
|
3290
6728
|
kind: currentKind,
|
|
3291
6729
|
start: currentStart
|
|
3292
6730
|
});
|
|
3293
6731
|
}
|
|
3294
6732
|
currentKind = kind;
|
|
3295
|
-
|
|
6733
|
+
currentTextParts = [
|
|
6734
|
+
ch
|
|
6735
|
+
];
|
|
3296
6736
|
currentStart = start + offset;
|
|
3297
6737
|
currentWordLike = wordLike;
|
|
3298
6738
|
offset += ch.length;
|
|
3299
6739
|
}
|
|
3300
6740
|
if (currentKind !== null) {
|
|
3301
6741
|
pieces.push({
|
|
3302
|
-
text:
|
|
6742
|
+
text: joinTextParts(currentTextParts),
|
|
3303
6743
|
isWordLike: currentWordLike,
|
|
3304
6744
|
kind: currentKind,
|
|
3305
6745
|
start: currentStart
|
|
@@ -3326,9 +6766,12 @@
|
|
|
3326
6766
|
const starts = segmentation.starts.slice();
|
|
3327
6767
|
for(let i = 0; i < segmentation.len; i++){
|
|
3328
6768
|
if (kinds[i] !== 'text' || !isUrlLikeRunStart(segmentation, i)) continue;
|
|
6769
|
+
const mergedParts = [
|
|
6770
|
+
texts[i]
|
|
6771
|
+
];
|
|
3329
6772
|
let j = i + 1;
|
|
3330
6773
|
while(j < segmentation.len && !isTextRunBoundary(kinds[j])){
|
|
3331
|
-
texts[
|
|
6774
|
+
mergedParts.push(texts[j]);
|
|
3332
6775
|
isWordLike[i] = true;
|
|
3333
6776
|
const endsQueryPrefix = texts[j].includes('?');
|
|
3334
6777
|
kinds[j] = 'text';
|
|
@@ -3336,6 +6779,7 @@
|
|
|
3336
6779
|
j++;
|
|
3337
6780
|
if (endsQueryPrefix) break;
|
|
3338
6781
|
}
|
|
6782
|
+
texts[i] = joinTextParts(mergedParts);
|
|
3339
6783
|
}
|
|
3340
6784
|
let compactLen = 0;
|
|
3341
6785
|
for(let read = 0; read < texts.length; read++){
|
|
@@ -3377,15 +6821,15 @@
|
|
|
3377
6821
|
if (nextIndex >= segmentation.len || isTextRunBoundary(segmentation.kinds[nextIndex])) {
|
|
3378
6822
|
continue;
|
|
3379
6823
|
}
|
|
3380
|
-
|
|
6824
|
+
const queryParts = [];
|
|
3381
6825
|
const queryStart = segmentation.starts[nextIndex];
|
|
3382
6826
|
let j = nextIndex;
|
|
3383
6827
|
while(j < segmentation.len && !isTextRunBoundary(segmentation.kinds[j])){
|
|
3384
|
-
|
|
6828
|
+
queryParts.push(segmentation.texts[j]);
|
|
3385
6829
|
j++;
|
|
3386
6830
|
}
|
|
3387
|
-
if (
|
|
3388
|
-
texts.push(
|
|
6831
|
+
if (queryParts.length > 0) {
|
|
6832
|
+
texts.push(joinTextParts(queryParts));
|
|
3389
6833
|
isWordLike.push(true);
|
|
3390
6834
|
kinds.push('text');
|
|
3391
6835
|
starts.push(queryStart);
|
|
@@ -3436,13 +6880,15 @@
|
|
|
3436
6880
|
const text = segmentation.texts[i];
|
|
3437
6881
|
const kind = segmentation.kinds[i];
|
|
3438
6882
|
if (kind === 'text' && isNumericRunSegment(text) && segmentContainsDecimalDigit(text)) {
|
|
3439
|
-
|
|
6883
|
+
const mergedParts = [
|
|
6884
|
+
text
|
|
6885
|
+
];
|
|
3440
6886
|
let j = i + 1;
|
|
3441
6887
|
while(j < segmentation.len && segmentation.kinds[j] === 'text' && isNumericRunSegment(segmentation.texts[j])){
|
|
3442
|
-
|
|
6888
|
+
mergedParts.push(segmentation.texts[j]);
|
|
3443
6889
|
j++;
|
|
3444
6890
|
}
|
|
3445
|
-
texts.push(
|
|
6891
|
+
texts.push(joinTextParts(mergedParts));
|
|
3446
6892
|
isWordLike.push(true);
|
|
3447
6893
|
kinds.push('text');
|
|
3448
6894
|
starts.push(segmentation.starts[i]);
|
|
@@ -3472,13 +6918,18 @@
|
|
|
3472
6918
|
const kind = segmentation.kinds[i];
|
|
3473
6919
|
const wordLike = segmentation.isWordLike[i];
|
|
3474
6920
|
if (kind === 'text' && wordLike && asciiPunctuationChainSegmentRe.test(text)) {
|
|
3475
|
-
|
|
6921
|
+
const mergedParts = [
|
|
6922
|
+
text
|
|
6923
|
+
];
|
|
6924
|
+
let endsWithJoiners = asciiPunctuationChainTrailingJoinersRe.test(text);
|
|
3476
6925
|
let j = i + 1;
|
|
3477
|
-
while(
|
|
3478
|
-
|
|
6926
|
+
while(endsWithJoiners && j < segmentation.len && segmentation.kinds[j] === 'text' && segmentation.isWordLike[j] && asciiPunctuationChainSegmentRe.test(segmentation.texts[j])){
|
|
6927
|
+
const nextText = segmentation.texts[j];
|
|
6928
|
+
mergedParts.push(nextText);
|
|
6929
|
+
endsWithJoiners = asciiPunctuationChainTrailingJoinersRe.test(nextText);
|
|
3479
6930
|
j++;
|
|
3480
6931
|
}
|
|
3481
|
-
texts.push(
|
|
6932
|
+
texts.push(joinTextParts(mergedParts));
|
|
3482
6933
|
isWordLike.push(true);
|
|
3483
6934
|
kinds.push('text');
|
|
3484
6935
|
starts.push(segmentation.starts[i]);
|
|
@@ -3549,20 +7000,26 @@
|
|
|
3549
7000
|
const starts = [];
|
|
3550
7001
|
let read = 0;
|
|
3551
7002
|
while(read < segmentation.len){
|
|
3552
|
-
|
|
7003
|
+
const textParts = [
|
|
7004
|
+
segmentation.texts[read]
|
|
7005
|
+
];
|
|
3553
7006
|
let wordLike = segmentation.isWordLike[read];
|
|
3554
7007
|
let kind = segmentation.kinds[read];
|
|
3555
7008
|
let start = segmentation.starts[read];
|
|
3556
7009
|
if (kind === 'glue') {
|
|
3557
|
-
|
|
7010
|
+
const glueParts = [
|
|
7011
|
+
textParts[0]
|
|
7012
|
+
];
|
|
3558
7013
|
const glueStart = start;
|
|
3559
7014
|
read++;
|
|
3560
7015
|
while(read < segmentation.len && segmentation.kinds[read] === 'glue'){
|
|
3561
|
-
|
|
7016
|
+
glueParts.push(segmentation.texts[read]);
|
|
3562
7017
|
read++;
|
|
3563
7018
|
}
|
|
7019
|
+
const glueText = joinTextParts(glueParts);
|
|
3564
7020
|
if (read < segmentation.len && segmentation.kinds[read] === 'text') {
|
|
3565
|
-
|
|
7021
|
+
textParts[0] = glueText;
|
|
7022
|
+
textParts.push(segmentation.texts[read]);
|
|
3566
7023
|
wordLike = segmentation.isWordLike[read];
|
|
3567
7024
|
kind = 'text';
|
|
3568
7025
|
start = glueStart;
|
|
@@ -3579,21 +7036,22 @@
|
|
|
3579
7036
|
}
|
|
3580
7037
|
if (kind === 'text') {
|
|
3581
7038
|
while(read < segmentation.len && segmentation.kinds[read] === 'glue'){
|
|
3582
|
-
|
|
7039
|
+
const glueParts = [];
|
|
3583
7040
|
while(read < segmentation.len && segmentation.kinds[read] === 'glue'){
|
|
3584
|
-
|
|
7041
|
+
glueParts.push(segmentation.texts[read]);
|
|
3585
7042
|
read++;
|
|
3586
7043
|
}
|
|
7044
|
+
const glueText = joinTextParts(glueParts);
|
|
3587
7045
|
if (read < segmentation.len && segmentation.kinds[read] === 'text') {
|
|
3588
|
-
|
|
7046
|
+
textParts.push(glueText, segmentation.texts[read]);
|
|
3589
7047
|
wordLike = wordLike || segmentation.isWordLike[read];
|
|
3590
7048
|
read++;
|
|
3591
7049
|
continue;
|
|
3592
7050
|
}
|
|
3593
|
-
|
|
7051
|
+
textParts.push(glueText);
|
|
3594
7052
|
}
|
|
3595
7053
|
}
|
|
3596
|
-
texts.push(
|
|
7054
|
+
texts.push(joinTextParts(textParts));
|
|
3597
7055
|
isWordLike.push(wordLike);
|
|
3598
7056
|
kinds.push(kind);
|
|
3599
7057
|
starts.push(start);
|
|
@@ -3632,37 +7090,88 @@
|
|
|
3632
7090
|
const wordSegmenter = getSharedWordSegmenter();
|
|
3633
7091
|
let mergedLen = 0;
|
|
3634
7092
|
const mergedTexts = [];
|
|
7093
|
+
const mergedTextParts = [];
|
|
3635
7094
|
const mergedWordLike = [];
|
|
3636
7095
|
const mergedKinds = [];
|
|
3637
7096
|
const mergedStarts = [];
|
|
7097
|
+
// Track repeatable single-char punctuation runs structurally so identical
|
|
7098
|
+
// merges stay O(1) instead of re-scanning the accumulated segment each time.
|
|
7099
|
+
const mergedSingleCharRunChars = [];
|
|
7100
|
+
const mergedSingleCharRunLengths = [];
|
|
7101
|
+
const mergedContainsCJK = [];
|
|
7102
|
+
const mergedContainsArabicScript = [];
|
|
7103
|
+
const mergedEndsWithClosingQuote = [];
|
|
7104
|
+
const mergedEndsWithMyanmarMedialGlue = [];
|
|
7105
|
+
const mergedHasArabicNoSpacePunctuation = [];
|
|
3638
7106
|
for (const s of wordSegmenter.segment(normalized)){
|
|
3639
7107
|
for (const piece of splitSegmentByBreakKind(s.segment, s.isWordLike ?? false, s.index, whiteSpaceProfile)){
|
|
3640
7108
|
const isText = piece.kind === 'text';
|
|
3641
|
-
|
|
3642
|
-
|
|
3643
|
-
|
|
3644
|
-
|
|
3645
|
-
|
|
3646
|
-
|
|
3647
|
-
|
|
3648
|
-
|
|
3649
|
-
|
|
3650
|
-
|
|
3651
|
-
|
|
3652
|
-
|
|
3653
|
-
|
|
3654
|
-
|
|
3655
|
-
|
|
3656
|
-
|
|
7109
|
+
const repeatableSingleCharRunChar = getRepeatableSingleCharRunChar(piece.text, piece.isWordLike, piece.kind);
|
|
7110
|
+
const pieceContainsCJK = isCJK(piece.text);
|
|
7111
|
+
const pieceContainsArabicScript = containsArabicScript(piece.text);
|
|
7112
|
+
const pieceLastCodePoint = getLastCodePoint(piece.text);
|
|
7113
|
+
const pieceEndsWithClosingQuote = endsWithClosingQuote(piece.text);
|
|
7114
|
+
const pieceEndsWithMyanmarMedialGlue = endsWithMyanmarMedialGlue(piece.text);
|
|
7115
|
+
const prevIndex = mergedLen - 1;
|
|
7116
|
+
function appendPieceToPrevious() {
|
|
7117
|
+
if (mergedSingleCharRunChars[prevIndex] !== null) {
|
|
7118
|
+
mergedTextParts[prevIndex] = [
|
|
7119
|
+
materializeDeferredSingleCharRun(mergedTexts, mergedSingleCharRunChars, mergedSingleCharRunLengths, prevIndex)
|
|
7120
|
+
];
|
|
7121
|
+
mergedSingleCharRunChars[prevIndex] = null;
|
|
7122
|
+
}
|
|
7123
|
+
mergedTextParts[prevIndex].push(piece.text);
|
|
7124
|
+
mergedWordLike[prevIndex] = mergedWordLike[prevIndex] || piece.isWordLike;
|
|
7125
|
+
mergedContainsCJK[prevIndex] = mergedContainsCJK[prevIndex] || pieceContainsCJK;
|
|
7126
|
+
mergedContainsArabicScript[prevIndex] = mergedContainsArabicScript[prevIndex] || pieceContainsArabicScript;
|
|
7127
|
+
mergedEndsWithClosingQuote[prevIndex] = pieceEndsWithClosingQuote;
|
|
7128
|
+
mergedEndsWithMyanmarMedialGlue[prevIndex] = pieceEndsWithMyanmarMedialGlue;
|
|
7129
|
+
mergedHasArabicNoSpacePunctuation[prevIndex] = hasArabicNoSpacePunctuation(mergedContainsArabicScript[prevIndex], pieceLastCodePoint);
|
|
7130
|
+
}
|
|
7131
|
+
// First-pass keeps: no-space script-specific joins and punctuation glue
|
|
7132
|
+
// that depend on the immediately preceding text run.
|
|
7133
|
+
if (profile.carryCJKAfterClosingQuote && isText && mergedLen > 0 && mergedKinds[prevIndex] === 'text' && pieceContainsCJK && mergedContainsCJK[prevIndex] && mergedEndsWithClosingQuote[prevIndex]) {
|
|
7134
|
+
appendPieceToPrevious();
|
|
7135
|
+
} else if (isText && mergedLen > 0 && mergedKinds[prevIndex] === 'text' && isCJKLineStartProhibitedSegment(piece.text) && mergedContainsCJK[prevIndex]) {
|
|
7136
|
+
appendPieceToPrevious();
|
|
7137
|
+
} else if (isText && mergedLen > 0 && mergedKinds[prevIndex] === 'text' && mergedEndsWithMyanmarMedialGlue[prevIndex]) {
|
|
7138
|
+
appendPieceToPrevious();
|
|
7139
|
+
} else if (isText && mergedLen > 0 && mergedKinds[prevIndex] === 'text' && piece.isWordLike && pieceContainsArabicScript && mergedHasArabicNoSpacePunctuation[prevIndex]) {
|
|
7140
|
+
appendPieceToPrevious();
|
|
7141
|
+
mergedWordLike[prevIndex] = true;
|
|
7142
|
+
} else if (repeatableSingleCharRunChar !== null && mergedLen > 0 && mergedKinds[prevIndex] === 'text' && mergedSingleCharRunChars[prevIndex] === repeatableSingleCharRunChar) {
|
|
7143
|
+
mergedSingleCharRunLengths[prevIndex] = (mergedSingleCharRunLengths[prevIndex] ?? 1) + 1;
|
|
7144
|
+
} else if (isText && !piece.isWordLike && mergedLen > 0 && mergedKinds[prevIndex] === 'text' && (isLeftStickyPunctuationSegment(piece.text) || piece.text === '-' && mergedWordLike[prevIndex])) {
|
|
7145
|
+
appendPieceToPrevious();
|
|
3657
7146
|
} else {
|
|
3658
7147
|
mergedTexts[mergedLen] = piece.text;
|
|
7148
|
+
mergedTextParts[mergedLen] = [
|
|
7149
|
+
piece.text
|
|
7150
|
+
];
|
|
3659
7151
|
mergedWordLike[mergedLen] = piece.isWordLike;
|
|
3660
7152
|
mergedKinds[mergedLen] = piece.kind;
|
|
3661
7153
|
mergedStarts[mergedLen] = piece.start;
|
|
7154
|
+
mergedSingleCharRunChars[mergedLen] = repeatableSingleCharRunChar;
|
|
7155
|
+
mergedSingleCharRunLengths[mergedLen] = repeatableSingleCharRunChar === null ? 0 : 1;
|
|
7156
|
+
mergedContainsCJK[mergedLen] = pieceContainsCJK;
|
|
7157
|
+
mergedContainsArabicScript[mergedLen] = pieceContainsArabicScript;
|
|
7158
|
+
mergedEndsWithClosingQuote[mergedLen] = pieceEndsWithClosingQuote;
|
|
7159
|
+
mergedEndsWithMyanmarMedialGlue[mergedLen] = pieceEndsWithMyanmarMedialGlue;
|
|
7160
|
+
mergedHasArabicNoSpacePunctuation[mergedLen] = hasArabicNoSpacePunctuation(pieceContainsArabicScript, pieceLastCodePoint);
|
|
3662
7161
|
mergedLen++;
|
|
3663
7162
|
}
|
|
3664
7163
|
}
|
|
3665
7164
|
}
|
|
7165
|
+
for(let i = 0; i < mergedLen; i++){
|
|
7166
|
+
if (mergedSingleCharRunChars[i] !== null) {
|
|
7167
|
+
mergedTexts[i] = materializeDeferredSingleCharRun(mergedTexts, mergedSingleCharRunChars, mergedSingleCharRunLengths, i);
|
|
7168
|
+
continue;
|
|
7169
|
+
}
|
|
7170
|
+
mergedTexts[i] = joinTextParts(mergedTextParts[i]);
|
|
7171
|
+
}
|
|
7172
|
+
// Later passes operate on the merged text stream itself: contextual escaped
|
|
7173
|
+
// quote glue, forward-sticky carry, compaction, then the broader URL/numeric
|
|
7174
|
+
// and Arabic-leading-mark fixes.
|
|
3666
7175
|
for(let i = 1; i < mergedLen; i++){
|
|
3667
7176
|
if (mergedKinds[i] === 'text' && !mergedWordLike[i] && isEscapedQuoteClusterSegment(mergedTexts[i]) && mergedKinds[i - 1] === 'text') {
|
|
3668
7177
|
mergedTexts[i - 1] += mergedTexts[i];
|
|
@@ -3670,16 +7179,27 @@
|
|
|
3670
7179
|
mergedTexts[i] = '';
|
|
3671
7180
|
}
|
|
3672
7181
|
}
|
|
3673
|
-
|
|
3674
|
-
|
|
3675
|
-
|
|
3676
|
-
|
|
3677
|
-
|
|
3678
|
-
|
|
3679
|
-
|
|
3680
|
-
|
|
3681
|
-
|
|
7182
|
+
const forwardStickyPrefixParts = Array.from({
|
|
7183
|
+
length: mergedLen
|
|
7184
|
+
}, ()=>null);
|
|
7185
|
+
let nextLiveIndex = -1;
|
|
7186
|
+
for(let i = mergedLen - 1; i >= 0; i--){
|
|
7187
|
+
const text = mergedTexts[i];
|
|
7188
|
+
if (text.length === 0) continue;
|
|
7189
|
+
if (mergedKinds[i] === 'text' && !mergedWordLike[i] && isForwardStickyClusterSegment(text) && nextLiveIndex >= 0 && mergedKinds[nextLiveIndex] === 'text') {
|
|
7190
|
+
const prefixParts = forwardStickyPrefixParts[nextLiveIndex] ?? [];
|
|
7191
|
+
prefixParts.push(text);
|
|
7192
|
+
forwardStickyPrefixParts[nextLiveIndex] = prefixParts;
|
|
7193
|
+
mergedStarts[nextLiveIndex] = mergedStarts[i];
|
|
7194
|
+
mergedTexts[i] = '';
|
|
7195
|
+
continue;
|
|
3682
7196
|
}
|
|
7197
|
+
nextLiveIndex = i;
|
|
7198
|
+
}
|
|
7199
|
+
for(let i = 0; i < mergedLen; i++){
|
|
7200
|
+
const prefixParts = forwardStickyPrefixParts[i];
|
|
7201
|
+
if (prefixParts == null) continue;
|
|
7202
|
+
mergedTexts[i] = joinReversedPrefixParts(prefixParts, mergedTexts[i]);
|
|
3683
7203
|
}
|
|
3684
7204
|
let compactLen = 0;
|
|
3685
7205
|
for(let read = 0; read < mergedLen; read++){
|
|
@@ -3750,7 +7270,66 @@
|
|
|
3750
7270
|
}
|
|
3751
7271
|
return chunks;
|
|
3752
7272
|
}
|
|
3753
|
-
function
|
|
7273
|
+
function mergeKeepAllTextSegments(segmentation) {
|
|
7274
|
+
if (segmentation.len <= 1) return segmentation;
|
|
7275
|
+
const texts = [];
|
|
7276
|
+
const isWordLike = [];
|
|
7277
|
+
const kinds = [];
|
|
7278
|
+
const starts = [];
|
|
7279
|
+
let pendingTextParts = null;
|
|
7280
|
+
let pendingWordLike = false;
|
|
7281
|
+
let pendingStart = 0;
|
|
7282
|
+
let pendingContainsCJK = false;
|
|
7283
|
+
let pendingCanContinue = false;
|
|
7284
|
+
function flushPendingText() {
|
|
7285
|
+
if (pendingTextParts === null) return;
|
|
7286
|
+
texts.push(joinTextParts(pendingTextParts));
|
|
7287
|
+
isWordLike.push(pendingWordLike);
|
|
7288
|
+
kinds.push('text');
|
|
7289
|
+
starts.push(pendingStart);
|
|
7290
|
+
pendingTextParts = null;
|
|
7291
|
+
}
|
|
7292
|
+
for(let i = 0; i < segmentation.len; i++){
|
|
7293
|
+
const text = segmentation.texts[i];
|
|
7294
|
+
const kind = segmentation.kinds[i];
|
|
7295
|
+
const wordLike = segmentation.isWordLike[i];
|
|
7296
|
+
const start = segmentation.starts[i];
|
|
7297
|
+
if (kind === 'text') {
|
|
7298
|
+
const textContainsCJK = containsCJKText(text);
|
|
7299
|
+
const textCanContinue = canContinueKeepAllTextRun(text);
|
|
7300
|
+
if (pendingTextParts !== null && pendingContainsCJK && pendingCanContinue) {
|
|
7301
|
+
pendingTextParts.push(text);
|
|
7302
|
+
pendingWordLike = pendingWordLike || wordLike;
|
|
7303
|
+
pendingContainsCJK = pendingContainsCJK || textContainsCJK;
|
|
7304
|
+
pendingCanContinue = textCanContinue;
|
|
7305
|
+
continue;
|
|
7306
|
+
}
|
|
7307
|
+
flushPendingText();
|
|
7308
|
+
pendingTextParts = [
|
|
7309
|
+
text
|
|
7310
|
+
];
|
|
7311
|
+
pendingWordLike = wordLike;
|
|
7312
|
+
pendingStart = start;
|
|
7313
|
+
pendingContainsCJK = textContainsCJK;
|
|
7314
|
+
pendingCanContinue = textCanContinue;
|
|
7315
|
+
continue;
|
|
7316
|
+
}
|
|
7317
|
+
flushPendingText();
|
|
7318
|
+
texts.push(text);
|
|
7319
|
+
isWordLike.push(wordLike);
|
|
7320
|
+
kinds.push(kind);
|
|
7321
|
+
starts.push(start);
|
|
7322
|
+
}
|
|
7323
|
+
flushPendingText();
|
|
7324
|
+
return {
|
|
7325
|
+
len: texts.length,
|
|
7326
|
+
texts,
|
|
7327
|
+
isWordLike,
|
|
7328
|
+
kinds,
|
|
7329
|
+
starts
|
|
7330
|
+
};
|
|
7331
|
+
}
|
|
7332
|
+
function analyzeText(text, profile, whiteSpace = 'normal', wordBreak = 'normal') {
|
|
3754
7333
|
const whiteSpaceProfile = getWhiteSpaceProfile(whiteSpace);
|
|
3755
7334
|
const normalized = whiteSpaceProfile.mode === 'pre-wrap' ? normalizeWhitespacePreWrap(text) : normalizeWhitespaceNormal(text);
|
|
3756
7335
|
if (normalized.length === 0) {
|
|
@@ -3764,7 +7343,7 @@
|
|
|
3764
7343
|
starts: []
|
|
3765
7344
|
};
|
|
3766
7345
|
}
|
|
3767
|
-
const segmentation = buildMergedSegmentation(normalized, profile, whiteSpaceProfile);
|
|
7346
|
+
const segmentation = wordBreak === 'keep-all' ? mergeKeepAllTextSegments(buildMergedSegmentation(normalized, profile, whiteSpaceProfile)) : buildMergedSegmentation(normalized, profile, whiteSpaceProfile);
|
|
3768
7347
|
return {
|
|
3769
7348
|
normalized,
|
|
3770
7349
|
chunks: compileAnalysisChunks(segmentation, whiteSpaceProfile),
|
|
@@ -3775,6 +7354,11 @@
|
|
|
3775
7354
|
let measureContext = null;
|
|
3776
7355
|
const segmentMetricCaches = new Map();
|
|
3777
7356
|
let cachedEngineProfile = null;
|
|
7357
|
+
// Safari's prefix-fit policy is useful for ordinary word-sized runs, but letting
|
|
7358
|
+
// it measure every growing prefix of a giant segment recreates a pathological
|
|
7359
|
+
// superlinear prepare-time path. Past this size, switch to the cheaper
|
|
7360
|
+
// pair-context model and keep the public behavior linear.
|
|
7361
|
+
const MAX_PREFIX_FIT_GRAPHEMES = 96;
|
|
3778
7362
|
const emojiPresentationRe = /\p{Emoji_Presentation}/u;
|
|
3779
7363
|
const maybeEmojiRe = /[\p{Emoji_Presentation}\p{Extended_Pictographic}\p{Regional_Indicator}\uFE0F\u20E3]/u;
|
|
3780
7364
|
let sharedGraphemeSegmenter$1 = null;
|
|
@@ -3894,29 +7478,58 @@
|
|
|
3894
7478
|
if (emojiCorrection === 0) return metrics.width;
|
|
3895
7479
|
return metrics.width - getEmojiCount(seg, metrics) * emojiCorrection;
|
|
3896
7480
|
}
|
|
3897
|
-
function
|
|
3898
|
-
if (metrics.
|
|
3899
|
-
const widths = [];
|
|
7481
|
+
function getSegmentBreakableFitAdvances(seg, metrics, cache, emojiCorrection, mode) {
|
|
7482
|
+
if (metrics.breakableFitAdvances !== undefined) return metrics.breakableFitAdvances;
|
|
3900
7483
|
const graphemeSegmenter = getSharedGraphemeSegmenter$1();
|
|
7484
|
+
const graphemes = [];
|
|
3901
7485
|
for (const gs of graphemeSegmenter.segment(seg)){
|
|
3902
|
-
|
|
3903
|
-
widths.push(getCorrectedSegmentWidth(gs.segment, graphemeMetrics, emojiCorrection));
|
|
7486
|
+
graphemes.push(gs.segment);
|
|
3904
7487
|
}
|
|
3905
|
-
|
|
3906
|
-
|
|
3907
|
-
|
|
3908
|
-
|
|
3909
|
-
if (
|
|
3910
|
-
|
|
3911
|
-
|
|
7488
|
+
if (graphemes.length <= 1) {
|
|
7489
|
+
metrics.breakableFitAdvances = null;
|
|
7490
|
+
return metrics.breakableFitAdvances;
|
|
7491
|
+
}
|
|
7492
|
+
if (mode === 'sum-graphemes') {
|
|
7493
|
+
const advances = [];
|
|
7494
|
+
for (const grapheme of graphemes){
|
|
7495
|
+
const graphemeMetrics = getSegmentMetrics(grapheme, cache);
|
|
7496
|
+
advances.push(getCorrectedSegmentWidth(grapheme, graphemeMetrics, emojiCorrection));
|
|
7497
|
+
}
|
|
7498
|
+
metrics.breakableFitAdvances = advances;
|
|
7499
|
+
return metrics.breakableFitAdvances;
|
|
7500
|
+
}
|
|
7501
|
+
if (mode === 'pair-context' || graphemes.length > MAX_PREFIX_FIT_GRAPHEMES) {
|
|
7502
|
+
const advances = [];
|
|
7503
|
+
let previousGrapheme = null;
|
|
7504
|
+
let previousWidth = 0;
|
|
7505
|
+
for (const grapheme of graphemes){
|
|
7506
|
+
const graphemeMetrics = getSegmentMetrics(grapheme, cache);
|
|
7507
|
+
const currentWidth = getCorrectedSegmentWidth(grapheme, graphemeMetrics, emojiCorrection);
|
|
7508
|
+
if (previousGrapheme === null) {
|
|
7509
|
+
advances.push(currentWidth);
|
|
7510
|
+
} else {
|
|
7511
|
+
const pair = previousGrapheme + grapheme;
|
|
7512
|
+
const pairMetrics = getSegmentMetrics(pair, cache);
|
|
7513
|
+
advances.push(getCorrectedSegmentWidth(pair, pairMetrics, emojiCorrection) - previousWidth);
|
|
7514
|
+
}
|
|
7515
|
+
previousGrapheme = grapheme;
|
|
7516
|
+
previousWidth = currentWidth;
|
|
7517
|
+
}
|
|
7518
|
+
metrics.breakableFitAdvances = advances;
|
|
7519
|
+
return metrics.breakableFitAdvances;
|
|
7520
|
+
}
|
|
7521
|
+
const advances = [];
|
|
3912
7522
|
let prefix = '';
|
|
3913
|
-
|
|
3914
|
-
|
|
7523
|
+
let prefixWidth = 0;
|
|
7524
|
+
for (const grapheme of graphemes){
|
|
7525
|
+
prefix += grapheme;
|
|
3915
7526
|
const prefixMetrics = getSegmentMetrics(prefix, cache);
|
|
3916
|
-
|
|
7527
|
+
const nextPrefixWidth = getCorrectedSegmentWidth(prefix, prefixMetrics, emojiCorrection);
|
|
7528
|
+
advances.push(nextPrefixWidth - prefixWidth);
|
|
7529
|
+
prefixWidth = nextPrefixWidth;
|
|
3917
7530
|
}
|
|
3918
|
-
metrics.
|
|
3919
|
-
return metrics.
|
|
7531
|
+
metrics.breakableFitAdvances = advances;
|
|
7532
|
+
return metrics.breakableFitAdvances;
|
|
3920
7533
|
}
|
|
3921
7534
|
function getFontMeasurementState(font, needsEmojiCorrection) {
|
|
3922
7535
|
const ctx = getMeasureContext();
|
|
@@ -3931,8 +7544,13 @@
|
|
|
3931
7544
|
};
|
|
3932
7545
|
}
|
|
3933
7546
|
|
|
3934
|
-
function
|
|
3935
|
-
|
|
7547
|
+
function normalizeSimpleLineStartSegmentIndex(prepared, segmentIndex) {
|
|
7548
|
+
while(segmentIndex < prepared.widths.length){
|
|
7549
|
+
const kind = prepared.kinds[segmentIndex];
|
|
7550
|
+
if (kind !== 'space' && kind !== 'zero-width-break' && kind !== 'soft-hyphen') break;
|
|
7551
|
+
segmentIndex++;
|
|
7552
|
+
}
|
|
7553
|
+
return segmentIndex;
|
|
3936
7554
|
}
|
|
3937
7555
|
function getTabAdvance(lineWidth, tabStopAdvance) {
|
|
3938
7556
|
if (tabStopAdvance <= 0) return 0;
|
|
@@ -3940,18 +7558,12 @@
|
|
|
3940
7558
|
if (Math.abs(remainder) <= 1e-6) return tabStopAdvance;
|
|
3941
7559
|
return tabStopAdvance - remainder;
|
|
3942
7560
|
}
|
|
3943
|
-
function
|
|
3944
|
-
if (!preferPrefixWidths || graphemePrefixWidths === null) {
|
|
3945
|
-
return graphemeWidths[graphemeIndex];
|
|
3946
|
-
}
|
|
3947
|
-
return graphemePrefixWidths[graphemeIndex] - (graphemeIndex > 0 ? graphemePrefixWidths[graphemeIndex - 1] : 0);
|
|
3948
|
-
}
|
|
3949
|
-
function fitSoftHyphenBreak(graphemeWidths, initialWidth, maxWidth, lineFitEpsilon, discretionaryHyphenWidth, cumulativeWidths) {
|
|
7561
|
+
function fitSoftHyphenBreak(graphemeFitAdvances, initialWidth, maxWidth, lineFitEpsilon, discretionaryHyphenWidth) {
|
|
3950
7562
|
let fitCount = 0;
|
|
3951
7563
|
let fittedWidth = initialWidth;
|
|
3952
|
-
while(fitCount <
|
|
3953
|
-
const nextWidth =
|
|
3954
|
-
const nextLineWidth = fitCount + 1 <
|
|
7564
|
+
while(fitCount < graphemeFitAdvances.length){
|
|
7565
|
+
const nextWidth = fittedWidth + graphemeFitAdvances[fitCount];
|
|
7566
|
+
const nextLineWidth = fitCount + 1 < graphemeFitAdvances.length ? nextWidth + discretionaryHyphenWidth : nextWidth;
|
|
3955
7567
|
if (nextLineWidth > maxWidth + lineFitEpsilon) break;
|
|
3956
7568
|
fittedWidth = nextWidth;
|
|
3957
7569
|
fitCount++;
|
|
@@ -3962,10 +7574,11 @@
|
|
|
3962
7574
|
};
|
|
3963
7575
|
}
|
|
3964
7576
|
function walkPreparedLinesSimple(prepared, maxWidth, onLine) {
|
|
3965
|
-
const { widths, kinds,
|
|
7577
|
+
const { widths, kinds, breakableFitAdvances } = prepared;
|
|
3966
7578
|
if (widths.length === 0) return 0;
|
|
3967
7579
|
const engineProfile = getEngineProfile();
|
|
3968
7580
|
const lineFitEpsilon = engineProfile.lineFitEpsilon;
|
|
7581
|
+
const fitLimit = maxWidth + lineFitEpsilon;
|
|
3969
7582
|
let lineCount = 0;
|
|
3970
7583
|
let lineW = 0;
|
|
3971
7584
|
let hasContent = false;
|
|
@@ -4017,24 +7630,13 @@
|
|
|
4017
7630
|
lineEndSegmentIndex = segmentIndex + 1;
|
|
4018
7631
|
lineEndGraphemeIndex = 0;
|
|
4019
7632
|
}
|
|
4020
|
-
function updatePendingBreak(segmentIndex, segmentWidth) {
|
|
4021
|
-
if (!canBreakAfter(kinds[segmentIndex])) return;
|
|
4022
|
-
pendingBreakSegmentIndex = segmentIndex + 1;
|
|
4023
|
-
pendingBreakPaintWidth = lineW - segmentWidth;
|
|
4024
|
-
}
|
|
4025
|
-
function appendBreakableSegment(segmentIndex) {
|
|
4026
|
-
appendBreakableSegmentFrom(segmentIndex, 0);
|
|
4027
|
-
}
|
|
4028
7633
|
function appendBreakableSegmentFrom(segmentIndex, startGraphemeIndex) {
|
|
4029
|
-
const
|
|
4030
|
-
|
|
4031
|
-
|
|
4032
|
-
const gw = getBreakableAdvance(gWidths, gPrefixWidths, g, engineProfile.preferPrefixWidthsForBreakableRuns);
|
|
7634
|
+
const fitAdvances = breakableFitAdvances[segmentIndex];
|
|
7635
|
+
for(let g = startGraphemeIndex; g < fitAdvances.length; g++){
|
|
7636
|
+
const gw = fitAdvances[g];
|
|
4033
7637
|
if (!hasContent) {
|
|
4034
7638
|
startLineAtGrapheme(segmentIndex, g, gw);
|
|
4035
|
-
|
|
4036
|
-
}
|
|
4037
|
-
if (lineW + gw > maxWidth + lineFitEpsilon) {
|
|
7639
|
+
} else if (lineW + gw > fitLimit) {
|
|
4038
7640
|
emitCurrentLine();
|
|
4039
7641
|
startLineAtGrapheme(segmentIndex, g, gw);
|
|
4040
7642
|
} else {
|
|
@@ -4043,40 +7645,52 @@
|
|
|
4043
7645
|
lineEndGraphemeIndex = g + 1;
|
|
4044
7646
|
}
|
|
4045
7647
|
}
|
|
4046
|
-
if (hasContent && lineEndSegmentIndex === segmentIndex && lineEndGraphemeIndex ===
|
|
7648
|
+
if (hasContent && lineEndSegmentIndex === segmentIndex && lineEndGraphemeIndex === fitAdvances.length) {
|
|
4047
7649
|
lineEndSegmentIndex = segmentIndex + 1;
|
|
4048
7650
|
lineEndGraphemeIndex = 0;
|
|
4049
7651
|
}
|
|
4050
7652
|
}
|
|
4051
7653
|
let i = 0;
|
|
4052
7654
|
while(i < widths.length){
|
|
7655
|
+
if (!hasContent) {
|
|
7656
|
+
i = normalizeSimpleLineStartSegmentIndex(prepared, i);
|
|
7657
|
+
if (i >= widths.length) break;
|
|
7658
|
+
}
|
|
4053
7659
|
const w = widths[i];
|
|
4054
7660
|
const kind = kinds[i];
|
|
7661
|
+
const breakAfter = kind === 'space' || kind === 'preserved-space' || kind === 'tab' || kind === 'zero-width-break' || kind === 'soft-hyphen';
|
|
4055
7662
|
if (!hasContent) {
|
|
4056
|
-
if (w > maxWidth &&
|
|
4057
|
-
|
|
7663
|
+
if (w > maxWidth && breakableFitAdvances[i] !== null) {
|
|
7664
|
+
appendBreakableSegmentFrom(i, 0);
|
|
4058
7665
|
} else {
|
|
4059
7666
|
startLineAtSegment(i, w);
|
|
4060
7667
|
}
|
|
4061
|
-
|
|
7668
|
+
if (breakAfter) {
|
|
7669
|
+
pendingBreakSegmentIndex = i + 1;
|
|
7670
|
+
pendingBreakPaintWidth = lineW - w;
|
|
7671
|
+
}
|
|
4062
7672
|
i++;
|
|
4063
7673
|
continue;
|
|
4064
7674
|
}
|
|
4065
7675
|
const newW = lineW + w;
|
|
4066
|
-
if (newW >
|
|
4067
|
-
if (
|
|
7676
|
+
if (newW > fitLimit) {
|
|
7677
|
+
if (breakAfter) {
|
|
4068
7678
|
appendWholeSegment(i, w);
|
|
4069
7679
|
emitCurrentLine(i + 1, 0, lineW - w);
|
|
4070
7680
|
i++;
|
|
4071
7681
|
continue;
|
|
4072
7682
|
}
|
|
4073
7683
|
if (pendingBreakSegmentIndex >= 0) {
|
|
7684
|
+
if (lineEndSegmentIndex > pendingBreakSegmentIndex || lineEndSegmentIndex === pendingBreakSegmentIndex && lineEndGraphemeIndex > 0) {
|
|
7685
|
+
emitCurrentLine();
|
|
7686
|
+
continue;
|
|
7687
|
+
}
|
|
4074
7688
|
emitCurrentLine(pendingBreakSegmentIndex, 0, pendingBreakPaintWidth);
|
|
4075
7689
|
continue;
|
|
4076
7690
|
}
|
|
4077
|
-
if (w > maxWidth &&
|
|
7691
|
+
if (w > maxWidth && breakableFitAdvances[i] !== null) {
|
|
4078
7692
|
emitCurrentLine();
|
|
4079
|
-
|
|
7693
|
+
appendBreakableSegmentFrom(i, 0);
|
|
4080
7694
|
i++;
|
|
4081
7695
|
continue;
|
|
4082
7696
|
}
|
|
@@ -4084,7 +7698,10 @@
|
|
|
4084
7698
|
continue;
|
|
4085
7699
|
}
|
|
4086
7700
|
appendWholeSegment(i, w);
|
|
4087
|
-
|
|
7701
|
+
if (breakAfter) {
|
|
7702
|
+
pendingBreakSegmentIndex = i + 1;
|
|
7703
|
+
pendingBreakPaintWidth = lineW - w;
|
|
7704
|
+
}
|
|
4088
7705
|
i++;
|
|
4089
7706
|
}
|
|
4090
7707
|
if (hasContent) emitCurrentLine();
|
|
@@ -4094,10 +7711,11 @@
|
|
|
4094
7711
|
if (prepared.simpleLineWalkFastPath) {
|
|
4095
7712
|
return walkPreparedLinesSimple(prepared, maxWidth, onLine);
|
|
4096
7713
|
}
|
|
4097
|
-
const { widths, lineEndFitAdvances, lineEndPaintAdvances, kinds,
|
|
7714
|
+
const { widths, lineEndFitAdvances, lineEndPaintAdvances, kinds, breakableFitAdvances, discretionaryHyphenWidth, tabStopAdvance, chunks } = prepared;
|
|
4098
7715
|
if (widths.length === 0 || chunks.length === 0) return 0;
|
|
4099
7716
|
const engineProfile = getEngineProfile();
|
|
4100
7717
|
const lineFitEpsilon = engineProfile.lineFitEpsilon;
|
|
7718
|
+
const fitLimit = maxWidth + lineFitEpsilon;
|
|
4101
7719
|
let lineCount = 0;
|
|
4102
7720
|
let lineW = 0;
|
|
4103
7721
|
let hasContent = false;
|
|
@@ -4153,28 +7771,22 @@
|
|
|
4153
7771
|
lineEndSegmentIndex = segmentIndex + 1;
|
|
4154
7772
|
lineEndGraphemeIndex = 0;
|
|
4155
7773
|
}
|
|
4156
|
-
function updatePendingBreakForWholeSegment(segmentIndex, segmentWidth) {
|
|
4157
|
-
if (!
|
|
4158
|
-
const fitAdvance =
|
|
4159
|
-
const paintAdvance =
|
|
7774
|
+
function updatePendingBreakForWholeSegment(kind, breakAfter, segmentIndex, segmentWidth) {
|
|
7775
|
+
if (!breakAfter) return;
|
|
7776
|
+
const fitAdvance = kind === 'tab' ? 0 : lineEndFitAdvances[segmentIndex];
|
|
7777
|
+
const paintAdvance = kind === 'tab' ? segmentWidth : lineEndPaintAdvances[segmentIndex];
|
|
4160
7778
|
pendingBreakSegmentIndex = segmentIndex + 1;
|
|
4161
7779
|
pendingBreakFitWidth = lineW - segmentWidth + fitAdvance;
|
|
4162
7780
|
pendingBreakPaintWidth = lineW - segmentWidth + paintAdvance;
|
|
4163
|
-
pendingBreakKind =
|
|
4164
|
-
}
|
|
4165
|
-
function appendBreakableSegment(segmentIndex) {
|
|
4166
|
-
appendBreakableSegmentFrom(segmentIndex, 0);
|
|
7781
|
+
pendingBreakKind = kind;
|
|
4167
7782
|
}
|
|
4168
7783
|
function appendBreakableSegmentFrom(segmentIndex, startGraphemeIndex) {
|
|
4169
|
-
const
|
|
4170
|
-
|
|
4171
|
-
|
|
4172
|
-
const gw = getBreakableAdvance(gWidths, gPrefixWidths, g, engineProfile.preferPrefixWidthsForBreakableRuns);
|
|
7784
|
+
const fitAdvances = breakableFitAdvances[segmentIndex];
|
|
7785
|
+
for(let g = startGraphemeIndex; g < fitAdvances.length; g++){
|
|
7786
|
+
const gw = fitAdvances[g];
|
|
4173
7787
|
if (!hasContent) {
|
|
4174
7788
|
startLineAtGrapheme(segmentIndex, g, gw);
|
|
4175
|
-
|
|
4176
|
-
}
|
|
4177
|
-
if (lineW + gw > maxWidth + lineFitEpsilon) {
|
|
7789
|
+
} else if (lineW + gw > fitLimit) {
|
|
4178
7790
|
emitCurrentLine();
|
|
4179
7791
|
startLineAtGrapheme(segmentIndex, g, gw);
|
|
4180
7792
|
} else {
|
|
@@ -4183,24 +7795,22 @@
|
|
|
4183
7795
|
lineEndGraphemeIndex = g + 1;
|
|
4184
7796
|
}
|
|
4185
7797
|
}
|
|
4186
|
-
if (hasContent && lineEndSegmentIndex === segmentIndex && lineEndGraphemeIndex ===
|
|
7798
|
+
if (hasContent && lineEndSegmentIndex === segmentIndex && lineEndGraphemeIndex === fitAdvances.length) {
|
|
4187
7799
|
lineEndSegmentIndex = segmentIndex + 1;
|
|
4188
7800
|
lineEndGraphemeIndex = 0;
|
|
4189
7801
|
}
|
|
4190
7802
|
}
|
|
4191
7803
|
function continueSoftHyphenBreakableSegment(segmentIndex) {
|
|
4192
7804
|
if (pendingBreakKind !== 'soft-hyphen') return false;
|
|
4193
|
-
const
|
|
4194
|
-
if (
|
|
4195
|
-
const
|
|
4196
|
-
const usesPrefixWidths = fitWidths !== gWidths;
|
|
4197
|
-
const { fitCount, fittedWidth } = fitSoftHyphenBreak(fitWidths, lineW, maxWidth, lineFitEpsilon, discretionaryHyphenWidth, usesPrefixWidths);
|
|
7805
|
+
const fitWidths = breakableFitAdvances[segmentIndex];
|
|
7806
|
+
if (fitWidths == null) return false;
|
|
7807
|
+
const { fitCount, fittedWidth } = fitSoftHyphenBreak(fitWidths, lineW, maxWidth, lineFitEpsilon, discretionaryHyphenWidth);
|
|
4198
7808
|
if (fitCount === 0) return false;
|
|
4199
7809
|
lineW = fittedWidth;
|
|
4200
7810
|
lineEndSegmentIndex = segmentIndex;
|
|
4201
7811
|
lineEndGraphemeIndex = fitCount;
|
|
4202
7812
|
clearPendingBreak();
|
|
4203
|
-
if (fitCount ===
|
|
7813
|
+
if (fitCount === fitWidths.length) {
|
|
4204
7814
|
lineEndSegmentIndex = segmentIndex + 1;
|
|
4205
7815
|
lineEndGraphemeIndex = 0;
|
|
4206
7816
|
return true;
|
|
@@ -4236,6 +7846,7 @@
|
|
|
4236
7846
|
let i = chunk.startSegmentIndex;
|
|
4237
7847
|
while(i < chunk.endSegmentIndex){
|
|
4238
7848
|
const kind = kinds[i];
|
|
7849
|
+
const breakAfter = kind === 'space' || kind === 'preserved-space' || kind === 'tab' || kind === 'zero-width-break' || kind === 'soft-hyphen';
|
|
4239
7850
|
const w = kind === 'tab' ? getTabAdvance(lineW, tabStopAdvance) : widths[i];
|
|
4240
7851
|
if (kind === 'soft-hyphen') {
|
|
4241
7852
|
if (hasContent) {
|
|
@@ -4250,20 +7861,20 @@
|
|
|
4250
7861
|
continue;
|
|
4251
7862
|
}
|
|
4252
7863
|
if (!hasContent) {
|
|
4253
|
-
if (w > maxWidth &&
|
|
4254
|
-
|
|
7864
|
+
if (w > maxWidth && breakableFitAdvances[i] !== null) {
|
|
7865
|
+
appendBreakableSegmentFrom(i, 0);
|
|
4255
7866
|
} else {
|
|
4256
7867
|
startLineAtSegment(i, w);
|
|
4257
7868
|
}
|
|
4258
|
-
updatePendingBreakForWholeSegment(i, w);
|
|
7869
|
+
updatePendingBreakForWholeSegment(kind, breakAfter, i, w);
|
|
4259
7870
|
i++;
|
|
4260
7871
|
continue;
|
|
4261
7872
|
}
|
|
4262
7873
|
const newW = lineW + w;
|
|
4263
|
-
if (newW >
|
|
7874
|
+
if (newW > fitLimit) {
|
|
4264
7875
|
const currentBreakFitWidth = lineW + (kind === 'tab' ? 0 : lineEndFitAdvances[i]);
|
|
4265
7876
|
const currentBreakPaintWidth = lineW + (kind === 'tab' ? w : lineEndPaintAdvances[i]);
|
|
4266
|
-
if (pendingBreakKind === 'soft-hyphen' && engineProfile.preferEarlySoftHyphenBreak && pendingBreakFitWidth <=
|
|
7877
|
+
if (pendingBreakKind === 'soft-hyphen' && engineProfile.preferEarlySoftHyphenBreak && pendingBreakFitWidth <= fitLimit) {
|
|
4267
7878
|
emitCurrentLine(pendingBreakSegmentIndex, 0, pendingBreakPaintWidth);
|
|
4268
7879
|
continue;
|
|
4269
7880
|
}
|
|
@@ -4271,19 +7882,25 @@
|
|
|
4271
7882
|
i++;
|
|
4272
7883
|
continue;
|
|
4273
7884
|
}
|
|
4274
|
-
if (
|
|
7885
|
+
if (breakAfter && currentBreakFitWidth <= fitLimit) {
|
|
4275
7886
|
appendWholeSegment(i, w);
|
|
4276
7887
|
emitCurrentLine(i + 1, 0, currentBreakPaintWidth);
|
|
4277
7888
|
i++;
|
|
4278
7889
|
continue;
|
|
4279
7890
|
}
|
|
4280
|
-
if (pendingBreakSegmentIndex >= 0 && pendingBreakFitWidth <=
|
|
4281
|
-
|
|
7891
|
+
if (pendingBreakSegmentIndex >= 0 && pendingBreakFitWidth <= fitLimit) {
|
|
7892
|
+
if (lineEndSegmentIndex > pendingBreakSegmentIndex || lineEndSegmentIndex === pendingBreakSegmentIndex && lineEndGraphemeIndex > 0) {
|
|
7893
|
+
emitCurrentLine();
|
|
7894
|
+
continue;
|
|
7895
|
+
}
|
|
7896
|
+
const nextSegmentIndex = pendingBreakSegmentIndex;
|
|
7897
|
+
emitCurrentLine(nextSegmentIndex, 0, pendingBreakPaintWidth);
|
|
7898
|
+
i = nextSegmentIndex;
|
|
4282
7899
|
continue;
|
|
4283
7900
|
}
|
|
4284
|
-
if (w > maxWidth &&
|
|
7901
|
+
if (w > maxWidth && breakableFitAdvances[i] !== null) {
|
|
4285
7902
|
emitCurrentLine();
|
|
4286
|
-
|
|
7903
|
+
appendBreakableSegmentFrom(i, 0);
|
|
4287
7904
|
i++;
|
|
4288
7905
|
continue;
|
|
4289
7906
|
}
|
|
@@ -4291,7 +7908,7 @@
|
|
|
4291
7908
|
continue;
|
|
4292
7909
|
}
|
|
4293
7910
|
appendWholeSegment(i, w);
|
|
4294
|
-
updatePendingBreakForWholeSegment(i, w);
|
|
7911
|
+
updatePendingBreakForWholeSegment(kind, breakAfter, i, w);
|
|
4295
7912
|
i++;
|
|
4296
7913
|
}
|
|
4297
7914
|
if (hasContent) {
|
|
@@ -4357,8 +7974,7 @@
|
|
|
4357
7974
|
kinds: [],
|
|
4358
7975
|
simpleLineWalkFastPath: true,
|
|
4359
7976
|
segLevels: null,
|
|
4360
|
-
|
|
4361
|
-
breakablePrefixWidths: [],
|
|
7977
|
+
breakableFitAdvances: [],
|
|
4362
7978
|
discretionaryHyphenWidth: 0,
|
|
4363
7979
|
tabStopAdvance: 0,
|
|
4364
7980
|
chunks: [],
|
|
@@ -4366,8 +7982,66 @@
|
|
|
4366
7982
|
};
|
|
4367
7983
|
}
|
|
4368
7984
|
}
|
|
4369
|
-
function
|
|
4370
|
-
const
|
|
7985
|
+
function buildBaseCjkUnits(segText, engineProfile) {
|
|
7986
|
+
const units = [];
|
|
7987
|
+
let unitParts = [];
|
|
7988
|
+
let unitStart = 0;
|
|
7989
|
+
let unitContainsCJK = false;
|
|
7990
|
+
let unitEndsWithClosingQuote = false;
|
|
7991
|
+
let unitIsSingleKinsokuEnd = false;
|
|
7992
|
+
function pushUnit() {
|
|
7993
|
+
if (unitParts.length === 0) return;
|
|
7994
|
+
units.push({
|
|
7995
|
+
text: unitParts.length === 1 ? unitParts[0] : unitParts.join(''),
|
|
7996
|
+
start: unitStart
|
|
7997
|
+
});
|
|
7998
|
+
unitParts = [];
|
|
7999
|
+
unitContainsCJK = false;
|
|
8000
|
+
unitEndsWithClosingQuote = false;
|
|
8001
|
+
unitIsSingleKinsokuEnd = false;
|
|
8002
|
+
}
|
|
8003
|
+
function startUnit(grapheme, start, graphemeContainsCJK) {
|
|
8004
|
+
unitParts = [
|
|
8005
|
+
grapheme
|
|
8006
|
+
];
|
|
8007
|
+
unitStart = start;
|
|
8008
|
+
unitContainsCJK = graphemeContainsCJK;
|
|
8009
|
+
unitEndsWithClosingQuote = endsWithClosingQuote(grapheme);
|
|
8010
|
+
unitIsSingleKinsokuEnd = kinsokuEnd.has(grapheme);
|
|
8011
|
+
}
|
|
8012
|
+
function appendToUnit(grapheme, graphemeContainsCJK) {
|
|
8013
|
+
unitParts.push(grapheme);
|
|
8014
|
+
unitContainsCJK = unitContainsCJK || graphemeContainsCJK;
|
|
8015
|
+
const graphemeEndsWithClosingQuote = endsWithClosingQuote(grapheme);
|
|
8016
|
+
if (grapheme.length === 1 && leftStickyPunctuation.has(grapheme)) {
|
|
8017
|
+
unitEndsWithClosingQuote = unitEndsWithClosingQuote || graphemeEndsWithClosingQuote;
|
|
8018
|
+
} else {
|
|
8019
|
+
unitEndsWithClosingQuote = graphemeEndsWithClosingQuote;
|
|
8020
|
+
}
|
|
8021
|
+
unitIsSingleKinsokuEnd = false;
|
|
8022
|
+
}
|
|
8023
|
+
for (const gs of getSharedGraphemeSegmenter().segment(segText)){
|
|
8024
|
+
const grapheme = gs.segment;
|
|
8025
|
+
const graphemeContainsCJK = isCJK(grapheme);
|
|
8026
|
+
if (unitParts.length === 0) {
|
|
8027
|
+
startUnit(grapheme, gs.index, graphemeContainsCJK);
|
|
8028
|
+
continue;
|
|
8029
|
+
}
|
|
8030
|
+
if (unitIsSingleKinsokuEnd || kinsokuStart.has(grapheme) || leftStickyPunctuation.has(grapheme) || engineProfile.carryCJKAfterClosingQuote && graphemeContainsCJK && unitEndsWithClosingQuote) {
|
|
8031
|
+
appendToUnit(grapheme, graphemeContainsCJK);
|
|
8032
|
+
continue;
|
|
8033
|
+
}
|
|
8034
|
+
if (!unitContainsCJK && !graphemeContainsCJK) {
|
|
8035
|
+
appendToUnit(grapheme, graphemeContainsCJK);
|
|
8036
|
+
continue;
|
|
8037
|
+
}
|
|
8038
|
+
pushUnit();
|
|
8039
|
+
startUnit(grapheme, gs.index, graphemeContainsCJK);
|
|
8040
|
+
}
|
|
8041
|
+
pushUnit();
|
|
8042
|
+
return units;
|
|
8043
|
+
}
|
|
8044
|
+
function measureAnalysis(analysis, font, includeSegments, wordBreak) {
|
|
4371
8045
|
const engineProfile = getEngineProfile();
|
|
4372
8046
|
const { cache, emojiCorrection } = getFontMeasurementState(font, textMayContainEmoji(analysis.normalized));
|
|
4373
8047
|
const discretionaryHyphenWidth = getCorrectedSegmentWidth('-', getSegmentMetrics('-', cache), emojiCorrection);
|
|
@@ -4380,16 +8054,12 @@
|
|
|
4380
8054
|
const kinds = [];
|
|
4381
8055
|
let simpleLineWalkFastPath = analysis.chunks.length <= 1;
|
|
4382
8056
|
const segStarts = [] ;
|
|
4383
|
-
const
|
|
4384
|
-
const breakablePrefixWidths = [];
|
|
8057
|
+
const breakableFitAdvances = [];
|
|
4385
8058
|
const segments = includeSegments ? [] : null;
|
|
4386
8059
|
const preparedStartByAnalysisIndex = Array.from({
|
|
4387
8060
|
length: analysis.len
|
|
4388
8061
|
});
|
|
4389
|
-
|
|
4390
|
-
length: analysis.len
|
|
4391
|
-
});
|
|
4392
|
-
function pushMeasuredSegment(text, width, lineEndFitAdvance, lineEndPaintAdvance, kind, start, breakable, breakablePrefix) {
|
|
8062
|
+
function pushMeasuredSegment(text, width, lineEndFitAdvance, lineEndPaintAdvance, kind, start, breakableFitAdvance) {
|
|
4393
8063
|
if (kind !== 'text' && kind !== 'space' && kind !== 'zero-width-break') {
|
|
4394
8064
|
simpleLineWalkFastPath = false;
|
|
4395
8065
|
}
|
|
@@ -4398,10 +8068,27 @@
|
|
|
4398
8068
|
lineEndPaintAdvances.push(lineEndPaintAdvance);
|
|
4399
8069
|
kinds.push(kind);
|
|
4400
8070
|
segStarts?.push(start);
|
|
4401
|
-
|
|
4402
|
-
breakablePrefixWidths.push(breakablePrefix);
|
|
8071
|
+
breakableFitAdvances.push(breakableFitAdvance);
|
|
4403
8072
|
if (segments !== null) segments.push(text);
|
|
4404
8073
|
}
|
|
8074
|
+
function pushMeasuredTextSegment(text, kind, start, wordLike, allowOverflowBreaks) {
|
|
8075
|
+
const textMetrics = getSegmentMetrics(text, cache);
|
|
8076
|
+
const width = getCorrectedSegmentWidth(text, textMetrics, emojiCorrection);
|
|
8077
|
+
const lineEndFitAdvance = kind === 'space' || kind === 'preserved-space' || kind === 'zero-width-break' ? 0 : width;
|
|
8078
|
+
const lineEndPaintAdvance = kind === 'space' || kind === 'zero-width-break' ? 0 : width;
|
|
8079
|
+
if (allowOverflowBreaks && wordLike && text.length > 1) {
|
|
8080
|
+
let fitMode = 'sum-graphemes';
|
|
8081
|
+
if (isNumericRunSegment(text)) {
|
|
8082
|
+
fitMode = 'pair-context';
|
|
8083
|
+
} else if (engineProfile.preferPrefixWidthsForBreakableRuns) {
|
|
8084
|
+
fitMode = 'segment-prefixes';
|
|
8085
|
+
}
|
|
8086
|
+
const fitAdvances = getSegmentBreakableFitAdvances(text, textMetrics, cache, emojiCorrection, fitMode);
|
|
8087
|
+
pushMeasuredSegment(text, width, lineEndFitAdvance, lineEndPaintAdvance, kind, start, fitAdvances);
|
|
8088
|
+
return;
|
|
8089
|
+
}
|
|
8090
|
+
pushMeasuredSegment(text, width, lineEndFitAdvance, lineEndPaintAdvance, kind, start, null);
|
|
8091
|
+
}
|
|
4405
8092
|
for(let mi = 0; mi < analysis.len; mi++){
|
|
4406
8093
|
preparedStartByAnalysisIndex[mi] = widths.length;
|
|
4407
8094
|
const segText = analysis.texts[mi];
|
|
@@ -4409,62 +8096,30 @@
|
|
|
4409
8096
|
const segKind = analysis.kinds[mi];
|
|
4410
8097
|
const segStart = analysis.starts[mi];
|
|
4411
8098
|
if (segKind === 'soft-hyphen') {
|
|
4412
|
-
pushMeasuredSegment(segText, 0, discretionaryHyphenWidth, discretionaryHyphenWidth, segKind, segStart, null
|
|
4413
|
-
preparedEndByAnalysisIndex[mi] = widths.length;
|
|
8099
|
+
pushMeasuredSegment(segText, 0, discretionaryHyphenWidth, discretionaryHyphenWidth, segKind, segStart, null);
|
|
4414
8100
|
continue;
|
|
4415
8101
|
}
|
|
4416
8102
|
if (segKind === 'hard-break') {
|
|
4417
|
-
pushMeasuredSegment(segText, 0, 0, 0, segKind, segStart, null
|
|
4418
|
-
preparedEndByAnalysisIndex[mi] = widths.length;
|
|
8103
|
+
pushMeasuredSegment(segText, 0, 0, 0, segKind, segStart, null);
|
|
4419
8104
|
continue;
|
|
4420
8105
|
}
|
|
4421
8106
|
if (segKind === 'tab') {
|
|
4422
|
-
pushMeasuredSegment(segText, 0, 0, 0, segKind, segStart, null
|
|
4423
|
-
preparedEndByAnalysisIndex[mi] = widths.length;
|
|
8107
|
+
pushMeasuredSegment(segText, 0, 0, 0, segKind, segStart, null);
|
|
4424
8108
|
continue;
|
|
4425
8109
|
}
|
|
4426
8110
|
const segMetrics = getSegmentMetrics(segText, cache);
|
|
4427
8111
|
if (segKind === 'text' && segMetrics.containsCJK) {
|
|
4428
|
-
|
|
4429
|
-
|
|
4430
|
-
for
|
|
4431
|
-
const
|
|
4432
|
-
|
|
4433
|
-
unitText = grapheme;
|
|
4434
|
-
unitStart = gs.index;
|
|
4435
|
-
continue;
|
|
4436
|
-
}
|
|
4437
|
-
if (kinsokuEnd.has(unitText) || kinsokuStart.has(grapheme) || leftStickyPunctuation.has(grapheme) || engineProfile.carryCJKAfterClosingQuote && isCJK(grapheme) && endsWithClosingQuote(unitText)) {
|
|
4438
|
-
unitText += grapheme;
|
|
4439
|
-
continue;
|
|
4440
|
-
}
|
|
4441
|
-
const unitMetrics = getSegmentMetrics(unitText, cache);
|
|
4442
|
-
const w = getCorrectedSegmentWidth(unitText, unitMetrics, emojiCorrection);
|
|
4443
|
-
pushMeasuredSegment(unitText, w, w, w, 'text', segStart + unitStart, null, null);
|
|
4444
|
-
unitText = grapheme;
|
|
4445
|
-
unitStart = gs.index;
|
|
4446
|
-
}
|
|
4447
|
-
if (unitText.length > 0) {
|
|
4448
|
-
const unitMetrics = getSegmentMetrics(unitText, cache);
|
|
4449
|
-
const w = getCorrectedSegmentWidth(unitText, unitMetrics, emojiCorrection);
|
|
4450
|
-
pushMeasuredSegment(unitText, w, w, w, 'text', segStart + unitStart, null, null);
|
|
8112
|
+
const baseUnits = buildBaseCjkUnits(segText, engineProfile);
|
|
8113
|
+
const measuredUnits = baseUnits;
|
|
8114
|
+
for(let i = 0; i < measuredUnits.length; i++){
|
|
8115
|
+
const unit = measuredUnits[i];
|
|
8116
|
+
pushMeasuredTextSegment(unit.text, 'text', segStart + unit.start, segWordLike, !isCJK(unit.text));
|
|
4451
8117
|
}
|
|
4452
|
-
preparedEndByAnalysisIndex[mi] = widths.length;
|
|
4453
8118
|
continue;
|
|
4454
8119
|
}
|
|
4455
|
-
|
|
4456
|
-
const lineEndFitAdvance = segKind === 'space' || segKind === 'preserved-space' || segKind === 'zero-width-break' ? 0 : w;
|
|
4457
|
-
const lineEndPaintAdvance = segKind === 'space' || segKind === 'zero-width-break' ? 0 : w;
|
|
4458
|
-
if (segWordLike && segText.length > 1) {
|
|
4459
|
-
const graphemeWidths = getSegmentGraphemeWidths(segText, segMetrics, cache, emojiCorrection);
|
|
4460
|
-
const graphemePrefixWidths = engineProfile.preferPrefixWidthsForBreakableRuns ? getSegmentGraphemePrefixWidths(segText, segMetrics, cache, emojiCorrection) : null;
|
|
4461
|
-
pushMeasuredSegment(segText, w, lineEndFitAdvance, lineEndPaintAdvance, segKind, segStart, graphemeWidths, graphemePrefixWidths);
|
|
4462
|
-
} else {
|
|
4463
|
-
pushMeasuredSegment(segText, w, lineEndFitAdvance, lineEndPaintAdvance, segKind, segStart, null, null);
|
|
4464
|
-
}
|
|
4465
|
-
preparedEndByAnalysisIndex[mi] = widths.length;
|
|
8120
|
+
pushMeasuredTextSegment(segText, segKind, segStart, segWordLike, true);
|
|
4466
8121
|
}
|
|
4467
|
-
const chunks = mapAnalysisChunksToPreparedChunks(analysis.chunks, preparedStartByAnalysisIndex,
|
|
8122
|
+
const chunks = mapAnalysisChunksToPreparedChunks(analysis.chunks, preparedStartByAnalysisIndex, widths.length);
|
|
4468
8123
|
const segLevels = segStarts === null ? null : computeSegmentLevels(analysis.normalized, segStarts);
|
|
4469
8124
|
if (segments !== null) {
|
|
4470
8125
|
return {
|
|
@@ -4474,8 +8129,7 @@
|
|
|
4474
8129
|
kinds,
|
|
4475
8130
|
simpleLineWalkFastPath,
|
|
4476
8131
|
segLevels,
|
|
4477
|
-
|
|
4478
|
-
breakablePrefixWidths,
|
|
8132
|
+
breakableFitAdvances,
|
|
4479
8133
|
discretionaryHyphenWidth,
|
|
4480
8134
|
tabStopAdvance,
|
|
4481
8135
|
chunks,
|
|
@@ -4489,20 +8143,19 @@
|
|
|
4489
8143
|
kinds,
|
|
4490
8144
|
simpleLineWalkFastPath,
|
|
4491
8145
|
segLevels,
|
|
4492
|
-
|
|
4493
|
-
breakablePrefixWidths,
|
|
8146
|
+
breakableFitAdvances,
|
|
4494
8147
|
discretionaryHyphenWidth,
|
|
4495
8148
|
tabStopAdvance,
|
|
4496
8149
|
chunks
|
|
4497
8150
|
};
|
|
4498
8151
|
}
|
|
4499
|
-
function mapAnalysisChunksToPreparedChunks(chunks, preparedStartByAnalysisIndex,
|
|
8152
|
+
function mapAnalysisChunksToPreparedChunks(chunks, preparedStartByAnalysisIndex, preparedEndSegmentIndex) {
|
|
4500
8153
|
const preparedChunks = [];
|
|
4501
8154
|
for(let i = 0; i < chunks.length; i++){
|
|
4502
8155
|
const chunk = chunks[i];
|
|
4503
|
-
const startSegmentIndex = chunk.startSegmentIndex < preparedStartByAnalysisIndex.length ? preparedStartByAnalysisIndex[chunk.startSegmentIndex] :
|
|
4504
|
-
const endSegmentIndex = chunk.endSegmentIndex < preparedStartByAnalysisIndex.length ? preparedStartByAnalysisIndex[chunk.endSegmentIndex] :
|
|
4505
|
-
const consumedEndSegmentIndex = chunk.consumedEndSegmentIndex < preparedStartByAnalysisIndex.length ? preparedStartByAnalysisIndex[chunk.consumedEndSegmentIndex] :
|
|
8156
|
+
const startSegmentIndex = chunk.startSegmentIndex < preparedStartByAnalysisIndex.length ? preparedStartByAnalysisIndex[chunk.startSegmentIndex] : preparedEndSegmentIndex;
|
|
8157
|
+
const endSegmentIndex = chunk.endSegmentIndex < preparedStartByAnalysisIndex.length ? preparedStartByAnalysisIndex[chunk.endSegmentIndex] : preparedEndSegmentIndex;
|
|
8158
|
+
const consumedEndSegmentIndex = chunk.consumedEndSegmentIndex < preparedStartByAnalysisIndex.length ? preparedStartByAnalysisIndex[chunk.consumedEndSegmentIndex] : preparedEndSegmentIndex;
|
|
4506
8159
|
preparedChunks.push({
|
|
4507
8160
|
startSegmentIndex,
|
|
4508
8161
|
endSegmentIndex,
|
|
@@ -4512,7 +8165,8 @@
|
|
|
4512
8165
|
return preparedChunks;
|
|
4513
8166
|
}
|
|
4514
8167
|
function prepareInternal(text, font, includeSegments, options) {
|
|
4515
|
-
const
|
|
8168
|
+
const wordBreak = 'normal';
|
|
8169
|
+
const analysis = analyzeText(text, getEngineProfile(), options?.whiteSpace, wordBreak);
|
|
4516
8170
|
return measureAnalysis(analysis, font, includeSegments);
|
|
4517
8171
|
}
|
|
4518
8172
|
// Rich variant used by callers that need enough information to render the
|