archgine 1.0.4 → 1.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index.mjs ADDED
@@ -0,0 +1,4474 @@
1
+ const Ge = {
2
+ name: "TinyEngine",
3
+ containerId: "tinyEngine",
4
+ canvas: "tinyEngine",
5
+ width: 0,
6
+ height: 0,
7
+ aspect: 1,
8
+ dpr: 1,
9
+ alpha: !1,
10
+ color: "#232323",
11
+ fps: 60,
12
+ syncDelay: 800,
13
+ animateDuration: 1e3,
14
+ usedCache: !1,
15
+ showPoints: !1,
16
+ wireframe: !1,
17
+ castShadow: !1,
18
+ workerRender: !1,
19
+ monitorDuration: 1e4,
20
+ light: {
21
+ color: "#f2f2f2",
22
+ position: [-6, 6, 0],
23
+ castShadow: !0,
24
+ shadowBlur: 16
25
+ },
26
+ camera: {
27
+ left: -1,
28
+ right: 1,
29
+ top: 1,
30
+ bottom: -1,
31
+ aspect: 1,
32
+ eye: [0, 0, 0],
33
+ up: [0, 0, 1],
34
+ helperEnable: !0
35
+ },
36
+ controls: {
37
+ target: [0, 0, 0],
38
+ minDistance: 0.1,
39
+ maxDistance: 1e3,
40
+ enablePan: !0,
41
+ enableRotate: !0,
42
+ enableZoom: !0,
43
+ focusMode: !0,
44
+ autoRotate: !1,
45
+ autoRotateSpeed: 0.5,
46
+ enableDamping: !0,
47
+ dampingFactor: 0.2
48
+ },
49
+ gridHelper: {
50
+ fill: "#e3e3e3"
51
+ },
52
+ axesHelper: {},
53
+ displayUnits: "",
54
+ // 公制: metric、英制: imperial,默认空为metric
55
+ tooltip: !0,
56
+ // 鼠标悬停提示,显示当前资源标签文本
57
+ assetType: "rm",
58
+ // 当前显示、操作的资源类型,需按照配置隐藏冲突的图层,避免鼠标交互时由于图层重叠顺序获取不到
59
+ zoomToSelectEnable: !1,
60
+ // 按选区缩放相机位置
61
+ selectEnable: !1,
62
+ // 是否开启单选资源
63
+ multiSelectEnable: !1,
64
+ // 是否开启多选资源
65
+ socialDistanceEnable: !1,
66
+ // 是否开始安全距离显示
67
+ socialDistance: {
68
+ // colors: ['#45b787', '#F26666'], // 安全距离圆形描边默认绿色,有交叉时红色
69
+ radius: 3
70
+ // 安全距离半径
71
+ }
72
+ };
73
+ function Zu(e, u) {
74
+ const r = e.x * Math.cos(u) - e.y * Math.sin(u), t = e.y * Math.cos(u) + e.x * Math.sin(u);
75
+ e.x = r, e.y = t;
76
+ }
77
+ function He(e, u, r) {
78
+ e.x += u, e.y += r;
79
+ }
80
+ function Qu(e, u) {
81
+ e.x *= u, e.y *= u;
82
+ }
83
+ class nu {
84
+ commands;
85
+ constructor(u) {
86
+ this.commands = [], u && u instanceof nu ? this.commands.push(...u.commands) : u && (this.commands = Ye(u));
87
+ }
88
+ addPath(u) {
89
+ u && u instanceof nu && this.commands.push(...u.commands);
90
+ }
91
+ moveTo(u, r) {
92
+ this.commands.push(["M", u, r]);
93
+ }
94
+ lineTo(u, r) {
95
+ this.commands.push(["L", u, r]);
96
+ }
97
+ arc(u, r, t, n, a, o) {
98
+ this.commands.push(["AC", u, r, t, n, a, !!o]);
99
+ }
100
+ arcTo(u, r, t, n, a) {
101
+ this.commands.push(["AT", u, r, t, n, a]);
102
+ }
103
+ ellipse(u, r, t, n, a, o, s, l) {
104
+ this.commands.push(["E", u, r, t, n, a, o, s, !!l]);
105
+ }
106
+ closePath() {
107
+ this.commands.push(["Z"]);
108
+ }
109
+ bezierCurveTo(u, r, t, n, a, o) {
110
+ this.commands.push(["C", u, r, t, n, a, o]);
111
+ }
112
+ quadraticCurveTo(u, r, t, n) {
113
+ this.commands.push(["Q", u, r, t, n]);
114
+ }
115
+ rect(u, r, t, n) {
116
+ this.commands.push(["R", u, r, t, n]);
117
+ }
118
+ roundRect(u, r, t, n, a) {
119
+ typeof a > "u" ? this.commands.push(["RR", u, r, t, n, 0]) : this.commands.push(["RR", u, r, t, n, a]);
120
+ }
121
+ }
122
+ function Ru(e, u) {
123
+ let r = 0, t = 0, n, a, o, s, l, c, p, D, f, b, T, v, d, h, y, C, F, S, k, J, lu, E = null, x = null, m = null, B = null, U = null, I = null;
124
+ e.beginPath();
125
+ for (let A = 0; A < u.length; ++A) {
126
+ S = u[A][0], S !== "S" && S !== "s" && S !== "C" && S !== "c" && (E = null, x = null), S !== "T" && S !== "t" && S !== "Q" && S !== "q" && (m = null, B = null);
127
+ let i;
128
+ switch (S) {
129
+ case "m":
130
+ case "M":
131
+ i = u[A], S === "m" ? (r += i[1], t += i[2]) : (r = i[1], t = i[2]), (S === "M" || !U) && (U = { x: r, y: t }), e.moveTo(r, t);
132
+ break;
133
+ case "l":
134
+ i = u[A], r += i[1], t += i[2], e.lineTo(r, t);
135
+ break;
136
+ case "L":
137
+ i = u[A], r = i[1], t = i[2], e.lineTo(r, t);
138
+ break;
139
+ case "H":
140
+ i = u[A], r = i[1], e.lineTo(r, t);
141
+ break;
142
+ case "h":
143
+ i = u[A], r += i[1], e.lineTo(r, t);
144
+ break;
145
+ case "V":
146
+ i = u[A], t = i[1], e.lineTo(r, t);
147
+ break;
148
+ case "v":
149
+ i = u[A], t += i[1], e.lineTo(r, t);
150
+ break;
151
+ case "a":
152
+ case "A":
153
+ if (i = u[A], I === null)
154
+ throw new Error("This should never happen");
155
+ S === "a" ? (r += i[6], t += i[7]) : (r = i[6], t = i[7]), h = i[1], y = i[2], p = i[3] * Math.PI / 180, o = !!i[4], s = !!i[5], l = { x: r, y: t }, c = {
156
+ x: (I.x - l.x) / 2,
157
+ y: (I.y - l.y) / 2
158
+ }, Zu(c, -p), D = c.x * c.x / (h * h) + c.y * c.y / (y * y), D > 1 && (D = Math.sqrt(D), h *= D, y *= D), k = {
159
+ x: h * c.y / y,
160
+ y: -(y * c.x) / h
161
+ }, f = h * h * y * y, b = h * h * c.y * c.y + y * y * c.x * c.x, s !== o ? Qu(k, Math.sqrt((f - b) / b) || 0) : Qu(k, -Math.sqrt((f - b) / b) || 0), a = Math.atan2((c.y - k.y) / y, (c.x - k.x) / h), n = Math.atan2(-(c.y + k.y) / y, -(c.x + k.x) / h), Zu(k, p), He(k, (l.x + I.x) / 2, (l.y + I.y) / 2), e.save(), e.translate(k.x, k.y), e.rotate(p), e.scale(h, y), e.arc(0, 0, 1, a, n, !s), e.restore();
162
+ break;
163
+ case "C":
164
+ i = u[A], E = i[3], x = i[4], r = i[5], t = i[6], e.bezierCurveTo(i[1], i[2], E, x, r, t);
165
+ break;
166
+ case "c":
167
+ i = u[A], e.bezierCurveTo(i[1] + r, i[2] + t, i[3] + r, i[4] + t, i[5] + r, i[6] + t), E = i[3] + r, x = i[4] + t, r += i[5], t += i[6];
168
+ break;
169
+ case "S":
170
+ i = u[A], (E === null || x === null) && (E = r, x = t), e.bezierCurveTo(2 * r - E, 2 * t - x, i[1], i[2], i[3], i[4]), E = i[1], x = i[2], r = i[3], t = i[4];
171
+ break;
172
+ case "s":
173
+ i = u[A], (E === null || x === null) && (E = r, x = t), e.bezierCurveTo(2 * r - E, 2 * t - x, i[1] + r, i[2] + t, i[3] + r, i[4] + t), E = i[1] + r, x = i[2] + t, r += i[3], t += i[4];
174
+ break;
175
+ case "Q":
176
+ i = u[A], m = i[1], B = i[2], r = i[3], t = i[4], e.quadraticCurveTo(m, B, r, t);
177
+ break;
178
+ case "q":
179
+ i = u[A], m = i[1] + r, B = i[2] + t, r += i[3], t += i[4], e.quadraticCurveTo(m, B, r, t);
180
+ break;
181
+ case "T":
182
+ i = u[A], (m === null || B === null) && (m = r, B = t), m = 2 * r - m, B = 2 * t - B, r = i[1], t = i[2], e.quadraticCurveTo(m, B, r, t);
183
+ break;
184
+ case "t":
185
+ i = u[A], (m === null || B === null) && (m = r, B = t), m = 2 * r - m, B = 2 * t - B, r += i[1], t += i[2], e.quadraticCurveTo(m, B, r, t);
186
+ break;
187
+ case "z":
188
+ case "Z":
189
+ U && (r = U.x, t = U.y), U = null, e.closePath();
190
+ break;
191
+ case "AC":
192
+ i = u[A], r = i[1], t = i[2], d = i[3], a = i[4], n = i[5], J = i[6], e.arc(r, t, d, a, n, J);
193
+ break;
194
+ case "AT":
195
+ i = u[A], T = i[1], v = i[2], r = i[3], t = i[4], d = i[5], e.arcTo(T, v, r, t, d);
196
+ break;
197
+ case "E":
198
+ i = u[A], r = i[1], t = i[2], h = i[3], y = i[4], p = i[5], a = i[6], n = i[7], J = i[8], e.save(), e.translate(r, t), e.rotate(p), e.scale(h, y), e.arc(0, 0, 1, a, n, J), e.restore();
199
+ break;
200
+ case "R":
201
+ i = u[A], r = i[1], t = i[2], C = i[3], F = i[4], U = { x: r, y: t }, e.rect(r, t, C, F);
202
+ break;
203
+ case "RR":
204
+ i = u[A], r = i[1], t = i[2], C = i[3], F = i[4], lu = i[5], U = { x: r, y: t }, e.roundRect(r, t, C, F, lu);
205
+ break;
206
+ }
207
+ I ? (I.x = r, I.y = t) : I = { x: r, y: t };
208
+ }
209
+ }
210
+ function ze(e) {
211
+ if (!e || !e.CanvasRenderingContext2D || e.Path2D) return;
212
+ const { CanvasRenderingContext2D: u } = e, r = u == null ? void 0 : u.prototype.fill, t = u == null ? void 0 : u.prototype.stroke, n = u == null ? void 0 : u.prototype.isPointInPath;
213
+ u.prototype.fill = function(...o) {
214
+ if (o[0] instanceof nu) {
215
+ const s = o[0], l = o[1] || "nonzero";
216
+ Ru(this, s.commands), r.apply(this, [l]);
217
+ } else {
218
+ const s = o[0] || "nonzero";
219
+ return r.apply(this, [s]);
220
+ }
221
+ }, u.prototype.stroke = function(o) {
222
+ o && Ru(this, o.commands), t.apply(this);
223
+ }, u.prototype.isPointInPath = function(...o) {
224
+ if (o[0] instanceof nu) {
225
+ const s = o[0], l = o[1], c = o[2], p = o[3] || "nonzero";
226
+ return Ru(this, s.commands), n.apply(this, [l, c, p]);
227
+ } else
228
+ return n.apply(this, o);
229
+ }, e.Path2D = nu;
230
+ }
231
+ const cu = {
232
+ a: 7,
233
+ c: 6,
234
+ h: 1,
235
+ l: 2,
236
+ m: 2,
237
+ q: 4,
238
+ s: 4,
239
+ t: 2,
240
+ v: 1,
241
+ z: 0
242
+ }, $e = /([astvzqmhlc])([^astvzqmhlc]*)/gi, je = /-?[0-9]*\.?[0-9]+(?:e[-+]?\d+)?/gi;
243
+ function Xe(e) {
244
+ const u = e.match(je);
245
+ return u ? u.map(Number) : [];
246
+ }
247
+ function Ye(e) {
248
+ const u = [], r = String(e).trim();
249
+ return r[0] !== "M" && r[0] !== "m" || r.replace($e, (t, n, a) => {
250
+ const o = Xe(a);
251
+ let s = n.toLowerCase(), l = n;
252
+ if (s === "m" && o.length > 2 && (u.push([l, ...o.splice(0, 2)]), s = "l", l = l === "m" ? "l" : "L"), o.length < cu[s])
253
+ return "";
254
+ for (u.push([l, ...o.splice(0, cu[s])]); o.length >= cu[s] && o.length && cu[s]; )
255
+ u.push([l, ...o.splice(0, cu[s])]);
256
+ return "";
257
+ }), u;
258
+ }
259
+ var Z = {}, j = {};
260
+ function We(e, u, r) {
261
+ if (r === void 0 && (r = Array.prototype), e && typeof r.find == "function")
262
+ return r.find.call(e, u);
263
+ for (var t = 0; t < e.length; t++)
264
+ if (Object.prototype.hasOwnProperty.call(e, t)) {
265
+ var n = e[t];
266
+ if (u.call(void 0, n, t, e))
267
+ return n;
268
+ }
269
+ }
270
+ function Uu(e, u) {
271
+ return u === void 0 && (u = Object), u && typeof u.freeze == "function" ? u.freeze(e) : e;
272
+ }
273
+ function Ze(e, u) {
274
+ if (e === null || typeof e != "object")
275
+ throw new TypeError("target is not an object");
276
+ for (var r in u)
277
+ Object.prototype.hasOwnProperty.call(u, r) && (e[r] = u[r]);
278
+ return e;
279
+ }
280
+ var he = Uu({
281
+ /**
282
+ * `text/html`, the only mime type that triggers treating an XML document as HTML.
283
+ *
284
+ * @see DOMParser.SupportedType.isHTML
285
+ * @see https://www.iana.org/assignments/media-types/text/html IANA MimeType registration
286
+ * @see https://en.wikipedia.org/wiki/HTML Wikipedia
287
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString MDN
288
+ * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-domparser-parsefromstring WHATWG HTML Spec
289
+ */
290
+ HTML: "text/html",
291
+ /**
292
+ * Helper method to check a mime type if it indicates an HTML document
293
+ *
294
+ * @param {string} [value]
295
+ * @returns {boolean}
296
+ *
297
+ * @see https://www.iana.org/assignments/media-types/text/html IANA MimeType registration
298
+ * @see https://en.wikipedia.org/wiki/HTML Wikipedia
299
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString MDN
300
+ * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-domparser-parsefromstring */
301
+ isHTML: function(e) {
302
+ return e === he.HTML;
303
+ },
304
+ /**
305
+ * `application/xml`, the standard mime type for XML documents.
306
+ *
307
+ * @see https://www.iana.org/assignments/media-types/application/xml IANA MimeType registration
308
+ * @see https://tools.ietf.org/html/rfc7303#section-9.1 RFC 7303
309
+ * @see https://en.wikipedia.org/wiki/XML_and_MIME Wikipedia
310
+ */
311
+ XML_APPLICATION: "application/xml",
312
+ /**
313
+ * `text/html`, an alias for `application/xml`.
314
+ *
315
+ * @see https://tools.ietf.org/html/rfc7303#section-9.2 RFC 7303
316
+ * @see https://www.iana.org/assignments/media-types/text/xml IANA MimeType registration
317
+ * @see https://en.wikipedia.org/wiki/XML_and_MIME Wikipedia
318
+ */
319
+ XML_TEXT: "text/xml",
320
+ /**
321
+ * `application/xhtml+xml`, indicates an XML document that has the default HTML namespace,
322
+ * but is parsed as an XML document.
323
+ *
324
+ * @see https://www.iana.org/assignments/media-types/application/xhtml+xml IANA MimeType registration
325
+ * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocument WHATWG DOM Spec
326
+ * @see https://en.wikipedia.org/wiki/XHTML Wikipedia
327
+ */
328
+ XML_XHTML_APPLICATION: "application/xhtml+xml",
329
+ /**
330
+ * `image/svg+xml`,
331
+ *
332
+ * @see https://www.iana.org/assignments/media-types/image/svg+xml IANA MimeType registration
333
+ * @see https://www.w3.org/TR/SVG11/ W3C SVG 1.1
334
+ * @see https://en.wikipedia.org/wiki/Scalable_Vector_Graphics Wikipedia
335
+ */
336
+ XML_SVG_IMAGE: "image/svg+xml"
337
+ }), fe = Uu({
338
+ /**
339
+ * The XHTML namespace.
340
+ *
341
+ * @see http://www.w3.org/1999/xhtml
342
+ */
343
+ HTML: "http://www.w3.org/1999/xhtml",
344
+ /**
345
+ * Checks if `uri` equals `NAMESPACE.HTML`.
346
+ *
347
+ * @param {string} [uri]
348
+ *
349
+ * @see NAMESPACE.HTML
350
+ */
351
+ isHTML: function(e) {
352
+ return e === fe.HTML;
353
+ },
354
+ /**
355
+ * The SVG namespace.
356
+ *
357
+ * @see http://www.w3.org/2000/svg
358
+ */
359
+ SVG: "http://www.w3.org/2000/svg",
360
+ /**
361
+ * The `xml:` namespace.
362
+ *
363
+ * @see http://www.w3.org/XML/1998/namespace
364
+ */
365
+ XML: "http://www.w3.org/XML/1998/namespace",
366
+ /**
367
+ * The `xmlns:` namespace
368
+ *
369
+ * @see https://www.w3.org/2000/xmlns/
370
+ */
371
+ XMLNS: "http://www.w3.org/2000/xmlns/"
372
+ });
373
+ j.assign = Ze;
374
+ j.find = We;
375
+ j.freeze = Uu;
376
+ j.MIME_TYPE = he;
377
+ j.NAMESPACE = fe;
378
+ var De = j, V = De.find, mu = De.NAMESPACE;
379
+ function Qe(e) {
380
+ return e !== "";
381
+ }
382
+ function Je(e) {
383
+ return e ? e.split(/[\t\n\f\r ]+/).filter(Qe) : [];
384
+ }
385
+ function Ke(e, u) {
386
+ return e.hasOwnProperty(u) || (e[u] = !0), e;
387
+ }
388
+ function Ju(e) {
389
+ if (!e) return [];
390
+ var u = Je(e);
391
+ return Object.keys(u.reduce(Ke, {}));
392
+ }
393
+ function ur(e) {
394
+ return function(u) {
395
+ return e && e.indexOf(u) !== -1;
396
+ };
397
+ }
398
+ function Au(e, u) {
399
+ for (var r in e)
400
+ Object.prototype.hasOwnProperty.call(e, r) && (u[r] = e[r]);
401
+ }
402
+ function O(e, u) {
403
+ var r = e.prototype;
404
+ if (!(r instanceof u)) {
405
+ let t = function() {
406
+ };
407
+ t.prototype = u.prototype, t = new t(), Au(r, t), e.prototype = r = t;
408
+ }
409
+ r.constructor != e && (typeof e != "function" && console.error("unknown Class:" + e), r.constructor = e);
410
+ }
411
+ var L = {}, P = L.ELEMENT_NODE = 1, iu = L.ATTRIBUTE_NODE = 2, Nu = L.TEXT_NODE = 3, me = L.CDATA_SECTION_NODE = 4, ge = L.ENTITY_REFERENCE_NODE = 5, er = L.ENTITY_NODE = 6, de = L.PROCESSING_INSTRUCTION_NODE = 7, Ae = L.COMMENT_NODE = 8, Ee = L.DOCUMENT_NODE = 9, be = L.DOCUMENT_TYPE_NODE = 10, z = L.DOCUMENT_FRAGMENT_NODE = 11, rr = L.NOTATION_NODE = 12, q = {}, N = {};
412
+ q.INDEX_SIZE_ERR = (N[1] = "Index size error", 1);
413
+ q.DOMSTRING_SIZE_ERR = (N[2] = "DOMString size error", 2);
414
+ var R = q.HIERARCHY_REQUEST_ERR = (N[3] = "Hierarchy request error", 3);
415
+ q.WRONG_DOCUMENT_ERR = (N[4] = "Wrong document", 4);
416
+ q.INVALID_CHARACTER_ERR = (N[5] = "Invalid character", 5);
417
+ q.NO_DATA_ALLOWED_ERR = (N[6] = "No data allowed", 6);
418
+ q.NO_MODIFICATION_ALLOWED_ERR = (N[7] = "No modification allowed", 7);
419
+ var Ce = q.NOT_FOUND_ERR = (N[8] = "Not found", 8);
420
+ q.NOT_SUPPORTED_ERR = (N[9] = "Not supported", 9);
421
+ var Ku = q.INUSE_ATTRIBUTE_ERR = (N[10] = "Attribute in use", 10);
422
+ q.INVALID_STATE_ERR = (N[11] = "Invalid state", 11);
423
+ q.SYNTAX_ERR = (N[12] = "Syntax error", 12);
424
+ q.INVALID_MODIFICATION_ERR = (N[13] = "Invalid modification", 13);
425
+ q.NAMESPACE_ERR = (N[14] = "Invalid namespace", 14);
426
+ q.INVALID_ACCESS_ERR = (N[15] = "Invalid access", 15);
427
+ function w(e, u) {
428
+ if (u instanceof Error)
429
+ var r = u;
430
+ else
431
+ r = this, Error.call(this, N[e]), this.message = N[e], Error.captureStackTrace && Error.captureStackTrace(this, w);
432
+ return r.code = e, u && (this.message = this.message + ": " + u), r;
433
+ }
434
+ w.prototype = Error.prototype;
435
+ Au(q, w);
436
+ function H() {
437
+ }
438
+ H.prototype = {
439
+ /**
440
+ * The number of nodes in the list. The range of valid child node indices is 0 to length-1 inclusive.
441
+ * @standard level1
442
+ */
443
+ length: 0,
444
+ /**
445
+ * Returns the indexth item in the collection. If index is greater than or equal to the number of nodes in the list, this returns null.
446
+ * @standard level1
447
+ * @param index unsigned long
448
+ * Index into the collection.
449
+ * @return Node
450
+ * The node at the indexth position in the NodeList, or null if that is not a valid index.
451
+ */
452
+ item: function(e) {
453
+ return e >= 0 && e < this.length ? this[e] : null;
454
+ },
455
+ toString: function(e, u) {
456
+ for (var r = [], t = 0; t < this.length; t++)
457
+ tu(this[t], r, e, u);
458
+ return r.join("");
459
+ },
460
+ /**
461
+ * @private
462
+ * @param {function (Node):boolean} predicate
463
+ * @returns {Node[]}
464
+ */
465
+ filter: function(e) {
466
+ return Array.prototype.filter.call(this, e);
467
+ },
468
+ /**
469
+ * @private
470
+ * @param {Node} item
471
+ * @returns {number}
472
+ */
473
+ indexOf: function(e) {
474
+ return Array.prototype.indexOf.call(this, e);
475
+ }
476
+ };
477
+ function au(e, u) {
478
+ this._node = e, this._refresh = u, Vu(this);
479
+ }
480
+ function Vu(e) {
481
+ var u = e._node._inc || e._node.ownerDocument._inc;
482
+ if (e._inc !== u) {
483
+ var r = e._refresh(e._node);
484
+ if (Re(e, "length", r.length), !e.$$length || r.length < e.$$length)
485
+ for (var t = r.length; t in e; t++)
486
+ Object.prototype.hasOwnProperty.call(e, t) && delete e[t];
487
+ Au(r, e), e._inc = u;
488
+ }
489
+ }
490
+ au.prototype.item = function(e) {
491
+ return Vu(this), this[e] || null;
492
+ };
493
+ O(au, H);
494
+ function Tu() {
495
+ }
496
+ function ve(e, u) {
497
+ for (var r = e.length; r--; )
498
+ if (e[r] === u)
499
+ return r;
500
+ }
501
+ function ue(e, u, r, t) {
502
+ if (t ? u[ve(u, t)] = r : u[u.length++] = r, e) {
503
+ r.ownerElement = e;
504
+ var n = e.ownerDocument;
505
+ n && (t && Be(n, e, t), tr(n, e, r));
506
+ }
507
+ }
508
+ function ee(e, u, r) {
509
+ var t = ve(u, r);
510
+ if (t >= 0) {
511
+ for (var n = u.length - 1; t < n; )
512
+ u[t] = u[++t];
513
+ if (u.length = n, e) {
514
+ var a = e.ownerDocument;
515
+ a && (Be(a, e, r), r.ownerElement = null);
516
+ }
517
+ } else
518
+ throw new w(Ce, new Error(e.tagName + "@" + r));
519
+ }
520
+ Tu.prototype = {
521
+ length: 0,
522
+ item: H.prototype.item,
523
+ getNamedItem: function(e) {
524
+ for (var u = this.length; u--; ) {
525
+ var r = this[u];
526
+ if (r.nodeName == e)
527
+ return r;
528
+ }
529
+ },
530
+ setNamedItem: function(e) {
531
+ var u = e.ownerElement;
532
+ if (u && u != this._ownerElement)
533
+ throw new w(Ku);
534
+ var r = this.getNamedItem(e.nodeName);
535
+ return ue(this._ownerElement, this, e, r), r;
536
+ },
537
+ /* returns Node */
538
+ setNamedItemNS: function(e) {
539
+ var u = e.ownerElement, r;
540
+ if (u && u != this._ownerElement)
541
+ throw new w(Ku);
542
+ return r = this.getNamedItemNS(e.namespaceURI, e.localName), ue(this._ownerElement, this, e, r), r;
543
+ },
544
+ /* returns Node */
545
+ removeNamedItem: function(e) {
546
+ var u = this.getNamedItem(e);
547
+ return ee(this._ownerElement, this, u), u;
548
+ },
549
+ // raises: NOT_FOUND_ERR,NO_MODIFICATION_ALLOWED_ERR
550
+ //for level2
551
+ removeNamedItemNS: function(e, u) {
552
+ var r = this.getNamedItemNS(e, u);
553
+ return ee(this._ownerElement, this, r), r;
554
+ },
555
+ getNamedItemNS: function(e, u) {
556
+ for (var r = this.length; r--; ) {
557
+ var t = this[r];
558
+ if (t.localName == u && t.namespaceURI == e)
559
+ return t;
560
+ }
561
+ return null;
562
+ }
563
+ };
564
+ function ye() {
565
+ }
566
+ ye.prototype = {
567
+ /**
568
+ * The DOMImplementation.hasFeature() method returns a Boolean flag indicating if a given feature is supported.
569
+ * The different implementations fairly diverged in what kind of features were reported.
570
+ * The latest version of the spec settled to force this method to always return true, where the functionality was accurate and in use.
571
+ *
572
+ * @deprecated It is deprecated and modern browsers return true in all cases.
573
+ *
574
+ * @param {string} feature
575
+ * @param {string} [version]
576
+ * @returns {boolean} always true
577
+ *
578
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/hasFeature MDN
579
+ * @see https://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-5CED94D7 DOM Level 1 Core
580
+ * @see https://dom.spec.whatwg.org/#dom-domimplementation-hasfeature DOM Living Standard
581
+ */
582
+ hasFeature: function(e, u) {
583
+ return !0;
584
+ },
585
+ /**
586
+ * Creates an XML Document object of the specified type with its document element.
587
+ *
588
+ * __It behaves slightly different from the description in the living standard__:
589
+ * - There is no interface/class `XMLDocument`, it returns a `Document` instance.
590
+ * - `contentType`, `encoding`, `mode`, `origin`, `url` fields are currently not declared.
591
+ * - this implementation is not validating names or qualified names
592
+ * (when parsing XML strings, the SAX parser takes care of that)
593
+ *
594
+ * @param {string|null} namespaceURI
595
+ * @param {string} qualifiedName
596
+ * @param {DocumentType=null} doctype
597
+ * @returns {Document}
598
+ *
599
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/createDocument MDN
600
+ * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#Level-2-Core-DOM-createDocument DOM Level 2 Core (initial)
601
+ * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocument DOM Level 2 Core
602
+ *
603
+ * @see https://dom.spec.whatwg.org/#validate-and-extract DOM: Validate and extract
604
+ * @see https://www.w3.org/TR/xml/#NT-NameStartChar XML Spec: Names
605
+ * @see https://www.w3.org/TR/xml-names/#ns-qualnames XML Namespaces: Qualified names
606
+ */
607
+ createDocument: function(e, u, r) {
608
+ var t = new Eu();
609
+ if (t.implementation = this, t.childNodes = new H(), t.doctype = r || null, r && t.appendChild(r), u) {
610
+ var n = t.createElementNS(e, u);
611
+ t.appendChild(n);
612
+ }
613
+ return t;
614
+ },
615
+ /**
616
+ * Returns a doctype, with the given `qualifiedName`, `publicId`, and `systemId`.
617
+ *
618
+ * __This behavior is slightly different from the in the specs__:
619
+ * - this implementation is not validating names or qualified names
620
+ * (when parsing XML strings, the SAX parser takes care of that)
621
+ *
622
+ * @param {string} qualifiedName
623
+ * @param {string} [publicId]
624
+ * @param {string} [systemId]
625
+ * @returns {DocumentType} which can either be used with `DOMImplementation.createDocument` upon document creation
626
+ * or can be put into the document via methods like `Node.insertBefore()` or `Node.replaceChild()`
627
+ *
628
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/createDocumentType MDN
629
+ * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#Level-2-Core-DOM-createDocType DOM Level 2 Core
630
+ * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocumenttype DOM Living Standard
631
+ *
632
+ * @see https://dom.spec.whatwg.org/#validate-and-extract DOM: Validate and extract
633
+ * @see https://www.w3.org/TR/xml/#NT-NameStartChar XML Spec: Names
634
+ * @see https://www.w3.org/TR/xml-names/#ns-qualnames XML Namespaces: Qualified names
635
+ */
636
+ createDocumentType: function(e, u, r) {
637
+ var t = new xu();
638
+ return t.name = e, t.nodeName = e, t.publicId = u || "", t.systemId = r || "", t;
639
+ }
640
+ };
641
+ function g() {
642
+ }
643
+ g.prototype = {
644
+ firstChild: null,
645
+ lastChild: null,
646
+ previousSibling: null,
647
+ nextSibling: null,
648
+ attributes: null,
649
+ parentNode: null,
650
+ childNodes: null,
651
+ ownerDocument: null,
652
+ nodeValue: null,
653
+ namespaceURI: null,
654
+ prefix: null,
655
+ localName: null,
656
+ // Modified in DOM Level 2:
657
+ insertBefore: function(e, u) {
658
+ return Fu(this, e, u);
659
+ },
660
+ replaceChild: function(e, u) {
661
+ Fu(this, e, u, Te), u && this.removeChild(u);
662
+ },
663
+ removeChild: function(e) {
664
+ return Ne(this, e);
665
+ },
666
+ appendChild: function(e) {
667
+ return this.insertBefore(e, null);
668
+ },
669
+ hasChildNodes: function() {
670
+ return this.firstChild != null;
671
+ },
672
+ cloneNode: function(e) {
673
+ return Mu(this.ownerDocument || this, this, e);
674
+ },
675
+ // Modified in DOM Level 2:
676
+ normalize: function() {
677
+ for (var e = this.firstChild; e; ) {
678
+ var u = e.nextSibling;
679
+ u && u.nodeType == Nu && e.nodeType == Nu ? (this.removeChild(u), e.appendData(u.data)) : (e.normalize(), e = u);
680
+ }
681
+ },
682
+ // Introduced in DOM Level 2:
683
+ isSupported: function(e, u) {
684
+ return this.ownerDocument.implementation.hasFeature(e, u);
685
+ },
686
+ // Introduced in DOM Level 2:
687
+ hasAttributes: function() {
688
+ return this.attributes.length > 0;
689
+ },
690
+ /**
691
+ * Look up the prefix associated to the given namespace URI, starting from this node.
692
+ * **The default namespace declarations are ignored by this method.**
693
+ * See Namespace Prefix Lookup for details on the algorithm used by this method.
694
+ *
695
+ * _Note: The implementation seems to be incomplete when compared to the algorithm described in the specs._
696
+ *
697
+ * @param {string | null} namespaceURI
698
+ * @returns {string | null}
699
+ * @see https://www.w3.org/TR/DOM-Level-3-Core/core.html#Node3-lookupNamespacePrefix
700
+ * @see https://www.w3.org/TR/DOM-Level-3-Core/namespaces-algorithms.html#lookupNamespacePrefixAlgo
701
+ * @see https://dom.spec.whatwg.org/#dom-node-lookupprefix
702
+ * @see https://github.com/xmldom/xmldom/issues/322
703
+ */
704
+ lookupPrefix: function(e) {
705
+ for (var u = this; u; ) {
706
+ var r = u._nsMap;
707
+ if (r) {
708
+ for (var t in r)
709
+ if (Object.prototype.hasOwnProperty.call(r, t) && r[t] === e)
710
+ return t;
711
+ }
712
+ u = u.nodeType == iu ? u.ownerDocument : u.parentNode;
713
+ }
714
+ return null;
715
+ },
716
+ // Introduced in DOM Level 3:
717
+ lookupNamespaceURI: function(e) {
718
+ for (var u = this; u; ) {
719
+ var r = u._nsMap;
720
+ if (r && Object.prototype.hasOwnProperty.call(r, e))
721
+ return r[e];
722
+ u = u.nodeType == iu ? u.ownerDocument : u.parentNode;
723
+ }
724
+ return null;
725
+ },
726
+ // Introduced in DOM Level 3:
727
+ isDefaultNamespace: function(e) {
728
+ var u = this.lookupPrefix(e);
729
+ return u == null;
730
+ }
731
+ };
732
+ function we(e) {
733
+ return e == "<" && "&lt;" || e == ">" && "&gt;" || e == "&" && "&amp;" || e == '"' && "&quot;" || "&#" + e.charCodeAt() + ";";
734
+ }
735
+ Au(L, g);
736
+ Au(L, g.prototype);
737
+ function gu(e, u) {
738
+ if (u(e))
739
+ return !0;
740
+ if (e = e.firstChild)
741
+ do
742
+ if (gu(e, u))
743
+ return !0;
744
+ while (e = e.nextSibling);
745
+ }
746
+ function Eu() {
747
+ this.ownerDocument = this;
748
+ }
749
+ function tr(e, u, r) {
750
+ e && e._inc++;
751
+ var t = r.namespaceURI;
752
+ t === mu.XMLNS && (u._nsMap[r.prefix ? r.localName : ""] = r.value);
753
+ }
754
+ function Be(e, u, r, t) {
755
+ e && e._inc++;
756
+ var n = r.namespaceURI;
757
+ n === mu.XMLNS && delete u._nsMap[r.prefix ? r.localName : ""];
758
+ }
759
+ function Gu(e, u, r) {
760
+ if (e && e._inc) {
761
+ e._inc++;
762
+ var t = u.childNodes;
763
+ if (r)
764
+ t[t.length++] = r;
765
+ else {
766
+ for (var n = u.firstChild, a = 0; n; )
767
+ t[a++] = n, n = n.nextSibling;
768
+ t.length = a, delete t[t.length];
769
+ }
770
+ }
771
+ }
772
+ function Ne(e, u) {
773
+ var r = u.previousSibling, t = u.nextSibling;
774
+ return r ? r.nextSibling = t : e.firstChild = t, t ? t.previousSibling = r : e.lastChild = r, u.parentNode = null, u.previousSibling = null, u.nextSibling = null, Gu(e.ownerDocument, e), u;
775
+ }
776
+ function nr(e) {
777
+ return e && (e.nodeType === g.DOCUMENT_NODE || e.nodeType === g.DOCUMENT_FRAGMENT_NODE || e.nodeType === g.ELEMENT_NODE);
778
+ }
779
+ function ir(e) {
780
+ return e && (G(e) || Hu(e) || $(e) || e.nodeType === g.DOCUMENT_FRAGMENT_NODE || e.nodeType === g.COMMENT_NODE || e.nodeType === g.PROCESSING_INSTRUCTION_NODE);
781
+ }
782
+ function $(e) {
783
+ return e && e.nodeType === g.DOCUMENT_TYPE_NODE;
784
+ }
785
+ function G(e) {
786
+ return e && e.nodeType === g.ELEMENT_NODE;
787
+ }
788
+ function Hu(e) {
789
+ return e && e.nodeType === g.TEXT_NODE;
790
+ }
791
+ function re(e, u) {
792
+ var r = e.childNodes || [];
793
+ if (V(r, G) || $(u))
794
+ return !1;
795
+ var t = V(r, $);
796
+ return !(u && t && r.indexOf(t) > r.indexOf(u));
797
+ }
798
+ function te(e, u) {
799
+ var r = e.childNodes || [];
800
+ function t(a) {
801
+ return G(a) && a !== u;
802
+ }
803
+ if (V(r, t))
804
+ return !1;
805
+ var n = V(r, $);
806
+ return !(u && n && r.indexOf(n) > r.indexOf(u));
807
+ }
808
+ function ar(e, u, r) {
809
+ if (!nr(e))
810
+ throw new w(R, "Unexpected parent node type " + e.nodeType);
811
+ if (r && r.parentNode !== e)
812
+ throw new w(Ce, "child not in parent");
813
+ if (
814
+ // 4. If `node` is not a DocumentFragment, DocumentType, Element, or CharacterData node, then throw a "HierarchyRequestError" DOMException.
815
+ !ir(u) || // 5. If either `node` is a Text node and `parent` is a document,
816
+ // the sax parser currently adds top level text nodes, this will be fixed in 0.9.0
817
+ // || (node.nodeType === Node.TEXT_NODE && parent.nodeType === Node.DOCUMENT_NODE)
818
+ // or `node` is a doctype and `parent` is not a document, then throw a "HierarchyRequestError" DOMException.
819
+ $(u) && e.nodeType !== g.DOCUMENT_NODE
820
+ )
821
+ throw new w(
822
+ R,
823
+ "Unexpected node type " + u.nodeType + " for parent node type " + e.nodeType
824
+ );
825
+ }
826
+ function or(e, u, r) {
827
+ var t = e.childNodes || [], n = u.childNodes || [];
828
+ if (u.nodeType === g.DOCUMENT_FRAGMENT_NODE) {
829
+ var a = n.filter(G);
830
+ if (a.length > 1 || V(n, Hu))
831
+ throw new w(R, "More than one element or text in fragment");
832
+ if (a.length === 1 && !re(e, r))
833
+ throw new w(R, "Element in fragment can not be inserted before doctype");
834
+ }
835
+ if (G(u) && !re(e, r))
836
+ throw new w(R, "Only one element can be added and only after doctype");
837
+ if ($(u)) {
838
+ if (V(t, $))
839
+ throw new w(R, "Only one doctype is allowed");
840
+ var o = V(t, G);
841
+ if (r && t.indexOf(o) < t.indexOf(r))
842
+ throw new w(R, "Doctype can only be inserted before an element");
843
+ if (!r && o)
844
+ throw new w(R, "Doctype can not be appended since element is present");
845
+ }
846
+ }
847
+ function Te(e, u, r) {
848
+ var t = e.childNodes || [], n = u.childNodes || [];
849
+ if (u.nodeType === g.DOCUMENT_FRAGMENT_NODE) {
850
+ var a = n.filter(G);
851
+ if (a.length > 1 || V(n, Hu))
852
+ throw new w(R, "More than one element or text in fragment");
853
+ if (a.length === 1 && !te(e, r))
854
+ throw new w(R, "Element in fragment can not be inserted before doctype");
855
+ }
856
+ if (G(u) && !te(e, r))
857
+ throw new w(R, "Only one element can be added and only after doctype");
858
+ if ($(u)) {
859
+ if (V(t, function(l) {
860
+ return $(l) && l !== r;
861
+ }))
862
+ throw new w(R, "Only one doctype is allowed");
863
+ var o = V(t, G);
864
+ if (r && t.indexOf(o) < t.indexOf(r))
865
+ throw new w(R, "Doctype can only be inserted before an element");
866
+ }
867
+ }
868
+ function Fu(e, u, r, t) {
869
+ ar(e, u, r), e.nodeType === g.DOCUMENT_NODE && (t || or)(e, u, r);
870
+ var n = u.parentNode;
871
+ if (n && n.removeChild(u), u.nodeType === z) {
872
+ var a = u.firstChild;
873
+ if (a == null)
874
+ return u;
875
+ var o = u.lastChild;
876
+ } else
877
+ a = o = u;
878
+ var s = r ? r.previousSibling : e.lastChild;
879
+ a.previousSibling = s, o.nextSibling = r, s ? s.nextSibling = a : e.firstChild = a, r == null ? e.lastChild = o : r.previousSibling = o;
880
+ do
881
+ a.parentNode = e;
882
+ while (a !== o && (a = a.nextSibling));
883
+ return Gu(e.ownerDocument || e, e), u.nodeType == z && (u.firstChild = u.lastChild = null), u;
884
+ }
885
+ function sr(e, u) {
886
+ return u.parentNode && u.parentNode.removeChild(u), u.parentNode = e, u.previousSibling = e.lastChild, u.nextSibling = null, u.previousSibling ? u.previousSibling.nextSibling = u : e.firstChild = u, e.lastChild = u, Gu(e.ownerDocument, e, u), u;
887
+ }
888
+ Eu.prototype = {
889
+ //implementation : null,
890
+ nodeName: "#document",
891
+ nodeType: Ee,
892
+ /**
893
+ * The DocumentType node of the document.
894
+ *
895
+ * @readonly
896
+ * @type DocumentType
897
+ */
898
+ doctype: null,
899
+ documentElement: null,
900
+ _inc: 1,
901
+ insertBefore: function(e, u) {
902
+ if (e.nodeType == z) {
903
+ for (var r = e.firstChild; r; ) {
904
+ var t = r.nextSibling;
905
+ this.insertBefore(r, u), r = t;
906
+ }
907
+ return e;
908
+ }
909
+ return Fu(this, e, u), e.ownerDocument = this, this.documentElement === null && e.nodeType === P && (this.documentElement = e), e;
910
+ },
911
+ removeChild: function(e) {
912
+ return this.documentElement == e && (this.documentElement = null), Ne(this, e);
913
+ },
914
+ replaceChild: function(e, u) {
915
+ Fu(this, e, u, Te), e.ownerDocument = this, u && this.removeChild(u), G(e) && (this.documentElement = e);
916
+ },
917
+ // Introduced in DOM Level 2:
918
+ importNode: function(e, u) {
919
+ return ke(this, e, u);
920
+ },
921
+ // Introduced in DOM Level 2:
922
+ getElementById: function(e) {
923
+ var u = null;
924
+ return gu(this.documentElement, function(r) {
925
+ if (r.nodeType == P && r.getAttribute("id") == e)
926
+ return u = r, !0;
927
+ }), u;
928
+ },
929
+ /**
930
+ * The `getElementsByClassName` method of `Document` interface returns an array-like object
931
+ * of all child elements which have **all** of the given class name(s).
932
+ *
933
+ * Returns an empty list if `classeNames` is an empty string or only contains HTML white space characters.
934
+ *
935
+ *
936
+ * Warning: This is a live LiveNodeList.
937
+ * Changes in the DOM will reflect in the array as the changes occur.
938
+ * If an element selected by this array no longer qualifies for the selector,
939
+ * it will automatically be removed. Be aware of this for iteration purposes.
940
+ *
941
+ * @param {string} classNames is a string representing the class name(s) to match; multiple class names are separated by (ASCII-)whitespace
942
+ *
943
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementsByClassName
944
+ * @see https://dom.spec.whatwg.org/#concept-getelementsbyclassname
945
+ */
946
+ getElementsByClassName: function(e) {
947
+ var u = Ju(e);
948
+ return new au(this, function(r) {
949
+ var t = [];
950
+ return u.length > 0 && gu(r.documentElement, function(n) {
951
+ if (n !== r && n.nodeType === P) {
952
+ var a = n.getAttribute("class");
953
+ if (a) {
954
+ var o = e === a;
955
+ if (!o) {
956
+ var s = Ju(a);
957
+ o = u.every(ur(s));
958
+ }
959
+ o && t.push(n);
960
+ }
961
+ }
962
+ }), t;
963
+ });
964
+ },
965
+ //document factory method:
966
+ createElement: function(e) {
967
+ var u = new Q();
968
+ u.ownerDocument = this, u.nodeName = e, u.tagName = e, u.localName = e, u.childNodes = new H();
969
+ var r = u.attributes = new Tu();
970
+ return r._ownerElement = u, u;
971
+ },
972
+ createDocumentFragment: function() {
973
+ var e = new qu();
974
+ return e.ownerDocument = this, e.childNodes = new H(), e;
975
+ },
976
+ createTextNode: function(e) {
977
+ var u = new zu();
978
+ return u.ownerDocument = this, u.appendData(e), u;
979
+ },
980
+ createComment: function(e) {
981
+ var u = new $u();
982
+ return u.ownerDocument = this, u.appendData(e), u;
983
+ },
984
+ createCDATASection: function(e) {
985
+ var u = new ju();
986
+ return u.ownerDocument = this, u.appendData(e), u;
987
+ },
988
+ createProcessingInstruction: function(e, u) {
989
+ var r = new Yu();
990
+ return r.ownerDocument = this, r.tagName = r.nodeName = r.target = e, r.nodeValue = r.data = u, r;
991
+ },
992
+ createAttribute: function(e) {
993
+ var u = new Su();
994
+ return u.ownerDocument = this, u.name = e, u.nodeName = e, u.localName = e, u.specified = !0, u;
995
+ },
996
+ createEntityReference: function(e) {
997
+ var u = new Xu();
998
+ return u.ownerDocument = this, u.nodeName = e, u;
999
+ },
1000
+ // Introduced in DOM Level 2:
1001
+ createElementNS: function(e, u) {
1002
+ var r = new Q(), t = u.split(":"), n = r.attributes = new Tu();
1003
+ return r.childNodes = new H(), r.ownerDocument = this, r.nodeName = u, r.tagName = u, r.namespaceURI = e, t.length == 2 ? (r.prefix = t[0], r.localName = t[1]) : r.localName = u, n._ownerElement = r, r;
1004
+ },
1005
+ // Introduced in DOM Level 2:
1006
+ createAttributeNS: function(e, u) {
1007
+ var r = new Su(), t = u.split(":");
1008
+ return r.ownerDocument = this, r.nodeName = u, r.name = u, r.namespaceURI = e, r.specified = !0, t.length == 2 ? (r.prefix = t[0], r.localName = t[1]) : r.localName = u, r;
1009
+ }
1010
+ };
1011
+ O(Eu, g);
1012
+ function Q() {
1013
+ this._nsMap = {};
1014
+ }
1015
+ Q.prototype = {
1016
+ nodeType: P,
1017
+ hasAttribute: function(e) {
1018
+ return this.getAttributeNode(e) != null;
1019
+ },
1020
+ getAttribute: function(e) {
1021
+ var u = this.getAttributeNode(e);
1022
+ return u && u.value || "";
1023
+ },
1024
+ getAttributeNode: function(e) {
1025
+ return this.attributes.getNamedItem(e);
1026
+ },
1027
+ setAttribute: function(e, u) {
1028
+ var r = this.ownerDocument.createAttribute(e);
1029
+ r.value = r.nodeValue = "" + u, this.setAttributeNode(r);
1030
+ },
1031
+ removeAttribute: function(e) {
1032
+ var u = this.getAttributeNode(e);
1033
+ u && this.removeAttributeNode(u);
1034
+ },
1035
+ //four real opeartion method
1036
+ appendChild: function(e) {
1037
+ return e.nodeType === z ? this.insertBefore(e, null) : sr(this, e);
1038
+ },
1039
+ setAttributeNode: function(e) {
1040
+ return this.attributes.setNamedItem(e);
1041
+ },
1042
+ setAttributeNodeNS: function(e) {
1043
+ return this.attributes.setNamedItemNS(e);
1044
+ },
1045
+ removeAttributeNode: function(e) {
1046
+ return this.attributes.removeNamedItem(e.nodeName);
1047
+ },
1048
+ //get real attribute name,and remove it by removeAttributeNode
1049
+ removeAttributeNS: function(e, u) {
1050
+ var r = this.getAttributeNodeNS(e, u);
1051
+ r && this.removeAttributeNode(r);
1052
+ },
1053
+ hasAttributeNS: function(e, u) {
1054
+ return this.getAttributeNodeNS(e, u) != null;
1055
+ },
1056
+ getAttributeNS: function(e, u) {
1057
+ var r = this.getAttributeNodeNS(e, u);
1058
+ return r && r.value || "";
1059
+ },
1060
+ setAttributeNS: function(e, u, r) {
1061
+ var t = this.ownerDocument.createAttributeNS(e, u);
1062
+ t.value = t.nodeValue = "" + r, this.setAttributeNode(t);
1063
+ },
1064
+ getAttributeNodeNS: function(e, u) {
1065
+ return this.attributes.getNamedItemNS(e, u);
1066
+ },
1067
+ getElementsByTagName: function(e) {
1068
+ return new au(this, function(u) {
1069
+ var r = [];
1070
+ return gu(u, function(t) {
1071
+ t !== u && t.nodeType == P && (e === "*" || t.tagName == e) && r.push(t);
1072
+ }), r;
1073
+ });
1074
+ },
1075
+ getElementsByTagNameNS: function(e, u) {
1076
+ return new au(this, function(r) {
1077
+ var t = [];
1078
+ return gu(r, function(n) {
1079
+ n !== r && n.nodeType === P && (e === "*" || n.namespaceURI === e) && (u === "*" || n.localName == u) && t.push(n);
1080
+ }), t;
1081
+ });
1082
+ }
1083
+ };
1084
+ Eu.prototype.getElementsByTagName = Q.prototype.getElementsByTagName;
1085
+ Eu.prototype.getElementsByTagNameNS = Q.prototype.getElementsByTagNameNS;
1086
+ O(Q, g);
1087
+ function Su() {
1088
+ }
1089
+ Su.prototype.nodeType = iu;
1090
+ O(Su, g);
1091
+ function bu() {
1092
+ }
1093
+ bu.prototype = {
1094
+ data: "",
1095
+ substringData: function(e, u) {
1096
+ return this.data.substring(e, e + u);
1097
+ },
1098
+ appendData: function(e) {
1099
+ e = this.data + e, this.nodeValue = this.data = e, this.length = e.length;
1100
+ },
1101
+ insertData: function(e, u) {
1102
+ this.replaceData(e, 0, u);
1103
+ },
1104
+ appendChild: function(e) {
1105
+ throw new Error(N[R]);
1106
+ },
1107
+ deleteData: function(e, u) {
1108
+ this.replaceData(e, u, "");
1109
+ },
1110
+ replaceData: function(e, u, r) {
1111
+ var t = this.data.substring(0, e), n = this.data.substring(e + u);
1112
+ r = t + r + n, this.nodeValue = this.data = r, this.length = r.length;
1113
+ }
1114
+ };
1115
+ O(bu, g);
1116
+ function zu() {
1117
+ }
1118
+ zu.prototype = {
1119
+ nodeName: "#text",
1120
+ nodeType: Nu,
1121
+ splitText: function(e) {
1122
+ var u = this.data, r = u.substring(e);
1123
+ u = u.substring(0, e), this.data = this.nodeValue = u, this.length = u.length;
1124
+ var t = this.ownerDocument.createTextNode(r);
1125
+ return this.parentNode && this.parentNode.insertBefore(t, this.nextSibling), t;
1126
+ }
1127
+ };
1128
+ O(zu, bu);
1129
+ function $u() {
1130
+ }
1131
+ $u.prototype = {
1132
+ nodeName: "#comment",
1133
+ nodeType: Ae
1134
+ };
1135
+ O($u, bu);
1136
+ function ju() {
1137
+ }
1138
+ ju.prototype = {
1139
+ nodeName: "#cdata-section",
1140
+ nodeType: me
1141
+ };
1142
+ O(ju, bu);
1143
+ function xu() {
1144
+ }
1145
+ xu.prototype.nodeType = be;
1146
+ O(xu, g);
1147
+ function Fe() {
1148
+ }
1149
+ Fe.prototype.nodeType = rr;
1150
+ O(Fe, g);
1151
+ function Se() {
1152
+ }
1153
+ Se.prototype.nodeType = er;
1154
+ O(Se, g);
1155
+ function Xu() {
1156
+ }
1157
+ Xu.prototype.nodeType = ge;
1158
+ O(Xu, g);
1159
+ function qu() {
1160
+ }
1161
+ qu.prototype.nodeName = "#document-fragment";
1162
+ qu.prototype.nodeType = z;
1163
+ O(qu, g);
1164
+ function Yu() {
1165
+ }
1166
+ Yu.prototype.nodeType = de;
1167
+ O(Yu, g);
1168
+ function xe() {
1169
+ }
1170
+ xe.prototype.serializeToString = function(e, u, r) {
1171
+ return qe.call(e, u, r);
1172
+ };
1173
+ g.prototype.toString = qe;
1174
+ function qe(e, u) {
1175
+ var r = [], t = this.nodeType == 9 && this.documentElement || this, n = t.prefix, a = t.namespaceURI;
1176
+ if (a && n == null) {
1177
+ var n = t.lookupPrefix(a);
1178
+ if (n == null)
1179
+ var o = [
1180
+ { namespace: a, prefix: null }
1181
+ //{namespace:uri,prefix:''}
1182
+ ];
1183
+ }
1184
+ return tu(this, r, e, u, o), r.join("");
1185
+ }
1186
+ function ne(e, u, r) {
1187
+ var t = e.prefix || "", n = e.namespaceURI;
1188
+ if (!n || t === "xml" && n === mu.XML || n === mu.XMLNS)
1189
+ return !1;
1190
+ for (var a = r.length; a--; ) {
1191
+ var o = r[a];
1192
+ if (o.prefix === t)
1193
+ return o.namespace !== n;
1194
+ }
1195
+ return !0;
1196
+ }
1197
+ function Ou(e, u, r) {
1198
+ e.push(" ", u, '="', r.replace(/[<>&"\t\n\r]/g, we), '"');
1199
+ }
1200
+ function tu(e, u, r, t, n) {
1201
+ if (n || (n = []), t)
1202
+ if (e = t(e), e) {
1203
+ if (typeof e == "string") {
1204
+ u.push(e);
1205
+ return;
1206
+ }
1207
+ } else
1208
+ return;
1209
+ switch (e.nodeType) {
1210
+ case P:
1211
+ var a = e.attributes, o = a.length, h = e.firstChild, s = e.tagName;
1212
+ r = mu.isHTML(e.namespaceURI) || r;
1213
+ var l = s;
1214
+ if (!r && !e.prefix && e.namespaceURI) {
1215
+ for (var c, p = 0; p < a.length; p++)
1216
+ if (a.item(p).name === "xmlns") {
1217
+ c = a.item(p).value;
1218
+ break;
1219
+ }
1220
+ if (!c)
1221
+ for (var D = n.length - 1; D >= 0; D--) {
1222
+ var f = n[D];
1223
+ if (f.prefix === "" && f.namespace === e.namespaceURI) {
1224
+ c = f.namespace;
1225
+ break;
1226
+ }
1227
+ }
1228
+ if (c !== e.namespaceURI)
1229
+ for (var D = n.length - 1; D >= 0; D--) {
1230
+ var f = n[D];
1231
+ if (f.namespace === e.namespaceURI) {
1232
+ f.prefix && (l = f.prefix + ":" + s);
1233
+ break;
1234
+ }
1235
+ }
1236
+ }
1237
+ u.push("<", l);
1238
+ for (var b = 0; b < o; b++) {
1239
+ var T = a.item(b);
1240
+ T.prefix == "xmlns" ? n.push({ prefix: T.localName, namespace: T.value }) : T.nodeName == "xmlns" && n.push({ prefix: "", namespace: T.value });
1241
+ }
1242
+ for (var b = 0; b < o; b++) {
1243
+ var T = a.item(b);
1244
+ if (ne(T, r, n)) {
1245
+ var v = T.prefix || "", d = T.namespaceURI;
1246
+ Ou(u, v ? "xmlns:" + v : "xmlns", d), n.push({ prefix: v, namespace: d });
1247
+ }
1248
+ tu(T, u, r, t, n);
1249
+ }
1250
+ if (s === l && ne(e, r, n)) {
1251
+ var v = e.prefix || "", d = e.namespaceURI;
1252
+ Ou(u, v ? "xmlns:" + v : "xmlns", d), n.push({ prefix: v, namespace: d });
1253
+ }
1254
+ if (h || r && !/^(?:meta|link|img|br|hr|input)$/i.test(s)) {
1255
+ if (u.push(">"), r && /^script$/i.test(s))
1256
+ for (; h; )
1257
+ h.data ? u.push(h.data) : tu(h, u, r, t, n.slice()), h = h.nextSibling;
1258
+ else
1259
+ for (; h; )
1260
+ tu(h, u, r, t, n.slice()), h = h.nextSibling;
1261
+ u.push("</", l, ">");
1262
+ } else
1263
+ u.push("/>");
1264
+ return;
1265
+ case Ee:
1266
+ case z:
1267
+ for (var h = e.firstChild; h; )
1268
+ tu(h, u, r, t, n.slice()), h = h.nextSibling;
1269
+ return;
1270
+ case iu:
1271
+ return Ou(u, e.name, e.value);
1272
+ case Nu:
1273
+ return u.push(
1274
+ e.data.replace(/[<&>]/g, we)
1275
+ );
1276
+ case me:
1277
+ return u.push("<![CDATA[", e.data, "]]>");
1278
+ case Ae:
1279
+ return u.push("<!--", e.data, "-->");
1280
+ case be:
1281
+ var y = e.publicId, C = e.systemId;
1282
+ if (u.push("<!DOCTYPE ", e.name), y)
1283
+ u.push(" PUBLIC ", y), C && C != "." && u.push(" ", C), u.push(">");
1284
+ else if (C && C != ".")
1285
+ u.push(" SYSTEM ", C, ">");
1286
+ else {
1287
+ var F = e.internalSubset;
1288
+ F && u.push(" [", F, "]"), u.push(">");
1289
+ }
1290
+ return;
1291
+ case de:
1292
+ return u.push("<?", e.target, " ", e.data, "?>");
1293
+ case ge:
1294
+ return u.push("&", e.nodeName, ";");
1295
+ default:
1296
+ u.push("??", e.nodeName);
1297
+ }
1298
+ }
1299
+ function ke(e, u, r) {
1300
+ var t;
1301
+ switch (u.nodeType) {
1302
+ case P:
1303
+ t = u.cloneNode(!1), t.ownerDocument = e;
1304
+ case z:
1305
+ break;
1306
+ case iu:
1307
+ r = !0;
1308
+ break;
1309
+ }
1310
+ if (t || (t = u.cloneNode(!1)), t.ownerDocument = e, t.parentNode = null, r)
1311
+ for (var n = u.firstChild; n; )
1312
+ t.appendChild(ke(e, n, r)), n = n.nextSibling;
1313
+ return t;
1314
+ }
1315
+ function Mu(e, u, r) {
1316
+ var t = new u.constructor();
1317
+ for (var n in u)
1318
+ if (Object.prototype.hasOwnProperty.call(u, n)) {
1319
+ var a = u[n];
1320
+ typeof a != "object" && a != t[n] && (t[n] = a);
1321
+ }
1322
+ switch (u.childNodes && (t.childNodes = new H()), t.ownerDocument = e, t.nodeType) {
1323
+ case P:
1324
+ var o = u.attributes, s = t.attributes = new Tu(), l = o.length;
1325
+ s._ownerElement = t;
1326
+ for (var c = 0; c < l; c++)
1327
+ t.setAttributeNode(Mu(e, o.item(c), !0));
1328
+ break;
1329
+ case iu:
1330
+ r = !0;
1331
+ }
1332
+ if (r)
1333
+ for (var p = u.firstChild; p; )
1334
+ t.appendChild(Mu(e, p, r)), p = p.nextSibling;
1335
+ return t;
1336
+ }
1337
+ function Re(e, u, r) {
1338
+ e[u] = r;
1339
+ }
1340
+ try {
1341
+ if (Object.defineProperty) {
1342
+ let e = function(u) {
1343
+ switch (u.nodeType) {
1344
+ case P:
1345
+ case z:
1346
+ var r = [];
1347
+ for (u = u.firstChild; u; )
1348
+ u.nodeType !== 7 && u.nodeType !== 8 && r.push(e(u)), u = u.nextSibling;
1349
+ return r.join("");
1350
+ default:
1351
+ return u.nodeValue;
1352
+ }
1353
+ };
1354
+ Object.defineProperty(au.prototype, "length", {
1355
+ get: function() {
1356
+ return Vu(this), this.$$length;
1357
+ }
1358
+ }), Object.defineProperty(g.prototype, "textContent", {
1359
+ get: function() {
1360
+ return e(this);
1361
+ },
1362
+ set: function(u) {
1363
+ switch (this.nodeType) {
1364
+ case P:
1365
+ case z:
1366
+ for (; this.firstChild; )
1367
+ this.removeChild(this.firstChild);
1368
+ (u || String(u)) && this.appendChild(this.ownerDocument.createTextNode(u));
1369
+ break;
1370
+ default:
1371
+ this.data = u, this.value = u, this.nodeValue = u;
1372
+ }
1373
+ }
1374
+ }), Re = function(u, r, t) {
1375
+ u["$$" + r] = t;
1376
+ };
1377
+ }
1378
+ } catch {
1379
+ }
1380
+ Z.DocumentType = xu;
1381
+ Z.DOMException = w;
1382
+ Z.DOMImplementation = ye;
1383
+ Z.Element = Q;
1384
+ Z.Node = g;
1385
+ Z.NodeList = H;
1386
+ Z.XMLSerializer = xe;
1387
+ var ku = {}, Oe = {};
1388
+ (function(e) {
1389
+ var u = j.freeze;
1390
+ e.XML_ENTITIES = u({
1391
+ amp: "&",
1392
+ apos: "'",
1393
+ gt: ">",
1394
+ lt: "<",
1395
+ quot: '"'
1396
+ }), e.HTML_ENTITIES = u({
1397
+ Aacute: "Á",
1398
+ aacute: "á",
1399
+ Abreve: "Ă",
1400
+ abreve: "ă",
1401
+ ac: "∾",
1402
+ acd: "∿",
1403
+ acE: "∾̳",
1404
+ Acirc: "Â",
1405
+ acirc: "â",
1406
+ acute: "´",
1407
+ Acy: "А",
1408
+ acy: "а",
1409
+ AElig: "Æ",
1410
+ aelig: "æ",
1411
+ af: "⁡",
1412
+ Afr: "𝔄",
1413
+ afr: "𝔞",
1414
+ Agrave: "À",
1415
+ agrave: "à",
1416
+ alefsym: "ℵ",
1417
+ aleph: "ℵ",
1418
+ Alpha: "Α",
1419
+ alpha: "α",
1420
+ Amacr: "Ā",
1421
+ amacr: "ā",
1422
+ amalg: "⨿",
1423
+ AMP: "&",
1424
+ amp: "&",
1425
+ And: "⩓",
1426
+ and: "∧",
1427
+ andand: "⩕",
1428
+ andd: "⩜",
1429
+ andslope: "⩘",
1430
+ andv: "⩚",
1431
+ ang: "∠",
1432
+ ange: "⦤",
1433
+ angle: "∠",
1434
+ angmsd: "∡",
1435
+ angmsdaa: "⦨",
1436
+ angmsdab: "⦩",
1437
+ angmsdac: "⦪",
1438
+ angmsdad: "⦫",
1439
+ angmsdae: "⦬",
1440
+ angmsdaf: "⦭",
1441
+ angmsdag: "⦮",
1442
+ angmsdah: "⦯",
1443
+ angrt: "∟",
1444
+ angrtvb: "⊾",
1445
+ angrtvbd: "⦝",
1446
+ angsph: "∢",
1447
+ angst: "Å",
1448
+ angzarr: "⍼",
1449
+ Aogon: "Ą",
1450
+ aogon: "ą",
1451
+ Aopf: "𝔸",
1452
+ aopf: "𝕒",
1453
+ ap: "≈",
1454
+ apacir: "⩯",
1455
+ apE: "⩰",
1456
+ ape: "≊",
1457
+ apid: "≋",
1458
+ apos: "'",
1459
+ ApplyFunction: "⁡",
1460
+ approx: "≈",
1461
+ approxeq: "≊",
1462
+ Aring: "Å",
1463
+ aring: "å",
1464
+ Ascr: "𝒜",
1465
+ ascr: "𝒶",
1466
+ Assign: "≔",
1467
+ ast: "*",
1468
+ asymp: "≈",
1469
+ asympeq: "≍",
1470
+ Atilde: "Ã",
1471
+ atilde: "ã",
1472
+ Auml: "Ä",
1473
+ auml: "ä",
1474
+ awconint: "∳",
1475
+ awint: "⨑",
1476
+ backcong: "≌",
1477
+ backepsilon: "϶",
1478
+ backprime: "‵",
1479
+ backsim: "∽",
1480
+ backsimeq: "⋍",
1481
+ Backslash: "∖",
1482
+ Barv: "⫧",
1483
+ barvee: "⊽",
1484
+ Barwed: "⌆",
1485
+ barwed: "⌅",
1486
+ barwedge: "⌅",
1487
+ bbrk: "⎵",
1488
+ bbrktbrk: "⎶",
1489
+ bcong: "≌",
1490
+ Bcy: "Б",
1491
+ bcy: "б",
1492
+ bdquo: "„",
1493
+ becaus: "∵",
1494
+ Because: "∵",
1495
+ because: "∵",
1496
+ bemptyv: "⦰",
1497
+ bepsi: "϶",
1498
+ bernou: "ℬ",
1499
+ Bernoullis: "ℬ",
1500
+ Beta: "Β",
1501
+ beta: "β",
1502
+ beth: "ℶ",
1503
+ between: "≬",
1504
+ Bfr: "𝔅",
1505
+ bfr: "𝔟",
1506
+ bigcap: "⋂",
1507
+ bigcirc: "◯",
1508
+ bigcup: "⋃",
1509
+ bigodot: "⨀",
1510
+ bigoplus: "⨁",
1511
+ bigotimes: "⨂",
1512
+ bigsqcup: "⨆",
1513
+ bigstar: "★",
1514
+ bigtriangledown: "▽",
1515
+ bigtriangleup: "△",
1516
+ biguplus: "⨄",
1517
+ bigvee: "⋁",
1518
+ bigwedge: "⋀",
1519
+ bkarow: "⤍",
1520
+ blacklozenge: "⧫",
1521
+ blacksquare: "▪",
1522
+ blacktriangle: "▴",
1523
+ blacktriangledown: "▾",
1524
+ blacktriangleleft: "◂",
1525
+ blacktriangleright: "▸",
1526
+ blank: "␣",
1527
+ blk12: "▒",
1528
+ blk14: "░",
1529
+ blk34: "▓",
1530
+ block: "█",
1531
+ bne: "=⃥",
1532
+ bnequiv: "≡⃥",
1533
+ bNot: "⫭",
1534
+ bnot: "⌐",
1535
+ Bopf: "𝔹",
1536
+ bopf: "𝕓",
1537
+ bot: "⊥",
1538
+ bottom: "⊥",
1539
+ bowtie: "⋈",
1540
+ boxbox: "⧉",
1541
+ boxDL: "╗",
1542
+ boxDl: "╖",
1543
+ boxdL: "╕",
1544
+ boxdl: "┐",
1545
+ boxDR: "╔",
1546
+ boxDr: "╓",
1547
+ boxdR: "╒",
1548
+ boxdr: "┌",
1549
+ boxH: "═",
1550
+ boxh: "─",
1551
+ boxHD: "╦",
1552
+ boxHd: "╤",
1553
+ boxhD: "╥",
1554
+ boxhd: "┬",
1555
+ boxHU: "╩",
1556
+ boxHu: "╧",
1557
+ boxhU: "╨",
1558
+ boxhu: "┴",
1559
+ boxminus: "⊟",
1560
+ boxplus: "⊞",
1561
+ boxtimes: "⊠",
1562
+ boxUL: "╝",
1563
+ boxUl: "╜",
1564
+ boxuL: "╛",
1565
+ boxul: "┘",
1566
+ boxUR: "╚",
1567
+ boxUr: "╙",
1568
+ boxuR: "╘",
1569
+ boxur: "└",
1570
+ boxV: "║",
1571
+ boxv: "│",
1572
+ boxVH: "╬",
1573
+ boxVh: "╫",
1574
+ boxvH: "╪",
1575
+ boxvh: "┼",
1576
+ boxVL: "╣",
1577
+ boxVl: "╢",
1578
+ boxvL: "╡",
1579
+ boxvl: "┤",
1580
+ boxVR: "╠",
1581
+ boxVr: "╟",
1582
+ boxvR: "╞",
1583
+ boxvr: "├",
1584
+ bprime: "‵",
1585
+ Breve: "˘",
1586
+ breve: "˘",
1587
+ brvbar: "¦",
1588
+ Bscr: "ℬ",
1589
+ bscr: "𝒷",
1590
+ bsemi: "⁏",
1591
+ bsim: "∽",
1592
+ bsime: "⋍",
1593
+ bsol: "\\",
1594
+ bsolb: "⧅",
1595
+ bsolhsub: "⟈",
1596
+ bull: "•",
1597
+ bullet: "•",
1598
+ bump: "≎",
1599
+ bumpE: "⪮",
1600
+ bumpe: "≏",
1601
+ Bumpeq: "≎",
1602
+ bumpeq: "≏",
1603
+ Cacute: "Ć",
1604
+ cacute: "ć",
1605
+ Cap: "⋒",
1606
+ cap: "∩",
1607
+ capand: "⩄",
1608
+ capbrcup: "⩉",
1609
+ capcap: "⩋",
1610
+ capcup: "⩇",
1611
+ capdot: "⩀",
1612
+ CapitalDifferentialD: "ⅅ",
1613
+ caps: "∩︀",
1614
+ caret: "⁁",
1615
+ caron: "ˇ",
1616
+ Cayleys: "ℭ",
1617
+ ccaps: "⩍",
1618
+ Ccaron: "Č",
1619
+ ccaron: "č",
1620
+ Ccedil: "Ç",
1621
+ ccedil: "ç",
1622
+ Ccirc: "Ĉ",
1623
+ ccirc: "ĉ",
1624
+ Cconint: "∰",
1625
+ ccups: "⩌",
1626
+ ccupssm: "⩐",
1627
+ Cdot: "Ċ",
1628
+ cdot: "ċ",
1629
+ cedil: "¸",
1630
+ Cedilla: "¸",
1631
+ cemptyv: "⦲",
1632
+ cent: "¢",
1633
+ CenterDot: "·",
1634
+ centerdot: "·",
1635
+ Cfr: "ℭ",
1636
+ cfr: "𝔠",
1637
+ CHcy: "Ч",
1638
+ chcy: "ч",
1639
+ check: "✓",
1640
+ checkmark: "✓",
1641
+ Chi: "Χ",
1642
+ chi: "χ",
1643
+ cir: "○",
1644
+ circ: "ˆ",
1645
+ circeq: "≗",
1646
+ circlearrowleft: "↺",
1647
+ circlearrowright: "↻",
1648
+ circledast: "⊛",
1649
+ circledcirc: "⊚",
1650
+ circleddash: "⊝",
1651
+ CircleDot: "⊙",
1652
+ circledR: "®",
1653
+ circledS: "Ⓢ",
1654
+ CircleMinus: "⊖",
1655
+ CirclePlus: "⊕",
1656
+ CircleTimes: "⊗",
1657
+ cirE: "⧃",
1658
+ cire: "≗",
1659
+ cirfnint: "⨐",
1660
+ cirmid: "⫯",
1661
+ cirscir: "⧂",
1662
+ ClockwiseContourIntegral: "∲",
1663
+ CloseCurlyDoubleQuote: "”",
1664
+ CloseCurlyQuote: "’",
1665
+ clubs: "♣",
1666
+ clubsuit: "♣",
1667
+ Colon: "∷",
1668
+ colon: ":",
1669
+ Colone: "⩴",
1670
+ colone: "≔",
1671
+ coloneq: "≔",
1672
+ comma: ",",
1673
+ commat: "@",
1674
+ comp: "∁",
1675
+ compfn: "∘",
1676
+ complement: "∁",
1677
+ complexes: "ℂ",
1678
+ cong: "≅",
1679
+ congdot: "⩭",
1680
+ Congruent: "≡",
1681
+ Conint: "∯",
1682
+ conint: "∮",
1683
+ ContourIntegral: "∮",
1684
+ Copf: "ℂ",
1685
+ copf: "𝕔",
1686
+ coprod: "∐",
1687
+ Coproduct: "∐",
1688
+ COPY: "©",
1689
+ copy: "©",
1690
+ copysr: "℗",
1691
+ CounterClockwiseContourIntegral: "∳",
1692
+ crarr: "↵",
1693
+ Cross: "⨯",
1694
+ cross: "✗",
1695
+ Cscr: "𝒞",
1696
+ cscr: "𝒸",
1697
+ csub: "⫏",
1698
+ csube: "⫑",
1699
+ csup: "⫐",
1700
+ csupe: "⫒",
1701
+ ctdot: "⋯",
1702
+ cudarrl: "⤸",
1703
+ cudarrr: "⤵",
1704
+ cuepr: "⋞",
1705
+ cuesc: "⋟",
1706
+ cularr: "↶",
1707
+ cularrp: "⤽",
1708
+ Cup: "⋓",
1709
+ cup: "∪",
1710
+ cupbrcap: "⩈",
1711
+ CupCap: "≍",
1712
+ cupcap: "⩆",
1713
+ cupcup: "⩊",
1714
+ cupdot: "⊍",
1715
+ cupor: "⩅",
1716
+ cups: "∪︀",
1717
+ curarr: "↷",
1718
+ curarrm: "⤼",
1719
+ curlyeqprec: "⋞",
1720
+ curlyeqsucc: "⋟",
1721
+ curlyvee: "⋎",
1722
+ curlywedge: "⋏",
1723
+ curren: "¤",
1724
+ curvearrowleft: "↶",
1725
+ curvearrowright: "↷",
1726
+ cuvee: "⋎",
1727
+ cuwed: "⋏",
1728
+ cwconint: "∲",
1729
+ cwint: "∱",
1730
+ cylcty: "⌭",
1731
+ Dagger: "‡",
1732
+ dagger: "†",
1733
+ daleth: "ℸ",
1734
+ Darr: "↡",
1735
+ dArr: "⇓",
1736
+ darr: "↓",
1737
+ dash: "‐",
1738
+ Dashv: "⫤",
1739
+ dashv: "⊣",
1740
+ dbkarow: "⤏",
1741
+ dblac: "˝",
1742
+ Dcaron: "Ď",
1743
+ dcaron: "ď",
1744
+ Dcy: "Д",
1745
+ dcy: "д",
1746
+ DD: "ⅅ",
1747
+ dd: "ⅆ",
1748
+ ddagger: "‡",
1749
+ ddarr: "⇊",
1750
+ DDotrahd: "⤑",
1751
+ ddotseq: "⩷",
1752
+ deg: "°",
1753
+ Del: "∇",
1754
+ Delta: "Δ",
1755
+ delta: "δ",
1756
+ demptyv: "⦱",
1757
+ dfisht: "⥿",
1758
+ Dfr: "𝔇",
1759
+ dfr: "𝔡",
1760
+ dHar: "⥥",
1761
+ dharl: "⇃",
1762
+ dharr: "⇂",
1763
+ DiacriticalAcute: "´",
1764
+ DiacriticalDot: "˙",
1765
+ DiacriticalDoubleAcute: "˝",
1766
+ DiacriticalGrave: "`",
1767
+ DiacriticalTilde: "˜",
1768
+ diam: "⋄",
1769
+ Diamond: "⋄",
1770
+ diamond: "⋄",
1771
+ diamondsuit: "♦",
1772
+ diams: "♦",
1773
+ die: "¨",
1774
+ DifferentialD: "ⅆ",
1775
+ digamma: "ϝ",
1776
+ disin: "⋲",
1777
+ div: "÷",
1778
+ divide: "÷",
1779
+ divideontimes: "⋇",
1780
+ divonx: "⋇",
1781
+ DJcy: "Ђ",
1782
+ djcy: "ђ",
1783
+ dlcorn: "⌞",
1784
+ dlcrop: "⌍",
1785
+ dollar: "$",
1786
+ Dopf: "𝔻",
1787
+ dopf: "𝕕",
1788
+ Dot: "¨",
1789
+ dot: "˙",
1790
+ DotDot: "⃜",
1791
+ doteq: "≐",
1792
+ doteqdot: "≑",
1793
+ DotEqual: "≐",
1794
+ dotminus: "∸",
1795
+ dotplus: "∔",
1796
+ dotsquare: "⊡",
1797
+ doublebarwedge: "⌆",
1798
+ DoubleContourIntegral: "∯",
1799
+ DoubleDot: "¨",
1800
+ DoubleDownArrow: "⇓",
1801
+ DoubleLeftArrow: "⇐",
1802
+ DoubleLeftRightArrow: "⇔",
1803
+ DoubleLeftTee: "⫤",
1804
+ DoubleLongLeftArrow: "⟸",
1805
+ DoubleLongLeftRightArrow: "⟺",
1806
+ DoubleLongRightArrow: "⟹",
1807
+ DoubleRightArrow: "⇒",
1808
+ DoubleRightTee: "⊨",
1809
+ DoubleUpArrow: "⇑",
1810
+ DoubleUpDownArrow: "⇕",
1811
+ DoubleVerticalBar: "∥",
1812
+ DownArrow: "↓",
1813
+ Downarrow: "⇓",
1814
+ downarrow: "↓",
1815
+ DownArrowBar: "⤓",
1816
+ DownArrowUpArrow: "⇵",
1817
+ DownBreve: "̑",
1818
+ downdownarrows: "⇊",
1819
+ downharpoonleft: "⇃",
1820
+ downharpoonright: "⇂",
1821
+ DownLeftRightVector: "⥐",
1822
+ DownLeftTeeVector: "⥞",
1823
+ DownLeftVector: "↽",
1824
+ DownLeftVectorBar: "⥖",
1825
+ DownRightTeeVector: "⥟",
1826
+ DownRightVector: "⇁",
1827
+ DownRightVectorBar: "⥗",
1828
+ DownTee: "⊤",
1829
+ DownTeeArrow: "↧",
1830
+ drbkarow: "⤐",
1831
+ drcorn: "⌟",
1832
+ drcrop: "⌌",
1833
+ Dscr: "𝒟",
1834
+ dscr: "𝒹",
1835
+ DScy: "Ѕ",
1836
+ dscy: "ѕ",
1837
+ dsol: "⧶",
1838
+ Dstrok: "Đ",
1839
+ dstrok: "đ",
1840
+ dtdot: "⋱",
1841
+ dtri: "▿",
1842
+ dtrif: "▾",
1843
+ duarr: "⇵",
1844
+ duhar: "⥯",
1845
+ dwangle: "⦦",
1846
+ DZcy: "Џ",
1847
+ dzcy: "џ",
1848
+ dzigrarr: "⟿",
1849
+ Eacute: "É",
1850
+ eacute: "é",
1851
+ easter: "⩮",
1852
+ Ecaron: "Ě",
1853
+ ecaron: "ě",
1854
+ ecir: "≖",
1855
+ Ecirc: "Ê",
1856
+ ecirc: "ê",
1857
+ ecolon: "≕",
1858
+ Ecy: "Э",
1859
+ ecy: "э",
1860
+ eDDot: "⩷",
1861
+ Edot: "Ė",
1862
+ eDot: "≑",
1863
+ edot: "ė",
1864
+ ee: "ⅇ",
1865
+ efDot: "≒",
1866
+ Efr: "𝔈",
1867
+ efr: "𝔢",
1868
+ eg: "⪚",
1869
+ Egrave: "È",
1870
+ egrave: "è",
1871
+ egs: "⪖",
1872
+ egsdot: "⪘",
1873
+ el: "⪙",
1874
+ Element: "∈",
1875
+ elinters: "⏧",
1876
+ ell: "ℓ",
1877
+ els: "⪕",
1878
+ elsdot: "⪗",
1879
+ Emacr: "Ē",
1880
+ emacr: "ē",
1881
+ empty: "∅",
1882
+ emptyset: "∅",
1883
+ EmptySmallSquare: "◻",
1884
+ emptyv: "∅",
1885
+ EmptyVerySmallSquare: "▫",
1886
+ emsp: " ",
1887
+ emsp13: " ",
1888
+ emsp14: " ",
1889
+ ENG: "Ŋ",
1890
+ eng: "ŋ",
1891
+ ensp: " ",
1892
+ Eogon: "Ę",
1893
+ eogon: "ę",
1894
+ Eopf: "𝔼",
1895
+ eopf: "𝕖",
1896
+ epar: "⋕",
1897
+ eparsl: "⧣",
1898
+ eplus: "⩱",
1899
+ epsi: "ε",
1900
+ Epsilon: "Ε",
1901
+ epsilon: "ε",
1902
+ epsiv: "ϵ",
1903
+ eqcirc: "≖",
1904
+ eqcolon: "≕",
1905
+ eqsim: "≂",
1906
+ eqslantgtr: "⪖",
1907
+ eqslantless: "⪕",
1908
+ Equal: "⩵",
1909
+ equals: "=",
1910
+ EqualTilde: "≂",
1911
+ equest: "≟",
1912
+ Equilibrium: "⇌",
1913
+ equiv: "≡",
1914
+ equivDD: "⩸",
1915
+ eqvparsl: "⧥",
1916
+ erarr: "⥱",
1917
+ erDot: "≓",
1918
+ Escr: "ℰ",
1919
+ escr: "ℯ",
1920
+ esdot: "≐",
1921
+ Esim: "⩳",
1922
+ esim: "≂",
1923
+ Eta: "Η",
1924
+ eta: "η",
1925
+ ETH: "Ð",
1926
+ eth: "ð",
1927
+ Euml: "Ë",
1928
+ euml: "ë",
1929
+ euro: "€",
1930
+ excl: "!",
1931
+ exist: "∃",
1932
+ Exists: "∃",
1933
+ expectation: "ℰ",
1934
+ ExponentialE: "ⅇ",
1935
+ exponentiale: "ⅇ",
1936
+ fallingdotseq: "≒",
1937
+ Fcy: "Ф",
1938
+ fcy: "ф",
1939
+ female: "♀",
1940
+ ffilig: "ffi",
1941
+ fflig: "ff",
1942
+ ffllig: "ffl",
1943
+ Ffr: "𝔉",
1944
+ ffr: "𝔣",
1945
+ filig: "fi",
1946
+ FilledSmallSquare: "◼",
1947
+ FilledVerySmallSquare: "▪",
1948
+ fjlig: "fj",
1949
+ flat: "♭",
1950
+ fllig: "fl",
1951
+ fltns: "▱",
1952
+ fnof: "ƒ",
1953
+ Fopf: "𝔽",
1954
+ fopf: "𝕗",
1955
+ ForAll: "∀",
1956
+ forall: "∀",
1957
+ fork: "⋔",
1958
+ forkv: "⫙",
1959
+ Fouriertrf: "ℱ",
1960
+ fpartint: "⨍",
1961
+ frac12: "½",
1962
+ frac13: "⅓",
1963
+ frac14: "¼",
1964
+ frac15: "⅕",
1965
+ frac16: "⅙",
1966
+ frac18: "⅛",
1967
+ frac23: "⅔",
1968
+ frac25: "⅖",
1969
+ frac34: "¾",
1970
+ frac35: "⅗",
1971
+ frac38: "⅜",
1972
+ frac45: "⅘",
1973
+ frac56: "⅚",
1974
+ frac58: "⅝",
1975
+ frac78: "⅞",
1976
+ frasl: "⁄",
1977
+ frown: "⌢",
1978
+ Fscr: "ℱ",
1979
+ fscr: "𝒻",
1980
+ gacute: "ǵ",
1981
+ Gamma: "Γ",
1982
+ gamma: "γ",
1983
+ Gammad: "Ϝ",
1984
+ gammad: "ϝ",
1985
+ gap: "⪆",
1986
+ Gbreve: "Ğ",
1987
+ gbreve: "ğ",
1988
+ Gcedil: "Ģ",
1989
+ Gcirc: "Ĝ",
1990
+ gcirc: "ĝ",
1991
+ Gcy: "Г",
1992
+ gcy: "г",
1993
+ Gdot: "Ġ",
1994
+ gdot: "ġ",
1995
+ gE: "≧",
1996
+ ge: "≥",
1997
+ gEl: "⪌",
1998
+ gel: "⋛",
1999
+ geq: "≥",
2000
+ geqq: "≧",
2001
+ geqslant: "⩾",
2002
+ ges: "⩾",
2003
+ gescc: "⪩",
2004
+ gesdot: "⪀",
2005
+ gesdoto: "⪂",
2006
+ gesdotol: "⪄",
2007
+ gesl: "⋛︀",
2008
+ gesles: "⪔",
2009
+ Gfr: "𝔊",
2010
+ gfr: "𝔤",
2011
+ Gg: "⋙",
2012
+ gg: "≫",
2013
+ ggg: "⋙",
2014
+ gimel: "ℷ",
2015
+ GJcy: "Ѓ",
2016
+ gjcy: "ѓ",
2017
+ gl: "≷",
2018
+ gla: "⪥",
2019
+ glE: "⪒",
2020
+ glj: "⪤",
2021
+ gnap: "⪊",
2022
+ gnapprox: "⪊",
2023
+ gnE: "≩",
2024
+ gne: "⪈",
2025
+ gneq: "⪈",
2026
+ gneqq: "≩",
2027
+ gnsim: "⋧",
2028
+ Gopf: "𝔾",
2029
+ gopf: "𝕘",
2030
+ grave: "`",
2031
+ GreaterEqual: "≥",
2032
+ GreaterEqualLess: "⋛",
2033
+ GreaterFullEqual: "≧",
2034
+ GreaterGreater: "⪢",
2035
+ GreaterLess: "≷",
2036
+ GreaterSlantEqual: "⩾",
2037
+ GreaterTilde: "≳",
2038
+ Gscr: "𝒢",
2039
+ gscr: "ℊ",
2040
+ gsim: "≳",
2041
+ gsime: "⪎",
2042
+ gsiml: "⪐",
2043
+ Gt: "≫",
2044
+ GT: ">",
2045
+ gt: ">",
2046
+ gtcc: "⪧",
2047
+ gtcir: "⩺",
2048
+ gtdot: "⋗",
2049
+ gtlPar: "⦕",
2050
+ gtquest: "⩼",
2051
+ gtrapprox: "⪆",
2052
+ gtrarr: "⥸",
2053
+ gtrdot: "⋗",
2054
+ gtreqless: "⋛",
2055
+ gtreqqless: "⪌",
2056
+ gtrless: "≷",
2057
+ gtrsim: "≳",
2058
+ gvertneqq: "≩︀",
2059
+ gvnE: "≩︀",
2060
+ Hacek: "ˇ",
2061
+ hairsp: " ",
2062
+ half: "½",
2063
+ hamilt: "ℋ",
2064
+ HARDcy: "Ъ",
2065
+ hardcy: "ъ",
2066
+ hArr: "⇔",
2067
+ harr: "↔",
2068
+ harrcir: "⥈",
2069
+ harrw: "↭",
2070
+ Hat: "^",
2071
+ hbar: "ℏ",
2072
+ Hcirc: "Ĥ",
2073
+ hcirc: "ĥ",
2074
+ hearts: "♥",
2075
+ heartsuit: "♥",
2076
+ hellip: "…",
2077
+ hercon: "⊹",
2078
+ Hfr: "ℌ",
2079
+ hfr: "𝔥",
2080
+ HilbertSpace: "ℋ",
2081
+ hksearow: "⤥",
2082
+ hkswarow: "⤦",
2083
+ hoarr: "⇿",
2084
+ homtht: "∻",
2085
+ hookleftarrow: "↩",
2086
+ hookrightarrow: "↪",
2087
+ Hopf: "ℍ",
2088
+ hopf: "𝕙",
2089
+ horbar: "―",
2090
+ HorizontalLine: "─",
2091
+ Hscr: "ℋ",
2092
+ hscr: "𝒽",
2093
+ hslash: "ℏ",
2094
+ Hstrok: "Ħ",
2095
+ hstrok: "ħ",
2096
+ HumpDownHump: "≎",
2097
+ HumpEqual: "≏",
2098
+ hybull: "⁃",
2099
+ hyphen: "‐",
2100
+ Iacute: "Í",
2101
+ iacute: "í",
2102
+ ic: "⁣",
2103
+ Icirc: "Î",
2104
+ icirc: "î",
2105
+ Icy: "И",
2106
+ icy: "и",
2107
+ Idot: "İ",
2108
+ IEcy: "Е",
2109
+ iecy: "е",
2110
+ iexcl: "¡",
2111
+ iff: "⇔",
2112
+ Ifr: "ℑ",
2113
+ ifr: "𝔦",
2114
+ Igrave: "Ì",
2115
+ igrave: "ì",
2116
+ ii: "ⅈ",
2117
+ iiiint: "⨌",
2118
+ iiint: "∭",
2119
+ iinfin: "⧜",
2120
+ iiota: "℩",
2121
+ IJlig: "IJ",
2122
+ ijlig: "ij",
2123
+ Im: "ℑ",
2124
+ Imacr: "Ī",
2125
+ imacr: "ī",
2126
+ image: "ℑ",
2127
+ ImaginaryI: "ⅈ",
2128
+ imagline: "ℐ",
2129
+ imagpart: "ℑ",
2130
+ imath: "ı",
2131
+ imof: "⊷",
2132
+ imped: "Ƶ",
2133
+ Implies: "⇒",
2134
+ in: "∈",
2135
+ incare: "℅",
2136
+ infin: "∞",
2137
+ infintie: "⧝",
2138
+ inodot: "ı",
2139
+ Int: "∬",
2140
+ int: "∫",
2141
+ intcal: "⊺",
2142
+ integers: "ℤ",
2143
+ Integral: "∫",
2144
+ intercal: "⊺",
2145
+ Intersection: "⋂",
2146
+ intlarhk: "⨗",
2147
+ intprod: "⨼",
2148
+ InvisibleComma: "⁣",
2149
+ InvisibleTimes: "⁢",
2150
+ IOcy: "Ё",
2151
+ iocy: "ё",
2152
+ Iogon: "Į",
2153
+ iogon: "į",
2154
+ Iopf: "𝕀",
2155
+ iopf: "𝕚",
2156
+ Iota: "Ι",
2157
+ iota: "ι",
2158
+ iprod: "⨼",
2159
+ iquest: "¿",
2160
+ Iscr: "ℐ",
2161
+ iscr: "𝒾",
2162
+ isin: "∈",
2163
+ isindot: "⋵",
2164
+ isinE: "⋹",
2165
+ isins: "⋴",
2166
+ isinsv: "⋳",
2167
+ isinv: "∈",
2168
+ it: "⁢",
2169
+ Itilde: "Ĩ",
2170
+ itilde: "ĩ",
2171
+ Iukcy: "І",
2172
+ iukcy: "і",
2173
+ Iuml: "Ï",
2174
+ iuml: "ï",
2175
+ Jcirc: "Ĵ",
2176
+ jcirc: "ĵ",
2177
+ Jcy: "Й",
2178
+ jcy: "й",
2179
+ Jfr: "𝔍",
2180
+ jfr: "𝔧",
2181
+ jmath: "ȷ",
2182
+ Jopf: "𝕁",
2183
+ jopf: "𝕛",
2184
+ Jscr: "𝒥",
2185
+ jscr: "𝒿",
2186
+ Jsercy: "Ј",
2187
+ jsercy: "ј",
2188
+ Jukcy: "Є",
2189
+ jukcy: "є",
2190
+ Kappa: "Κ",
2191
+ kappa: "κ",
2192
+ kappav: "ϰ",
2193
+ Kcedil: "Ķ",
2194
+ kcedil: "ķ",
2195
+ Kcy: "К",
2196
+ kcy: "к",
2197
+ Kfr: "𝔎",
2198
+ kfr: "𝔨",
2199
+ kgreen: "ĸ",
2200
+ KHcy: "Х",
2201
+ khcy: "х",
2202
+ KJcy: "Ќ",
2203
+ kjcy: "ќ",
2204
+ Kopf: "𝕂",
2205
+ kopf: "𝕜",
2206
+ Kscr: "𝒦",
2207
+ kscr: "𝓀",
2208
+ lAarr: "⇚",
2209
+ Lacute: "Ĺ",
2210
+ lacute: "ĺ",
2211
+ laemptyv: "⦴",
2212
+ lagran: "ℒ",
2213
+ Lambda: "Λ",
2214
+ lambda: "λ",
2215
+ Lang: "⟪",
2216
+ lang: "⟨",
2217
+ langd: "⦑",
2218
+ langle: "⟨",
2219
+ lap: "⪅",
2220
+ Laplacetrf: "ℒ",
2221
+ laquo: "«",
2222
+ Larr: "↞",
2223
+ lArr: "⇐",
2224
+ larr: "←",
2225
+ larrb: "⇤",
2226
+ larrbfs: "⤟",
2227
+ larrfs: "⤝",
2228
+ larrhk: "↩",
2229
+ larrlp: "↫",
2230
+ larrpl: "⤹",
2231
+ larrsim: "⥳",
2232
+ larrtl: "↢",
2233
+ lat: "⪫",
2234
+ lAtail: "⤛",
2235
+ latail: "⤙",
2236
+ late: "⪭",
2237
+ lates: "⪭︀",
2238
+ lBarr: "⤎",
2239
+ lbarr: "⤌",
2240
+ lbbrk: "❲",
2241
+ lbrace: "{",
2242
+ lbrack: "[",
2243
+ lbrke: "⦋",
2244
+ lbrksld: "⦏",
2245
+ lbrkslu: "⦍",
2246
+ Lcaron: "Ľ",
2247
+ lcaron: "ľ",
2248
+ Lcedil: "Ļ",
2249
+ lcedil: "ļ",
2250
+ lceil: "⌈",
2251
+ lcub: "{",
2252
+ Lcy: "Л",
2253
+ lcy: "л",
2254
+ ldca: "⤶",
2255
+ ldquo: "“",
2256
+ ldquor: "„",
2257
+ ldrdhar: "⥧",
2258
+ ldrushar: "⥋",
2259
+ ldsh: "↲",
2260
+ lE: "≦",
2261
+ le: "≤",
2262
+ LeftAngleBracket: "⟨",
2263
+ LeftArrow: "←",
2264
+ Leftarrow: "⇐",
2265
+ leftarrow: "←",
2266
+ LeftArrowBar: "⇤",
2267
+ LeftArrowRightArrow: "⇆",
2268
+ leftarrowtail: "↢",
2269
+ LeftCeiling: "⌈",
2270
+ LeftDoubleBracket: "⟦",
2271
+ LeftDownTeeVector: "⥡",
2272
+ LeftDownVector: "⇃",
2273
+ LeftDownVectorBar: "⥙",
2274
+ LeftFloor: "⌊",
2275
+ leftharpoondown: "↽",
2276
+ leftharpoonup: "↼",
2277
+ leftleftarrows: "⇇",
2278
+ LeftRightArrow: "↔",
2279
+ Leftrightarrow: "⇔",
2280
+ leftrightarrow: "↔",
2281
+ leftrightarrows: "⇆",
2282
+ leftrightharpoons: "⇋",
2283
+ leftrightsquigarrow: "↭",
2284
+ LeftRightVector: "⥎",
2285
+ LeftTee: "⊣",
2286
+ LeftTeeArrow: "↤",
2287
+ LeftTeeVector: "⥚",
2288
+ leftthreetimes: "⋋",
2289
+ LeftTriangle: "⊲",
2290
+ LeftTriangleBar: "⧏",
2291
+ LeftTriangleEqual: "⊴",
2292
+ LeftUpDownVector: "⥑",
2293
+ LeftUpTeeVector: "⥠",
2294
+ LeftUpVector: "↿",
2295
+ LeftUpVectorBar: "⥘",
2296
+ LeftVector: "↼",
2297
+ LeftVectorBar: "⥒",
2298
+ lEg: "⪋",
2299
+ leg: "⋚",
2300
+ leq: "≤",
2301
+ leqq: "≦",
2302
+ leqslant: "⩽",
2303
+ les: "⩽",
2304
+ lescc: "⪨",
2305
+ lesdot: "⩿",
2306
+ lesdoto: "⪁",
2307
+ lesdotor: "⪃",
2308
+ lesg: "⋚︀",
2309
+ lesges: "⪓",
2310
+ lessapprox: "⪅",
2311
+ lessdot: "⋖",
2312
+ lesseqgtr: "⋚",
2313
+ lesseqqgtr: "⪋",
2314
+ LessEqualGreater: "⋚",
2315
+ LessFullEqual: "≦",
2316
+ LessGreater: "≶",
2317
+ lessgtr: "≶",
2318
+ LessLess: "⪡",
2319
+ lesssim: "≲",
2320
+ LessSlantEqual: "⩽",
2321
+ LessTilde: "≲",
2322
+ lfisht: "⥼",
2323
+ lfloor: "⌊",
2324
+ Lfr: "𝔏",
2325
+ lfr: "𝔩",
2326
+ lg: "≶",
2327
+ lgE: "⪑",
2328
+ lHar: "⥢",
2329
+ lhard: "↽",
2330
+ lharu: "↼",
2331
+ lharul: "⥪",
2332
+ lhblk: "▄",
2333
+ LJcy: "Љ",
2334
+ ljcy: "љ",
2335
+ Ll: "⋘",
2336
+ ll: "≪",
2337
+ llarr: "⇇",
2338
+ llcorner: "⌞",
2339
+ Lleftarrow: "⇚",
2340
+ llhard: "⥫",
2341
+ lltri: "◺",
2342
+ Lmidot: "Ŀ",
2343
+ lmidot: "ŀ",
2344
+ lmoust: "⎰",
2345
+ lmoustache: "⎰",
2346
+ lnap: "⪉",
2347
+ lnapprox: "⪉",
2348
+ lnE: "≨",
2349
+ lne: "⪇",
2350
+ lneq: "⪇",
2351
+ lneqq: "≨",
2352
+ lnsim: "⋦",
2353
+ loang: "⟬",
2354
+ loarr: "⇽",
2355
+ lobrk: "⟦",
2356
+ LongLeftArrow: "⟵",
2357
+ Longleftarrow: "⟸",
2358
+ longleftarrow: "⟵",
2359
+ LongLeftRightArrow: "⟷",
2360
+ Longleftrightarrow: "⟺",
2361
+ longleftrightarrow: "⟷",
2362
+ longmapsto: "⟼",
2363
+ LongRightArrow: "⟶",
2364
+ Longrightarrow: "⟹",
2365
+ longrightarrow: "⟶",
2366
+ looparrowleft: "↫",
2367
+ looparrowright: "↬",
2368
+ lopar: "⦅",
2369
+ Lopf: "𝕃",
2370
+ lopf: "𝕝",
2371
+ loplus: "⨭",
2372
+ lotimes: "⨴",
2373
+ lowast: "∗",
2374
+ lowbar: "_",
2375
+ LowerLeftArrow: "↙",
2376
+ LowerRightArrow: "↘",
2377
+ loz: "◊",
2378
+ lozenge: "◊",
2379
+ lozf: "⧫",
2380
+ lpar: "(",
2381
+ lparlt: "⦓",
2382
+ lrarr: "⇆",
2383
+ lrcorner: "⌟",
2384
+ lrhar: "⇋",
2385
+ lrhard: "⥭",
2386
+ lrm: "‎",
2387
+ lrtri: "⊿",
2388
+ lsaquo: "‹",
2389
+ Lscr: "ℒ",
2390
+ lscr: "𝓁",
2391
+ Lsh: "↰",
2392
+ lsh: "↰",
2393
+ lsim: "≲",
2394
+ lsime: "⪍",
2395
+ lsimg: "⪏",
2396
+ lsqb: "[",
2397
+ lsquo: "‘",
2398
+ lsquor: "‚",
2399
+ Lstrok: "Ł",
2400
+ lstrok: "ł",
2401
+ Lt: "≪",
2402
+ LT: "<",
2403
+ lt: "<",
2404
+ ltcc: "⪦",
2405
+ ltcir: "⩹",
2406
+ ltdot: "⋖",
2407
+ lthree: "⋋",
2408
+ ltimes: "⋉",
2409
+ ltlarr: "⥶",
2410
+ ltquest: "⩻",
2411
+ ltri: "◃",
2412
+ ltrie: "⊴",
2413
+ ltrif: "◂",
2414
+ ltrPar: "⦖",
2415
+ lurdshar: "⥊",
2416
+ luruhar: "⥦",
2417
+ lvertneqq: "≨︀",
2418
+ lvnE: "≨︀",
2419
+ macr: "¯",
2420
+ male: "♂",
2421
+ malt: "✠",
2422
+ maltese: "✠",
2423
+ Map: "⤅",
2424
+ map: "↦",
2425
+ mapsto: "↦",
2426
+ mapstodown: "↧",
2427
+ mapstoleft: "↤",
2428
+ mapstoup: "↥",
2429
+ marker: "▮",
2430
+ mcomma: "⨩",
2431
+ Mcy: "М",
2432
+ mcy: "м",
2433
+ mdash: "—",
2434
+ mDDot: "∺",
2435
+ measuredangle: "∡",
2436
+ MediumSpace: " ",
2437
+ Mellintrf: "ℳ",
2438
+ Mfr: "𝔐",
2439
+ mfr: "𝔪",
2440
+ mho: "℧",
2441
+ micro: "µ",
2442
+ mid: "∣",
2443
+ midast: "*",
2444
+ midcir: "⫰",
2445
+ middot: "·",
2446
+ minus: "−",
2447
+ minusb: "⊟",
2448
+ minusd: "∸",
2449
+ minusdu: "⨪",
2450
+ MinusPlus: "∓",
2451
+ mlcp: "⫛",
2452
+ mldr: "…",
2453
+ mnplus: "∓",
2454
+ models: "⊧",
2455
+ Mopf: "𝕄",
2456
+ mopf: "𝕞",
2457
+ mp: "∓",
2458
+ Mscr: "ℳ",
2459
+ mscr: "𝓂",
2460
+ mstpos: "∾",
2461
+ Mu: "Μ",
2462
+ mu: "μ",
2463
+ multimap: "⊸",
2464
+ mumap: "⊸",
2465
+ nabla: "∇",
2466
+ Nacute: "Ń",
2467
+ nacute: "ń",
2468
+ nang: "∠⃒",
2469
+ nap: "≉",
2470
+ napE: "⩰̸",
2471
+ napid: "≋̸",
2472
+ napos: "ʼn",
2473
+ napprox: "≉",
2474
+ natur: "♮",
2475
+ natural: "♮",
2476
+ naturals: "ℕ",
2477
+ nbsp: " ",
2478
+ nbump: "≎̸",
2479
+ nbumpe: "≏̸",
2480
+ ncap: "⩃",
2481
+ Ncaron: "Ň",
2482
+ ncaron: "ň",
2483
+ Ncedil: "Ņ",
2484
+ ncedil: "ņ",
2485
+ ncong: "≇",
2486
+ ncongdot: "⩭̸",
2487
+ ncup: "⩂",
2488
+ Ncy: "Н",
2489
+ ncy: "н",
2490
+ ndash: "–",
2491
+ ne: "≠",
2492
+ nearhk: "⤤",
2493
+ neArr: "⇗",
2494
+ nearr: "↗",
2495
+ nearrow: "↗",
2496
+ nedot: "≐̸",
2497
+ NegativeMediumSpace: "​",
2498
+ NegativeThickSpace: "​",
2499
+ NegativeThinSpace: "​",
2500
+ NegativeVeryThinSpace: "​",
2501
+ nequiv: "≢",
2502
+ nesear: "⤨",
2503
+ nesim: "≂̸",
2504
+ NestedGreaterGreater: "≫",
2505
+ NestedLessLess: "≪",
2506
+ NewLine: `
2507
+ `,
2508
+ nexist: "∄",
2509
+ nexists: "∄",
2510
+ Nfr: "𝔑",
2511
+ nfr: "𝔫",
2512
+ ngE: "≧̸",
2513
+ nge: "≱",
2514
+ ngeq: "≱",
2515
+ ngeqq: "≧̸",
2516
+ ngeqslant: "⩾̸",
2517
+ nges: "⩾̸",
2518
+ nGg: "⋙̸",
2519
+ ngsim: "≵",
2520
+ nGt: "≫⃒",
2521
+ ngt: "≯",
2522
+ ngtr: "≯",
2523
+ nGtv: "≫̸",
2524
+ nhArr: "⇎",
2525
+ nharr: "↮",
2526
+ nhpar: "⫲",
2527
+ ni: "∋",
2528
+ nis: "⋼",
2529
+ nisd: "⋺",
2530
+ niv: "∋",
2531
+ NJcy: "Њ",
2532
+ njcy: "њ",
2533
+ nlArr: "⇍",
2534
+ nlarr: "↚",
2535
+ nldr: "‥",
2536
+ nlE: "≦̸",
2537
+ nle: "≰",
2538
+ nLeftarrow: "⇍",
2539
+ nleftarrow: "↚",
2540
+ nLeftrightarrow: "⇎",
2541
+ nleftrightarrow: "↮",
2542
+ nleq: "≰",
2543
+ nleqq: "≦̸",
2544
+ nleqslant: "⩽̸",
2545
+ nles: "⩽̸",
2546
+ nless: "≮",
2547
+ nLl: "⋘̸",
2548
+ nlsim: "≴",
2549
+ nLt: "≪⃒",
2550
+ nlt: "≮",
2551
+ nltri: "⋪",
2552
+ nltrie: "⋬",
2553
+ nLtv: "≪̸",
2554
+ nmid: "∤",
2555
+ NoBreak: "⁠",
2556
+ NonBreakingSpace: " ",
2557
+ Nopf: "ℕ",
2558
+ nopf: "𝕟",
2559
+ Not: "⫬",
2560
+ not: "¬",
2561
+ NotCongruent: "≢",
2562
+ NotCupCap: "≭",
2563
+ NotDoubleVerticalBar: "∦",
2564
+ NotElement: "∉",
2565
+ NotEqual: "≠",
2566
+ NotEqualTilde: "≂̸",
2567
+ NotExists: "∄",
2568
+ NotGreater: "≯",
2569
+ NotGreaterEqual: "≱",
2570
+ NotGreaterFullEqual: "≧̸",
2571
+ NotGreaterGreater: "≫̸",
2572
+ NotGreaterLess: "≹",
2573
+ NotGreaterSlantEqual: "⩾̸",
2574
+ NotGreaterTilde: "≵",
2575
+ NotHumpDownHump: "≎̸",
2576
+ NotHumpEqual: "≏̸",
2577
+ notin: "∉",
2578
+ notindot: "⋵̸",
2579
+ notinE: "⋹̸",
2580
+ notinva: "∉",
2581
+ notinvb: "⋷",
2582
+ notinvc: "⋶",
2583
+ NotLeftTriangle: "⋪",
2584
+ NotLeftTriangleBar: "⧏̸",
2585
+ NotLeftTriangleEqual: "⋬",
2586
+ NotLess: "≮",
2587
+ NotLessEqual: "≰",
2588
+ NotLessGreater: "≸",
2589
+ NotLessLess: "≪̸",
2590
+ NotLessSlantEqual: "⩽̸",
2591
+ NotLessTilde: "≴",
2592
+ NotNestedGreaterGreater: "⪢̸",
2593
+ NotNestedLessLess: "⪡̸",
2594
+ notni: "∌",
2595
+ notniva: "∌",
2596
+ notnivb: "⋾",
2597
+ notnivc: "⋽",
2598
+ NotPrecedes: "⊀",
2599
+ NotPrecedesEqual: "⪯̸",
2600
+ NotPrecedesSlantEqual: "⋠",
2601
+ NotReverseElement: "∌",
2602
+ NotRightTriangle: "⋫",
2603
+ NotRightTriangleBar: "⧐̸",
2604
+ NotRightTriangleEqual: "⋭",
2605
+ NotSquareSubset: "⊏̸",
2606
+ NotSquareSubsetEqual: "⋢",
2607
+ NotSquareSuperset: "⊐̸",
2608
+ NotSquareSupersetEqual: "⋣",
2609
+ NotSubset: "⊂⃒",
2610
+ NotSubsetEqual: "⊈",
2611
+ NotSucceeds: "⊁",
2612
+ NotSucceedsEqual: "⪰̸",
2613
+ NotSucceedsSlantEqual: "⋡",
2614
+ NotSucceedsTilde: "≿̸",
2615
+ NotSuperset: "⊃⃒",
2616
+ NotSupersetEqual: "⊉",
2617
+ NotTilde: "≁",
2618
+ NotTildeEqual: "≄",
2619
+ NotTildeFullEqual: "≇",
2620
+ NotTildeTilde: "≉",
2621
+ NotVerticalBar: "∤",
2622
+ npar: "∦",
2623
+ nparallel: "∦",
2624
+ nparsl: "⫽⃥",
2625
+ npart: "∂̸",
2626
+ npolint: "⨔",
2627
+ npr: "⊀",
2628
+ nprcue: "⋠",
2629
+ npre: "⪯̸",
2630
+ nprec: "⊀",
2631
+ npreceq: "⪯̸",
2632
+ nrArr: "⇏",
2633
+ nrarr: "↛",
2634
+ nrarrc: "⤳̸",
2635
+ nrarrw: "↝̸",
2636
+ nRightarrow: "⇏",
2637
+ nrightarrow: "↛",
2638
+ nrtri: "⋫",
2639
+ nrtrie: "⋭",
2640
+ nsc: "⊁",
2641
+ nsccue: "⋡",
2642
+ nsce: "⪰̸",
2643
+ Nscr: "𝒩",
2644
+ nscr: "𝓃",
2645
+ nshortmid: "∤",
2646
+ nshortparallel: "∦",
2647
+ nsim: "≁",
2648
+ nsime: "≄",
2649
+ nsimeq: "≄",
2650
+ nsmid: "∤",
2651
+ nspar: "∦",
2652
+ nsqsube: "⋢",
2653
+ nsqsupe: "⋣",
2654
+ nsub: "⊄",
2655
+ nsubE: "⫅̸",
2656
+ nsube: "⊈",
2657
+ nsubset: "⊂⃒",
2658
+ nsubseteq: "⊈",
2659
+ nsubseteqq: "⫅̸",
2660
+ nsucc: "⊁",
2661
+ nsucceq: "⪰̸",
2662
+ nsup: "⊅",
2663
+ nsupE: "⫆̸",
2664
+ nsupe: "⊉",
2665
+ nsupset: "⊃⃒",
2666
+ nsupseteq: "⊉",
2667
+ nsupseteqq: "⫆̸",
2668
+ ntgl: "≹",
2669
+ Ntilde: "Ñ",
2670
+ ntilde: "ñ",
2671
+ ntlg: "≸",
2672
+ ntriangleleft: "⋪",
2673
+ ntrianglelefteq: "⋬",
2674
+ ntriangleright: "⋫",
2675
+ ntrianglerighteq: "⋭",
2676
+ Nu: "Ν",
2677
+ nu: "ν",
2678
+ num: "#",
2679
+ numero: "№",
2680
+ numsp: " ",
2681
+ nvap: "≍⃒",
2682
+ nVDash: "⊯",
2683
+ nVdash: "⊮",
2684
+ nvDash: "⊭",
2685
+ nvdash: "⊬",
2686
+ nvge: "≥⃒",
2687
+ nvgt: ">⃒",
2688
+ nvHarr: "⤄",
2689
+ nvinfin: "⧞",
2690
+ nvlArr: "⤂",
2691
+ nvle: "≤⃒",
2692
+ nvlt: "<⃒",
2693
+ nvltrie: "⊴⃒",
2694
+ nvrArr: "⤃",
2695
+ nvrtrie: "⊵⃒",
2696
+ nvsim: "∼⃒",
2697
+ nwarhk: "⤣",
2698
+ nwArr: "⇖",
2699
+ nwarr: "↖",
2700
+ nwarrow: "↖",
2701
+ nwnear: "⤧",
2702
+ Oacute: "Ó",
2703
+ oacute: "ó",
2704
+ oast: "⊛",
2705
+ ocir: "⊚",
2706
+ Ocirc: "Ô",
2707
+ ocirc: "ô",
2708
+ Ocy: "О",
2709
+ ocy: "о",
2710
+ odash: "⊝",
2711
+ Odblac: "Ő",
2712
+ odblac: "ő",
2713
+ odiv: "⨸",
2714
+ odot: "⊙",
2715
+ odsold: "⦼",
2716
+ OElig: "Œ",
2717
+ oelig: "œ",
2718
+ ofcir: "⦿",
2719
+ Ofr: "𝔒",
2720
+ ofr: "𝔬",
2721
+ ogon: "˛",
2722
+ Ograve: "Ò",
2723
+ ograve: "ò",
2724
+ ogt: "⧁",
2725
+ ohbar: "⦵",
2726
+ ohm: "Ω",
2727
+ oint: "∮",
2728
+ olarr: "↺",
2729
+ olcir: "⦾",
2730
+ olcross: "⦻",
2731
+ oline: "‾",
2732
+ olt: "⧀",
2733
+ Omacr: "Ō",
2734
+ omacr: "ō",
2735
+ Omega: "Ω",
2736
+ omega: "ω",
2737
+ Omicron: "Ο",
2738
+ omicron: "ο",
2739
+ omid: "⦶",
2740
+ ominus: "⊖",
2741
+ Oopf: "𝕆",
2742
+ oopf: "𝕠",
2743
+ opar: "⦷",
2744
+ OpenCurlyDoubleQuote: "“",
2745
+ OpenCurlyQuote: "‘",
2746
+ operp: "⦹",
2747
+ oplus: "⊕",
2748
+ Or: "⩔",
2749
+ or: "∨",
2750
+ orarr: "↻",
2751
+ ord: "⩝",
2752
+ order: "ℴ",
2753
+ orderof: "ℴ",
2754
+ ordf: "ª",
2755
+ ordm: "º",
2756
+ origof: "⊶",
2757
+ oror: "⩖",
2758
+ orslope: "⩗",
2759
+ orv: "⩛",
2760
+ oS: "Ⓢ",
2761
+ Oscr: "𝒪",
2762
+ oscr: "ℴ",
2763
+ Oslash: "Ø",
2764
+ oslash: "ø",
2765
+ osol: "⊘",
2766
+ Otilde: "Õ",
2767
+ otilde: "õ",
2768
+ Otimes: "⨷",
2769
+ otimes: "⊗",
2770
+ otimesas: "⨶",
2771
+ Ouml: "Ö",
2772
+ ouml: "ö",
2773
+ ovbar: "⌽",
2774
+ OverBar: "‾",
2775
+ OverBrace: "⏞",
2776
+ OverBracket: "⎴",
2777
+ OverParenthesis: "⏜",
2778
+ par: "∥",
2779
+ para: "¶",
2780
+ parallel: "∥",
2781
+ parsim: "⫳",
2782
+ parsl: "⫽",
2783
+ part: "∂",
2784
+ PartialD: "∂",
2785
+ Pcy: "П",
2786
+ pcy: "п",
2787
+ percnt: "%",
2788
+ period: ".",
2789
+ permil: "‰",
2790
+ perp: "⊥",
2791
+ pertenk: "‱",
2792
+ Pfr: "𝔓",
2793
+ pfr: "𝔭",
2794
+ Phi: "Φ",
2795
+ phi: "φ",
2796
+ phiv: "ϕ",
2797
+ phmmat: "ℳ",
2798
+ phone: "☎",
2799
+ Pi: "Π",
2800
+ pi: "π",
2801
+ pitchfork: "⋔",
2802
+ piv: "ϖ",
2803
+ planck: "ℏ",
2804
+ planckh: "ℎ",
2805
+ plankv: "ℏ",
2806
+ plus: "+",
2807
+ plusacir: "⨣",
2808
+ plusb: "⊞",
2809
+ pluscir: "⨢",
2810
+ plusdo: "∔",
2811
+ plusdu: "⨥",
2812
+ pluse: "⩲",
2813
+ PlusMinus: "±",
2814
+ plusmn: "±",
2815
+ plussim: "⨦",
2816
+ plustwo: "⨧",
2817
+ pm: "±",
2818
+ Poincareplane: "ℌ",
2819
+ pointint: "⨕",
2820
+ Popf: "ℙ",
2821
+ popf: "𝕡",
2822
+ pound: "£",
2823
+ Pr: "⪻",
2824
+ pr: "≺",
2825
+ prap: "⪷",
2826
+ prcue: "≼",
2827
+ prE: "⪳",
2828
+ pre: "⪯",
2829
+ prec: "≺",
2830
+ precapprox: "⪷",
2831
+ preccurlyeq: "≼",
2832
+ Precedes: "≺",
2833
+ PrecedesEqual: "⪯",
2834
+ PrecedesSlantEqual: "≼",
2835
+ PrecedesTilde: "≾",
2836
+ preceq: "⪯",
2837
+ precnapprox: "⪹",
2838
+ precneqq: "⪵",
2839
+ precnsim: "⋨",
2840
+ precsim: "≾",
2841
+ Prime: "″",
2842
+ prime: "′",
2843
+ primes: "ℙ",
2844
+ prnap: "⪹",
2845
+ prnE: "⪵",
2846
+ prnsim: "⋨",
2847
+ prod: "∏",
2848
+ Product: "∏",
2849
+ profalar: "⌮",
2850
+ profline: "⌒",
2851
+ profsurf: "⌓",
2852
+ prop: "∝",
2853
+ Proportion: "∷",
2854
+ Proportional: "∝",
2855
+ propto: "∝",
2856
+ prsim: "≾",
2857
+ prurel: "⊰",
2858
+ Pscr: "𝒫",
2859
+ pscr: "𝓅",
2860
+ Psi: "Ψ",
2861
+ psi: "ψ",
2862
+ puncsp: " ",
2863
+ Qfr: "𝔔",
2864
+ qfr: "𝔮",
2865
+ qint: "⨌",
2866
+ Qopf: "ℚ",
2867
+ qopf: "𝕢",
2868
+ qprime: "⁗",
2869
+ Qscr: "𝒬",
2870
+ qscr: "𝓆",
2871
+ quaternions: "ℍ",
2872
+ quatint: "⨖",
2873
+ quest: "?",
2874
+ questeq: "≟",
2875
+ QUOT: '"',
2876
+ quot: '"',
2877
+ rAarr: "⇛",
2878
+ race: "∽̱",
2879
+ Racute: "Ŕ",
2880
+ racute: "ŕ",
2881
+ radic: "√",
2882
+ raemptyv: "⦳",
2883
+ Rang: "⟫",
2884
+ rang: "⟩",
2885
+ rangd: "⦒",
2886
+ range: "⦥",
2887
+ rangle: "⟩",
2888
+ raquo: "»",
2889
+ Rarr: "↠",
2890
+ rArr: "⇒",
2891
+ rarr: "→",
2892
+ rarrap: "⥵",
2893
+ rarrb: "⇥",
2894
+ rarrbfs: "⤠",
2895
+ rarrc: "⤳",
2896
+ rarrfs: "⤞",
2897
+ rarrhk: "↪",
2898
+ rarrlp: "↬",
2899
+ rarrpl: "⥅",
2900
+ rarrsim: "⥴",
2901
+ Rarrtl: "⤖",
2902
+ rarrtl: "↣",
2903
+ rarrw: "↝",
2904
+ rAtail: "⤜",
2905
+ ratail: "⤚",
2906
+ ratio: "∶",
2907
+ rationals: "ℚ",
2908
+ RBarr: "⤐",
2909
+ rBarr: "⤏",
2910
+ rbarr: "⤍",
2911
+ rbbrk: "❳",
2912
+ rbrace: "}",
2913
+ rbrack: "]",
2914
+ rbrke: "⦌",
2915
+ rbrksld: "⦎",
2916
+ rbrkslu: "⦐",
2917
+ Rcaron: "Ř",
2918
+ rcaron: "ř",
2919
+ Rcedil: "Ŗ",
2920
+ rcedil: "ŗ",
2921
+ rceil: "⌉",
2922
+ rcub: "}",
2923
+ Rcy: "Р",
2924
+ rcy: "р",
2925
+ rdca: "⤷",
2926
+ rdldhar: "⥩",
2927
+ rdquo: "”",
2928
+ rdquor: "”",
2929
+ rdsh: "↳",
2930
+ Re: "ℜ",
2931
+ real: "ℜ",
2932
+ realine: "ℛ",
2933
+ realpart: "ℜ",
2934
+ reals: "ℝ",
2935
+ rect: "▭",
2936
+ REG: "®",
2937
+ reg: "®",
2938
+ ReverseElement: "∋",
2939
+ ReverseEquilibrium: "⇋",
2940
+ ReverseUpEquilibrium: "⥯",
2941
+ rfisht: "⥽",
2942
+ rfloor: "⌋",
2943
+ Rfr: "ℜ",
2944
+ rfr: "𝔯",
2945
+ rHar: "⥤",
2946
+ rhard: "⇁",
2947
+ rharu: "⇀",
2948
+ rharul: "⥬",
2949
+ Rho: "Ρ",
2950
+ rho: "ρ",
2951
+ rhov: "ϱ",
2952
+ RightAngleBracket: "⟩",
2953
+ RightArrow: "→",
2954
+ Rightarrow: "⇒",
2955
+ rightarrow: "→",
2956
+ RightArrowBar: "⇥",
2957
+ RightArrowLeftArrow: "⇄",
2958
+ rightarrowtail: "↣",
2959
+ RightCeiling: "⌉",
2960
+ RightDoubleBracket: "⟧",
2961
+ RightDownTeeVector: "⥝",
2962
+ RightDownVector: "⇂",
2963
+ RightDownVectorBar: "⥕",
2964
+ RightFloor: "⌋",
2965
+ rightharpoondown: "⇁",
2966
+ rightharpoonup: "⇀",
2967
+ rightleftarrows: "⇄",
2968
+ rightleftharpoons: "⇌",
2969
+ rightrightarrows: "⇉",
2970
+ rightsquigarrow: "↝",
2971
+ RightTee: "⊢",
2972
+ RightTeeArrow: "↦",
2973
+ RightTeeVector: "⥛",
2974
+ rightthreetimes: "⋌",
2975
+ RightTriangle: "⊳",
2976
+ RightTriangleBar: "⧐",
2977
+ RightTriangleEqual: "⊵",
2978
+ RightUpDownVector: "⥏",
2979
+ RightUpTeeVector: "⥜",
2980
+ RightUpVector: "↾",
2981
+ RightUpVectorBar: "⥔",
2982
+ RightVector: "⇀",
2983
+ RightVectorBar: "⥓",
2984
+ ring: "˚",
2985
+ risingdotseq: "≓",
2986
+ rlarr: "⇄",
2987
+ rlhar: "⇌",
2988
+ rlm: "‏",
2989
+ rmoust: "⎱",
2990
+ rmoustache: "⎱",
2991
+ rnmid: "⫮",
2992
+ roang: "⟭",
2993
+ roarr: "⇾",
2994
+ robrk: "⟧",
2995
+ ropar: "⦆",
2996
+ Ropf: "ℝ",
2997
+ ropf: "𝕣",
2998
+ roplus: "⨮",
2999
+ rotimes: "⨵",
3000
+ RoundImplies: "⥰",
3001
+ rpar: ")",
3002
+ rpargt: "⦔",
3003
+ rppolint: "⨒",
3004
+ rrarr: "⇉",
3005
+ Rrightarrow: "⇛",
3006
+ rsaquo: "›",
3007
+ Rscr: "ℛ",
3008
+ rscr: "𝓇",
3009
+ Rsh: "↱",
3010
+ rsh: "↱",
3011
+ rsqb: "]",
3012
+ rsquo: "’",
3013
+ rsquor: "’",
3014
+ rthree: "⋌",
3015
+ rtimes: "⋊",
3016
+ rtri: "▹",
3017
+ rtrie: "⊵",
3018
+ rtrif: "▸",
3019
+ rtriltri: "⧎",
3020
+ RuleDelayed: "⧴",
3021
+ ruluhar: "⥨",
3022
+ rx: "℞",
3023
+ Sacute: "Ś",
3024
+ sacute: "ś",
3025
+ sbquo: "‚",
3026
+ Sc: "⪼",
3027
+ sc: "≻",
3028
+ scap: "⪸",
3029
+ Scaron: "Š",
3030
+ scaron: "š",
3031
+ sccue: "≽",
3032
+ scE: "⪴",
3033
+ sce: "⪰",
3034
+ Scedil: "Ş",
3035
+ scedil: "ş",
3036
+ Scirc: "Ŝ",
3037
+ scirc: "ŝ",
3038
+ scnap: "⪺",
3039
+ scnE: "⪶",
3040
+ scnsim: "⋩",
3041
+ scpolint: "⨓",
3042
+ scsim: "≿",
3043
+ Scy: "С",
3044
+ scy: "с",
3045
+ sdot: "⋅",
3046
+ sdotb: "⊡",
3047
+ sdote: "⩦",
3048
+ searhk: "⤥",
3049
+ seArr: "⇘",
3050
+ searr: "↘",
3051
+ searrow: "↘",
3052
+ sect: "§",
3053
+ semi: ";",
3054
+ seswar: "⤩",
3055
+ setminus: "∖",
3056
+ setmn: "∖",
3057
+ sext: "✶",
3058
+ Sfr: "𝔖",
3059
+ sfr: "𝔰",
3060
+ sfrown: "⌢",
3061
+ sharp: "♯",
3062
+ SHCHcy: "Щ",
3063
+ shchcy: "щ",
3064
+ SHcy: "Ш",
3065
+ shcy: "ш",
3066
+ ShortDownArrow: "↓",
3067
+ ShortLeftArrow: "←",
3068
+ shortmid: "∣",
3069
+ shortparallel: "∥",
3070
+ ShortRightArrow: "→",
3071
+ ShortUpArrow: "↑",
3072
+ shy: "­",
3073
+ Sigma: "Σ",
3074
+ sigma: "σ",
3075
+ sigmaf: "ς",
3076
+ sigmav: "ς",
3077
+ sim: "∼",
3078
+ simdot: "⩪",
3079
+ sime: "≃",
3080
+ simeq: "≃",
3081
+ simg: "⪞",
3082
+ simgE: "⪠",
3083
+ siml: "⪝",
3084
+ simlE: "⪟",
3085
+ simne: "≆",
3086
+ simplus: "⨤",
3087
+ simrarr: "⥲",
3088
+ slarr: "←",
3089
+ SmallCircle: "∘",
3090
+ smallsetminus: "∖",
3091
+ smashp: "⨳",
3092
+ smeparsl: "⧤",
3093
+ smid: "∣",
3094
+ smile: "⌣",
3095
+ smt: "⪪",
3096
+ smte: "⪬",
3097
+ smtes: "⪬︀",
3098
+ SOFTcy: "Ь",
3099
+ softcy: "ь",
3100
+ sol: "/",
3101
+ solb: "⧄",
3102
+ solbar: "⌿",
3103
+ Sopf: "𝕊",
3104
+ sopf: "𝕤",
3105
+ spades: "♠",
3106
+ spadesuit: "♠",
3107
+ spar: "∥",
3108
+ sqcap: "⊓",
3109
+ sqcaps: "⊓︀",
3110
+ sqcup: "⊔",
3111
+ sqcups: "⊔︀",
3112
+ Sqrt: "√",
3113
+ sqsub: "⊏",
3114
+ sqsube: "⊑",
3115
+ sqsubset: "⊏",
3116
+ sqsubseteq: "⊑",
3117
+ sqsup: "⊐",
3118
+ sqsupe: "⊒",
3119
+ sqsupset: "⊐",
3120
+ sqsupseteq: "⊒",
3121
+ squ: "□",
3122
+ Square: "□",
3123
+ square: "□",
3124
+ SquareIntersection: "⊓",
3125
+ SquareSubset: "⊏",
3126
+ SquareSubsetEqual: "⊑",
3127
+ SquareSuperset: "⊐",
3128
+ SquareSupersetEqual: "⊒",
3129
+ SquareUnion: "⊔",
3130
+ squarf: "▪",
3131
+ squf: "▪",
3132
+ srarr: "→",
3133
+ Sscr: "𝒮",
3134
+ sscr: "𝓈",
3135
+ ssetmn: "∖",
3136
+ ssmile: "⌣",
3137
+ sstarf: "⋆",
3138
+ Star: "⋆",
3139
+ star: "☆",
3140
+ starf: "★",
3141
+ straightepsilon: "ϵ",
3142
+ straightphi: "ϕ",
3143
+ strns: "¯",
3144
+ Sub: "⋐",
3145
+ sub: "⊂",
3146
+ subdot: "⪽",
3147
+ subE: "⫅",
3148
+ sube: "⊆",
3149
+ subedot: "⫃",
3150
+ submult: "⫁",
3151
+ subnE: "⫋",
3152
+ subne: "⊊",
3153
+ subplus: "⪿",
3154
+ subrarr: "⥹",
3155
+ Subset: "⋐",
3156
+ subset: "⊂",
3157
+ subseteq: "⊆",
3158
+ subseteqq: "⫅",
3159
+ SubsetEqual: "⊆",
3160
+ subsetneq: "⊊",
3161
+ subsetneqq: "⫋",
3162
+ subsim: "⫇",
3163
+ subsub: "⫕",
3164
+ subsup: "⫓",
3165
+ succ: "≻",
3166
+ succapprox: "⪸",
3167
+ succcurlyeq: "≽",
3168
+ Succeeds: "≻",
3169
+ SucceedsEqual: "⪰",
3170
+ SucceedsSlantEqual: "≽",
3171
+ SucceedsTilde: "≿",
3172
+ succeq: "⪰",
3173
+ succnapprox: "⪺",
3174
+ succneqq: "⪶",
3175
+ succnsim: "⋩",
3176
+ succsim: "≿",
3177
+ SuchThat: "∋",
3178
+ Sum: "∑",
3179
+ sum: "∑",
3180
+ sung: "♪",
3181
+ Sup: "⋑",
3182
+ sup: "⊃",
3183
+ sup1: "¹",
3184
+ sup2: "²",
3185
+ sup3: "³",
3186
+ supdot: "⪾",
3187
+ supdsub: "⫘",
3188
+ supE: "⫆",
3189
+ supe: "⊇",
3190
+ supedot: "⫄",
3191
+ Superset: "⊃",
3192
+ SupersetEqual: "⊇",
3193
+ suphsol: "⟉",
3194
+ suphsub: "⫗",
3195
+ suplarr: "⥻",
3196
+ supmult: "⫂",
3197
+ supnE: "⫌",
3198
+ supne: "⊋",
3199
+ supplus: "⫀",
3200
+ Supset: "⋑",
3201
+ supset: "⊃",
3202
+ supseteq: "⊇",
3203
+ supseteqq: "⫆",
3204
+ supsetneq: "⊋",
3205
+ supsetneqq: "⫌",
3206
+ supsim: "⫈",
3207
+ supsub: "⫔",
3208
+ supsup: "⫖",
3209
+ swarhk: "⤦",
3210
+ swArr: "⇙",
3211
+ swarr: "↙",
3212
+ swarrow: "↙",
3213
+ swnwar: "⤪",
3214
+ szlig: "ß",
3215
+ Tab: " ",
3216
+ target: "⌖",
3217
+ Tau: "Τ",
3218
+ tau: "τ",
3219
+ tbrk: "⎴",
3220
+ Tcaron: "Ť",
3221
+ tcaron: "ť",
3222
+ Tcedil: "Ţ",
3223
+ tcedil: "ţ",
3224
+ Tcy: "Т",
3225
+ tcy: "т",
3226
+ tdot: "⃛",
3227
+ telrec: "⌕",
3228
+ Tfr: "𝔗",
3229
+ tfr: "𝔱",
3230
+ there4: "∴",
3231
+ Therefore: "∴",
3232
+ therefore: "∴",
3233
+ Theta: "Θ",
3234
+ theta: "θ",
3235
+ thetasym: "ϑ",
3236
+ thetav: "ϑ",
3237
+ thickapprox: "≈",
3238
+ thicksim: "∼",
3239
+ ThickSpace: "  ",
3240
+ thinsp: " ",
3241
+ ThinSpace: " ",
3242
+ thkap: "≈",
3243
+ thksim: "∼",
3244
+ THORN: "Þ",
3245
+ thorn: "þ",
3246
+ Tilde: "∼",
3247
+ tilde: "˜",
3248
+ TildeEqual: "≃",
3249
+ TildeFullEqual: "≅",
3250
+ TildeTilde: "≈",
3251
+ times: "×",
3252
+ timesb: "⊠",
3253
+ timesbar: "⨱",
3254
+ timesd: "⨰",
3255
+ tint: "∭",
3256
+ toea: "⤨",
3257
+ top: "⊤",
3258
+ topbot: "⌶",
3259
+ topcir: "⫱",
3260
+ Topf: "𝕋",
3261
+ topf: "𝕥",
3262
+ topfork: "⫚",
3263
+ tosa: "⤩",
3264
+ tprime: "‴",
3265
+ TRADE: "™",
3266
+ trade: "™",
3267
+ triangle: "▵",
3268
+ triangledown: "▿",
3269
+ triangleleft: "◃",
3270
+ trianglelefteq: "⊴",
3271
+ triangleq: "≜",
3272
+ triangleright: "▹",
3273
+ trianglerighteq: "⊵",
3274
+ tridot: "◬",
3275
+ trie: "≜",
3276
+ triminus: "⨺",
3277
+ TripleDot: "⃛",
3278
+ triplus: "⨹",
3279
+ trisb: "⧍",
3280
+ tritime: "⨻",
3281
+ trpezium: "⏢",
3282
+ Tscr: "𝒯",
3283
+ tscr: "𝓉",
3284
+ TScy: "Ц",
3285
+ tscy: "ц",
3286
+ TSHcy: "Ћ",
3287
+ tshcy: "ћ",
3288
+ Tstrok: "Ŧ",
3289
+ tstrok: "ŧ",
3290
+ twixt: "≬",
3291
+ twoheadleftarrow: "↞",
3292
+ twoheadrightarrow: "↠",
3293
+ Uacute: "Ú",
3294
+ uacute: "ú",
3295
+ Uarr: "↟",
3296
+ uArr: "⇑",
3297
+ uarr: "↑",
3298
+ Uarrocir: "⥉",
3299
+ Ubrcy: "Ў",
3300
+ ubrcy: "ў",
3301
+ Ubreve: "Ŭ",
3302
+ ubreve: "ŭ",
3303
+ Ucirc: "Û",
3304
+ ucirc: "û",
3305
+ Ucy: "У",
3306
+ ucy: "у",
3307
+ udarr: "⇅",
3308
+ Udblac: "Ű",
3309
+ udblac: "ű",
3310
+ udhar: "⥮",
3311
+ ufisht: "⥾",
3312
+ Ufr: "𝔘",
3313
+ ufr: "𝔲",
3314
+ Ugrave: "Ù",
3315
+ ugrave: "ù",
3316
+ uHar: "⥣",
3317
+ uharl: "↿",
3318
+ uharr: "↾",
3319
+ uhblk: "▀",
3320
+ ulcorn: "⌜",
3321
+ ulcorner: "⌜",
3322
+ ulcrop: "⌏",
3323
+ ultri: "◸",
3324
+ Umacr: "Ū",
3325
+ umacr: "ū",
3326
+ uml: "¨",
3327
+ UnderBar: "_",
3328
+ UnderBrace: "⏟",
3329
+ UnderBracket: "⎵",
3330
+ UnderParenthesis: "⏝",
3331
+ Union: "⋃",
3332
+ UnionPlus: "⊎",
3333
+ Uogon: "Ų",
3334
+ uogon: "ų",
3335
+ Uopf: "𝕌",
3336
+ uopf: "𝕦",
3337
+ UpArrow: "↑",
3338
+ Uparrow: "⇑",
3339
+ uparrow: "↑",
3340
+ UpArrowBar: "⤒",
3341
+ UpArrowDownArrow: "⇅",
3342
+ UpDownArrow: "↕",
3343
+ Updownarrow: "⇕",
3344
+ updownarrow: "↕",
3345
+ UpEquilibrium: "⥮",
3346
+ upharpoonleft: "↿",
3347
+ upharpoonright: "↾",
3348
+ uplus: "⊎",
3349
+ UpperLeftArrow: "↖",
3350
+ UpperRightArrow: "↗",
3351
+ Upsi: "ϒ",
3352
+ upsi: "υ",
3353
+ upsih: "ϒ",
3354
+ Upsilon: "Υ",
3355
+ upsilon: "υ",
3356
+ UpTee: "⊥",
3357
+ UpTeeArrow: "↥",
3358
+ upuparrows: "⇈",
3359
+ urcorn: "⌝",
3360
+ urcorner: "⌝",
3361
+ urcrop: "⌎",
3362
+ Uring: "Ů",
3363
+ uring: "ů",
3364
+ urtri: "◹",
3365
+ Uscr: "𝒰",
3366
+ uscr: "𝓊",
3367
+ utdot: "⋰",
3368
+ Utilde: "Ũ",
3369
+ utilde: "ũ",
3370
+ utri: "▵",
3371
+ utrif: "▴",
3372
+ uuarr: "⇈",
3373
+ Uuml: "Ü",
3374
+ uuml: "ü",
3375
+ uwangle: "⦧",
3376
+ vangrt: "⦜",
3377
+ varepsilon: "ϵ",
3378
+ varkappa: "ϰ",
3379
+ varnothing: "∅",
3380
+ varphi: "ϕ",
3381
+ varpi: "ϖ",
3382
+ varpropto: "∝",
3383
+ vArr: "⇕",
3384
+ varr: "↕",
3385
+ varrho: "ϱ",
3386
+ varsigma: "ς",
3387
+ varsubsetneq: "⊊︀",
3388
+ varsubsetneqq: "⫋︀",
3389
+ varsupsetneq: "⊋︀",
3390
+ varsupsetneqq: "⫌︀",
3391
+ vartheta: "ϑ",
3392
+ vartriangleleft: "⊲",
3393
+ vartriangleright: "⊳",
3394
+ Vbar: "⫫",
3395
+ vBar: "⫨",
3396
+ vBarv: "⫩",
3397
+ Vcy: "В",
3398
+ vcy: "в",
3399
+ VDash: "⊫",
3400
+ Vdash: "⊩",
3401
+ vDash: "⊨",
3402
+ vdash: "⊢",
3403
+ Vdashl: "⫦",
3404
+ Vee: "⋁",
3405
+ vee: "∨",
3406
+ veebar: "⊻",
3407
+ veeeq: "≚",
3408
+ vellip: "⋮",
3409
+ Verbar: "‖",
3410
+ verbar: "|",
3411
+ Vert: "‖",
3412
+ vert: "|",
3413
+ VerticalBar: "∣",
3414
+ VerticalLine: "|",
3415
+ VerticalSeparator: "❘",
3416
+ VerticalTilde: "≀",
3417
+ VeryThinSpace: " ",
3418
+ Vfr: "𝔙",
3419
+ vfr: "𝔳",
3420
+ vltri: "⊲",
3421
+ vnsub: "⊂⃒",
3422
+ vnsup: "⊃⃒",
3423
+ Vopf: "𝕍",
3424
+ vopf: "𝕧",
3425
+ vprop: "∝",
3426
+ vrtri: "⊳",
3427
+ Vscr: "𝒱",
3428
+ vscr: "𝓋",
3429
+ vsubnE: "⫋︀",
3430
+ vsubne: "⊊︀",
3431
+ vsupnE: "⫌︀",
3432
+ vsupne: "⊋︀",
3433
+ Vvdash: "⊪",
3434
+ vzigzag: "⦚",
3435
+ Wcirc: "Ŵ",
3436
+ wcirc: "ŵ",
3437
+ wedbar: "⩟",
3438
+ Wedge: "⋀",
3439
+ wedge: "∧",
3440
+ wedgeq: "≙",
3441
+ weierp: "℘",
3442
+ Wfr: "𝔚",
3443
+ wfr: "𝔴",
3444
+ Wopf: "𝕎",
3445
+ wopf: "𝕨",
3446
+ wp: "℘",
3447
+ wr: "≀",
3448
+ wreath: "≀",
3449
+ Wscr: "𝒲",
3450
+ wscr: "𝓌",
3451
+ xcap: "⋂",
3452
+ xcirc: "◯",
3453
+ xcup: "⋃",
3454
+ xdtri: "▽",
3455
+ Xfr: "𝔛",
3456
+ xfr: "𝔵",
3457
+ xhArr: "⟺",
3458
+ xharr: "⟷",
3459
+ Xi: "Ξ",
3460
+ xi: "ξ",
3461
+ xlArr: "⟸",
3462
+ xlarr: "⟵",
3463
+ xmap: "⟼",
3464
+ xnis: "⋻",
3465
+ xodot: "⨀",
3466
+ Xopf: "𝕏",
3467
+ xopf: "𝕩",
3468
+ xoplus: "⨁",
3469
+ xotime: "⨂",
3470
+ xrArr: "⟹",
3471
+ xrarr: "⟶",
3472
+ Xscr: "𝒳",
3473
+ xscr: "𝓍",
3474
+ xsqcup: "⨆",
3475
+ xuplus: "⨄",
3476
+ xutri: "△",
3477
+ xvee: "⋁",
3478
+ xwedge: "⋀",
3479
+ Yacute: "Ý",
3480
+ yacute: "ý",
3481
+ YAcy: "Я",
3482
+ yacy: "я",
3483
+ Ycirc: "Ŷ",
3484
+ ycirc: "ŷ",
3485
+ Ycy: "Ы",
3486
+ ycy: "ы",
3487
+ yen: "¥",
3488
+ Yfr: "𝔜",
3489
+ yfr: "𝔶",
3490
+ YIcy: "Ї",
3491
+ yicy: "ї",
3492
+ Yopf: "𝕐",
3493
+ yopf: "𝕪",
3494
+ Yscr: "𝒴",
3495
+ yscr: "𝓎",
3496
+ YUcy: "Ю",
3497
+ yucy: "ю",
3498
+ Yuml: "Ÿ",
3499
+ yuml: "ÿ",
3500
+ Zacute: "Ź",
3501
+ zacute: "ź",
3502
+ Zcaron: "Ž",
3503
+ zcaron: "ž",
3504
+ Zcy: "З",
3505
+ zcy: "з",
3506
+ Zdot: "Ż",
3507
+ zdot: "ż",
3508
+ zeetrf: "ℨ",
3509
+ ZeroWidthSpace: "​",
3510
+ Zeta: "Ζ",
3511
+ zeta: "ζ",
3512
+ Zfr: "ℨ",
3513
+ zfr: "𝔷",
3514
+ ZHcy: "Ж",
3515
+ zhcy: "ж",
3516
+ zigrarr: "⇝",
3517
+ Zopf: "ℤ",
3518
+ zopf: "𝕫",
3519
+ Zscr: "𝒵",
3520
+ zscr: "𝓏",
3521
+ zwj: "‍",
3522
+ zwnj: "‌"
3523
+ }), e.entityMap = e.HTML_ENTITIES;
3524
+ })(Oe);
3525
+ var Wu = {}, du = j.NAMESPACE, _u = /[A-Z_a-z\xC0-\xD6\xD8-\xF6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/, ie = new RegExp("[\\-\\.0-9" + _u.source.slice(1, -1) + "\\u00B7\\u0300-\\u036F\\u203F-\\u2040]"), ae = new RegExp("^" + _u.source + ie.source + "*(?::" + _u.source + ie.source + "*)?$"), pu = 0, X = 1, K = 2, hu = 3, uu = 4, eu = 5, fu = 6, vu = 7;
3526
+ function ou(e, u) {
3527
+ this.message = e, this.locator = u, Error.captureStackTrace && Error.captureStackTrace(this, ou);
3528
+ }
3529
+ ou.prototype = new Error();
3530
+ ou.prototype.name = ou.name;
3531
+ function Le() {
3532
+ }
3533
+ Le.prototype = {
3534
+ parse: function(e, u, r) {
3535
+ var t = this.domBuilder;
3536
+ t.startDocument(), Ie(u, u = {}), lr(
3537
+ e,
3538
+ u,
3539
+ r,
3540
+ t,
3541
+ this.errorHandler
3542
+ ), t.endDocument();
3543
+ }
3544
+ };
3545
+ function lr(e, u, r, t, n) {
3546
+ function a(i) {
3547
+ if (i > 65535) {
3548
+ i -= 65536;
3549
+ var M = 55296 + (i >> 10), Ve = 56320 + (i & 1023);
3550
+ return String.fromCharCode(M, Ve);
3551
+ } else
3552
+ return String.fromCharCode(i);
3553
+ }
3554
+ function o(i) {
3555
+ var M = i.slice(1, -1);
3556
+ return Object.hasOwnProperty.call(r, M) ? r[M] : M.charAt(0) === "#" ? a(parseInt(M.substr(1).replace("x", "0x"))) : (n.error("entity not found:" + i), i);
3557
+ }
3558
+ function s(i) {
3559
+ if (i > v) {
3560
+ var M = e.substring(v, i).replace(/&#?\w+;/g, o);
3561
+ f && l(v), t.characters(M, 0, i - v), v = i;
3562
+ }
3563
+ }
3564
+ function l(i, M) {
3565
+ for (; i >= p && (M = D.exec(e)); )
3566
+ c = M.index, p = c + M[0].length, f.lineNumber++;
3567
+ f.columnNumber = i - c + 1;
3568
+ }
3569
+ for (var c = 0, p = 0, D = /.*(?:\r\n?|\n)|.*$/g, f = t.locator, b = [{ currentNSMap: u }], T = {}, v = 0; ; ) {
3570
+ try {
3571
+ var d = e.indexOf("<", v);
3572
+ if (d < 0) {
3573
+ if (!e.substr(v).match(/^\s*$/)) {
3574
+ var h = t.doc, y = h.createTextNode(e.substr(v));
3575
+ h.appendChild(y), t.currentElement = y;
3576
+ }
3577
+ return;
3578
+ }
3579
+ switch (d > v && s(d), e.charAt(d + 1)) {
3580
+ case "/":
3581
+ var m = e.indexOf(">", d + 3), C = e.substring(d + 2, m).replace(/[ \t\n\r]+$/g, ""), F = b.pop();
3582
+ m < 0 ? (C = e.substring(d + 2).replace(/[\s<].*/, ""), n.error("end tag name: " + C + " is not complete:" + F.tagName), m = d + 1 + C.length) : C.match(/\s</) && (C = C.replace(/[\s<].*/, ""), n.error("end tag name: " + C + " maybe not complete"), m = d + 1 + C.length);
3583
+ var S = F.localNSMap, k = F.tagName == C, J = k || F.tagName && F.tagName.toLowerCase() == C.toLowerCase();
3584
+ if (J) {
3585
+ if (t.endElement(F.uri, F.localName, C), S)
3586
+ for (var lu in S)
3587
+ Object.prototype.hasOwnProperty.call(S, lu) && t.endPrefixMapping(lu);
3588
+ k || n.fatalError("end tag name: " + C + " is not match the current start tagName:" + F.tagName);
3589
+ } else
3590
+ b.push(F);
3591
+ m++;
3592
+ break;
3593
+ case "?":
3594
+ f && l(d), m = Dr(e, d, t);
3595
+ break;
3596
+ case "!":
3597
+ f && l(d), m = fr(e, d, t, n);
3598
+ break;
3599
+ default:
3600
+ f && l(d);
3601
+ var E = new Me(), x = b[b.length - 1].currentNSMap, m = cr(e, d, E, x, o, n), B = E.length;
3602
+ if (!E.closed && hr(e, m, E.tagName, T) && (E.closed = !0, r.nbsp || n.warning("unclosed xml attribute")), f && B) {
3603
+ for (var U = oe(f, {}), I = 0; I < B; I++) {
3604
+ var A = E[I];
3605
+ l(A.offset), A.locator = oe(f, {});
3606
+ }
3607
+ t.locator = U, se(E, t, x) && b.push(E), t.locator = f;
3608
+ } else
3609
+ se(E, t, x) && b.push(E);
3610
+ du.isHTML(E.uri) && !E.closed ? m = pr(e, m, E.tagName, o, t) : m++;
3611
+ }
3612
+ } catch (i) {
3613
+ if (i instanceof ou)
3614
+ throw i;
3615
+ n.error("element parse error: " + i), m = -1;
3616
+ }
3617
+ m > v ? v = m : s(Math.max(d, v) + 1);
3618
+ }
3619
+ }
3620
+ function oe(e, u) {
3621
+ return u.lineNumber = e.lineNumber, u.columnNumber = e.columnNumber, u;
3622
+ }
3623
+ function cr(e, u, r, t, n, a) {
3624
+ function o(f, b, T) {
3625
+ r.attributeNames.hasOwnProperty(f) && a.fatalError("Attribute " + f + " redefined"), r.addValue(
3626
+ f,
3627
+ // @see https://www.w3.org/TR/xml/#AVNormalize
3628
+ // since the xmldom sax parser does not "interpret" DTD the following is not implemented:
3629
+ // - recursive replacement of (DTD) entity references
3630
+ // - trimming and collapsing multiple spaces into a single one for attributes that are not of type CDATA
3631
+ b.replace(/[\t\n\r]/g, " ").replace(/&#?\w+;/g, n),
3632
+ T
3633
+ );
3634
+ }
3635
+ for (var s, l, c = ++u, p = pu; ; ) {
3636
+ var D = e.charAt(c);
3637
+ switch (D) {
3638
+ case "=":
3639
+ if (p === X)
3640
+ s = e.slice(u, c), p = hu;
3641
+ else if (p === K)
3642
+ p = hu;
3643
+ else
3644
+ throw new Error("attribute equal must after attrName");
3645
+ break;
3646
+ case "'":
3647
+ case '"':
3648
+ if (p === hu || p === X)
3649
+ if (p === X && (a.warning('attribute value must after "="'), s = e.slice(u, c)), u = c + 1, c = e.indexOf(D, u), c > 0)
3650
+ l = e.slice(u, c), o(s, l, u - 1), p = eu;
3651
+ else
3652
+ throw new Error("attribute value no end '" + D + "' match");
3653
+ else if (p == uu)
3654
+ l = e.slice(u, c), o(s, l, u), a.warning('attribute "' + s + '" missed start quot(' + D + ")!!"), u = c + 1, p = eu;
3655
+ else
3656
+ throw new Error('attribute value must after "="');
3657
+ break;
3658
+ case "/":
3659
+ switch (p) {
3660
+ case pu:
3661
+ r.setTagName(e.slice(u, c));
3662
+ case eu:
3663
+ case fu:
3664
+ case vu:
3665
+ p = vu, r.closed = !0;
3666
+ case uu:
3667
+ case X:
3668
+ break;
3669
+ case K:
3670
+ r.closed = !0;
3671
+ break;
3672
+ default:
3673
+ throw new Error("attribute invalid close char('/')");
3674
+ }
3675
+ break;
3676
+ case "":
3677
+ return a.error("unexpected end of input"), p == pu && r.setTagName(e.slice(u, c)), c;
3678
+ case ">":
3679
+ switch (p) {
3680
+ case pu:
3681
+ r.setTagName(e.slice(u, c));
3682
+ case eu:
3683
+ case fu:
3684
+ case vu:
3685
+ break;
3686
+ case uu:
3687
+ case X:
3688
+ l = e.slice(u, c), l.slice(-1) === "/" && (r.closed = !0, l = l.slice(0, -1));
3689
+ case K:
3690
+ p === K && (l = s), p == uu ? (a.warning('attribute "' + l + '" missed quot(")!'), o(s, l, u)) : ((!du.isHTML(t[""]) || !l.match(/^(?:disabled|checked|selected)$/i)) && a.warning('attribute "' + l + '" missed value!! "' + l + '" instead!!'), o(l, l, u));
3691
+ break;
3692
+ case hu:
3693
+ throw new Error("attribute value missed!!");
3694
+ }
3695
+ return c;
3696
+ case "€":
3697
+ D = " ";
3698
+ default:
3699
+ if (D <= " ")
3700
+ switch (p) {
3701
+ case pu:
3702
+ r.setTagName(e.slice(u, c)), p = fu;
3703
+ break;
3704
+ case X:
3705
+ s = e.slice(u, c), p = K;
3706
+ break;
3707
+ case uu:
3708
+ var l = e.slice(u, c);
3709
+ a.warning('attribute "' + l + '" missed quot(")!!'), o(s, l, u);
3710
+ case eu:
3711
+ p = fu;
3712
+ break;
3713
+ }
3714
+ else
3715
+ switch (p) {
3716
+ case K:
3717
+ r.tagName, (!du.isHTML(t[""]) || !s.match(/^(?:disabled|checked|selected)$/i)) && a.warning('attribute "' + s + '" missed value!! "' + s + '" instead2!!'), o(s, s, u), u = c, p = X;
3718
+ break;
3719
+ case eu:
3720
+ a.warning('attribute space is required"' + s + '"!!');
3721
+ case fu:
3722
+ p = X, u = c;
3723
+ break;
3724
+ case hu:
3725
+ p = uu, u = c;
3726
+ break;
3727
+ case vu:
3728
+ throw new Error("elements closed character '/' and '>' must be connected to");
3729
+ }
3730
+ }
3731
+ c++;
3732
+ }
3733
+ }
3734
+ function se(e, u, r) {
3735
+ for (var t = e.tagName, n = null, D = e.length; D--; ) {
3736
+ var a = e[D], o = a.qName, s = a.value, f = o.indexOf(":");
3737
+ if (f > 0)
3738
+ var l = a.prefix = o.slice(0, f), c = o.slice(f + 1), p = l === "xmlns" && c;
3739
+ else
3740
+ c = o, l = null, p = o === "xmlns" && "";
3741
+ a.localName = c, p !== !1 && (n == null && (n = {}, Ie(r, r = {})), r[p] = n[p] = s, a.uri = du.XMLNS, u.startPrefixMapping(p, s));
3742
+ }
3743
+ for (var D = e.length; D--; ) {
3744
+ a = e[D];
3745
+ var l = a.prefix;
3746
+ l && (l === "xml" && (a.uri = du.XML), l !== "xmlns" && (a.uri = r[l || ""]));
3747
+ }
3748
+ var f = t.indexOf(":");
3749
+ f > 0 ? (l = e.prefix = t.slice(0, f), c = e.localName = t.slice(f + 1)) : (l = null, c = e.localName = t);
3750
+ var b = e.uri = r[l || ""];
3751
+ if (u.startElement(b, c, t, e), e.closed) {
3752
+ if (u.endElement(b, c, t), n)
3753
+ for (l in n)
3754
+ Object.prototype.hasOwnProperty.call(n, l) && u.endPrefixMapping(l);
3755
+ } else
3756
+ return e.currentNSMap = r, e.localNSMap = n, !0;
3757
+ }
3758
+ function pr(e, u, r, t, n) {
3759
+ if (/^(?:script|textarea)$/i.test(r)) {
3760
+ var a = e.indexOf("</" + r + ">", u), o = e.substring(u + 1, a);
3761
+ if (/[&<]/.test(o))
3762
+ return /^script$/i.test(r) ? (n.characters(o, 0, o.length), a) : (o = o.replace(/&#?\w+;/g, t), n.characters(o, 0, o.length), a);
3763
+ }
3764
+ return u + 1;
3765
+ }
3766
+ function hr(e, u, r, t) {
3767
+ var n = t[r];
3768
+ return n == null && (n = e.lastIndexOf("</" + r + ">"), n < u && (n = e.lastIndexOf("</" + r)), t[r] = n), n < u;
3769
+ }
3770
+ function Ie(e, u) {
3771
+ for (var r in e)
3772
+ Object.prototype.hasOwnProperty.call(e, r) && (u[r] = e[r]);
3773
+ }
3774
+ function fr(e, u, r, t) {
3775
+ var n = e.charAt(u + 2);
3776
+ switch (n) {
3777
+ case "-":
3778
+ if (e.charAt(u + 3) === "-") {
3779
+ var a = e.indexOf("-->", u + 4);
3780
+ return a > u ? (r.comment(e, u + 4, a - u - 4), a + 3) : (t.error("Unclosed comment"), -1);
3781
+ } else
3782
+ return -1;
3783
+ default:
3784
+ if (e.substr(u + 3, 6) == "CDATA[") {
3785
+ var a = e.indexOf("]]>", u + 9);
3786
+ return r.startCDATA(), r.characters(e, u + 9, a - u - 9), r.endCDATA(), a + 3;
3787
+ }
3788
+ var o = mr(e, u), s = o.length;
3789
+ if (s > 1 && /!doctype/i.test(o[0][0])) {
3790
+ var l = o[1][0], c = !1, p = !1;
3791
+ s > 3 && (/^public$/i.test(o[2][0]) ? (c = o[3][0], p = s > 4 && o[4][0]) : /^system$/i.test(o[2][0]) && (p = o[3][0]));
3792
+ var D = o[s - 1];
3793
+ return r.startDTD(l, c, p), r.endDTD(), D.index + D[0].length;
3794
+ }
3795
+ }
3796
+ return -1;
3797
+ }
3798
+ function Dr(e, u, r) {
3799
+ var t = e.indexOf("?>", u);
3800
+ if (t) {
3801
+ var n = e.substring(u, t).match(/^<\?(\S*)\s*([\s\S]*?)\s*$/);
3802
+ return n ? (n[0].length, r.processingInstruction(n[1], n[2]), t + 2) : -1;
3803
+ }
3804
+ return -1;
3805
+ }
3806
+ function Me() {
3807
+ this.attributeNames = {};
3808
+ }
3809
+ Me.prototype = {
3810
+ setTagName: function(e) {
3811
+ if (!ae.test(e))
3812
+ throw new Error("invalid tagName:" + e);
3813
+ this.tagName = e;
3814
+ },
3815
+ addValue: function(e, u, r) {
3816
+ if (!ae.test(e))
3817
+ throw new Error("invalid attribute:" + e);
3818
+ this.attributeNames[e] = this.length, this[this.length++] = { qName: e, value: u, offset: r };
3819
+ },
3820
+ length: 0,
3821
+ getLocalName: function(e) {
3822
+ return this[e].localName;
3823
+ },
3824
+ getLocator: function(e) {
3825
+ return this[e].locator;
3826
+ },
3827
+ getQName: function(e) {
3828
+ return this[e].qName;
3829
+ },
3830
+ getURI: function(e) {
3831
+ return this[e].uri;
3832
+ },
3833
+ getValue: function(e) {
3834
+ return this[e].value;
3835
+ }
3836
+ // ,getIndex:function(uri, localName)){
3837
+ // if(localName){
3838
+ //
3839
+ // }else{
3840
+ // var qName = uri
3841
+ // }
3842
+ // },
3843
+ // getValue:function(){return this.getValue(this.getIndex.apply(this,arguments))},
3844
+ // getType:function(uri,localName){}
3845
+ // getType:function(i){},
3846
+ };
3847
+ function mr(e, u) {
3848
+ var r, t = [], n = /'[^']+'|"[^"]+"|[^\s<>\/=]+=?|(\/?\s*>|<)/g;
3849
+ for (n.lastIndex = u, n.exec(e); r = n.exec(e); )
3850
+ if (t.push(r), r[1]) return t;
3851
+ }
3852
+ Wu.XMLReader = Le;
3853
+ Wu.ParseError = ou;
3854
+ var gr = j, dr = Z, le = Oe, _e = Wu, Ar = dr.DOMImplementation, ce = gr.NAMESPACE, Er = _e.ParseError, br = _e.XMLReader;
3855
+ function Pe(e) {
3856
+ return e.replace(/\r[\n\u0085]/g, `
3857
+ `).replace(/[\r\u0085\u2028]/g, `
3858
+ `);
3859
+ }
3860
+ function Ue(e) {
3861
+ this.options = e || { locator: {} };
3862
+ }
3863
+ Ue.prototype.parseFromString = function(e, u) {
3864
+ var r = this.options, t = new br(), n = r.domBuilder || new Cu(), a = r.errorHandler, o = r.locator, s = r.xmlns || {}, l = /\/x?html?$/.test(u), c = l ? le.HTML_ENTITIES : le.XML_ENTITIES;
3865
+ o && n.setDocumentLocator(o), t.errorHandler = Cr(a, n, o), t.domBuilder = r.domBuilder || n, l && (s[""] = ce.HTML), s.xml = s.xml || ce.XML;
3866
+ var p = r.normalizeLineEndings || Pe;
3867
+ return e && typeof e == "string" ? t.parse(
3868
+ p(e),
3869
+ s,
3870
+ c
3871
+ ) : t.errorHandler.error("invalid doc source"), n.doc;
3872
+ };
3873
+ function Cr(e, u, r) {
3874
+ if (!e) {
3875
+ if (u instanceof Cu)
3876
+ return u;
3877
+ e = u;
3878
+ }
3879
+ var t = {}, n = e instanceof Function;
3880
+ r = r || {};
3881
+ function a(o) {
3882
+ var s = e[o];
3883
+ !s && n && (s = e.length == 2 ? function(l) {
3884
+ e(o, l);
3885
+ } : e), t[o] = s && function(l) {
3886
+ s("[xmldom " + o + "] " + l + Pu(r));
3887
+ } || function() {
3888
+ };
3889
+ }
3890
+ return a("warning"), a("error"), a("fatalError"), t;
3891
+ }
3892
+ function Cu() {
3893
+ this.cdata = !1;
3894
+ }
3895
+ function ru(e, u) {
3896
+ u.lineNumber = e.lineNumber, u.columnNumber = e.columnNumber;
3897
+ }
3898
+ Cu.prototype = {
3899
+ startDocument: function() {
3900
+ this.doc = new Ar().createDocument(null, null, null), this.locator && (this.doc.documentURI = this.locator.systemId);
3901
+ },
3902
+ startElement: function(e, u, r, t) {
3903
+ var n = this.doc, a = n.createElementNS(e, r || u), o = t.length;
3904
+ yu(this, a), this.currentElement = a, this.locator && ru(this.locator, a);
3905
+ for (var s = 0; s < o; s++) {
3906
+ var e = t.getURI(s), l = t.getValue(s), r = t.getQName(s), c = n.createAttributeNS(e, r);
3907
+ this.locator && ru(t.getLocator(s), c), c.value = c.nodeValue = l, a.setAttributeNode(c);
3908
+ }
3909
+ },
3910
+ endElement: function(e, u, r) {
3911
+ var t = this.currentElement;
3912
+ t.tagName, this.currentElement = t.parentNode;
3913
+ },
3914
+ startPrefixMapping: function(e, u) {
3915
+ },
3916
+ endPrefixMapping: function(e) {
3917
+ },
3918
+ processingInstruction: function(e, u) {
3919
+ var r = this.doc.createProcessingInstruction(e, u);
3920
+ this.locator && ru(this.locator, r), yu(this, r);
3921
+ },
3922
+ ignorableWhitespace: function(e, u, r) {
3923
+ },
3924
+ characters: function(e, u, r) {
3925
+ if (e = pe.apply(this, arguments), e) {
3926
+ if (this.cdata)
3927
+ var t = this.doc.createCDATASection(e);
3928
+ else
3929
+ var t = this.doc.createTextNode(e);
3930
+ this.currentElement ? this.currentElement.appendChild(t) : /^\s*$/.test(e) && this.doc.appendChild(t), this.locator && ru(this.locator, t);
3931
+ }
3932
+ },
3933
+ skippedEntity: function(e) {
3934
+ },
3935
+ endDocument: function() {
3936
+ this.doc.normalize();
3937
+ },
3938
+ setDocumentLocator: function(e) {
3939
+ (this.locator = e) && (e.lineNumber = 0);
3940
+ },
3941
+ //LexicalHandler
3942
+ comment: function(e, u, r) {
3943
+ e = pe.apply(this, arguments);
3944
+ var t = this.doc.createComment(e);
3945
+ this.locator && ru(this.locator, t), yu(this, t);
3946
+ },
3947
+ startCDATA: function() {
3948
+ this.cdata = !0;
3949
+ },
3950
+ endCDATA: function() {
3951
+ this.cdata = !1;
3952
+ },
3953
+ startDTD: function(e, u, r) {
3954
+ var t = this.doc.implementation;
3955
+ if (t && t.createDocumentType) {
3956
+ var n = t.createDocumentType(e, u, r);
3957
+ this.locator && ru(this.locator, n), yu(this, n), this.doc.doctype = n;
3958
+ }
3959
+ },
3960
+ /**
3961
+ * @see org.xml.sax.ErrorHandler
3962
+ * @link http://www.saxproject.org/apidoc/org/xml/sax/ErrorHandler.html
3963
+ */
3964
+ warning: function(e) {
3965
+ console.warn("[xmldom warning] " + e, Pu(this.locator));
3966
+ },
3967
+ error: function(e) {
3968
+ console.error("[xmldom error] " + e, Pu(this.locator));
3969
+ },
3970
+ fatalError: function(e) {
3971
+ throw new Er(e, this.locator);
3972
+ }
3973
+ };
3974
+ function Pu(e) {
3975
+ if (e)
3976
+ return `
3977
+ @` + (e.systemId || "") + "#[line:" + e.lineNumber + ",col:" + e.columnNumber + "]";
3978
+ }
3979
+ function pe(e, u, r) {
3980
+ return typeof e == "string" ? e.substr(u, r) : e.length >= u + r || u ? new java.lang.String(e, u, r) + "" : e;
3981
+ }
3982
+ "endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl".replace(/\w+/g, function(e) {
3983
+ Cu.prototype[e] = function() {
3984
+ return null;
3985
+ };
3986
+ });
3987
+ function yu(e, u) {
3988
+ e.currentElement ? e.currentElement.appendChild(u) : e.doc.appendChild(u);
3989
+ }
3990
+ ku.__DOMHandler = Cu;
3991
+ ku.normalizeLineEndings = Pe;
3992
+ ku.DOMParser = Ue;
3993
+ var vr = ku.DOMParser;
3994
+ const yr = "1.0.6";
3995
+ function wr() {
3996
+ return typeof window < "u" && ({}.toString.call(window) === "[object Window]" || {}.toString.call(window) === "[object global]");
3997
+ }
3998
+ const su = typeof window < "u" ? window : typeof WorkerGlobalScope < "u" ? self : { document: void 0, tinyEngine: void 0 };
3999
+ su.Path2D || ze(su);
4000
+ su.DOMParser || (su.DOMParser = vr);
4001
+ const Fr = {
4002
+ window: su,
4003
+ version: yr,
4004
+ isBrowser: wr(),
4005
+ dpr: typeof window < "u" && window.devicePixelRatio || 1,
4006
+ document: su.document,
4007
+ time: 0,
4008
+ deltaTime: 0,
4009
+ config: Ge
4010
+ }, Du = (e, u, r) => Math.max(u, Math.min(r, e)), Br = (e, u) => (e % u + u) % u, Lu = (e, u, r) => (1 - r) * e + r * u, Sr = {
4011
+ transparent: "rgba(1, 1, 1, 0)",
4012
+ green: "#45b787",
4013
+ darkGreen: "#314a43",
4014
+ blue: "#6e9bc5",
4015
+ darkBlue: "#2775b6",
4016
+ red: "#F26666",
4017
+ darkRed: "#D95970",
4018
+ brown: "#ECD2B9",
4019
+ darkBrown: "#BF9D8A",
4020
+ yellow: "#ECDEC0",
4021
+ darkYellow: "#D0AC57",
4022
+ lightGray: "#e0e0e0",
4023
+ gray: "#beb6b6",
4024
+ darkGray: "#918883",
4025
+ white: "#F2F2F2",
4026
+ darkWhite: "#ececec",
4027
+ lightBlack: "#2E3032",
4028
+ // 403C3A
4029
+ black: "#182327",
4030
+ blackAlpha5: "rgba(0, 0, 0, 0.5)"
4031
+ }, Nr = {
4032
+ aliceblue: 15792383,
4033
+ antiquewhite: 16444375,
4034
+ aqua: 65535,
4035
+ aquamarine: 8388564,
4036
+ azure: 15794175,
4037
+ beige: 16119260,
4038
+ bisque: 16770244,
4039
+ black: 0,
4040
+ blanchedalmond: 16772045,
4041
+ blue: 255,
4042
+ blueviolet: 9055202,
4043
+ brown: 10824234,
4044
+ burlywood: 14596231,
4045
+ cadetblue: 6266528,
4046
+ chartreuse: 8388352,
4047
+ chocolate: 13789470,
4048
+ coral: 16744272,
4049
+ cornflowerblue: 6591981,
4050
+ cornsilk: 16775388,
4051
+ crimson: 14423100,
4052
+ cyan: 65535,
4053
+ darkblue: 139,
4054
+ darkcyan: 35723,
4055
+ darkgoldenrod: 12092939,
4056
+ darkgray: 11119017,
4057
+ darkgreen: 25600,
4058
+ darkgrey: 11119017,
4059
+ darkkhaki: 12433259,
4060
+ darkmagenta: 9109643,
4061
+ darkolivegreen: 5597999,
4062
+ darkorange: 16747520,
4063
+ darkorchid: 10040012,
4064
+ darkred: 9109504,
4065
+ darksalmon: 15308410,
4066
+ darkseagreen: 9419919,
4067
+ darkslateblue: 4734347,
4068
+ darkslategray: 3100495,
4069
+ darkslategrey: 3100495,
4070
+ darkturquoise: 52945,
4071
+ darkviolet: 9699539,
4072
+ deeppink: 16716947,
4073
+ deepskyblue: 49151,
4074
+ dimgray: 6908265,
4075
+ dimgrey: 6908265,
4076
+ dodgerblue: 2003199,
4077
+ firebrick: 11674146,
4078
+ floralwhite: 16775920,
4079
+ forestgreen: 2263842,
4080
+ fuchsia: 16711935,
4081
+ gainsboro: 14474460,
4082
+ ghostwhite: 16316671,
4083
+ gold: 16766720,
4084
+ goldenrod: 14329120,
4085
+ gray: 8421504,
4086
+ green: 32768,
4087
+ greenyellow: 11403055,
4088
+ grey: 8421504,
4089
+ honeydew: 15794160,
4090
+ hotpink: 16738740,
4091
+ indianred: 13458524,
4092
+ indigo: 4915330,
4093
+ ivory: 16777200,
4094
+ khaki: 15787660,
4095
+ lavender: 15132410,
4096
+ lavenderblush: 16773365,
4097
+ lawngreen: 8190976,
4098
+ lemonchiffon: 16775885,
4099
+ lightblue: 11393254,
4100
+ lightcoral: 15761536,
4101
+ lightcyan: 14745599,
4102
+ lightgoldenrodyellow: 16448210,
4103
+ lightgray: 13882323,
4104
+ lightgreen: 9498256,
4105
+ lightgrey: 13882323,
4106
+ lightpink: 16758465,
4107
+ lightsalmon: 16752762,
4108
+ lightseagreen: 2142890,
4109
+ lightskyblue: 8900346,
4110
+ lightslategray: 7833753,
4111
+ lightslategrey: 7833753,
4112
+ lightsteelblue: 11584734,
4113
+ lightyellow: 16777184,
4114
+ lime: 65280,
4115
+ limegreen: 3329330,
4116
+ linen: 16445670,
4117
+ magenta: 16711935,
4118
+ maroon: 8388608,
4119
+ mediumaquamarine: 6737322,
4120
+ mediumblue: 205,
4121
+ mediumorchid: 12211667,
4122
+ mediumpurple: 9662683,
4123
+ mediumseagreen: 3978097,
4124
+ mediumslateblue: 8087790,
4125
+ mediumspringgreen: 64154,
4126
+ mediumturquoise: 4772300,
4127
+ mediumvioletred: 13047173,
4128
+ midnightblue: 1644912,
4129
+ mintcream: 16121850,
4130
+ mistyrose: 16770273,
4131
+ moccasin: 16770229,
4132
+ navajowhite: 16768685,
4133
+ navy: 128,
4134
+ oldlace: 16643558,
4135
+ olive: 8421376,
4136
+ olivedrab: 7048739,
4137
+ orange: 16753920,
4138
+ orangered: 16729344,
4139
+ orchid: 14315734,
4140
+ palegoldenrod: 15657130,
4141
+ palegreen: 10025880,
4142
+ paleturquoise: 11529966,
4143
+ palevioletred: 14381203,
4144
+ papayawhip: 16773077,
4145
+ peachpuff: 16767673,
4146
+ peru: 13468991,
4147
+ pink: 16761035,
4148
+ plum: 14524637,
4149
+ powderblue: 11591910,
4150
+ purple: 8388736,
4151
+ rebeccapurple: 6697881,
4152
+ red: 16711680,
4153
+ rosybrown: 12357519,
4154
+ royalblue: 4286945,
4155
+ saddlebrown: 9127187,
4156
+ salmon: 16416882,
4157
+ sandybrown: 16032864,
4158
+ seagreen: 3050327,
4159
+ seashell: 16774638,
4160
+ sienna: 10506797,
4161
+ silver: 12632256,
4162
+ skyblue: 8900331,
4163
+ slateblue: 6970061,
4164
+ slategray: 7372944,
4165
+ slategrey: 7372944,
4166
+ snow: 16775930,
4167
+ springgreen: 65407,
4168
+ steelblue: 4620980,
4169
+ tan: 13808780,
4170
+ teal: 32896,
4171
+ thistle: 14204888,
4172
+ tomato: 16737095,
4173
+ turquoise: 4251856,
4174
+ violet: 15631086,
4175
+ wheat: 16113331,
4176
+ white: 16777215,
4177
+ whitesmoke: 16119285,
4178
+ yellow: 16776960,
4179
+ yellowgreen: 10145074
4180
+ }, _ = { h: 0, s: 0, l: 0 }, wu = { h: 0, s: 0, l: 0 };
4181
+ function Iu(e, u, r) {
4182
+ return r < 0 && (r += 1), r > 1 && (r -= 1), r < 1 / 6 ? e + (u - e) * 6 * r : r < 1 / 2 ? u : r < 2 / 3 ? e + (u - e) * 6 * (2 / 3 - r) : e;
4183
+ }
4184
+ const Tr = /^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3}|[A-Fa-f0-9]{8})$|rgb\(\s*\d+\s*,\s*\d+\s*,\s*\d+\s*\)|rgba\(\s*\d+\s*,\s*\d+\s*,\s*\d+\s*,\s*[\d.]+\s*\)/;
4185
+ class W {
4186
+ isColor = !0;
4187
+ r = 1;
4188
+ g = 1;
4189
+ b = 1;
4190
+ a = 1;
4191
+ constructor(u, r, t, n) {
4192
+ return r === void 0 && t === void 0 ? this.set(u) : this.setRGBA(u, r, t, n);
4193
+ }
4194
+ // Set methods
4195
+ // set(value: Color) {}
4196
+ // set(value: number) {}
4197
+ static isColor(u) {
4198
+ return typeof u == "string" ? Tr.test(u) : typeof u == "number" ? u >= 0 && u <= 16777215 : !1;
4199
+ }
4200
+ static getRandomStyle() {
4201
+ return Y.random().getStyle();
4202
+ }
4203
+ static getDarken(u, r = 0.8) {
4204
+ return Y.set(u).getHSL(Bu), Y.setHSL(Bu.h, Bu.s, Bu.l * r).getStyle();
4205
+ }
4206
+ static getLighten(u, r = 1.2) {
4207
+ return this.getDarken(u, r);
4208
+ }
4209
+ static getContrast(u) {
4210
+ return Y.set(u), Y.getContrastString();
4211
+ }
4212
+ static getArray(u) {
4213
+ return Y.set(u).toArray();
4214
+ }
4215
+ static getComplementary(u) {
4216
+ return Y.set(u), Y.getComplementaryString();
4217
+ }
4218
+ // set(value: string) {}
4219
+ set(u) {
4220
+ return u && u.isColor ? this.copy(u) : typeof u == "number" ? this.setHex(u) : typeof u == "string" && this.setStyle(u), this;
4221
+ }
4222
+ random() {
4223
+ return this.setHex(Math.floor(Math.random() * (1 << 24)));
4224
+ }
4225
+ setScalar(u) {
4226
+ return this.r = u, this.g = u, this.b = u, this.a = 1, this;
4227
+ }
4228
+ setHex(u) {
4229
+ return u = Math.floor(u), this.r = (u >> 16 & 255) / 255, this.g = (u >> 8 & 255) / 255, this.b = (u & 255) / 255, this.a = 1, this;
4230
+ }
4231
+ setR(u) {
4232
+ return this.r = u, this;
4233
+ }
4234
+ setG(u) {
4235
+ return this.g = u, this;
4236
+ }
4237
+ setB(u) {
4238
+ return this.b = u, this;
4239
+ }
4240
+ setA(u) {
4241
+ return this.a = u, this;
4242
+ }
4243
+ setRGB(u, r, t) {
4244
+ return this.setRGBA(u, r, t, this.a);
4245
+ }
4246
+ setRGBA(u, r, t, n = 1) {
4247
+ return this.r = u, this.g = r, this.b = t, this.a = n, this;
4248
+ }
4249
+ // copySRGBToLinear(color: Color) {
4250
+ // this.r = SRGBToLinear(color.r);
4251
+ // this.g = SRGBToLinear(color.g);
4252
+ // this.b = SRGBToLinear(color.b);
4253
+ // return this;
4254
+ // }
4255
+ //
4256
+ // copyLinearToSRGB(color: Color) {
4257
+ // this.r = LinearToSRGB(color.r);
4258
+ // this.g = LinearToSRGB(color.g);
4259
+ // this.b = LinearToSRGB(color.b);
4260
+ // return this;
4261
+ // }
4262
+ //
4263
+ // convertSRGBToLinear() {
4264
+ // this.copySRGBToLinear(this);
4265
+ // return this;
4266
+ // }
4267
+ //
4268
+ // convertLinearToSRGB() {
4269
+ // this.copyLinearToSRGB(this);
4270
+ // return this;
4271
+ // }
4272
+ // Get methods
4273
+ setHSL(u, r, t, n = 1) {
4274
+ if (u = Br(u, 1), r = Du(r, 0, 1), t = Du(t, 0, 1), r === 0)
4275
+ this.r = this.g = this.b = t;
4276
+ else {
4277
+ const a = t <= 0.5 ? t * (1 + r) : t + r - t * r, o = 2 * t - a;
4278
+ this.r = Iu(o, a, u + 1 / 3), this.g = Iu(o, a, u), this.b = Iu(o, a, u - 1 / 3);
4279
+ }
4280
+ return this.a = n, this;
4281
+ }
4282
+ setStyle(u) {
4283
+ let r;
4284
+ if (r = /^((?:rgb|hsl)a?)\(([^\)]*)\)/.exec(u)) {
4285
+ let t;
4286
+ const n = r[1], a = r[2];
4287
+ switch (n) {
4288
+ case "rgb":
4289
+ case "rgba":
4290
+ if (t = /^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))
4291
+ return this.r = Math.min(255, parseInt(t[1], 10)) / 255, this.g = Math.min(255, parseInt(t[2], 10)) / 255, this.b = Math.min(255, parseInt(t[3], 10)) / 255, this.a = Math.max(Math.min(1, t[4] !== void 0 ? parseFloat(t[4]) : 1), 0), this;
4292
+ if (t = /^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))
4293
+ return this.r = Math.min(100, parseInt(t[1], 10)) / 100, this.g = Math.min(100, parseInt(t[2], 10)) / 100, this.b = Math.min(100, parseInt(t[3], 10)) / 100, this.a = Math.max(Math.min(1, t[4] !== void 0 ? parseFloat(t[4]) : 1), 0), this;
4294
+ break;
4295
+ case "hsl":
4296
+ case "hsla":
4297
+ if (t = /^\s*(\d*\.?\d+)\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a)) {
4298
+ const o = parseFloat(t[1]) / 360, s = parseInt(t[2], 10) / 100, l = parseInt(t[3], 10) / 100, c = Math.max(Math.min(1, t[4] !== void 0 ? parseFloat(t[4]) : 1), 0);
4299
+ return this.setHSL(o, s, l, c);
4300
+ }
4301
+ break;
4302
+ }
4303
+ } else if (r = /^\#([A-Fa-f\d]+)$/.exec(u)) {
4304
+ const t = r[1], n = t.length;
4305
+ if (n === 3)
4306
+ return this.r = parseInt(t.charAt(0) + t.charAt(0), 16) / 255, this.g = parseInt(t.charAt(1) + t.charAt(1), 16) / 255, this.b = parseInt(t.charAt(2) + t.charAt(2), 16) / 255, this.a = 1, this;
4307
+ if (n === 6)
4308
+ return this.r = parseInt(t.charAt(0) + t.charAt(1), 16) / 255, this.g = parseInt(t.charAt(2) + t.charAt(3), 16) / 255, this.b = parseInt(t.charAt(4) + t.charAt(5), 16) / 255, this.a = 1, this;
4309
+ }
4310
+ return u && u.length > 0 ? this.setColorName(u) : this;
4311
+ }
4312
+ setColorName(u) {
4313
+ const r = Nr[u.toLowerCase()];
4314
+ return r !== void 0 ? this.setHex(r) : console.warn("Color: Unknown color " + u), this;
4315
+ }
4316
+ clone() {
4317
+ return new W(this.r, this.g, this.b, this.a);
4318
+ }
4319
+ copy(u) {
4320
+ return this.r = u.r, this.g = u.g, this.b = u.b, this.a = u.a, this;
4321
+ }
4322
+ getRGB(u = new W()) {
4323
+ return u.setRGB(this.r, this.g, this.b);
4324
+ }
4325
+ getRGBByBg(u = new W()) {
4326
+ const r = this.a, t = r * this.r + (1 - r) * u.r, n = r * this.g + (1 - r) * u.g, a = r * this.b + (1 - r) * u.b;
4327
+ return new W(t, n, a);
4328
+ }
4329
+ getHex() {
4330
+ return Du(this.r * 255, 0, 255) << 16 ^ Du(this.g * 255, 0, 255) << 8 ^ Du(this.b * 255, 0, 255) << 0;
4331
+ }
4332
+ getHSL(u) {
4333
+ const r = this.r, t = this.g, n = this.b, a = Math.max(r, t, n), o = Math.min(r, t, n);
4334
+ let s = 0, l;
4335
+ const c = (o + a) / 2;
4336
+ if (o === a)
4337
+ s = 0, l = 0;
4338
+ else {
4339
+ const p = a - o;
4340
+ switch (l = c <= 0.5 ? p / (a + o) : p / (2 - a - o), a) {
4341
+ case r:
4342
+ s = (t - n) / p + (t < n ? 6 : 0);
4343
+ break;
4344
+ case t:
4345
+ s = (n - r) / p + 2;
4346
+ break;
4347
+ case n:
4348
+ s = (r - t) / p + 4;
4349
+ break;
4350
+ }
4351
+ s /= 6;
4352
+ }
4353
+ return u.h = s, u.s = l, u.l = c, u;
4354
+ }
4355
+ getStyle() {
4356
+ return this.a === 1 ? `rgb(${this.r * 255 | 0},${this.g * 255 | 0},${this.b * 255 | 0})` : `rgba(${this.r * 255 | 0},${this.g * 255 | 0},${this.b * 255 | 0},${this.a || 1})`;
4357
+ }
4358
+ getHexString() {
4359
+ return "#" + ("000000" + this.getHex().toString(16)).slice(-6);
4360
+ }
4361
+ /** custom */
4362
+ getBrightness() {
4363
+ let u = (this.r * 255 * 299 + this.g * 255 * 587 + this.b * 255 * 144) / 1e3;
4364
+ return u += (255 - u) * (255 - this.a * 255) / 255, u;
4365
+ }
4366
+ getContrastString() {
4367
+ return this.getBrightness() > 125 ? "#2f2f2f" : "#f2f2f2";
4368
+ }
4369
+ // operates
4370
+ getComplementary(u = new W()) {
4371
+ const r = this.toArray(), t = [0, 0, 0, 1];
4372
+ for (let n = 0; n < r.length; n++)
4373
+ if (n < 3)
4374
+ t[n] = 1 - r[n];
4375
+ else if (n === 3)
4376
+ r[n] > 1 || r[n] <= 0 ? t[n] = 1 : t[n] = Math.max(Math.min(parseFloat(r[n].toFixed(2)), 1), 0);
4377
+ else
4378
+ continue;
4379
+ return u.setRGBA(t[0], t[1], t[2], parseFloat(t[3].toFixed(2)));
4380
+ }
4381
+ // getComplementaryString 补色
4382
+ getComplementaryString() {
4383
+ return this.getComplementary().getStyle();
4384
+ }
4385
+ // getLightenOrDarken 稍亮/稍暗
4386
+ getLightenOrDarken(u) {
4387
+ if (typeof u > "u" || u >= 1) return this.getHexString();
4388
+ const r = this.getRGBByBg(), t = r.r * u + (1 - u), n = r.g * u + (1 - u), a = r.b * u + (1 - u);
4389
+ return new W(t, n, a).getHexString();
4390
+ }
4391
+ getNormalized() {
4392
+ return [
4393
+ parseFloat(Math.max(Math.min(this.r, 1), 0).toFixed(2)),
4394
+ parseFloat(Math.max(Math.min(this.g, 1), 0).toFixed(2)),
4395
+ parseFloat(Math.max(Math.min(this.b, 1), 0).toFixed(2)),
4396
+ parseFloat(Math.max(Math.min(this.a, 1), 0).toFixed(2))
4397
+ ];
4398
+ }
4399
+ getNormalized3() {
4400
+ return [
4401
+ parseFloat(Math.max(Math.min(this.r, 1), 0).toFixed(2)),
4402
+ parseFloat(Math.max(Math.min(this.g, 1), 0).toFixed(2)),
4403
+ parseFloat(Math.max(Math.min(this.b, 1), 0).toFixed(2))
4404
+ ];
4405
+ }
4406
+ offsetHSL(u, r, t) {
4407
+ return this.getHSL(_), _.h += u, _.s += r, _.l += t, this.setHSL(_.h, _.s, _.l), this;
4408
+ }
4409
+ add(u) {
4410
+ return this.r += u.r, this.g += u.g, this.b += u.b, this;
4411
+ }
4412
+ addColors(u, r) {
4413
+ return this.r = u.r + r.r, this.g = u.g + r.g, this.b = u.b + r.b, this;
4414
+ }
4415
+ addScalar(u) {
4416
+ return this.r += u, this.g += u, this.b += u, this;
4417
+ }
4418
+ sub(u) {
4419
+ return this.r = Math.max(0, this.r - u.r), this.g = Math.max(0, this.g - u.g), this.b = Math.max(0, this.b - u.b), this;
4420
+ }
4421
+ multiply(u) {
4422
+ return this.r *= u.r, this.g *= u.g, this.b *= u.b, this;
4423
+ }
4424
+ multiplyScalar(u) {
4425
+ return this.r *= u, this.g *= u, this.b *= u, this;
4426
+ }
4427
+ lerp(u, r) {
4428
+ return this.r += (u.r - this.r) * r, this.g += (u.g - this.g) * r, this.b += (u.b - this.b) * r, this;
4429
+ }
4430
+ lerpColors(u, r, t) {
4431
+ return this.r = u.r + (r.r - u.r) * t, this.g = u.g + (r.g - u.g) * t, this.b = u.b + (r.b - u.b) * t, this;
4432
+ }
4433
+ lerpHSL(u, r) {
4434
+ this.getHSL(_), u.getHSL(wu);
4435
+ const t = Lu(_.h, wu.h, r), n = Lu(_.s, wu.s, r), a = Lu(_.l, wu.l, r);
4436
+ return this.setHSL(t, n, a), this;
4437
+ }
4438
+ equals(u) {
4439
+ return u.r === this.r && u.g === this.g && u.b === this.b;
4440
+ }
4441
+ // fromArray(array: [number, number, number, number], offset = 0): this {
4442
+ fromArray(u, r = 0) {
4443
+ return this.r = u[r], this.g = u[r + 1], this.b = u[r + 2], this.a = u[r + 3], this;
4444
+ }
4445
+ toArray(u = [0, 0, 0, 0], r = 0) {
4446
+ return u[r] = this.r, u[r + 1] = this.g, u[r + 2] = this.b, u[r + 3] = this.a, u;
4447
+ }
4448
+ fromBufferAttribute(u, r) {
4449
+ return this.r = u.getX(r), this.g = u.getY(r), this.b = u.getZ(r), u.normalized === !0 && (this.r /= 255, this.g /= 255, this.b /= 255), this;
4450
+ }
4451
+ toJSON() {
4452
+ return this.getHex();
4453
+ }
4454
+ *[Symbol.iterator]() {
4455
+ yield this.r, yield this.g, yield this.b;
4456
+ }
4457
+ }
4458
+ const Y = new W(), Bu = { h: 0, s: 0, l: 0 };
4459
+ function xr(e) {
4460
+ return new Worker(
4461
+ "/environment.worker.js",
4462
+ {
4463
+ type: "module",
4464
+ name: e == null ? void 0 : e.name
4465
+ }
4466
+ );
4467
+ }
4468
+ export {
4469
+ W as Color,
4470
+ Sr as ColorsEnum,
4471
+ xr as EnvironmentWorker,
4472
+ Fr as GLOB,
4473
+ Ge as defaultConfig
4474
+ };