iv-phonic 0.0.7 → 0.0.8
Sign up to get free protection for your applications and to get access to all the features.
- data/Manifest.txt +1 -1
- data/Rakefile +1 -1
- data/ext/include/iv/ast.h +8 -3
- data/ext/include/iv/character.h +878 -0
- data/ext/include/iv/chars.h +15 -39
- data/ext/include/iv/conversions.h +41 -18
- data/ext/include/iv/dtoa.h +4 -4
- data/ext/include/iv/lexer.h +16 -4
- data/ext/include/iv/location.h +2 -0
- data/ext/include/iv/parser.h +98 -50
- data/ext/include/iv/stringpiece.h +3 -3
- data/ext/include/iv/ustringpiece.h +3 -3
- data/ext/iv/phonic/parser.h +1 -1
- metadata +4 -4
- data/ext/include/iv/algorithm.h +0 -23
data/Manifest.txt
CHANGED
@@ -27,7 +27,6 @@ ext/include/iv/xorshift.h
|
|
27
27
|
ext/include/iv/location.h
|
28
28
|
ext/include/iv/ast_info.h
|
29
29
|
ext/include/iv/none.h
|
30
|
-
ext/include/iv/algorithm.h
|
31
30
|
ext/include/iv/ustring.h
|
32
31
|
ext/include/iv/ast_serializer.h
|
33
32
|
ext/include/iv/utils.h
|
@@ -36,6 +35,7 @@ ext/include/iv/alloc.h
|
|
36
35
|
ext/include/iv/chars.h
|
37
36
|
ext/include/iv/fixedcontainer.h
|
38
37
|
ext/include/iv/ustringpiece.h
|
38
|
+
ext/include/iv/character.h
|
39
39
|
ext/include/iv/ucdata.h
|
40
40
|
ext/iv/phonic/factory.h
|
41
41
|
ext/iv/phonic/ast_fwd.h
|
data/Rakefile
CHANGED
@@ -10,7 +10,7 @@ directory "ext/include/iv"
|
|
10
10
|
|
11
11
|
HOE = Hoe.spec 'iv-phonic' do
|
12
12
|
developer('Constellation', 'utatane.tea@gmail.com')
|
13
|
-
self.version = '0.0.
|
13
|
+
self.version = '0.0.8'
|
14
14
|
self.readme_file = 'README.rdoc'
|
15
15
|
self.history_file = 'ChangeLog'
|
16
16
|
self.extra_rdoc_files = FileList['*.rdoc']
|
data/ext/include/iv/ast.h
CHANGED
@@ -70,10 +70,11 @@ class Scope : private Noncopyable<Scope<Factory> >::type {
|
|
70
70
|
FunctionLiteral<Factory>*>::type FunctionLiterals;
|
71
71
|
typedef Scope<Factory> this_type;
|
72
72
|
|
73
|
-
explicit Scope(Factory* factory)
|
73
|
+
explicit Scope(Factory* factory, bool is_global)
|
74
74
|
: up_(NULL),
|
75
75
|
vars_(typename Variables::allocator_type(factory)),
|
76
|
-
funcs_(typename FunctionLiterals::allocator_type(factory))
|
76
|
+
funcs_(typename FunctionLiterals::allocator_type(factory)),
|
77
|
+
is_global_(is_global) {
|
77
78
|
}
|
78
79
|
void AddUnresolved(Identifier<Factory>* name, bool is_const) {
|
79
80
|
vars_.push_back(std::make_pair(name, is_const));
|
@@ -90,6 +91,9 @@ class Scope : private Noncopyable<Scope<Factory> >::type {
|
|
90
91
|
inline const Variables& variables() const {
|
91
92
|
return vars_;
|
92
93
|
}
|
94
|
+
inline bool IsGlobal() const {
|
95
|
+
return is_global_;
|
96
|
+
}
|
93
97
|
this_type* GetUpperScope() {
|
94
98
|
return up_;
|
95
99
|
}
|
@@ -97,6 +101,7 @@ class Scope : private Noncopyable<Scope<Factory> >::type {
|
|
97
101
|
this_type* up_;
|
98
102
|
Variables vars_;
|
99
103
|
FunctionLiterals funcs_;
|
104
|
+
bool is_global_;
|
100
105
|
};
|
101
106
|
|
102
107
|
template<typename Factory>
|
@@ -1255,7 +1260,7 @@ class FunctionLiteral : public FunctionLiteralBase<Factory> {
|
|
1255
1260
|
type_(type),
|
1256
1261
|
params_(typename Identifiers::allocator_type(factory)),
|
1257
1262
|
body_(typename Statements::allocator_type(factory)),
|
1258
|
-
scope_(factory),
|
1263
|
+
scope_(factory, type == GLOBAL),
|
1259
1264
|
strict_(false) {
|
1260
1265
|
}
|
1261
1266
|
|
@@ -0,0 +1,878 @@
|
|
1
|
+
// This header is from java.lang.Character.java in Apache Harmony
|
2
|
+
//
|
3
|
+
// Licensed to the ASF
|
4
|
+
// Apache License
|
5
|
+
//
|
6
|
+
#ifndef _IV_CHARACTER_H_
|
7
|
+
#define _IV_CHARACTER_H_
|
8
|
+
#include <cassert>
|
9
|
+
#include <algorithm>
|
10
|
+
#include <tr1/cstdint>
|
11
|
+
#include <tr1/array>
|
12
|
+
namespace iv {
|
13
|
+
namespace core {
|
14
|
+
namespace character {
|
15
|
+
|
16
|
+
static const uint16_t kMinValue = 0;
|
17
|
+
static const uint16_t kMaxValue = 0xFFFF;
|
18
|
+
|
19
|
+
static const int kMinRadix = 2;
|
20
|
+
static const int kMaxRadix = 36;
|
21
|
+
|
22
|
+
enum Category {
|
23
|
+
UNASSIGNED = 0, // Cn
|
24
|
+
UPPERCASE_LETTER = 1, // Lu
|
25
|
+
LOWERCASE_LETTER = 2, // Ll
|
26
|
+
TITLECASE_LETTER = 3, // Lt
|
27
|
+
MODIFIER_LETTER = 4, // Lm
|
28
|
+
OTHER_LETTER = 5, // Lo
|
29
|
+
NON_SPACING_MARK = 6, // Mn
|
30
|
+
ENCLOSING_MARK = 7, // Me
|
31
|
+
COMBINING_SPACING_MARK = 8, // Mc
|
32
|
+
DECIMAL_DIGIT_NUMBER = 9, // Nd
|
33
|
+
LETTER_NUMBER = 10, // Nl
|
34
|
+
OTHER_NUMBER = 11, // No
|
35
|
+
SPACE_SEPARATOR = 12, // Zs
|
36
|
+
LINE_SEPARATOR = 13, // Zl
|
37
|
+
PARAGRAPH_SEPARATOR = 14, // Zp
|
38
|
+
CONTROL = 15, // Cc
|
39
|
+
FORMAT = 16, // Cf
|
40
|
+
PRIVATE_USE = 18, // Co
|
41
|
+
SURROGATE = 19, // Cs
|
42
|
+
DASH_PUNCTUATION = 20, // Pd
|
43
|
+
START_PUNCTUATION = 21, // Ps
|
44
|
+
END_PUNCTUATION = 22, // Pe
|
45
|
+
CONNECTOR_PUNCTUATION = 23, // Pc
|
46
|
+
OTHER_PUNCTUATION = 24, // Po
|
47
|
+
MATH_SYMBOL = 25, // Sm
|
48
|
+
CURRENCY_SYMBOL = 26, // Sc
|
49
|
+
MODIFIER_SYMBOL = 27, // Sk
|
50
|
+
OTHER_SYMBOL = 28, // So
|
51
|
+
INITIAL_QUOTE_PUNCTUATION = 29, // Pi
|
52
|
+
FINAL_QUOTE_PUNCTUATION = 30 // Pf
|
53
|
+
};
|
54
|
+
|
55
|
+
enum CategoryFlag {
|
56
|
+
Cn = 1 << UNASSIGNED,
|
57
|
+
Lu = 1 << UPPERCASE_LETTER,
|
58
|
+
Ll = 1 << LOWERCASE_LETTER,
|
59
|
+
Lt = 1 << TITLECASE_LETTER,
|
60
|
+
Lm = 1 << MODIFIER_LETTER,
|
61
|
+
Lo = 1 << OTHER_LETTER,
|
62
|
+
Mn = 1 << NON_SPACING_MARK,
|
63
|
+
Me = 1 << ENCLOSING_MARK,
|
64
|
+
Mc = 1 << COMBINING_SPACING_MARK,
|
65
|
+
Nd = 1 << DECIMAL_DIGIT_NUMBER,
|
66
|
+
Nl = 1 << LETTER_NUMBER,
|
67
|
+
No = 1 << OTHER_NUMBER,
|
68
|
+
Zs = 1 << SPACE_SEPARATOR,
|
69
|
+
Zl = 1 << LINE_SEPARATOR,
|
70
|
+
Zp = 1 << PARAGRAPH_SEPARATOR,
|
71
|
+
Cc = 1 << CONTROL,
|
72
|
+
Cf = 1 << FORMAT,
|
73
|
+
Co = 1 << PRIVATE_USE,
|
74
|
+
Cs = 1 << SURROGATE,
|
75
|
+
Pd = 1 << DASH_PUNCTUATION,
|
76
|
+
Ps = 1 << START_PUNCTUATION,
|
77
|
+
Pe = 1 << END_PUNCTUATION,
|
78
|
+
Pc = 1 << CONNECTOR_PUNCTUATION,
|
79
|
+
Po = 1 << OTHER_PUNCTUATION,
|
80
|
+
Sm = 1 << MATH_SYMBOL,
|
81
|
+
Sc = 1 << CURRENCY_SYMBOL,
|
82
|
+
Sk = 1 << MODIFIER_SYMBOL,
|
83
|
+
So = 1 << OTHER_SYMBOL,
|
84
|
+
Pi = 1 << INITIAL_QUOTE_PUNCTUATION,
|
85
|
+
Pf = 1 << FINAL_QUOTE_PUNCTUATION
|
86
|
+
};
|
87
|
+
|
88
|
+
// unicode bidirectional constant
|
89
|
+
static const int kDirectionalityUndefined = -1;
|
90
|
+
static const int kDirectionalityLeftToRight = 0; // L
|
91
|
+
static const int kDirectionalityRightToLeft = 1; // R
|
92
|
+
static const int kDirectionalityRightToLeftArabic = 2; // AL
|
93
|
+
static const int kDirectionalityEnuropeanNumber = 3; // EN
|
94
|
+
static const int kDirectionalityEnuropeanNumberSeparator = 4; // ES
|
95
|
+
static const int kDirectionalityEnuropeanNumberTerminator = 5; // ET
|
96
|
+
static const int kDirectionalityEnuropeanArabicNumber = 6; // AN
|
97
|
+
static const int kDirectionalityCommonNumberSeparator = 7; // CS
|
98
|
+
static const int kDirectionalityNonspacingMark = 8; // NSM
|
99
|
+
static const int kDirectionalityBoundaryNeutral = 9; // BN
|
100
|
+
static const int kDirectionalityParagraphSeparator = 10; // B
|
101
|
+
static const int kDirectionalitySegmentSeparator = 11; // S
|
102
|
+
static const int kDirectionalityWhiteSpace = 12; // WS
|
103
|
+
static const int kDirectionalityOtherNeutrals = 13; // ON
|
104
|
+
static const int kDirectionalityLeftToRightEmbedding = 14; // LRE
|
105
|
+
static const int kDirectionalityLeftToRightOverride = 15; // LRO
|
106
|
+
static const int kDirectionalityRightToLeftEmbedding = 16; // RLE
|
107
|
+
static const int kDirectionalityRightToLeftOverride = 17; // RLO
|
108
|
+
static const int kDirectionalityPopDirectionalFormat = 18; // PDF
|
109
|
+
|
110
|
+
static const uint16_t kMinHighSurrogate = 0xD800;
|
111
|
+
static const uint16_t kMaxHighSurrogate = 0xDBFF;
|
112
|
+
|
113
|
+
static const uint16_t kMaxLowSurrogate = 0xDFFF;
|
114
|
+
static const uint16_t kMinLowSurrogate = 0xD800;
|
115
|
+
|
116
|
+
static const uint16_t kMinSurrogate = 0xD800;
|
117
|
+
static const uint16_t kMaxSurrogate = 0xDFFF;
|
118
|
+
|
119
|
+
static const int kMinSupplementaryCodePoint = 0x10000;
|
120
|
+
static const int kMinCodePoint = 0x0000000;
|
121
|
+
static const int kMaxCodePoint = 0x10FFFF;
|
122
|
+
|
123
|
+
static const int kSize = 16;
|
124
|
+
|
125
|
+
static const std::tr1::array<uint8_t, 1000> kCategoryCache = { {
|
126
|
+
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
|
127
|
+
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
|
128
|
+
12, 24, 24, 24, 26, 24, 24, 24, 21, 22, 24, 25, 24, 20, 24, 24,
|
129
|
+
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 24, 24, 25, 25, 25, 24,
|
130
|
+
24, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
131
|
+
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 21, 24, 22, 27, 23,
|
132
|
+
27, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
133
|
+
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 21, 25, 22, 25, 15,
|
134
|
+
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
|
135
|
+
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
|
136
|
+
12, 24, 26, 26, 26, 26, 28, 28, 27, 28, 2, 29, 25, 16, 28, 27,
|
137
|
+
28, 25, 11, 11, 27, 2, 28, 24, 27, 11, 2, 30, 11, 11, 11, 24,
|
138
|
+
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
139
|
+
1, 1, 1, 1, 1, 1, 1, 25, 1, 1, 1, 1, 1, 1, 1, 2,
|
140
|
+
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
141
|
+
2, 2, 2, 2, 2, 2, 2, 25, 2, 2, 2, 2, 2, 2, 2, 2,
|
142
|
+
1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,
|
143
|
+
1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,
|
144
|
+
1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,
|
145
|
+
1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1,
|
146
|
+
2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2,
|
147
|
+
1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,
|
148
|
+
1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,
|
149
|
+
1, 2, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2,
|
150
|
+
2, 1, 1, 2, 1, 2, 1, 1, 2, 1, 1, 1, 2, 2, 1, 1,
|
151
|
+
1, 1, 2, 1, 1, 2, 1, 1, 1, 2, 2, 2, 1, 1, 2, 1,
|
152
|
+
1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 1, 1,
|
153
|
+
2, 1, 1, 1, 2, 1, 2, 1, 1, 2, 2, 5, 1, 2, 2, 2,
|
154
|
+
5, 5, 5, 5, 1, 3, 2, 1, 3, 2, 1, 3, 2, 1, 2, 1,
|
155
|
+
2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2,
|
156
|
+
1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,
|
157
|
+
2, 1, 3, 2, 1, 2, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2,
|
158
|
+
1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,
|
159
|
+
1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,
|
160
|
+
1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,
|
161
|
+
1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2,
|
162
|
+
2, 1, 2, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,
|
163
|
+
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
164
|
+
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
165
|
+
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
166
|
+
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
167
|
+
2, 2, 2, 2, 5, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
168
|
+
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
169
|
+
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
|
170
|
+
4, 4, 27, 27, 27, 27, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
|
171
|
+
4, 4, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
|
172
|
+
4, 4, 4, 4, 4, 27, 27, 27, 27, 27, 27, 27, 4, 27, 4, 27,
|
173
|
+
27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
|
174
|
+
6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
|
175
|
+
6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
|
176
|
+
6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
|
177
|
+
6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
|
178
|
+
6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
|
179
|
+
6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
|
180
|
+
6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
|
181
|
+
1, 2, 1, 2, 4, 27, 1, 2, 0, 0, 4, 2, 2, 2, 24, 0,
|
182
|
+
0, 0, 0, 0, 27, 27, 1, 24, 1, 1, 1, 0, 1, 0, 1, 1,
|
183
|
+
2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
184
|
+
1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2,
|
185
|
+
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
186
|
+
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1,
|
187
|
+
2, 2, 1, 1, 1, 2, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2,
|
188
|
+
1, 2, 1, 2, 1, 2, 1, 2
|
189
|
+
} };
|
190
|
+
|
191
|
+
static const std::tr1::array<uint16_t, 1327> kCategoryKeys = { {
|
192
|
+
0x3E8, 0x3EF, 0x3F4, 0x3F5, 0x3F6, 0x3F7, 0x3F8, 0x3F9, 0x3FB, 0x3FD,
|
193
|
+
0x430, 0x460, 0x461, 0x462, 0x463, 0x464, 0x465, 0x466, 0x467, 0x468,
|
194
|
+
0x469, 0x46A, 0x46B, 0x46C, 0x46D, 0x46E, 0x46F, 0x470, 0x471, 0x472,
|
195
|
+
0x473, 0x474, 0x475, 0x476, 0x477, 0x478, 0x479, 0x47A, 0x47B, 0x47C,
|
196
|
+
0x47D, 0x47E, 0x47F, 0x480, 0x481, 0x482, 0x483, 0x488, 0x48A, 0x4C0,
|
197
|
+
0x4C2, 0x4CE, 0x4D0, 0x531, 0x559, 0x55A, 0x561, 0x589, 0x591, 0x5BE,
|
198
|
+
0x5BF, 0x5C0, 0x5C1, 0x5C3, 0x5C4, 0x5C6, 0x5D0, 0x5F0, 0x5F3, 0x600,
|
199
|
+
0x606, 0x609, 0x60B, 0x60C, 0x60E, 0x610, 0x61B, 0x61E, 0x620, 0x640,
|
200
|
+
0x641, 0x64B, 0x660, 0x66A, 0x66E, 0x670, 0x671, 0x6D4, 0x6D6, 0x6DD,
|
201
|
+
0x6DF, 0x6E5, 0x6E7, 0x6E9, 0x6EA, 0x6EE, 0x6F0, 0x6FA, 0x6FD, 0x6FF,
|
202
|
+
0x700, 0x70F, 0x710, 0x711, 0x712, 0x730, 0x74D, 0x7A6, 0x7B1, 0x7C0,
|
203
|
+
0x7CA, 0x7EB, 0x7F4, 0x7F6, 0x7F7, 0x7FA, 0x800, 0x816, 0x81A, 0x81B,
|
204
|
+
0x824, 0x825, 0x828, 0x829, 0x830, 0x840, 0x859, 0x85E, 0x900, 0x903,
|
205
|
+
0x904, 0x93A, 0x93B, 0x93C, 0x93D, 0x93E, 0x941, 0x949, 0x94D, 0x94E,
|
206
|
+
0x950, 0x951, 0x958, 0x962, 0x964, 0x966, 0x970, 0x972, 0x979, 0x981,
|
207
|
+
0x982, 0x985, 0x98F, 0x993, 0x9AA, 0x9B2, 0x9B6, 0x9BC, 0x9BE, 0x9C1,
|
208
|
+
0x9C7, 0x9CB, 0x9CD, 0x9D7, 0x9DC, 0x9DF, 0x9E2, 0x9E6, 0x9F0, 0x9F2,
|
209
|
+
0x9F4, 0x9FA, 0xA01, 0xA03, 0xA05, 0xA0F, 0xA13, 0xA2A, 0xA32, 0xA35,
|
210
|
+
0xA38, 0xA3C, 0xA3E, 0xA41, 0xA47, 0xA4B, 0xA51, 0xA59, 0xA5E, 0xA66,
|
211
|
+
0xA70, 0xA72, 0xA75, 0xA81, 0xA83, 0xA85, 0xA8F, 0xA93, 0xAAA, 0xAB2,
|
212
|
+
0xAB5, 0xABC, 0xABE, 0xAC1, 0xAC7, 0xAC9, 0xACB, 0xACD, 0xAD0, 0xAE0,
|
213
|
+
0xAE2, 0xAE6, 0xAF1, 0xB01, 0xB02, 0xB05, 0xB0F, 0xB13, 0xB2A, 0xB32,
|
214
|
+
0xB35, 0xB3C, 0xB3D, 0xB3E, 0xB3F, 0xB40, 0xB41, 0xB47, 0xB4B, 0xB4D,
|
215
|
+
0xB56, 0xB5C, 0xB5F, 0xB62, 0xB66, 0xB70, 0xB72, 0xB82, 0xB85, 0xB8E,
|
216
|
+
0xB92, 0xB99, 0xB9C, 0xB9E, 0xBA3, 0xBA8, 0xBAE, 0xBBE, 0xBC0, 0xBC1,
|
217
|
+
0xBC6, 0xBCA, 0xBCD, 0xBD0, 0xBD7, 0xBE6, 0xBF0, 0xBF3, 0xBF9, 0xC01,
|
218
|
+
0xC05, 0xC0E, 0xC12, 0xC2A, 0xC35, 0xC3D, 0xC3E, 0xC41, 0xC46, 0xC4A,
|
219
|
+
0xC55, 0xC58, 0xC60, 0xC62, 0xC66, 0xC78, 0xC7F, 0xC82, 0xC85, 0xC8E,
|
220
|
+
0xC92, 0xCAA, 0xCB5, 0xCBC, 0xCBD, 0xCBE, 0xCBF, 0xCC0, 0xCC6, 0xCC7,
|
221
|
+
0xCCA, 0xCCC, 0xCD5, 0xCDE, 0xCE0, 0xCE2, 0xCE6, 0xCF1, 0xD02, 0xD05,
|
222
|
+
0xD0E, 0xD12, 0xD3D, 0xD3E, 0xD41, 0xD46, 0xD4A, 0xD4D, 0xD57, 0xD60,
|
223
|
+
0xD62, 0xD66, 0xD70, 0xD79, 0xD7A, 0xD82, 0xD85, 0xD9A, 0xDB3, 0xDBD,
|
224
|
+
0xDC0, 0xDCA, 0xDCF, 0xDD2, 0xDD6, 0xDD8, 0xDF2, 0xDF4, 0xE01, 0xE31,
|
225
|
+
0xE32, 0xE34, 0xE3F, 0xE40, 0xE46, 0xE47, 0xE4F, 0xE50, 0xE5A, 0xE81,
|
226
|
+
0xE84, 0xE87, 0xE8A, 0xE8D, 0xE94, 0xE99, 0xEA1, 0xEA5, 0xEA7, 0xEAA,
|
227
|
+
0xEAD, 0xEB1, 0xEB2, 0xEB4, 0xEBB, 0xEBD, 0xEC0, 0xEC6, 0xEC8, 0xED0,
|
228
|
+
0xEDC, 0xF00, 0xF01, 0xF04, 0xF13, 0xF18, 0xF1A, 0xF20, 0xF2A, 0xF34,
|
229
|
+
0xF35, 0xF36, 0xF37, 0xF38, 0xF39, 0xF3A, 0xF3B, 0xF3C, 0xF3D, 0xF3E,
|
230
|
+
0xF40, 0xF49, 0xF71, 0xF7F, 0xF80, 0xF85, 0xF86, 0xF88, 0xF8D, 0xF99,
|
231
|
+
0xFBE, 0xFC6, 0xFC7, 0xFCE, 0xFD0, 0xFD5, 0xFD9, 0x1000, 0x102B, 0x102D,
|
232
|
+
0x1031, 0x1032, 0x1038, 0x1039, 0x103B, 0x103D, 0x103F, 0x1040, 0x104A, 0x1050,
|
233
|
+
0x1056, 0x1058, 0x105A, 0x105E, 0x1061, 0x1062, 0x1065, 0x1067, 0x106E, 0x1071,
|
234
|
+
0x1075, 0x1082, 0x1083, 0x1085, 0x1087, 0x108D, 0x108E, 0x108F, 0x1090, 0x109A,
|
235
|
+
0x109D, 0x109E, 0x10A0, 0x10D0, 0x10FB, 0x1100, 0x124A, 0x1250, 0x1258, 0x125A,
|
236
|
+
0x1260, 0x128A, 0x1290, 0x12B2, 0x12B8, 0x12C0, 0x12C2, 0x12C8, 0x12D8, 0x1312,
|
237
|
+
0x1318, 0x135D, 0x1360, 0x1361, 0x1369, 0x1380, 0x1390, 0x13A0, 0x1400, 0x1401,
|
238
|
+
0x166D, 0x166F, 0x1680, 0x1681, 0x169B, 0x16A0, 0x16EB, 0x16EE, 0x1700, 0x170E,
|
239
|
+
0x1712, 0x1720, 0x1732, 0x1735, 0x1740, 0x1752, 0x1760, 0x176E, 0x1772, 0x1780,
|
240
|
+
0x17B4, 0x17B6, 0x17B7, 0x17BE, 0x17C6, 0x17C7, 0x17C9, 0x17D4, 0x17D7, 0x17D8,
|
241
|
+
0x17DB, 0x17DC, 0x17DD, 0x17E0, 0x17F0, 0x1800, 0x1806, 0x1807, 0x180B, 0x180E,
|
242
|
+
0x1810, 0x1820, 0x1843, 0x1844, 0x1880, 0x18A9, 0x18B0, 0x1900, 0x1920, 0x1923,
|
243
|
+
0x1927, 0x1929, 0x1930, 0x1932, 0x1933, 0x1939, 0x1940, 0x1944, 0x1946, 0x1950,
|
244
|
+
0x1970, 0x1980, 0x19B0, 0x19C1, 0x19C8, 0x19D0, 0x19DA, 0x19DE, 0x1A00, 0x1A17,
|
245
|
+
0x1A19, 0x1A1E, 0x1A20, 0x1A55, 0x1A58, 0x1A60, 0x1A63, 0x1A65, 0x1A6D, 0x1A73,
|
246
|
+
0x1A7F, 0x1A80, 0x1A90, 0x1AA0, 0x1AA7, 0x1AA8, 0x1B00, 0x1B04, 0x1B05, 0x1B34,
|
247
|
+
0x1B36, 0x1B3B, 0x1B3D, 0x1B42, 0x1B43, 0x1B45, 0x1B50, 0x1B5A, 0x1B61, 0x1B6B,
|
248
|
+
0x1B74, 0x1B80, 0x1B82, 0x1B83, 0x1BA1, 0x1BA2, 0x1BA6, 0x1BA8, 0x1BAA, 0x1BAE,
|
249
|
+
0x1BB0, 0x1BC0, 0x1BE6, 0x1BE8, 0x1BEA, 0x1BED, 0x1BEF, 0x1BF2, 0x1BFC, 0x1C00,
|
250
|
+
0x1C24, 0x1C2C, 0x1C34, 0x1C36, 0x1C3B, 0x1C40, 0x1C4D, 0x1C50, 0x1C5A, 0x1C78,
|
251
|
+
0x1C7E, 0x1CD0, 0x1CD3, 0x1CD4, 0x1CE1, 0x1CE2, 0x1CE9, 0x1CED, 0x1CEE, 0x1CF2,
|
252
|
+
0x1D00, 0x1D2C, 0x1D62, 0x1D78, 0x1D79, 0x1D9B, 0x1DC0, 0x1DFC, 0x1E00, 0x1E95,
|
253
|
+
0x1E9E, 0x1EFF, 0x1F08, 0x1F10, 0x1F18, 0x1F20, 0x1F28, 0x1F30, 0x1F38, 0x1F40,
|
254
|
+
0x1F48, 0x1F50, 0x1F59, 0x1F5B, 0x1F5D, 0x1F5F, 0x1F60, 0x1F68, 0x1F70, 0x1F80,
|
255
|
+
0x1F88, 0x1F90, 0x1F98, 0x1FA0, 0x1FA8, 0x1FB0, 0x1FB6, 0x1FB8, 0x1FBC, 0x1FBD,
|
256
|
+
0x1FBE, 0x1FBF, 0x1FC2, 0x1FC6, 0x1FC8, 0x1FCC, 0x1FCD, 0x1FD0, 0x1FD6, 0x1FD8,
|
257
|
+
0x1FDD, 0x1FE0, 0x1FE8, 0x1FED, 0x1FF2, 0x1FF6, 0x1FF8, 0x1FFC, 0x1FFD, 0x2000,
|
258
|
+
0x200B, 0x2010, 0x2016, 0x2018, 0x2019, 0x201A, 0x201B, 0x201D, 0x201E, 0x201F,
|
259
|
+
0x2020, 0x2028, 0x202A, 0x202F, 0x2030, 0x2039, 0x203B, 0x203F, 0x2041, 0x2044,
|
260
|
+
0x2045, 0x2046, 0x2047, 0x2052, 0x2053, 0x2054, 0x2055, 0x205F, 0x2060, 0x206A,
|
261
|
+
0x2070, 0x2074, 0x207A, 0x207D, 0x207E, 0x207F, 0x2080, 0x208A, 0x208D, 0x2090,
|
262
|
+
0x20A0, 0x20D0, 0x20DD, 0x20E1, 0x20E2, 0x20E5, 0x2100, 0x2102, 0x2103, 0x2107,
|
263
|
+
0x2108, 0x210A, 0x210B, 0x210E, 0x2110, 0x2113, 0x2114, 0x2115, 0x2116, 0x2118,
|
264
|
+
0x2119, 0x211E, 0x2124, 0x212A, 0x212E, 0x2130, 0x2134, 0x2135, 0x2139, 0x213A,
|
265
|
+
0x213C, 0x213E, 0x2140, 0x2145, 0x2146, 0x214A, 0x214C, 0x214E, 0x2150, 0x2160,
|
266
|
+
0x2183, 0x2185, 0x2189, 0x2190, 0x2195, 0x219A, 0x219C, 0x21A0, 0x21A1, 0x21A3,
|
267
|
+
0x21A4, 0x21A6, 0x21A7, 0x21AE, 0x21AF, 0x21CE, 0x21D0, 0x21D2, 0x21D5, 0x21F4,
|
268
|
+
0x2300, 0x2308, 0x230C, 0x2320, 0x2322, 0x2329, 0x232B, 0x237C, 0x237D, 0x239B,
|
269
|
+
0x23B4, 0x23DC, 0x23E2, 0x2400, 0x2440, 0x2460, 0x249C, 0x24EA, 0x2500, 0x25B7,
|
270
|
+
0x25B8, 0x25C1, 0x25C2, 0x25F8, 0x2600, 0x266F, 0x2670, 0x2701, 0x2768, 0x2776,
|
271
|
+
0x2794, 0x27C0, 0x27C5, 0x27C7, 0x27CC, 0x27CE, 0x27E6, 0x27F0, 0x2800, 0x2900,
|
272
|
+
0x2983, 0x2999, 0x29D8, 0x29DC, 0x29FC, 0x29FE, 0x2B00, 0x2B30, 0x2B45, 0x2B47,
|
273
|
+
0x2B50, 0x2C00, 0x2C30, 0x2C60, 0x2C62, 0x2C65, 0x2C67, 0x2C6D, 0x2C71, 0x2C73,
|
274
|
+
0x2C75, 0x2C76, 0x2C7D, 0x2C7E, 0x2C81, 0x2CE3, 0x2CE5, 0x2CEB, 0x2CEF, 0x2CF9,
|
275
|
+
0x2CFD, 0x2CFE, 0x2D00, 0x2D30, 0x2D6F, 0x2D7F, 0x2D80, 0x2DA0, 0x2DA8, 0x2DB0,
|
276
|
+
0x2DB8, 0x2DC0, 0x2DC8, 0x2DD0, 0x2DD8, 0x2DE0, 0x2E00, 0x2E02, 0x2E06, 0x2E09,
|
277
|
+
0x2E0A, 0x2E0B, 0x2E0C, 0x2E0D, 0x2E0E, 0x2E17, 0x2E18, 0x2E1A, 0x2E1B, 0x2E1C,
|
278
|
+
0x2E1D, 0x2E1E, 0x2E20, 0x2E21, 0x2E22, 0x2E23, 0x2E24, 0x2E25, 0x2E26, 0x2E27,
|
279
|
+
0x2E28, 0x2E29, 0x2E2A, 0x2E2F, 0x2E30, 0x2E80, 0x2E9B, 0x2F00, 0x2FF0, 0x3000,
|
280
|
+
0x3001, 0x3004, 0x3005, 0x3006, 0x3007, 0x3008, 0x3009, 0x300A, 0x300B, 0x300C,
|
281
|
+
0x300D, 0x300E, 0x300F, 0x3010, 0x3011, 0x3012, 0x3014, 0x3015, 0x3016, 0x3017,
|
282
|
+
0x3018, 0x3019, 0x301A, 0x301B, 0x301C, 0x301D, 0x301E, 0x3020, 0x3021, 0x302A,
|
283
|
+
0x3030, 0x3031, 0x3036, 0x3038, 0x303B, 0x303C, 0x303D, 0x303E, 0x3041, 0x3099,
|
284
|
+
0x309B, 0x309D, 0x309F, 0x30A1, 0x30FB, 0x30FC, 0x30FF, 0x3105, 0x3131, 0x3190,
|
285
|
+
0x3192, 0x3196, 0x31A0, 0x31C0, 0x31F0, 0x3200, 0x3220, 0x322A, 0x3251, 0x3260,
|
286
|
+
0x3280, 0x328A, 0x32B1, 0x32C0, 0x3300, 0x3400, 0x4DC0, 0x4E00, 0xA000, 0xA015,
|
287
|
+
0xA016, 0xA490, 0xA4D0, 0xA4F8, 0xA4FE, 0xA500, 0xA60C, 0xA60D, 0xA610, 0xA620,
|
288
|
+
0xA62A, 0xA640, 0xA641, 0xA642, 0xA643, 0xA644, 0xA645, 0xA646, 0xA647, 0xA648,
|
289
|
+
0xA649, 0xA64A, 0xA64B, 0xA64C, 0xA64D, 0xA64E, 0xA64F, 0xA650, 0xA651, 0xA652,
|
290
|
+
0xA653, 0xA654, 0xA655, 0xA656, 0xA657, 0xA658, 0xA659, 0xA65A, 0xA65B, 0xA65C,
|
291
|
+
0xA65D, 0xA65E, 0xA65F, 0xA660, 0xA661, 0xA662, 0xA663, 0xA664, 0xA665, 0xA666,
|
292
|
+
0xA667, 0xA668, 0xA669, 0xA66A, 0xA66B, 0xA66C, 0xA66D, 0xA66E, 0xA66F, 0xA670,
|
293
|
+
0xA673, 0xA67C, 0xA67E, 0xA67F, 0xA680, 0xA681, 0xA682, 0xA683, 0xA684, 0xA685,
|
294
|
+
0xA686, 0xA687, 0xA688, 0xA689, 0xA68A, 0xA68B, 0xA68C, 0xA68D, 0xA68E, 0xA68F,
|
295
|
+
0xA690, 0xA691, 0xA692, 0xA693, 0xA694, 0xA695, 0xA696, 0xA697, 0xA6A0, 0xA6E6,
|
296
|
+
0xA6F0, 0xA6F2, 0xA700, 0xA717, 0xA720, 0xA722, 0xA72F, 0xA732, 0xA733, 0xA734,
|
297
|
+
0xA735, 0xA736, 0xA737, 0xA738, 0xA739, 0xA73A, 0xA73B, 0xA73C, 0xA73D, 0xA73E,
|
298
|
+
0xA73F, 0xA740, 0xA741, 0xA742, 0xA743, 0xA744, 0xA745, 0xA746, 0xA747, 0xA748,
|
299
|
+
0xA749, 0xA74A, 0xA74B, 0xA74C, 0xA74D, 0xA74E, 0xA74F, 0xA750, 0xA751, 0xA752,
|
300
|
+
0xA753, 0xA754, 0xA755, 0xA756, 0xA757, 0xA758, 0xA759, 0xA75A, 0xA75B, 0xA75C,
|
301
|
+
0xA75D, 0xA75E, 0xA75F, 0xA760, 0xA761, 0xA762, 0xA763, 0xA764, 0xA765, 0xA766,
|
302
|
+
0xA767, 0xA768, 0xA769, 0xA76A, 0xA76B, 0xA76C, 0xA76D, 0xA76E, 0xA76F, 0xA770,
|
303
|
+
0xA771, 0xA779, 0xA77D, 0xA77F, 0xA780, 0xA781, 0xA782, 0xA783, 0xA784, 0xA785,
|
304
|
+
0xA786, 0xA787, 0xA788, 0xA789, 0xA78B, 0xA790, 0xA7A0, 0xA7FA, 0xA7FB, 0xA802,
|
305
|
+
0xA803, 0xA806, 0xA807, 0xA80B, 0xA80C, 0xA823, 0xA825, 0xA827, 0xA828, 0xA830,
|
306
|
+
0xA836, 0xA838, 0xA840, 0xA874, 0xA880, 0xA882, 0xA8B4, 0xA8C4, 0xA8CE, 0xA8D0,
|
307
|
+
0xA8E0, 0xA8F2, 0xA8F8, 0xA8FB, 0xA900, 0xA90A, 0xA926, 0xA92E, 0xA930, 0xA947,
|
308
|
+
0xA952, 0xA95F, 0xA960, 0xA980, 0xA983, 0xA984, 0xA9B3, 0xA9B4, 0xA9B6, 0xA9BA,
|
309
|
+
0xA9BC, 0xA9BD, 0xA9C1, 0xA9CF, 0xA9D0, 0xA9DE, 0xAA00, 0xAA29, 0xAA2F, 0xAA31,
|
310
|
+
0xAA33, 0xAA35, 0xAA40, 0xAA43, 0xAA44, 0xAA4C, 0xAA50, 0xAA5C, 0xAA60, 0xAA70,
|
311
|
+
0xAA71, 0xAA77, 0xAA7A, 0xAA80, 0xAAB0, 0xAAB2, 0xAAB5, 0xAAB7, 0xAAB9, 0xAABE,
|
312
|
+
0xAAC0, 0xAADB, 0xAADD, 0xAADE, 0xAB01, 0xAB09, 0xAB11, 0xAB20, 0xAB28, 0xABC0,
|
313
|
+
0xABE3, 0xABE5, 0xABE6, 0xABE8, 0xABE9, 0xABEB, 0xABEC, 0xABED, 0xABF0, 0xAC00,
|
314
|
+
0xD7B0, 0xD7CB, 0xD800, 0xE000, 0xF900, 0xFA30, 0xFA70, 0xFB00, 0xFB13, 0xFB1D,
|
315
|
+
0xFB1F, 0xFB29, 0xFB2A, 0xFB38, 0xFB3E, 0xFB40, 0xFB43, 0xFB46, 0xFBB2, 0xFBD3,
|
316
|
+
0xFD3E, 0xFD50, 0xFD92, 0xFDF0, 0xFDFC, 0xFE00, 0xFE10, 0xFE17, 0xFE18, 0xFE19,
|
317
|
+
0xFE20, 0xFE30, 0xFE31, 0xFE33, 0xFE35, 0xFE45, 0xFE47, 0xFE49, 0xFE4D, 0xFE50,
|
318
|
+
0xFE54, 0xFE58, 0xFE59, 0xFE5A, 0xFE5B, 0xFE5C, 0xFE5D, 0xFE5E, 0xFE5F, 0xFE62,
|
319
|
+
0xFE64, 0xFE68, 0xFE6A, 0xFE70, 0xFE76, 0xFEFF, 0xFF01, 0xFF04, 0xFF05, 0xFF08,
|
320
|
+
0xFF09, 0xFF0A, 0xFF0B, 0xFF0C, 0xFF0D, 0xFF0E, 0xFF10, 0xFF1A, 0xFF1C, 0xFF1F,
|
321
|
+
0xFF21, 0xFF3B, 0xFF3C, 0xFF3D, 0xFF3E, 0xFF3F, 0xFF40, 0xFF41, 0xFF5B, 0xFF5C,
|
322
|
+
0xFF5D, 0xFF5E, 0xFF5F, 0xFF60, 0xFF61, 0xFF62, 0xFF63, 0xFF64, 0xFF66, 0xFF70,
|
323
|
+
0xFF71, 0xFF9E, 0xFFA0, 0xFFC2, 0xFFCA, 0xFFD2, 0xFFDA, 0xFFE0, 0xFFE2, 0xFFE3,
|
324
|
+
0xFFE4, 0xFFE5, 0xFFE8, 0xFFE9, 0xFFED, 0xFFF9, 0xFFFC
|
325
|
+
} };
|
326
|
+
|
327
|
+
static const std::tr1::array<uint16_t, 2654> kCategoryValues = { {
|
328
|
+
0x3EE, 0x201, 0x3F3, 0x2, 0x3F4, 0x1, 0x3F5, 0x2, 0x3F6, 0x19,
|
329
|
+
0x3F7, 0x1, 0x3F8, 0x2, 0x3FA, 0x1, 0x3FC, 0x2, 0x42F, 0x1,
|
330
|
+
0x45F, 0x2, 0x460, 0x1, 0x461, 0x2, 0x462, 0x1, 0x463, 0x2,
|
331
|
+
0x464, 0x1, 0x465, 0x2, 0x466, 0x1, 0x467, 0x2, 0x468, 0x1,
|
332
|
+
0x469, 0x2, 0x46A, 0x1, 0x46B, 0x2, 0x46C, 0x1, 0x46D, 0x2,
|
333
|
+
0x46E, 0x1, 0x46F, 0x2, 0x470, 0x1, 0x471, 0x2, 0x472, 0x1,
|
334
|
+
0x473, 0x2, 0x474, 0x1, 0x475, 0x2, 0x476, 0x1, 0x477, 0x2,
|
335
|
+
0x478, 0x1, 0x479, 0x2, 0x47A, 0x1, 0x47B, 0x2, 0x47C, 0x1,
|
336
|
+
0x47D, 0x2, 0x47E, 0x1, 0x47F, 0x2, 0x480, 0x1, 0x481, 0x2,
|
337
|
+
0x482, 0x1C, 0x487, 0x6, 0x489, 0x7, 0x4BF, 0x201, 0x4C1, 0x1,
|
338
|
+
0x4CD, 0x102, 0x4CF, 0x2, 0x527, 0x201, 0x556, 0x1, 0x559, 0x4,
|
339
|
+
0x55F, 0x18, 0x587, 0x2, 0x58A, 0x1814, 0x5BD, 0x6, 0x5BE, 0x14,
|
340
|
+
0x5BF, 0x6, 0x5C0, 0x18, 0x5C2, 0x6, 0x5C3, 0x18, 0x5C5, 0x6,
|
341
|
+
0x5C7, 0x618, 0x5EA, 0x5, 0x5F2, 0x5, 0x5F4, 0x18, 0x603, 0x10,
|
342
|
+
0x608, 0x19, 0x60A, 0x18, 0x60B, 0x1A, 0x60D, 0x18, 0x60F, 0x1C,
|
343
|
+
0x61A, 0x6, 0x61B, 0x18, 0x61F, 0x18, 0x63F, 0x5, 0x640, 0x4,
|
344
|
+
0x64A, 0x5, 0x65F, 0x6, 0x669, 0x9, 0x66D, 0x18, 0x66F, 0x5,
|
345
|
+
0x670, 0x6, 0x6D3, 0x5, 0x6D5, 0x518, 0x6DC, 0x6, 0x6DE, 0x101C,
|
346
|
+
0x6E4, 0x6, 0x6E6, 0x4, 0x6E8, 0x6, 0x6E9, 0x1C, 0x6ED, 0x6,
|
347
|
+
0x6EF, 0x5, 0x6F9, 0x9, 0x6FC, 0x5, 0x6FE, 0x1C, 0x6FF, 0x5,
|
348
|
+
0x70D, 0x18, 0x70F, 0x10, 0x710, 0x5, 0x711, 0x6, 0x72F, 0x5,
|
349
|
+
0x74A, 0x6, 0x7A5, 0x5, 0x7B0, 0x6, 0x7B1, 0x5, 0x7C9, 0x9,
|
350
|
+
0x7EA, 0x5, 0x7F3, 0x6, 0x7F5, 0x4, 0x7F6, 0x1C, 0x7F9, 0x18,
|
351
|
+
0x7FA, 0x4, 0x815, 0x5, 0x819, 0x6, 0x81A, 0x4, 0x823, 0x6,
|
352
|
+
0x824, 0x4, 0x827, 0x6, 0x828, 0x4, 0x82D, 0x6, 0x83E, 0x18,
|
353
|
+
0x858, 0x5, 0x85B, 0x6, 0x85E, 0x18, 0x902, 0x6, 0x903, 0x8,
|
354
|
+
0x939, 0x5, 0x93A, 0x6, 0x93B, 0x8, 0x93C, 0x6, 0x93D, 0x5,
|
355
|
+
0x940, 0x8, 0x948, 0x6, 0x94C, 0x8, 0x94D, 0x6, 0x94F, 0x8,
|
356
|
+
0x950, 0x5, 0x957, 0x6, 0x961, 0x5, 0x963, 0x6, 0x965, 0x18,
|
357
|
+
0x96F, 0x9, 0x971, 0x418, 0x977, 0x5, 0x97F, 0x5, 0x981, 0x6,
|
358
|
+
0x983, 0x8, 0x98C, 0x5, 0x990, 0x5, 0x9A8, 0x5, 0x9B0, 0x5,
|
359
|
+
0x9B2, 0x5, 0x9B9, 0x5, 0x9BD, 0x506, 0x9C0, 0x8, 0x9C4, 0x6,
|
360
|
+
0x9C8, 0x8, 0x9CC, 0x8, 0x9CE, 0x605, 0x9D7, 0x8, 0x9DD, 0x5,
|
361
|
+
0x9E1, 0x5, 0x9E3, 0x6, 0x9EF, 0x9, 0x9F1, 0x5, 0x9F3, 0x1A,
|
362
|
+
0x9F9, 0xB, 0x9FB, 0x1A1C, 0xA02, 0x6, 0xA03, 0x8, 0xA0A, 0x5,
|
363
|
+
0xA10, 0x5, 0xA28, 0x5, 0xA30, 0x5, 0xA33, 0x5, 0xA36, 0x5,
|
364
|
+
0xA39, 0x5, 0xA3C, 0x6, 0xA40, 0x8, 0xA42, 0x6, 0xA48, 0x6,
|
365
|
+
0xA4D, 0x6, 0xA51, 0x6, 0xA5C, 0x5, 0xA5E, 0x5, 0xA6F, 0x9,
|
366
|
+
0xA71, 0x6, 0xA74, 0x5, 0xA75, 0x6, 0xA82, 0x6, 0xA83, 0x8,
|
367
|
+
0xA8D, 0x5, 0xA91, 0x5, 0xAA8, 0x5, 0xAB0, 0x5, 0xAB3, 0x5,
|
368
|
+
0xAB9, 0x5, 0xABD, 0x506, 0xAC0, 0x8, 0xAC5, 0x6, 0xAC8, 0x6,
|
369
|
+
0xAC9, 0x8, 0xACC, 0x8, 0xACD, 0x6, 0xAD0, 0x5, 0xAE1, 0x5,
|
370
|
+
0xAE3, 0x6, 0xAEF, 0x9, 0xAF1, 0x1A, 0xB01, 0x6, 0xB03, 0x8,
|
371
|
+
0xB0C, 0x5, 0xB10, 0x5, 0xB28, 0x5, 0xB30, 0x5, 0xB33, 0x5,
|
372
|
+
0xB39, 0x5, 0xB3C, 0x6, 0xB3D, 0x5, 0xB3E, 0x8, 0xB3F, 0x6,
|
373
|
+
0xB40, 0x8, 0xB44, 0x6, 0xB48, 0x8, 0xB4C, 0x8, 0xB4D, 0x6,
|
374
|
+
0xB57, 0x806, 0xB5D, 0x5, 0xB61, 0x5, 0xB63, 0x6, 0xB6F, 0x9,
|
375
|
+
0xB71, 0x51C, 0xB77, 0xB, 0xB83, 0x506, 0xB8A, 0x5, 0xB90, 0x5,
|
376
|
+
0xB95, 0x5, 0xB9A, 0x5, 0xB9C, 0x5, 0xB9F, 0x5, 0xBA4, 0x5,
|
377
|
+
0xBAA, 0x5, 0xBB9, 0x5, 0xBBF, 0x8, 0xBC0, 0x6, 0xBC2, 0x8,
|
378
|
+
0xBC8, 0x8, 0xBCC, 0x8, 0xBCD, 0x6, 0xBD0, 0x5, 0xBD7, 0x8,
|
379
|
+
0xBEF, 0x9, 0xBF2, 0xB, 0xBF8, 0x1C, 0xBFA, 0x1A1C, 0xC03, 0x8,
|
380
|
+
0xC0C, 0x5, 0xC10, 0x5, 0xC28, 0x5, 0xC33, 0x5, 0xC39, 0x5,
|
381
|
+
0xC3D, 0x5, 0xC40, 0x6, 0xC44, 0x8, 0xC48, 0x6, 0xC4D, 0x6,
|
382
|
+
0xC56, 0x6, 0xC59, 0x5, 0xC61, 0x5, 0xC63, 0x6, 0xC6F, 0x9,
|
383
|
+
0xC7E, 0xB, 0xC7F, 0x1C, 0xC83, 0x8, 0xC8C, 0x5, 0xC90, 0x5,
|
384
|
+
0xCA8, 0x5, 0xCB3, 0x5, 0xCB9, 0x5, 0xCBC, 0x6, 0xCBD, 0x5,
|
385
|
+
0xCBE, 0x8, 0xCBF, 0x6, 0xCC4, 0x8, 0xCC6, 0x6, 0xCC8, 0x8,
|
386
|
+
0xCCB, 0x8, 0xCCD, 0x6, 0xCD6, 0x8, 0xCDE, 0x5, 0xCE1, 0x5,
|
387
|
+
0xCE3, 0x6, 0xCEF, 0x9, 0xCF2, 0x5, 0xD03, 0x8, 0xD0C, 0x5,
|
388
|
+
0xD10, 0x5, 0xD3A, 0x5, 0xD3D, 0x5, 0xD40, 0x8, 0xD44, 0x6,
|
389
|
+
0xD48, 0x8, 0xD4C, 0x8, 0xD4E, 0x605, 0xD57, 0x8, 0xD61, 0x5,
|
390
|
+
0xD63, 0x6, 0xD6F, 0x9, 0xD75, 0xB, 0xD79, 0x1C, 0xD7F, 0x5,
|
391
|
+
0xD83, 0x8, 0xD96, 0x5, 0xDB1, 0x5, 0xDBB, 0x5, 0xDBD, 0x5,
|
392
|
+
0xDC6, 0x5, 0xDCA, 0x6, 0xDD1, 0x8, 0xDD4, 0x6, 0xDD6, 0x6,
|
393
|
+
0xDDF, 0x8, 0xDF3, 0x8, 0xDF4, 0x18, 0xE30, 0x5, 0xE31, 0x6,
|
394
|
+
0xE33, 0x5, 0xE3A, 0x6, 0xE3F, 0x1A, 0xE45, 0x5, 0xE46, 0x4,
|
395
|
+
0xE4E, 0x6, 0xE4F, 0x18, 0xE59, 0x9, 0xE5B, 0x18, 0xE82, 0x5,
|
396
|
+
0xE84, 0x5, 0xE88, 0x5, 0xE8A, 0x5, 0xE8D, 0x5, 0xE97, 0x5,
|
397
|
+
0xE9F, 0x5, 0xEA3, 0x5, 0xEA5, 0x5, 0xEA7, 0x5, 0xEAB, 0x5,
|
398
|
+
0xEB0, 0x5, 0xEB1, 0x6, 0xEB3, 0x5, 0xEB9, 0x6, 0xEBC, 0x6,
|
399
|
+
0xEBD, 0x5, 0xEC4, 0x5, 0xEC6, 0x4, 0xECD, 0x6, 0xED9, 0x9,
|
400
|
+
0xEDD, 0x5, 0xF00, 0x5, 0xF03, 0x1C, 0xF12, 0x18, 0xF17, 0x1C,
|
401
|
+
0xF19, 0x6, 0xF1F, 0x1C, 0xF29, 0x9, 0xF33, 0xB, 0xF34, 0x1C,
|
402
|
+
0xF35, 0x6, 0xF36, 0x1C, 0xF37, 0x6, 0xF38, 0x1C, 0xF39, 0x6,
|
403
|
+
0xF3A, 0x15, 0xF3B, 0x16, 0xF3C, 0x15, 0xF3D, 0x16, 0xF3F, 0x8,
|
404
|
+
0xF47, 0x5, 0xF6C, 0x5, 0xF7E, 0x6, 0xF7F, 0x8, 0xF84, 0x6,
|
405
|
+
0xF85, 0x18, 0xF87, 0x6, 0xF8C, 0x5, 0xF97, 0x6, 0xFBC, 0x6,
|
406
|
+
0xFC5, 0x1C, 0xFC6, 0x6, 0xFCC, 0x1C, 0xFCF, 0x1C, 0xFD4, 0x18,
|
407
|
+
0xFD8, 0x1C, 0xFDA, 0x18, 0x102A, 0x5, 0x102C, 0x8, 0x1030, 0x6,
|
408
|
+
0x1031, 0x8, 0x1037, 0x6, 0x1038, 0x8, 0x103A, 0x6, 0x103C, 0x8,
|
409
|
+
0x103E, 0x6, 0x103F, 0x5, 0x1049, 0x9, 0x104F, 0x18, 0x1055, 0x5,
|
410
|
+
0x1057, 0x8, 0x1059, 0x6, 0x105D, 0x5, 0x1060, 0x6, 0x1061, 0x5,
|
411
|
+
0x1064, 0x8, 0x1066, 0x5, 0x106D, 0x8, 0x1070, 0x5, 0x1074, 0x6,
|
412
|
+
0x1081, 0x5, 0x1082, 0x6, 0x1084, 0x8, 0x1086, 0x6, 0x108C, 0x8,
|
413
|
+
0x108D, 0x6, 0x108E, 0x5, 0x108F, 0x8, 0x1099, 0x9, 0x109C, 0x8,
|
414
|
+
0x109D, 0x6, 0x109F, 0x1C, 0x10C5, 0x1, 0x10FA, 0x5, 0x10FC, 0x1804,
|
415
|
+
0x1248, 0x5, 0x124D, 0x5, 0x1256, 0x5, 0x1258, 0x5, 0x125D, 0x5,
|
416
|
+
0x1288, 0x5, 0x128D, 0x5, 0x12B0, 0x5, 0x12B5, 0x5, 0x12BE, 0x5,
|
417
|
+
0x12C0, 0x5, 0x12C5, 0x5, 0x12D6, 0x5, 0x1310, 0x5, 0x1315, 0x5,
|
418
|
+
0x135A, 0x5, 0x135F, 0x6, 0x1360, 0x1C, 0x1368, 0x18, 0x137C, 0xB,
|
419
|
+
0x138F, 0x5, 0x1399, 0x1C, 0x13F4, 0x5, 0x1400, 0x14, 0x166C, 0x5,
|
420
|
+
0x166E, 0x18, 0x167F, 0x5, 0x1680, 0xC, 0x169A, 0x5, 0x169C, 0x1516,
|
421
|
+
0x16EA, 0x5, 0x16ED, 0x18, 0x16F0, 0xA, 0x170C, 0x5, 0x1711, 0x5,
|
422
|
+
0x1714, 0x6, 0x1731, 0x5, 0x1734, 0x6, 0x1736, 0x18, 0x1751, 0x5,
|
423
|
+
0x1753, 0x6, 0x176C, 0x5, 0x1770, 0x5, 0x1773, 0x6, 0x17B3, 0x5,
|
424
|
+
0x17B5, 0x10, 0x17B6, 0x8, 0x17BD, 0x6, 0x17C5, 0x8, 0x17C6, 0x6,
|
425
|
+
0x17C8, 0x8, 0x17D3, 0x6, 0x17D6, 0x18, 0x17D7, 0x4, 0x17DA, 0x18,
|
426
|
+
0x17DB, 0x1A, 0x17DC, 0x5, 0x17DD, 0x6, 0x17E9, 0x9, 0x17F9, 0xB,
|
427
|
+
0x1805, 0x18, 0x1806, 0x14, 0x180A, 0x18, 0x180D, 0x6, 0x180E, 0xC,
|
428
|
+
0x1819, 0x9, 0x1842, 0x5, 0x1843, 0x4, 0x1877, 0x5, 0x18A8, 0x5,
|
429
|
+
0x18AA, 0x605, 0x18F5, 0x5, 0x191C, 0x5, 0x1922, 0x6, 0x1926, 0x8,
|
430
|
+
0x1928, 0x6, 0x192B, 0x8, 0x1931, 0x8, 0x1932, 0x6, 0x1938, 0x8,
|
431
|
+
0x193B, 0x6, 0x1940, 0x1C, 0x1945, 0x18, 0x194F, 0x9, 0x196D, 0x5,
|
432
|
+
0x1974, 0x5, 0x19AB, 0x5, 0x19C0, 0x8, 0x19C7, 0x5, 0x19C9, 0x8,
|
433
|
+
0x19D9, 0x9, 0x19DA, 0xB, 0x19FF, 0x1C, 0x1A16, 0x5, 0x1A18, 0x6,
|
434
|
+
0x1A1B, 0x8, 0x1A1F, 0x18, 0x1A54, 0x5, 0x1A57, 0x806, 0x1A5E, 0x6,
|
435
|
+
0x1A62, 0x806, 0x1A64, 0x8, 0x1A6C, 0x6, 0x1A72, 0x8, 0x1A7C, 0x6,
|
436
|
+
0x1A7F, 0x6, 0x1A89, 0x9, 0x1A99, 0x9, 0x1AA6, 0x18, 0x1AA7, 0x4,
|
437
|
+
0x1AAD, 0x18, 0x1B03, 0x6, 0x1B04, 0x8, 0x1B33, 0x5, 0x1B35, 0x806,
|
438
|
+
0x1B3A, 0x6, 0x1B3C, 0x806, 0x1B41, 0x8, 0x1B42, 0x6, 0x1B44, 0x8,
|
439
|
+
0x1B4B, 0x5, 0x1B59, 0x9, 0x1B60, 0x18, 0x1B6A, 0x1C, 0x1B73, 0x6,
|
440
|
+
0x1B7C, 0x1C, 0x1B81, 0x6, 0x1B82, 0x8, 0x1BA0, 0x5, 0x1BA1, 0x8,
|
441
|
+
0x1BA5, 0x6, 0x1BA7, 0x8, 0x1BA9, 0x6, 0x1BAA, 0x8, 0x1BAF, 0x5,
|
442
|
+
0x1BB9, 0x9, 0x1BE5, 0x5, 0x1BE7, 0x806, 0x1BE9, 0x6, 0x1BEC, 0x8,
|
443
|
+
0x1BEE, 0x608, 0x1BF1, 0x6, 0x1BF3, 0x8, 0x1BFF, 0x18, 0x1C23, 0x5,
|
444
|
+
0x1C2B, 0x8, 0x1C33, 0x6, 0x1C35, 0x8, 0x1C37, 0x6, 0x1C3F, 0x18,
|
445
|
+
0x1C49, 0x9, 0x1C4F, 0x5, 0x1C59, 0x9, 0x1C77, 0x5, 0x1C7D, 0x4,
|
446
|
+
0x1C7F, 0x18, 0x1CD2, 0x6, 0x1CD3, 0x18, 0x1CE0, 0x6, 0x1CE1, 0x8,
|
447
|
+
0x1CE8, 0x6, 0x1CEC, 0x5, 0x1CED, 0x6, 0x1CF1, 0x5, 0x1CF2, 0x8,
|
448
|
+
0x1D2B, 0x2, 0x1D61, 0x4, 0x1D77, 0x2, 0x1D78, 0x4, 0x1D9A, 0x2,
|
449
|
+
0x1DBF, 0x4, 0x1DE6, 0x6, 0x1DFF, 0x6, 0x1E94, 0x201, 0x1E9D, 0x2,
|
450
|
+
0x1EFE, 0x201, 0x1F07, 0x2, 0x1F0F, 0x1, 0x1F15, 0x2, 0x1F1D, 0x1,
|
451
|
+
0x1F27, 0x2, 0x1F2F, 0x1, 0x1F37, 0x2, 0x1F3F, 0x1, 0x1F45, 0x2,
|
452
|
+
0x1F4D, 0x1, 0x1F57, 0x2, 0x1F59, 0x1, 0x1F5B, 0x1, 0x1F5D, 0x1,
|
453
|
+
0x1F5F, 0x1, 0x1F67, 0x2, 0x1F6F, 0x1, 0x1F7D, 0x2, 0x1F87, 0x2,
|
454
|
+
0x1F8F, 0x3, 0x1F97, 0x2, 0x1F9F, 0x3, 0x1FA7, 0x2, 0x1FAF, 0x3,
|
455
|
+
0x1FB4, 0x2, 0x1FB7, 0x2, 0x1FBB, 0x1, 0x1FBC, 0x3, 0x1FBD, 0x1B,
|
456
|
+
0x1FBE, 0x2, 0x1FC1, 0x1B, 0x1FC4, 0x2, 0x1FC7, 0x2, 0x1FCB, 0x1,
|
457
|
+
0x1FCC, 0x3, 0x1FCF, 0x1B, 0x1FD3, 0x2, 0x1FD7, 0x2, 0x1FDB, 0x1,
|
458
|
+
0x1FDF, 0x1B, 0x1FE7, 0x2, 0x1FEC, 0x1, 0x1FEF, 0x1B, 0x1FF4, 0x2,
|
459
|
+
0x1FF7, 0x2, 0x1FFB, 0x1, 0x1FFC, 0x3, 0x1FFE, 0x1B, 0x200A, 0xC,
|
460
|
+
0x200F, 0x10, 0x2015, 0x14, 0x2017, 0x18, 0x2018, 0x1D, 0x2019, 0x1E,
|
461
|
+
0x201A, 0x15, 0x201C, 0x1D, 0x201D, 0x1E, 0x201E, 0x15, 0x201F, 0x1D,
|
462
|
+
0x2027, 0x18, 0x2029, 0xE0D, 0x202E, 0x10, 0x202F, 0xC, 0x2038, 0x18,
|
463
|
+
0x203A, 0x1D1E, 0x203E, 0x18, 0x2040, 0x17, 0x2043, 0x18, 0x2044, 0x19,
|
464
|
+
0x2045, 0x15, 0x2046, 0x16, 0x2051, 0x18, 0x2052, 0x19, 0x2053, 0x18,
|
465
|
+
0x2054, 0x17, 0x205E, 0x18, 0x205F, 0xC, 0x2064, 0x10, 0x206F, 0x10,
|
466
|
+
0x2071, 0x40B, 0x2079, 0xB, 0x207C, 0x19, 0x207D, 0x15, 0x207E, 0x16,
|
467
|
+
0x207F, 0x4, 0x2089, 0xB, 0x208C, 0x19, 0x208E, 0x1516, 0x209C, 0x4,
|
468
|
+
0x20B9, 0x1A, 0x20DC, 0x6, 0x20E0, 0x7, 0x20E1, 0x6, 0x20E4, 0x7,
|
469
|
+
0x20F0, 0x6, 0x2101, 0x1C, 0x2102, 0x1, 0x2106, 0x1C, 0x2107, 0x1,
|
470
|
+
0x2109, 0x1C, 0x210A, 0x2, 0x210D, 0x1, 0x210F, 0x2, 0x2112, 0x1,
|
471
|
+
0x2113, 0x2, 0x2114, 0x1C, 0x2115, 0x1, 0x2117, 0x1C, 0x2118, 0x19,
|
472
|
+
0x211D, 0x1, 0x2123, 0x1C, 0x2129, 0x1C01, 0x212D, 0x1, 0x212F, 0x21C,
|
473
|
+
0x2133, 0x1, 0x2134, 0x2, 0x2138, 0x5, 0x2139, 0x2, 0x213B, 0x1C,
|
474
|
+
0x213D, 0x2, 0x213F, 0x1, 0x2144, 0x19, 0x2145, 0x1, 0x2149, 0x2,
|
475
|
+
0x214B, 0x191C, 0x214D, 0x1C, 0x214F, 0x1C02, 0x215F, 0xB, 0x2182, 0xA,
|
476
|
+
0x2184, 0x102, 0x2188, 0xA, 0x2189, 0xB, 0x2194, 0x19, 0x2199, 0x1C,
|
477
|
+
0x219B, 0x19, 0x219F, 0x1C, 0x21A0, 0x19, 0x21A2, 0x1C, 0x21A3, 0x19,
|
478
|
+
0x21A5, 0x1C, 0x21A6, 0x19, 0x21AD, 0x1C, 0x21AE, 0x19, 0x21CD, 0x1C,
|
479
|
+
0x21CF, 0x19, 0x21D1, 0x1C, 0x21D4, 0x1C19, 0x21F3, 0x1C, 0x22FF, 0x19,
|
480
|
+
0x2307, 0x1C, 0x230B, 0x19, 0x231F, 0x1C, 0x2321, 0x19, 0x2328, 0x1C,
|
481
|
+
0x232A, 0x1516, 0x237B, 0x1C, 0x237C, 0x19, 0x239A, 0x1C, 0x23B3, 0x19,
|
482
|
+
0x23DB, 0x1C, 0x23E1, 0x19, 0x23F3, 0x1C, 0x2426, 0x1C, 0x244A, 0x1C,
|
483
|
+
0x249B, 0xB, 0x24E9, 0x1C, 0x24FF, 0xB, 0x25B6, 0x1C, 0x25B7, 0x19,
|
484
|
+
0x25C0, 0x1C, 0x25C1, 0x19, 0x25F7, 0x1C, 0x25FF, 0x19, 0x266E, 0x1C,
|
485
|
+
0x266F, 0x19, 0x26FF, 0x1C, 0x2767, 0x1C, 0x2775, 0x1615, 0x2793, 0xB,
|
486
|
+
0x27BF, 0x1C, 0x27C4, 0x19, 0x27C6, 0x1516, 0x27CA, 0x19, 0x27CC, 0x19,
|
487
|
+
0x27E5, 0x19, 0x27EF, 0x1615, 0x27FF, 0x19, 0x28FF, 0x1C, 0x2982, 0x19,
|
488
|
+
0x2998, 0x1516, 0x29D7, 0x19, 0x29DB, 0x1615, 0x29FB, 0x19, 0x29FD, 0x1615,
|
489
|
+
0x2AFF, 0x19, 0x2B2F, 0x1C, 0x2B44, 0x19, 0x2B46, 0x1C, 0x2B4C, 0x19,
|
490
|
+
0x2B59, 0x1C, 0x2C2E, 0x1, 0x2C5E, 0x2, 0x2C61, 0x201, 0x2C64, 0x1,
|
491
|
+
0x2C66, 0x2, 0x2C6C, 0x102, 0x2C70, 0x1, 0x2C72, 0x201, 0x2C74, 0x2,
|
492
|
+
0x2C75, 0x1, 0x2C7C, 0x2, 0x2C7D, 0x4, 0x2C80, 0x1, 0x2CE2, 0x201,
|
493
|
+
0x2CE4, 0x2, 0x2CEA, 0x1C, 0x2CEE, 0x102, 0x2CF1, 0x6, 0x2CFC, 0x18,
|
494
|
+
0x2CFD, 0xB, 0x2CFF, 0x18, 0x2D25, 0x2, 0x2D65, 0x5, 0x2D70, 0x418,
|
495
|
+
0x2D7F, 0x6, 0x2D96, 0x5, 0x2DA6, 0x5, 0x2DAE, 0x5, 0x2DB6, 0x5,
|
496
|
+
0x2DBE, 0x5, 0x2DC6, 0x5, 0x2DCE, 0x5, 0x2DD6, 0x5, 0x2DDE, 0x5,
|
497
|
+
0x2DFF, 0x6, 0x2E01, 0x18, 0x2E05, 0x1E1D, 0x2E08, 0x18, 0x2E09, 0x1D,
|
498
|
+
0x2E0A, 0x1E, 0x2E0B, 0x18, 0x2E0C, 0x1D, 0x2E0D, 0x1E, 0x2E16, 0x18,
|
499
|
+
0x2E17, 0x14, 0x2E19, 0x18, 0x2E1A, 0x14, 0x2E1B, 0x18, 0x2E1C, 0x1D,
|
500
|
+
0x2E1D, 0x1E, 0x2E1F, 0x18, 0x2E20, 0x1D, 0x2E21, 0x1E, 0x2E22, 0x15,
|
501
|
+
0x2E23, 0x16, 0x2E24, 0x15, 0x2E25, 0x16, 0x2E26, 0x15, 0x2E27, 0x16,
|
502
|
+
0x2E28, 0x15, 0x2E29, 0x16, 0x2E2E, 0x18, 0x2E2F, 0x4, 0x2E31, 0x18,
|
503
|
+
0x2E99, 0x1C, 0x2EF3, 0x1C, 0x2FD5, 0x1C, 0x2FFB, 0x1C, 0x3000, 0xC,
|
504
|
+
0x3003, 0x18, 0x3004, 0x1C, 0x3005, 0x4, 0x3006, 0x5, 0x3007, 0xA,
|
505
|
+
0x3008, 0x15, 0x3009, 0x16, 0x300A, 0x15, 0x300B, 0x16, 0x300C, 0x15,
|
506
|
+
0x300D, 0x16, 0x300E, 0x15, 0x300F, 0x16, 0x3010, 0x15, 0x3011, 0x16,
|
507
|
+
0x3013, 0x1C, 0x3014, 0x15, 0x3015, 0x16, 0x3016, 0x15, 0x3017, 0x16,
|
508
|
+
0x3018, 0x15, 0x3019, 0x16, 0x301A, 0x15, 0x301B, 0x16, 0x301C, 0x14,
|
509
|
+
0x301D, 0x15, 0x301F, 0x16, 0x3020, 0x1C, 0x3029, 0xA, 0x302F, 0x6,
|
510
|
+
0x3030, 0x14, 0x3035, 0x4, 0x3037, 0x1C, 0x303A, 0xA, 0x303B, 0x4,
|
511
|
+
0x303C, 0x5, 0x303D, 0x18, 0x303F, 0x1C, 0x3096, 0x5, 0x309A, 0x6,
|
512
|
+
0x309C, 0x1B, 0x309E, 0x4, 0x30A0, 0x514, 0x30FA, 0x5, 0x30FB, 0x18,
|
513
|
+
0x30FE, 0x4, 0x30FF, 0x5, 0x312D, 0x5, 0x318E, 0x5, 0x3191, 0x1C,
|
514
|
+
0x3195, 0xB, 0x319F, 0x1C, 0x31BA, 0x5, 0x31E3, 0x1C, 0x31FF, 0x5,
|
515
|
+
0x321E, 0x1C, 0x3229, 0xB, 0x3250, 0x1C, 0x325F, 0xB, 0x327F, 0x1C,
|
516
|
+
0x3289, 0xB, 0x32B0, 0x1C, 0x32BF, 0xB, 0x32FE, 0x1C, 0x33FF, 0x1C,
|
517
|
+
0x4DB5, 0x5, 0x4DFF, 0x1C, 0x9FCB, 0x5, 0xA014, 0x5, 0xA015, 0x4,
|
518
|
+
0xA48C, 0x5, 0xA4C6, 0x1C, 0xA4F7, 0x5, 0xA4FD, 0x4, 0xA4FF, 0x18,
|
519
|
+
0xA60B, 0x5, 0xA60C, 0x4, 0xA60F, 0x18, 0xA61F, 0x5, 0xA629, 0x9,
|
520
|
+
0xA62B, 0x5, 0xA640, 0x1, 0xA641, 0x2, 0xA642, 0x1, 0xA643, 0x2,
|
521
|
+
0xA644, 0x1, 0xA645, 0x2, 0xA646, 0x1, 0xA647, 0x2, 0xA648, 0x1,
|
522
|
+
0xA649, 0x2, 0xA64A, 0x1, 0xA64B, 0x2, 0xA64C, 0x1, 0xA64D, 0x2,
|
523
|
+
0xA64E, 0x1, 0xA64F, 0x2, 0xA650, 0x1, 0xA651, 0x2, 0xA652, 0x1,
|
524
|
+
0xA653, 0x2, 0xA654, 0x1, 0xA655, 0x2, 0xA656, 0x1, 0xA657, 0x2,
|
525
|
+
0xA658, 0x1, 0xA659, 0x2, 0xA65A, 0x1, 0xA65B, 0x2, 0xA65C, 0x1,
|
526
|
+
0xA65D, 0x2, 0xA65E, 0x1, 0xA65F, 0x2, 0xA660, 0x1, 0xA661, 0x2,
|
527
|
+
0xA662, 0x1, 0xA663, 0x2, 0xA664, 0x1, 0xA665, 0x2, 0xA666, 0x1,
|
528
|
+
0xA667, 0x2, 0xA668, 0x1, 0xA669, 0x2, 0xA66A, 0x1, 0xA66B, 0x2,
|
529
|
+
0xA66C, 0x1, 0xA66D, 0x2, 0xA66E, 0x5, 0xA66F, 0x6, 0xA672, 0x7,
|
530
|
+
0xA673, 0x18, 0xA67D, 0x6, 0xA67E, 0x18, 0xA67F, 0x4, 0xA680, 0x1,
|
531
|
+
0xA681, 0x2, 0xA682, 0x1, 0xA683, 0x2, 0xA684, 0x1, 0xA685, 0x2,
|
532
|
+
0xA686, 0x1, 0xA687, 0x2, 0xA688, 0x1, 0xA689, 0x2, 0xA68A, 0x1,
|
533
|
+
0xA68B, 0x2, 0xA68C, 0x1, 0xA68D, 0x2, 0xA68E, 0x1, 0xA68F, 0x2,
|
534
|
+
0xA690, 0x1, 0xA691, 0x2, 0xA692, 0x1, 0xA693, 0x2, 0xA694, 0x1,
|
535
|
+
0xA695, 0x2, 0xA696, 0x1, 0xA697, 0x2, 0xA6E5, 0x5, 0xA6EF, 0xA,
|
536
|
+
0xA6F1, 0x6, 0xA6F7, 0x18, 0xA716, 0x1B, 0xA71F, 0x4, 0xA721, 0x1B,
|
537
|
+
0xA72E, 0x201, 0xA731, 0x2, 0xA732, 0x1, 0xA733, 0x2, 0xA734, 0x1,
|
538
|
+
0xA735, 0x2, 0xA736, 0x1, 0xA737, 0x2, 0xA738, 0x1, 0xA739, 0x2,
|
539
|
+
0xA73A, 0x1, 0xA73B, 0x2, 0xA73C, 0x1, 0xA73D, 0x2, 0xA73E, 0x1,
|
540
|
+
0xA73F, 0x2, 0xA740, 0x1, 0xA741, 0x2, 0xA742, 0x1, 0xA743, 0x2,
|
541
|
+
0xA744, 0x1, 0xA745, 0x2, 0xA746, 0x1, 0xA747, 0x2, 0xA748, 0x1,
|
542
|
+
0xA749, 0x2, 0xA74A, 0x1, 0xA74B, 0x2, 0xA74C, 0x1, 0xA74D, 0x2,
|
543
|
+
0xA74E, 0x1, 0xA74F, 0x2, 0xA750, 0x1, 0xA751, 0x2, 0xA752, 0x1,
|
544
|
+
0xA753, 0x2, 0xA754, 0x1, 0xA755, 0x2, 0xA756, 0x1, 0xA757, 0x2,
|
545
|
+
0xA758, 0x1, 0xA759, 0x2, 0xA75A, 0x1, 0xA75B, 0x2, 0xA75C, 0x1,
|
546
|
+
0xA75D, 0x2, 0xA75E, 0x1, 0xA75F, 0x2, 0xA760, 0x1, 0xA761, 0x2,
|
547
|
+
0xA762, 0x1, 0xA763, 0x2, 0xA764, 0x1, 0xA765, 0x2, 0xA766, 0x1,
|
548
|
+
0xA767, 0x2, 0xA768, 0x1, 0xA769, 0x2, 0xA76A, 0x1, 0xA76B, 0x2,
|
549
|
+
0xA76C, 0x1, 0xA76D, 0x2, 0xA76E, 0x1, 0xA76F, 0x2, 0xA770, 0x4,
|
550
|
+
0xA778, 0x2, 0xA77C, 0x102, 0xA77E, 0x1, 0xA77F, 0x2, 0xA780, 0x1,
|
551
|
+
0xA781, 0x2, 0xA782, 0x1, 0xA783, 0x2, 0xA784, 0x1, 0xA785, 0x2,
|
552
|
+
0xA786, 0x1, 0xA787, 0x2, 0xA788, 0x4, 0xA78A, 0x1B, 0xA78E, 0x102,
|
553
|
+
0xA791, 0x201, 0xA7A9, 0x201, 0xA7FA, 0x2, 0xA801, 0x5, 0xA802, 0x6,
|
554
|
+
0xA805, 0x5, 0xA806, 0x6, 0xA80A, 0x5, 0xA80B, 0x6, 0xA822, 0x5,
|
555
|
+
0xA824, 0x8, 0xA826, 0x6, 0xA827, 0x8, 0xA82B, 0x1C, 0xA835, 0xB,
|
556
|
+
0xA837, 0x1C, 0xA839, 0x1C1A, 0xA873, 0x5, 0xA877, 0x18, 0xA881, 0x8,
|
557
|
+
0xA8B3, 0x5, 0xA8C3, 0x8, 0xA8C4, 0x6, 0xA8CF, 0x18, 0xA8D9, 0x9,
|
558
|
+
0xA8F1, 0x6, 0xA8F7, 0x5, 0xA8FA, 0x18, 0xA8FB, 0x5, 0xA909, 0x9,
|
559
|
+
0xA925, 0x5, 0xA92D, 0x6, 0xA92F, 0x18, 0xA946, 0x5, 0xA951, 0x6,
|
560
|
+
0xA953, 0x8, 0xA95F, 0x18, 0xA97C, 0x5, 0xA982, 0x6, 0xA983, 0x8,
|
561
|
+
0xA9B2, 0x5, 0xA9B3, 0x6, 0xA9B5, 0x8, 0xA9B9, 0x6, 0xA9BB, 0x8,
|
562
|
+
0xA9BC, 0x6, 0xA9C0, 0x8, 0xA9CD, 0x18, 0xA9CF, 0x4, 0xA9D9, 0x9,
|
563
|
+
0xA9DF, 0x18, 0xAA28, 0x5, 0xAA2E, 0x6, 0xAA30, 0x8, 0xAA32, 0x6,
|
564
|
+
0xAA34, 0x8, 0xAA36, 0x6, 0xAA42, 0x5, 0xAA43, 0x6, 0xAA4B, 0x5,
|
565
|
+
0xAA4D, 0x806, 0xAA59, 0x9, 0xAA5F, 0x18, 0xAA6F, 0x5, 0xAA70, 0x4,
|
566
|
+
0xAA76, 0x5, 0xAA79, 0x1C, 0xAA7B, 0x805, 0xAAAF, 0x5, 0xAAB1, 0x506,
|
567
|
+
0xAAB4, 0x6, 0xAAB6, 0x5, 0xAAB8, 0x6, 0xAABD, 0x5, 0xAABF, 0x6,
|
568
|
+
0xAAC2, 0x605, 0xAADC, 0x5, 0xAADD, 0x4, 0xAADF, 0x18, 0xAB06, 0x5,
|
569
|
+
0xAB0E, 0x5, 0xAB16, 0x5, 0xAB26, 0x5, 0xAB2E, 0x5, 0xABE2, 0x5,
|
570
|
+
0xABE4, 0x8, 0xABE5, 0x6, 0xABE7, 0x8, 0xABE8, 0x6, 0xABEA, 0x8,
|
571
|
+
0xABEB, 0x18, 0xABEC, 0x8, 0xABED, 0x6, 0xABF9, 0x9, 0xD7A3, 0x5,
|
572
|
+
0xD7C6, 0x5, 0xD7FB, 0x5, 0xDFFF, 0x13, 0xF8FF, 0x12, 0xFA2D, 0x5,
|
573
|
+
0xFA6D, 0x5, 0xFAD9, 0x5, 0xFB06, 0x2, 0xFB17, 0x2, 0xFB1E, 0x506,
|
574
|
+
0xFB28, 0x5, 0xFB29, 0x19, 0xFB36, 0x5, 0xFB3C, 0x5, 0xFB3E, 0x5,
|
575
|
+
0xFB41, 0x5, 0xFB44, 0x5, 0xFBB1, 0x5, 0xFBC1, 0x1B, 0xFD3D, 0x5,
|
576
|
+
0xFD3F, 0x1615, 0xFD8F, 0x5, 0xFDC7, 0x5, 0xFDFB, 0x5, 0xFDFD, 0x1C1A,
|
577
|
+
0xFE0F, 0x6, 0xFE16, 0x18, 0xFE17, 0x15, 0xFE18, 0x16, 0xFE19, 0x18,
|
578
|
+
0xFE26, 0x6, 0xFE30, 0x18, 0xFE32, 0x14, 0xFE34, 0x17, 0xFE44, 0x1516,
|
579
|
+
0xFE46, 0x18, 0xFE48, 0x1516, 0xFE4C, 0x18, 0xFE4F, 0x17, 0xFE52, 0x18,
|
580
|
+
0xFE57, 0x18, 0xFE58, 0x14, 0xFE59, 0x15, 0xFE5A, 0x16, 0xFE5B, 0x15,
|
581
|
+
0xFE5C, 0x16, 0xFE5D, 0x15, 0xFE5E, 0x16, 0xFE61, 0x18, 0xFE63, 0x1419,
|
582
|
+
0xFE66, 0x19, 0xFE69, 0x1A18, 0xFE6B, 0x18, 0xFE74, 0x5, 0xFEFC, 0x5,
|
583
|
+
0xFEFF, 0x10, 0xFF03, 0x18, 0xFF04, 0x1A, 0xFF07, 0x18, 0xFF08, 0x15,
|
584
|
+
0xFF09, 0x16, 0xFF0A, 0x18, 0xFF0B, 0x19, 0xFF0C, 0x18, 0xFF0D, 0x14,
|
585
|
+
0xFF0F, 0x18, 0xFF19, 0x9, 0xFF1B, 0x18, 0xFF1E, 0x19, 0xFF20, 0x18,
|
586
|
+
0xFF3A, 0x1, 0xFF3B, 0x15, 0xFF3C, 0x18, 0xFF3D, 0x16, 0xFF3E, 0x1B,
|
587
|
+
0xFF3F, 0x17, 0xFF40, 0x1B, 0xFF5A, 0x2, 0xFF5B, 0x15, 0xFF5C, 0x19,
|
588
|
+
0xFF5D, 0x16, 0xFF5E, 0x19, 0xFF5F, 0x15, 0xFF60, 0x16, 0xFF61, 0x18,
|
589
|
+
0xFF62, 0x15, 0xFF63, 0x16, 0xFF65, 0x18, 0xFF6F, 0x5, 0xFF70, 0x4,
|
590
|
+
0xFF9D, 0x5, 0xFF9F, 0x4, 0xFFBE, 0x5, 0xFFC7, 0x5, 0xFFCF, 0x5,
|
591
|
+
0xFFD7, 0x5, 0xFFDC, 0x5, 0xFFE1, 0x1A, 0xFFE2, 0x19, 0xFFE3, 0x1B,
|
592
|
+
0xFFE4, 0x1C, 0xFFE6, 0x1A, 0xFFE8, 0x1C, 0xFFEC, 0x19, 0xFFEE, 0x1C,
|
593
|
+
0xFFFB, 0x10, 0xFFFD, 0x1C
|
594
|
+
} };
|
595
|
+
|
596
|
+
static const std::tr1::array<uint16_t, 1000 - 192> kLowerCaseCache = { {
|
597
|
+
224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
|
598
|
+
240, 241, 242, 243, 244, 245, 246, 215, 248, 249, 250, 251, 252, 253, 254, 223,
|
599
|
+
224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
|
600
|
+
240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
|
601
|
+
257, 257, 259, 259, 261, 261, 263, 263, 265, 265, 267, 267, 269, 269, 271, 271,
|
602
|
+
273, 273, 275, 275, 277, 277, 279, 279, 281, 281, 283, 283, 285, 285, 287, 287,
|
603
|
+
289, 289, 291, 291, 293, 293, 295, 295, 297, 297, 299, 299, 301, 301, 303, 303,
|
604
|
+
105, 305, 307, 307, 309, 309, 311, 311, 312, 314, 314, 316, 316, 318, 318, 320,
|
605
|
+
320, 322, 322, 324, 324, 326, 326, 328, 328, 329, 331, 331, 333, 333, 335, 335,
|
606
|
+
337, 337, 339, 339, 341, 341, 343, 343, 345, 345, 347, 347, 349, 349, 351, 351,
|
607
|
+
353, 353, 355, 355, 357, 357, 359, 359, 361, 361, 363, 363, 365, 365, 367, 367,
|
608
|
+
369, 369, 371, 371, 373, 373, 375, 375, 255, 378, 378, 380, 380, 382, 382, 383,
|
609
|
+
384, 595, 387, 387, 389, 389, 596, 392, 392, 598, 599, 396, 396, 397, 477, 601,
|
610
|
+
603, 402, 402, 608, 611, 405, 617, 616, 409, 409, 410, 411, 623, 626, 414, 629,
|
611
|
+
417, 417, 419, 419, 421, 421, 640, 424, 424, 643, 426, 427, 429, 429, 648, 432,
|
612
|
+
432, 650, 651, 436, 436, 438, 438, 658, 441, 441, 442, 443, 445, 445, 446, 447,
|
613
|
+
448, 449, 450, 451, 454, 454, 454, 457, 457, 457, 460, 460, 460, 462, 462, 464,
|
614
|
+
464, 466, 466, 468, 468, 470, 470, 472, 472, 474, 474, 476, 476, 477, 479, 479,
|
615
|
+
481, 481, 483, 483, 485, 485, 487, 487, 489, 489, 491, 491, 493, 493, 495, 495,
|
616
|
+
496, 499, 499, 499, 501, 501, 405, 447, 505, 505, 507, 507, 509, 509, 511, 511,
|
617
|
+
513, 513, 515, 515, 517, 517, 519, 519, 521, 521, 523, 523, 525, 525, 527, 527,
|
618
|
+
529, 529, 531, 531, 533, 533, 535, 535, 537, 537, 539, 539, 541, 541, 543, 543,
|
619
|
+
414, 545, 547, 547, 549, 549, 551, 551, 553, 553, 555, 555, 557, 557, 559, 559,
|
620
|
+
561, 561, 563, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575,
|
621
|
+
576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591,
|
622
|
+
592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607,
|
623
|
+
608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623,
|
624
|
+
624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639,
|
625
|
+
640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655,
|
626
|
+
656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671,
|
627
|
+
672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687,
|
628
|
+
688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703,
|
629
|
+
704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719,
|
630
|
+
720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735,
|
631
|
+
736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751,
|
632
|
+
752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767,
|
633
|
+
768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783,
|
634
|
+
784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799,
|
635
|
+
800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815,
|
636
|
+
816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831,
|
637
|
+
832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847,
|
638
|
+
848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863,
|
639
|
+
864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879,
|
640
|
+
880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895,
|
641
|
+
896, 897, 898, 899, 900, 901, 940, 903, 941, 942, 943, 907, 972, 909, 973, 974,
|
642
|
+
912, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959,
|
643
|
+
960, 961, 930, 963, 964, 965, 966, 967, 968, 969, 970, 971, 940, 941, 942, 943,
|
644
|
+
944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959,
|
645
|
+
960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975,
|
646
|
+
976, 977, 978, 979, 980, 981, 982, 983, 985, 985, 987, 987, 989, 989, 991, 991,
|
647
|
+
993, 993, 995, 995, 997, 997, 999, 999
|
648
|
+
} };
|
649
|
+
|
650
|
+
static const std::tr1::array<uint16_t, 101> kLowerCaseKeys = { {
|
651
|
+
0x41, 0xC0, 0xD8, 0x100, 0x130, 0x132, 0x139, 0x14A, 0x178, 0x179, 0x181, 0x182, 0x186, 0x187, 0x189, 0x18B, 0x18E, 0x18F, 0x190, 0x191, 0x193, 0x194, 0x196, 0x197, 0x198, 0x19C, 0x19D, 0x19F, 0x1A0, 0x1A6, 0x1A7, 0x1A9, 0x1AC, 0x1AE, 0x1AF, 0x1B1, 0x1B3, 0x1B7, 0x1B8, 0x1BC, 0x1C4, 0x1C5, 0x1C7, 0x1C8, 0x1CA, 0x1CB, 0x1DE, 0x1F1, 0x1F2, 0x1F6, 0x1F7, 0x1F8, 0x222, 0x386, 0x388, 0x38C, 0x38E, 0x391, 0x3A3, 0x3DA, 0x400, 0x410, 0x460, 0x48C, 0x4C1, 0x4C7, 0x4CB, 0x4D0, 0x4F8, 0x531, 0x1E00, 0x1EA0, 0x1F08, 0x1F18, 0x1F28, 0x1F38, 0x1F48, 0x1F59, 0x1F68, 0x1F88, 0x1F98, 0x1FA8, 0x1FB8, 0x1FBA, 0x1FBC, 0x1FC8, 0x1FCC, 0x1FD8, 0x1FDA, 0x1FE8, 0x1FEA, 0x1FEC, 0x1FF8, 0x1FFA, 0x1FFC, 0x2126, 0x212A, 0x212B, 0x2160, 0x24B6, 0xFF21 // NOLINT
|
652
|
+
} };
|
653
|
+
|
654
|
+
static const std::tr1::array<uint16_t, 202> kLowerCaseValues = { {
|
655
|
+
0x5A, 0x20, 0xD6, 0x20, 0xDE, 0x20, 0x812E, 0x1, 0x130, 0xFF39, 0x8136, 0x1, 0x8147, 0x1, 0x8176, 0x1, 0x178, 0xFF87, 0x817D, 0x1, 0x181, 0xD2, 0x8184, 0x1, 0x186, 0xCE, 0x187, 0x1, 0x18A, 0xCD, 0x18B, 0x1, 0x18E, 0x4F, 0x18F, 0xCA, 0x190, 0xCB, 0x191, 0x1, 0x193, 0xCD, 0x194, 0xCF, 0x196, 0xD3, 0x197, 0xD1, 0x198, 0x1, 0x19C, 0xD3, 0x19D, 0xD5, 0x19F, 0xD6, 0x81A4, 0x1, 0x1A6, 0xDA, 0x1A7, 0x1, 0x1A9, 0xDA, 0x1AC, 0x1, 0x1AE, 0xDA, 0x1AF, 0x1, 0x1B2, 0xD9, 0x81B5, 0x1, 0x1B7, 0xDB, 0x1B8, 0x1, 0x1BC, 0x1, 0x1C4, 0x2, 0x1C5, 0x1, 0x1C7, 0x2, 0x1C8, 0x1, 0x1CA, 0x2, 0x81DB, 0x1, 0x81EE, 0x1, 0x1F1, 0x2, 0x81F4, 0x1, 0x1F6, 0xFF9F, 0x1F7, 0xFFC8, 0x821E, 0x1, 0x8232, 0x1, 0x386, 0x26, 0x38A, 0x25, 0x38C, 0x40, 0x38F, 0x3F, 0x3A1, 0x20, 0x3AB, 0x20, 0x83EE, 0x1, 0x40F, 0x50, 0x42F, 0x20, 0x8480, 0x1, 0x84BE, 0x1, 0x84C3, 0x1, 0x4C7, 0x1, 0x4CB, 0x1, 0x84F4, 0x1, 0x4F8, 0x1, 0x556, 0x30, 0x9E94, 0x1, 0x9EF8, 0x1, 0x1F0F, 0xFFF8, 0x1F1D, 0xFFF8, 0x1F2F, 0xFFF8, 0x1F3F, 0xFFF8, 0x1F4D, 0xFFF8, 0x9F5F, 0xFFF8, 0x1F6F, 0xFFF8, 0x1F8F, 0xFFF8, 0x1F9F, 0xFFF8, 0x1FAF, 0xFFF8, 0x1FB9, 0xFFF8, 0x1FBB, 0xFFB6, 0x1FBC, 0xFFF7, 0x1FCB, 0xFFAA, 0x1FCC, 0xFFF7, 0x1FD9, 0xFFF8, 0x1FDB, 0xFF9C, 0x1FE9, 0xFFF8, 0x1FEB, 0xFF90, 0x1FEC, 0xFFF9, 0x1FF9, 0xFF80, 0x1FFB, 0xFF82, 0x1FFC, 0xFFF7, 0x2126, 0xE2A3, 0x212A, 0xDF41, 0x212B, 0xDFBA, 0x216F, 0x10, 0x24CF, 0x1A, 0xFF3A, 0x20 // NOLINT
|
656
|
+
} };
|
657
|
+
|
658
|
+
static const std::tr1::array<uint16_t, 1000 - 181> kUpperCaseCache = { {
|
659
|
+
924, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196,
|
660
|
+
197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212,
|
661
|
+
213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 192, 193, 194, 195, 196,
|
662
|
+
197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212,
|
663
|
+
213, 214, 247, 216, 217, 218, 219, 220, 221, 222, 376, 256, 256, 258, 258, 260,
|
664
|
+
260, 262, 262, 264, 264, 266, 266, 268, 268, 270, 270, 272, 272, 274, 274, 276,
|
665
|
+
276, 278, 278, 280, 280, 282, 282, 284, 284, 286, 286, 288, 288, 290, 290, 292,
|
666
|
+
292, 294, 294, 296, 296, 298, 298, 300, 300, 302, 302, 304, 73, 306, 306, 308,
|
667
|
+
308, 310, 310, 312, 313, 313, 315, 315, 317, 317, 319, 319, 321, 321, 323, 323,
|
668
|
+
325, 325, 327, 327, 329, 330, 330, 332, 332, 334, 334, 336, 336, 338, 338, 340,
|
669
|
+
340, 342, 342, 344, 344, 346, 346, 348, 348, 350, 350, 352, 352, 354, 354, 356,
|
670
|
+
356, 358, 358, 360, 360, 362, 362, 364, 364, 366, 366, 368, 368, 370, 370, 372,
|
671
|
+
372, 374, 374, 376, 377, 377, 379, 379, 381, 381, 83, 384, 385, 386, 386, 388,
|
672
|
+
388, 390, 391, 391, 393, 394, 395, 395, 397, 398, 399, 400, 401, 401, 403, 404,
|
673
|
+
502, 406, 407, 408, 408, 410, 411, 412, 413, 544, 415, 416, 416, 418, 418, 420,
|
674
|
+
420, 422, 423, 423, 425, 426, 427, 428, 428, 430, 431, 431, 433, 434, 435, 435,
|
675
|
+
437, 437, 439, 440, 440, 442, 443, 444, 444, 446, 503, 448, 449, 450, 451, 452,
|
676
|
+
452, 452, 455, 455, 455, 458, 458, 458, 461, 461, 463, 463, 465, 465, 467, 467,
|
677
|
+
469, 469, 471, 471, 473, 473, 475, 475, 398, 478, 478, 480, 480, 482, 482, 484,
|
678
|
+
484, 486, 486, 488, 488, 490, 490, 492, 492, 494, 494, 496, 497, 497, 497, 500,
|
679
|
+
500, 502, 503, 504, 504, 506, 506, 508, 508, 510, 510, 512, 512, 514, 514, 516,
|
680
|
+
516, 518, 518, 520, 520, 522, 522, 524, 524, 526, 526, 528, 528, 530, 530, 532,
|
681
|
+
532, 534, 534, 536, 536, 538, 538, 540, 540, 542, 542, 544, 545, 546, 546, 548,
|
682
|
+
548, 550, 550, 552, 552, 554, 554, 556, 556, 558, 558, 560, 560, 562, 562, 564,
|
683
|
+
565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580,
|
684
|
+
581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 385, 390,
|
685
|
+
597, 393, 394, 600, 399, 602, 400, 604, 605, 606, 607, 403, 609, 610, 404, 612,
|
686
|
+
613, 614, 615, 407, 406, 618, 619, 620, 621, 622, 412, 624, 625, 413, 627, 628,
|
687
|
+
415, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 422, 641, 642, 425, 644,
|
688
|
+
645, 646, 647, 430, 649, 433, 434, 652, 653, 654, 655, 656, 657, 439, 659, 660,
|
689
|
+
661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676,
|
690
|
+
677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692,
|
691
|
+
693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708,
|
692
|
+
709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724,
|
693
|
+
725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740,
|
694
|
+
741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756,
|
695
|
+
757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772,
|
696
|
+
773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788,
|
697
|
+
789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804,
|
698
|
+
805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820,
|
699
|
+
821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836,
|
700
|
+
921, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852,
|
701
|
+
853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868,
|
702
|
+
869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884,
|
703
|
+
885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900,
|
704
|
+
901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916,
|
705
|
+
917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932,
|
706
|
+
933, 934, 935, 936, 937, 938, 939, 902, 904, 905, 906, 944, 913, 914, 915, 916,
|
707
|
+
917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 931, 931, 932,
|
708
|
+
933, 934, 935, 936, 937, 938, 939, 908, 910, 911, 975, 914, 920, 978, 979, 980,
|
709
|
+
934, 928, 983, 984, 984, 986, 986, 988, 988, 990, 990, 992, 992, 994, 994, 996,
|
710
|
+
996, 998, 998
|
711
|
+
} };
|
712
|
+
|
713
|
+
static const std::tr1::array<uint16_t, 113> kUpperCaseKeys = { {
|
714
|
+
0x61, 0xB5, 0xE0, 0xF8, 0xFF, 0x101, 0x131, 0x133, 0x13A, 0x14B, 0x17A, 0x17F, 0x183, 0x188, 0x18C, 0x192, 0x195, 0x199, 0x1A1, 0x1A8, 0x1AD, 0x1B0, 0x1B4, 0x1B9, 0x1BD, 0x1BF, 0x1C5, 0x1C6, 0x1C8, 0x1C9, 0x1CB, 0x1CC, 0x1CE, 0x1DD, 0x1DF, 0x1F2, 0x1F3, 0x1F5, 0x1F9, 0x223, 0x253, 0x254, 0x256, 0x259, 0x25B, 0x260, 0x263, 0x268, 0x269, 0x26F, 0x272, 0x275, 0x280, 0x283, 0x288, 0x28A, 0x292, 0x345, 0x3AC, 0x3AD, 0x3B1, 0x3C2, 0x3C3, 0x3CC, 0x3CD, 0x3D0, 0x3D1, 0x3D5, 0x3D6, 0x3DB, 0x3F0, 0x3F1, 0x3F2, 0x430, 0x450, 0x461, 0x48D, 0x4C2, 0x4C8, 0x4CC, 0x4D1, 0x4F9, 0x561, 0x1E01, 0x1E9B, 0x1EA1, 0x1F00, 0x1F10, 0x1F20, 0x1F30, 0x1F40, 0x1F51, 0x1F60, 0x1F70, 0x1F72, 0x1F76, 0x1F78, 0x1F7A, 0x1F7C, 0x1F80, 0x1F90, 0x1FA0, 0x1FB0, 0x1FB3, 0x1FBE, 0x1FC3, 0x1FD0, 0x1FE0, 0x1FE5, 0x1FF3, 0x2170, 0x24D0, 0xFF41 // NOLINT
|
715
|
+
} };
|
716
|
+
|
717
|
+
static const std::tr1::array<uint16_t, 226> kUpperCaseValues = { {
|
718
|
+
0x7A, 0xFFE0, 0xB5, 0x2E7, 0xF6, 0xFFE0, 0xFE, 0xFFE0, 0xFF, 0x79, 0x812F, 0xFFFF, 0x131, 0xFF18, 0x8137, 0xFFFF, 0x8148, 0xFFFF, 0x8177, 0xFFFF, 0x817E, 0xFFFF, 0x17F, 0xFED4, 0x8185, 0xFFFF, 0x188, 0xFFFF, 0x18C, 0xFFFF, 0x192, 0xFFFF, 0x195, 0x61, 0x199, 0xFFFF, 0x81A5, 0xFFFF, 0x1A8, 0xFFFF, 0x1AD, 0xFFFF, 0x1B0, 0xFFFF, 0x81B6, 0xFFFF, 0x1B9, 0xFFFF, 0x1BD, 0xFFFF, 0x1BF, 0x38, 0x1C5, 0xFFFF, 0x1C6, 0xFFFE, 0x1C8, 0xFFFF, 0x1C9, 0xFFFE, 0x1CB, 0xFFFF, 0x1CC, 0xFFFE, 0x81DC, 0xFFFF, 0x1DD, 0xFFB1, 0x81EF, 0xFFFF, 0x1F2, 0xFFFF, 0x1F3, 0xFFFE, 0x1F5, 0xFFFF, 0x821F, 0xFFFF, 0x8233, 0xFFFF, 0x253, 0xFF2E, 0x254, 0xFF32, 0x257, 0xFF33, 0x259, 0xFF36, 0x25B, 0xFF35, 0x260, 0xFF33, 0x263, 0xFF31, 0x268, 0xFF2F, 0x269, 0xFF2D, 0x26F, 0xFF2D, 0x272, 0xFF2B, 0x275, 0xFF2A, 0x280, 0xFF26, 0x283, 0xFF26, 0x288, 0xFF26, 0x28B, 0xFF27, 0x292, 0xFF25, 0x345, 0x54, 0x3AC, 0xFFDA, 0x3AF, 0xFFDB, 0x3C1, 0xFFE0, 0x3C2, 0xFFE1, 0x3CB, 0xFFE0, 0x3CC, 0xFFC0, 0x3CE, 0xFFC1, 0x3D0, 0xFFC2, 0x3D1, 0xFFC7, 0x3D5, 0xFFD1, 0x3D6, 0xFFCA, 0x83EF, 0xFFFF, 0x3F0, 0xFFAA, 0x3F1, 0xFFB0, 0x3F2, 0xFFB1, 0x44F, 0xFFE0, 0x45F, 0xFFB0, 0x8481, 0xFFFF, 0x84BF, 0xFFFF, 0x84C4, 0xFFFF, 0x4C8, 0xFFFF, 0x4CC, 0xFFFF, 0x84F5, 0xFFFF, 0x4F9, 0xFFFF, 0x586, 0xFFD0, 0x9E95, 0xFFFF, 0x1E9B, 0xFFC5, 0x9EF9, 0xFFFF, 0x1F07, 0x8, 0x1F15, 0x8, 0x1F27, 0x8, 0x1F37, 0x8, 0x1F45, 0x8, 0x9F57, 0x8, 0x1F67, 0x8, 0x1F71, 0x4A, 0x1F75, 0x56, 0x1F77, 0x64, 0x1F79, 0x80, 0x1F7B, 0x70, 0x1F7D, 0x7E, 0x1F87, 0x8, 0x1F97, 0x8, 0x1FA7, 0x8, 0x1FB1, 0x8, 0x1FB3, 0x9, 0x1FBE, 0xE3DB, 0x1FC3, 0x9, 0x1FD1, 0x8, 0x1FE1, 0x8, 0x1FE5, 0x7, 0x1FF3, 0x9, 0x217F, 0xFFF0, 0x24E9, 0xFFE6, 0xFF5A, 0xFFE0 // NOLINT
|
719
|
+
} };
|
720
|
+
|
721
|
+
inline Category GetCategory(uint16_t c) {
|
722
|
+
using std::upper_bound;
|
723
|
+
if (c < 1000) {
|
724
|
+
return static_cast<Category>(kCategoryCache[c]);
|
725
|
+
}
|
726
|
+
const int result =
|
727
|
+
upper_bound(kCategoryKeys.begin(),
|
728
|
+
kCategoryKeys.end(), c) - kCategoryKeys.begin() - 1;
|
729
|
+
assert(result < static_cast<int>(kCategoryKeys.size()));
|
730
|
+
const int high = kCategoryValues[result * 2];
|
731
|
+
if (c <= high) {
|
732
|
+
const int code = kCategoryValues[result * 2 + 1];
|
733
|
+
if (code < 0x100) {
|
734
|
+
return static_cast<Category>(code);
|
735
|
+
}
|
736
|
+
return static_cast<Category>((c & 1) == 1 ? code >> 8 : code & 0xff);
|
737
|
+
}
|
738
|
+
return UNASSIGNED;
|
739
|
+
}
|
740
|
+
|
741
|
+
inline bool IsASCII(uint16_t c) {
|
742
|
+
return !(c & ~0x7F);
|
743
|
+
}
|
744
|
+
|
745
|
+
inline bool IsASCIIAlpha(uint16_t c) {
|
746
|
+
return (c | 0x20) >= 'a' && (c | 0x20) <= 'z';
|
747
|
+
}
|
748
|
+
|
749
|
+
inline bool IsDecimalDigit(uint16_t c) {
|
750
|
+
return c >= '0' && c <= '9';
|
751
|
+
}
|
752
|
+
|
753
|
+
inline bool IsOctalDigit(uint16_t c) {
|
754
|
+
return c >= '0' && c <= '7';
|
755
|
+
}
|
756
|
+
|
757
|
+
inline bool IsHexDigit(uint16_t c) {
|
758
|
+
return IsDecimalDigit(c) || ((c | 0x20) >= 'a' && (c | 0x20) <= 'f');
|
759
|
+
}
|
760
|
+
|
761
|
+
inline bool IsDigit(uint16_t c) {
|
762
|
+
return IsDecimalDigit(c) ||
|
763
|
+
(c > 1631 && GetCategory(c) == DECIMAL_DIGIT_NUMBER);
|
764
|
+
}
|
765
|
+
|
766
|
+
inline bool IsASCIIAlphanumeric(uint16_t c) {
|
767
|
+
return IsDecimalDigit(c) || IsASCIIAlpha(c);
|
768
|
+
}
|
769
|
+
|
770
|
+
inline bool IsNonASCIIIdentifierStart(uint16_t c) {
|
771
|
+
return (1 << GetCategory(c)) & (Lu | Ll | Lt | Lm | Lo);
|
772
|
+
}
|
773
|
+
|
774
|
+
inline bool IsNonASCIIIdentifierPart(uint16_t c) {
|
775
|
+
return (1 << GetCategory(c)) & (Lu | Ll | Lt | Lm | Lo | Mn | Mc | Nd | Pc);
|
776
|
+
}
|
777
|
+
|
778
|
+
inline bool IsSeparatorSpace(uint16_t c) {
|
779
|
+
return GetCategory(c) == SPACE_SEPARATOR;
|
780
|
+
}
|
781
|
+
|
782
|
+
inline bool IsWhiteSpace(uint16_t c) {
|
783
|
+
return IsASCII(c) ?
|
784
|
+
(c == ' ' || c == '\t' || c == 0xB || c == 0xC) :
|
785
|
+
c == 0x00A0 || c == 0xFEFF || IsSeparatorSpace(c);
|
786
|
+
}
|
787
|
+
|
788
|
+
inline bool IsLineTerminator(uint16_t c) {
|
789
|
+
return c == '\r' || c == '\n' || (c & ~1) == 0x2028; // 0x2028 or 0x2029
|
790
|
+
}
|
791
|
+
|
792
|
+
inline bool IsIdentifierStart(uint16_t c) {
|
793
|
+
return IsASCII(c) ? c == '$' || c == '_' ||
|
794
|
+
c == '\\' || IsASCIIAlpha(c) :
|
795
|
+
IsNonASCIIIdentifierStart(c);
|
796
|
+
}
|
797
|
+
|
798
|
+
inline bool IsIdentifierPart(uint16_t c) {
|
799
|
+
return IsASCII(c) ? c == '$' || c == '_' ||
|
800
|
+
c == '\\' || IsASCIIAlphanumeric(c) :
|
801
|
+
IsNonASCIIIdentifierPart(c);
|
802
|
+
}
|
803
|
+
|
804
|
+
inline uint16_t ToLowerCase(uint16_t c) {
|
805
|
+
using std::upper_bound;
|
806
|
+
if ('A' <= c && c <= 'Z') {
|
807
|
+
return c + ('a' - 'A');
|
808
|
+
}
|
809
|
+
// lowercase not found until 192
|
810
|
+
if (c < 192) {
|
811
|
+
return c;
|
812
|
+
}
|
813
|
+
if (c < 1000) {
|
814
|
+
return kLowerCaseCache[c - 192];
|
815
|
+
}
|
816
|
+
std::tr1::array<uint16_t, 101>::const_iterator it =
|
817
|
+
upper_bound(kLowerCaseKeys.begin(),
|
818
|
+
kLowerCaseKeys.end(), c) - 1;
|
819
|
+
const int result = it - kLowerCaseKeys.begin();
|
820
|
+
assert(result < 101);
|
821
|
+
if (result >= 0) {
|
822
|
+
bool by2 = false;
|
823
|
+
const uint16_t start = kLowerCaseKeys[result];
|
824
|
+
uint16_t end = kLowerCaseValues[result * 2];
|
825
|
+
if ((start & 0x8000) != (end & 0x8000)) {
|
826
|
+
end ^= 0x8000;
|
827
|
+
by2 = true;
|
828
|
+
}
|
829
|
+
if (c <= end) {
|
830
|
+
if (by2 && (c & 1) != (start & 1)) {
|
831
|
+
return c;
|
832
|
+
}
|
833
|
+
const uint16_t mapping = kLowerCaseValues[result * 2 + 1];
|
834
|
+
return c + mapping;
|
835
|
+
}
|
836
|
+
}
|
837
|
+
return c;
|
838
|
+
}
|
839
|
+
|
840
|
+
inline uint16_t ToUpperCase(uint16_t c) {
|
841
|
+
using std::upper_bound;
|
842
|
+
if ('a' <= c && c <= 'z') {
|
843
|
+
return c - ('a' - 'A');
|
844
|
+
}
|
845
|
+
// uppercase not found until 181
|
846
|
+
if (c < 181) {
|
847
|
+
return c;
|
848
|
+
}
|
849
|
+
if (c < 1000) {
|
850
|
+
return kUpperCaseCache[c - 181];
|
851
|
+
}
|
852
|
+
std::tr1::array<uint16_t, 113>::const_iterator it =
|
853
|
+
upper_bound(kUpperCaseKeys.begin(),
|
854
|
+
kUpperCaseKeys.end(), c) - 1;
|
855
|
+
const int result = it - kUpperCaseKeys.begin();
|
856
|
+
assert(result < 113);
|
857
|
+
if (result >= 0) {
|
858
|
+
bool by2 = false;
|
859
|
+
const uint16_t start = *it;
|
860
|
+
uint16_t end = kUpperCaseValues[result * 2];
|
861
|
+
if ((start & 0x8000) != (end & 0x8000)) {
|
862
|
+
end ^= 0x8000;
|
863
|
+
by2 = true;
|
864
|
+
}
|
865
|
+
if (c <= end) {
|
866
|
+
if (by2 && (c & 1) != (start & 1)) {
|
867
|
+
return c;
|
868
|
+
}
|
869
|
+
const uint16_t mapping = kUpperCaseValues[result * 2 + 1];
|
870
|
+
return c + mapping;
|
871
|
+
}
|
872
|
+
}
|
873
|
+
return c;
|
874
|
+
}
|
875
|
+
|
876
|
+
} // namespace iv::core::character
|
877
|
+
} } // namespace iv::core
|
878
|
+
#endif // _IV_CHARACTER_H_
|