@cantoo/fontkit 2.0.4 → 2.0.5

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.
Files changed (115) hide show
  1. package/dist/browser-module.mjs +28 -28
  2. package/dist/browser-module.mjs.map +1 -1
  3. package/dist/browser.cjs +28 -28
  4. package/dist/browser.cjs.map +1 -1
  5. package/dist/main.cjs +28 -28
  6. package/dist/main.cjs.map +1 -1
  7. package/dist/module.mjs +28 -28
  8. package/dist/module.mjs.map +1 -1
  9. package/package.json +2 -1
  10. package/src/CmapProcessor.js +2 -2
  11. package/src/DFont.js +5 -5
  12. package/src/TTFFont.js +11 -15
  13. package/src/TrueTypeCollection.js +10 -10
  14. package/src/WOFF2Font.js +0 -6
  15. package/src/aat/AATFeatureMap.js +21 -22
  16. package/src/aat/AATLayoutEngine.js +1 -1
  17. package/src/aat/AATLookupTable.js +2 -2
  18. package/src/aat/AATMorxProcessor.js +14 -14
  19. package/src/aat/AATStateMachine.js +3 -3
  20. package/src/base.js +1 -1
  21. package/src/cff/CFFDict.js +2 -2
  22. package/src/cff/CFFFont.js +1 -1
  23. package/src/cff/CFFIndex.js +4 -4
  24. package/src/cff/CFFOperand.js +1 -11
  25. package/src/cff/CFFPrivateDict.js +20 -20
  26. package/src/cff/CFFStandardStrings.js +67 -67
  27. package/src/cff/CFFTop.js +58 -58
  28. package/src/decorators.js +3 -3
  29. package/src/encodings.js +111 -111
  30. package/src/glyph/CFFGlyph.js +3 -4
  31. package/src/glyph/COLRGlyph.js +2 -2
  32. package/src/glyph/Glyph.js +4 -4
  33. package/src/glyph/GlyphVariationProcessor.js +23 -28
  34. package/src/glyph/Path.js +14 -14
  35. package/src/glyph/SBIXGlyph.js +2 -2
  36. package/src/glyph/TTFGlyph.js +31 -38
  37. package/src/glyph/TTFGlyphEncoder.js +26 -26
  38. package/src/glyph/WOFF2Glyph.js +2 -2
  39. package/src/layout/GlyphRun.js +3 -3
  40. package/src/layout/KernProcessor.js +1 -1
  41. package/src/layout/LayoutEngine.js +13 -14
  42. package/src/layout/Script.js +25 -25
  43. package/src/layout/UnicodeLayoutEngine.js +5 -6
  44. package/src/opentype/GlyphInfo.js +1 -1
  45. package/src/opentype/GlyphIterator.js +2 -2
  46. package/src/opentype/OTProcessor.js +8 -8
  47. package/src/opentype/ShapingPlan.js +1 -2
  48. package/src/opentype/shapers/ArabicShaper.js +8 -8
  49. package/src/opentype/shapers/DefaultShaper.js +3 -3
  50. package/src/opentype/shapers/HangulShaper.js +35 -35
  51. package/src/opentype/shapers/HebrewShaper.js +5 -5
  52. package/src/opentype/shapers/IndicShaper.js +20 -20
  53. package/src/opentype/shapers/ThaiShaper.js +15 -15
  54. package/src/opentype/shapers/UniversalShaper.js +2 -2
  55. package/src/opentype/shapers/index.js +33 -33
  56. package/src/opentype/shapers/indic-data.js +2 -2
  57. package/src/packages/unicode-properties/data-trie.js +1 -1
  58. package/src/packages/unicode-properties/data.js +1 -1
  59. package/src/packages/unicode-properties/dist/index.cjs +1 -1
  60. package/src/packages/unicode-properties/dist/index.cjs.map +2 -2
  61. package/src/packages/unicode-properties/dist/index.mjs +1 -1
  62. package/src/packages/unicode-properties/dist/index.mjs.map +2 -2
  63. package/src/packages/unicode-properties/generate.js +3 -4
  64. package/src/packages/unicode-properties/index.js +30 -30
  65. package/src/packages/unicode-properties/package.json +1 -1
  66. package/src/packages/unicode-trie/builder.js +18 -22
  67. package/src/packages/unicode-trie/dist/builder.cjs +6 -9
  68. package/src/packages/unicode-trie/dist/builder.cjs.map +2 -2
  69. package/src/packages/unicode-trie/dist/builder.mjs +6 -9
  70. package/src/packages/unicode-trie/dist/builder.mjs.map +2 -2
  71. package/src/packages/unicode-trie/dist/index.cjs.map +2 -2
  72. package/src/packages/unicode-trie/dist/index.mjs.map +2 -2
  73. package/src/packages/unicode-trie/index.js +1 -2
  74. package/src/packages/unicode-trie/package.json +1 -1
  75. package/src/packages/unicode-trie/swap.js +2 -2
  76. package/src/subset/Subset.js +2 -2
  77. package/src/subset/TTFSubset.js +5 -5
  78. package/src/tables/BASE.js +27 -27
  79. package/src/tables/COLR.js +9 -9
  80. package/src/tables/CPAL.js +1 -1
  81. package/src/tables/DSIG.js +7 -7
  82. package/src/tables/EBDT.js +0 -1
  83. package/src/tables/EBLC.js +3 -3
  84. package/src/tables/GDEF.js +17 -17
  85. package/src/tables/GPOS.js +74 -74
  86. package/src/tables/GSUB.js +37 -37
  87. package/src/tables/JSTF.js +16 -16
  88. package/src/tables/LTSH.js +3 -3
  89. package/src/tables/OS2.js +49 -49
  90. package/src/tables/PCLT.js +15 -15
  91. package/src/tables/VDMX.js +17 -17
  92. package/src/tables/VORG.js +7 -7
  93. package/src/tables/WOFF2Directory.js +2 -2
  94. package/src/tables/WOFFDirectory.js +18 -18
  95. package/src/tables/aat.js +2 -2
  96. package/src/tables/cmap.js +63 -63
  97. package/src/tables/directory.js +14 -14
  98. package/src/tables/gasp.js +5 -5
  99. package/src/tables/glyf.js +1 -1
  100. package/src/tables/hdmx.js +7 -7
  101. package/src/tables/head.js +16 -16
  102. package/src/tables/hhea.js +14 -14
  103. package/src/tables/hmtx.js +2 -2
  104. package/src/tables/index.js +0 -5
  105. package/src/tables/just.js +1 -1
  106. package/src/tables/kern.js +42 -42
  107. package/src/tables/loca.js +2 -2
  108. package/src/tables/maxp.js +15 -15
  109. package/src/tables/morx.js +16 -16
  110. package/src/tables/name.js +18 -18
  111. package/src/tables/opentype.js +91 -91
  112. package/src/tables/post.js +10 -10
  113. package/src/tables/variations.js +6 -6
  114. package/src/tables/vhea.js +14 -14
  115. package/src/tables/vmtx.js +3 -3
