1 /***************************************************************************
2 * Copyright (c) 2024 Microsoft Corporation
3 *
4 * This program and the accompanying materials are made available under the
5 * terms of the MIT License which is available at
6 * https://opensource.org/licenses/MIT.
7 *
8 * SPDX-License-Identifier: MIT
9 **************************************************************************/
10
11
12 /**************************************************************************/
13 /**************************************************************************/
14 /** */
15 /** GUIX Component */
16 /** */
17 /** Utility (Utility) */
18 /** */
19 /**************************************************************************/
20 #define GX_SOURCE_CODE
21
22
23 /* Include necessary system files. */
24
25 #include "gx_api.h"
26 #include "gx_utility.h"
27
28 #if defined(GX_DYNAMIC_BIDI_TEXT_SUPPORT)
29 static GX_CONST GX_BIDI_CHARACTER_INFO _gx_bidi_character_types[] =
30 {
31 {0x0041, 0x005A, GX_BIDI_CHARACTER_TYPE_L},
32 {0x0061, 0x007A, GX_BIDI_CHARACTER_TYPE_L},
33 {0x00AA, 0x00AA, GX_BIDI_CHARACTER_TYPE_L},
34 {0x00B5, 0x00B5, GX_BIDI_CHARACTER_TYPE_L},
35 {0x00BA, 0x00BA, GX_BIDI_CHARACTER_TYPE_L},
36 {0x00C0, 0x00D6, GX_BIDI_CHARACTER_TYPE_L},
37 {0x00D8, 0x00F6, GX_BIDI_CHARACTER_TYPE_L},
38 {0x00F8, 0x01BA, GX_BIDI_CHARACTER_TYPE_L},
39 {0x01BB, 0x01BB, GX_BIDI_CHARACTER_TYPE_L},
40 {0x01BC, 0x01BF, GX_BIDI_CHARACTER_TYPE_L},
41 {0x01C0, 0x01C3, GX_BIDI_CHARACTER_TYPE_L},
42 {0x01C4, 0x0293, GX_BIDI_CHARACTER_TYPE_L},
43 {0x0294, 0x0294, GX_BIDI_CHARACTER_TYPE_L},
44 {0x0295, 0x02AF, GX_BIDI_CHARACTER_TYPE_L},
45 {0x02B0, 0x02B8, GX_BIDI_CHARACTER_TYPE_L},
46 {0x02BB, 0x02C1, GX_BIDI_CHARACTER_TYPE_L},
47 {0x02D0, 0x02D1, GX_BIDI_CHARACTER_TYPE_L},
48 {0x02E0, 0x02E4, GX_BIDI_CHARACTER_TYPE_L},
49 {0x02EE, 0x02EE, GX_BIDI_CHARACTER_TYPE_L},
50 {0x0370, 0x0373, GX_BIDI_CHARACTER_TYPE_L},
51 {0x0376, 0x0377, GX_BIDI_CHARACTER_TYPE_L},
52 {0x037A, 0x037A, GX_BIDI_CHARACTER_TYPE_L},
53 {0x037B, 0x037D, GX_BIDI_CHARACTER_TYPE_L},
54 {0x0386, 0x0386, GX_BIDI_CHARACTER_TYPE_L},
55 {0x0388, 0x038A, GX_BIDI_CHARACTER_TYPE_L},
56 {0x038C, 0x038C, GX_BIDI_CHARACTER_TYPE_L},
57 {0x038E, 0x03A1, GX_BIDI_CHARACTER_TYPE_L},
58 {0x03A3, 0x03F5, GX_BIDI_CHARACTER_TYPE_L},
59 {0x03F7, 0x0481, GX_BIDI_CHARACTER_TYPE_L},
60 {0x0482, 0x0482, GX_BIDI_CHARACTER_TYPE_L},
61 {0x048A, 0x0523, GX_BIDI_CHARACTER_TYPE_L},
62 {0x0531, 0x0556, GX_BIDI_CHARACTER_TYPE_L},
63 {0x0559, 0x0559, GX_BIDI_CHARACTER_TYPE_L},
64 {0x055A, 0x055F, GX_BIDI_CHARACTER_TYPE_L},
65 {0x0561, 0x0587, GX_BIDI_CHARACTER_TYPE_L},
66 {0x0589, 0x0589, GX_BIDI_CHARACTER_TYPE_L},
67 {0x0903, 0x0903, GX_BIDI_CHARACTER_TYPE_L},
68 {0x0904, 0x0939, GX_BIDI_CHARACTER_TYPE_L},
69 {0x093D, 0x093D, GX_BIDI_CHARACTER_TYPE_L},
70 {0x093E, 0x0940, GX_BIDI_CHARACTER_TYPE_L},
71 {0x0949, 0x094C, GX_BIDI_CHARACTER_TYPE_L},
72 {0x0950, 0x0950, GX_BIDI_CHARACTER_TYPE_L},
73 {0x0958, 0x0961, GX_BIDI_CHARACTER_TYPE_L},
74 {0x0964, 0x0965, GX_BIDI_CHARACTER_TYPE_L},
75 {0x0966, 0x096F, GX_BIDI_CHARACTER_TYPE_L},
76 {0x0970, 0x0970, GX_BIDI_CHARACTER_TYPE_L},
77 {0x0971, 0x0971, GX_BIDI_CHARACTER_TYPE_L},
78 {0x0972, 0x0972, GX_BIDI_CHARACTER_TYPE_L},
79 {0x097B, 0x097F, GX_BIDI_CHARACTER_TYPE_L},
80 {0x0982, 0x0983, GX_BIDI_CHARACTER_TYPE_L},
81 {0x0985, 0x098C, GX_BIDI_CHARACTER_TYPE_L},
82 {0x098F, 0x0990, GX_BIDI_CHARACTER_TYPE_L},
83 {0x0993, 0x09A8, GX_BIDI_CHARACTER_TYPE_L},
84 {0x09AA, 0x09B0, GX_BIDI_CHARACTER_TYPE_L},
85 {0x09B2, 0x09B2, GX_BIDI_CHARACTER_TYPE_L},
86 {0x09B6, 0x09B9, GX_BIDI_CHARACTER_TYPE_L},
87 {0x09BD, 0x09BD, GX_BIDI_CHARACTER_TYPE_L},
88 {0x09BE, 0x09C0, GX_BIDI_CHARACTER_TYPE_L},
89 {0x09C7, 0x09C8, GX_BIDI_CHARACTER_TYPE_L},
90 {0x09CB, 0x09CC, GX_BIDI_CHARACTER_TYPE_L},
91 {0x09CE, 0x09CE, GX_BIDI_CHARACTER_TYPE_L},
92 {0x09D7, 0x09D7, GX_BIDI_CHARACTER_TYPE_L},
93 {0x09DC, 0x09DD, GX_BIDI_CHARACTER_TYPE_L},
94 {0x09DF, 0x09E1, GX_BIDI_CHARACTER_TYPE_L},
95 {0x09E6, 0x09EF, GX_BIDI_CHARACTER_TYPE_L},
96 {0x09F0, 0x09F1, GX_BIDI_CHARACTER_TYPE_L},
97 {0x09F4, 0x09F9, GX_BIDI_CHARACTER_TYPE_L},
98 {0x09FA, 0x09FA, GX_BIDI_CHARACTER_TYPE_L},
99 {0x0A03, 0x0A03, GX_BIDI_CHARACTER_TYPE_L},
100 {0x0A05, 0x0A0A, GX_BIDI_CHARACTER_TYPE_L},
101 {0x0A0F, 0x0A10, GX_BIDI_CHARACTER_TYPE_L},
102 {0x0A13, 0x0A28, GX_BIDI_CHARACTER_TYPE_L},
103 {0x0A2A, 0x0A30, GX_BIDI_CHARACTER_TYPE_L},
104 {0x0A32, 0x0A33, GX_BIDI_CHARACTER_TYPE_L},
105 {0x0A35, 0x0A36, GX_BIDI_CHARACTER_TYPE_L},
106 {0x0A38, 0x0A39, GX_BIDI_CHARACTER_TYPE_L},
107 {0x0A3E, 0x0A40, GX_BIDI_CHARACTER_TYPE_L},
108 {0x0A59, 0x0A5C, GX_BIDI_CHARACTER_TYPE_L},
109 {0x0A5E, 0x0A5E, GX_BIDI_CHARACTER_TYPE_L},
110 {0x0A66, 0x0A6F, GX_BIDI_CHARACTER_TYPE_L},
111 {0x0A72, 0x0A74, GX_BIDI_CHARACTER_TYPE_L},
112 {0x0A83, 0x0A83, GX_BIDI_CHARACTER_TYPE_L},
113 {0x0A85, 0x0A8D, GX_BIDI_CHARACTER_TYPE_L},
114 {0x0A8F, 0x0A91, GX_BIDI_CHARACTER_TYPE_L},
115 {0x0A93, 0x0AA8, GX_BIDI_CHARACTER_TYPE_L},
116 {0x0AAA, 0x0AB0, GX_BIDI_CHARACTER_TYPE_L},
117 {0x0AB2, 0x0AB3, GX_BIDI_CHARACTER_TYPE_L},
118 {0x0AB5, 0x0AB9, GX_BIDI_CHARACTER_TYPE_L},
119 {0x0ABD, 0x0ABD, GX_BIDI_CHARACTER_TYPE_L},
120 {0x0ABE, 0x0AC0, GX_BIDI_CHARACTER_TYPE_L},
121 {0x0AC9, 0x0AC9, GX_BIDI_CHARACTER_TYPE_L},
122 {0x0ACB, 0x0ACC, GX_BIDI_CHARACTER_TYPE_L},
123 {0x0AD0, 0x0AD0, GX_BIDI_CHARACTER_TYPE_L},
124 {0x0AE0, 0x0AE1, GX_BIDI_CHARACTER_TYPE_L},
125 {0x0AE6, 0x0AEF, GX_BIDI_CHARACTER_TYPE_L},
126 {0x0B02, 0x0B03, GX_BIDI_CHARACTER_TYPE_L},
127 {0x0B05, 0x0B0C, GX_BIDI_CHARACTER_TYPE_L},
128 {0x0B0F, 0x0B10, GX_BIDI_CHARACTER_TYPE_L},
129 {0x0B13, 0x0B28, GX_BIDI_CHARACTER_TYPE_L},
130 {0x0B2A, 0x0B30, GX_BIDI_CHARACTER_TYPE_L},
131 {0x0B32, 0x0B33, GX_BIDI_CHARACTER_TYPE_L},
132 {0x0B35, 0x0B39, GX_BIDI_CHARACTER_TYPE_L},
133 {0x0B3D, 0x0B3D, GX_BIDI_CHARACTER_TYPE_L},
134 {0x0B3E, 0x0B3E, GX_BIDI_CHARACTER_TYPE_L},
135 {0x0B40, 0x0B40, GX_BIDI_CHARACTER_TYPE_L},
136 {0x0B47, 0x0B48, GX_BIDI_CHARACTER_TYPE_L},
137 {0x0B4B, 0x0B4C, GX_BIDI_CHARACTER_TYPE_L},
138 {0x0B57, 0x0B57, GX_BIDI_CHARACTER_TYPE_L},
139 {0x0B5C, 0x0B5D, GX_BIDI_CHARACTER_TYPE_L},
140 {0x0B5F, 0x0B61, GX_BIDI_CHARACTER_TYPE_L},
141 {0x0B66, 0x0B6F, GX_BIDI_CHARACTER_TYPE_L},
142 {0x0B70, 0x0B70, GX_BIDI_CHARACTER_TYPE_L},
143 {0x0B71, 0x0B71, GX_BIDI_CHARACTER_TYPE_L},
144 {0x0B83, 0x0B83, GX_BIDI_CHARACTER_TYPE_L},
145 {0x0B85, 0x0B8A, GX_BIDI_CHARACTER_TYPE_L},
146 {0x0B8E, 0x0B90, GX_BIDI_CHARACTER_TYPE_L},
147 {0x0B92, 0x0B95, GX_BIDI_CHARACTER_TYPE_L},
148 {0x0B99, 0x0B9A, GX_BIDI_CHARACTER_TYPE_L},
149 {0x0B9C, 0x0B9C, GX_BIDI_CHARACTER_TYPE_L},
150 {0x0B9E, 0x0B9F, GX_BIDI_CHARACTER_TYPE_L},
151 {0x0BA3, 0x0BA4, GX_BIDI_CHARACTER_TYPE_L},
152 {0x0BA8, 0x0BAA, GX_BIDI_CHARACTER_TYPE_L},
153 {0x0BAE, 0x0BB9, GX_BIDI_CHARACTER_TYPE_L},
154 {0x0BBE, 0x0BBF, GX_BIDI_CHARACTER_TYPE_L},
155 {0x0BC1, 0x0BC2, GX_BIDI_CHARACTER_TYPE_L},
156 {0x0BC6, 0x0BC8, GX_BIDI_CHARACTER_TYPE_L},
157 {0x0BCA, 0x0BCC, GX_BIDI_CHARACTER_TYPE_L},
158 {0x0BD0, 0x0BD0, GX_BIDI_CHARACTER_TYPE_L},
159 {0x0BD7, 0x0BD7, GX_BIDI_CHARACTER_TYPE_L},
160 {0x0BE6, 0x0BEF, GX_BIDI_CHARACTER_TYPE_L},
161 {0x0BF0, 0x0BF2, GX_BIDI_CHARACTER_TYPE_L},
162 {0x0C01, 0x0C03, GX_BIDI_CHARACTER_TYPE_L},
163 {0x0C05, 0x0C0C, GX_BIDI_CHARACTER_TYPE_L},
164 {0x0C0E, 0x0C10, GX_BIDI_CHARACTER_TYPE_L},
165 {0x0C12, 0x0C28, GX_BIDI_CHARACTER_TYPE_L},
166 {0x0C2A, 0x0C33, GX_BIDI_CHARACTER_TYPE_L},
167 {0x0C35, 0x0C39, GX_BIDI_CHARACTER_TYPE_L},
168 {0x0C3D, 0x0C3D, GX_BIDI_CHARACTER_TYPE_L},
169 {0x0C41, 0x0C44, GX_BIDI_CHARACTER_TYPE_L},
170 {0x0C58, 0x0C59, GX_BIDI_CHARACTER_TYPE_L},
171 {0x0C60, 0x0C61, GX_BIDI_CHARACTER_TYPE_L},
172 {0x0C66, 0x0C6F, GX_BIDI_CHARACTER_TYPE_L},
173 {0x0C7F, 0x0C7F, GX_BIDI_CHARACTER_TYPE_L},
174 {0x0C82, 0x0C83, GX_BIDI_CHARACTER_TYPE_L},
175 {0x0C85, 0x0C8C, GX_BIDI_CHARACTER_TYPE_L},
176 {0x0C8E, 0x0C90, GX_BIDI_CHARACTER_TYPE_L},
177 {0x0C92, 0x0CA8, GX_BIDI_CHARACTER_TYPE_L},
178 {0x0CAA, 0x0CB3, GX_BIDI_CHARACTER_TYPE_L},
179 {0x0CB5, 0x0CB9, GX_BIDI_CHARACTER_TYPE_L},
180 {0x0CBD, 0x0CBD, GX_BIDI_CHARACTER_TYPE_L},
181 {0x0CBE, 0x0CBE, GX_BIDI_CHARACTER_TYPE_L},
182 {0x0CBF, 0x0CBF, GX_BIDI_CHARACTER_TYPE_L},
183 {0x0CC0, 0x0CC4, GX_BIDI_CHARACTER_TYPE_L},
184 {0x0CC6, 0x0CC6, GX_BIDI_CHARACTER_TYPE_L},
185 {0x0CC7, 0x0CC8, GX_BIDI_CHARACTER_TYPE_L},
186 {0x0CCA, 0x0CCB, GX_BIDI_CHARACTER_TYPE_L},
187 {0x0CD5, 0x0CD6, GX_BIDI_CHARACTER_TYPE_L},
188 {0x0CDE, 0x0CDE, GX_BIDI_CHARACTER_TYPE_L},
189 {0x0CE0, 0x0CE1, GX_BIDI_CHARACTER_TYPE_L},
190 {0x0CE6, 0x0CEF, GX_BIDI_CHARACTER_TYPE_L},
191 {0x0D02, 0x0D03, GX_BIDI_CHARACTER_TYPE_L},
192 {0x0D05, 0x0D0C, GX_BIDI_CHARACTER_TYPE_L},
193 {0x0D0E, 0x0D10, GX_BIDI_CHARACTER_TYPE_L},
194 {0x0D12, 0x0D28, GX_BIDI_CHARACTER_TYPE_L},
195 {0x0D2A, 0x0D39, GX_BIDI_CHARACTER_TYPE_L},
196 {0x0D3D, 0x0D3D, GX_BIDI_CHARACTER_TYPE_L},
197 {0x0D3E, 0x0D40, GX_BIDI_CHARACTER_TYPE_L},
198 {0x0D46, 0x0D48, GX_BIDI_CHARACTER_TYPE_L},
199 {0x0D4A, 0x0D4C, GX_BIDI_CHARACTER_TYPE_L},
200 {0x0D57, 0x0D57, GX_BIDI_CHARACTER_TYPE_L},
201 {0x0D60, 0x0D61, GX_BIDI_CHARACTER_TYPE_L},
202 {0x0D66, 0x0D6F, GX_BIDI_CHARACTER_TYPE_L},
203 {0x0D70, 0x0D75, GX_BIDI_CHARACTER_TYPE_L},
204 {0x0D79, 0x0D79, GX_BIDI_CHARACTER_TYPE_L},
205 {0x0D7A, 0x0D7F, GX_BIDI_CHARACTER_TYPE_L},
206 {0x0D82, 0x0D83, GX_BIDI_CHARACTER_TYPE_L},
207 {0x0D85, 0x0D96, GX_BIDI_CHARACTER_TYPE_L},
208 {0x0D9A, 0x0DB1, GX_BIDI_CHARACTER_TYPE_L},
209 {0x0DB3, 0x0DBB, GX_BIDI_CHARACTER_TYPE_L},
210 {0x0DBD, 0x0DBD, GX_BIDI_CHARACTER_TYPE_L},
211 {0x0DC0, 0x0DC6, GX_BIDI_CHARACTER_TYPE_L},
212 {0x0DCF, 0x0DD1, GX_BIDI_CHARACTER_TYPE_L},
213 {0x0DD8, 0x0DDF, GX_BIDI_CHARACTER_TYPE_L},
214 {0x0DF2, 0x0DF3, GX_BIDI_CHARACTER_TYPE_L},
215 {0x0DF4, 0x0DF4, GX_BIDI_CHARACTER_TYPE_L},
216 {0x0E01, 0x0E30, GX_BIDI_CHARACTER_TYPE_L},
217 {0x0E32, 0x0E33, GX_BIDI_CHARACTER_TYPE_L},
218 {0x0E40, 0x0E45, GX_BIDI_CHARACTER_TYPE_L},
219 {0x0E46, 0x0E46, GX_BIDI_CHARACTER_TYPE_L},
220 {0x0E4F, 0x0E4F, GX_BIDI_CHARACTER_TYPE_L},
221 {0x0E50, 0x0E59, GX_BIDI_CHARACTER_TYPE_L},
222 {0x0E5A, 0x0E5B, GX_BIDI_CHARACTER_TYPE_L},
223 {0x0E81, 0x0E82, GX_BIDI_CHARACTER_TYPE_L},
224 {0x0E84, 0x0E84, GX_BIDI_CHARACTER_TYPE_L},
225 {0x0E87, 0x0E88, GX_BIDI_CHARACTER_TYPE_L},
226 {0x0E8A, 0x0E8A, GX_BIDI_CHARACTER_TYPE_L},
227 {0x0E8D, 0x0E8D, GX_BIDI_CHARACTER_TYPE_L},
228 {0x0E94, 0x0E97, GX_BIDI_CHARACTER_TYPE_L},
229 {0x0E99, 0x0E9F, GX_BIDI_CHARACTER_TYPE_L},
230 {0x0EA1, 0x0EA3, GX_BIDI_CHARACTER_TYPE_L},
231 {0x0EA5, 0x0EA5, GX_BIDI_CHARACTER_TYPE_L},
232 {0x0EA7, 0x0EA7, GX_BIDI_CHARACTER_TYPE_L},
233 {0x0EAA, 0x0EAB, GX_BIDI_CHARACTER_TYPE_L},
234 {0x0EAD, 0x0EB0, GX_BIDI_CHARACTER_TYPE_L},
235 {0x0EB2, 0x0EB3, GX_BIDI_CHARACTER_TYPE_L},
236 {0x0EBD, 0x0EBD, GX_BIDI_CHARACTER_TYPE_L},
237 {0x0EC0, 0x0EC4, GX_BIDI_CHARACTER_TYPE_L},
238 {0x0EC6, 0x0EC6, GX_BIDI_CHARACTER_TYPE_L},
239 {0x0ED0, 0x0ED9, GX_BIDI_CHARACTER_TYPE_L},
240 {0x0EDC, 0x0EDD, GX_BIDI_CHARACTER_TYPE_L},
241 {0x0F00, 0x0F00, GX_BIDI_CHARACTER_TYPE_L},
242 {0x0F01, 0x0F03, GX_BIDI_CHARACTER_TYPE_L},
243 {0x0F04, 0x0F12, GX_BIDI_CHARACTER_TYPE_L},
244 {0x0F13, 0x0F17, GX_BIDI_CHARACTER_TYPE_L},
245 {0x0F1A, 0x0F1F, GX_BIDI_CHARACTER_TYPE_L},
246 {0x0F20, 0x0F29, GX_BIDI_CHARACTER_TYPE_L},
247 {0x0F2A, 0x0F33, GX_BIDI_CHARACTER_TYPE_L},
248 {0x0F34, 0x0F34, GX_BIDI_CHARACTER_TYPE_L},
249 {0x0F36, 0x0F36, GX_BIDI_CHARACTER_TYPE_L},
250 {0x0F38, 0x0F38, GX_BIDI_CHARACTER_TYPE_L},
251 {0x0F3E, 0x0F3F, GX_BIDI_CHARACTER_TYPE_L},
252 {0x0F40, 0x0F47, GX_BIDI_CHARACTER_TYPE_L},
253 {0x0F49, 0x0F6C, GX_BIDI_CHARACTER_TYPE_L},
254 {0x0F7F, 0x0F7F, GX_BIDI_CHARACTER_TYPE_L},
255 {0x0F85, 0x0F85, GX_BIDI_CHARACTER_TYPE_L},
256 {0x0F88, 0x0F8B, GX_BIDI_CHARACTER_TYPE_L},
257 {0x0FBE, 0x0FC5, GX_BIDI_CHARACTER_TYPE_L},
258 {0x0FC7, 0x0FCC, GX_BIDI_CHARACTER_TYPE_L},
259 {0x0FCE, 0x0FCF, GX_BIDI_CHARACTER_TYPE_L},
260 {0x0FD0, 0x0FD4, GX_BIDI_CHARACTER_TYPE_L},
261 {0x1000, 0x102A, GX_BIDI_CHARACTER_TYPE_L},
262 {0x102B, 0x102C, GX_BIDI_CHARACTER_TYPE_L},
263 {0x1031, 0x1031, GX_BIDI_CHARACTER_TYPE_L},
264 {0x1038, 0x1038, GX_BIDI_CHARACTER_TYPE_L},
265 {0x103B, 0x103C, GX_BIDI_CHARACTER_TYPE_L},
266 {0x103F, 0x103F, GX_BIDI_CHARACTER_TYPE_L},
267 {0x1040, 0x1049, GX_BIDI_CHARACTER_TYPE_L},
268 {0x104A, 0x104F, GX_BIDI_CHARACTER_TYPE_L},
269 {0x1050, 0x1055, GX_BIDI_CHARACTER_TYPE_L},
270 {0x1056, 0x1057, GX_BIDI_CHARACTER_TYPE_L},
271 {0x105A, 0x105D, GX_BIDI_CHARACTER_TYPE_L},
272 {0x1061, 0x1061, GX_BIDI_CHARACTER_TYPE_L},
273 {0x1062, 0x1064, GX_BIDI_CHARACTER_TYPE_L},
274 {0x1065, 0x1066, GX_BIDI_CHARACTER_TYPE_L},
275 {0x1067, 0x106D, GX_BIDI_CHARACTER_TYPE_L},
276 {0x106E, 0x1070, GX_BIDI_CHARACTER_TYPE_L},
277 {0x1075, 0x1081, GX_BIDI_CHARACTER_TYPE_L},
278 {0x1083, 0x1084, GX_BIDI_CHARACTER_TYPE_L},
279 {0x1087, 0x108C, GX_BIDI_CHARACTER_TYPE_L},
280 {0x108E, 0x108E, GX_BIDI_CHARACTER_TYPE_L},
281 {0x108F, 0x108F, GX_BIDI_CHARACTER_TYPE_L},
282 {0x1090, 0x1099, GX_BIDI_CHARACTER_TYPE_L},
283 {0x109E, 0x109F, GX_BIDI_CHARACTER_TYPE_L},
284 {0x10A0, 0x10C5, GX_BIDI_CHARACTER_TYPE_L},
285 {0x10D0, 0x10FA, GX_BIDI_CHARACTER_TYPE_L},
286 {0x10FB, 0x10FB, GX_BIDI_CHARACTER_TYPE_L},
287 {0x10FC, 0x10FC, GX_BIDI_CHARACTER_TYPE_L},
288 {0x1100, 0x1159, GX_BIDI_CHARACTER_TYPE_L},
289 {0x115F, 0x11A2, GX_BIDI_CHARACTER_TYPE_L},
290 {0x11A8, 0x11F9, GX_BIDI_CHARACTER_TYPE_L},
291 {0x1200, 0x1248, GX_BIDI_CHARACTER_TYPE_L},
292 {0x124A, 0x124D, GX_BIDI_CHARACTER_TYPE_L},
293 {0x1250, 0x1256, GX_BIDI_CHARACTER_TYPE_L},
294 {0x1258, 0x1258, GX_BIDI_CHARACTER_TYPE_L},
295 {0x125A, 0x125D, GX_BIDI_CHARACTER_TYPE_L},
296 {0x1260, 0x1288, GX_BIDI_CHARACTER_TYPE_L},
297 {0x128A, 0x128D, GX_BIDI_CHARACTER_TYPE_L},
298 {0x1290, 0x12B0, GX_BIDI_CHARACTER_TYPE_L},
299 {0x12B2, 0x12B5, GX_BIDI_CHARACTER_TYPE_L},
300 {0x12B8, 0x12BE, GX_BIDI_CHARACTER_TYPE_L},
301 {0x12C0, 0x12C0, GX_BIDI_CHARACTER_TYPE_L},
302 {0x12C2, 0x12C5, GX_BIDI_CHARACTER_TYPE_L},
303 {0x12C8, 0x12D6, GX_BIDI_CHARACTER_TYPE_L},
304 {0x12D8, 0x1310, GX_BIDI_CHARACTER_TYPE_L},
305 {0x1312, 0x1315, GX_BIDI_CHARACTER_TYPE_L},
306 {0x1318, 0x135A, GX_BIDI_CHARACTER_TYPE_L},
307 {0x1360, 0x1360, GX_BIDI_CHARACTER_TYPE_L},
308 {0x1361, 0x1368, GX_BIDI_CHARACTER_TYPE_L},
309 {0x1369, 0x137C, GX_BIDI_CHARACTER_TYPE_L},
310 {0x1380, 0x138F, GX_BIDI_CHARACTER_TYPE_L},
311 {0x13A0, 0x13F4, GX_BIDI_CHARACTER_TYPE_L},
312 {0x1401, 0x166C, GX_BIDI_CHARACTER_TYPE_L},
313 {0x166D, 0x166E, GX_BIDI_CHARACTER_TYPE_L},
314 {0x166F, 0x1676, GX_BIDI_CHARACTER_TYPE_L},
315 {0x1681, 0x169A, GX_BIDI_CHARACTER_TYPE_L},
316 {0x16A0, 0x16EA, GX_BIDI_CHARACTER_TYPE_L},
317 {0x16EB, 0x16ED, GX_BIDI_CHARACTER_TYPE_L},
318 {0x16EE, 0x16F0, GX_BIDI_CHARACTER_TYPE_L},
319 {0x1700, 0x170C, GX_BIDI_CHARACTER_TYPE_L},
320 {0x170E, 0x1711, GX_BIDI_CHARACTER_TYPE_L},
321 {0x1720, 0x1731, GX_BIDI_CHARACTER_TYPE_L},
322 {0x1735, 0x1736, GX_BIDI_CHARACTER_TYPE_L},
323 {0x1740, 0x1751, GX_BIDI_CHARACTER_TYPE_L},
324 {0x1760, 0x176C, GX_BIDI_CHARACTER_TYPE_L},
325 {0x176E, 0x1770, GX_BIDI_CHARACTER_TYPE_L},
326 {0x1780, 0x17B3, GX_BIDI_CHARACTER_TYPE_L},
327 {0x17B4, 0x17B5, GX_BIDI_CHARACTER_TYPE_L},
328 {0x17B6, 0x17B6, GX_BIDI_CHARACTER_TYPE_L},
329 {0x17BE, 0x17C5, GX_BIDI_CHARACTER_TYPE_L},
330 {0x17C7, 0x17C8, GX_BIDI_CHARACTER_TYPE_L},
331 {0x17D4, 0x17D6, GX_BIDI_CHARACTER_TYPE_L},
332 {0x17D7, 0x17D7, GX_BIDI_CHARACTER_TYPE_L},
333 {0x17D8, 0x17DA, GX_BIDI_CHARACTER_TYPE_L},
334 {0x17DC, 0x17DC, GX_BIDI_CHARACTER_TYPE_L},
335 {0x17E0, 0x17E9, GX_BIDI_CHARACTER_TYPE_L},
336 {0x1810, 0x1819, GX_BIDI_CHARACTER_TYPE_L},
337 {0x1820, 0x1842, GX_BIDI_CHARACTER_TYPE_L},
338 {0x1843, 0x1843, GX_BIDI_CHARACTER_TYPE_L},
339 {0x1844, 0x1877, GX_BIDI_CHARACTER_TYPE_L},
340 {0x1880, 0x18A8, GX_BIDI_CHARACTER_TYPE_L},
341 {0x18AA, 0x18AA, GX_BIDI_CHARACTER_TYPE_L},
342 {0x1900, 0x191C, GX_BIDI_CHARACTER_TYPE_L},
343 {0x1923, 0x1926, GX_BIDI_CHARACTER_TYPE_L},
344 {0x1929, 0x192B, GX_BIDI_CHARACTER_TYPE_L},
345 {0x1930, 0x1931, GX_BIDI_CHARACTER_TYPE_L},
346 {0x1933, 0x1938, GX_BIDI_CHARACTER_TYPE_L},
347 {0x1946, 0x194F, GX_BIDI_CHARACTER_TYPE_L},
348 {0x1950, 0x196D, GX_BIDI_CHARACTER_TYPE_L},
349 {0x1970, 0x1974, GX_BIDI_CHARACTER_TYPE_L},
350 {0x1980, 0x19A9, GX_BIDI_CHARACTER_TYPE_L},
351 {0x19B0, 0x19C0, GX_BIDI_CHARACTER_TYPE_L},
352 {0x19C1, 0x19C7, GX_BIDI_CHARACTER_TYPE_L},
353 {0x19C8, 0x19C9, GX_BIDI_CHARACTER_TYPE_L},
354 {0x19D0, 0x19D9, GX_BIDI_CHARACTER_TYPE_L},
355 {0x1A00, 0x1A16, GX_BIDI_CHARACTER_TYPE_L},
356 {0x1A19, 0x1A1B, GX_BIDI_CHARACTER_TYPE_L},
357 {0x1A1E, 0x1A1F, GX_BIDI_CHARACTER_TYPE_L},
358 {0x1B04, 0x1B04, GX_BIDI_CHARACTER_TYPE_L},
359 {0x1B05, 0x1B33, GX_BIDI_CHARACTER_TYPE_L},
360 {0x1B35, 0x1B35, GX_BIDI_CHARACTER_TYPE_L},
361 {0x1B3B, 0x1B3B, GX_BIDI_CHARACTER_TYPE_L},
362 {0x1B3D, 0x1B41, GX_BIDI_CHARACTER_TYPE_L},
363 {0x1B43, 0x1B44, GX_BIDI_CHARACTER_TYPE_L},
364 {0x1B45, 0x1B4B, GX_BIDI_CHARACTER_TYPE_L},
365 {0x1B50, 0x1B59, GX_BIDI_CHARACTER_TYPE_L},
366 {0x1B5A, 0x1B60, GX_BIDI_CHARACTER_TYPE_L},
367 {0x1B61, 0x1B6A, GX_BIDI_CHARACTER_TYPE_L},
368 {0x1B74, 0x1B7C, GX_BIDI_CHARACTER_TYPE_L},
369 {0x1B82, 0x1B82, GX_BIDI_CHARACTER_TYPE_L},
370 {0x1B83, 0x1BA0, GX_BIDI_CHARACTER_TYPE_L},
371 {0x1BA1, 0x1BA1, GX_BIDI_CHARACTER_TYPE_L},
372 {0x1BA6, 0x1BA7, GX_BIDI_CHARACTER_TYPE_L},
373 {0x1BAA, 0x1BAA, GX_BIDI_CHARACTER_TYPE_L},
374 {0x1BAE, 0x1BAF, GX_BIDI_CHARACTER_TYPE_L},
375 {0x1BB0, 0x1BB9, GX_BIDI_CHARACTER_TYPE_L},
376 {0x1C00, 0x1C23, GX_BIDI_CHARACTER_TYPE_L},
377 {0x1C24, 0x1C2B, GX_BIDI_CHARACTER_TYPE_L},
378 {0x1C34, 0x1C35, GX_BIDI_CHARACTER_TYPE_L},
379 {0x1C3B, 0x1C3F, GX_BIDI_CHARACTER_TYPE_L},
380 {0x1C40, 0x1C49, GX_BIDI_CHARACTER_TYPE_L},
381 {0x1C4D, 0x1C4F, GX_BIDI_CHARACTER_TYPE_L},
382 {0x1C50, 0x1C59, GX_BIDI_CHARACTER_TYPE_L},
383 {0x1C5A, 0x1C77, GX_BIDI_CHARACTER_TYPE_L},
384 {0x1C78, 0x1C7D, GX_BIDI_CHARACTER_TYPE_L},
385 {0x1C7E, 0x1C7F, GX_BIDI_CHARACTER_TYPE_L},
386 {0x1D00, 0x1D2B, GX_BIDI_CHARACTER_TYPE_L},
387 {0x1D2C, 0x1D61, GX_BIDI_CHARACTER_TYPE_L},
388 {0x1D62, 0x1D77, GX_BIDI_CHARACTER_TYPE_L},
389 {0x1D78, 0x1D78, GX_BIDI_CHARACTER_TYPE_L},
390 {0x1D79, 0x1D9A, GX_BIDI_CHARACTER_TYPE_L},
391 {0x1D9B, 0x1DBF, GX_BIDI_CHARACTER_TYPE_L},
392 {0x1E00, 0x1F15, GX_BIDI_CHARACTER_TYPE_L},
393 {0x1F18, 0x1F1D, GX_BIDI_CHARACTER_TYPE_L},
394 {0x1F20, 0x1F45, GX_BIDI_CHARACTER_TYPE_L},
395 {0x1F48, 0x1F4D, GX_BIDI_CHARACTER_TYPE_L},
396 {0x1F50, 0x1F57, GX_BIDI_CHARACTER_TYPE_L},
397 {0x1F59, 0x1F59, GX_BIDI_CHARACTER_TYPE_L},
398 {0x1F5B, 0x1F5B, GX_BIDI_CHARACTER_TYPE_L},
399 {0x1F5D, 0x1F5D, GX_BIDI_CHARACTER_TYPE_L},
400 {0x1F5F, 0x1F7D, GX_BIDI_CHARACTER_TYPE_L},
401 {0x1F80, 0x1FB4, GX_BIDI_CHARACTER_TYPE_L},
402 {0x1FB6, 0x1FBC, GX_BIDI_CHARACTER_TYPE_L},
403 {0x1FBE, 0x1FBE, GX_BIDI_CHARACTER_TYPE_L},
404 {0x1FC2, 0x1FC4, GX_BIDI_CHARACTER_TYPE_L},
405 {0x1FC6, 0x1FCC, GX_BIDI_CHARACTER_TYPE_L},
406 {0x1FD0, 0x1FD3, GX_BIDI_CHARACTER_TYPE_L},
407 {0x1FD6, 0x1FDB, GX_BIDI_CHARACTER_TYPE_L},
408 {0x1FE0, 0x1FEC, GX_BIDI_CHARACTER_TYPE_L},
409 {0x1FF2, 0x1FF4, GX_BIDI_CHARACTER_TYPE_L},
410 {0x1FF6, 0x1FFC, GX_BIDI_CHARACTER_TYPE_L},
411 {0x200E, 0x200E, GX_BIDI_CHARACTER_TYPE_L},
412 {0x2071, 0x2071, GX_BIDI_CHARACTER_TYPE_L},
413 {0x207F, 0x207F, GX_BIDI_CHARACTER_TYPE_L},
414 {0x2090, 0x2094, GX_BIDI_CHARACTER_TYPE_L},
415 {0x2102, 0x2102, GX_BIDI_CHARACTER_TYPE_L},
416 {0x2107, 0x2107, GX_BIDI_CHARACTER_TYPE_L},
417 {0x210A, 0x2113, GX_BIDI_CHARACTER_TYPE_L},
418 {0x2115, 0x2115, GX_BIDI_CHARACTER_TYPE_L},
419 {0x2119, 0x211D, GX_BIDI_CHARACTER_TYPE_L},
420 {0x2124, 0x2124, GX_BIDI_CHARACTER_TYPE_L},
421 {0x2126, 0x2126, GX_BIDI_CHARACTER_TYPE_L},
422 {0x2128, 0x2128, GX_BIDI_CHARACTER_TYPE_L},
423 {0x212A, 0x212D, GX_BIDI_CHARACTER_TYPE_L},
424 {0x212F, 0x2134, GX_BIDI_CHARACTER_TYPE_L},
425 {0x2135, 0x2138, GX_BIDI_CHARACTER_TYPE_L},
426 {0x2139, 0x2139, GX_BIDI_CHARACTER_TYPE_L},
427 {0x213C, 0x213F, GX_BIDI_CHARACTER_TYPE_L},
428 {0x2145, 0x2149, GX_BIDI_CHARACTER_TYPE_L},
429 {0x214E, 0x214E, GX_BIDI_CHARACTER_TYPE_L},
430 {0x214F, 0x214F, GX_BIDI_CHARACTER_TYPE_L},
431 {0x2160, 0x2182, GX_BIDI_CHARACTER_TYPE_L},
432 {0x2183, 0x2184, GX_BIDI_CHARACTER_TYPE_L},
433 {0x2185, 0x2188, GX_BIDI_CHARACTER_TYPE_L},
434 {0x2336, 0x237A, GX_BIDI_CHARACTER_TYPE_L},
435 {0x2395, 0x2395, GX_BIDI_CHARACTER_TYPE_L},
436 {0x249C, 0x24E9, GX_BIDI_CHARACTER_TYPE_L},
437 {0x26AC, 0x26AC, GX_BIDI_CHARACTER_TYPE_L},
438 {0x2800, 0x28FF, GX_BIDI_CHARACTER_TYPE_L},
439 {0x2C00, 0x2C2E, GX_BIDI_CHARACTER_TYPE_L},
440 {0x2C30, 0x2C5E, GX_BIDI_CHARACTER_TYPE_L},
441 {0x2C60, 0x2C6F, GX_BIDI_CHARACTER_TYPE_L},
442 {0x2C71, 0x2C7C, GX_BIDI_CHARACTER_TYPE_L},
443 {0x2C7D, 0x2C7D, GX_BIDI_CHARACTER_TYPE_L},
444 {0x2C80, 0x2CE4, GX_BIDI_CHARACTER_TYPE_L},
445 {0x2D00, 0x2D25, GX_BIDI_CHARACTER_TYPE_L},
446 {0x2D30, 0x2D65, GX_BIDI_CHARACTER_TYPE_L},
447 {0x2D6F, 0x2D6F, GX_BIDI_CHARACTER_TYPE_L},
448 {0x2D80, 0x2D96, GX_BIDI_CHARACTER_TYPE_L},
449 {0x2DA0, 0x2DA6, GX_BIDI_CHARACTER_TYPE_L},
450 {0x2DA8, 0x2DAE, GX_BIDI_CHARACTER_TYPE_L},
451 {0x2DB0, 0x2DB6, GX_BIDI_CHARACTER_TYPE_L},
452 {0x2DB8, 0x2DBE, GX_BIDI_CHARACTER_TYPE_L},
453 {0x2DC0, 0x2DC6, GX_BIDI_CHARACTER_TYPE_L},
454 {0x2DC8, 0x2DCE, GX_BIDI_CHARACTER_TYPE_L},
455 {0x2DD0, 0x2DD6, GX_BIDI_CHARACTER_TYPE_L},
456 {0x2DD8, 0x2DDE, GX_BIDI_CHARACTER_TYPE_L},
457 {0x3005, 0x3005, GX_BIDI_CHARACTER_TYPE_L},
458 {0x3006, 0x3006, GX_BIDI_CHARACTER_TYPE_L},
459 {0x3007, 0x3007, GX_BIDI_CHARACTER_TYPE_L},
460 {0x3021, 0x3029, GX_BIDI_CHARACTER_TYPE_L},
461 {0x3031, 0x3035, GX_BIDI_CHARACTER_TYPE_L},
462 {0x3038, 0x303A, GX_BIDI_CHARACTER_TYPE_L},
463 {0x303B, 0x303B, GX_BIDI_CHARACTER_TYPE_L},
464 {0x303C, 0x303C, GX_BIDI_CHARACTER_TYPE_L},
465 {0x3041, 0x3096, GX_BIDI_CHARACTER_TYPE_L},
466 {0x309D, 0x309E, GX_BIDI_CHARACTER_TYPE_L},
467 {0x309F, 0x309F, GX_BIDI_CHARACTER_TYPE_L},
468 {0x30A1, 0x30FA, GX_BIDI_CHARACTER_TYPE_L},
469 {0x30FC, 0x30FE, GX_BIDI_CHARACTER_TYPE_L},
470 {0x30FF, 0x30FF, GX_BIDI_CHARACTER_TYPE_L},
471 {0x3105, 0x312D, GX_BIDI_CHARACTER_TYPE_L},
472 {0x3131, 0x318E, GX_BIDI_CHARACTER_TYPE_L},
473 {0x3190, 0x3191, GX_BIDI_CHARACTER_TYPE_L},
474 {0x3192, 0x3195, GX_BIDI_CHARACTER_TYPE_L},
475 {0x3196, 0x319F, GX_BIDI_CHARACTER_TYPE_L},
476 {0x31A0, 0x31B7, GX_BIDI_CHARACTER_TYPE_L},
477 {0x31F0, 0x31FF, GX_BIDI_CHARACTER_TYPE_L},
478 {0x3200, 0x321C, GX_BIDI_CHARACTER_TYPE_L},
479 {0x3220, 0x3229, GX_BIDI_CHARACTER_TYPE_L},
480 {0x322A, 0x3243, GX_BIDI_CHARACTER_TYPE_L},
481 {0x3260, 0x327B, GX_BIDI_CHARACTER_TYPE_L},
482 {0x327F, 0x327F, GX_BIDI_CHARACTER_TYPE_L},
483 {0x3280, 0x3289, GX_BIDI_CHARACTER_TYPE_L},
484 {0x328A, 0x32B0, GX_BIDI_CHARACTER_TYPE_L},
485 {0x32C0, 0x32CB, GX_BIDI_CHARACTER_TYPE_L},
486 {0x32D0, 0x32FE, GX_BIDI_CHARACTER_TYPE_L},
487 {0x3300, 0x3376, GX_BIDI_CHARACTER_TYPE_L},
488 {0x337B, 0x33DD, GX_BIDI_CHARACTER_TYPE_L},
489 {0x33E0, 0x33FE, GX_BIDI_CHARACTER_TYPE_L},
490 {0x3400, 0x4DB5, GX_BIDI_CHARACTER_TYPE_L},
491 {0x4E00, 0x9FC3, GX_BIDI_CHARACTER_TYPE_L},
492 {0xA000, 0xA014, GX_BIDI_CHARACTER_TYPE_L},
493 {0xA015, 0xA015, GX_BIDI_CHARACTER_TYPE_L},
494 {0xA016, 0xA48C, GX_BIDI_CHARACTER_TYPE_L},
495 {0xA500, 0xA60B, GX_BIDI_CHARACTER_TYPE_L},
496 {0xA60C, 0xA60C, GX_BIDI_CHARACTER_TYPE_L},
497 {0xA610, 0xA61F, GX_BIDI_CHARACTER_TYPE_L},
498 {0xA620, 0xA629, GX_BIDI_CHARACTER_TYPE_L},
499 {0xA62A, 0xA62B, GX_BIDI_CHARACTER_TYPE_L},
500 {0xA640, 0xA65F, GX_BIDI_CHARACTER_TYPE_L},
501 {0xA662, 0xA66D, GX_BIDI_CHARACTER_TYPE_L},
502 {0xA66E, 0xA66E, GX_BIDI_CHARACTER_TYPE_L},
503 {0xA680, 0xA697, GX_BIDI_CHARACTER_TYPE_L},
504 {0xA722, 0xA76F, GX_BIDI_CHARACTER_TYPE_L},
505 {0xA770, 0xA770, GX_BIDI_CHARACTER_TYPE_L},
506 {0xA771, 0xA787, GX_BIDI_CHARACTER_TYPE_L},
507 {0xA789, 0xA78A, GX_BIDI_CHARACTER_TYPE_L},
508 {0xA78B, 0xA78C, GX_BIDI_CHARACTER_TYPE_L},
509 {0xA7FB, 0xA801, GX_BIDI_CHARACTER_TYPE_L},
510 {0xA803, 0xA805, GX_BIDI_CHARACTER_TYPE_L},
511 {0xA807, 0xA80A, GX_BIDI_CHARACTER_TYPE_L},
512 {0xA80C, 0xA822, GX_BIDI_CHARACTER_TYPE_L},
513 {0xA823, 0xA824, GX_BIDI_CHARACTER_TYPE_L},
514 {0xA827, 0xA827, GX_BIDI_CHARACTER_TYPE_L},
515 {0xA840, 0xA873, GX_BIDI_CHARACTER_TYPE_L},
516 {0xA880, 0xA881, GX_BIDI_CHARACTER_TYPE_L},
517 {0xA882, 0xA8B3, GX_BIDI_CHARACTER_TYPE_L},
518 {0xA8B4, 0xA8C3, GX_BIDI_CHARACTER_TYPE_L},
519 {0xA8CE, 0xA8CF, GX_BIDI_CHARACTER_TYPE_L},
520 {0xA8D0, 0xA8D9, GX_BIDI_CHARACTER_TYPE_L},
521 {0xA900, 0xA909, GX_BIDI_CHARACTER_TYPE_L},
522 {0xA90A, 0xA925, GX_BIDI_CHARACTER_TYPE_L},
523 {0xA92E, 0xA92F, GX_BIDI_CHARACTER_TYPE_L},
524 {0xA930, 0xA946, GX_BIDI_CHARACTER_TYPE_L},
525 {0xA952, 0xA953, GX_BIDI_CHARACTER_TYPE_L},
526 {0xA95F, 0xA95F, GX_BIDI_CHARACTER_TYPE_L},
527 {0xAA00, 0xAA28, GX_BIDI_CHARACTER_TYPE_L},
528 {0xAA2F, 0xAA30, GX_BIDI_CHARACTER_TYPE_L},
529 {0xAA33, 0xAA34, GX_BIDI_CHARACTER_TYPE_L},
530 {0xAA40, 0xAA42, GX_BIDI_CHARACTER_TYPE_L},
531 {0xAA44, 0xAA4B, GX_BIDI_CHARACTER_TYPE_L},
532 {0xAA4D, 0xAA4D, GX_BIDI_CHARACTER_TYPE_L},
533 {0xAA50, 0xAA59, GX_BIDI_CHARACTER_TYPE_L},
534 {0xAA5C, 0xAA5F, GX_BIDI_CHARACTER_TYPE_L},
535 {0xAC00, 0xD7A3, GX_BIDI_CHARACTER_TYPE_L},
536 {0xE000, 0xF8FF, GX_BIDI_CHARACTER_TYPE_L},
537 {0xF900, 0xFA2D, GX_BIDI_CHARACTER_TYPE_L},
538 {0xFA30, 0xFA6A, GX_BIDI_CHARACTER_TYPE_L},
539 {0xFA70, 0xFAD9, GX_BIDI_CHARACTER_TYPE_L},
540 {0xFB00, 0xFB06, GX_BIDI_CHARACTER_TYPE_L},
541 {0xFB13, 0xFB17, GX_BIDI_CHARACTER_TYPE_L},
542 {0xFF21, 0xFF3A, GX_BIDI_CHARACTER_TYPE_L},
543 {0xFF41, 0xFF5A, GX_BIDI_CHARACTER_TYPE_L},
544 {0xFF66, 0xFF6F, GX_BIDI_CHARACTER_TYPE_L},
545 {0xFF70, 0xFF70, GX_BIDI_CHARACTER_TYPE_L},
546 {0xFF71, 0xFF9D, GX_BIDI_CHARACTER_TYPE_L},
547 {0xFF9E, 0xFF9F, GX_BIDI_CHARACTER_TYPE_L},
548 {0xFFA0, 0xFFBE, GX_BIDI_CHARACTER_TYPE_L},
549 {0xFFC2, 0xFFC7, GX_BIDI_CHARACTER_TYPE_L},
550 {0xFFCA, 0xFFCF, GX_BIDI_CHARACTER_TYPE_L},
551 {0xFFD2, 0xFFD7, GX_BIDI_CHARACTER_TYPE_L},
552 {0xFFDA, 0xFFDC, GX_BIDI_CHARACTER_TYPE_L},
553 {0x10000, 0x1000B, GX_BIDI_CHARACTER_TYPE_L},
554 {0x1000D, 0x10026, GX_BIDI_CHARACTER_TYPE_L},
555 {0x10028, 0x1003A, GX_BIDI_CHARACTER_TYPE_L},
556 {0x1003C, 0x1003D, GX_BIDI_CHARACTER_TYPE_L},
557 {0x1003F, 0x1004D, GX_BIDI_CHARACTER_TYPE_L},
558 {0x10050, 0x1005D, GX_BIDI_CHARACTER_TYPE_L},
559 {0x10080, 0x100FA, GX_BIDI_CHARACTER_TYPE_L},
560 {0x10100, 0x10100, GX_BIDI_CHARACTER_TYPE_L},
561 {0x10102, 0x10102, GX_BIDI_CHARACTER_TYPE_L},
562 {0x10107, 0x10133, GX_BIDI_CHARACTER_TYPE_L},
563 {0x10137, 0x1013F, GX_BIDI_CHARACTER_TYPE_L},
564 {0x101D0, 0x101FC, GX_BIDI_CHARACTER_TYPE_L},
565 {0x10280, 0x1029C, GX_BIDI_CHARACTER_TYPE_L},
566 {0x102A0, 0x102D0, GX_BIDI_CHARACTER_TYPE_L},
567 {0x10300, 0x1031E, GX_BIDI_CHARACTER_TYPE_L},
568 {0x10320, 0x10323, GX_BIDI_CHARACTER_TYPE_L},
569 {0x10330, 0x10340, GX_BIDI_CHARACTER_TYPE_L},
570 {0x10341, 0x10341, GX_BIDI_CHARACTER_TYPE_L},
571 {0x10342, 0x10349, GX_BIDI_CHARACTER_TYPE_L},
572 {0x1034A, 0x1034A, GX_BIDI_CHARACTER_TYPE_L},
573 {0x10380, 0x1039D, GX_BIDI_CHARACTER_TYPE_L},
574 {0x1039F, 0x1039F, GX_BIDI_CHARACTER_TYPE_L},
575 {0x103A0, 0x103C3, GX_BIDI_CHARACTER_TYPE_L},
576 {0x103C8, 0x103CF, GX_BIDI_CHARACTER_TYPE_L},
577 {0x103D0, 0x103D0, GX_BIDI_CHARACTER_TYPE_L},
578 {0x103D1, 0x103D5, GX_BIDI_CHARACTER_TYPE_L},
579 {0x10400, 0x1044F, GX_BIDI_CHARACTER_TYPE_L},
580 {0x10450, 0x1049D, GX_BIDI_CHARACTER_TYPE_L},
581 {0x104A0, 0x104A9, GX_BIDI_CHARACTER_TYPE_L},
582 {0x12000, 0x1236E, GX_BIDI_CHARACTER_TYPE_L},
583 {0x12400, 0x12462, GX_BIDI_CHARACTER_TYPE_L},
584 {0x12470, 0x12473, GX_BIDI_CHARACTER_TYPE_L},
585 {0x1D000, 0x1D0F5, GX_BIDI_CHARACTER_TYPE_L},
586 {0x1D100, 0x1D126, GX_BIDI_CHARACTER_TYPE_L},
587 {0x1D129, 0x1D164, GX_BIDI_CHARACTER_TYPE_L},
588 {0x1D165, 0x1D166, GX_BIDI_CHARACTER_TYPE_L},
589 {0x1D16A, 0x1D16C, GX_BIDI_CHARACTER_TYPE_L},
590 {0x1D16D, 0x1D172, GX_BIDI_CHARACTER_TYPE_L},
591 {0x1D183, 0x1D184, GX_BIDI_CHARACTER_TYPE_L},
592 {0x1D18C, 0x1D1A9, GX_BIDI_CHARACTER_TYPE_L},
593 {0x1D1AE, 0x1D1DD, GX_BIDI_CHARACTER_TYPE_L},
594 {0x1D360, 0x1D371, GX_BIDI_CHARACTER_TYPE_L},
595 {0x1D400, 0x1D454, GX_BIDI_CHARACTER_TYPE_L},
596 {0x1D456, 0x1D49C, GX_BIDI_CHARACTER_TYPE_L},
597 {0x1D49E, 0x1D49F, GX_BIDI_CHARACTER_TYPE_L},
598 {0x1D4A2, 0x1D4A2, GX_BIDI_CHARACTER_TYPE_L},
599 {0x1D4A5, 0x1D4A6, GX_BIDI_CHARACTER_TYPE_L},
600 {0x1D4A9, 0x1D4AC, GX_BIDI_CHARACTER_TYPE_L},
601 {0x1D4AE, 0x1D4B9, GX_BIDI_CHARACTER_TYPE_L},
602 {0x1D4BB, 0x1D4BB, GX_BIDI_CHARACTER_TYPE_L},
603 {0x1D4BD, 0x1D4C3, GX_BIDI_CHARACTER_TYPE_L},
604 {0x1D4C5, 0x1D505, GX_BIDI_CHARACTER_TYPE_L},
605 {0x1D507, 0x1D50A, GX_BIDI_CHARACTER_TYPE_L},
606 {0x1D50D, 0x1D514, GX_BIDI_CHARACTER_TYPE_L},
607 {0x1D516, 0x1D51C, GX_BIDI_CHARACTER_TYPE_L},
608 {0x1D51E, 0x1D539, GX_BIDI_CHARACTER_TYPE_L},
609 {0x1D53B, 0x1D53E, GX_BIDI_CHARACTER_TYPE_L},
610 {0x1D540, 0x1D544, GX_BIDI_CHARACTER_TYPE_L},
611 {0x1D546, 0x1D546, GX_BIDI_CHARACTER_TYPE_L},
612 {0x1D54A, 0x1D550, GX_BIDI_CHARACTER_TYPE_L},
613 {0x1D552, 0x1D6A5, GX_BIDI_CHARACTER_TYPE_L},
614 {0x1D6A8, 0x1D6C0, GX_BIDI_CHARACTER_TYPE_L},
615 {0x1D6C1, 0x1D6C1, GX_BIDI_CHARACTER_TYPE_L},
616 {0x1D6C2, 0x1D6DA, GX_BIDI_CHARACTER_TYPE_L},
617 {0x1D6DB, 0x1D6DB, GX_BIDI_CHARACTER_TYPE_L},
618 {0x1D6DC, 0x1D6FA, GX_BIDI_CHARACTER_TYPE_L},
619 {0x1D6FB, 0x1D6FB, GX_BIDI_CHARACTER_TYPE_L},
620 {0x1D6FC, 0x1D714, GX_BIDI_CHARACTER_TYPE_L},
621 {0x1D715, 0x1D715, GX_BIDI_CHARACTER_TYPE_L},
622 {0x1D716, 0x1D734, GX_BIDI_CHARACTER_TYPE_L},
623 {0x1D735, 0x1D735, GX_BIDI_CHARACTER_TYPE_L},
624 {0x1D736, 0x1D74E, GX_BIDI_CHARACTER_TYPE_L},
625 {0x1D74F, 0x1D74F, GX_BIDI_CHARACTER_TYPE_L},
626 {0x1D750, 0x1D76E, GX_BIDI_CHARACTER_TYPE_L},
627 {0x1D76F, 0x1D76F, GX_BIDI_CHARACTER_TYPE_L},
628 {0x1D770, 0x1D788, GX_BIDI_CHARACTER_TYPE_L},
629 {0x1D789, 0x1D789, GX_BIDI_CHARACTER_TYPE_L},
630 {0x1D78A, 0x1D7A8, GX_BIDI_CHARACTER_TYPE_L},
631 {0x1D7A9, 0x1D7A9, GX_BIDI_CHARACTER_TYPE_L},
632 {0x1D7AA, 0x1D7C2, GX_BIDI_CHARACTER_TYPE_L},
633 {0x1D7C3, 0x1D7C3, GX_BIDI_CHARACTER_TYPE_L},
634 {0x1D7C4, 0x1D7CB, GX_BIDI_CHARACTER_TYPE_L},
635 {0x20000, 0x2A6D6, GX_BIDI_CHARACTER_TYPE_L},
636 {0x2F800, 0x2FA1D, GX_BIDI_CHARACTER_TYPE_L},
637 {0xF0000, 0xFFFFD, GX_BIDI_CHARACTER_TYPE_L},
638 {0x100000, 0x10FFFD, GX_BIDI_CHARACTER_TYPE_L},
639 {0x0590, 0x0590, GX_BIDI_CHARACTER_TYPE_R},
640 {0x05BE, 0x05BE, GX_BIDI_CHARACTER_TYPE_R},
641 {0x05C0, 0x05C0, GX_BIDI_CHARACTER_TYPE_R},
642 {0x05C3, 0x05C3, GX_BIDI_CHARACTER_TYPE_R},
643 {0x05C6, 0x05C6, GX_BIDI_CHARACTER_TYPE_R},
644 {0x05C8, 0x05CF, GX_BIDI_CHARACTER_TYPE_R},
645 {0x05D0, 0x05EA, GX_BIDI_CHARACTER_TYPE_R},
646 {0x05EB, 0x05EF, GX_BIDI_CHARACTER_TYPE_R},
647 {0x05F0, 0x05F2, GX_BIDI_CHARACTER_TYPE_R},
648 {0x05F3, 0x05F4, GX_BIDI_CHARACTER_TYPE_R},
649 {0x05F5, 0x05FF, GX_BIDI_CHARACTER_TYPE_R},
650 {0x07C0, 0x07C9, GX_BIDI_CHARACTER_TYPE_R},
651 {0x07CA, 0x07EA, GX_BIDI_CHARACTER_TYPE_R},
652 {0x07F4, 0x07F5, GX_BIDI_CHARACTER_TYPE_R},
653 {0x07FA, 0x07FA, GX_BIDI_CHARACTER_TYPE_R},
654 {0x07FB, 0x08FF, GX_BIDI_CHARACTER_TYPE_R},
655 {0x200F, 0x200F, GX_BIDI_CHARACTER_TYPE_R},
656 {0xFB1D, 0xFB1D, GX_BIDI_CHARACTER_TYPE_R},
657 {0xFB1F, 0xFB28, GX_BIDI_CHARACTER_TYPE_R},
658 {0xFB2A, 0xFB36, GX_BIDI_CHARACTER_TYPE_R},
659 {0xFB37, 0xFB37, GX_BIDI_CHARACTER_TYPE_R},
660 {0xFB38, 0xFB3C, GX_BIDI_CHARACTER_TYPE_R},
661 {0xFB3D, 0xFB3D, GX_BIDI_CHARACTER_TYPE_R},
662 {0xFB3E, 0xFB3E, GX_BIDI_CHARACTER_TYPE_R},
663 {0xFB3F, 0xFB3F, GX_BIDI_CHARACTER_TYPE_R},
664 {0xFB40, 0xFB41, GX_BIDI_CHARACTER_TYPE_R},
665 {0xFB42, 0xFB42, GX_BIDI_CHARACTER_TYPE_R},
666 {0xFB43, 0xFB44, GX_BIDI_CHARACTER_TYPE_R},
667 {0xFB45, 0xFB45, GX_BIDI_CHARACTER_TYPE_R},
668 {0xFB46, 0xFB4F, GX_BIDI_CHARACTER_TYPE_R},
669 {0x10800, 0x10805, GX_BIDI_CHARACTER_TYPE_R},
670 {0x10806, 0x10807, GX_BIDI_CHARACTER_TYPE_R},
671 {0x10808, 0x10808, GX_BIDI_CHARACTER_TYPE_R},
672 {0x10809, 0x10809, GX_BIDI_CHARACTER_TYPE_R},
673 {0x1080A, 0x10835, GX_BIDI_CHARACTER_TYPE_R},
674 {0x10836, 0x10836, GX_BIDI_CHARACTER_TYPE_R},
675 {0x10837, 0x10838, GX_BIDI_CHARACTER_TYPE_R},
676 {0x10839, 0x1083B, GX_BIDI_CHARACTER_TYPE_R},
677 {0x1083C, 0x1083C, GX_BIDI_CHARACTER_TYPE_R},
678 {0x1083D, 0x1083E, GX_BIDI_CHARACTER_TYPE_R},
679 {0x1083F, 0x1083F, GX_BIDI_CHARACTER_TYPE_R},
680 {0x10840, 0x108FF, GX_BIDI_CHARACTER_TYPE_R},
681 {0x10900, 0x10915, GX_BIDI_CHARACTER_TYPE_R},
682 {0x10916, 0x10919, GX_BIDI_CHARACTER_TYPE_R},
683 {0x1091A, 0x1091E, GX_BIDI_CHARACTER_TYPE_R},
684 {0x10920, 0x10939, GX_BIDI_CHARACTER_TYPE_R},
685 {0x1093A, 0x1093E, GX_BIDI_CHARACTER_TYPE_R},
686 {0x1093F, 0x1093F, GX_BIDI_CHARACTER_TYPE_R},
687 {0x10940, 0x109FF, GX_BIDI_CHARACTER_TYPE_R},
688 {0x10A00, 0x10A00, GX_BIDI_CHARACTER_TYPE_R},
689 {0x10A04, 0x10A04, GX_BIDI_CHARACTER_TYPE_R},
690 {0x10A07, 0x10A0B, GX_BIDI_CHARACTER_TYPE_R},
691 {0x10A10, 0x10A13, GX_BIDI_CHARACTER_TYPE_R},
692 {0x10A14, 0x10A14, GX_BIDI_CHARACTER_TYPE_R},
693 {0x10A15, 0x10A17, GX_BIDI_CHARACTER_TYPE_R},
694 {0x10A18, 0x10A18, GX_BIDI_CHARACTER_TYPE_R},
695 {0x10A19, 0x10A33, GX_BIDI_CHARACTER_TYPE_R},
696 {0x10A34, 0x10A37, GX_BIDI_CHARACTER_TYPE_R},
697 {0x10A3B, 0x10A3E, GX_BIDI_CHARACTER_TYPE_R},
698 {0x10A40, 0x10A47, GX_BIDI_CHARACTER_TYPE_R},
699 {0x10A48, 0x10A4F, GX_BIDI_CHARACTER_TYPE_R},
700 {0x10A50, 0x10A58, GX_BIDI_CHARACTER_TYPE_R},
701 {0x10A59, 0x10FFF, GX_BIDI_CHARACTER_TYPE_R},
702 {0x0030, 0x0039, GX_BIDI_CHARACTER_TYPE_EN},
703 {0x00B2, 0x00B3, GX_BIDI_CHARACTER_TYPE_EN},
704 {0x00B9, 0x00B9, GX_BIDI_CHARACTER_TYPE_EN},
705 {0x06F0, 0x06F9, GX_BIDI_CHARACTER_TYPE_EN},
706 {0x2070, 0x2070, GX_BIDI_CHARACTER_TYPE_EN},
707 {0x2074, 0x2079, GX_BIDI_CHARACTER_TYPE_EN},
708 {0x2080, 0x2089, GX_BIDI_CHARACTER_TYPE_EN},
709 {0x2488, 0x249B, GX_BIDI_CHARACTER_TYPE_EN},
710 {0xFF10, 0xFF19, GX_BIDI_CHARACTER_TYPE_EN},
711 {0x1D7CE, 0x1D7FF, GX_BIDI_CHARACTER_TYPE_EN},
712 {0x002B, 0x002B, GX_BIDI_CHARACTER_TYPE_ES},
713 {0x002D, 0x002D, GX_BIDI_CHARACTER_TYPE_ES},
714 {0x207A, 0x207B, GX_BIDI_CHARACTER_TYPE_ES},
715 {0x208A, 0x208B, GX_BIDI_CHARACTER_TYPE_ES},
716 {0x2212, 0x2212, GX_BIDI_CHARACTER_TYPE_ES},
717 {0xFB29, 0xFB29, GX_BIDI_CHARACTER_TYPE_ES},
718 {0xFE62, 0xFE62, GX_BIDI_CHARACTER_TYPE_ES},
719 {0xFE63, 0xFE63, GX_BIDI_CHARACTER_TYPE_ES},
720 {0xFF0B, 0xFF0B, GX_BIDI_CHARACTER_TYPE_ES},
721 {0xFF0D, 0xFF0D, GX_BIDI_CHARACTER_TYPE_ES},
722 {0x0023, 0x0023, GX_BIDI_CHARACTER_TYPE_ET},
723 {0x0024, 0x0024, GX_BIDI_CHARACTER_TYPE_ET},
724 {0x0025, 0x0025, GX_BIDI_CHARACTER_TYPE_ET},
725 {0x00A2, 0x00A5, GX_BIDI_CHARACTER_TYPE_ET},
726 {0x00B0, 0x00B0, GX_BIDI_CHARACTER_TYPE_ET},
727 {0x00B1, 0x00B1, GX_BIDI_CHARACTER_TYPE_ET},
728 {0x0609, 0x060A, GX_BIDI_CHARACTER_TYPE_ET},
729 {0x066A, 0x066A, GX_BIDI_CHARACTER_TYPE_ET},
730 {0x09F2, 0x09F3, GX_BIDI_CHARACTER_TYPE_ET},
731 {0x0AF1, 0x0AF1, GX_BIDI_CHARACTER_TYPE_ET},
732 {0x0BF9, 0x0BF9, GX_BIDI_CHARACTER_TYPE_ET},
733 {0x0E3F, 0x0E3F, GX_BIDI_CHARACTER_TYPE_ET},
734 {0x17DB, 0x17DB, GX_BIDI_CHARACTER_TYPE_ET},
735 {0x2030, 0x2034, GX_BIDI_CHARACTER_TYPE_ET},
736 {0x20A0, 0x20B5, GX_BIDI_CHARACTER_TYPE_ET},
737 {0x212E, 0x212E, GX_BIDI_CHARACTER_TYPE_ET},
738 {0x2213, 0x2213, GX_BIDI_CHARACTER_TYPE_ET},
739 {0xFE5F, 0xFE5F, GX_BIDI_CHARACTER_TYPE_ET},
740 {0xFE69, 0xFE69, GX_BIDI_CHARACTER_TYPE_ET},
741 {0xFE6A, 0xFE6A, GX_BIDI_CHARACTER_TYPE_ET},
742 {0xFF03, 0xFF03, GX_BIDI_CHARACTER_TYPE_ET},
743 {0xFF04, 0xFF04, GX_BIDI_CHARACTER_TYPE_ET},
744 {0xFF05, 0xFF05, GX_BIDI_CHARACTER_TYPE_ET},
745 {0xFFE0, 0xFFE1, GX_BIDI_CHARACTER_TYPE_ET},
746 {0xFFE5, 0xFFE6, GX_BIDI_CHARACTER_TYPE_ET},
747 {0x0600, 0x0603, GX_BIDI_CHARACTER_TYPE_AN},
748 {0x0660, 0x0669, GX_BIDI_CHARACTER_TYPE_AN},
749 {0x066B, 0x066C, GX_BIDI_CHARACTER_TYPE_AN},
750 {0x06DD, 0x06DD, GX_BIDI_CHARACTER_TYPE_AN},
751 {0x002C, 0x002C, GX_BIDI_CHARACTER_TYPE_CS},
752 {0x002E, 0x002F, GX_BIDI_CHARACTER_TYPE_CS},
753 {0x003A, 0x003A, GX_BIDI_CHARACTER_TYPE_CS},
754 {0x00A0, 0x00A0, GX_BIDI_CHARACTER_TYPE_CS},
755 {0x060C, 0x060C, GX_BIDI_CHARACTER_TYPE_CS},
756 {0x202F, 0x202F, GX_BIDI_CHARACTER_TYPE_CS},
757 {0x2044, 0x2044, GX_BIDI_CHARACTER_TYPE_CS},
758 {0xFE50, 0xFE50, GX_BIDI_CHARACTER_TYPE_CS},
759 {0xFE52, 0xFE52, GX_BIDI_CHARACTER_TYPE_CS},
760 {0xFE55, 0xFE55, GX_BIDI_CHARACTER_TYPE_CS},
761 {0xFF0C, 0xFF0C, GX_BIDI_CHARACTER_TYPE_CS},
762 {0xFF0E, 0xFF0F, GX_BIDI_CHARACTER_TYPE_CS},
763 {0xFF1A, 0xFF1A, GX_BIDI_CHARACTER_TYPE_CS},
764 {0x000A, 0x000A, GX_BIDI_CHARACTER_TYPE_B},
765 {0x000D, 0x000D, GX_BIDI_CHARACTER_TYPE_B},
766 {0x001C, 0x001E, GX_BIDI_CHARACTER_TYPE_B},
767 {0x0085, 0x0085, GX_BIDI_CHARACTER_TYPE_B},
768 {0x2029, 0x2029, GX_BIDI_CHARACTER_TYPE_B},
769 {0x0009, 0x0009, GX_BIDI_CHARACTER_TYPE_S},
770 {0x000B, 0x000B, GX_BIDI_CHARACTER_TYPE_S},
771 {0x001F, 0x001F, GX_BIDI_CHARACTER_TYPE_S},
772 {0x000C, 0x000C, GX_BIDI_CHARACTER_TYPE_WS},
773 {0x0020, 0x0020, GX_BIDI_CHARACTER_TYPE_WS},
774 {0x1680, 0x1680, GX_BIDI_CHARACTER_TYPE_WS},
775 {0x180E, 0x180E, GX_BIDI_CHARACTER_TYPE_WS},
776 {0x2000, 0x200A, GX_BIDI_CHARACTER_TYPE_WS},
777 {0x2028, 0x2028, GX_BIDI_CHARACTER_TYPE_WS},
778 {0x205F, 0x205F, GX_BIDI_CHARACTER_TYPE_WS},
779 {0x3000, 0x3000, GX_BIDI_CHARACTER_TYPE_WS},
780 {0x0021, 0x0022, GX_BIDI_CHARACTER_TYPE_ON},
781 {0x0026, 0x0027, GX_BIDI_CHARACTER_TYPE_ON},
782 {0x0028, 0x0028, GX_BIDI_CHARACTER_TYPE_ON},
783 {0x0029, 0x0029, GX_BIDI_CHARACTER_TYPE_ON},
784 {0x002A, 0x002A, GX_BIDI_CHARACTER_TYPE_ON},
785 {0x003B, 0x003B, GX_BIDI_CHARACTER_TYPE_ON},
786 {0x003C, 0x003E, GX_BIDI_CHARACTER_TYPE_ON},
787 {0x003F, 0x0040, GX_BIDI_CHARACTER_TYPE_ON},
788 {0x005B, 0x005B, GX_BIDI_CHARACTER_TYPE_ON},
789 {0x005C, 0x005C, GX_BIDI_CHARACTER_TYPE_ON},
790 {0x005D, 0x005D, GX_BIDI_CHARACTER_TYPE_ON},
791 {0x005E, 0x005E, GX_BIDI_CHARACTER_TYPE_ON},
792 {0x005F, 0x005F, GX_BIDI_CHARACTER_TYPE_ON},
793 {0x0060, 0x0060, GX_BIDI_CHARACTER_TYPE_ON},
794 {0x007B, 0x007B, GX_BIDI_CHARACTER_TYPE_ON},
795 {0x007C, 0x007C, GX_BIDI_CHARACTER_TYPE_ON},
796 {0x007D, 0x007D, GX_BIDI_CHARACTER_TYPE_ON},
797 {0x007E, 0x007E, GX_BIDI_CHARACTER_TYPE_ON},
798 {0x00A1, 0x00A1, GX_BIDI_CHARACTER_TYPE_ON},
799 {0x00A6, 0x00A7, GX_BIDI_CHARACTER_TYPE_ON},
800 {0x00A8, 0x00A8, GX_BIDI_CHARACTER_TYPE_ON},
801 {0x00A9, 0x00A9, GX_BIDI_CHARACTER_TYPE_ON},
802 {0x00AB, 0x00AB, GX_BIDI_CHARACTER_TYPE_ON},
803 {0x00AC, 0x00AC, GX_BIDI_CHARACTER_TYPE_ON},
804 {0x00AE, 0x00AE, GX_BIDI_CHARACTER_TYPE_ON},
805 {0x00AF, 0x00AF, GX_BIDI_CHARACTER_TYPE_ON},
806 {0x00B4, 0x00B4, GX_BIDI_CHARACTER_TYPE_ON},
807 {0x00B6, 0x00B6, GX_BIDI_CHARACTER_TYPE_ON},
808 {0x00B7, 0x00B7, GX_BIDI_CHARACTER_TYPE_ON},
809 {0x00B8, 0x00B8, GX_BIDI_CHARACTER_TYPE_ON},
810 {0x00BB, 0x00BB, GX_BIDI_CHARACTER_TYPE_ON},
811 {0x00BC, 0x00BE, GX_BIDI_CHARACTER_TYPE_ON},
812 {0x00BF, 0x00BF, GX_BIDI_CHARACTER_TYPE_ON},
813 {0x00D7, 0x00D7, GX_BIDI_CHARACTER_TYPE_ON},
814 {0x00F7, 0x00F7, GX_BIDI_CHARACTER_TYPE_ON},
815 {0x02B9, 0x02BA, GX_BIDI_CHARACTER_TYPE_ON},
816 {0x02C2, 0x02C5, GX_BIDI_CHARACTER_TYPE_ON},
817 {0x02C6, 0x02CF, GX_BIDI_CHARACTER_TYPE_ON},
818 {0x02D2, 0x02DF, GX_BIDI_CHARACTER_TYPE_ON},
819 {0x02E5, 0x02EB, GX_BIDI_CHARACTER_TYPE_ON},
820 {0x02EC, 0x02EC, GX_BIDI_CHARACTER_TYPE_ON},
821 {0x02ED, 0x02ED, GX_BIDI_CHARACTER_TYPE_ON},
822 {0x02EF, 0x02FF, GX_BIDI_CHARACTER_TYPE_ON},
823 {0x0374, 0x0374, GX_BIDI_CHARACTER_TYPE_ON},
824 {0x0375, 0x0375, GX_BIDI_CHARACTER_TYPE_ON},
825 {0x037E, 0x037E, GX_BIDI_CHARACTER_TYPE_ON},
826 {0x0384, 0x0385, GX_BIDI_CHARACTER_TYPE_ON},
827 {0x0387, 0x0387, GX_BIDI_CHARACTER_TYPE_ON},
828 {0x03F6, 0x03F6, GX_BIDI_CHARACTER_TYPE_ON},
829 {0x058A, 0x058A, GX_BIDI_CHARACTER_TYPE_ON},
830 {0x0606, 0x0607, GX_BIDI_CHARACTER_TYPE_ON},
831 {0x060E, 0x060F, GX_BIDI_CHARACTER_TYPE_ON},
832 {0x06E9, 0x06E9, GX_BIDI_CHARACTER_TYPE_ON},
833 {0x07F6, 0x07F6, GX_BIDI_CHARACTER_TYPE_ON},
834 {0x07F7, 0x07F9, GX_BIDI_CHARACTER_TYPE_ON},
835 {0x0BF3, 0x0BF8, GX_BIDI_CHARACTER_TYPE_ON},
836 {0x0BFA, 0x0BFA, GX_BIDI_CHARACTER_TYPE_ON},
837 {0x0C78, 0x0C7E, GX_BIDI_CHARACTER_TYPE_ON},
838 {0x0CF1, 0x0CF2, GX_BIDI_CHARACTER_TYPE_ON},
839 {0x0F3A, 0x0F3A, GX_BIDI_CHARACTER_TYPE_ON},
840 {0x0F3B, 0x0F3B, GX_BIDI_CHARACTER_TYPE_ON},
841 {0x0F3C, 0x0F3C, GX_BIDI_CHARACTER_TYPE_ON},
842 {0x0F3D, 0x0F3D, GX_BIDI_CHARACTER_TYPE_ON},
843 {0x1390, 0x1399, GX_BIDI_CHARACTER_TYPE_ON},
844 {0x169B, 0x169B, GX_BIDI_CHARACTER_TYPE_ON},
845 {0x169C, 0x169C, GX_BIDI_CHARACTER_TYPE_ON},
846 {0x17F0, 0x17F9, GX_BIDI_CHARACTER_TYPE_ON},
847 {0x1800, 0x1805, GX_BIDI_CHARACTER_TYPE_ON},
848 {0x1806, 0x1806, GX_BIDI_CHARACTER_TYPE_ON},
849 {0x1807, 0x180A, GX_BIDI_CHARACTER_TYPE_ON},
850 {0x1940, 0x1940, GX_BIDI_CHARACTER_TYPE_ON},
851 {0x1944, 0x1945, GX_BIDI_CHARACTER_TYPE_ON},
852 {0x19DE, 0x19DF, GX_BIDI_CHARACTER_TYPE_ON},
853 {0x19E0, 0x19FF, GX_BIDI_CHARACTER_TYPE_ON},
854 {0x1FBD, 0x1FBD, GX_BIDI_CHARACTER_TYPE_ON},
855 {0x1FBF, 0x1FC1, GX_BIDI_CHARACTER_TYPE_ON},
856 {0x1FCD, 0x1FCF, GX_BIDI_CHARACTER_TYPE_ON},
857 {0x1FDD, 0x1FDF, GX_BIDI_CHARACTER_TYPE_ON},
858 {0x1FED, 0x1FEF, GX_BIDI_CHARACTER_TYPE_ON},
859 {0x1FFD, 0x1FFE, GX_BIDI_CHARACTER_TYPE_ON},
860 {0x2010, 0x2015, GX_BIDI_CHARACTER_TYPE_ON},
861 {0x2016, 0x2017, GX_BIDI_CHARACTER_TYPE_ON},
862 {0x2018, 0x2018, GX_BIDI_CHARACTER_TYPE_ON},
863 {0x2019, 0x2019, GX_BIDI_CHARACTER_TYPE_ON},
864 {0x201A, 0x201A, GX_BIDI_CHARACTER_TYPE_ON},
865 {0x201B, 0x201C, GX_BIDI_CHARACTER_TYPE_ON},
866 {0x201D, 0x201D, GX_BIDI_CHARACTER_TYPE_ON},
867 {0x201E, 0x201E, GX_BIDI_CHARACTER_TYPE_ON},
868 {0x201F, 0x201F, GX_BIDI_CHARACTER_TYPE_ON},
869 {0x2020, 0x2027, GX_BIDI_CHARACTER_TYPE_ON},
870 {0x2035, 0x2038, GX_BIDI_CHARACTER_TYPE_ON},
871 {0x2039, 0x2039, GX_BIDI_CHARACTER_TYPE_ON},
872 {0x203A, 0x203A, GX_BIDI_CHARACTER_TYPE_ON},
873 {0x203B, 0x203E, GX_BIDI_CHARACTER_TYPE_ON},
874 {0x203F, 0x2040, GX_BIDI_CHARACTER_TYPE_ON},
875 {0x2041, 0x2043, GX_BIDI_CHARACTER_TYPE_ON},
876 {0x2045, 0x2045, GX_BIDI_CHARACTER_TYPE_ON},
877 {0x2046, 0x2046, GX_BIDI_CHARACTER_TYPE_ON},
878 {0x2047, 0x2051, GX_BIDI_CHARACTER_TYPE_ON},
879 {0x2052, 0x2052, GX_BIDI_CHARACTER_TYPE_ON},
880 {0x2053, 0x2053, GX_BIDI_CHARACTER_TYPE_ON},
881 {0x2054, 0x2054, GX_BIDI_CHARACTER_TYPE_ON},
882 {0x2055, 0x205E, GX_BIDI_CHARACTER_TYPE_ON},
883 {0x207C, 0x207C, GX_BIDI_CHARACTER_TYPE_ON},
884 {0x207D, 0x207D, GX_BIDI_CHARACTER_TYPE_ON},
885 {0x207E, 0x207E, GX_BIDI_CHARACTER_TYPE_ON},
886 {0x208C, 0x208C, GX_BIDI_CHARACTER_TYPE_ON},
887 {0x208D, 0x208D, GX_BIDI_CHARACTER_TYPE_ON},
888 {0x208E, 0x208E, GX_BIDI_CHARACTER_TYPE_ON},
889 {0x2100, 0x2101, GX_BIDI_CHARACTER_TYPE_ON},
890 {0x2103, 0x2106, GX_BIDI_CHARACTER_TYPE_ON},
891 {0x2108, 0x2109, GX_BIDI_CHARACTER_TYPE_ON},
892 {0x2114, 0x2114, GX_BIDI_CHARACTER_TYPE_ON},
893 {0x2116, 0x2118, GX_BIDI_CHARACTER_TYPE_ON},
894 {0x211E, 0x2123, GX_BIDI_CHARACTER_TYPE_ON},
895 {0x2125, 0x2125, GX_BIDI_CHARACTER_TYPE_ON},
896 {0x2127, 0x2127, GX_BIDI_CHARACTER_TYPE_ON},
897 {0x2129, 0x2129, GX_BIDI_CHARACTER_TYPE_ON},
898 {0x213A, 0x213B, GX_BIDI_CHARACTER_TYPE_ON},
899 {0x2140, 0x2144, GX_BIDI_CHARACTER_TYPE_ON},
900 {0x214A, 0x214A, GX_BIDI_CHARACTER_TYPE_ON},
901 {0x214B, 0x214B, GX_BIDI_CHARACTER_TYPE_ON},
902 {0x214C, 0x214D, GX_BIDI_CHARACTER_TYPE_ON},
903 {0x2153, 0x215F, GX_BIDI_CHARACTER_TYPE_ON},
904 {0x2190, 0x2194, GX_BIDI_CHARACTER_TYPE_ON},
905 {0x2195, 0x2199, GX_BIDI_CHARACTER_TYPE_ON},
906 {0x219A, 0x219B, GX_BIDI_CHARACTER_TYPE_ON},
907 {0x219C, 0x219F, GX_BIDI_CHARACTER_TYPE_ON},
908 {0x21A0, 0x21A0, GX_BIDI_CHARACTER_TYPE_ON},
909 {0x21A1, 0x21A2, GX_BIDI_CHARACTER_TYPE_ON},
910 {0x21A3, 0x21A3, GX_BIDI_CHARACTER_TYPE_ON},
911 {0x21A4, 0x21A5, GX_BIDI_CHARACTER_TYPE_ON},
912 {0x21A6, 0x21A6, GX_BIDI_CHARACTER_TYPE_ON},
913 {0x21A7, 0x21AD, GX_BIDI_CHARACTER_TYPE_ON},
914 {0x21AE, 0x21AE, GX_BIDI_CHARACTER_TYPE_ON},
915 {0x21AF, 0x21CD, GX_BIDI_CHARACTER_TYPE_ON},
916 {0x21CE, 0x21CF, GX_BIDI_CHARACTER_TYPE_ON},
917 {0x21D0, 0x21D1, GX_BIDI_CHARACTER_TYPE_ON},
918 {0x21D2, 0x21D2, GX_BIDI_CHARACTER_TYPE_ON},
919 {0x21D3, 0x21D3, GX_BIDI_CHARACTER_TYPE_ON},
920 {0x21D4, 0x21D4, GX_BIDI_CHARACTER_TYPE_ON},
921 {0x21D5, 0x21F3, GX_BIDI_CHARACTER_TYPE_ON},
922 {0x21F4, 0x2211, GX_BIDI_CHARACTER_TYPE_ON},
923 {0x2214, 0x22FF, GX_BIDI_CHARACTER_TYPE_ON},
924 {0x2300, 0x2307, GX_BIDI_CHARACTER_TYPE_ON},
925 {0x2308, 0x230B, GX_BIDI_CHARACTER_TYPE_ON},
926 {0x230C, 0x231F, GX_BIDI_CHARACTER_TYPE_ON},
927 {0x2320, 0x2321, GX_BIDI_CHARACTER_TYPE_ON},
928 {0x2322, 0x2328, GX_BIDI_CHARACTER_TYPE_ON},
929 {0x2329, 0x2329, GX_BIDI_CHARACTER_TYPE_ON},
930 {0x232A, 0x232A, GX_BIDI_CHARACTER_TYPE_ON},
931 {0x232B, 0x2335, GX_BIDI_CHARACTER_TYPE_ON},
932 {0x237B, 0x237B, GX_BIDI_CHARACTER_TYPE_ON},
933 {0x237C, 0x237C, GX_BIDI_CHARACTER_TYPE_ON},
934 {0x237D, 0x2394, GX_BIDI_CHARACTER_TYPE_ON},
935 {0x2396, 0x239A, GX_BIDI_CHARACTER_TYPE_ON},
936 {0x239B, 0x23B3, GX_BIDI_CHARACTER_TYPE_ON},
937 {0x23B4, 0x23DB, GX_BIDI_CHARACTER_TYPE_ON},
938 {0x23DC, 0x23E1, GX_BIDI_CHARACTER_TYPE_ON},
939 {0x23E2, 0x23E7, GX_BIDI_CHARACTER_TYPE_ON},
940 {0x2400, 0x2426, GX_BIDI_CHARACTER_TYPE_ON},
941 {0x2440, 0x244A, GX_BIDI_CHARACTER_TYPE_ON},
942 {0x2460, 0x2487, GX_BIDI_CHARACTER_TYPE_ON},
943 {0x24EA, 0x24FF, GX_BIDI_CHARACTER_TYPE_ON},
944 {0x2500, 0x25B6, GX_BIDI_CHARACTER_TYPE_ON},
945 {0x25B7, 0x25B7, GX_BIDI_CHARACTER_TYPE_ON},
946 {0x25B8, 0x25C0, GX_BIDI_CHARACTER_TYPE_ON},
947 {0x25C1, 0x25C1, GX_BIDI_CHARACTER_TYPE_ON},
948 {0x25C2, 0x25F7, GX_BIDI_CHARACTER_TYPE_ON},
949 {0x25F8, 0x25FF, GX_BIDI_CHARACTER_TYPE_ON},
950 {0x2600, 0x266E, GX_BIDI_CHARACTER_TYPE_ON},
951 {0x266F, 0x266F, GX_BIDI_CHARACTER_TYPE_ON},
952 {0x2670, 0x269D, GX_BIDI_CHARACTER_TYPE_ON},
953 {0x26A0, 0x26AB, GX_BIDI_CHARACTER_TYPE_ON},
954 {0x26AD, 0x26BC, GX_BIDI_CHARACTER_TYPE_ON},
955 {0x26C0, 0x26C3, GX_BIDI_CHARACTER_TYPE_ON},
956 {0x2701, 0x2704, GX_BIDI_CHARACTER_TYPE_ON},
957 {0x2706, 0x2709, GX_BIDI_CHARACTER_TYPE_ON},
958 {0x270C, 0x2727, GX_BIDI_CHARACTER_TYPE_ON},
959 {0x2729, 0x274B, GX_BIDI_CHARACTER_TYPE_ON},
960 {0x274D, 0x274D, GX_BIDI_CHARACTER_TYPE_ON},
961 {0x274F, 0x2752, GX_BIDI_CHARACTER_TYPE_ON},
962 {0x2756, 0x2756, GX_BIDI_CHARACTER_TYPE_ON},
963 {0x2758, 0x275E, GX_BIDI_CHARACTER_TYPE_ON},
964 {0x2761, 0x2767, GX_BIDI_CHARACTER_TYPE_ON},
965 {0x2768, 0x2768, GX_BIDI_CHARACTER_TYPE_ON},
966 {0x2769, 0x2769, GX_BIDI_CHARACTER_TYPE_ON},
967 {0x276A, 0x276A, GX_BIDI_CHARACTER_TYPE_ON},
968 {0x276B, 0x276B, GX_BIDI_CHARACTER_TYPE_ON},
969 {0x276C, 0x276C, GX_BIDI_CHARACTER_TYPE_ON},
970 {0x276D, 0x276D, GX_BIDI_CHARACTER_TYPE_ON},
971 {0x276E, 0x276E, GX_BIDI_CHARACTER_TYPE_ON},
972 {0x276F, 0x276F, GX_BIDI_CHARACTER_TYPE_ON},
973 {0x2770, 0x2770, GX_BIDI_CHARACTER_TYPE_ON},
974 {0x2771, 0x2771, GX_BIDI_CHARACTER_TYPE_ON},
975 {0x2772, 0x2772, GX_BIDI_CHARACTER_TYPE_ON},
976 {0x2773, 0x2773, GX_BIDI_CHARACTER_TYPE_ON},
977 {0x2774, 0x2774, GX_BIDI_CHARACTER_TYPE_ON},
978 {0x2775, 0x2775, GX_BIDI_CHARACTER_TYPE_ON},
979 {0x2776, 0x2793, GX_BIDI_CHARACTER_TYPE_ON},
980 {0x2794, 0x2794, GX_BIDI_CHARACTER_TYPE_ON},
981 {0x2798, 0x27AF, GX_BIDI_CHARACTER_TYPE_ON},
982 {0x27B1, 0x27BE, GX_BIDI_CHARACTER_TYPE_ON},
983 {0x27C0, 0x27C4, GX_BIDI_CHARACTER_TYPE_ON},
984 {0x27C5, 0x27C5, GX_BIDI_CHARACTER_TYPE_ON},
985 {0x27C6, 0x27C6, GX_BIDI_CHARACTER_TYPE_ON},
986 {0x27C7, 0x27CA, GX_BIDI_CHARACTER_TYPE_ON},
987 {0x27CC, 0x27CC, GX_BIDI_CHARACTER_TYPE_ON},
988 {0x27D0, 0x27E5, GX_BIDI_CHARACTER_TYPE_ON},
989 {0x27E6, 0x27E6, GX_BIDI_CHARACTER_TYPE_ON},
990 {0x27E7, 0x27E7, GX_BIDI_CHARACTER_TYPE_ON},
991 {0x27E8, 0x27E8, GX_BIDI_CHARACTER_TYPE_ON},
992 {0x27E9, 0x27E9, GX_BIDI_CHARACTER_TYPE_ON},
993 {0x27EA, 0x27EA, GX_BIDI_CHARACTER_TYPE_ON},
994 {0x27EB, 0x27EB, GX_BIDI_CHARACTER_TYPE_ON},
995 {0x27EC, 0x27EC, GX_BIDI_CHARACTER_TYPE_ON},
996 {0x27ED, 0x27ED, GX_BIDI_CHARACTER_TYPE_ON},
997 {0x27EE, 0x27EE, GX_BIDI_CHARACTER_TYPE_ON},
998 {0x27EF, 0x27EF, GX_BIDI_CHARACTER_TYPE_ON},
999 {0x27F0, 0x27FF, GX_BIDI_CHARACTER_TYPE_ON},
1000 {0x2900, 0x2982, GX_BIDI_CHARACTER_TYPE_ON},
1001 {0x2983, 0x2983, GX_BIDI_CHARACTER_TYPE_ON},
1002 {0x2984, 0x2984, GX_BIDI_CHARACTER_TYPE_ON},
1003 {0x2985, 0x2985, GX_BIDI_CHARACTER_TYPE_ON},
1004 {0x2986, 0x2986, GX_BIDI_CHARACTER_TYPE_ON},
1005 {0x2987, 0x2987, GX_BIDI_CHARACTER_TYPE_ON},
1006 {0x2988, 0x2988, GX_BIDI_CHARACTER_TYPE_ON},
1007 {0x2989, 0x2989, GX_BIDI_CHARACTER_TYPE_ON},
1008 {0x298A, 0x298A, GX_BIDI_CHARACTER_TYPE_ON},
1009 {0x298B, 0x298B, GX_BIDI_CHARACTER_TYPE_ON},
1010 {0x298C, 0x298C, GX_BIDI_CHARACTER_TYPE_ON},
1011 {0x298D, 0x298D, GX_BIDI_CHARACTER_TYPE_ON},
1012 {0x298E, 0x298E, GX_BIDI_CHARACTER_TYPE_ON},
1013 {0x298F, 0x298F, GX_BIDI_CHARACTER_TYPE_ON},
1014 {0x2990, 0x2990, GX_BIDI_CHARACTER_TYPE_ON},
1015 {0x2991, 0x2991, GX_BIDI_CHARACTER_TYPE_ON},
1016 {0x2992, 0x2992, GX_BIDI_CHARACTER_TYPE_ON},
1017 {0x2993, 0x2993, GX_BIDI_CHARACTER_TYPE_ON},
1018 {0x2994, 0x2994, GX_BIDI_CHARACTER_TYPE_ON},
1019 {0x2995, 0x2995, GX_BIDI_CHARACTER_TYPE_ON},
1020 {0x2996, 0x2996, GX_BIDI_CHARACTER_TYPE_ON},
1021 {0x2997, 0x2997, GX_BIDI_CHARACTER_TYPE_ON},
1022 {0x2998, 0x2998, GX_BIDI_CHARACTER_TYPE_ON},
1023 {0x2999, 0x29D7, GX_BIDI_CHARACTER_TYPE_ON},
1024 {0x29D8, 0x29D8, GX_BIDI_CHARACTER_TYPE_ON},
1025 {0x29D9, 0x29D9, GX_BIDI_CHARACTER_TYPE_ON},
1026 {0x29DA, 0x29DA, GX_BIDI_CHARACTER_TYPE_ON},
1027 {0x29DB, 0x29DB, GX_BIDI_CHARACTER_TYPE_ON},
1028 {0x29DC, 0x29FB, GX_BIDI_CHARACTER_TYPE_ON},
1029 {0x29FC, 0x29FC, GX_BIDI_CHARACTER_TYPE_ON},
1030 {0x29FD, 0x29FD, GX_BIDI_CHARACTER_TYPE_ON},
1031 {0x29FE, 0x2AFF, GX_BIDI_CHARACTER_TYPE_ON},
1032 {0x2B00, 0x2B2F, GX_BIDI_CHARACTER_TYPE_ON},
1033 {0x2B30, 0x2B44, GX_BIDI_CHARACTER_TYPE_ON},
1034 {0x2B45, 0x2B46, GX_BIDI_CHARACTER_TYPE_ON},
1035 {0x2B47, 0x2B4C, GX_BIDI_CHARACTER_TYPE_ON},
1036 {0x2B50, 0x2B54, GX_BIDI_CHARACTER_TYPE_ON},
1037 {0x2CE5, 0x2CEA, GX_BIDI_CHARACTER_TYPE_ON},
1038 {0x2CF9, 0x2CFC, GX_BIDI_CHARACTER_TYPE_ON},
1039 {0x2CFD, 0x2CFD, GX_BIDI_CHARACTER_TYPE_ON},
1040 {0x2CFE, 0x2CFF, GX_BIDI_CHARACTER_TYPE_ON},
1041 {0x2E00, 0x2E01, GX_BIDI_CHARACTER_TYPE_ON},
1042 {0x2E02, 0x2E02, GX_BIDI_CHARACTER_TYPE_ON},
1043 {0x2E03, 0x2E03, GX_BIDI_CHARACTER_TYPE_ON},
1044 {0x2E04, 0x2E04, GX_BIDI_CHARACTER_TYPE_ON},
1045 {0x2E05, 0x2E05, GX_BIDI_CHARACTER_TYPE_ON},
1046 {0x2E06, 0x2E08, GX_BIDI_CHARACTER_TYPE_ON},
1047 {0x2E09, 0x2E09, GX_BIDI_CHARACTER_TYPE_ON},
1048 {0x2E0A, 0x2E0A, GX_BIDI_CHARACTER_TYPE_ON},
1049 {0x2E0B, 0x2E0B, GX_BIDI_CHARACTER_TYPE_ON},
1050 {0x2E0C, 0x2E0C, GX_BIDI_CHARACTER_TYPE_ON},
1051 {0x2E0D, 0x2E0D, GX_BIDI_CHARACTER_TYPE_ON},
1052 {0x2E0E, 0x2E16, GX_BIDI_CHARACTER_TYPE_ON},
1053 {0x2E17, 0x2E17, GX_BIDI_CHARACTER_TYPE_ON},
1054 {0x2E18, 0x2E19, GX_BIDI_CHARACTER_TYPE_ON},
1055 {0x2E1A, 0x2E1A, GX_BIDI_CHARACTER_TYPE_ON},
1056 {0x2E1B, 0x2E1B, GX_BIDI_CHARACTER_TYPE_ON},
1057 {0x2E1C, 0x2E1C, GX_BIDI_CHARACTER_TYPE_ON},
1058 {0x2E1D, 0x2E1D, GX_BIDI_CHARACTER_TYPE_ON},
1059 {0x2E1E, 0x2E1F, GX_BIDI_CHARACTER_TYPE_ON},
1060 {0x2E20, 0x2E20, GX_BIDI_CHARACTER_TYPE_ON},
1061 {0x2E21, 0x2E21, GX_BIDI_CHARACTER_TYPE_ON},
1062 {0x2E22, 0x2E22, GX_BIDI_CHARACTER_TYPE_ON},
1063 {0x2E23, 0x2E23, GX_BIDI_CHARACTER_TYPE_ON},
1064 {0x2E24, 0x2E24, GX_BIDI_CHARACTER_TYPE_ON},
1065 {0x2E25, 0x2E25, GX_BIDI_CHARACTER_TYPE_ON},
1066 {0x2E26, 0x2E26, GX_BIDI_CHARACTER_TYPE_ON},
1067 {0x2E27, 0x2E27, GX_BIDI_CHARACTER_TYPE_ON},
1068 {0x2E28, 0x2E28, GX_BIDI_CHARACTER_TYPE_ON},
1069 {0x2E29, 0x2E29, GX_BIDI_CHARACTER_TYPE_ON},
1070 {0x2E2A, 0x2E2E, GX_BIDI_CHARACTER_TYPE_ON},
1071 {0x2E2F, 0x2E2F, GX_BIDI_CHARACTER_TYPE_ON},
1072 {0x2E30, 0x2E30, GX_BIDI_CHARACTER_TYPE_ON},
1073 {0x2E80, 0x2E99, GX_BIDI_CHARACTER_TYPE_ON},
1074 {0x2E9B, 0x2EF3, GX_BIDI_CHARACTER_TYPE_ON},
1075 {0x2F00, 0x2FD5, GX_BIDI_CHARACTER_TYPE_ON},
1076 {0x2FF0, 0x2FFB, GX_BIDI_CHARACTER_TYPE_ON},
1077 {0x3001, 0x3003, GX_BIDI_CHARACTER_TYPE_ON},
1078 {0x3004, 0x3004, GX_BIDI_CHARACTER_TYPE_ON},
1079 {0x3008, 0x3008, GX_BIDI_CHARACTER_TYPE_ON},
1080 {0x3009, 0x3009, GX_BIDI_CHARACTER_TYPE_ON},
1081 {0x300A, 0x300A, GX_BIDI_CHARACTER_TYPE_ON},
1082 {0x300B, 0x300B, GX_BIDI_CHARACTER_TYPE_ON},
1083 {0x300C, 0x300C, GX_BIDI_CHARACTER_TYPE_ON},
1084 {0x300D, 0x300D, GX_BIDI_CHARACTER_TYPE_ON},
1085 {0x300E, 0x300E, GX_BIDI_CHARACTER_TYPE_ON},
1086 {0x300F, 0x300F, GX_BIDI_CHARACTER_TYPE_ON},
1087 {0x3010, 0x3010, GX_BIDI_CHARACTER_TYPE_ON},
1088 {0x3011, 0x3011, GX_BIDI_CHARACTER_TYPE_ON},
1089 {0x3012, 0x3013, GX_BIDI_CHARACTER_TYPE_ON},
1090 {0x3014, 0x3014, GX_BIDI_CHARACTER_TYPE_ON},
1091 {0x3015, 0x3015, GX_BIDI_CHARACTER_TYPE_ON},
1092 {0x3016, 0x3016, GX_BIDI_CHARACTER_TYPE_ON},
1093 {0x3017, 0x3017, GX_BIDI_CHARACTER_TYPE_ON},
1094 {0x3018, 0x3018, GX_BIDI_CHARACTER_TYPE_ON},
1095 {0x3019, 0x3019, GX_BIDI_CHARACTER_TYPE_ON},
1096 {0x301A, 0x301A, GX_BIDI_CHARACTER_TYPE_ON},
1097 {0x301B, 0x301B, GX_BIDI_CHARACTER_TYPE_ON},
1098 {0x301C, 0x301C, GX_BIDI_CHARACTER_TYPE_ON},
1099 {0x301D, 0x301D, GX_BIDI_CHARACTER_TYPE_ON},
1100 {0x301E, 0x301F, GX_BIDI_CHARACTER_TYPE_ON},
1101 {0x3020, 0x3020, GX_BIDI_CHARACTER_TYPE_ON},
1102 {0x3030, 0x3030, GX_BIDI_CHARACTER_TYPE_ON},
1103 {0x3036, 0x3037, GX_BIDI_CHARACTER_TYPE_ON},
1104 {0x303D, 0x303D, GX_BIDI_CHARACTER_TYPE_ON},
1105 {0x303E, 0x303F, GX_BIDI_CHARACTER_TYPE_ON},
1106 {0x309B, 0x309C, GX_BIDI_CHARACTER_TYPE_ON},
1107 {0x30A0, 0x30A0, GX_BIDI_CHARACTER_TYPE_ON},
1108 {0x30FB, 0x30FB, GX_BIDI_CHARACTER_TYPE_ON},
1109 {0x31C0, 0x31E3, GX_BIDI_CHARACTER_TYPE_ON},
1110 {0x321D, 0x321E, GX_BIDI_CHARACTER_TYPE_ON},
1111 {0x3250, 0x3250, GX_BIDI_CHARACTER_TYPE_ON},
1112 {0x3251, 0x325F, GX_BIDI_CHARACTER_TYPE_ON},
1113 {0x327C, 0x327E, GX_BIDI_CHARACTER_TYPE_ON},
1114 {0x32B1, 0x32BF, GX_BIDI_CHARACTER_TYPE_ON},
1115 {0x32CC, 0x32CF, GX_BIDI_CHARACTER_TYPE_ON},
1116 {0x3377, 0x337A, GX_BIDI_CHARACTER_TYPE_ON},
1117 {0x33DE, 0x33DF, GX_BIDI_CHARACTER_TYPE_ON},
1118 {0x33FF, 0x33FF, GX_BIDI_CHARACTER_TYPE_ON},
1119 {0x4DC0, 0x4DFF, GX_BIDI_CHARACTER_TYPE_ON},
1120 {0xA490, 0xA4C6, GX_BIDI_CHARACTER_TYPE_ON},
1121 {0xA60D, 0xA60F, GX_BIDI_CHARACTER_TYPE_ON},
1122 {0xA673, 0xA673, GX_BIDI_CHARACTER_TYPE_ON},
1123 {0xA67E, 0xA67E, GX_BIDI_CHARACTER_TYPE_ON},
1124 {0xA67F, 0xA67F, GX_BIDI_CHARACTER_TYPE_ON},
1125 {0xA700, 0xA716, GX_BIDI_CHARACTER_TYPE_ON},
1126 {0xA717, 0xA71F, GX_BIDI_CHARACTER_TYPE_ON},
1127 {0xA720, 0xA721, GX_BIDI_CHARACTER_TYPE_ON},
1128 {0xA788, 0xA788, GX_BIDI_CHARACTER_TYPE_ON},
1129 {0xA828, 0xA82B, GX_BIDI_CHARACTER_TYPE_ON},
1130 {0xA874, 0xA877, GX_BIDI_CHARACTER_TYPE_ON},
1131 {0xFD3E, 0xFD3E, GX_BIDI_CHARACTER_TYPE_ON},
1132 {0xFD3F, 0xFD3F, GX_BIDI_CHARACTER_TYPE_ON},
1133 {0xFDFD, 0xFDFD, GX_BIDI_CHARACTER_TYPE_ON},
1134 {0xFE10, 0xFE16, GX_BIDI_CHARACTER_TYPE_ON},
1135 {0xFE17, 0xFE17, GX_BIDI_CHARACTER_TYPE_ON},
1136 {0xFE18, 0xFE18, GX_BIDI_CHARACTER_TYPE_ON},
1137 {0xFE19, 0xFE19, GX_BIDI_CHARACTER_TYPE_ON},
1138 {0xFE30, 0xFE30, GX_BIDI_CHARACTER_TYPE_ON},
1139 {0xFE31, 0xFE32, GX_BIDI_CHARACTER_TYPE_ON},
1140 {0xFE33, 0xFE34, GX_BIDI_CHARACTER_TYPE_ON},
1141 {0xFE35, 0xFE35, GX_BIDI_CHARACTER_TYPE_ON},
1142 {0xFE36, 0xFE36, GX_BIDI_CHARACTER_TYPE_ON},
1143 {0xFE37, 0xFE37, GX_BIDI_CHARACTER_TYPE_ON},
1144 {0xFE38, 0xFE38, GX_BIDI_CHARACTER_TYPE_ON},
1145 {0xFE39, 0xFE39, GX_BIDI_CHARACTER_TYPE_ON},
1146 {0xFE3A, 0xFE3A, GX_BIDI_CHARACTER_TYPE_ON},
1147 {0xFE3B, 0xFE3B, GX_BIDI_CHARACTER_TYPE_ON},
1148 {0xFE3C, 0xFE3C, GX_BIDI_CHARACTER_TYPE_ON},
1149 {0xFE3D, 0xFE3D, GX_BIDI_CHARACTER_TYPE_ON},
1150 {0xFE3E, 0xFE3E, GX_BIDI_CHARACTER_TYPE_ON},
1151 {0xFE3F, 0xFE3F, GX_BIDI_CHARACTER_TYPE_ON},
1152 {0xFE40, 0xFE40, GX_BIDI_CHARACTER_TYPE_ON},
1153 {0xFE41, 0xFE41, GX_BIDI_CHARACTER_TYPE_ON},
1154 {0xFE42, 0xFE42, GX_BIDI_CHARACTER_TYPE_ON},
1155 {0xFE43, 0xFE43, GX_BIDI_CHARACTER_TYPE_ON},
1156 {0xFE44, 0xFE44, GX_BIDI_CHARACTER_TYPE_ON},
1157 {0xFE45, 0xFE46, GX_BIDI_CHARACTER_TYPE_ON},
1158 {0xFE47, 0xFE47, GX_BIDI_CHARACTER_TYPE_ON},
1159 {0xFE48, 0xFE48, GX_BIDI_CHARACTER_TYPE_ON},
1160 {0xFE49, 0xFE4C, GX_BIDI_CHARACTER_TYPE_ON},
1161 {0xFE4D, 0xFE4F, GX_BIDI_CHARACTER_TYPE_ON},
1162 {0xFE51, 0xFE51, GX_BIDI_CHARACTER_TYPE_ON},
1163 {0xFE54, 0xFE54, GX_BIDI_CHARACTER_TYPE_ON},
1164 {0xFE56, 0xFE57, GX_BIDI_CHARACTER_TYPE_ON},
1165 {0xFE58, 0xFE58, GX_BIDI_CHARACTER_TYPE_ON},
1166 {0xFE59, 0xFE59, GX_BIDI_CHARACTER_TYPE_ON},
1167 {0xFE5A, 0xFE5A, GX_BIDI_CHARACTER_TYPE_ON},
1168 {0xFE5B, 0xFE5B, GX_BIDI_CHARACTER_TYPE_ON},
1169 {0xFE5C, 0xFE5C, GX_BIDI_CHARACTER_TYPE_ON},
1170 {0xFE5D, 0xFE5D, GX_BIDI_CHARACTER_TYPE_ON},
1171 {0xFE5E, 0xFE5E, GX_BIDI_CHARACTER_TYPE_ON},
1172 {0xFE60, 0xFE61, GX_BIDI_CHARACTER_TYPE_ON},
1173 {0xFE64, 0xFE66, GX_BIDI_CHARACTER_TYPE_ON},
1174 {0xFE68, 0xFE68, GX_BIDI_CHARACTER_TYPE_ON},
1175 {0xFE6B, 0xFE6B, GX_BIDI_CHARACTER_TYPE_ON},
1176 {0xFF01, 0xFF02, GX_BIDI_CHARACTER_TYPE_ON},
1177 {0xFF06, 0xFF07, GX_BIDI_CHARACTER_TYPE_ON},
1178 {0xFF08, 0xFF08, GX_BIDI_CHARACTER_TYPE_ON},
1179 {0xFF09, 0xFF09, GX_BIDI_CHARACTER_TYPE_ON},
1180 {0xFF0A, 0xFF0A, GX_BIDI_CHARACTER_TYPE_ON},
1181 {0xFF1B, 0xFF1B, GX_BIDI_CHARACTER_TYPE_ON},
1182 {0xFF1C, 0xFF1E, GX_BIDI_CHARACTER_TYPE_ON},
1183 {0xFF1F, 0xFF20, GX_BIDI_CHARACTER_TYPE_ON},
1184 {0xFF3B, 0xFF3B, GX_BIDI_CHARACTER_TYPE_ON},
1185 {0xFF3C, 0xFF3C, GX_BIDI_CHARACTER_TYPE_ON},
1186 {0xFF3D, 0xFF3D, GX_BIDI_CHARACTER_TYPE_ON},
1187 {0xFF3E, 0xFF3E, GX_BIDI_CHARACTER_TYPE_ON},
1188 {0xFF3F, 0xFF3F, GX_BIDI_CHARACTER_TYPE_ON},
1189 {0xFF40, 0xFF40, GX_BIDI_CHARACTER_TYPE_ON},
1190 {0xFF5B, 0xFF5B, GX_BIDI_CHARACTER_TYPE_ON},
1191 {0xFF5C, 0xFF5C, GX_BIDI_CHARACTER_TYPE_ON},
1192 {0xFF5D, 0xFF5D, GX_BIDI_CHARACTER_TYPE_ON},
1193 {0xFF5E, 0xFF5E, GX_BIDI_CHARACTER_TYPE_ON},
1194 {0xFF5F, 0xFF5F, GX_BIDI_CHARACTER_TYPE_ON},
1195 {0xFF60, 0xFF60, GX_BIDI_CHARACTER_TYPE_ON},
1196 {0xFF61, 0xFF61, GX_BIDI_CHARACTER_TYPE_ON},
1197 {0xFF62, 0xFF62, GX_BIDI_CHARACTER_TYPE_ON},
1198 {0xFF63, 0xFF63, GX_BIDI_CHARACTER_TYPE_ON},
1199 {0xFF64, 0xFF65, GX_BIDI_CHARACTER_TYPE_ON},
1200 {0xFFE2, 0xFFE2, GX_BIDI_CHARACTER_TYPE_ON},
1201 {0xFFE3, 0xFFE3, GX_BIDI_CHARACTER_TYPE_ON},
1202 {0xFFE4, 0xFFE4, GX_BIDI_CHARACTER_TYPE_ON},
1203 {0xFFE8, 0xFFE8, GX_BIDI_CHARACTER_TYPE_ON},
1204 {0xFFE9, 0xFFEC, GX_BIDI_CHARACTER_TYPE_ON},
1205 {0xFFED, 0xFFEE, GX_BIDI_CHARACTER_TYPE_ON},
1206 {0xFFF9, 0xFFFB, GX_BIDI_CHARACTER_TYPE_ON},
1207 {0xFFFC, 0xFFFD, GX_BIDI_CHARACTER_TYPE_ON},
1208 {0x10101, 0x10101, GX_BIDI_CHARACTER_TYPE_ON},
1209 {0x10140, 0x10174, GX_BIDI_CHARACTER_TYPE_ON},
1210 {0x10175, 0x10178, GX_BIDI_CHARACTER_TYPE_ON},
1211 {0x10179, 0x10189, GX_BIDI_CHARACTER_TYPE_ON},
1212 {0x1018A, 0x1018A, GX_BIDI_CHARACTER_TYPE_ON},
1213 {0x10190, 0x1019B, GX_BIDI_CHARACTER_TYPE_ON},
1214 {0x1091F, 0x1091F, GX_BIDI_CHARACTER_TYPE_ON},
1215 {0x1D200, 0x1D241, GX_BIDI_CHARACTER_TYPE_ON},
1216 {0x1D245, 0x1D245, GX_BIDI_CHARACTER_TYPE_ON},
1217 {0x1D300, 0x1D356, GX_BIDI_CHARACTER_TYPE_ON},
1218 {0x1F000, 0x1F02B, GX_BIDI_CHARACTER_TYPE_ON},
1219 {0x1F030, 0x1F093, GX_BIDI_CHARACTER_TYPE_ON},
1220 {0x0000, 0x0008, GX_BIDI_CHARACTER_TYPE_BN},
1221 {0x000E, 0x001B, GX_BIDI_CHARACTER_TYPE_BN},
1222 {0x007F, 0x0084, GX_BIDI_CHARACTER_TYPE_BN},
1223 {0x0086, 0x009F, GX_BIDI_CHARACTER_TYPE_BN},
1224 {0x00AD, 0x00AD, GX_BIDI_CHARACTER_TYPE_BN},
1225 {0x070F, 0x070F, GX_BIDI_CHARACTER_TYPE_BN},
1226 {0x200B, 0x200D, GX_BIDI_CHARACTER_TYPE_BN},
1227 {0x2060, 0x2064, GX_BIDI_CHARACTER_TYPE_BN},
1228 {0x2065, 0x2069, GX_BIDI_CHARACTER_TYPE_BN},
1229 {0x206A, 0x206F, GX_BIDI_CHARACTER_TYPE_BN},
1230 {0xFDD0, 0xFDEF, GX_BIDI_CHARACTER_TYPE_BN},
1231 {0xFEFF, 0xFEFF, GX_BIDI_CHARACTER_TYPE_BN},
1232 {0xFFF0, 0xFFF8, GX_BIDI_CHARACTER_TYPE_BN},
1233 {0xFFFE, 0xFFFF, GX_BIDI_CHARACTER_TYPE_BN},
1234 {0x1D173, 0x1D17A, GX_BIDI_CHARACTER_TYPE_BN},
1235 {0x1FFFE, 0x1FFFF, GX_BIDI_CHARACTER_TYPE_BN},
1236 {0x2FFFE, 0x2FFFF, GX_BIDI_CHARACTER_TYPE_BN},
1237 {0x3FFFE, 0x3FFFF, GX_BIDI_CHARACTER_TYPE_BN},
1238 {0x4FFFE, 0x4FFFF, GX_BIDI_CHARACTER_TYPE_BN},
1239 {0x5FFFE, 0x5FFFF, GX_BIDI_CHARACTER_TYPE_BN},
1240 {0x6FFFE, 0x6FFFF, GX_BIDI_CHARACTER_TYPE_BN},
1241 {0x7FFFE, 0x7FFFF, GX_BIDI_CHARACTER_TYPE_BN},
1242 {0x8FFFE, 0x8FFFF, GX_BIDI_CHARACTER_TYPE_BN},
1243 {0x9FFFE, 0x9FFFF, GX_BIDI_CHARACTER_TYPE_BN},
1244 {0xAFFFE, 0xAFFFF, GX_BIDI_CHARACTER_TYPE_BN},
1245 {0xBFFFE, 0xBFFFF, GX_BIDI_CHARACTER_TYPE_BN},
1246 {0xCFFFE, 0xCFFFF, GX_BIDI_CHARACTER_TYPE_BN},
1247 {0xDFFFE, 0xE0000, GX_BIDI_CHARACTER_TYPE_BN},
1248 {0xE0001, 0xE0001, GX_BIDI_CHARACTER_TYPE_BN},
1249 {0xE0002, 0xE001F, GX_BIDI_CHARACTER_TYPE_BN},
1250 {0xE0020, 0xE007F, GX_BIDI_CHARACTER_TYPE_BN},
1251 {0xE0080, 0xE00FF, GX_BIDI_CHARACTER_TYPE_BN},
1252 {0xE01F0, 0xE0FFF, GX_BIDI_CHARACTER_TYPE_BN},
1253 {0xEFFFE, 0xEFFFF, GX_BIDI_CHARACTER_TYPE_BN},
1254 {0xFFFFE, 0xFFFFF, GX_BIDI_CHARACTER_TYPE_BN},
1255 {0x10FFFE, 0x10FFFF, GX_BIDI_CHARACTER_TYPE_BN},
1256 {0x0300, 0x036F, GX_BIDI_CHARACTER_TYPE_NSM},
1257 {0x0483, 0x0487, GX_BIDI_CHARACTER_TYPE_NSM},
1258 {0x0488, 0x0489, GX_BIDI_CHARACTER_TYPE_NSM},
1259 {0x0591, 0x05BD, GX_BIDI_CHARACTER_TYPE_NSM},
1260 {0x05BF, 0x05BF, GX_BIDI_CHARACTER_TYPE_NSM},
1261 {0x05C1, 0x05C2, GX_BIDI_CHARACTER_TYPE_NSM},
1262 {0x05C4, 0x05C5, GX_BIDI_CHARACTER_TYPE_NSM},
1263 {0x05C7, 0x05C7, GX_BIDI_CHARACTER_TYPE_NSM},
1264 {0x0610, 0x061A, GX_BIDI_CHARACTER_TYPE_NSM},
1265 {0x064B, 0x065E, GX_BIDI_CHARACTER_TYPE_NSM},
1266 {0x0670, 0x0670, GX_BIDI_CHARACTER_TYPE_NSM},
1267 {0x06D6, 0x06DC, GX_BIDI_CHARACTER_TYPE_NSM},
1268 {0x06DE, 0x06DE, GX_BIDI_CHARACTER_TYPE_NSM},
1269 {0x06DF, 0x06E4, GX_BIDI_CHARACTER_TYPE_NSM},
1270 {0x06E7, 0x06E8, GX_BIDI_CHARACTER_TYPE_NSM},
1271 {0x06EA, 0x06ED, GX_BIDI_CHARACTER_TYPE_NSM},
1272 {0x0711, 0x0711, GX_BIDI_CHARACTER_TYPE_NSM},
1273 {0x0730, 0x074A, GX_BIDI_CHARACTER_TYPE_NSM},
1274 {0x07A6, 0x07B0, GX_BIDI_CHARACTER_TYPE_NSM},
1275 {0x07EB, 0x07F3, GX_BIDI_CHARACTER_TYPE_NSM},
1276 {0x0901, 0x0902, GX_BIDI_CHARACTER_TYPE_NSM},
1277 {0x093C, 0x093C, GX_BIDI_CHARACTER_TYPE_NSM},
1278 {0x0941, 0x0948, GX_BIDI_CHARACTER_TYPE_NSM},
1279 {0x094D, 0x094D, GX_BIDI_CHARACTER_TYPE_NSM},
1280 {0x0951, 0x0954, GX_BIDI_CHARACTER_TYPE_NSM},
1281 {0x0962, 0x0963, GX_BIDI_CHARACTER_TYPE_NSM},
1282 {0x0981, 0x0981, GX_BIDI_CHARACTER_TYPE_NSM},
1283 {0x09BC, 0x09BC, GX_BIDI_CHARACTER_TYPE_NSM},
1284 {0x09C1, 0x09C4, GX_BIDI_CHARACTER_TYPE_NSM},
1285 {0x09CD, 0x09CD, GX_BIDI_CHARACTER_TYPE_NSM},
1286 {0x09E2, 0x09E3, GX_BIDI_CHARACTER_TYPE_NSM},
1287 {0x0A01, 0x0A02, GX_BIDI_CHARACTER_TYPE_NSM},
1288 {0x0A3C, 0x0A3C, GX_BIDI_CHARACTER_TYPE_NSM},
1289 {0x0A41, 0x0A42, GX_BIDI_CHARACTER_TYPE_NSM},
1290 {0x0A47, 0x0A48, GX_BIDI_CHARACTER_TYPE_NSM},
1291 {0x0A4B, 0x0A4D, GX_BIDI_CHARACTER_TYPE_NSM},
1292 {0x0A51, 0x0A51, GX_BIDI_CHARACTER_TYPE_NSM},
1293 {0x0A70, 0x0A71, GX_BIDI_CHARACTER_TYPE_NSM},
1294 {0x0A75, 0x0A75, GX_BIDI_CHARACTER_TYPE_NSM},
1295 {0x0A81, 0x0A82, GX_BIDI_CHARACTER_TYPE_NSM},
1296 {0x0ABC, 0x0ABC, GX_BIDI_CHARACTER_TYPE_NSM},
1297 {0x0AC1, 0x0AC5, GX_BIDI_CHARACTER_TYPE_NSM},
1298 {0x0AC7, 0x0AC8, GX_BIDI_CHARACTER_TYPE_NSM},
1299 {0x0ACD, 0x0ACD, GX_BIDI_CHARACTER_TYPE_NSM},
1300 {0x0AE2, 0x0AE3, GX_BIDI_CHARACTER_TYPE_NSM},
1301 {0x0B01, 0x0B01, GX_BIDI_CHARACTER_TYPE_NSM},
1302 {0x0B3C, 0x0B3C, GX_BIDI_CHARACTER_TYPE_NSM},
1303 {0x0B3F, 0x0B3F, GX_BIDI_CHARACTER_TYPE_NSM},
1304 {0x0B41, 0x0B44, GX_BIDI_CHARACTER_TYPE_NSM},
1305 {0x0B4D, 0x0B4D, GX_BIDI_CHARACTER_TYPE_NSM},
1306 {0x0B56, 0x0B56, GX_BIDI_CHARACTER_TYPE_NSM},
1307 {0x0B62, 0x0B63, GX_BIDI_CHARACTER_TYPE_NSM},
1308 {0x0B82, 0x0B82, GX_BIDI_CHARACTER_TYPE_NSM},
1309 {0x0BC0, 0x0BC0, GX_BIDI_CHARACTER_TYPE_NSM},
1310 {0x0BCD, 0x0BCD, GX_BIDI_CHARACTER_TYPE_NSM},
1311 {0x0C3E, 0x0C40, GX_BIDI_CHARACTER_TYPE_NSM},
1312 {0x0C46, 0x0C48, GX_BIDI_CHARACTER_TYPE_NSM},
1313 {0x0C4A, 0x0C4D, GX_BIDI_CHARACTER_TYPE_NSM},
1314 {0x0C55, 0x0C56, GX_BIDI_CHARACTER_TYPE_NSM},
1315 {0x0C62, 0x0C63, GX_BIDI_CHARACTER_TYPE_NSM},
1316 {0x0CBC, 0x0CBC, GX_BIDI_CHARACTER_TYPE_NSM},
1317 {0x0CCC, 0x0CCD, GX_BIDI_CHARACTER_TYPE_NSM},
1318 {0x0CE2, 0x0CE3, GX_BIDI_CHARACTER_TYPE_NSM},
1319 {0x0D41, 0x0D44, GX_BIDI_CHARACTER_TYPE_NSM},
1320 {0x0D4D, 0x0D4D, GX_BIDI_CHARACTER_TYPE_NSM},
1321 {0x0D62, 0x0D63, GX_BIDI_CHARACTER_TYPE_NSM},
1322 {0x0DCA, 0x0DCA, GX_BIDI_CHARACTER_TYPE_NSM},
1323 {0x0DD2, 0x0DD4, GX_BIDI_CHARACTER_TYPE_NSM},
1324 {0x0DD6, 0x0DD6, GX_BIDI_CHARACTER_TYPE_NSM},
1325 {0x0E31, 0x0E31, GX_BIDI_CHARACTER_TYPE_NSM},
1326 {0x0E34, 0x0E3A, GX_BIDI_CHARACTER_TYPE_NSM},
1327 {0x0E47, 0x0E4E, GX_BIDI_CHARACTER_TYPE_NSM},
1328 {0x0EB1, 0x0EB1, GX_BIDI_CHARACTER_TYPE_NSM},
1329 {0x0EB4, 0x0EB9, GX_BIDI_CHARACTER_TYPE_NSM},
1330 {0x0EBB, 0x0EBC, GX_BIDI_CHARACTER_TYPE_NSM},
1331 {0x0EC8, 0x0ECD, GX_BIDI_CHARACTER_TYPE_NSM},
1332 {0x0F18, 0x0F19, GX_BIDI_CHARACTER_TYPE_NSM},
1333 {0x0F35, 0x0F35, GX_BIDI_CHARACTER_TYPE_NSM},
1334 {0x0F37, 0x0F37, GX_BIDI_CHARACTER_TYPE_NSM},
1335 {0x0F39, 0x0F39, GX_BIDI_CHARACTER_TYPE_NSM},
1336 {0x0F71, 0x0F7E, GX_BIDI_CHARACTER_TYPE_NSM},
1337 {0x0F80, 0x0F84, GX_BIDI_CHARACTER_TYPE_NSM},
1338 {0x0F86, 0x0F87, GX_BIDI_CHARACTER_TYPE_NSM},
1339 {0x0F90, 0x0F97, GX_BIDI_CHARACTER_TYPE_NSM},
1340 {0x0F99, 0x0FBC, GX_BIDI_CHARACTER_TYPE_NSM},
1341 {0x0FC6, 0x0FC6, GX_BIDI_CHARACTER_TYPE_NSM},
1342 {0x102D, 0x1030, GX_BIDI_CHARACTER_TYPE_NSM},
1343 {0x1032, 0x1037, GX_BIDI_CHARACTER_TYPE_NSM},
1344 {0x1039, 0x103A, GX_BIDI_CHARACTER_TYPE_NSM},
1345 {0x103D, 0x103E, GX_BIDI_CHARACTER_TYPE_NSM},
1346 {0x1058, 0x1059, GX_BIDI_CHARACTER_TYPE_NSM},
1347 {0x105E, 0x1060, GX_BIDI_CHARACTER_TYPE_NSM},
1348 {0x1071, 0x1074, GX_BIDI_CHARACTER_TYPE_NSM},
1349 {0x1082, 0x1082, GX_BIDI_CHARACTER_TYPE_NSM},
1350 {0x1085, 0x1086, GX_BIDI_CHARACTER_TYPE_NSM},
1351 {0x108D, 0x108D, GX_BIDI_CHARACTER_TYPE_NSM},
1352 {0x135F, 0x135F, GX_BIDI_CHARACTER_TYPE_NSM},
1353 {0x1712, 0x1714, GX_BIDI_CHARACTER_TYPE_NSM},
1354 {0x1732, 0x1734, GX_BIDI_CHARACTER_TYPE_NSM},
1355 {0x1752, 0x1753, GX_BIDI_CHARACTER_TYPE_NSM},
1356 {0x1772, 0x1773, GX_BIDI_CHARACTER_TYPE_NSM},
1357 {0x17B7, 0x17BD, GX_BIDI_CHARACTER_TYPE_NSM},
1358 {0x17C6, 0x17C6, GX_BIDI_CHARACTER_TYPE_NSM},
1359 {0x17C9, 0x17D3, GX_BIDI_CHARACTER_TYPE_NSM},
1360 {0x17DD, 0x17DD, GX_BIDI_CHARACTER_TYPE_NSM},
1361 {0x180B, 0x180D, GX_BIDI_CHARACTER_TYPE_NSM},
1362 {0x18A9, 0x18A9, GX_BIDI_CHARACTER_TYPE_NSM},
1363 {0x1920, 0x1922, GX_BIDI_CHARACTER_TYPE_NSM},
1364 {0x1927, 0x1928, GX_BIDI_CHARACTER_TYPE_NSM},
1365 {0x1932, 0x1932, GX_BIDI_CHARACTER_TYPE_NSM},
1366 {0x1939, 0x193B, GX_BIDI_CHARACTER_TYPE_NSM},
1367 {0x1A17, 0x1A18, GX_BIDI_CHARACTER_TYPE_NSM},
1368 {0x1B00, 0x1B03, GX_BIDI_CHARACTER_TYPE_NSM},
1369 {0x1B34, 0x1B34, GX_BIDI_CHARACTER_TYPE_NSM},
1370 {0x1B36, 0x1B3A, GX_BIDI_CHARACTER_TYPE_NSM},
1371 {0x1B3C, 0x1B3C, GX_BIDI_CHARACTER_TYPE_NSM},
1372 {0x1B42, 0x1B42, GX_BIDI_CHARACTER_TYPE_NSM},
1373 {0x1B6B, 0x1B73, GX_BIDI_CHARACTER_TYPE_NSM},
1374 {0x1B80, 0x1B81, GX_BIDI_CHARACTER_TYPE_NSM},
1375 {0x1BA2, 0x1BA5, GX_BIDI_CHARACTER_TYPE_NSM},
1376 {0x1BA8, 0x1BA9, GX_BIDI_CHARACTER_TYPE_NSM},
1377 {0x1C2C, 0x1C33, GX_BIDI_CHARACTER_TYPE_NSM},
1378 {0x1C36, 0x1C37, GX_BIDI_CHARACTER_TYPE_NSM},
1379 {0x1DC0, 0x1DE6, GX_BIDI_CHARACTER_TYPE_NSM},
1380 {0x1DFE, 0x1DFF, GX_BIDI_CHARACTER_TYPE_NSM},
1381 {0x20D0, 0x20DC, GX_BIDI_CHARACTER_TYPE_NSM},
1382 {0x20DD, 0x20E0, GX_BIDI_CHARACTER_TYPE_NSM},
1383 {0x20E1, 0x20E1, GX_BIDI_CHARACTER_TYPE_NSM},
1384 {0x20E2, 0x20E4, GX_BIDI_CHARACTER_TYPE_NSM},
1385 {0x20E5, 0x20F0, GX_BIDI_CHARACTER_TYPE_NSM},
1386 {0x2DE0, 0x2DFF, GX_BIDI_CHARACTER_TYPE_NSM},
1387 {0x302A, 0x302F, GX_BIDI_CHARACTER_TYPE_NSM},
1388 {0x3099, 0x309A, GX_BIDI_CHARACTER_TYPE_NSM},
1389 {0xA66F, 0xA66F, GX_BIDI_CHARACTER_TYPE_NSM},
1390 {0xA670, 0xA672, GX_BIDI_CHARACTER_TYPE_NSM},
1391 {0xA67C, 0xA67D, GX_BIDI_CHARACTER_TYPE_NSM},
1392 {0xA802, 0xA802, GX_BIDI_CHARACTER_TYPE_NSM},
1393 {0xA806, 0xA806, GX_BIDI_CHARACTER_TYPE_NSM},
1394 {0xA80B, 0xA80B, GX_BIDI_CHARACTER_TYPE_NSM},
1395 {0xA825, 0xA826, GX_BIDI_CHARACTER_TYPE_NSM},
1396 {0xA8C4, 0xA8C4, GX_BIDI_CHARACTER_TYPE_NSM},
1397 {0xA926, 0xA92D, GX_BIDI_CHARACTER_TYPE_NSM},
1398 {0xA947, 0xA951, GX_BIDI_CHARACTER_TYPE_NSM},
1399 {0xAA29, 0xAA2E, GX_BIDI_CHARACTER_TYPE_NSM},
1400 {0xAA31, 0xAA32, GX_BIDI_CHARACTER_TYPE_NSM},
1401 {0xAA35, 0xAA36, GX_BIDI_CHARACTER_TYPE_NSM},
1402 {0xAA43, 0xAA43, GX_BIDI_CHARACTER_TYPE_NSM},
1403 {0xAA4C, 0xAA4C, GX_BIDI_CHARACTER_TYPE_NSM},
1404 {0xFB1E, 0xFB1E, GX_BIDI_CHARACTER_TYPE_NSM},
1405 {0xFE00, 0xFE0F, GX_BIDI_CHARACTER_TYPE_NSM},
1406 {0xFE20, 0xFE26, GX_BIDI_CHARACTER_TYPE_NSM},
1407 {0x101FD, 0x101FD, GX_BIDI_CHARACTER_TYPE_NSM},
1408 {0x10A01, 0x10A03, GX_BIDI_CHARACTER_TYPE_NSM},
1409 {0x10A05, 0x10A06, GX_BIDI_CHARACTER_TYPE_NSM},
1410 {0x10A0C, 0x10A0F, GX_BIDI_CHARACTER_TYPE_NSM},
1411 {0x10A38, 0x10A3A, GX_BIDI_CHARACTER_TYPE_NSM},
1412 {0x10A3F, 0x10A3F, GX_BIDI_CHARACTER_TYPE_NSM},
1413 {0x1D167, 0x1D169, GX_BIDI_CHARACTER_TYPE_NSM},
1414 {0x1D17B, 0x1D182, GX_BIDI_CHARACTER_TYPE_NSM},
1415 {0x1D185, 0x1D18B, GX_BIDI_CHARACTER_TYPE_NSM},
1416 {0x1D1AA, 0x1D1AD, GX_BIDI_CHARACTER_TYPE_NSM},
1417 {0x1D242, 0x1D244, GX_BIDI_CHARACTER_TYPE_NSM},
1418 {0xE0100, 0xE01EF, GX_BIDI_CHARACTER_TYPE_NSM},
1419 {0x0604, 0x0605, GX_BIDI_CHARACTER_TYPE_AL},
1420 {0x0608, 0x0608, GX_BIDI_CHARACTER_TYPE_AL},
1421 {0x060B, 0x060B, GX_BIDI_CHARACTER_TYPE_AL},
1422 {0x060D, 0x060D, GX_BIDI_CHARACTER_TYPE_AL},
1423 {0x061B, 0x061B, GX_BIDI_CHARACTER_TYPE_AL},
1424 {0x061C, 0x061D, GX_BIDI_CHARACTER_TYPE_AL},
1425 {0x061E, 0x061F, GX_BIDI_CHARACTER_TYPE_AL},
1426 {0x0620, 0x0620, GX_BIDI_CHARACTER_TYPE_AL},
1427 {0x0621, 0x063F, GX_BIDI_CHARACTER_TYPE_AL},
1428 {0x0640, 0x0640, GX_BIDI_CHARACTER_TYPE_AL},
1429 {0x0641, 0x064A, GX_BIDI_CHARACTER_TYPE_AL},
1430 {0x065F, 0x065F, GX_BIDI_CHARACTER_TYPE_AL},
1431 {0x066D, 0x066D, GX_BIDI_CHARACTER_TYPE_AL},
1432 {0x066E, 0x066F, GX_BIDI_CHARACTER_TYPE_AL},
1433 {0x0671, 0x06D3, GX_BIDI_CHARACTER_TYPE_AL},
1434 {0x06D4, 0x06D4, GX_BIDI_CHARACTER_TYPE_AL},
1435 {0x06D5, 0x06D5, GX_BIDI_CHARACTER_TYPE_AL},
1436 {0x06E5, 0x06E6, GX_BIDI_CHARACTER_TYPE_AL},
1437 {0x06EE, 0x06EF, GX_BIDI_CHARACTER_TYPE_AL},
1438 {0x06FA, 0x06FC, GX_BIDI_CHARACTER_TYPE_AL},
1439 {0x06FD, 0x06FE, GX_BIDI_CHARACTER_TYPE_AL},
1440 {0x06FF, 0x06FF, GX_BIDI_CHARACTER_TYPE_AL},
1441 {0x0700, 0x070D, GX_BIDI_CHARACTER_TYPE_AL},
1442 {0x070E, 0x070E, GX_BIDI_CHARACTER_TYPE_AL},
1443 {0x0710, 0x0710, GX_BIDI_CHARACTER_TYPE_AL},
1444 {0x0712, 0x072F, GX_BIDI_CHARACTER_TYPE_AL},
1445 {0x074B, 0x074C, GX_BIDI_CHARACTER_TYPE_AL},
1446 {0x074D, 0x07A5, GX_BIDI_CHARACTER_TYPE_AL},
1447 {0x07B1, 0x07B1, GX_BIDI_CHARACTER_TYPE_AL},
1448 {0x07B2, 0x07BF, GX_BIDI_CHARACTER_TYPE_AL},
1449 {0xFB50, 0xFBB1, GX_BIDI_CHARACTER_TYPE_AL},
1450 {0xFBB2, 0xFBD2, GX_BIDI_CHARACTER_TYPE_AL},
1451 {0xFBD3, 0xFD3D, GX_BIDI_CHARACTER_TYPE_AL},
1452 {0xFD40, 0xFD4F, GX_BIDI_CHARACTER_TYPE_AL},
1453 {0xFD50, 0xFD8F, GX_BIDI_CHARACTER_TYPE_AL},
1454 {0xFD90, 0xFD91, GX_BIDI_CHARACTER_TYPE_AL},
1455 {0xFD92, 0xFDC7, GX_BIDI_CHARACTER_TYPE_AL},
1456 {0xFDC8, 0xFDCF, GX_BIDI_CHARACTER_TYPE_AL},
1457 {0xFDF0, 0xFDFB, GX_BIDI_CHARACTER_TYPE_AL},
1458 {0xFDFC, 0xFDFC, GX_BIDI_CHARACTER_TYPE_AL},
1459 {0xFDFE, 0xFDFF, GX_BIDI_CHARACTER_TYPE_AL},
1460 {0xFE70, 0xFE74, GX_BIDI_CHARACTER_TYPE_AL},
1461 {0xFE75, 0xFE75, GX_BIDI_CHARACTER_TYPE_AL},
1462 {0xFE76, 0xFEFC, GX_BIDI_CHARACTER_TYPE_AL},
1463 {0xFEFD, 0xFEFE, GX_BIDI_CHARACTER_TYPE_AL},
1464 {0x0600, 0x06FF, GX_BIDI_CHARACTER_TYPE_AL}, /* Arabic */
1465 {0x0700, 0x074F, GX_BIDI_CHARACTER_TYPE_AL}, /* Syriac */
1466 {0x0750, 0x077F, GX_BIDI_CHARACTER_TYPE_AL}, /* Arabic_Supplement */
1467 {0x0780, 0x07BF, GX_BIDI_CHARACTER_TYPE_AL}, /* Thaana */
1468 {0xFB50, 0xFDFF, GX_BIDI_CHARACTER_TYPE_AL}, /* Arabic_Presentation_Formas_A */
1469 {0xFE70, 0xFEFF, GX_BIDI_CHARACTER_TYPE_AL}, /* Arabic_Presentation_formas_B */
1470 {0x0590, 0x05FF, GX_BIDI_CHARACTER_TYPE_R}, /* Hebrew */
1471 {0x07C0, 0x07FF, GX_BIDI_CHARACTER_TYPE_R}, /* NKo*/
1472 {0x00010800, 0x0001083F, GX_BIDI_CHARACTER_TYPE_R}, /* Cypriot_Syllabary */
1473 {0x00010900, 0x0001091F, GX_BIDI_CHARACTER_TYPE_R}, /* Phoenician */
1474 {0x00010920, 0x0001093F, GX_BIDI_CHARACTER_TYPE_R}, /* Lydian */
1475 {0x00010A00, 0x00010A5F, GX_BIDI_CHARACTER_TYPE_R}, /* Kharoshthi */
1476 {0x0800, 0x08FF, GX_BIDI_CHARACTER_TYPE_R},
1477 {0xFB1D, 0xFB4F, GX_BIDI_CHARACTER_TYPE_R},
1478 {0x00010840, 0x00010FFF, GX_BIDI_CHARACTER_TYPE_R},
1479 {0, 0, 0}
1480 };
1481
1482 /**************************************************************************/
1483 /* */
1484 /* FUNCTION RELEASE */
1485 /* */
1486 /* _gx_utility_bidi_character_type_get PORTABLE C */
1487 /* 6.1 */
1488 /* AUTHOR */
1489 /* */
1490 /* Kenneth Maxwell, Microsoft Corporation */
1491 /* */
1492 /* DESCRIPTION */
1493 /* */
1494 /* This function gets the bidi type of a unicode. */
1495 /* */
1496 /* INPUT */
1497 /* */
1498 /* code Code point whose bidi type is */
1499 /* retrieved */
1500 /* type Retrieved bidi type. */
1501 /* */
1502 /* OUTPUT */
1503 /* */
1504 /* status Completion status */
1505 /* */
1506 /* CALLS */
1507 /* */
1508 /* None */
1509 /* */
1510 /* CALLED BY */
1511 /* */
1512 /* Application Code */
1513 /* */
1514 /* RELEASE HISTORY */
1515 /* */
1516 /* DATE NAME DESCRIPTION */
1517 /* */
1518 /* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */
1519 /* 09-30-2020 Kenneth Maxwell Modified comment(s), */
1520 /* resulting in version 6.1 */
1521 /* */
1522 /**************************************************************************/
_gx_utility_bidi_character_type_get(ULONG code,GX_UBYTE * type)1523 UINT _gx_utility_bidi_character_type_get(ULONG code, GX_UBYTE *type)
1524 {
1525 GX_UBYTE get_type = GX_BIDI_CHARACTER_TYPE_L;
1526 GX_CONST GX_BIDI_CHARACTER_INFO *entry = _gx_bidi_character_types;
1527
1528 switch (code)
1529 {
1530 case GX_BIDI_DIRECTION_FORMAT_LRE:
1531 get_type = GX_BIDI_CHARACTER_TYPE_LRE;
1532 break;
1533 case GX_BIDI_DIRECTION_FORMAT_RLE:
1534 get_type = GX_BIDI_CHARACTER_TYPE_RLE;
1535 break;
1536 case GX_BIDI_DIRECTION_FORMAT_LRO:
1537 get_type = GX_BIDI_CHARACTER_TYPE_LRO;
1538 break;
1539 case GX_BIDI_DIRECTION_FORMAT_RLO:
1540 get_type = GX_BIDI_CHARACTER_TYPE_RLO;
1541 break;
1542 case GX_BIDI_DIRECTION_FORMAT_PDF:
1543 get_type = GX_BIDI_CHARACTER_TYPE_PDF;
1544 break;
1545 case GX_BIDI_DIRECTION_FORMAT_LRI:
1546 get_type = GX_BIDI_CHARACTER_TYPE_LRI;
1547 break;
1548 case GX_BIDI_DIRECTION_FORMAT_RLI:
1549 get_type = GX_BIDI_CHARACTER_TYPE_RLI;
1550 break;
1551 case GX_BIDI_DIRECTION_FORMAT_FSI:
1552 get_type = GX_BIDI_CHARACTER_TYPE_FSI;
1553 break;
1554 case GX_BIDI_DIRECTION_FORMAT_PDI:
1555 get_type = GX_BIDI_CHARACTER_TYPE_PDI;
1556 break;
1557
1558 default:
1559 while (entry -> gx_bidi_character_info_type)
1560 {
1561 if ((code >= entry -> gx_bidi_character_info_range_start) &&
1562 (code <= entry -> gx_bidi_character_info_range_end))
1563 {
1564 get_type = entry -> gx_bidi_character_info_type;
1565 break;
1566 }
1567
1568 entry++;
1569 }
1570 break;
1571 }
1572
1573 if (type)
1574 {
1575 *type = get_type;
1576 }
1577
1578 return GX_SUCCESS;
1579 }
1580 #endif
1581