aboutsummaryrefslogtreecommitdiff
path: root/lib/unicode/prop/uprop_get_jt.c
blob: 4ccb44fd16f25c083829983e2058bef9454a8efe (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
/* This file is autogenerated by gen/prop/jt; DO NOT EDIT. */

#include "_bsearch.h"
#include "macros.h"
#include "rune.h"
#include "unicode/prop.h"

static constexpr enum uprop_jt lookup_lat1[] = {
	JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U,
	JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U,
	JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U,
	JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U,
	JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U,
	JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U,
	JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U,
	JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U,
	JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U,
	JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U,
	JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U,
	JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U,
	JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U,
	JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U,
	JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U,
	JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U,
	JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U,
	JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U,
	JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U,
	JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U,
	JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U,
	JT_U, JT_U, JT_U, JT_U, JT_U, JT_T, JT_U, JT_U,
	JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U,
	JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U,
	JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U,
	JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U,
	JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U,
	JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U,
	JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U,
	JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U,
	JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U,
	JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U,
};

static const struct {
	rune lo, hi;
	enum uprop_jt val;
} lookup[] = {
	{RUNE_C(0x000300), RUNE_C(0x00036F), JT_T},
	{RUNE_C(0x000483), RUNE_C(0x000489), JT_T},
	{RUNE_C(0x000591), RUNE_C(0x0005BD), JT_T},
	{RUNE_C(0x0005BF), RUNE_C(0x0005BF), JT_T},
	{RUNE_C(0x0005C1), RUNE_C(0x0005C2), JT_T},
	{RUNE_C(0x0005C4), RUNE_C(0x0005C5), JT_T},
	{RUNE_C(0x0005C7), RUNE_C(0x0005C7), JT_T},
	{RUNE_C(0x000610), RUNE_C(0x00061A), JT_T},
	{RUNE_C(0x00061C), RUNE_C(0x00061C), JT_T},
	{RUNE_C(0x000620), RUNE_C(0x000620), JT_D},
	{RUNE_C(0x000622), RUNE_C(0x000625), JT_R},
	{RUNE_C(0x000626), RUNE_C(0x000626), JT_D},
	{RUNE_C(0x000627), RUNE_C(0x000627), JT_R},
	{RUNE_C(0x000628), RUNE_C(0x000628), JT_D},
	{RUNE_C(0x000629), RUNE_C(0x000629), JT_R},
	{RUNE_C(0x00062A), RUNE_C(0x00062E), JT_D},
	{RUNE_C(0x00062F), RUNE_C(0x000632), JT_R},
	{RUNE_C(0x000633), RUNE_C(0x00063F), JT_D},
	{RUNE_C(0x000640), RUNE_C(0x000640), JT_C},
	{RUNE_C(0x000641), RUNE_C(0x000647), JT_D},
	{RUNE_C(0x000648), RUNE_C(0x000648), JT_R},
	{RUNE_C(0x000649), RUNE_C(0x00064A), JT_D},
	{RUNE_C(0x00064B), RUNE_C(0x00065F), JT_T},
	{RUNE_C(0x00066E), RUNE_C(0x00066F), JT_D},
	{RUNE_C(0x000670), RUNE_C(0x000670), JT_T},
	{RUNE_C(0x000671), RUNE_C(0x000673), JT_R},
	{RUNE_C(0x000675), RUNE_C(0x000677), JT_R},
	{RUNE_C(0x000678), RUNE_C(0x000687), JT_D},
	{RUNE_C(0x000688), RUNE_C(0x000699), JT_R},
	{RUNE_C(0x00069A), RUNE_C(0x0006BF), JT_D},
	{RUNE_C(0x0006C0), RUNE_C(0x0006C0), JT_R},
	{RUNE_C(0x0006C1), RUNE_C(0x0006C2), JT_D},
	{RUNE_C(0x0006C3), RUNE_C(0x0006CB), JT_R},
	{RUNE_C(0x0006CC), RUNE_C(0x0006CC), JT_D},
	{RUNE_C(0x0006CD), RUNE_C(0x0006CD), JT_R},
	{RUNE_C(0x0006CE), RUNE_C(0x0006CE), JT_D},
	{RUNE_C(0x0006CF), RUNE_C(0x0006CF), JT_R},
	{RUNE_C(0x0006D0), RUNE_C(0x0006D1), JT_D},
	{RUNE_C(0x0006D2), RUNE_C(0x0006D3), JT_R},
	{RUNE_C(0x0006D5), RUNE_C(0x0006D5), JT_R},
	{RUNE_C(0x0006D6), RUNE_C(0x0006DC), JT_T},
	{RUNE_C(0x0006DF), RUNE_C(0x0006E4), JT_T},
	{RUNE_C(0x0006E7), RUNE_C(0x0006E8), JT_T},
	{RUNE_C(0x0006EA), RUNE_C(0x0006ED), JT_T},
	{RUNE_C(0x0006EE), RUNE_C(0x0006EF), JT_R},
	{RUNE_C(0x0006FA), RUNE_C(0x0006FC), JT_D},
	{RUNE_C(0x0006FF), RUNE_C(0x0006FF), JT_D},
	{RUNE_C(0x00070F), RUNE_C(0x00070F), JT_T},
	{RUNE_C(0x000710), RUNE_C(0x000710), JT_R},
	{RUNE_C(0x000711), RUNE_C(0x000711), JT_T},
	{RUNE_C(0x000712), RUNE_C(0x000714), JT_D},
	{RUNE_C(0x000715), RUNE_C(0x000719), JT_R},
	{RUNE_C(0x00071A), RUNE_C(0x00071D), JT_D},
	{RUNE_C(0x00071E), RUNE_C(0x00071E), JT_R},
	{RUNE_C(0x00071F), RUNE_C(0x000727), JT_D},
	{RUNE_C(0x000728), RUNE_C(0x000728), JT_R},
	{RUNE_C(0x000729), RUNE_C(0x000729), JT_D},
	{RUNE_C(0x00072A), RUNE_C(0x00072A), JT_R},
	{RUNE_C(0x00072B), RUNE_C(0x00072B), JT_D},
	{RUNE_C(0x00072C), RUNE_C(0x00072C), JT_R},
	{RUNE_C(0x00072D), RUNE_C(0x00072E), JT_D},
	{RUNE_C(0x00072F), RUNE_C(0x00072F), JT_R},
	{RUNE_C(0x000730), RUNE_C(0x00074A), JT_T},
	{RUNE_C(0x00074D), RUNE_C(0x00074D), JT_R},
	{RUNE_C(0x00074E), RUNE_C(0x000758), JT_D},
	{RUNE_C(0x000759), RUNE_C(0x00075B), JT_R},
	{RUNE_C(0x00075C), RUNE_C(0x00076A), JT_D},
	{RUNE_C(0x00076B), RUNE_C(0x00076C), JT_R},
	{RUNE_C(0x00076D), RUNE_C(0x000770), JT_D},
	{RUNE_C(0x000771), RUNE_C(0x000771), JT_R},
	{RUNE_C(0x000772), RUNE_C(0x000772), JT_D},
	{RUNE_C(0x000773), RUNE_C(0x000774), JT_R},
	{RUNE_C(0x000775), RUNE_C(0x000777), JT_D},
	{RUNE_C(0x000778), RUNE_C(0x000779), JT_R},
	{RUNE_C(0x00077A), RUNE_C(0x00077F), JT_D},
	{RUNE_C(0x0007A6), RUNE_C(0x0007B0), JT_T},
	{RUNE_C(0x0007CA), RUNE_C(0x0007EA), JT_D},
	{RUNE_C(0x0007EB), RUNE_C(0x0007F3), JT_T},
	{RUNE_C(0x0007FA), RUNE_C(0x0007FA), JT_C},
	{RUNE_C(0x0007FD), RUNE_C(0x0007FD), JT_T},
	{RUNE_C(0x000816), RUNE_C(0x000819), JT_T},
	{RUNE_C(0x00081B), RUNE_C(0x000823), JT_T},
	{RUNE_C(0x000825), RUNE_C(0x000827), JT_T},
	{RUNE_C(0x000829), RUNE_C(0x00082D), JT_T},
	{RUNE_C(0x000840), RUNE_C(0x000840), JT_R},
	{RUNE_C(0x000841), RUNE_C(0x000845), JT_D},
	{RUNE_C(0x000846), RUNE_C(0x000847), JT_R},
	{RUNE_C(0x000848), RUNE_C(0x000848), JT_D},
	{RUNE_C(0x000849), RUNE_C(0x000849), JT_R},
	{RUNE_C(0x00084A), RUNE_C(0x000853), JT_D},
	{RUNE_C(0x000854), RUNE_C(0x000854), JT_R},
	{RUNE_C(0x000855), RUNE_C(0x000855), JT_D},
	{RUNE_C(0x000856), RUNE_C(0x000858), JT_R},
	{RUNE_C(0x000859), RUNE_C(0x00085B), JT_T},
	{RUNE_C(0x000860), RUNE_C(0x000860), JT_D},
	{RUNE_C(0x000862), RUNE_C(0x000865), JT_D},
	{RUNE_C(0x000867), RUNE_C(0x000867), JT_R},
	{RUNE_C(0x000868), RUNE_C(0x000868), JT_D},
	{RUNE_C(0x000869), RUNE_C(0x00086A), JT_R},
	{RUNE_C(0x000870), RUNE_C(0x000882), JT_R},
	{RUNE_C(0x000883), RUNE_C(0x000885), JT_C},
	{RUNE_C(0x000886), RUNE_C(0x000886), JT_D},
	{RUNE_C(0x000889), RUNE_C(0x00088D), JT_D},
	{RUNE_C(0x00088E), RUNE_C(0x00088E), JT_R},
	{RUNE_C(0x000898), RUNE_C(0x00089F), JT_T},
	{RUNE_C(0x0008A0), RUNE_C(0x0008A9), JT_D},
	{RUNE_C(0x0008AA), RUNE_C(0x0008AC), JT_R},
	{RUNE_C(0x0008AE), RUNE_C(0x0008AE), JT_R},
	{RUNE_C(0x0008AF), RUNE_C(0x0008B0), JT_D},
	{RUNE_C(0x0008B1), RUNE_C(0x0008B2), JT_R},
	{RUNE_C(0x0008B3), RUNE_C(0x0008B8), JT_D},
	{RUNE_C(0x0008B9), RUNE_C(0x0008B9), JT_R},
	{RUNE_C(0x0008BA), RUNE_C(0x0008C8), JT_D},
	{RUNE_C(0x0008CA), RUNE_C(0x0008E1), JT_T},
	{RUNE_C(0x0008E3), RUNE_C(0x000902), JT_T},
	{RUNE_C(0x00093A), RUNE_C(0x00093A), JT_T},
	{RUNE_C(0x00093C), RUNE_C(0x00093C), JT_T},
	{RUNE_C(0x000941), RUNE_C(0x000948), JT_T},
	{RUNE_C(0x00094D), RUNE_C(0x00094D), JT_T},
	{RUNE_C(0x000951), RUNE_C(0x000957), JT_T},
	{RUNE_C(0x000962), RUNE_C(0x000963), JT_T},
	{RUNE_C(0x000981), RUNE_C(0x000981), JT_T},
	{RUNE_C(0x0009BC), RUNE_C(0x0009BC), JT_T},
	{RUNE_C(0x0009C1), RUNE_C(0x0009C4), JT_T},
	{RUNE_C(0x0009CD), RUNE_C(0x0009CD), JT_T},
	{RUNE_C(0x0009E2), RUNE_C(0x0009E3), JT_T},
	{RUNE_C(0x0009FE), RUNE_C(0x0009FE), JT_T},
	{RUNE_C(0x000A01), RUNE_C(0x000A02), JT_T},
	{RUNE_C(0x000A3C), RUNE_C(0x000A3C), JT_T},
	{RUNE_C(0x000A41), RUNE_C(0x000A42), JT_T},
	{RUNE_C(0x000A47), RUNE_C(0x000A48), JT_T},
	{RUNE_C(0x000A4B), RUNE_C(0x000A4D), JT_T},
	{RUNE_C(0x000A51), RUNE_C(0x000A51), JT_T},
	{RUNE_C(0x000A70), RUNE_C(0x000A71), JT_T},
	{RUNE_C(0x000A75), RUNE_C(0x000A75), JT_T},
	{RUNE_C(0x000A81), RUNE_C(0x000A82), JT_T},
	{RUNE_C(0x000ABC), RUNE_C(0x000ABC), JT_T},
	{RUNE_C(0x000AC1), RUNE_C(0x000AC5), JT_T},
	{RUNE_C(0x000AC7), RUNE_C(0x000AC8), JT_T},
	{RUNE_C(0x000ACD), RUNE_C(0x000ACD), JT_T},
	{RUNE_C(0x000AE2), RUNE_C(0x000AE3), JT_T},
	{RUNE_C(0x000AFA), RUNE_C(0x000AFF), JT_T},
	{RUNE_C(0x000B01), RUNE_C(0x000B01), JT_T},
	{RUNE_C(0x000B3C), RUNE_C(0x000B3C), JT_T},
	{RUNE_C(0x000B3F), RUNE_C(0x000B3F), JT_T},
	{RUNE_C(0x000B41), RUNE_C(0x000B44), JT_T},
	{RUNE_C(0x000B4D), RUNE_C(0x000B4D), JT_T},
	{RUNE_C(0x000B55), RUNE_C(0x000B56), JT_T},
	{RUNE_C(0x000B62), RUNE_C(0x000B63), JT_T},
	{RUNE_C(0x000B82), RUNE_C(0x000B82), JT_T},
	{RUNE_C(0x000BC0), RUNE_C(0x000BC0), JT_T},
	{RUNE_C(0x000BCD), RUNE_C(0x000BCD), JT_T},
	{RUNE_C(0x000C00), RUNE_C(0x000C00), JT_T},
	{RUNE_C(0x000C04), RUNE_C(0x000C04), JT_T},
	{RUNE_C(0x000C3C), RUNE_C(0x000C3C), JT_T},
	{RUNE_C(0x000C3E), RUNE_C(0x000C40), JT_T},
	{RUNE_C(0x000C46), RUNE_C(0x000C48), JT_T},
	{RUNE_C(0x000C4A), RUNE_C(0x000C4D), JT_T},
	{RUNE_C(0x000C55), RUNE_C(0x000C56), JT_T},
	{RUNE_C(0x000C62), RUNE_C(0x000C63), JT_T},
	{RUNE_C(0x000C81), RUNE_C(0x000C81), JT_T},
	{RUNE_C(0x000CBC), RUNE_C(0x000CBC), JT_T},
	{RUNE_C(0x000CBF), RUNE_C(0x000CBF), JT_T},
	{RUNE_C(0x000CC6), RUNE_C(0x000CC6), JT_T},
	{RUNE_C(0x000CCC), RUNE_C(0x000CCD), JT_T},
	{RUNE_C(0x000CE2), RUNE_C(0x000CE3), JT_T},
	{RUNE_C(0x000D00), RUNE_C(0x000D01), JT_T},
	{RUNE_C(0x000D3B), RUNE_C(0x000D3C), JT_T},
	{RUNE_C(0x000D41), RUNE_C(0x000D44), JT_T},
	{RUNE_C(0x000D4D), RUNE_C(0x000D4D), JT_T},
	{RUNE_C(0x000D62), RUNE_C(0x000D63), JT_T},
	{RUNE_C(0x000D81), RUNE_C(0x000D81), JT_T},
	{RUNE_C(0x000DCA), RUNE_C(0x000DCA), JT_T},
	{RUNE_C(0x000DD2), RUNE_C(0x000DD4), JT_T},
	{RUNE_C(0x000DD6), RUNE_C(0x000DD6), JT_T},
	{RUNE_C(0x000E31), RUNE_C(0x000E31), JT_T},
	{RUNE_C(0x000E34), RUNE_C(0x000E3A), JT_T},
	{RUNE_C(0x000E47), RUNE_C(0x000E4E), JT_T},
	{RUNE_C(0x000EB1), RUNE_C(0x000EB1), JT_T},
	{RUNE_C(0x000EB4), RUNE_C(0x000EBC), JT_T},
	{RUNE_C(0x000EC8), RUNE_C(0x000ECE), JT_T},
	{RUNE_C(0x000F18), RUNE_C(0x000F19), JT_T},
	{RUNE_C(0x000F35), RUNE_C(0x000F35), JT_T},
	{RUNE_C(0x000F37), RUNE_C(0x000F37), JT_T},
	{RUNE_C(0x000F39), RUNE_C(0x000F39), JT_T},
	{RUNE_C(0x000F71), RUNE_C(0x000F7E), JT_T},
	{RUNE_C(0x000F80), RUNE_C(0x000F84), JT_T},
	{RUNE_C(0x000F86), RUNE_C(0x000F87), JT_T},
	{RUNE_C(0x000F8D), RUNE_C(0x000F97), JT_T},
	{RUNE_C(0x000F99), RUNE_C(0x000FBC), JT_T},
	{RUNE_C(0x000FC6), RUNE_C(0x000FC6), JT_T},
	{RUNE_C(0x00102D), RUNE_C(0x001030), JT_T},
	{RUNE_C(0x001032), RUNE_C(0x001037), JT_T},
	{RUNE_C(0x001039), RUNE_C(0x00103A), JT_T},
	{RUNE_C(0x00103D), RUNE_C(0x00103E), JT_T},
	{RUNE_C(0x001058), RUNE_C(0x001059), JT_T},
	{RUNE_C(0x00105E), RUNE_C(0x001060), JT_T},
	{RUNE_C(0x001071), RUNE_C(0x001074), JT_T},
	{RUNE_C(0x001082), RUNE_C(0x001082), JT_T},
	{RUNE_C(0x001085), RUNE_C(0x001086), JT_T},
	{RUNE_C(0x00108D), RUNE_C(0x00108D), JT_T},
	{RUNE_C(0x00109D), RUNE_C(0x00109D), JT_T},
	{RUNE_C(0x00135D), RUNE_C(0x00135F), JT_T},
	{RUNE_C(0x001712), RUNE_C(0x001714), JT_T},
	{RUNE_C(0x001732), RUNE_C(0x001733), JT_T},
	{RUNE_C(0x001752), RUNE_C(0x001753), JT_T},
	{RUNE_C(0x001772), RUNE_C(0x001773), JT_T},
	{RUNE_C(0x0017B4), RUNE_C(0x0017B5), JT_T},
	{RUNE_C(0x0017B7), RUNE_C(0x0017BD), JT_T},
	{RUNE_C(0x0017C6), RUNE_C(0x0017C6), JT_T},
	{RUNE_C(0x0017C9), RUNE_C(0x0017D3), JT_T},
	{RUNE_C(0x0017DD), RUNE_C(0x0017DD), JT_T},
	{RUNE_C(0x001807), RUNE_C(0x001807), JT_D},
	{RUNE_C(0x00180A), RUNE_C(0x00180A), JT_C},
	{RUNE_C(0x00180B), RUNE_C(0x00180D), JT_T},
	{RUNE_C(0x00180F), RUNE_C(0x00180F), JT_T},
	{RUNE_C(0x001820), RUNE_C(0x001878), JT_D},
	{RUNE_C(0x001885), RUNE_C(0x001886), JT_T},
	{RUNE_C(0x001887), RUNE_C(0x0018A8), JT_D},
	{RUNE_C(0x0018A9), RUNE_C(0x0018A9), JT_T},
	{RUNE_C(0x0018AA), RUNE_C(0x0018AA), JT_D},
	{RUNE_C(0x001920), RUNE_C(0x001922), JT_T},
	{RUNE_C(0x001927), RUNE_C(0x001928), JT_T},
	{RUNE_C(0x001932), RUNE_C(0x001932), JT_T},
	{RUNE_C(0x001939), RUNE_C(0x00193B), JT_T},
	{RUNE_C(0x001A17), RUNE_C(0x001A18), JT_T},
	{RUNE_C(0x001A1B), RUNE_C(0x001A1B), JT_T},
	{RUNE_C(0x001A56), RUNE_C(0x001A56), JT_T},
	{RUNE_C(0x001A58), RUNE_C(0x001A5E), JT_T},
	{RUNE_C(0x001A60), RUNE_C(0x001A60), JT_T},
	{RUNE_C(0x001A62), RUNE_C(0x001A62), JT_T},
	{RUNE_C(0x001A65), RUNE_C(0x001A6C), JT_T},
	{RUNE_C(0x001A73), RUNE_C(0x001A7C), JT_T},
	{RUNE_C(0x001A7F), RUNE_C(0x001A7F), JT_T},
	{RUNE_C(0x001AB0), RUNE_C(0x001ACE), JT_T},
	{RUNE_C(0x001B00), RUNE_C(0x001B03), JT_T},
	{RUNE_C(0x001B34), RUNE_C(0x001B34), JT_T},
	{RUNE_C(0x001B36), RUNE_C(0x001B3A), JT_T},
	{RUNE_C(0x001B3C), RUNE_C(0x001B3C), JT_T},
	{RUNE_C(0x001B42), RUNE_C(0x001B42), JT_T},
	{RUNE_C(0x001B6B), RUNE_C(0x001B73), JT_T},
	{RUNE_C(0x001B80), RUNE_C(0x001B81), JT_T},
	{RUNE_C(0x001BA2), RUNE_C(0x001BA5), JT_T},
	{RUNE_C(0x001BA8), RUNE_C(0x001BA9), JT_T},
	{RUNE_C(0x001BAB), RUNE_C(0x001BAD), JT_T},
	{RUNE_C(0x001BE6), RUNE_C(0x001BE6), JT_T},
	{RUNE_C(0x001BE8), RUNE_C(0x001BE9), JT_T},
	{RUNE_C(0x001BED), RUNE_C(0x001BED), JT_T},
	{RUNE_C(0x001BEF), RUNE_C(0x001BF1), JT_T},
	{RUNE_C(0x001C2C), RUNE_C(0x001C33), JT_T},
	{RUNE_C(0x001C36), RUNE_C(0x001C37), JT_T},
	{RUNE_C(0x001CD0), RUNE_C(0x001CD2), JT_T},
	{RUNE_C(0x001CD4), RUNE_C(0x001CE0), JT_T},
	{RUNE_C(0x001CE2), RUNE_C(0x001CE8), JT_T},
	{RUNE_C(0x001CED), RUNE_C(0x001CED), JT_T},
	{RUNE_C(0x001CF4), RUNE_C(0x001CF4), JT_T},
	{RUNE_C(0x001CF8), RUNE_C(0x001CF9), JT_T},
	{RUNE_C(0x001DC0), RUNE_C(0x001DFF), JT_T},
	{RUNE_C(0x00200B), RUNE_C(0x00200B), JT_T},
	{RUNE_C(0x00200D), RUNE_C(0x00200D), JT_C},
	{RUNE_C(0x00200E), RUNE_C(0x00200F), JT_T},
	{RUNE_C(0x00202A), RUNE_C(0x00202E), JT_T},
	{RUNE_C(0x002060), RUNE_C(0x002064), JT_T},
	{RUNE_C(0x00206A), RUNE_C(0x00206F), JT_T},
	{RUNE_C(0x0020D0), RUNE_C(0x0020F0), JT_T},
	{RUNE_C(0x002CEF), RUNE_C(0x002CF1), JT_T},
	{RUNE_C(0x002D7F), RUNE_C(0x002D7F), JT_T},
	{RUNE_C(0x002DE0), RUNE_C(0x002DFF), JT_T},
	{RUNE_C(0x00302A), RUNE_C(0x00302D), JT_T},
	{RUNE_C(0x003099), RUNE_C(0x00309A), JT_T},
	{RUNE_C(0x00A66F), RUNE_C(0x00A672), JT_T},
	{RUNE_C(0x00A674), RUNE_C(0x00A67D), JT_T},
	{RUNE_C(0x00A69E), RUNE_C(0x00A69F), JT_T},
	{RUNE_C(0x00A6F0), RUNE_C(0x00A6F1), JT_T},
	{RUNE_C(0x00A802), RUNE_C(0x00A802), JT_T},
	{RUNE_C(0x00A806), RUNE_C(0x00A806), JT_T},
	{RUNE_C(0x00A80B), RUNE_C(0x00A80B), JT_T},
	{RUNE_C(0x00A825), RUNE_C(0x00A826), JT_T},
	{RUNE_C(0x00A82C), RUNE_C(0x00A82C), JT_T},
	{RUNE_C(0x00A840), RUNE_C(0x00A871), JT_D},
	{RUNE_C(0x00A872), RUNE_C(0x00A872), JT_L},
	{RUNE_C(0x00A8C4), RUNE_C(0x00A8C5), JT_T},
	{RUNE_C(0x00A8E0), RUNE_C(0x00A8F1), JT_T},
	{RUNE_C(0x00A8FF), RUNE_C(0x00A8FF), JT_T},
	{RUNE_C(0x00A926), RUNE_C(0x00A92D), JT_T},
	{RUNE_C(0x00A947), RUNE_C(0x00A951), JT_T},
	{RUNE_C(0x00A980), RUNE_C(0x00A982), JT_T},
	{RUNE_C(0x00A9B3), RUNE_C(0x00A9B3), JT_T},
	{RUNE_C(0x00A9B6), RUNE_C(0x00A9B9), JT_T},
	{RUNE_C(0x00A9BC), RUNE_C(0x00A9BD), JT_T},
	{RUNE_C(0x00A9E5), RUNE_C(0x00A9E5), JT_T},
	{RUNE_C(0x00AA29), RUNE_C(0x00AA2E), JT_T},
	{RUNE_C(0x00AA31), RUNE_C(0x00AA32), JT_T},
	{RUNE_C(0x00AA35), RUNE_C(0x00AA36), JT_T},
	{RUNE_C(0x00AA43), RUNE_C(0x00AA43), JT_T},
	{RUNE_C(0x00AA4C), RUNE_C(0x00AA4C), JT_T},
	{RUNE_C(0x00AA7C), RUNE_C(0x00AA7C), JT_T},
	{RUNE_C(0x00AAB0), RUNE_C(0x00AAB0), JT_T},
	{RUNE_C(0x00AAB2), RUNE_C(0x00AAB4), JT_T},
	{RUNE_C(0x00AAB7), RUNE_C(0x00AAB8), JT_T},
	{RUNE_C(0x00AABE), RUNE_C(0x00AABF), JT_T},
	{RUNE_C(0x00AAC1), RUNE_C(0x00AAC1), JT_T},
	{RUNE_C(0x00AAEC), RUNE_C(0x00AAED), JT_T},
	{RUNE_C(0x00AAF6), RUNE_C(0x00AAF6), JT_T},
	{RUNE_C(0x00ABE5), RUNE_C(0x00ABE5), JT_T},
	{RUNE_C(0x00ABE8), RUNE_C(0x00ABE8), JT_T},
	{RUNE_C(0x00ABED), RUNE_C(0x00ABED), JT_T},
	{RUNE_C(0x00FB1E), RUNE_C(0x00FB1E), JT_T},
	{RUNE_C(0x00FE00), RUNE_C(0x00FE0F), JT_T},
	{RUNE_C(0x00FE20), RUNE_C(0x00FE2F), JT_T},
	{RUNE_C(0x00FEFF), RUNE_C(0x00FEFF), JT_T},
	{RUNE_C(0x00FFF9), RUNE_C(0x00FFFB), JT_T},
	{RUNE_C(0x0101FD), RUNE_C(0x0101FD), JT_T},
	{RUNE_C(0x0102E0), RUNE_C(0x0102E0), JT_T},
	{RUNE_C(0x010376), RUNE_C(0x01037A), JT_T},
	{RUNE_C(0x010A01), RUNE_C(0x010A03), JT_T},
	{RUNE_C(0x010A05), RUNE_C(0x010A06), JT_T},
	{RUNE_C(0x010A0C), RUNE_C(0x010A0F), JT_T},
	{RUNE_C(0x010A38), RUNE_C(0x010A3A), JT_T},
	{RUNE_C(0x010A3F), RUNE_C(0x010A3F), JT_T},
	{RUNE_C(0x010AC0), RUNE_C(0x010AC4), JT_D},
	{RUNE_C(0x010AC5), RUNE_C(0x010AC5), JT_R},
	{RUNE_C(0x010AC7), RUNE_C(0x010AC7), JT_R},
	{RUNE_C(0x010AC9), RUNE_C(0x010ACA), JT_R},
	{RUNE_C(0x010ACD), RUNE_C(0x010ACD), JT_L},
	{RUNE_C(0x010ACE), RUNE_C(0x010AD2), JT_R},
	{RUNE_C(0x010AD3), RUNE_C(0x010AD6), JT_D},
	{RUNE_C(0x010AD7), RUNE_C(0x010AD7), JT_L},
	{RUNE_C(0x010AD8), RUNE_C(0x010ADC), JT_D},
	{RUNE_C(0x010ADD), RUNE_C(0x010ADD), JT_R},
	{RUNE_C(0x010ADE), RUNE_C(0x010AE0), JT_D},
	{RUNE_C(0x010AE1), RUNE_C(0x010AE1), JT_R},
	{RUNE_C(0x010AE4), RUNE_C(0x010AE4), JT_R},
	{RUNE_C(0x010AE5), RUNE_C(0x010AE6), JT_T},
	{RUNE_C(0x010AEB), RUNE_C(0x010AEE), JT_D},
	{RUNE_C(0x010AEF), RUNE_C(0x010AEF), JT_R},
	{RUNE_C(0x010B80), RUNE_C(0x010B80), JT_D},
	{RUNE_C(0x010B81), RUNE_C(0x010B81), JT_R},
	{RUNE_C(0x010B82), RUNE_C(0x010B82), JT_D},
	{RUNE_C(0x010B83), RUNE_C(0x010B85), JT_R},
	{RUNE_C(0x010B86), RUNE_C(0x010B88), JT_D},
	{RUNE_C(0x010B89), RUNE_C(0x010B89), JT_R},
	{RUNE_C(0x010B8A), RUNE_C(0x010B8B), JT_D},
	{RUNE_C(0x010B8C), RUNE_C(0x010B8C), JT_R},
	{RUNE_C(0x010B8D), RUNE_C(0x010B8D), JT_D},
	{RUNE_C(0x010B8E), RUNE_C(0x010B8F), JT_R},
	{RUNE_C(0x010B90), RUNE_C(0x010B90), JT_D},
	{RUNE_C(0x010B91), RUNE_C(0x010B91), JT_R},
	{RUNE_C(0x010BA9), RUNE_C(0x010BAC), JT_R},
	{RUNE_C(0x010BAD), RUNE_C(0x010BAE), JT_D},
	{RUNE_C(0x010D00), RUNE_C(0x010D00), JT_L},
	{RUNE_C(0x010D01), RUNE_C(0x010D21), JT_D},
	{RUNE_C(0x010D22), RUNE_C(0x010D22), JT_R},
	{RUNE_C(0x010D23), RUNE_C(0x010D23), JT_D},
	{RUNE_C(0x010D24), RUNE_C(0x010D27), JT_T},
	{RUNE_C(0x010EAB), RUNE_C(0x010EAC), JT_T},
	{RUNE_C(0x010EFD), RUNE_C(0x010EFF), JT_T},
	{RUNE_C(0x010F30), RUNE_C(0x010F32), JT_D},
	{RUNE_C(0x010F33), RUNE_C(0x010F33), JT_R},
	{RUNE_C(0x010F34), RUNE_C(0x010F44), JT_D},
	{RUNE_C(0x010F46), RUNE_C(0x010F50), JT_T},
	{RUNE_C(0x010F51), RUNE_C(0x010F53), JT_D},
	{RUNE_C(0x010F54), RUNE_C(0x010F54), JT_R},
	{RUNE_C(0x010F70), RUNE_C(0x010F73), JT_D},
	{RUNE_C(0x010F74), RUNE_C(0x010F75), JT_R},
	{RUNE_C(0x010F76), RUNE_C(0x010F81), JT_D},
	{RUNE_C(0x010F82), RUNE_C(0x010F85), JT_T},
	{RUNE_C(0x010FB0), RUNE_C(0x010FB0), JT_D},
	{RUNE_C(0x010FB2), RUNE_C(0x010FB3), JT_D},
	{RUNE_C(0x010FB4), RUNE_C(0x010FB6), JT_R},
	{RUNE_C(0x010FB8), RUNE_C(0x010FB8), JT_D},
	{RUNE_C(0x010FB9), RUNE_C(0x010FBA), JT_R},
	{RUNE_C(0x010FBB), RUNE_C(0x010FBC), JT_D},
	{RUNE_C(0x010FBD), RUNE_C(0x010FBD), JT_R},
	{RUNE_C(0x010FBE), RUNE_C(0x010FBF), JT_D},
	{RUNE_C(0x010FC1), RUNE_C(0x010FC1), JT_D},
	{RUNE_C(0x010FC2), RUNE_C(0x010FC3), JT_R},
	{RUNE_C(0x010FC4), RUNE_C(0x010FC4), JT_D},
	{RUNE_C(0x010FC9), RUNE_C(0x010FC9), JT_R},
	{RUNE_C(0x010FCA), RUNE_C(0x010FCA), JT_D},
	{RUNE_C(0x010FCB), RUNE_C(0x010FCB), JT_L},
	{RUNE_C(0x011001), RUNE_C(0x011001), JT_T},
	{RUNE_C(0x011038), RUNE_C(0x011046), JT_T},
	{RUNE_C(0x011070), RUNE_C(0x011070), JT_T},
	{RUNE_C(0x011073), RUNE_C(0x011074), JT_T},
	{RUNE_C(0x01107F), RUNE_C(0x011081), JT_T},
	{RUNE_C(0x0110B3), RUNE_C(0x0110B6), JT_T},
	{RUNE_C(0x0110B9), RUNE_C(0x0110BA), JT_T},
	{RUNE_C(0x0110C2), RUNE_C(0x0110C2), JT_T},
	{RUNE_C(0x011100), RUNE_C(0x011102), JT_T},
	{RUNE_C(0x011127), RUNE_C(0x01112B), JT_T},
	{RUNE_C(0x01112D), RUNE_C(0x011134), JT_T},
	{RUNE_C(0x011173), RUNE_C(0x011173), JT_T},
	{RUNE_C(0x011180), RUNE_C(0x011181), JT_T},
	{RUNE_C(0x0111B6), RUNE_C(0x0111BE), JT_T},
	{RUNE_C(0x0111C9), RUNE_C(0x0111CC), JT_T},
	{RUNE_C(0x0111CF), RUNE_C(0x0111CF), JT_T},
	{RUNE_C(0x01122F), RUNE_C(0x011231), JT_T},
	{RUNE_C(0x011234), RUNE_C(0x011234), JT_T},
	{RUNE_C(0x011236), RUNE_C(0x011237), JT_T},
	{RUNE_C(0x01123E), RUNE_C(0x01123E), JT_T},
	{RUNE_C(0x011241), RUNE_C(0x011241), JT_T},
	{RUNE_C(0x0112DF), RUNE_C(0x0112DF), JT_T},
	{RUNE_C(0x0112E3), RUNE_C(0x0112EA), JT_T},
	{RUNE_C(0x011300), RUNE_C(0x011301), JT_T},
	{RUNE_C(0x01133B), RUNE_C(0x01133C), JT_T},
	{RUNE_C(0x011340), RUNE_C(0x011340), JT_T},
	{RUNE_C(0x011366), RUNE_C(0x01136C), JT_T},
	{RUNE_C(0x011370), RUNE_C(0x011374), JT_T},
	{RUNE_C(0x011438), RUNE_C(0x01143F), JT_T},
	{RUNE_C(0x011442), RUNE_C(0x011444), JT_T},
	{RUNE_C(0x011446), RUNE_C(0x011446), JT_T},
	{RUNE_C(0x01145E), RUNE_C(0x01145E), JT_T},
	{RUNE_C(0x0114B3), RUNE_C(0x0114B8), JT_T},
	{RUNE_C(0x0114BA), RUNE_C(0x0114BA), JT_T},
	{RUNE_C(0x0114BF), RUNE_C(0x0114C0), JT_T},
	{RUNE_C(0x0114C2), RUNE_C(0x0114C3), JT_T},
	{RUNE_C(0x0115B2), RUNE_C(0x0115B5), JT_T},
	{RUNE_C(0x0115BC), RUNE_C(0x0115BD), JT_T},
	{RUNE_C(0x0115BF), RUNE_C(0x0115C0), JT_T},
	{RUNE_C(0x0115DC), RUNE_C(0x0115DD), JT_T},
	{RUNE_C(0x011633), RUNE_C(0x01163A), JT_T},
	{RUNE_C(0x01163D), RUNE_C(0x01163D), JT_T},
	{RUNE_C(0x01163F), RUNE_C(0x011640), JT_T},
	{RUNE_C(0x0116AB), RUNE_C(0x0116AB), JT_T},
	{RUNE_C(0x0116AD), RUNE_C(0x0116AD), JT_T},
	{RUNE_C(0x0116B0), RUNE_C(0x0116B5), JT_T},
	{RUNE_C(0x0116B7), RUNE_C(0x0116B7), JT_T},
	{RUNE_C(0x01171D), RUNE_C(0x01171F), JT_T},
	{RUNE_C(0x011722), RUNE_C(0x011725), JT_T},
	{RUNE_C(0x011727), RUNE_C(0x01172B), JT_T},
	{RUNE_C(0x01182F), RUNE_C(0x011837), JT_T},
	{RUNE_C(0x011839), RUNE_C(0x01183A), JT_T},
	{RUNE_C(0x01193B), RUNE_C(0x01193C), JT_T},
	{RUNE_C(0x01193E), RUNE_C(0x01193E), JT_T},
	{RUNE_C(0x011943), RUNE_C(0x011943), JT_T},
	{RUNE_C(0x0119D4), RUNE_C(0x0119D7), JT_T},
	{RUNE_C(0x0119DA), RUNE_C(0x0119DB), JT_T},
	{RUNE_C(0x0119E0), RUNE_C(0x0119E0), JT_T},
	{RUNE_C(0x011A01), RUNE_C(0x011A0A), JT_T},
	{RUNE_C(0x011A33), RUNE_C(0x011A38), JT_T},
	{RUNE_C(0x011A3B), RUNE_C(0x011A3E), JT_T},
	{RUNE_C(0x011A47), RUNE_C(0x011A47), JT_T},
	{RUNE_C(0x011A51), RUNE_C(0x011A56), JT_T},
	{RUNE_C(0x011A59), RUNE_C(0x011A5B), JT_T},
	{RUNE_C(0x011A8A), RUNE_C(0x011A96), JT_T},
	{RUNE_C(0x011A98), RUNE_C(0x011A99), JT_T},
	{RUNE_C(0x011C30), RUNE_C(0x011C36), JT_T},
	{RUNE_C(0x011C38), RUNE_C(0x011C3D), JT_T},
	{RUNE_C(0x011C3F), RUNE_C(0x011C3F), JT_T},
	{RUNE_C(0x011C92), RUNE_C(0x011CA7), JT_T},
	{RUNE_C(0x011CAA), RUNE_C(0x011CB0), JT_T},
	{RUNE_C(0x011CB2), RUNE_C(0x011CB3), JT_T},
	{RUNE_C(0x011CB5), RUNE_C(0x011CB6), JT_T},
	{RUNE_C(0x011D31), RUNE_C(0x011D36), JT_T},
	{RUNE_C(0x011D3A), RUNE_C(0x011D3A), JT_T},
	{RUNE_C(0x011D3C), RUNE_C(0x011D3D), JT_T},
	{RUNE_C(0x011D3F), RUNE_C(0x011D45), JT_T},
	{RUNE_C(0x011D47), RUNE_C(0x011D47), JT_T},
	{RUNE_C(0x011D90), RUNE_C(0x011D91), JT_T},
	{RUNE_C(0x011D95), RUNE_C(0x011D95), JT_T},
	{RUNE_C(0x011D97), RUNE_C(0x011D97), JT_T},
	{RUNE_C(0x011EF3), RUNE_C(0x011EF4), JT_T},
	{RUNE_C(0x011F00), RUNE_C(0x011F01), JT_T},
	{RUNE_C(0x011F36), RUNE_C(0x011F3A), JT_T},
	{RUNE_C(0x011F40), RUNE_C(0x011F40), JT_T},
	{RUNE_C(0x011F42), RUNE_C(0x011F42), JT_T},
	{RUNE_C(0x013430), RUNE_C(0x013440), JT_T},
	{RUNE_C(0x013447), RUNE_C(0x013455), JT_T},
	{RUNE_C(0x016AF0), RUNE_C(0x016AF4), JT_T},
	{RUNE_C(0x016B30), RUNE_C(0x016B36), JT_T},
	{RUNE_C(0x016F4F), RUNE_C(0x016F4F), JT_T},
	{RUNE_C(0x016F8F), RUNE_C(0x016F92), JT_T},
	{RUNE_C(0x016FE4), RUNE_C(0x016FE4), JT_T},
	{RUNE_C(0x01BC9D), RUNE_C(0x01BC9E), JT_T},
	{RUNE_C(0x01BCA0), RUNE_C(0x01BCA3), JT_T},
	{RUNE_C(0x01CF00), RUNE_C(0x01CF2D), JT_T},
	{RUNE_C(0x01CF30), RUNE_C(0x01CF46), JT_T},
	{RUNE_C(0x01D167), RUNE_C(0x01D169), JT_T},
	{RUNE_C(0x01D173), RUNE_C(0x01D182), JT_T},
	{RUNE_C(0x01D185), RUNE_C(0x01D18B), JT_T},
	{RUNE_C(0x01D1AA), RUNE_C(0x01D1AD), JT_T},
	{RUNE_C(0x01D242), RUNE_C(0x01D244), JT_T},
	{RUNE_C(0x01DA00), RUNE_C(0x01DA36), JT_T},
	{RUNE_C(0x01DA3B), RUNE_C(0x01DA6C), JT_T},
	{RUNE_C(0x01DA75), RUNE_C(0x01DA75), JT_T},
	{RUNE_C(0x01DA84), RUNE_C(0x01DA84), JT_T},
	{RUNE_C(0x01DA9B), RUNE_C(0x01DA9F), JT_T},
	{RUNE_C(0x01DAA1), RUNE_C(0x01DAAF), JT_T},
	{RUNE_C(0x01E000), RUNE_C(0x01E006), JT_T},
	{RUNE_C(0x01E008), RUNE_C(0x01E018), JT_T},
	{RUNE_C(0x01E01B), RUNE_C(0x01E021), JT_T},
	{RUNE_C(0x01E023), RUNE_C(0x01E024), JT_T},
	{RUNE_C(0x01E026), RUNE_C(0x01E02A), JT_T},
	{RUNE_C(0x01E08F), RUNE_C(0x01E08F), JT_T},
	{RUNE_C(0x01E130), RUNE_C(0x01E136), JT_T},
	{RUNE_C(0x01E2AE), RUNE_C(0x01E2AE), JT_T},
	{RUNE_C(0x01E2EC), RUNE_C(0x01E2EF), JT_T},
	{RUNE_C(0x01E4EC), RUNE_C(0x01E4EF), JT_T},
	{RUNE_C(0x01E8D0), RUNE_C(0x01E8D6), JT_T},
	{RUNE_C(0x01E900), RUNE_C(0x01E943), JT_D},
	{RUNE_C(0x01E944), RUNE_C(0x01E94B), JT_T},
	{RUNE_C(0x0E0001), RUNE_C(0x0E0001), JT_T},
	{RUNE_C(0x0E0020), RUNE_C(0x0E007F), JT_T},
	{RUNE_C(0x0E0100), RUNE_C(0x0E01EF), JT_T},
};

_MLIB_DEFINE_BSEARCH(enum uprop_jt, lookup, JT_U)

enum uprop_jt
uprop_get_jt(rune ch)
{
	return ch < lengthof(lookup_lat1) ? lookup_lat1[ch] : mlib_lookup(ch);
}