1 | ;
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | exports.POSTAG = void 0;
|
4 | const core_1 = require("./util/core");
|
5 | /**
|
6 | * 单词类型
|
7 | */
|
8 | var POSTAG;
|
9 | (function (POSTAG) {
|
10 | /**
|
11 | * 錯字
|
12 | */
|
13 | POSTAG[POSTAG["BAD"] = 2147483648] = "BAD";
|
14 | /**
|
15 | * 形容词 形语素
|
16 | */
|
17 | POSTAG[POSTAG["D_A"] = 1073741824] = "D_A";
|
18 | /**
|
19 | * 区别词 区别语素
|
20 | */
|
21 | POSTAG[POSTAG["D_B"] = 536870912] = "D_B";
|
22 | /**
|
23 | * 连词 连语素
|
24 | */
|
25 | POSTAG[POSTAG["D_C"] = 268435456] = "D_C";
|
26 | // ---
|
27 | /**
|
28 | * 副词 副语素
|
29 | */
|
30 | POSTAG[POSTAG["D_D"] = 134217728] = "D_D";
|
31 | /**
|
32 | * 叹词 叹语素
|
33 | */
|
34 | POSTAG[POSTAG["D_E"] = 67108864] = "D_E";
|
35 | /**
|
36 | * 方位词 方位语素
|
37 | */
|
38 | POSTAG[POSTAG["D_F"] = 33554432] = "D_F";
|
39 | /**
|
40 | * 成语
|
41 | */
|
42 | POSTAG[POSTAG["D_I"] = 16777216] = "D_I";
|
43 | // ---
|
44 | /**
|
45 | * 习语
|
46 | * 類似成語或者曖昧無法分明的用語
|
47 | */
|
48 | POSTAG[POSTAG["D_L"] = 8388608] = "D_L";
|
49 | /**
|
50 | * 数词 数语素
|
51 | * 可以與其他數詞或者量詞合併的詞
|
52 | */
|
53 | POSTAG[POSTAG["A_M"] = 4194304] = "A_M";
|
54 | /**
|
55 | * 数量词
|
56 | */
|
57 | POSTAG[POSTAG["D_MQ"] = 2097152] = "D_MQ";
|
58 | /**
|
59 | * 名词 名语素
|
60 | */
|
61 | POSTAG[POSTAG["D_N"] = 1048576] = "D_N";
|
62 | // ---
|
63 | /**
|
64 | * 拟声词
|
65 | */
|
66 | POSTAG[POSTAG["D_O"] = 524288] = "D_O";
|
67 | /**
|
68 | * 介词
|
69 | */
|
70 | POSTAG[POSTAG["D_P"] = 262144] = "D_P";
|
71 | /**
|
72 | * 量词 量语素
|
73 | * 可以與數詞合併的詞
|
74 | */
|
75 | POSTAG[POSTAG["A_Q"] = 131072] = "A_Q";
|
76 | /**
|
77 | * 代词 代语素
|
78 | */
|
79 | POSTAG[POSTAG["D_R"] = 65536] = "D_R";
|
80 | // ---
|
81 | /**
|
82 | * 处所词
|
83 | */
|
84 | POSTAG[POSTAG["D_S"] = 32768] = "D_S";
|
85 | /**
|
86 | * 时间词
|
87 | */
|
88 | POSTAG[POSTAG["D_T"] = 16384] = "D_T";
|
89 | /**
|
90 | * 助词 助语素
|
91 | */
|
92 | POSTAG[POSTAG["D_U"] = 8192] = "D_U";
|
93 | /**
|
94 | * 动词 动语素
|
95 | */
|
96 | POSTAG[POSTAG["D_V"] = 4096] = "D_V";
|
97 | // ---
|
98 | /**
|
99 | * 标点符号
|
100 | */
|
101 | POSTAG[POSTAG["D_W"] = 2048] = "D_W";
|
102 | /**
|
103 | * 非语素字
|
104 | */
|
105 | POSTAG[POSTAG["D_X"] = 1024] = "D_X";
|
106 | /**
|
107 | * 语气词 语气语素
|
108 | */
|
109 | POSTAG[POSTAG["D_Y"] = 512] = "D_Y";
|
110 | /**
|
111 | * 状态词
|
112 | */
|
113 | POSTAG[POSTAG["D_Z"] = 256] = "D_Z";
|
114 | // ---
|
115 | /**
|
116 | * 人名
|
117 | */
|
118 | POSTAG[POSTAG["A_NR"] = 128] = "A_NR";
|
119 | /**
|
120 | * 地名
|
121 | */
|
122 | POSTAG[POSTAG["A_NS"] = 64] = "A_NS";
|
123 | /**
|
124 | * 机构团体
|
125 | */
|
126 | POSTAG[POSTAG["A_NT"] = 32] = "A_NT";
|
127 | /**
|
128 | * 外文字符
|
129 | */
|
130 | POSTAG[POSTAG["A_NX"] = 16] = "A_NX";
|
131 | // ---
|
132 | /**
|
133 | * 其他专名
|
134 | */
|
135 | POSTAG[POSTAG["A_NZ"] = 8] = "A_NZ";
|
136 | /**
|
137 | * 前接成分
|
138 | */
|
139 | POSTAG[POSTAG["D_ZH"] = 4] = "D_ZH";
|
140 | /**
|
141 | * 后接成分
|
142 | */
|
143 | POSTAG[POSTAG["D_K"] = 2] = "D_K";
|
144 | /**
|
145 | * 网址、邮箱地址
|
146 | */
|
147 | POSTAG[POSTAG["URL"] = 1] = "URL";
|
148 | /**
|
149 | * 未知词性
|
150 | */
|
151 | POSTAG[POSTAG["UNK"] = 0] = "UNK";
|
152 | })(POSTAG = exports.POSTAG || (exports.POSTAG = {}));
|
153 | (function (POSTAG) {
|
154 | POSTAG.POSTAG_KEYS = core_1.enumList(POSTAG);
|
155 | /**
|
156 | * 中文说明
|
157 | */
|
158 | let CHSNAME;
|
159 | (function (CHSNAME) {
|
160 | CHSNAME["BAD"] = "\u932F\u5B57";
|
161 | CHSNAME["D_A"] = "\u5F62\u5BB9\u8BCD \u5F62\u8BED\u7D20";
|
162 | CHSNAME["D_B"] = "\u533A\u522B\u8BCD \u533A\u522B\u8BED\u7D20";
|
163 | CHSNAME["D_C"] = "\u8FDE\u8BCD \u8FDE\u8BED\u7D20";
|
164 | CHSNAME["D_D"] = "\u526F\u8BCD \u526F\u8BED\u7D20";
|
165 | CHSNAME["D_E"] = "\u53F9\u8BCD \u53F9\u8BED\u7D20";
|
166 | CHSNAME["D_F"] = "\u65B9\u4F4D\u8BCD \u65B9\u4F4D\u8BED\u7D20";
|
167 | CHSNAME["D_I"] = "\u6210\u8BED";
|
168 | CHSNAME["D_L"] = "\u4E60\u8BED";
|
169 | CHSNAME["A_M"] = "\u6570\u8BCD \u6570\u8BED\u7D20";
|
170 | CHSNAME["D_MQ"] = "\u6570\u91CF\u8BCD";
|
171 | CHSNAME["D_N"] = "\u540D\u8BCD \u540D\u8BED\u7D20";
|
172 | CHSNAME["D_O"] = "\u62DF\u58F0\u8BCD";
|
173 | CHSNAME["D_P"] = "\u4ECB\u8BCD";
|
174 | CHSNAME["A_Q"] = "\u91CF\u8BCD \u91CF\u8BED\u7D20";
|
175 | CHSNAME["D_R"] = "\u4EE3\u8BCD \u4EE3\u8BED\u7D20";
|
176 | CHSNAME["D_S"] = "\u5904\u6240\u8BCD";
|
177 | CHSNAME["D_T"] = "\u65F6\u95F4\u8BCD";
|
178 | CHSNAME["D_U"] = "\u52A9\u8BCD \u52A9\u8BED\u7D20";
|
179 | CHSNAME["D_V"] = "\u52A8\u8BCD \u52A8\u8BED\u7D20";
|
180 | CHSNAME["D_W"] = "\u6807\u70B9\u7B26\u53F7";
|
181 | CHSNAME["D_X"] = "\u975E\u8BED\u7D20\u5B57";
|
182 | CHSNAME["D_Y"] = "\u8BED\u6C14\u8BCD \u8BED\u6C14\u8BED\u7D20";
|
183 | CHSNAME["D_Z"] = "\u72B6\u6001\u8BCD";
|
184 | CHSNAME["A_NR"] = "\u4EBA\u540D";
|
185 | CHSNAME["A_NS"] = "\u5730\u540D";
|
186 | CHSNAME["A_NT"] = "\u673A\u6784\u56E2\u4F53";
|
187 | CHSNAME["A_NX"] = "\u5916\u6587\u5B57\u7B26";
|
188 | CHSNAME["A_NZ"] = "\u5176\u4ED6\u4E13\u540D";
|
189 | CHSNAME["D_ZH"] = "\u524D\u63A5\u6210\u5206";
|
190 | CHSNAME["D_K"] = "\u540E\u63A5\u6210\u5206";
|
191 | CHSNAME["URL"] = "\u7F51\u5740 \u90AE\u7BB1\u5730\u5740";
|
192 | CHSNAME["UNK"] = "\u672A\u77E5";
|
193 | })(CHSNAME = POSTAG.CHSNAME || (POSTAG.CHSNAME = {}));
|
194 | /**
|
195 | * 繁體中文说明
|
196 | */
|
197 | let ZHNAME;
|
198 | (function (ZHNAME) {
|
199 | ZHNAME["BAD"] = "\u932F\u5B57";
|
200 | ZHNAME["D_A"] = "\u5F62\u5BB9\u8A5E \u5F62\u8A9E\u7D20";
|
201 | ZHNAME["D_B"] = "\u5340\u5225\u8A5E \u5340\u5225\u8A9E\u7D20";
|
202 | ZHNAME["D_C"] = "\u9023\u8A5E \u9023\u8A9E\u7D20";
|
203 | ZHNAME["D_D"] = "\u526F\u8A5E \u526F\u8A9E\u7D20";
|
204 | ZHNAME["D_E"] = "\u5606\u8A5E \u5606\u8A9E\u7D20";
|
205 | ZHNAME["D_F"] = "\u65B9\u4F4D\u8A5E \u65B9\u4F4D\u8A9E\u7D20";
|
206 | ZHNAME["D_I"] = "\u6210\u8A9E";
|
207 | ZHNAME["D_L"] = "\u7FD2\u8A9E";
|
208 | ZHNAME["A_M"] = "\u6578\u8A5E \u6578\u8A9E\u7D20";
|
209 | ZHNAME["D_MQ"] = "\u6578\u91CF\u8A5E";
|
210 | ZHNAME["D_N"] = "\u540D\u8A5E \u540D\u8A9E\u7D20";
|
211 | ZHNAME["D_O"] = "\u64EC\u8072\u8A5E";
|
212 | ZHNAME["D_P"] = "\u4ECB\u8A5E";
|
213 | ZHNAME["A_Q"] = "\u91CF\u8A5E \u91CF\u8A9E\u7D20";
|
214 | ZHNAME["D_R"] = "\u4EE3\u8A5E \u4EE3\u8A9E\u7D20";
|
215 | ZHNAME["D_S"] = "\u8655\u6240\u8A5E";
|
216 | ZHNAME["D_T"] = "\u6642\u9593\u8A5E";
|
217 | ZHNAME["D_U"] = "\u52A9\u8A5E \u52A9\u8A9E\u7D20";
|
218 | ZHNAME["D_V"] = "\u52D5\u8A5E \u52D5\u8A9E\u7D20";
|
219 | ZHNAME["D_W"] = "\u6A19\u9EDE\u7B26\u865F";
|
220 | ZHNAME["D_X"] = "\u975E\u8A9E\u7D20\u5B57";
|
221 | ZHNAME["D_Y"] = "\u8A9E\u6C23\u8A5E \u8A9E\u6C23\u8A9E\u7D20";
|
222 | ZHNAME["D_Z"] = "\u72C0\u614B\u8A5E";
|
223 | ZHNAME["A_NR"] = "\u4EBA\u540D";
|
224 | ZHNAME["A_NS"] = "\u5730\u540D";
|
225 | ZHNAME["A_NT"] = "\u6A5F\u69CB\u5718\u9AD4";
|
226 | ZHNAME["A_NX"] = "\u5916\u6587\u5B57\u7B26";
|
227 | ZHNAME["A_NZ"] = "\u5176\u4ED6\u5C08\u540D";
|
228 | ZHNAME["D_ZH"] = "\u524D\u63A5\u6210\u5206";
|
229 | ZHNAME["D_K"] = "\u5F8C\u63A5\u6210\u5206";
|
230 | ZHNAME["URL"] = "\u7DB2\u5740 \u90F5\u7BB1\u5730\u5740";
|
231 | ZHNAME["UNK"] = "\u672A\u77E5";
|
232 | })(ZHNAME = POSTAG.ZHNAME || (POSTAG.ZHNAME = {}));
|
233 | /**
|
234 | * 英文
|
235 | */
|
236 | let ENNAME;
|
237 | (function (ENNAME) {
|
238 | ENNAME["D_A"] = "a";
|
239 | ENNAME["D_B"] = "b";
|
240 | ENNAME["D_C"] = "c";
|
241 | ENNAME["D_D"] = "d";
|
242 | ENNAME["D_E"] = "e";
|
243 | ENNAME["D_F"] = "f";
|
244 | ENNAME["D_I"] = "i";
|
245 | ENNAME["D_L"] = "l";
|
246 | ENNAME["A_M"] = "m";
|
247 | ENNAME["D_MQ"] = "mq";
|
248 | ENNAME["D_N"] = "n";
|
249 | ENNAME["D_O"] = "o";
|
250 | ENNAME["D_P"] = "p";
|
251 | ENNAME["A_Q"] = "q";
|
252 | ENNAME["D_R"] = "r";
|
253 | ENNAME["D_S"] = "s";
|
254 | ENNAME["D_T"] = "t";
|
255 | ENNAME["D_U"] = "u";
|
256 | ENNAME["D_V"] = "v";
|
257 | ENNAME["D_W"] = "w";
|
258 | ENNAME["D_X"] = "x";
|
259 | ENNAME["D_Y"] = "y";
|
260 | ENNAME["D_Z"] = "z";
|
261 | ENNAME["A_NR"] = "nr";
|
262 | ENNAME["A_NS"] = "ns";
|
263 | ENNAME["A_NT"] = "nt";
|
264 | ENNAME["A_NX"] = "nx";
|
265 | ENNAME["A_NZ"] = "nz";
|
266 | ENNAME["D_ZH"] = "h";
|
267 | ENNAME["D_K"] = "k";
|
268 | ENNAME["URL"] = "uri";
|
269 | ENNAME["UNK"] = "un";
|
270 | })(ENNAME = POSTAG.ENNAME || (POSTAG.ENNAME = {}));
|
271 | POSTAG.POSTAG_KEYS.forEach(function (key) {
|
272 | let lc = key.toLowerCase();
|
273 | POSTAG[lc] = POSTAG[key];
|
274 | CHSNAME[lc] = CHSNAME[key];
|
275 | ZHNAME[lc] = ZHNAME[key];
|
276 | ENNAME[lc] = ENNAME[key];
|
277 | });
|
278 | POSTAG.enName = getPOSTagTranslator(POSTAG, ENNAME);
|
279 | POSTAG.chsName = getPOSTagTranslator(POSTAG, CHSNAME);
|
280 | POSTAG.zhName = getPOSTagTranslator(POSTAG, ZHNAME);
|
281 | function getPOSTagTranslator(POSTagDict, I18NDict) {
|
282 | return (p) => {
|
283 | if (core_1.enumIsNaN(p)) {
|
284 | return I18NDict[p] || I18NDict.UNK;
|
285 | }
|
286 | if (typeof p == 'string') {
|
287 | p = Number(p);
|
288 | }
|
289 | let ret = POSTAG.POSTAG_KEYS.reduce(function (ret, i) {
|
290 | if ((p & POSTAG[i]))
|
291 | //if ((<number>p & <number>POSTAG[i]) > 0)
|
292 | {
|
293 | ret.push(I18NDict[i] || i);
|
294 | }
|
295 | return ret;
|
296 | }, []);
|
297 | if (ret.length < 1) {
|
298 | return I18NDict.UNK;
|
299 | }
|
300 | else {
|
301 | return ret.toString();
|
302 | }
|
303 | };
|
304 | }
|
305 | POSTAG.getPOSTagTranslator = getPOSTagTranslator;
|
306 | })(POSTAG = exports.POSTAG || (exports.POSTAG = {}));
|
307 | //console.log(POSTAG);
|
308 | //console.log(POSTAG.chsName(0x00000008 | 0x00000010));
|
309 | exports.default = POSTAG;
|
310 | //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUE9TVEFHLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiUE9TVEFHLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVksQ0FBQzs7O0FBRWIsc0NBQWtEO0FBRWxEOztHQUVHO0FBQ0gsSUFBWSxNQWdLWDtBQWhLRCxXQUFZLE1BQU07SUFHakI7O09BRUc7SUFDSCwwQ0FBZ0IsQ0FBQTtJQUNoQjs7T0FFRztJQUNILDBDQUFnQixDQUFBO0lBQ2hCOztPQUVHO0lBQ0gseUNBQWdCLENBQUE7SUFDaEI7O09BRUc7SUFDSCx5Q0FBZ0IsQ0FBQTtJQUVoQixNQUFNO0lBRU47O09BRUc7SUFDSCx5Q0FBZ0IsQ0FBQTtJQUNoQjs7T0FFRztJQUNILHdDQUFnQixDQUFBO0lBQ2hCOztPQUVHO0lBQ0gsd0NBQWdCLENBQUE7SUFDaEI7O09BRUc7SUFDSCx3Q0FBZ0IsQ0FBQTtJQUVoQixNQUFNO0lBRU47OztPQUdHO0lBQ0gsdUNBQWdCLENBQUE7SUFDaEI7OztPQUdHO0lBQ0gsdUNBQWdCLENBQUE7SUFDaEI7O09BRUc7SUFDSCx5Q0FBaUIsQ0FBQTtJQUNqQjs7T0FFRztJQUNILHVDQUFnQixDQUFBO0lBRWhCLE1BQU07SUFFTjs7T0FFRztJQUNILHNDQUFnQixDQUFBO0lBQ2hCOztPQUVHO0lBQ0gsc0NBQWdCLENBQUE7SUFDaEI7OztPQUdHO0lBQ0gsc0NBQWdCLENBQUE7SUFDaEI7O09BRUc7SUFDSCxxQ0FBZ0IsQ0FBQTtJQUVoQixNQUFNO0lBRU47O09BRUc7SUFDSCxxQ0FBZ0IsQ0FBQTtJQUNoQjs7T0FFRztJQUNILHFDQUFnQixDQUFBO0lBQ2hCOztPQUVHO0lBQ0gsb0NBQWdCLENBQUE7SUFDaEI7O09BRUc7SUFDSCxvQ0FBZ0IsQ0FBQTtJQUVoQixNQUFNO0lBRU47O09BRUc7SUFDSCxvQ0FBZ0IsQ0FBQTtJQUNoQjs7T0FFRztJQUNILG9DQUFnQixDQUFBO0lBQ2hCOztPQUVHO0lBQ0gsbUNBQWdCLENBQUE7SUFDaEI7O09BRUc7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c05hTiB9IGZyb20gJy4vdXRpbC9jb3JlJztcblxuLyoqXG4gKiDljZXor43nsbvlnotcbiAqL1xuZXhwb3J0IGVudW0gUE9TVEFHXG57XG5cdFxuXHQvKipcblx0ICog6Yyv5a2XXG5cdCAqL1xuXHRCQUQgPSAweDgwMDAwMDAwLFxuXHQvKipcblx0ICog5b2i5a656K+NIOW9ouivree0oFxuXHQgKi9cblx0RF9BID0gMHg0MDAwMDAwMCxcblx0LyoqXG5cdCAqIOWMuuWIq+ivjSDljLrliKvor63ntKBcblx0ICovXG5cdERfQiA9IDB4MjAwMDAwMDAsXG5cdC8qKlxuXHQgKiDov57or40g6L+e6K+t57SgXG5cdCAqL1xuXHREX0MgPSAweDEwMDAwMDAwLFxuXG5cdC8vIC0tLVxuXG5cdC8qKlxuXHQgKiDlia/or40g5Ymv6K+t57SgXG5cdCAqL1xuXHREX0QgPSAweDA4MDAwMDAwLFxuXHQvKipcblx0ICog5Y+56K+NIOWPueivree0oFxuXHQgKi9cblx0RF9FID0gMHgwNDAwMDAwMCxcblx0LyoqXG5cdCAqIOaWueS9jeivjSDmlrnkvY3or63ntKBcblx0ICovXG5cdERfRiA9IDB4MDIwMDAwMDAsXG5cdC8qKlxuXHQgKiDmiJDor61cblx0ICovXG5cdERfSSA9IDB4MDEwMDAwMDAsXG5cblx0Ly8gLS0tXG5cblx0LyoqXG5cdCAqIOS5oOivrVxuXHQgKiDpoZ7kvLzmiJDoqp7miJbogIXmm5bmmKfnhKHms5XliIbmmI7nmoTnlKjoqp5cblx0ICovXG5cdERfTCA9IDB4MDA4MDAwMDAsXG5cdC8qKlxuXHQgKiDmlbDor40g5pWw6K+t57SgXG5cdCAqIOWPr+S7peiIh+WFtuS7luaVuOipnuaIluiAhemHj+ipnuWQiOS9teeahOipnlxuXHQgKi9cblx0QV9NID0gMHgwMDQwMDAwMCxcblx0LyoqXG5cdCAqIOaVsOmHj+ivjVxuXHQgKi9cblx0RF9NUSA9IDB4MDAyMDAwMDAsXG5cdC8qKlxuXHQgKiDlkI3or40g5ZCN6K+t57SgXG5cdCAqL1xuXHREX04gPSAweDAwMTAwMDAwLFxuXG5cdC8vIC0tLVxuXG5cdC8qKlxuXHQgKiDmi5/lo7Dor41cblx0ICovXG5cdERfTyA9IDB4MDAwODAwMDAsXG5cdC8qKlxuXHQgKiDku4vor41cblx0ICovXG5cdERfUCA9IDB4MDAwNDAwMDAsXG5cdC8qKlxuXHQgKiDph4/or40g6YeP6K+t57SgXG5cdCAqIOWPr+S7peiIh+aVuOipnuWQiOS9teeahOipnlxuXHQgKi9cblx0QV9RID0gMHgwMDAyMDAwMCxcblx0LyoqXG5cdCAqIOS7o+ivjSDku6Por63ntKBcblx0ICovXG5cdERfUiA9IDB4MDAwMTAwMDAsXG5cblx0Ly8gLS0tXG5cblx0LyoqXG5cdCAqIOWkhOaJgOivjVxuXHQgKi9cblx0RF9TID0gMHgwMDAwODAwMCxcblx0LyoqXG5cdCAqIOaXtumXtOivjVxuXHQgKi9cblx0RF9UID0gMHgwMDAwNDAwMCxcblx0LyoqXG5cdCAqIOWKqeivjSDliqnor63ntKBcblx0ICovXG5cdERfVSA9IDB4MDAwMDIwMDAsXG5cdC8qKlxuXHQgKiDliqjor40g5Yqo6K+t57SgXG5cdCAqL1xuXHREX1YgPSAweDAwMDAxMDAwLFxuXG5cdC8vIC0tLVxuXG5cdC8qKlxuXHQgKiDmoIfngrnnrKblj7dcblx0ICovXG5cdERfVyA9IDB4MDAwMDA4MDAsXG5cdC8qKlxuXHQgKiDpnZ7or63ntKDlrZdcblx0ICovXG5cdERfWCA9IDB4MDAwMDA0MDAsXG5cdC8qKlxuXHQgKiDor63msJTor40g6K+t5rCU6K+t57SgXG5cdCAqL1xuXHREX1kgPSAweDAwMDAwMjAwLFxuXHQvKipcblx0ICog54q25oCB6K+NXG5cdCAqL1xuXHREX1ogPSAweDAwMDAwMTAwLFxuXG5cdC8vIC0tLVxuXG5cdC8qKlxuXHQgKiDkurrlkI1cblx0ICovXG5cdEFfTlIgPSAweDAwMDAwMDgwLFxuXHQvKipcblx0ICog5Zyw5ZCNXG5cdCAqL1xuXHRBX05TID0gMHgwMDAwMDA0MCxcblx0LyoqXG5cdCAqIOacuuaehOWbouS9k1xuXHQgKi9cblx0QV9OVCA9IDB4MDAwMDAwMjAsXG5cdC8qKlxuXHQgKiDlpJbmloflrZfnrKZcblx0ICovXG5cdEFfTlggPSAweDAwMDAwMDEwLFxuXG5cdC8vIC0tLVxuXG5cdC8qKlxuXHQgKiDlhbbku5bkuJPlkI1cblx0ICovXG5cdEFfTlogPSAweDAwMDAwMDA4LFxuXHQvKipcblx0ICog5YmN5o6l5oiQ5YiGXG5cdCAqL1xuXHREX1pIID0gMHgwMDAwMDAwNCxcblx0LyoqXG5cdCAqIOWQjuaOpeaIkOWIhlxuXHQgKi9cblx0RF9LID0gMHgwMDAwMDAwMixcblx0LyoqXG5cdCAqIOe9keWdgOOAgemCrueuseWcsOWdgFxuXHQgKi9cblx0VVJMID0gMHgwMDAwMDAwMSxcblxuXHQvKipcblx0ICog5pyq55+l6K+N5oCnXG5cdCAqL1xuXHRVTksgPSAweDAwMDAwMDAwLFxufVxuXG5leHBvcnQgbmFtZXNwYWNlIFBPU1RBR1xue1xuXHRleHBvcnQgY29uc3QgUE9TVEFHX0tFWVMgPSBlbnVtTGlzdChQT1NUQUcpO1xuXG5cdC8qKlxuXHQgKiDkuK3mlofor7TmmI5cblx0ICovXG5cdGV4cG9ydCBlbnVtIENIU05BTUVcblx0e1xuXHRcdEJBRCA9ICfpjK/lrZcnLFxuXHRcdERfQSA9ICflvaLlrrnor40g5b2i6K+t57SgJyxcblx0XHREX0IgPSAn5Yy65Yir6K+NIOWMuuWIq+ivree0oCcsXG5cdFx0RF9DID0gJ+i/nuivjSDov57or63ntKAnLFxuXHRcdERfRCA9ICflia/or40g5Ymv6K+t57SgJyxcblx0XHREX0UgPSAn5Y+56K+NIOWPueivree0oCcsXG5cdFx0RF9GID0gJ+aWueS9jeivjSDmlrnkvY3or63ntKAnLFxuXHRcdERfSSA9ICfmiJDor60nLFxuXHRcdERfTCA9ICfkuaDor60nLFxuXHRcdEFfTSA9ICfmlbDor40g5pWw6K+t57SgJyxcblx0XHREX01RID0gJ+aVsOmHj+ivjScsXG5cdFx0RF9OID0gJ+WQjeivjSDlkI3or63ntKAnLFxuXHRcdERfTyA9ICfmi5/lo7Dor40nLFxuXHRcdERfUCA9ICfku4vor40nLFxuXHRcdEFfUSA9ICfph4/or40g6YeP6K+t57SgJyxcblx0XHREX1IgPSAn5Luj6K+NIOS7o+ivree0oCcsXG5cdFx0RF9TID0gJ+WkhOaJgOivjScsXG5cdFx0RF9UID0gJ+aXtumXtOivjScsXG5cdFx0RF9VID0gJ+WKqeivjSDliqnor63ntKAnLFxuXHRcdERfViA9ICfliqjor40g5Yqo6K+t57SgJyxcblx0XHREX1cgPSAn5qCH54K556ym5Y+3Jyxcblx0XHREX1ggPSAn6Z2e6K+t57Sg5a2XJyxcblx0XHREX1kgPSAn6K+t5rCU6K+NIOivreawlOivree0oCcsXG5cdFx0RF9aID0gJ+eKtuaAgeivjScsXG5cdFx0QV9OUiA9ICfkurrlkI0nLFxuXHRcdEFfTlMgPSAn5Zyw5ZCNJyxcblx0XHRBX05UID0gJ+acuuaehOWbouS9kycsXG5cdFx0QV9OWCA9ICflpJbmloflrZfnrKYnLFxuXHRcdEFfTlogPSAn5YW25LuW5LiT5ZCNJyxcblx0XHREX1pIID0gJ+WJjeaOpeaIkOWIhicsXG5cdFx0RF9LID0gJ+WQjuaOpeaIkOWIhicsXG5cdFx0VVJMID0gJ+e9keWdgCDpgq7nrrHlnLDlnYAnLFxuXHRcdFVOSyA9ICfmnKrnn6UnLFxuXHR9XG5cblx0LyoqXG5cdCAqIOe5gemrlOS4reaWh+ivtOaYjlxuXHQgKi9cblx0ZXhwb3J0IGVudW0gWkhOQU1FXG5cdHtcblx0XHRCQUQgPSAn6Yyv5a2XJyxcblx0XHREX0EgPSAn5b2i5a656KmeIOW9ouiqnue0oCcsXG5cdFx0RF9CID0gJ+WNgOWIpeipniDljYDliKXoqp7ntKAnLFxuXHRcdERfQyA9ICfpgKPoqZ4g6YCj6Kqe57SgJyxcblx0XHREX0QgPSAn5Ymv6KmeIOWJr+iqnue0oCcsXG5cdFx0RF9FID0gJ+WYhuipniDlmIboqp7ntKAnLFxuXHRcdERfRiA9ICfmlrnkvY3oqZ4g5pa55L2N6Kqe57SgJyxcblx0XHREX0kgPSAn5oiQ6KqeJyxcblx0XHREX0wgPSAn57+S6KqeJyxcblx0XHRBX00gPSAn5pW46KmeIOaVuOiqnue0oCcsXG5cdFx0RF9NUSA9ICfmlbjph4/oqZ4nLFxuXHRcdERfTiA9ICflkI3oqZ4g5ZCN6Kqe57SgJyxcblx0XHREX08gPSAn5pOs6IGy6KmeJyxcblx0XHREX1AgPSAn5LuL6KmeJyxcblx0XHRBX1EgPSAn6YeP6KmeIOmHj+iqnue0oCcsXG5cdFx0RF9SID0gJ+S7o+ipniDku6Poqp7ntKAnLFxuXHRcdERfUyA9ICfomZXmiYDoqZ4nLFxuXHRcdERfVCA9ICfmmYLplpPoqZ4nLFxuXHRcdERfVSA9ICfliqnoqZ4g5Yqp6Kqe57SgJyxcblx0XHREX1YgPSAn5YuV6KmeIOWLleiqnue0oCcsXG5cdFx0RF9XID0gJ+aomem7nuespuiZnycsXG5cdFx0RF9YID0gJ+mdnuiqnue0oOWtlycsXG5cdFx0RF9ZID0gJ+iqnuawo+ipniDoqp7msKPoqp7ntKAnLFxuXHRcdERfWiA9ICfni4DmhYvoqZ4nLFxuXHRcdEFfTlIgPSAn5Lq65ZCNJyxcblx0XHRBX05TID0gJ+WcsOWQjScsXG5cdFx0QV9OVCA9ICfmqZ/mp4vlnJjpq5QnLFxuXHRcdEFfTlggPSAn5aSW5paH5a2X56ymJyxcblx0XHRBX05aID0gJ+WFtuS7luWwiOWQjScsXG5cdFx0RF9aSCA9ICfliY3mjqXmiJDliIYnLFxuXHRcdERfSyA9ICflvozmjqXmiJDliIYnLFxuXHRcdFVSTCA9ICfntrLlnYAg6YO1566x5Zyw5Z2AJyxcblx0XHRVTksgPSAn5pyq55+lJyxcblx0fVxuXG5cdC8qKlxuXHQgKiDoi7Hmlodcblx0ICovXG5cdGV4cG9ydCBlbnVtIEVOTkFNRVxuXHR7XG5cdFx0RF9BID0gJ2EnLFxuXHRcdERfQiA9ICdiJyxcblx0XHREX0MgPSAnYycsXG5cdFx0RF9EID0gJ2QnLFxuXHRcdERfRSA9ICdlJyxcblx0XHREX0YgPSAnZicsXG5cdFx0RF9JID0gJ2knLFxuXHRcdERfTCA9ICdsJyxcblx0XHRBX00gPSAnbScsXG5cdFx0RF9NUSA9ICdtcScsXG5cdFx0RF9OID0gJ24nLFxuXHRcdERfTyA9ICdvJyxcblx0XHREX1AgPSAncCcsXG5cdFx0QV9RID0gJ3EnLFxuXHRcdERfUiA9ICdyJyxcblx0XHREX1MgPSAncycsXG5cdFx0RF9UID0gJ3QnLFxuXHRcdERfVSA9ICd1Jyxcblx0XHREX1YgPSAndicsXG5cdFx0RF9XID0gJ3cnLFxuXHRcdERfWCA9ICd4Jyxcblx0XHREX1kgPSAneScsXG5cdFx0RF9aID0gJ3onLFxuXHRcdEFfTlIgPSAnbnInLFxuXHRcdEFfTlMgPSAnbnMnLFxuXHRcdEFfTlQgPSAnbnQnLFxuXHRcdEFfTlggPSAnbngnLFxuXHRcdEFfTlogPSAnbnonLFxuXHRcdERfWkggPSAnaCcsXG5cdFx0RF9LID0gJ2snLFxuXHRcdFVSTCA9ICd1cmknLFxuXHRcdFVOSyA9ICd1bicsXG5cdH1cblxuXHRQT1NUQUdfS0VZUy5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpXG5cdHtcblx0XHRsZXQgbGMgPSBrZXkudG9Mb3dlckNhc2UoKTtcblxuXHRcdFBPU1RBR1tsY10gPSBQT1NUQUdba2V5XTtcblx0XHRDSFNOQU1FW2xjXSA9IENIU05BTUVba2V5XTtcblx0XHRaSE5BTUVbbGNdID0gWkhOQU1FW2tleV07XG5cdFx0RU5OQU1FW2xjXSA9IEVOTkFNRVtrZXldO1xuXHR9KTtcblxuXHRleHBvcnQgY29uc3QgZW5OYW1lID0gZ2V0UE9TVGFnVHJhbnNsYXRvcihQT1NUQUcsIEVOTkFNRSk7XG5cdGV4cG9ydCBjb25zdCBjaHNOYW1lID0gZ2V0UE9TVGFnVHJhbnNsYXRvcihQT1NUQUcsIENIU05BTUUpO1xuXHRleHBvcnQgY29uc3QgemhOYW1lID0gZ2V0UE9TVGFnVHJhbnNsYXRvcihQT1NUQUcsIFpITkFNRSk7XG5cblx0ZXhwb3J0IGZ1bmN0aW9uIGdldFBPU1RhZ1RyYW5zbGF0b3IoUE9TVGFnRGljdDogdHlwZW9mIFBPU1RBRywgSTE4TkRpY3QpXG5cdHtcblx0XHRyZXR1cm4gKHA6IG51bWJlciB8IHN0cmluZyk6IHN0cmluZyA9PlxuXHRcdHtcblx0XHRcdGlmIChlbnVtSXNOYU4ocCkpXG5cdFx0XHR7XG5cdFx0XHRcdHJldHVybiBJMThORGljdFtwXSB8fCBJMThORGljdC5VTks7XG5cdFx0XHR9XG5cblx0XHRcdGlmICh0eXBlb2YgcCA9PSAnc3RyaW5nJylcblx0XHRcdHtcblx0XHRcdFx0cCA9IE51bWJlcihwKTtcblx0XHRcdH1cblxuXHRcdFx0bGV0IHJldCA9IFBPU1RBR19LRVlTLnJlZHVjZShmdW5jdGlvbiAocmV0LCBpKVxuXHRcdFx0e1xuXHRcdFx0XHRpZiAoKDxudW1iZXI+cCAmIDxudW1iZXI+UE9TVEFHW2ldKSlcblx0XHRcdFx0Ly9pZiAoKDxudW1iZXI+cCAmIDxudW1iZXI+UE9TVEFHW2ldKSA+IDApXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRyZXQucHVzaChJMThORGljdFtpXSB8fCBpKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdHJldHVybiByZXQ7XG5cdFx0XHR9LCBbXSk7XG5cblx0XHRcdGlmIChyZXQubGVuZ3RoIDwgMSlcblx0XHRcdHtcblx0XHRcdFx0cmV0dXJuIEkxOE5EaWN0LlVOSztcblx0XHRcdH1cblx0XHRcdGVsc2Vcblx0XHRcdHtcblx0XHRcdFx0cmV0dXJuIHJldC50b1N0cmluZygpO1xuXHRcdFx0fVxuXHRcdH07XG5cdH1cbn1cblxuLy9jb25zb2xlLmxvZyhQT1NUQUcpO1xuLy9jb25zb2xlLmxvZyhQT1NUQUcuY2hzTmFtZSgweDAwMDAwMDA4IHwgMHgwMDAwMDAxMCkpO1xuXG5leHBvcnQgZGVmYXVsdCBQT1NUQUc7XG4iXX0= |
\ | No newline at end of file |