@@ -38,7 +38,7 @@ export default class HangulShaper extends DefaultShaper {
38
38
  let code = glyph.codePoints[0];
39
39
  let type = getType(code);
40
40
 
41
- [ action, state ] = STATE_TABLE[state][type];
41
+ [action, state] = STATE_TABLE[state][type];
42
42
 
43
43
  switch (action) {
44
44
  case DECOMPOSE:
@@ -69,46 +69,46 @@ export default class HangulShaper extends DefaultShaper {
69
69
  }
70
70
  }
71
71
 
72
- const HANGUL_BASE = 0xac00;
73
- const HANGUL_END = 0xd7a4;
72
+ const HANGUL_BASE = 0xac00;
73
+ const HANGUL_END = 0xd7a4;
74
74
  const HANGUL_COUNT = HANGUL_END - HANGUL_BASE + 1;
75
- const L_BASE = 0x1100; // lead
76
- const V_BASE = 0x1161; // vowel
77
- const T_BASE = 0x11a7; // trail
75
+ const L_BASE = 0x1100; // lead
76
+ const V_BASE = 0x1161; // vowel
77
+ const T_BASE = 0x11a7; // trail
78
78
  const L_COUNT = 19;
79
79
  const V_COUNT = 21;
80
80
  const T_COUNT = 28;
81
- const L_END = L_BASE + L_COUNT - 1;
82
- const V_END = V_BASE + V_COUNT - 1;
83
- const T_END = T_BASE + T_COUNT - 1;
81
+ const L_END = L_BASE + L_COUNT - 1;
82
+ const V_END = V_BASE + V_COUNT - 1;
83
+ const T_END = T_BASE + T_COUNT - 1;
84
84
  const DOTTED_CIRCLE = 0x25cc;
85
85
 
86
- const isL = code => 0x1100 <= code && code <= 0x115f || 0xa960 <= code && code <= 0xa97c;
87
- const isV = code => 0x1160 <= code && code <= 0x11a7 || 0xd7b0 <= code && code <= 0xd7c6;
88
- const isT = code => 0x11a8 <= code && code <= 0x11ff || 0xd7cb <= code && code <= 0xd7fb;
86
+ const isL = code => 0x1100 <= code && code <= 0x115f || 0xa960 <= code && code <= 0xa97c;
87
+ const isV = code => 0x1160 <= code && code <= 0x11a7 || 0xd7b0 <= code && code <= 0xd7c6;
88
+ const isT = code => 0x11a8 <= code && code <= 0x11ff || 0xd7cb <= code && code <= 0xd7fb;
89
89
  const isTone = code => 0x302e <= code && code <= 0x302f;
90
- const isLVT = code => HANGUL_BASE <= code && code <= HANGUL_END;
91
- const isLV = code => (code - HANGUL_BASE) < HANGUL_COUNT && (code - HANGUL_BASE) % T_COUNT === 0;
90
+ const isLVT = code => HANGUL_BASE <= code && code <= HANGUL_END;
91
+ const isLV = code => (code - HANGUL_BASE) < HANGUL_COUNT && (code - HANGUL_BASE) % T_COUNT === 0;
92
92
  const isCombiningL = code => L_BASE <= code && code <= L_END;
93
93
  const isCombiningV = code => V_BASE <= code && code <= V_END;
94
94
  const isCombiningT = code => T_BASE + 1 && 1 <= code && code <= T_END;
95
95
 
96
96
  // Character categories
97
- const X = 0; // Other character
98
- const L = 1; // Leading consonant
99
- const V = 2; // Medial vowel
100
- const T = 3; // Trailing consonant
101
- const LV = 4; // Composed <LV> syllable
97
+ const X = 0; // Other character
98
+ const L = 1; // Leading consonant
99
+ const V = 2; // Medial vowel
100
+ const T = 3; // Trailing consonant
101
+ const LV = 4; // Composed <LV> syllable
102
102
  const LVT = 5; // Composed <LVT> syllable
103
- const M = 6; // Tone mark
103
+ const M = 6; // Tone mark
104
104
 
105
105
  // This function classifies a character using the above categories.
106
106
  function getType(code) {
107
- if (isL(code)) { return L; }
108
- if (isV(code)) { return V; }
109
- if (isT(code)) { return T; }
110
- if (isLV(code)) { return LV; }
111
- if (isLVT(code)) { return LVT; }
107
+ if (isL(code)) { return L; }
108
+ if (isV(code)) { return V; }
109
+ if (isT(code)) { return T; }
110
+ if (isLV(code)) { return LV; }
111
+ if (isLVT(code)) { return LVT; }
112
112
  if (isTone(code)) { return M; }
113
113
  return X;
114
114
  }
@@ -116,25 +116,25 @@ function getType(code) {
116
116
  // State machine actions
117
117
  const NO_ACTION = 0;
118
118
  const DECOMPOSE = 1;
119
- const COMPOSE = 2;
119
+ const COMPOSE = 2;
120
120
  const TONE_MARK = 4;
121
- const INVALID = 5;
121
+ const INVALID = 5;
122
122
 
123
123
  // Build a state machine that accepts valid syllables, and applies actions along the way.
124
124
  // The logic this is implementing is documented at the top of the file.
125
125
  const STATE_TABLE = [
126
126
  // X L V T LV LVT M
127
127
  // State 0: start state
128
- [ [ NO_ACTION, 0 ], [ NO_ACTION, 1 ], [ NO_ACTION, 0 ], [ NO_ACTION, 0 ], [ DECOMPOSE, 2 ], [ DECOMPOSE, 3 ], [ INVALID, 0 ] ],
128
+ [[NO_ACTION, 0], [NO_ACTION, 1], [NO_ACTION, 0], [NO_ACTION, 0], [DECOMPOSE, 2], [DECOMPOSE, 3], [INVALID, 0]],
129
129
 
130
130
  // State 1: <L>
131
- [ [ NO_ACTION, 0 ], [ NO_ACTION, 1 ], [ COMPOSE, 2 ], [ NO_ACTION, 0 ], [ DECOMPOSE, 2 ], [ DECOMPOSE, 3 ], [ INVALID, 0 ] ],
131
+ [[NO_ACTION, 0], [NO_ACTION, 1], [COMPOSE, 2], [NO_ACTION, 0], [DECOMPOSE, 2], [DECOMPOSE, 3], [INVALID, 0]],
132
132
 
133
133
  // State 2: <L,V> or <LV>
134
- [ [ NO_ACTION, 0 ], [ NO_ACTION, 1 ], [ NO_ACTION, 0 ], [ COMPOSE, 3 ], [ DECOMPOSE, 2 ], [ DECOMPOSE, 3 ], [ TONE_MARK, 0 ] ],
134
+ [[NO_ACTION, 0], [NO_ACTION, 1], [NO_ACTION, 0], [COMPOSE, 3], [DECOMPOSE, 2], [DECOMPOSE, 3], [TONE_MARK, 0]],
135
135
 
136
136
  // State 3: <L,V,T> or <LVT>
137
- [ [ NO_ACTION, 0 ], [ NO_ACTION, 1 ], [ NO_ACTION, 0 ], [ NO_ACTION, 0 ], [ DECOMPOSE, 2 ], [ DECOMPOSE, 3 ], [ TONE_MARK, 0 ] ]
137
+ [[NO_ACTION, 0], [NO_ACTION, 1], [NO_ACTION, 0], [NO_ACTION, 0], [DECOMPOSE, 2], [DECOMPOSE, 3], [TONE_MARK, 0]]
138
138
  ];
139
139
 
140
140
  function getGlyph(font, code, features) {
@@ -152,9 +152,9 @@ function decompose(glyphs, i, font) {
152
152
  let v = V_BASE + s % V_COUNT;
153
153
 
154
154
  // Don't decompose if all of the components are not available
155
- if (!font.hasGlyphForCodePoint(l) ||
156
- !font.hasGlyphForCodePoint(v) ||
157
- (t !== T_BASE && !font.hasGlyphForCodePoint(t))) {
155
+ if (!font.hasGlyphForCodePoint(l)
156
+ || !font.hasGlyphForCodePoint(v)
157
+ || (t !== T_BASE && !font.hasGlyphForCodePoint(t))) {
158
158
  return i;
159
159
  }
160
160
 
@@ -166,7 +166,7 @@ function decompose(glyphs, i, font) {
166
166
  let vjmo = getGlyph(font, v, glyph.features);
167
167
  vjmo.features.vjmo = true;
168
168
 
169
- let insert = [ ljmo, vjmo ];
169
+ let insert = [ljmo, vjmo];
170
170
 
171
171
  if (t > T_BASE) {
172
172
  let tjmo = getGlyph(font, t, glyph.features);
@@ -1,4 +1,4 @@
1
- import {getCombiningClass} from '../../packages/unicode-properties/index.js';
1
+ import { getCombiningClass } from '../../packages/unicode-properties/index.js';
2
2
  import DefaultShaper from './DefaultShaper';
3
3
  import GlyphInfo from '../GlyphInfo';
4
4
 
@@ -56,7 +56,7 @@ function composeHebrewPair(a, b) {
56
56
  // Greedily compose adjacent pairs when the font has the glyph
57
57
  // (e.g. SHIN + SHIN_DOT → FB2A, then + DAGESH → FB2C).
58
58
  function composeHebrew(glyphs, font) {
59
- for (let i = 0; i + 1 < glyphs.length; ) {
59
+ for (let i = 0; i + 1 < glyphs.length;) {
60
60
  let composed = glyphs[i].codePoints[0];
61
61
  let consumed = 1;
62
62
  while (i + consumed < glyphs.length) {
@@ -83,9 +83,9 @@ function reorderMarksHebrew(glyphs) {
83
83
  let c1 = getCombiningClass(glyphs[i - 1].codePoints[0]);
84
84
  let c2 = getCombiningClass(glyphs[i].codePoints[0]);
85
85
  if (
86
- (c0 === 'CCC17' || c0 === 'CCC18') &&
87
- (c1 === 'CCC10' || c1 === 'CCC14') &&
88
- (c2 === 'CCC22' || c2 === 'Below')
86
+ (c0 === 'CCC17' || c0 === 'CCC18')
87
+ && (c1 === 'CCC10' || c1 === 'CCC14')
88
+ && (c2 === 'CCC22' || c2 === 'Below')
89
89
  ) {
90
90
  [glyphs[i - 1], glyphs[i]] = [glyphs[i], glyphs[i - 1]];
91
91
  break;
@@ -1,7 +1,7 @@
1
1
  import DefaultShaper from './DefaultShaper';
2
2
  import StateMachine from 'dfa';
3
3
  import UnicodeTrie from '../../packages/unicode-trie/index.js';
4
- import {getCategory} from '../../packages/unicode-properties/index.js';
4
+ import { getCategory } from '../../packages/unicode-properties/index.js';
5
5
  import * as Script from '../../layout/Script';
6
6
  import GlyphInfo from '../GlyphInfo';
7
7
  import indicMachine from './indic.json';
@@ -17,7 +17,7 @@ import {
17
17
  import { decodeBase64 } from '../../utils';
18
18
  import indicTrie from './indic.trie';
19
19
 
20
- const {decompositions} = useData;
20
+ const { decompositions } = useData;
21
21
  const trie = new UnicodeTrie(decodeBase64(indicTrie));
22
22
  const stateMachine = new StateMachine(indicMachine);
23
23
 
@@ -69,7 +69,7 @@ export default class IndicShaper extends DefaultShaper {
69
69
  let codepoint = glyphs[i].codePoints[0];
70
70
  let d = INDIC_DECOMPOSITIONS[codepoint] || decompositions[codepoint];
71
71
  if (d) {
72
- let decomposed = d.map(c => {
72
+ let decomposed = d.map((c) => {
73
73
  let g = plan.font.glyphForCodePoint(c);
74
74
  return new GlyphInfo(plan.font, g.id, [c], glyphs[i].features);
75
75
  });
@@ -145,7 +145,7 @@ function isHalantOrCoeng(glyph) {
145
145
 
146
146
  function wouldSubstitute(glyphs, feature) {
147
147
  for (let glyph of glyphs) {
148
- glyph.features = {[feature]: true};
148
+ glyph.features = { [feature]: true };
149
149
  }
150
150
 
151
151
  let GSUB = glyphs[0]._font._layoutEngine.engine.GSUBProcessor;
@@ -183,7 +183,7 @@ function initialReordering(font, glyphs, plan) {
183
183
  }
184
184
 
185
185
  for (let start = 0, end = nextSyllable(glyphs, 0); start < glyphs.length; start = end, end = nextSyllable(glyphs, start)) {
186
- let {syllableType} = glyphs[start].shaperInfo;
186
+ let { syllableType } = glyphs[start].shaperInfo;
187
187
 
188
188
  if (syllableType === 'symbol_cluster' || syllableType === 'non_indic_cluster') {
189
189
  continue;
@@ -224,12 +224,12 @@ function initialReordering(font, glyphs, plan) {
224
224
  // If the syllable starts with Ra + Halant (in a script that has Reph)
225
225
  // and has more than one consonant, Ra is excluded from candidates for
226
226
  // base consonants.
227
- if (indicConfig.rephPos !== POSITIONS.Ra_To_Become_Reph &&
228
- features.rphf &&
229
- start + 3 <= end && (
230
- (indicConfig.rephMode === 'Implicit' && !isJoiner(glyphs[start + 2])) ||
231
- (indicConfig.rephMode === 'Explicit' && glyphs[start + 2].shaperInfo.category === CATEGORIES.ZWJ)
232
- )
227
+ if (indicConfig.rephPos !== POSITIONS.Ra_To_Become_Reph
228
+ && features.rphf
229
+ && start + 3 <= end && (
230
+ (indicConfig.rephMode === 'Implicit' && !isJoiner(glyphs[start + 2]))
231
+ || (indicConfig.rephMode === 'Explicit' && glyphs[start + 2].shaperInfo.category === CATEGORIES.ZWJ)
232
+ )
233
233
  ) {
234
234
  // See if it matches the 'rphf' feature.
235
235
  let g = [glyphs[start].copy(), glyphs[start + 1].copy(), glyphs[start + 2].copy()];
@@ -510,9 +510,9 @@ function initialReordering(font, glyphs, plan) {
510
510
  //
511
511
  // Test case: U+0924,U+094D,U+0930,U+094d,U+200D,U+0915
512
512
  for (let i = start; i + 1 < base; i++) {
513
- if (glyphs[i].shaperInfo.category === CATEGORIES.Ra &&
514
- glyphs[i + 1].shaperInfo.category === CATEGORIES.H &&
515
- (i + 1 === base || glyphs[i + 2].shaperInfo.category === CATEGORIES.ZWJ)
513
+ if (glyphs[i].shaperInfo.category === CATEGORIES.Ra
514
+ && glyphs[i + 1].shaperInfo.category === CATEGORIES.H
515
+ && (i + 1 === base || glyphs[i + 2].shaperInfo.category === CATEGORIES.ZWJ)
516
516
  ) {
517
517
  glyphs[i].features.blwf = true;
518
518
  glyphs[i + 1].features.blwf = true;
@@ -715,9 +715,9 @@ function finalReordering(font, glyphs, plan) {
715
715
  // - If repha is encoded separately and in the logical position, we should only
716
716
  // move it if it did NOT ligate. If it ligated, it's probably the font trying
717
717
  // to make it work without the reordering.
718
- if (start + 1 < end &&
719
- glyphs[start].shaperInfo.position === POSITIONS.Ra_To_Become_Reph &&
720
- (glyphs[start].shaperInfo.category === CATEGORIES.Repha) !== (glyphs[start].isLigated && !glyphs[start].isMultiplied)
718
+ if (start + 1 < end
719
+ && glyphs[start].shaperInfo.position === POSITIONS.Ra_To_Become_Reph
720
+ && (glyphs[start].shaperInfo.category === CATEGORIES.Repha) !== (glyphs[start].isLigated && !glyphs[start].isMultiplied)
721
721
  ) {
722
722
  let newRephPos;
723
723
  let rephPos = indicConfig.rephPos;
@@ -838,9 +838,9 @@ function finalReordering(font, glyphs, plan) {
838
838
  if (tryPref && base + 1 < end) {
839
839
  for (let i = base + 1; i < end; i++) {
840
840
  if (glyphs[i].features.pref) {
841
- // 1. Only reorder a glyph produced by substitution during application
842
- // of the <pref> feature. (Note that a font may shape a Ra consonant with
843
- // the feature generally but block it in certain contexts.)
841
+ // 1. Only reorder a glyph produced by substitution during application
842
+ // of the <pref> feature. (Note that a font may shape a Ra consonant with
843
+ // the feature generally but block it in certain contexts.)
844
844
 
845
845
  // Note: We just check that something got substituted. We don't check that
846
846
  // the <pref> feature actually did it...
@@ -89,7 +89,7 @@ const NOT_CONSONANT = 4;
89
89
 
90
90
  const AV = 0; // above-base vowel/mark
91
91
  const BV = 1; // below-base vowel/mark
92
- const T = 2; // tone mark
92
+ const T = 2; // tone mark
93
93
  const NOT_MARK = 3;
94
94
 
95
95
  function getConsonantType(u) {
@@ -102,10 +102,10 @@ function getConsonantType(u) {
102
102
 
103
103
  function getMarkType(u) {
104
104
  if (
105
- u === 0x0E31 ||
106
- (u >= 0x0E34 && u <= 0x0E37) ||
107
- u === 0x0E47 ||
108
- (u >= 0x0E4D && u <= 0x0E4E)
105
+ u === 0x0E31
106
+ || (u >= 0x0E34 && u <= 0x0E37)
107
+ || u === 0x0E47
108
+ || (u >= 0x0E4D && u <= 0x0E4E)
109
109
  ) {
110
110
  return AV;
111
111
  }
@@ -118,19 +118,19 @@ const T0 = 0, T1 = 1, T2 = 2, T3 = 3;
118
118
  const ABOVE_START_STATE = [T0, T1, T0, T0, T3]; // NC AC RC DC NOT_CONSONANT
119
119
  const ABOVE_STATE_MACHINE = [
120
120
  // AV BV T
121
- [[NOP, T3], [NOP, T0], [SD, T3]], // T0
122
- [[SL, T2], [NOP, T1], [SDL, T2]], // T1
123
- [[NOP, T3], [NOP, T2], [SL, T3]], // T2
124
- [[NOP, T3], [NOP, T3], [NOP, T3]] // T3
121
+ [[NOP, T3], [NOP, T0], [SD, T3]], // T0
122
+ [[SL, T2], [NOP, T1], [SDL, T2]], // T1
123
+ [[NOP, T3], [NOP, T2], [SL, T3]], // T2
124
+ [[NOP, T3], [NOP, T3], [NOP, T3]] // T3
125
125
  ];
126
126
 
127
127
  const B0 = 0, B1 = 1, B2 = 2;
128
128
  const BELOW_START_STATE = [B0, B0, B1, B2, B2];
129
129
  const BELOW_STATE_MACHINE = [
130
130
  // AV BV T
131
- [[NOP, B0], [NOP, B2], [NOP, B0]], // B0
132
- [[NOP, B1], [RD, B2], [NOP, B1]], // B1
133
- [[NOP, B2], [SD, B2], [NOP, B2]] // B2
131
+ [[NOP, B0], [NOP, B2], [NOP, B0]], // B0
132
+ [[NOP, B1], [RD, B2], [NOP, B1]], // B1
133
+ [[NOP, B2], [SD, B2], [NOP, B2]] // B2
134
134
  ];
135
135
 
136
136
  // [original, Windows PUA, Mac PUA] per action
@@ -143,7 +143,7 @@ const PUA_MAPPINGS = {
143
143
  [0x0E4C, 0xF70E, 0xF897], // THANTHAKHAT
144
144
  [0x0E38, 0xF718, 0xF89B], // SARA U
145
145
  [0x0E39, 0xF719, 0xF89C], // SARA UU
146
- [0x0E3A, 0xF71A, 0xF89D] // PHINTHU
146
+ [0x0E3A, 0xF71A, 0xF89D] // PHINTHU
147
147
  ],
148
148
  [SDL]: [
149
149
  [0x0E48, 0xF705, 0xF88C],
@@ -164,11 +164,11 @@ const PUA_MAPPINGS = {
164
164
  [0x0E36, 0xF703, 0xF887], // SARA UE
165
165
  [0x0E37, 0xF704, 0xF888], // SARA UEE
166
166
  [0x0E47, 0xF712, 0xF889], // MAITAIKHU
167
- [0x0E4D, 0xF711, 0xF899] // NIKHAHIT
167
+ [0x0E4D, 0xF711, 0xF899] // NIKHAHIT
168
168
  ],
169
169
  [RD]: [
170
170
  [0x0E0D, 0xF70F, 0xF89A], // YO YING
171
- [0x0E10, 0xF700, 0xF89E] // THO THAN
171
+ [0x0E10, 0xF700, 0xF89E] // THO THAN
172
172
  ]
173
173
  };
174
174
 
@@ -6,7 +6,7 @@ import useData from './use.json';
6
6
  import { decodeBase64 } from '../../utils';
7
7
  import useTrie from './use.trie';
8
8
 
9
- const {categories, decompositions} = useData;
9
+ const { categories, decompositions } = useData;
10
10
  const trie = new UnicodeTrie(decodeBase64(useTrie));
11
11
  const stateMachine = new StateMachine(useData);
12
12
 
@@ -49,7 +49,7 @@ export default class UniversalShaper extends DefaultShaper {
49
49
  for (let i = glyphs.length - 1; i >= 0; i--) {
50
50
  let codepoint = glyphs[i].codePoints[0];
51
51
  if (decompositions[codepoint]) {
52
- let decomposed = decompositions[codepoint].map(c => {
52
+ let decomposed = decompositions[codepoint].map((c) => {
53
53
  let g = plan.font.glyphForCodePoint(c);
54
54
  return new GlyphInfo(plan.font, g.id, [c], glyphs[i].features);
55
55
  });
@@ -7,41 +7,41 @@ import ThaiShaper from './ThaiShaper';
7
7
  import UniversalShaper from './UniversalShaper';
8
8
 
9
9
  const SHAPERS = {
10
- arab: ArabicShaper, // Arabic
11
- mong: ArabicShaper, // Mongolian
12
- syrc: ArabicShaper, // Syriac
13
- 'nko ': ArabicShaper, // N'Ko
14
- phag: ArabicShaper, // Phags Pa
15
- mand: ArabicShaper, // Mandaic
16
- mani: ArabicShaper, // Manichaean
17
- phlp: ArabicShaper, // Psalter Pahlavi
10
+ arab: ArabicShaper, // Arabic
11
+ mong: ArabicShaper, // Mongolian
12
+ syrc: ArabicShaper, // Syriac
13
+ 'nko ': ArabicShaper, // N'Ko
14
+ phag: ArabicShaper, // Phags Pa
15
+ mand: ArabicShaper, // Mandaic
16
+ mani: ArabicShaper, // Manichaean
17
+ phlp: ArabicShaper, // Psalter Pahlavi
18
18
 
19
- hang: HangulShaper, // Hangul
19
+ hang: HangulShaper, // Hangul
20
20
 
21
- hebr: HebrewShaper, // Hebrew
21
+ hebr: HebrewShaper, // Hebrew
22
22
 
23
- bng2: IndicShaper, // Bengali
24
- beng: IndicShaper, // Bengali
25
- dev2: IndicShaper, // Devanagari
26
- deva: IndicShaper, // Devanagari
27
- gjr2: IndicShaper, // Gujarati
28
- gujr: IndicShaper, // Gujarati
29
- guru: IndicShaper, // Gurmukhi
30
- gur2: IndicShaper, // Gurmukhi
31
- knda: IndicShaper, // Kannada
32
- knd2: IndicShaper, // Kannada
33
- mlm2: IndicShaper, // Malayalam
34
- mlym: IndicShaper, // Malayalam
35
- ory2: IndicShaper, // Oriya
36
- orya: IndicShaper, // Oriya
37
- taml: IndicShaper, // Tamil
38
- tml2: IndicShaper, // Tamil
39
- telu: IndicShaper, // Telugu
40
- tel2: IndicShaper, // Telugu
41
- khmr: IndicShaper, // Khmer
23
+ bng2: IndicShaper, // Bengali
24
+ beng: IndicShaper, // Bengali
25
+ dev2: IndicShaper, // Devanagari
26
+ deva: IndicShaper, // Devanagari
27
+ gjr2: IndicShaper, // Gujarati
28
+ gujr: IndicShaper, // Gujarati
29
+ guru: IndicShaper, // Gurmukhi
30
+ gur2: IndicShaper, // Gurmukhi
31
+ knda: IndicShaper, // Kannada
32
+ knd2: IndicShaper, // Kannada
33
+ mlm2: IndicShaper, // Malayalam
34
+ mlym: IndicShaper, // Malayalam
35
+ ory2: IndicShaper, // Oriya
36
+ orya: IndicShaper, // Oriya
37
+ taml: IndicShaper, // Tamil
38
+ tml2: IndicShaper, // Tamil
39
+ telu: IndicShaper, // Telugu
40
+ tel2: IndicShaper, // Telugu
41
+ khmr: IndicShaper, // Khmer
42
42
 
43
- thai: ThaiShaper, // Thai
44
- 'lao ': ThaiShaper, // Lao (4-char OT tag with trailing space)
43
+ thai: ThaiShaper, // Thai
44
+ 'lao ': ThaiShaper, // Lao (4-char OT tag with trailing space)
45
45
 
46
46
  bali: UniversalShaper, // Balinese
47
47
  batk: UniversalShaper, // Batak
@@ -89,8 +89,8 @@ const SHAPERS = {
89
89
  tfng: UniversalShaper, // Tifinagh
90
90
  tirh: UniversalShaper, // Tirhuta
91
91
 
92
- latn: DefaultShaper, // Latin
93
- DFLT: DefaultShaper // Default
92
+ latn: DefaultShaper, // Latin
93
+ DFLT: DefaultShaper // Default
94
94
  };
95
95
 
96
96
  export function choose(script) {
@@ -14,11 +14,11 @@ export const CATEGORIES = {
14
14
  A: 1 << 10,
15
15
  Placeholder: 1 << 11,
16
16
  Dotted_Circle: 1 << 12,
17
- RS: 1 << 13, // Register Shifter, used in Khmer OT spec.
17
+ RS: 1 << 13, // Register Shifter, used in Khmer OT spec.
18
18
  Coeng: 1 << 14, // Khmer-style Virama.
19
19
  Repha: 1 << 15, // Atomically-encoded logical or visual repha.
20
20
  Ra: 1 << 16,
21
- CM: 1 << 17, // Consonant-Medial.
21
+ CM: 1 << 17, // Consonant-Medial.
22
22
  Symbol: 1 << 18 // Avagraha, etc that take marks (SM,A,VD).
23
23
  };
24
24
 
@@ -1 +1 @@
1
- export default "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";
1
+ export default 'AAARAAAAAADwfAEA7d0LvCRVfeDx6q5+z71zHwMy+JqeEWQ0IKPrg/U1jYryiWhYNZ8lsu70wKL3E1EmxgeJxumBbOyoqxiJ70iPxHXQgfiIhihKDxNdTCBhGAigyd6+M6IEiCCzCRLiTn7/qjrdp6rr1d3VXU1yz/18P6ce513VXdXV1XU35AzjJJyK5+EV+BX8V2zDm3AR3oWdeB8+jI/jCnweV+Pr+DbauBG34E50cA8exM9h5A2jhHmsRxWbcTKejRfiZTgLr8PZOAdvwAV4M34T78al+AA+ik/jSuzBl/E1fAv78Vc4iB/iMO7DETwKs2AYFSzi8dhKGzcRPx3PwvPxQrwMZ+F1eD3Ow6/jbbgYDTRxGT6Gz+J/4xr8Ka7DX+Am3Ia/w2Hch5/hEWSKhlHGHI7DBpyEk/FsvBAvwyvxWpyL8/EmXARp+7uI34vfc+Y/RPwxfBZX4kv4Kr7prL+B+EbcgjvRwT14AEfwqMYs9VvjWHDi4zGHjc78k5z4JJyK52Gr4yX4ZbwyIWfjHNQdb8Rb8U68F7+HD+Ej+CR24yp8BX+Ob2E/vu+UdzNux9/jbtyLh/AwfoF82TBmcSzWo4rN2AIZW3Ea0y/AS/FKvBbn4nz8Ot6G38IuNHEZLsdn8MfYi6/hG/gOvoubcBvugrz+dCueZf/A/M/wCDIV9i/M4lg8CSfiFDwHL8IZeBV+FW/ABXgL3oHfwf/E/8Ll+DSuxJfwNXwL+/GXuNXxAxzC3fgxfop/wr8gu8ZeXiYuYQHH4AmOjdr003AKnoMX4Qy8Cr/qlPHfiP8HLsTb8R78Lj6IP8Cn0MIeXINv4Nv4bgTVD+VmZ9ltxD/0We91mDT34SE8gqNOe5XijGHMYB7rUdWchFPxXDwfNZyJsx3noI4l7IDsbxcT73Rcok17vR+X4RNoYQ+uwl78Kb6OP8P12A/1HnAj07fgTizjJ3gA/4RfONP5WfYxLOB4xxMgebyewvJVq1bF91So94+027Jq1apVq1atWrXqseMZeC5eOEVOxxk4C2fjnAhvwAWQa4dvIX4Hfsfxu/ggLodcC/kk8W58AX+Cr+KbuAF/iZtxO+7EMn6CB/DP+AXya/lciwUcj414Gk7F87AVr8Ar8Vqci/PxZlyEd+HdjkvxAejX11atWrVq1Xh9lPfdT+GP5D3buU6fls/ThjRdvWrVqkD6+fLXnfnriPfhe571f63Nnwh5ff8ty/4vfgz5nlrcy/RD2nyUh0n7ZL4flumjTr78HN+bYQHHo4rN0PM9g/nn4sV4OV6N1+JcnI83I+33n3+dtz1xge/w8Bn8HZ64yDwux20w1vH9FxpowziGeTTwZTyILceyDG/HXtyPkx/Hd4Jo4SbMHMdnC3wQN6HBNfQ2DL6Xq6EhsSxz4kNOrNvE91bnOc7HlfLdnCfNYZaZ7ANq/qVMX4r9MOn3SyGfAVqZZO13ynyU+AVsX5mWba+neQ/z0qbrnHjVqlWrVk3ev6b8HmzweSgtL+S4n3b9aX/+S9tvsv/9Ni6BzL+fWPkgLsdn8MfYi6/hW7ge+508ur9i2UHcgWX8BA/gYTwKkzFfg0Vn7B9PXMUJ2IwtOA2ybV6CX8bZeB3O9dle57MsyhvxVrzTJ/97WbYLv4+P4JPY7aS7ivgr+HMt3z6mv48DuAsruAcP4ueyP3PuKulKxHM4Do/HJjwdz8LznTTiJUyLM51lZxO/zjkXrmMJF2npw7zLJ91Olr0PH/JZ9zGWfRYtfAF/gj/Dt7Af38cB3IkOfoT78SB+DoPz8hJmoco8luknYSOehmfiebIer9DSKb/Cstfg9c6684jfiLf6pBXvZPm7camz/gPEH8bHcQW+gKvxdWf9t4m/G1CWuJl1t3rW/4D5Q7g3IN9DLP9n/H8U+CxSwSKOxwachFPxTERts/9Mmhfj5Xg1Xotf0/JtZ/oCvAXvwLtxaYxyrbEJSfdR1n0aV07Y5z1tupr5r+Pb+G5Ivptj9nlQt1Nu2n4wpr4N4hBtSMI/DNkX9Z3dKH5G3Y8gw7UAVW6e6QoW8Tg8GU/FM7Q0SXou5b4YL/eU/2rmxevwa9imrX8T0xf9B/cbYy7/t8a0vZO0izbKPdhBvujc4/37pLsMlw/gDx8D/f8j2qhciT2Qa3uTql+/L9/rWtohcduJ/w/x3+B2Z/6HxIcd9/m0+YiTTjzKtMm1SW+aNSxbxHF4Ek7EKXgO5vAinIFX4TU4ASrPWifP6zGDNzh5LsBb8A68B0vYgYuxE2/G+/BhfHxEV+BzTnwVvoxrffo5rdq09caQ9t7Cutvx9wP26W7S3/sYGIeHaKOfR5y2Z7h+XsY8xt2W9dRRxWatricyvSWk7tNYV8OZOBvnoO6kf1OMNl9EmrdDvU4vZrqBJuT1fxnxH0J+j/Rp5zuFLzjlXkP8DdzFe/R1xH/hU5/83kW+g5D4VuIfONOHiO91ph8i/hdnWveos8zkO4s1WMB6SJulrU9mWqWdY1qWqfkTmT/FWab3TU0/h3Uvgur7GU7aVxG/Bqr9r9fq+O/O9BuJL3Sm9bLfzrLf1vI+FqR9P964XOJsh7TbMQnvp69B606Ygval6Q9CxmYSPjUF7wfeNn1uwDGRfSjtPozii/T3qxrv+m+yLMh3pmD7jSrt+0nS9D22X+ohZ5Qwr1nvma9iszO9xYlPU+szOaOWhYkc8iigiBLKqEArT8pQ7GUnGGdOhN0XqVP6czbOseITjPpE2PVLv6X+LWlv+ikJJf7UfreeaTvOGUvW8hLbh4/JjNgO4outcSsZDSxZ207ikrGFZ180c3DS1528Vv6sLLfzX3aQ6QM4YqedZ4uc6WtzwPJB0tGuwPWyfDPtVKoeapk3jTd90HJh19+fX4/tttixmh80VvmjyhmkHjU+cfLb/fNfH1ZnbxsE96E3fuH9DKp/2HiQ/kfHQet6+0B0Pn3euyxunqA0cdsdt31+acQOn/bIMp2s/4SW33/auy8MFie3n/i3M2pMHstxkKD9KmhM4tfn9/48iFHzj0b26UnW14rEpboY5Dgux3c7lmUlZ53Eir7cPa3yuUl5Or0Oif3b219OzdGrK7jOQSxV9ySvhrqHLGv4LBctR9zlYdo+vGmi2t9x4qA8apkRsFzPo4+FzBtXETv6pgcf6wbvGw1eByqW/aLBdu3N26FhLZd0Ni7jW2m8QfLKfmGvs9Mo9vperOpoEo9KQth6vT6vZgKiyvGr192eoDa6t09Q3CJuDREHt2mLpw7/trZxoxMPQ/Kmqz6SthYPR8ZhGuIlo837gag7rHnjy4602zfOeNi8abd79FhCh+lJUKHDO0+HY4O/eurkuNXhmmGvvUuO9faC7Xu4Q9XDu+z0q/zT6en9+JVnlQWZ3kW8G/uwgswXWY7TsR27sNuxDyvIfAn0Z6PE3GV8OvF2Z1rVJdOSNypkuC41KZF102YxQKhmGn3kbKSa2aLhOptFtreaXrIxXqF2fcmo7sY+xtfKK+VLvdJOmefzTYrk/C5u2nrnS7wa9nIsQIPpFtqoMV+X5c6xgnPTKvuQ73joy7fvyVQztSxM5JBHAUWUUEYF2jZQnDY19qY+htPFGZuQfdLev332XbVtMrJPQC2XtO7tpuobYPvpbXReO0zXaO8wJNR4LdWkjN177TgNjEeN8bBiv2lFn/em0+eDYmu72UGvP/39bTT1qcX7WGw+x6Z4IdPg9QMTOeRRQBEllFGB0aCO1LEPBmI/tWLeN2xL4PN+l1xfsoOVlmOpaFHuWNAWF+rvW+a3PCCdCi36MiwJbdo2doyvokK7+54Z/71tHGEc7yFxyh1LX4LOcWIw5BjsPab6Tat5ZYVzyQznPBtFSP6AtnV4v+q5FjtS4tS/b68zL21RvO30a7dmRcpQ87x3O+eg6nzUnXeQ9sl2ss7TMx3ep2EihzwKKKKEMiogD58VeQ8ZdlyMrKDe7LU2CdayECoEzQ8qKq9ar4egNt2w11nm9Mci/dN0y9D6rM8fcsqICnpevzFxtdFVd8bI1rIwkUMeBRRRQhkVaPn5LJhdv2xkm3fgKA7iCBbAuiUnjaRlH9rU62eVem12e6uk8eMN3uVB+aJE5fXWFTRtzcv2tZZfq7H7199+9/LuOMj29aQLC0HtDQmZKtsXJnLIo4AiSiijAm3b6HXIfPzrCjXS2+ztW6OMKN50cfPFKStsfVDabl/YvvayazWqfz3+/XbSa9tXL3uY0Gtjr14C787Wn4kc8iigiBLKqIA8fH6U12VkHf19VPXViev0S9jzHHNCqBA0P6iovN66QtvE9rWXSX9UvyTu6bW312d9vu55/foFVXb/8qB2uurO1Nm6MJFDHgUUUUIZFZBnSfIfrGebB3AEy7gDRxHZThUa1N1w2iWxH3d69/I4adW0d5lfuqB6/JbH4Q0Nto1N+m1P+6+3l+vzDW37+5WtlxEzZBpsb5jIIY8CiiihjAqWd2WbHayA8vnM6YvPmnI89gkt+tuiXT0yvyOUnS94flCj5ldl9Poky6Qfit4/exvo673zrYjXcyt7tdHadLXvOPSnVet7dcn2bbF9YSKHPAooooQyKohoxzzlNCmnSTlNynFNs57vMKm7Tb1t+m2bd5YFkxA2P6hB8gelVaHN+7W9TPqi96vHLqO3zp5X61kesX31fMFpvG2V+nrbt832hYkc8iigiBLKqMBVxjChQ502Pvs5be5QVhhvmjh5xoLtYLHm7fbbVJ9sdvt6673zvTL63+PcdV570Uq2+XAn29xKfJj4LphM30bsSdurW7Znh+0JEznkUUARJZRRwTJldbCCg5R5AEewjDtw1K6H705Dto0VTPoprGmWJ0EPSZWplz1Iujjt0MNhn9esGiML20qx1qlYT+PDP2QMzqRhIoc8CiiihDIq8GnLYN+/SqjS13Tx+c41rXnp1Ta/8ef7/+Ay+f5M8p9PXp2r/PlMlXGGiRzyKKCIEsqoQNJa/EKN+oSa1pfpgpaPIqpOf3yWck1rLr3axnj3lvdeC8FtsL9fqF1JXp1ThhO4gmd9SpS/HPIooIgSyqggsL66hc8YXfMjUPm18s7nc49w1dGVqdN+mMghjwKKKKGMCg7UzebPsLDdbD4T/wW/gY/gKzggMet7derxpRJzN7TJnd/dmM95FjUG/iREpRmVN9T3X23UD4PtXDevcWIPWa+zltMfNf0UB/udtU3UvG8bfMoPYI9H/PTjYLfBd39y73cB69z5+/dj+X2brre8PzQYv+nBZ1cLn3ld/JZh/157HfuIpS//jkyD1ydM5JBHAUWUUEYFpOU7UV9x2+pdr7dVTy+8ZfgJKsuvrjjUOOptDqibfc9p3wDjp5ch+fmcj5bJfcxTQIKKvUFf3jK593pC5LusFsdJfdlNjHua2inrTAEJfsv8lvvlGzb/qPWPu3/DlDvu7WTVyXlBF+/ZEbIds2kihzwKKKKEMipYXjGbR7HhkNncim3YiStwPZbRYf0huN5LRu8Xn8VjCAw53sumQbc9vM/5cUI1dxp2TBnuhczx+S6Bsmo8RaBmxZNQxWbX7lBn+bRw7t0Qi/Vcex2OQYx8waHB+kH55+OcRfwo+rszPbTImwyuxwurfjVO0aFN3mRwvRiDhg55B+XNZ8/z3j1E/Uae/KmizRautXWn/cj6MHqasHIcd7OfWNPsJ11cc3HN8726tPHE3vUWg2/iYSKHPAooooQyKggabfI3yd8kf5P8TfI3yd8kf5P8TfI3yR/8vW6Vdgm1j6vpap7jgLOuh2tyXdbvNDJV2g8TOeRRQBEllFFBSP28L08NrkmmUG9Y8M+jtsGE2njBVYHtHNcxP26o0a602PVz/bSLe3lc+pf3t19P683vOOMqo8Z7Ru2C/vfjWt597lnjdQruwLTu8pEruDnIXwFFlFBGBUadfiRBhbB1cUKD9GkaV3sCQqbBdoKJHPIooIgSyqjYadzv4Q22uzBS1qJvY8M+32Kfb/EasPX2/xb7uWiTLn3cD0DberE/CW3OE9zpw/O403k56xmnMCq0L9iTabMvwUQOeRRQRAllVBC4v46Yn/bKNgvSClynQvc3lDq5l92Pvp7f5EvoMF5u3B/ANpyY73IvglWntx2qLSr2cpbffV1o+d7t1WF7wUQOeRRQRAllVEBersUE4hpHHOxrHV6vVhwkRjmuUGD/tXDsLNC/VEjdqh16e7TlP74OfAborrfyZgzusoWJHPIooIgSyqggsO7qtPgev6ehv1X6ZpNpRc2rdWA8RFSoFvhcoalRV7o43wrFeVgoLR1jpoea1T8XfiVj3Ykt37LnrDM09g/+iiihjAo85XTbm6mTHyZyyKOAIkooowKjTvrJ4Ck5vvjOE3Ge8RIWJv0dlbdOgz6Eigj6cUs+Z9d5XlbkscuznH+PYOcLwL8ccZF83mXddVZ5ap5yu23zP2dN7zl3bn7Ph5J9J87z6ZJmP+vLLV6awfvdHjLfpJ79N+5xdr0u/M4FfddfBe57kWU83y40X1J4Dl29Tr0W+xzcWs5z57ptk+eA8Jwfe2wn9RxNxU7n/5w13ZkR/POpEJSvt3489U9L+73P8PPG4+9/VP+i0n4iQvL53e3y9lfyyPMSZZ3EyqD5+/P5j0v/dg/LH2/79fL7bYe47bdDaQC9UmValKzndtlkukfOZeT56hfjMuvIL89n759Xz2FX6d34F1+4pVufm/1seD2fmta+m7Tq4dnuruX29DkOPa08d1/aJt+7essJI/lUmXHz2GPaz96CMWTkKZxybHNCnufWF1jGv8vm+xuD728Mvr8hjd0+xe7fZp6awTp5/r16Pv5A+SUMcxx2B/mtaLh5bVqe/x8nT3yjhe7xWp0/e4/j+rm1Wsa1JBfvMj29OtarZb7n86MEdV+p/D8Ce1rFsqw3L+8rMq/IvHtZyZp3l2XvL3o+pXc/q/0/Gtx12s+Y7c3bz0b35u/VL+t77fJ+TlHtUnn0duv7taL3T1F9scuRcx/iv+W1cSfuwq28dg7hNqZ/hP+HXMZo3k58LPEdrHsYx5WN5vOQldfeZqPN3d9t7vJo51FAESWUUcHy04z2DPEstm0y2p2NRrtOvEIcO3+V/PDmF9uZPkSszumKTrrzcJjlGflfGL3xcwf5HxL9etu0t23V2LrvZXYvC5r2E7Xeb98ahbv90k89HsZw7fLbX4PZ7ettG+86fZnf+rDlQcu8+0NQef77TnAdYWUH9Snu+IT1LWx5nPLjjk3Y/KiSLD/umI06dqO2Kx1Rr1917qTi4d4bZhxR71P+easIrnuyhn//TKbuSW//SfUhet/x24f0ef/9axBjD32fXVBECWVUsMy51gzxLNZiDvNYwCLW4RgclXOyhMvzPRdKgXzOS3oMrPPCQdvi3UeS7uug+2hS9Q3bDj39KP3yb0//+8Cg6bxpR+1v3O2Q3Plz/3vjjCPofTKs31GfK4KPy+6ygtrufW+OMuw4+21jv23gng4/rkQZpr1Jlaf3I06+Ycc3rKyw/SXqfSYoTZy8Qe8nYft1VLl6u/3S6sv06bjbMcnxH+c+GDSOg7YnbAzC0vTzfr6IFcc95ss1K1OuayEPv2vFy1zripvOt59pbV87r9+5tBqryX2O7P1fZf84qTY1Ckup8hvn/j6OGk/y83+adfvtq6O/pgY9ziVbbhJjEv+zctD7sN/xczxUGPf2ildPq8B9a1NCQqvAcxVSIiH6fx6H/a9iPb1fvrB7puy8w/7fweRiwX7hy5OW7ya7nGV+oSXPzeg50OK8oDs/wed3hD/bw36WiP89pb3lbe5hTVNYaHMfbTvGPaaB+bk/fRLPfwgLUfnHvV79z8a0eO9p6cX997v0T0eR+3i80978aj7qnMuvfLn3I+69Meq+oqA2Sj2D3J+jjBbu55x1EiZZV1Q7pmF8kgqDX19zh2M4+5thP+qR9rWId2TuL7S7361Fx6qOqHSnadNWviz1mMghjwKKKKGMirTjwto1xoXcO3wh9xFfWLvKuOn871js8qS9XlZ7lv+x0D6KDT+lDKdf3X6q88aZIsumkAoXNug7ZrjH0VKkHxbpy2nGycTTyB7nFtOK/zHxLLbJpEhI6llk2usvO8P1IeSQR+zX46T7Pur7R9IGDaPukzfxbKq0ELz7SQFFlFBGBcuzA+w/A5JrnvKd6IaK0dyKbdiJK3A9JM3jaMNxWI/j8Xg8AU/Ek/BkbFhrNKvEG7EJT8EJst+nOb4JjdGJ9OOpOAmbsZW+Pp34l3AyTsEzcCq24Jl4FraRbuT6Ty6mx359pduGqPG5n8+E0yBumFQ9QeEs3vOS1xpTucNx93dpasQJddo/Xlyl8sVvbdEgTbr4HaPVDmWk8jIN/oMXTOSQRwFFlFBGBd08SYc21wXt320PGnO9S66J8HuJHn4fHvdaiqTlXHv4+oeNpU447WgxplMg2yq2TeSQRwFFlFBGBRkYrZNos2Df8xMd5Hdn4yLXl6LYaUf/XWxSv7ON83vsoO8TossP7/OOhPsX9D1H2PcfUe23g195kw72eKnvY9T4ubV5Pdl4fXen8ROe26TP+6VJHM94skg9QqaXXDzhIPdlHMARuT8Dd+Co/fs/SSvkN3N9+bqhQ73p4nlDmshQ4hk8Fo5tqVD1x3QPz4QpyfcAUf2i76X5jMF/54SJHPIooAh+PFsro4Lg7Sn/0zoJgf+TWf6fs6Lm1bo9mSrth4kc8iigiBLKqMCoMpbjxbMWvJZ6rGeeMuY10iaHZwDFxjOD7ol+XpIearQ3qWt7g14HVKFO23t4fgz9Ts2N/G8aqw1Cb5dqm77cmWfM64zjoOzQytTZv2EihzwKKKKEMiro23aqnOD/DcLnBN91LgP8P5D+/BIajFv66K8v/neJxX8+TuivJ05bus9pzTTYvjCRQx4FFFFCGRVo9bFNddHbMELYfsA9eF0yr/7XS+//1bToU6o281lDxYL3Wtc6td4vn56XeNyhVz//A4ZtJ9rMx8f5GfuPTaaFlKHK4XOjheVyHhAzRN1vMer6YepW+aPWR382So79Gcn7vIr+dPIElF6eiBD0/zImZLD9b9zUPq3v39593bVvZ9q8f8JEDnnwTTfPi+X9E2VUEDj8YececUKbPEkZZ9nDtqFTujNV95Q6qRrguwXutwhdz70Tfcu4T2Ms36dwr0liZXHviCueNL9xG/p7n1HLCT8+DBY65PHyDXzWNXZfY8excM967LQaVVfQcn190HSEamI4Fo8giZBcXwan7qUcvZzR+jLuMHib+J/Qmd71xyVjz0jc9/J5qfvugq8jRj5DNID6/seuR+7JE+c44t5D2Guft71uqlzRWy6hP61+v2FQPUJ+Qy1p9d9Tq/LWu+qI2t7pv9ZUsJ+9dwzt7lnvma9iszO9xYlPU+szxxi1LEzkkEcBRZRQRgVaeVKGYi97Nt9tTILdF6lT+nM2zrHiZxv1ibDrl35L/RLbYztv/VWhpueNLVzbj0N+NRI37TipX7Pcwjl3WvQQlSbJ9XqwXz9Ctq/sY0vdZRLmmWfresiyQe511J+JqX6f54Qy7RnEMHnSKlsvb9Syhx2vpPKPa7z7QuBvQeL+Zv0oNmS5zxHbsBNX4HosoyO/ayeugi/fmnU00EJb1mOFNBnijTgd27ELu7FP1uOQ/I6eeBNegvNwCT6HG2Q9PF2I/N3nwYbRPoAsCth2Cc+CxHacB1m2vMte3iGWdSvEsj5o3SFIXlkn5Sqmh8rvtYG8UqZOyq86bfPS2yNp6U9THMIR8C7A9ezBZMjH2LjzDvc7XHfolZNWGPfviPup59VLqPI6nDQ91JhP2yiBsZzk+1J//bQ/Rdl6uVnA8vZyc9t55eD/QxrU5sboli8pt6PSdCSNX2ixfiyexndaHn6hTdo02HVzLwfTafKG6Dz8P/ly28TySrl9FB3E2u+sUOG+tFRxjXGMqhXeY1NUS4kTMvw3rSy4K4L/tyX/AVX+u1aF/7dV4f9tVWplyF/wexPbKEn95dcnyhsajFWaokKLNGkaJLQqce6nDg9t6pwWabY3qfEad+hQhx99fVi6pOh1eNvnml4zJhLWzGeNNZz7ruHcdw3nuGs4x13DeewaPj+v4fPxGv73CWnHh//zsGYpW6UNyCGPApY30hYYNdKlJSJka7QbOeQdBSyfTtvRwai7q1GnHUnRy/PrT532Y3k77UcHRoO0Y5BtUM8u6kEHJvM5uBrUWMMVXtJPgl9oUX+bdWnqjJknvHtlTfNAh+3grM8ybSKHPAooooQyKlgmz1FsOLSmuRXbsBNXQJXbYb3BfBU11NFAC210sEKaDPFGnI7t2IXd2CfrcYg0WeJNeAnOwyX4HG6Q9ThMGpP4KXgpzseluBL7ZT1+SLvvw6NYQ/on4JfwArwS5+LN0mZjhjGa4bOfIkGf9gZZfqGz/mSJJb/GShMyPy4qSJtuctroDffvzRozHA9mOB7McC1khmPCDMeEGY4JMxwTZvjtykzEe9oM51RRQkKVtk5YtjrT3LaJflVpW41lE5atMc6nM84w6iwLx/W/yDQjYh+p9+8f2foMxwfaup22ogPSc598gDihQX3TwN0m7gsP0CLtOKgxbvH6Qw55LO9mrNHBCvhPUxwXEuITsm3qRw55LO+jfnSwAqNDviSEhQ7jrBswZDv0ATnksbxCH9DBoGX1h1nanrYxhuosv/2cEsO1n2toUyIkZKuzfM6Z5XPOLMee2WaHeAVGje2bqlP4rZsmImRqs1yvm+V63SzX62a5XjfL9bpZrtfNcr1ulut1s1ytmw28XpetZvjsl+GzX4bPfhnGJNMsooQyKljemOGzYKa5YVOmuRXbsBNX4Hoso8N6g7iKGupooIW2rMcByjqIW3EIVgPq9HnCsvXZpokc8ihgefssx9TZ5obz2BeID7DMSh8VGqRJxFv4XZJgm3epebXOlm3Q3l20Fx2Qn2OjR1BoUde4xAntWX7/MMu9gVbMcXDipO4Y/pHfszOOQfqO2+xTyCGPAooooYwKlvexzbDhhtnmVmzDTlyB67GMDutXkGnzugZl8rsQXtegTH4XwusalMnvQoJf1/G2BX3s0FfbteDcYOKkXkW1RW8TpJ03S1s5H7E0tGnbIEHyd8Na9ttRBYeMsZavotfy+/S1/D59Lb9PX8vv09fy+/S1/D59Lb9PX8vv09cGb8fqM/j9tUJd6ZI2eF0bsBw/3WuRcagyDjCRQx4FFFFCGRWQjzsjXaReqaP7m9PQUCN9Yv56LzGfSS2h27kb6vTbxm+nyZMuaYOi2hWGdD/l99595fB50oW0jE0vX/f1l6mznWEihzwKKKKEMirQynWXT8gaJtdATK6BmFwDMbkfxOR+EJP7QUzuBzG5H8TkuojJdRGT+0FM7gcxuR/E5H4Qk/tBTO4HYT06rF9BrO2mQoP2JGH4svhtchfH+y5tGduowfjbyzne+7LPHVuUGUSt90sXlTfKYPmD37/brE8P5wGMeY/M+2BbtO33OW/ItHk9wEQOeRRQRAllVBDY/w7l2zgOOu+BHdoWppfXf35QUXm9dQWlqbc5hjNW9jK7P3rf9D7a5fjPd9j/9T4Fj53/McO/H566ON4GcZUVsT4yzNH+1NHvLtofykn3APu7vuxvZN5bLq9rt4wxx/nQHOdDc5wPzXE+NMf50BznQ3OcD81xPjTH+dCc83qQPCo+VerhXCB1nIt0cY7jS63T0+rpmWb8qoxZr1zOdWTMwkOmyvjBRA55FFBECWVUEFhAjTqmB8/06eJ6h6bXXj2Nno5pxrDGGNYYu/HxttndvjrL0sU5WxfnYqH0dMSMnz3NuVdX5D7o2h/r7I8wkUMeBRRRQhkVBBZQzbPfDyjJ0KC/04PzObZLL1bTPh7gHJB9X/KFbZ8G2wcmcsijgCJKKKOCRMdUDy3aNym9OrlfuOtah75MLfcsk2OaZ/xajB9M5JBHAUWUUEYFy7vn+J5ojv/rxGuoh2cQ0q50cd7axblqJNIxDm32rbY6/mqhM3dmynjOQHoyHfYHmMghjwKKKKGMCpZX2B+w4dAc92TMcU/GHPdkzHFPxlzzeixj4NdSR/bx+QgqRKUbCed7XRwLdd361TI9LR7kNWaVwb6lyppgqFJnlXbFI2nHiToYj/56OT/0bSfHvzAythGhRrk1yvLHOZVFXybpp0FQm8M4fWFcaoxPj5Snz9vSCHXakraw0GB9lLjpRsf5ENsziN2OoPXkZT+wy+H6mEfMkGnMcz41z/nUPOdT85xPzXM+Nc/51DznU/OcT81zPmWl4Z7Kee6pnG+SpkmaJmmapGmSpkkavsOb5zu8+eaGS+abW7ENO3EFrscyOqx3NaBFW22c8ySgVy7nP0Ow83IuFZpOX9+bjhPatDGIvj4q7Wg4L/Lhbqc9r69zpb+F8ymJ2QctTrlR+1ubfQkmcsijgCJKKKOCwAI61ONHXxeWLjlcX/Ow6+WamTMOvXWyjJhxUu0LGp8O4wMTOeRRQBEllFFB1DgPHxZoX2IYBwtjY+F9SQSHuUuyzYt2ZZsbMIeHG9nmA9jK9Kk4zPSy4y7cAZPlR4lvw0EccByBlGc0svw+PNR6j6j00YYJjSznPIzbNAgIZnWhnUMeBRRRQhmViHVBy7OIKtcvjZqPm09Pl30KMYLW6/M6Vb4i9ai6dH798fZBrdP7otLcikM4dmNv+g4cxO1OLA5oabduWmhvQ9BYWBuwyuvPa5AQcz8ZW6hR57Sw29OIFBbqlDMtJhEm8f9xwkKDfqaFkGkscC69wPn2AufbC5xvL3C+vcD59gLn2wucby9wvr3Qf3xv8DoVI48/7UhCt7wDnPt6DdDONmWl6pmcwwahH/24BurC871d7DQxQ6bN/gATOeRRQBEllFGBpF3et8D9dAvNQ/gRfox7cC/GNpbj3majhs4C11BTxXXU9GQ6C80sTOSQRwFFlFBGBcsrC80Z4lmsxRzmsYBFrMMxnrIon3sRNb5hkW04LfraxmcPax2fPaZFWLDaq+N/gQ3oZJwF9b+pJx1OZrzTNMn2DTU+nJ9Mw/9cHzaMWpb3/1VHhbMY5zR5Q51l08IvJFXOoOX10vN7Ut676rdiUY4Z8vlHN+kg52LjkET9E3rmX4PjDupttonDtb79nW4al75t5xb2vGz7mYLO8wVDnrU9tmcaeupLZ9sPHoZ4FuZ4MGZdY+6zFjI8GzHu8xNniGexFnPgzaa5gEWswzEYoglJ7icD7zdJPTvSrxxZJnFEE+R3spMgv2cdh3G0R8K465+W8fPrjwRVrwreab95ffmg/VFjHjX2g2ybJLZPUHlB/Y7T96g0g/YxidfPINvRuz+Msz//Hl5P42hnnHFPivzvkEmMVVg9j+V+jrNfg9TT3W847+J3LPwfFHDOwO9Y+D8o4NyD37EY/I6Fp6pi2tMZDT5/povz5amRVNvi9HmQ8VHTfKflMUrwa3vQ8rhGDa2n8n1YgKj1cQ1aV1DacYQW14bS5mrPs+hrEK6bB3FCprXI7ycW+f3EIr+fWOT3E4v8fmKR308s8vuJRX4/scjvJxat7+t8xmH0z9FtykkV46TJtBkPmMghjwKKKKGMCgL6st7oUGbanJDtLPLd1yLffS3yPdoi36Mt8j3aIt+jLfI92iLfoy3yndjbuJcvQKywjuPuVODYn4b/xDj5Oci9/uv6vq/KGOs47q/juL+O4/46jvvrOO6v47i/juP+Oo776zjur/PZv9ZxLBGjh8fi/xk6TBrTie9GPuCakLcfdHfpIPEBHLHn16t8Uq+UN8jYjfB/kpbijLmMo4yhjJmUK+2+Xb/Glfb/LtTrU9N62wZpT1h/vGV7g9+6oPzDtD9OeX75B9k2cfMkNbbDbm+/cY6qZ5z1DxKq/K9iMXxwX/OeGev19DjX2Cd+DT/B+pMqY7i89rYbqf5MifdmZGEihzwKKKKEMiqSjvdt4Ro9+d+QSVBtSro87z6RVPky9vp0HMP3ZRxhMq/3mWKv/8OEuGMbJk75w4Zh6kwy2HUN/r4RPWajj/vw22u8ZSc9VkFlT7r+OO3ym+8520f6+0Ga+6I+XtPQhlH2nST6kNhxYZzHnDGXH3e844xb2OvRnSZuGGacgvOH92m0+ocXHJI8NxguDN/2wcYv7fpHrSduGLze8bz/9perh0H2tTj74rj6kHTZo+4fUa/HUV+ro77u7y/sGJu06h8kDJMn6fanGUZseyWZvqdxX74K4feYj9uSsSdVo4Z7Sp1UBIR/Aw==';
@@ -1 +1 @@
1
- export default {"categories":["Cc","Zs","Po","Sc","Ps","Pe","Sm","Pd","Nd","Lu","Sk","Pc","Ll","So","Lo","Pi","Cf","No","Pf","Lt","Lm","Mn","Me","Mc","Nl","Zl","Zp","Cs","Co"],"combiningClasses":["Not_Reordered","Above","Above_Right","Below","Attached_Above_Right","Attached_Below","Overlay","Iota_Subscript","Double_Below","Double_Above","Below_Right","Above_Left","CCC10","CCC11","CCC12","CCC13","CCC14","CCC15","CCC16","CCC17","CCC18","CCC19","CCC20","CCC21","CCC22","CCC23","CCC24","CCC25","CCC30","CCC31","CCC32","CCC27","CCC28","CCC29","CCC33","CCC34","CCC35","CCC36","Nukta","Virama","CCC84","CCC91","CCC103","CCC107","CCC118","CCC122","CCC129","CCC130","CCC132","Attached_Above","Below_Left","Left","Kana_Voicing","CCC26","Right"],"scripts":["Common","Latin","Bopomofo","Inherited","Greek","Coptic","Cyrillic","Armenian","Hebrew","Arabic","Syriac","Thaana","Nko","Samaritan","Mandaic","Devanagari","Bengali","Gurmukhi","Gujarati","Oriya","Tamil","Telugu","Kannada","Malayalam","Sinhala","Thai","Lao","Tibetan","Myanmar","Georgian","Hangul","Ethiopic","Cherokee","Canadian_Aboriginal","Ogham","Runic","Tagalog","Hanunoo","Buhid","Tagbanwa","Khmer","Mongolian","Limbu","Tai_Le","New_Tai_Lue","Buginese","Tai_Tham","Balinese","Sundanese","Batak","Lepcha","Ol_Chiki","Braille","Glagolitic","Tifinagh","Han","Hiragana","Katakana","Yi","Lisu","Vai","Bamum","Syloti_Nagri","Phags_Pa","Saurashtra","Kayah_Li","Rejang","Javanese","Cham","Tai_Viet","Meetei_Mayek","null","Linear_B","Lycian","Carian","Old_Italic","Gothic","Old_Permic","Ugaritic","Old_Persian","Deseret","Shavian","Osmanya","Osage","Elbasan","Caucasian_Albanian","Linear_A","Cypriot","Imperial_Aramaic","Palmyrene","Nabataean","Hatran","Phoenician","Lydian","Meroitic_Hieroglyphs","Meroitic_Cursive","Kharoshthi","Old_South_Arabian","Old_North_Arabian","Manichaean","Avestan","Inscriptional_Parthian","Inscriptional_Pahlavi","Psalter_Pahlavi","Old_Turkic","Old_Hungarian","Hanifi_Rohingya","Old_Sogdian","Sogdian","Elymaic","Brahmi","Kaithi","Sora_Sompeng","Chakma","Mahajani","Sharada","Khojki","Multani","Khudawadi","Grantha","Newa","Tirhuta","Siddham","Modi","Takri","Ahom","Dogra","Warang_Citi","Nandinagari","Zanabazar_Square","Soyombo","Pau_Cin_Hau","Bhaiksuki","Marchen","Masaram_Gondi","Gunjala_Gondi","Makasar","Cuneiform","Egyptian_Hieroglyphs","Anatolian_Hieroglyphs","Mro","Bassa_Vah","Pahawh_Hmong","Medefaidrin","Miao","Tangut","Nushu","Duployan","SignWriting","Nyiakeng_Puachue_Hmong","Wancho","Mende_Kikakui","Adlam"],"eaw":["N","Na","A","W","H","F"]};
1
+ export default { categories: ['Cc', 'Zs', 'Po', 'Sc', 'Ps', 'Pe', 'Sm', 'Pd', 'Nd', 'Lu', 'Sk', 'Pc', 'Ll', 'So', 'Lo', 'Pi', 'Cf', 'No', 'Pf', 'Lt', 'Lm', 'Mn', 'Me', 'Mc', 'Nl', 'Zl', 'Zp', 'Cs', 'Co'], combiningClasses: ['Not_Reordered', 'Above', 'Above_Right', 'Below', 'Attached_Above_Right', 'Attached_Below', 'Overlay', 'Iota_Subscript', 'Double_Below', 'Double_Above', 'Below_Right', 'Above_Left', 'CCC10', 'CCC11', 'CCC12', 'CCC13', 'CCC14', 'CCC15', 'CCC16', 'CCC17', 'CCC18', 'CCC19', 'CCC20', 'CCC21', 'CCC22', 'CCC23', 'CCC24', 'CCC25', 'CCC30', 'CCC31', 'CCC32', 'CCC27', 'CCC28', 'CCC29', 'CCC33', 'CCC34', 'CCC35', 'CCC36', 'Nukta', 'Virama', 'CCC84', 'CCC91', 'CCC103', 'CCC107', 'CCC118', 'CCC122', 'CCC129', 'CCC130', 'CCC132', 'Attached_Above', 'Below_Left', 'Left', 'Kana_Voicing', 'CCC26', 'Right'], scripts: ['Common', 'Latin', 'Bopomofo', 'Inherited', 'Greek', 'Coptic', 'Cyrillic', 'Armenian', 'Hebrew', 'Arabic', 'Syriac', 'Thaana', 'Nko', 'Samaritan', 'Mandaic', 'Devanagari', 'Bengali', 'Gurmukhi', 'Gujarati', 'Oriya', 'Tamil', 'Telugu', 'Kannada', 'Malayalam', 'Sinhala', 'Thai', 'Lao', 'Tibetan', 'Myanmar', 'Georgian', 'Hangul', 'Ethiopic', 'Cherokee', 'Canadian_Aboriginal', 'Ogham', 'Runic', 'Tagalog', 'Hanunoo', 'Buhid', 'Tagbanwa', 'Khmer', 'Mongolian', 'Limbu', 'Tai_Le', 'New_Tai_Lue', 'Buginese', 'Tai_Tham', 'Balinese', 'Sundanese', 'Batak', 'Lepcha', 'Ol_Chiki', 'Braille', 'Glagolitic', 'Tifinagh', 'Han', 'Hiragana', 'Katakana', 'Yi', 'Lisu', 'Vai', 'Bamum', 'Syloti_Nagri', 'Phags_Pa', 'Saurashtra', 'Kayah_Li', 'Rejang', 'Javanese', 'Cham', 'Tai_Viet', 'Meetei_Mayek', 'null', 'Linear_B', 'Lycian', 'Carian', 'Old_Italic', 'Gothic', 'Old_Permic', 'Ugaritic', 'Old_Persian', 'Deseret', 'Shavian', 'Osmanya', 'Osage', 'Elbasan', 'Caucasian_Albanian', 'Linear_A', 'Cypriot', 'Imperial_Aramaic', 'Palmyrene', 'Nabataean', 'Hatran', 'Phoenician', 'Lydian', 'Meroitic_Hieroglyphs', 'Meroitic_Cursive', 'Kharoshthi', 'Old_South_Arabian', 'Old_North_Arabian', 'Manichaean', 'Avestan', 'Inscriptional_Parthian', 'Inscriptional_Pahlavi', 'Psalter_Pahlavi', 'Old_Turkic', 'Old_Hungarian', 'Hanifi_Rohingya', 'Old_Sogdian', 'Sogdian', 'Elymaic', 'Brahmi', 'Kaithi', 'Sora_Sompeng', 'Chakma', 'Mahajani', 'Sharada', 'Khojki', 'Multani', 'Khudawadi', 'Grantha', 'Newa', 'Tirhuta', 'Siddham', 'Modi', 'Takri', 'Ahom', 'Dogra', 'Warang_Citi', 'Nandinagari', 'Zanabazar_Square', 'Soyombo', 'Pau_Cin_Hau', 'Bhaiksuki', 'Marchen', 'Masaram_Gondi', 'Gunjala_Gondi', 'Makasar', 'Cuneiform', 'Egyptian_Hieroglyphs', 'Anatolian_Hieroglyphs', 'Mro', 'Bassa_Vah', 'Pahawh_Hmong', 'Medefaidrin', 'Miao', 'Tangut', 'Nushu', 'Duployan', 'SignWriting', 'Nyiakeng_Puachue_Hmong', 'Wancho', 'Mende_Kikakui', 'Adlam'], eaw: ['N', 'Na', 'A', 'W', 'H', 'F'] };