sanity-plugin-sgntech-interview 1.0.0

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.
@@ -0,0 +1,4653 @@
1
+ import { distExports } from "./index.js";
2
+ import { jsx, jsxs, Fragment } from "react/jsx-runtime";
3
+ import { createElement } from "react";
4
+ class Schema {
5
+ /**
6
+ * @param {SchemaType['property']} property
7
+ * Property.
8
+ * @param {SchemaType['normal']} normal
9
+ * Normal.
10
+ * @param {Space | undefined} [space]
11
+ * Space.
12
+ * @returns
13
+ * Schema.
14
+ */
15
+ constructor(property, normal, space) {
16
+ this.normal = normal, this.property = property, space && (this.space = space);
17
+ }
18
+ }
19
+ Schema.prototype.normal = {};
20
+ Schema.prototype.property = {};
21
+ Schema.prototype.space = void 0;
22
+ function merge(definitions, space) {
23
+ const property = {}, normal = {};
24
+ for (const definition of definitions)
25
+ Object.assign(property, definition.property), Object.assign(normal, definition.normal);
26
+ return new Schema(property, normal, space);
27
+ }
28
+ function normalize(value) {
29
+ return value.toLowerCase();
30
+ }
31
+ class Info {
32
+ /**
33
+ * @param {string} property
34
+ * Property.
35
+ * @param {string} attribute
36
+ * Attribute.
37
+ * @returns
38
+ * Info.
39
+ */
40
+ constructor(property, attribute) {
41
+ this.attribute = attribute, this.property = property;
42
+ }
43
+ }
44
+ Info.prototype.attribute = "";
45
+ Info.prototype.booleanish = !1;
46
+ Info.prototype.boolean = !1;
47
+ Info.prototype.commaOrSpaceSeparated = !1;
48
+ Info.prototype.commaSeparated = !1;
49
+ Info.prototype.defined = !1;
50
+ Info.prototype.mustUseProperty = !1;
51
+ Info.prototype.number = !1;
52
+ Info.prototype.overloadedBoolean = !1;
53
+ Info.prototype.property = "";
54
+ Info.prototype.spaceSeparated = !1;
55
+ Info.prototype.space = void 0;
56
+ let powers = 0;
57
+ const boolean = increment(), booleanish = increment(), overloadedBoolean = increment(), number = increment(), spaceSeparated = increment(), commaSeparated = increment(), commaOrSpaceSeparated = increment();
58
+ function increment() {
59
+ return 2 ** ++powers;
60
+ }
61
+ var types = /* @__PURE__ */ Object.freeze({
62
+ __proto__: null,
63
+ boolean,
64
+ booleanish,
65
+ commaOrSpaceSeparated,
66
+ commaSeparated,
67
+ number,
68
+ overloadedBoolean,
69
+ spaceSeparated
70
+ });
71
+ const checks = (
72
+ /** @type {ReadonlyArray<keyof typeof types>} */
73
+ Object.keys(types)
74
+ );
75
+ class DefinedInfo extends Info {
76
+ /**
77
+ * @constructor
78
+ * @param {string} property
79
+ * Property.
80
+ * @param {string} attribute
81
+ * Attribute.
82
+ * @param {number | null | undefined} [mask]
83
+ * Mask.
84
+ * @param {Space | undefined} [space]
85
+ * Space.
86
+ * @returns
87
+ * Info.
88
+ */
89
+ constructor(property, attribute, mask, space) {
90
+ let index = -1;
91
+ if (super(property, attribute), mark(this, "space", space), typeof mask == "number")
92
+ for (; ++index < checks.length; ) {
93
+ const check = checks[index];
94
+ mark(this, checks[index], (mask & types[check]) === types[check]);
95
+ }
96
+ }
97
+ }
98
+ DefinedInfo.prototype.defined = !0;
99
+ function mark(values, key, value) {
100
+ value && (values[key] = value);
101
+ }
102
+ function create(definition) {
103
+ const properties = {}, normals = {};
104
+ for (const [property, value] of Object.entries(definition.properties)) {
105
+ const info = new DefinedInfo(
106
+ property,
107
+ definition.transform(definition.attributes || {}, property),
108
+ value,
109
+ definition.space
110
+ );
111
+ definition.mustUseProperty && definition.mustUseProperty.includes(property) && (info.mustUseProperty = !0), properties[property] = info, normals[normalize(property)] = property, normals[normalize(info.attribute)] = property;
112
+ }
113
+ return new Schema(properties, normals, definition.space);
114
+ }
115
+ const aria = create({
116
+ properties: {
117
+ ariaActiveDescendant: null,
118
+ ariaAtomic: booleanish,
119
+ ariaAutoComplete: null,
120
+ ariaBusy: booleanish,
121
+ ariaChecked: booleanish,
122
+ ariaColCount: number,
123
+ ariaColIndex: number,
124
+ ariaColSpan: number,
125
+ ariaControls: spaceSeparated,
126
+ ariaCurrent: null,
127
+ ariaDescribedBy: spaceSeparated,
128
+ ariaDetails: null,
129
+ ariaDisabled: booleanish,
130
+ ariaDropEffect: spaceSeparated,
131
+ ariaErrorMessage: null,
132
+ ariaExpanded: booleanish,
133
+ ariaFlowTo: spaceSeparated,
134
+ ariaGrabbed: booleanish,
135
+ ariaHasPopup: null,
136
+ ariaHidden: booleanish,
137
+ ariaInvalid: null,
138
+ ariaKeyShortcuts: null,
139
+ ariaLabel: null,
140
+ ariaLabelledBy: spaceSeparated,
141
+ ariaLevel: number,
142
+ ariaLive: null,
143
+ ariaModal: booleanish,
144
+ ariaMultiLine: booleanish,
145
+ ariaMultiSelectable: booleanish,
146
+ ariaOrientation: null,
147
+ ariaOwns: spaceSeparated,
148
+ ariaPlaceholder: null,
149
+ ariaPosInSet: number,
150
+ ariaPressed: booleanish,
151
+ ariaReadOnly: booleanish,
152
+ ariaRelevant: null,
153
+ ariaRequired: booleanish,
154
+ ariaRoleDescription: spaceSeparated,
155
+ ariaRowCount: number,
156
+ ariaRowIndex: number,
157
+ ariaRowSpan: number,
158
+ ariaSelected: booleanish,
159
+ ariaSetSize: number,
160
+ ariaSort: null,
161
+ ariaValueMax: number,
162
+ ariaValueMin: number,
163
+ ariaValueNow: number,
164
+ ariaValueText: null,
165
+ role: null
166
+ },
167
+ transform(_2, property) {
168
+ return property === "role" ? property : "aria-" + property.slice(4).toLowerCase();
169
+ }
170
+ });
171
+ function caseSensitiveTransform(attributes2, attribute) {
172
+ return attribute in attributes2 ? attributes2[attribute] : attribute;
173
+ }
174
+ function caseInsensitiveTransform(attributes2, property) {
175
+ return caseSensitiveTransform(attributes2, property.toLowerCase());
176
+ }
177
+ const html$1 = create({
178
+ attributes: {
179
+ acceptcharset: "accept-charset",
180
+ classname: "class",
181
+ htmlfor: "for",
182
+ httpequiv: "http-equiv"
183
+ },
184
+ mustUseProperty: ["checked", "multiple", "muted", "selected"],
185
+ properties: {
186
+ // Standard Properties.
187
+ abbr: null,
188
+ accept: commaSeparated,
189
+ acceptCharset: spaceSeparated,
190
+ accessKey: spaceSeparated,
191
+ action: null,
192
+ allow: null,
193
+ allowFullScreen: boolean,
194
+ allowPaymentRequest: boolean,
195
+ allowUserMedia: boolean,
196
+ alpha: boolean,
197
+ alt: null,
198
+ as: null,
199
+ async: boolean,
200
+ autoCapitalize: null,
201
+ autoComplete: spaceSeparated,
202
+ autoFocus: boolean,
203
+ autoPlay: boolean,
204
+ blocking: spaceSeparated,
205
+ capture: null,
206
+ charSet: null,
207
+ checked: boolean,
208
+ cite: null,
209
+ className: spaceSeparated,
210
+ closedBy: null,
211
+ colorSpace: null,
212
+ cols: number,
213
+ colSpan: number,
214
+ command: null,
215
+ commandFor: null,
216
+ content: null,
217
+ contentEditable: booleanish,
218
+ controls: boolean,
219
+ controlsList: spaceSeparated,
220
+ coords: number | commaSeparated,
221
+ crossOrigin: null,
222
+ data: null,
223
+ dateTime: null,
224
+ decoding: null,
225
+ default: boolean,
226
+ defer: boolean,
227
+ dir: null,
228
+ dirName: null,
229
+ disabled: boolean,
230
+ download: overloadedBoolean,
231
+ draggable: booleanish,
232
+ encType: null,
233
+ enterKeyHint: null,
234
+ fetchPriority: null,
235
+ form: null,
236
+ formAction: null,
237
+ formEncType: null,
238
+ formMethod: null,
239
+ formNoValidate: boolean,
240
+ formTarget: null,
241
+ headers: spaceSeparated,
242
+ height: number,
243
+ hidden: overloadedBoolean,
244
+ high: number,
245
+ href: null,
246
+ hrefLang: null,
247
+ htmlFor: spaceSeparated,
248
+ httpEquiv: spaceSeparated,
249
+ id: null,
250
+ imageSizes: null,
251
+ imageSrcSet: null,
252
+ inert: boolean,
253
+ inputMode: null,
254
+ integrity: null,
255
+ is: null,
256
+ isMap: boolean,
257
+ itemId: null,
258
+ itemProp: spaceSeparated,
259
+ itemRef: spaceSeparated,
260
+ itemScope: boolean,
261
+ itemType: spaceSeparated,
262
+ kind: null,
263
+ label: null,
264
+ lang: null,
265
+ language: null,
266
+ list: null,
267
+ loading: null,
268
+ loop: boolean,
269
+ low: number,
270
+ manifest: null,
271
+ max: null,
272
+ maxLength: number,
273
+ media: null,
274
+ method: null,
275
+ min: null,
276
+ minLength: number,
277
+ multiple: boolean,
278
+ muted: boolean,
279
+ name: null,
280
+ nonce: null,
281
+ noModule: boolean,
282
+ noValidate: boolean,
283
+ onAbort: null,
284
+ onAfterPrint: null,
285
+ onAuxClick: null,
286
+ onBeforeMatch: null,
287
+ onBeforePrint: null,
288
+ onBeforeToggle: null,
289
+ onBeforeUnload: null,
290
+ onBlur: null,
291
+ onCancel: null,
292
+ onCanPlay: null,
293
+ onCanPlayThrough: null,
294
+ onChange: null,
295
+ onClick: null,
296
+ onClose: null,
297
+ onContextLost: null,
298
+ onContextMenu: null,
299
+ onContextRestored: null,
300
+ onCopy: null,
301
+ onCueChange: null,
302
+ onCut: null,
303
+ onDblClick: null,
304
+ onDrag: null,
305
+ onDragEnd: null,
306
+ onDragEnter: null,
307
+ onDragExit: null,
308
+ onDragLeave: null,
309
+ onDragOver: null,
310
+ onDragStart: null,
311
+ onDrop: null,
312
+ onDurationChange: null,
313
+ onEmptied: null,
314
+ onEnded: null,
315
+ onError: null,
316
+ onFocus: null,
317
+ onFormData: null,
318
+ onHashChange: null,
319
+ onInput: null,
320
+ onInvalid: null,
321
+ onKeyDown: null,
322
+ onKeyPress: null,
323
+ onKeyUp: null,
324
+ onLanguageChange: null,
325
+ onLoad: null,
326
+ onLoadedData: null,
327
+ onLoadedMetadata: null,
328
+ onLoadEnd: null,
329
+ onLoadStart: null,
330
+ onMessage: null,
331
+ onMessageError: null,
332
+ onMouseDown: null,
333
+ onMouseEnter: null,
334
+ onMouseLeave: null,
335
+ onMouseMove: null,
336
+ onMouseOut: null,
337
+ onMouseOver: null,
338
+ onMouseUp: null,
339
+ onOffline: null,
340
+ onOnline: null,
341
+ onPageHide: null,
342
+ onPageShow: null,
343
+ onPaste: null,
344
+ onPause: null,
345
+ onPlay: null,
346
+ onPlaying: null,
347
+ onPopState: null,
348
+ onProgress: null,
349
+ onRateChange: null,
350
+ onRejectionHandled: null,
351
+ onReset: null,
352
+ onResize: null,
353
+ onScroll: null,
354
+ onScrollEnd: null,
355
+ onSecurityPolicyViolation: null,
356
+ onSeeked: null,
357
+ onSeeking: null,
358
+ onSelect: null,
359
+ onSlotChange: null,
360
+ onStalled: null,
361
+ onStorage: null,
362
+ onSubmit: null,
363
+ onSuspend: null,
364
+ onTimeUpdate: null,
365
+ onToggle: null,
366
+ onUnhandledRejection: null,
367
+ onUnload: null,
368
+ onVolumeChange: null,
369
+ onWaiting: null,
370
+ onWheel: null,
371
+ open: boolean,
372
+ optimum: number,
373
+ pattern: null,
374
+ ping: spaceSeparated,
375
+ placeholder: null,
376
+ playsInline: boolean,
377
+ popover: null,
378
+ popoverTarget: null,
379
+ popoverTargetAction: null,
380
+ poster: null,
381
+ preload: null,
382
+ readOnly: boolean,
383
+ referrerPolicy: null,
384
+ rel: spaceSeparated,
385
+ required: boolean,
386
+ reversed: boolean,
387
+ rows: number,
388
+ rowSpan: number,
389
+ sandbox: spaceSeparated,
390
+ scope: null,
391
+ scoped: boolean,
392
+ seamless: boolean,
393
+ selected: boolean,
394
+ shadowRootClonable: boolean,
395
+ shadowRootCustomElementRegistry: boolean,
396
+ shadowRootDelegatesFocus: boolean,
397
+ shadowRootMode: null,
398
+ shadowRootSerializable: boolean,
399
+ shape: null,
400
+ size: number,
401
+ sizes: null,
402
+ slot: null,
403
+ span: number,
404
+ spellCheck: booleanish,
405
+ src: null,
406
+ srcDoc: null,
407
+ srcLang: null,
408
+ srcSet: null,
409
+ start: number,
410
+ step: null,
411
+ style: null,
412
+ tabIndex: number,
413
+ target: null,
414
+ title: null,
415
+ translate: null,
416
+ type: null,
417
+ typeMustMatch: boolean,
418
+ useMap: null,
419
+ value: booleanish,
420
+ width: number,
421
+ wrap: null,
422
+ writingSuggestions: null,
423
+ // Legacy.
424
+ // See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis
425
+ align: null,
426
+ // Several. Use CSS `text-align` instead,
427
+ aLink: null,
428
+ // `<body>`. Use CSS `a:active {color}` instead
429
+ archive: spaceSeparated,
430
+ // `<object>`. List of URIs to archives
431
+ axis: null,
432
+ // `<td>` and `<th>`. Use `scope` on `<th>`
433
+ background: null,
434
+ // `<body>`. Use CSS `background-image` instead
435
+ bgColor: null,
436
+ // `<body>` and table elements. Use CSS `background-color` instead
437
+ border: number,
438
+ // `<table>`. Use CSS `border-width` instead,
439
+ borderColor: null,
440
+ // `<table>`. Use CSS `border-color` instead,
441
+ bottomMargin: number,
442
+ // `<body>`
443
+ cellPadding: null,
444
+ // `<table>`
445
+ cellSpacing: null,
446
+ // `<table>`
447
+ char: null,
448
+ // Several table elements. When `align=char`, sets the character to align on
449
+ charOff: null,
450
+ // Several table elements. When `char`, offsets the alignment
451
+ classId: null,
452
+ // `<object>`
453
+ clear: null,
454
+ // `<br>`. Use CSS `clear` instead
455
+ code: null,
456
+ // `<object>`
457
+ codeBase: null,
458
+ // `<object>`
459
+ codeType: null,
460
+ // `<object>`
461
+ color: null,
462
+ // `<font>` and `<hr>`. Use CSS instead
463
+ compact: boolean,
464
+ // Lists. Use CSS to reduce space between items instead
465
+ declare: boolean,
466
+ // `<object>`
467
+ event: null,
468
+ // `<script>`
469
+ face: null,
470
+ // `<font>`. Use CSS instead
471
+ frame: null,
472
+ // `<table>`
473
+ frameBorder: null,
474
+ // `<iframe>`. Use CSS `border` instead
475
+ hSpace: number,
476
+ // `<img>` and `<object>`
477
+ leftMargin: number,
478
+ // `<body>`
479
+ link: null,
480
+ // `<body>`. Use CSS `a:link {color: *}` instead
481
+ longDesc: null,
482
+ // `<frame>`, `<iframe>`, and `<img>`. Use an `<a>`
483
+ lowSrc: null,
484
+ // `<img>`. Use a `<picture>`
485
+ marginHeight: number,
486
+ // `<body>`
487
+ marginWidth: number,
488
+ // `<body>`
489
+ noResize: boolean,
490
+ // `<frame>`
491
+ noHref: boolean,
492
+ // `<area>`. Use no href instead of an explicit `nohref`
493
+ noShade: boolean,
494
+ // `<hr>`. Use background-color and height instead of borders
495
+ noWrap: boolean,
496
+ // `<td>` and `<th>`
497
+ object: null,
498
+ // `<applet>`
499
+ profile: null,
500
+ // `<head>`
501
+ prompt: null,
502
+ // `<isindex>`
503
+ rev: null,
504
+ // `<link>`
505
+ rightMargin: number,
506
+ // `<body>`
507
+ rules: null,
508
+ // `<table>`
509
+ scheme: null,
510
+ // `<meta>`
511
+ scrolling: booleanish,
512
+ // `<frame>`. Use overflow in the child context
513
+ standby: null,
514
+ // `<object>`
515
+ summary: null,
516
+ // `<table>`
517
+ text: null,
518
+ // `<body>`. Use CSS `color` instead
519
+ topMargin: number,
520
+ // `<body>`
521
+ valueType: null,
522
+ // `<param>`
523
+ version: null,
524
+ // `<html>`. Use a doctype.
525
+ vAlign: null,
526
+ // Several. Use CSS `vertical-align` instead
527
+ vLink: null,
528
+ // `<body>`. Use CSS `a:visited {color}` instead
529
+ vSpace: number,
530
+ // `<img>` and `<object>`
531
+ // Non-standard Properties.
532
+ allowTransparency: null,
533
+ autoCorrect: null,
534
+ autoSave: null,
535
+ credentialless: boolean,
536
+ disablePictureInPicture: boolean,
537
+ disableRemotePlayback: boolean,
538
+ exportParts: commaSeparated,
539
+ part: spaceSeparated,
540
+ prefix: null,
541
+ property: null,
542
+ results: number,
543
+ security: null,
544
+ unselectable: null
545
+ },
546
+ space: "html",
547
+ transform: caseInsensitiveTransform
548
+ }), svg$1 = create({
549
+ attributes: {
550
+ accentHeight: "accent-height",
551
+ alignmentBaseline: "alignment-baseline",
552
+ arabicForm: "arabic-form",
553
+ baselineShift: "baseline-shift",
554
+ capHeight: "cap-height",
555
+ className: "class",
556
+ clipPath: "clip-path",
557
+ clipRule: "clip-rule",
558
+ colorInterpolation: "color-interpolation",
559
+ colorInterpolationFilters: "color-interpolation-filters",
560
+ colorProfile: "color-profile",
561
+ colorRendering: "color-rendering",
562
+ crossOrigin: "crossorigin",
563
+ dataType: "datatype",
564
+ dominantBaseline: "dominant-baseline",
565
+ enableBackground: "enable-background",
566
+ fillOpacity: "fill-opacity",
567
+ fillRule: "fill-rule",
568
+ floodColor: "flood-color",
569
+ floodOpacity: "flood-opacity",
570
+ fontFamily: "font-family",
571
+ fontSize: "font-size",
572
+ fontSizeAdjust: "font-size-adjust",
573
+ fontStretch: "font-stretch",
574
+ fontStyle: "font-style",
575
+ fontVariant: "font-variant",
576
+ fontWeight: "font-weight",
577
+ glyphName: "glyph-name",
578
+ glyphOrientationHorizontal: "glyph-orientation-horizontal",
579
+ glyphOrientationVertical: "glyph-orientation-vertical",
580
+ hrefLang: "hreflang",
581
+ horizAdvX: "horiz-adv-x",
582
+ horizOriginX: "horiz-origin-x",
583
+ horizOriginY: "horiz-origin-y",
584
+ imageRendering: "image-rendering",
585
+ letterSpacing: "letter-spacing",
586
+ lightingColor: "lighting-color",
587
+ markerEnd: "marker-end",
588
+ markerMid: "marker-mid",
589
+ markerStart: "marker-start",
590
+ maskType: "mask-type",
591
+ navDown: "nav-down",
592
+ navDownLeft: "nav-down-left",
593
+ navDownRight: "nav-down-right",
594
+ navLeft: "nav-left",
595
+ navNext: "nav-next",
596
+ navPrev: "nav-prev",
597
+ navRight: "nav-right",
598
+ navUp: "nav-up",
599
+ navUpLeft: "nav-up-left",
600
+ navUpRight: "nav-up-right",
601
+ onAbort: "onabort",
602
+ onActivate: "onactivate",
603
+ onAfterPrint: "onafterprint",
604
+ onBeforePrint: "onbeforeprint",
605
+ onBegin: "onbegin",
606
+ onCancel: "oncancel",
607
+ onCanPlay: "oncanplay",
608
+ onCanPlayThrough: "oncanplaythrough",
609
+ onChange: "onchange",
610
+ onClick: "onclick",
611
+ onClose: "onclose",
612
+ onCopy: "oncopy",
613
+ onCueChange: "oncuechange",
614
+ onCut: "oncut",
615
+ onDblClick: "ondblclick",
616
+ onDrag: "ondrag",
617
+ onDragEnd: "ondragend",
618
+ onDragEnter: "ondragenter",
619
+ onDragExit: "ondragexit",
620
+ onDragLeave: "ondragleave",
621
+ onDragOver: "ondragover",
622
+ onDragStart: "ondragstart",
623
+ onDrop: "ondrop",
624
+ onDurationChange: "ondurationchange",
625
+ onEmptied: "onemptied",
626
+ onEnd: "onend",
627
+ onEnded: "onended",
628
+ onError: "onerror",
629
+ onFocus: "onfocus",
630
+ onFocusIn: "onfocusin",
631
+ onFocusOut: "onfocusout",
632
+ onHashChange: "onhashchange",
633
+ onInput: "oninput",
634
+ onInvalid: "oninvalid",
635
+ onKeyDown: "onkeydown",
636
+ onKeyPress: "onkeypress",
637
+ onKeyUp: "onkeyup",
638
+ onLoad: "onload",
639
+ onLoadedData: "onloadeddata",
640
+ onLoadedMetadata: "onloadedmetadata",
641
+ onLoadStart: "onloadstart",
642
+ onMessage: "onmessage",
643
+ onMouseDown: "onmousedown",
644
+ onMouseEnter: "onmouseenter",
645
+ onMouseLeave: "onmouseleave",
646
+ onMouseMove: "onmousemove",
647
+ onMouseOut: "onmouseout",
648
+ onMouseOver: "onmouseover",
649
+ onMouseUp: "onmouseup",
650
+ onMouseWheel: "onmousewheel",
651
+ onOffline: "onoffline",
652
+ onOnline: "ononline",
653
+ onPageHide: "onpagehide",
654
+ onPageShow: "onpageshow",
655
+ onPaste: "onpaste",
656
+ onPause: "onpause",
657
+ onPlay: "onplay",
658
+ onPlaying: "onplaying",
659
+ onPopState: "onpopstate",
660
+ onProgress: "onprogress",
661
+ onRateChange: "onratechange",
662
+ onRepeat: "onrepeat",
663
+ onReset: "onreset",
664
+ onResize: "onresize",
665
+ onScroll: "onscroll",
666
+ onSeeked: "onseeked",
667
+ onSeeking: "onseeking",
668
+ onSelect: "onselect",
669
+ onShow: "onshow",
670
+ onStalled: "onstalled",
671
+ onStorage: "onstorage",
672
+ onSubmit: "onsubmit",
673
+ onSuspend: "onsuspend",
674
+ onTimeUpdate: "ontimeupdate",
675
+ onToggle: "ontoggle",
676
+ onUnload: "onunload",
677
+ onVolumeChange: "onvolumechange",
678
+ onWaiting: "onwaiting",
679
+ onZoom: "onzoom",
680
+ overlinePosition: "overline-position",
681
+ overlineThickness: "overline-thickness",
682
+ paintOrder: "paint-order",
683
+ panose1: "panose-1",
684
+ pointerEvents: "pointer-events",
685
+ referrerPolicy: "referrerpolicy",
686
+ renderingIntent: "rendering-intent",
687
+ shapeRendering: "shape-rendering",
688
+ stopColor: "stop-color",
689
+ stopOpacity: "stop-opacity",
690
+ strikethroughPosition: "strikethrough-position",
691
+ strikethroughThickness: "strikethrough-thickness",
692
+ strokeDashArray: "stroke-dasharray",
693
+ strokeDashOffset: "stroke-dashoffset",
694
+ strokeLineCap: "stroke-linecap",
695
+ strokeLineJoin: "stroke-linejoin",
696
+ strokeMiterLimit: "stroke-miterlimit",
697
+ strokeOpacity: "stroke-opacity",
698
+ strokeWidth: "stroke-width",
699
+ tabIndex: "tabindex",
700
+ textAnchor: "text-anchor",
701
+ textDecoration: "text-decoration",
702
+ textRendering: "text-rendering",
703
+ transformOrigin: "transform-origin",
704
+ typeOf: "typeof",
705
+ underlinePosition: "underline-position",
706
+ underlineThickness: "underline-thickness",
707
+ unicodeBidi: "unicode-bidi",
708
+ unicodeRange: "unicode-range",
709
+ unitsPerEm: "units-per-em",
710
+ vAlphabetic: "v-alphabetic",
711
+ vHanging: "v-hanging",
712
+ vIdeographic: "v-ideographic",
713
+ vMathematical: "v-mathematical",
714
+ vectorEffect: "vector-effect",
715
+ vertAdvY: "vert-adv-y",
716
+ vertOriginX: "vert-origin-x",
717
+ vertOriginY: "vert-origin-y",
718
+ wordSpacing: "word-spacing",
719
+ writingMode: "writing-mode",
720
+ xHeight: "x-height",
721
+ // These were camelcased in Tiny. Now lowercased in SVG 2
722
+ playbackOrder: "playbackorder",
723
+ timelineBegin: "timelinebegin"
724
+ },
725
+ properties: {
726
+ about: commaOrSpaceSeparated,
727
+ accentHeight: number,
728
+ accumulate: null,
729
+ additive: null,
730
+ alignmentBaseline: null,
731
+ alphabetic: number,
732
+ amplitude: number,
733
+ arabicForm: null,
734
+ ascent: number,
735
+ attributeName: null,
736
+ attributeType: null,
737
+ azimuth: number,
738
+ bandwidth: null,
739
+ baselineShift: null,
740
+ baseFrequency: null,
741
+ baseProfile: null,
742
+ bbox: null,
743
+ begin: null,
744
+ bias: number,
745
+ by: null,
746
+ calcMode: null,
747
+ capHeight: number,
748
+ className: spaceSeparated,
749
+ clip: null,
750
+ clipPath: null,
751
+ clipPathUnits: null,
752
+ clipRule: null,
753
+ color: null,
754
+ colorInterpolation: null,
755
+ colorInterpolationFilters: null,
756
+ colorProfile: null,
757
+ colorRendering: null,
758
+ content: null,
759
+ contentScriptType: null,
760
+ contentStyleType: null,
761
+ crossOrigin: null,
762
+ cursor: null,
763
+ cx: null,
764
+ cy: null,
765
+ d: null,
766
+ dataType: null,
767
+ defaultAction: null,
768
+ descent: number,
769
+ diffuseConstant: number,
770
+ direction: null,
771
+ display: null,
772
+ dur: null,
773
+ divisor: number,
774
+ dominantBaseline: null,
775
+ download: boolean,
776
+ dx: null,
777
+ dy: null,
778
+ edgeMode: null,
779
+ editable: null,
780
+ elevation: number,
781
+ enableBackground: null,
782
+ end: null,
783
+ event: null,
784
+ exponent: number,
785
+ externalResourcesRequired: null,
786
+ fill: null,
787
+ fillOpacity: number,
788
+ fillRule: null,
789
+ filter: null,
790
+ filterRes: null,
791
+ filterUnits: null,
792
+ floodColor: null,
793
+ floodOpacity: null,
794
+ focusable: null,
795
+ focusHighlight: null,
796
+ fontFamily: null,
797
+ fontSize: null,
798
+ fontSizeAdjust: null,
799
+ fontStretch: null,
800
+ fontStyle: null,
801
+ fontVariant: null,
802
+ fontWeight: null,
803
+ format: null,
804
+ fr: null,
805
+ from: null,
806
+ fx: null,
807
+ fy: null,
808
+ g1: commaSeparated,
809
+ g2: commaSeparated,
810
+ glyphName: commaSeparated,
811
+ glyphOrientationHorizontal: null,
812
+ glyphOrientationVertical: null,
813
+ glyphRef: null,
814
+ gradientTransform: null,
815
+ gradientUnits: null,
816
+ handler: null,
817
+ hanging: number,
818
+ hatchContentUnits: null,
819
+ hatchUnits: null,
820
+ height: null,
821
+ href: null,
822
+ hrefLang: null,
823
+ horizAdvX: number,
824
+ horizOriginX: number,
825
+ horizOriginY: number,
826
+ id: null,
827
+ ideographic: number,
828
+ imageRendering: null,
829
+ initialVisibility: null,
830
+ in: null,
831
+ in2: null,
832
+ intercept: number,
833
+ k: number,
834
+ k1: number,
835
+ k2: number,
836
+ k3: number,
837
+ k4: number,
838
+ kernelMatrix: commaOrSpaceSeparated,
839
+ kernelUnitLength: null,
840
+ keyPoints: null,
841
+ // SEMI_COLON_SEPARATED
842
+ keySplines: null,
843
+ // SEMI_COLON_SEPARATED
844
+ keyTimes: null,
845
+ // SEMI_COLON_SEPARATED
846
+ kerning: null,
847
+ lang: null,
848
+ lengthAdjust: null,
849
+ letterSpacing: null,
850
+ lightingColor: null,
851
+ limitingConeAngle: number,
852
+ local: null,
853
+ markerEnd: null,
854
+ markerMid: null,
855
+ markerStart: null,
856
+ markerHeight: null,
857
+ markerUnits: null,
858
+ markerWidth: null,
859
+ mask: null,
860
+ maskContentUnits: null,
861
+ maskType: null,
862
+ maskUnits: null,
863
+ mathematical: null,
864
+ max: null,
865
+ media: null,
866
+ mediaCharacterEncoding: null,
867
+ mediaContentEncodings: null,
868
+ mediaSize: number,
869
+ mediaTime: null,
870
+ method: null,
871
+ min: null,
872
+ mode: null,
873
+ name: null,
874
+ navDown: null,
875
+ navDownLeft: null,
876
+ navDownRight: null,
877
+ navLeft: null,
878
+ navNext: null,
879
+ navPrev: null,
880
+ navRight: null,
881
+ navUp: null,
882
+ navUpLeft: null,
883
+ navUpRight: null,
884
+ numOctaves: null,
885
+ observer: null,
886
+ offset: null,
887
+ onAbort: null,
888
+ onActivate: null,
889
+ onAfterPrint: null,
890
+ onBeforePrint: null,
891
+ onBegin: null,
892
+ onCancel: null,
893
+ onCanPlay: null,
894
+ onCanPlayThrough: null,
895
+ onChange: null,
896
+ onClick: null,
897
+ onClose: null,
898
+ onCopy: null,
899
+ onCueChange: null,
900
+ onCut: null,
901
+ onDblClick: null,
902
+ onDrag: null,
903
+ onDragEnd: null,
904
+ onDragEnter: null,
905
+ onDragExit: null,
906
+ onDragLeave: null,
907
+ onDragOver: null,
908
+ onDragStart: null,
909
+ onDrop: null,
910
+ onDurationChange: null,
911
+ onEmptied: null,
912
+ onEnd: null,
913
+ onEnded: null,
914
+ onError: null,
915
+ onFocus: null,
916
+ onFocusIn: null,
917
+ onFocusOut: null,
918
+ onHashChange: null,
919
+ onInput: null,
920
+ onInvalid: null,
921
+ onKeyDown: null,
922
+ onKeyPress: null,
923
+ onKeyUp: null,
924
+ onLoad: null,
925
+ onLoadedData: null,
926
+ onLoadedMetadata: null,
927
+ onLoadStart: null,
928
+ onMessage: null,
929
+ onMouseDown: null,
930
+ onMouseEnter: null,
931
+ onMouseLeave: null,
932
+ onMouseMove: null,
933
+ onMouseOut: null,
934
+ onMouseOver: null,
935
+ onMouseUp: null,
936
+ onMouseWheel: null,
937
+ onOffline: null,
938
+ onOnline: null,
939
+ onPageHide: null,
940
+ onPageShow: null,
941
+ onPaste: null,
942
+ onPause: null,
943
+ onPlay: null,
944
+ onPlaying: null,
945
+ onPopState: null,
946
+ onProgress: null,
947
+ onRateChange: null,
948
+ onRepeat: null,
949
+ onReset: null,
950
+ onResize: null,
951
+ onScroll: null,
952
+ onSeeked: null,
953
+ onSeeking: null,
954
+ onSelect: null,
955
+ onShow: null,
956
+ onStalled: null,
957
+ onStorage: null,
958
+ onSubmit: null,
959
+ onSuspend: null,
960
+ onTimeUpdate: null,
961
+ onToggle: null,
962
+ onUnload: null,
963
+ onVolumeChange: null,
964
+ onWaiting: null,
965
+ onZoom: null,
966
+ opacity: null,
967
+ operator: null,
968
+ order: null,
969
+ orient: null,
970
+ orientation: null,
971
+ origin: null,
972
+ overflow: null,
973
+ overlay: null,
974
+ overlinePosition: number,
975
+ overlineThickness: number,
976
+ paintOrder: null,
977
+ panose1: null,
978
+ path: null,
979
+ pathLength: number,
980
+ patternContentUnits: null,
981
+ patternTransform: null,
982
+ patternUnits: null,
983
+ phase: null,
984
+ ping: spaceSeparated,
985
+ pitch: null,
986
+ playbackOrder: null,
987
+ pointerEvents: null,
988
+ points: null,
989
+ pointsAtX: number,
990
+ pointsAtY: number,
991
+ pointsAtZ: number,
992
+ preserveAlpha: null,
993
+ preserveAspectRatio: null,
994
+ primitiveUnits: null,
995
+ propagate: null,
996
+ property: commaOrSpaceSeparated,
997
+ r: null,
998
+ radius: null,
999
+ referrerPolicy: null,
1000
+ refX: null,
1001
+ refY: null,
1002
+ rel: commaOrSpaceSeparated,
1003
+ rev: commaOrSpaceSeparated,
1004
+ renderingIntent: null,
1005
+ repeatCount: null,
1006
+ repeatDur: null,
1007
+ requiredExtensions: commaOrSpaceSeparated,
1008
+ requiredFeatures: commaOrSpaceSeparated,
1009
+ requiredFonts: commaOrSpaceSeparated,
1010
+ requiredFormats: commaOrSpaceSeparated,
1011
+ resource: null,
1012
+ restart: null,
1013
+ result: null,
1014
+ rotate: null,
1015
+ rx: null,
1016
+ ry: null,
1017
+ scale: null,
1018
+ seed: null,
1019
+ shapeRendering: null,
1020
+ side: null,
1021
+ slope: null,
1022
+ snapshotTime: null,
1023
+ specularConstant: number,
1024
+ specularExponent: number,
1025
+ spreadMethod: null,
1026
+ spacing: null,
1027
+ startOffset: null,
1028
+ stdDeviation: null,
1029
+ stemh: null,
1030
+ stemv: null,
1031
+ stitchTiles: null,
1032
+ stopColor: null,
1033
+ stopOpacity: null,
1034
+ strikethroughPosition: number,
1035
+ strikethroughThickness: number,
1036
+ string: null,
1037
+ stroke: null,
1038
+ strokeDashArray: commaOrSpaceSeparated,
1039
+ strokeDashOffset: null,
1040
+ strokeLineCap: null,
1041
+ strokeLineJoin: null,
1042
+ strokeMiterLimit: number,
1043
+ strokeOpacity: number,
1044
+ strokeWidth: null,
1045
+ style: null,
1046
+ surfaceScale: number,
1047
+ syncBehavior: null,
1048
+ syncBehaviorDefault: null,
1049
+ syncMaster: null,
1050
+ syncTolerance: null,
1051
+ syncToleranceDefault: null,
1052
+ systemLanguage: commaOrSpaceSeparated,
1053
+ tabIndex: number,
1054
+ tableValues: null,
1055
+ target: null,
1056
+ targetX: number,
1057
+ targetY: number,
1058
+ textAnchor: null,
1059
+ textDecoration: null,
1060
+ textRendering: null,
1061
+ textLength: null,
1062
+ timelineBegin: null,
1063
+ title: null,
1064
+ transformBehavior: null,
1065
+ type: null,
1066
+ typeOf: commaOrSpaceSeparated,
1067
+ to: null,
1068
+ transform: null,
1069
+ transformOrigin: null,
1070
+ u1: null,
1071
+ u2: null,
1072
+ underlinePosition: number,
1073
+ underlineThickness: number,
1074
+ unicode: null,
1075
+ unicodeBidi: null,
1076
+ unicodeRange: null,
1077
+ unitsPerEm: number,
1078
+ values: null,
1079
+ vAlphabetic: number,
1080
+ vMathematical: number,
1081
+ vectorEffect: null,
1082
+ vHanging: number,
1083
+ vIdeographic: number,
1084
+ version: null,
1085
+ vertAdvY: number,
1086
+ vertOriginX: number,
1087
+ vertOriginY: number,
1088
+ viewBox: null,
1089
+ viewTarget: null,
1090
+ visibility: null,
1091
+ width: null,
1092
+ widths: null,
1093
+ wordSpacing: null,
1094
+ writingMode: null,
1095
+ x: null,
1096
+ x1: null,
1097
+ x2: null,
1098
+ xChannelSelector: null,
1099
+ xHeight: number,
1100
+ y: null,
1101
+ y1: null,
1102
+ y2: null,
1103
+ yChannelSelector: null,
1104
+ z: null,
1105
+ zoomAndPan: null
1106
+ },
1107
+ space: "svg",
1108
+ transform: caseSensitiveTransform
1109
+ }), xlink = create({
1110
+ properties: {
1111
+ xLinkActuate: null,
1112
+ xLinkArcRole: null,
1113
+ xLinkHref: null,
1114
+ xLinkRole: null,
1115
+ xLinkShow: null,
1116
+ xLinkTitle: null,
1117
+ xLinkType: null
1118
+ },
1119
+ space: "xlink",
1120
+ transform(_2, property) {
1121
+ return "xlink:" + property.slice(5).toLowerCase();
1122
+ }
1123
+ }), xmlns = create({
1124
+ attributes: { xmlnsxlink: "xmlns:xlink" },
1125
+ properties: { xmlnsXLink: null, xmlns: null },
1126
+ space: "xmlns",
1127
+ transform: caseInsensitiveTransform
1128
+ }), xml = create({
1129
+ properties: { xmlBase: null, xmlLang: null, xmlSpace: null },
1130
+ space: "xml",
1131
+ transform(_2, property) {
1132
+ return "xml:" + property.slice(3).toLowerCase();
1133
+ }
1134
+ }), cap = /[A-Z]/g, dash = /-[a-z]/g, valid = /^data[-\w.:]+$/i;
1135
+ function find(schema, value) {
1136
+ const normal = normalize(value);
1137
+ let property = value, Type = Info;
1138
+ if (normal in schema.normal)
1139
+ return schema.property[schema.normal[normal]];
1140
+ if (normal.length > 4 && normal.slice(0, 4) === "data" && valid.test(value)) {
1141
+ if (value.charAt(4) === "-") {
1142
+ const rest = value.slice(5).replace(dash, camelcase);
1143
+ property = "data" + rest.charAt(0).toUpperCase() + rest.slice(1);
1144
+ } else {
1145
+ const rest = value.slice(4);
1146
+ if (!dash.test(rest)) {
1147
+ let dashes = rest.replace(cap, kebab);
1148
+ dashes.charAt(0) !== "-" && (dashes = "-" + dashes), value = "data" + dashes;
1149
+ }
1150
+ }
1151
+ Type = DefinedInfo;
1152
+ }
1153
+ return new Type(property, value);
1154
+ }
1155
+ function kebab($0) {
1156
+ return "-" + $0.toLowerCase();
1157
+ }
1158
+ function camelcase($0) {
1159
+ return $0.charAt(1).toUpperCase();
1160
+ }
1161
+ const html = merge([aria, html$1, xlink, xmlns, xml], "html"), svg = merge([aria, svg$1, xlink, xmlns, xml], "svg");
1162
+ function parse$1(value) {
1163
+ const tokens = [], input = String(value || "");
1164
+ let index = input.indexOf(","), start = 0, end = !1;
1165
+ for (; !end; ) {
1166
+ index === -1 && (index = input.length, end = !0);
1167
+ const token = input.slice(start, index).trim();
1168
+ (token || !end) && tokens.push(token), start = index + 1, index = input.indexOf(",", start);
1169
+ }
1170
+ return tokens;
1171
+ }
1172
+ const search = /[#.]/g;
1173
+ function parseSelector(selector, defaultTagName) {
1174
+ const value = selector || "", props = {};
1175
+ let start = 0, previous, tagName;
1176
+ for (; start < value.length; ) {
1177
+ search.lastIndex = start;
1178
+ const match = search.exec(value), subvalue = value.slice(start, match ? match.index : value.length);
1179
+ subvalue && (previous ? previous === "#" ? props.id = subvalue : Array.isArray(props.className) ? props.className.push(subvalue) : props.className = [subvalue] : tagName = subvalue, start += subvalue.length), match && (previous = match[0], start++);
1180
+ }
1181
+ return {
1182
+ type: "element",
1183
+ // @ts-expect-error: tag name is parsed.
1184
+ tagName: tagName || defaultTagName || "div",
1185
+ properties: props,
1186
+ children: []
1187
+ };
1188
+ }
1189
+ function parse(value) {
1190
+ const input = String(value || "").trim();
1191
+ return input ? input.split(/[ \t\n\r\f]+/g) : [];
1192
+ }
1193
+ function createH(schema, defaultTagName, caseSensitive) {
1194
+ const adjust = caseSensitive ? createAdjustMap(caseSensitive) : void 0;
1195
+ function h2(selector, properties, ...children) {
1196
+ let node;
1197
+ if (selector == null) {
1198
+ node = { type: "root", children: [] };
1199
+ const child = (
1200
+ /** @type {Child} */
1201
+ properties
1202
+ );
1203
+ children.unshift(child);
1204
+ } else {
1205
+ node = parseSelector(selector, defaultTagName);
1206
+ const lower = node.tagName.toLowerCase(), adjusted = adjust ? adjust.get(lower) : void 0;
1207
+ if (node.tagName = adjusted || lower, isChild(properties))
1208
+ children.unshift(properties);
1209
+ else
1210
+ for (const [key, value] of Object.entries(properties))
1211
+ addProperty(schema, node.properties, key, value);
1212
+ }
1213
+ for (const child of children)
1214
+ addChild(node.children, child);
1215
+ return node.type === "element" && node.tagName === "template" && (node.content = { type: "root", children: node.children }, node.children = []), node;
1216
+ }
1217
+ return h2;
1218
+ }
1219
+ function isChild(value) {
1220
+ if (value === null || typeof value != "object" || Array.isArray(value))
1221
+ return !0;
1222
+ if (typeof value.type != "string") return !1;
1223
+ const record = (
1224
+ /** @type {Record<string, unknown>} */
1225
+ value
1226
+ ), keys = Object.keys(value);
1227
+ for (const key of keys) {
1228
+ const value2 = record[key];
1229
+ if (value2 && typeof value2 == "object") {
1230
+ if (!Array.isArray(value2)) return !0;
1231
+ const list = (
1232
+ /** @type {ReadonlyArray<unknown>} */
1233
+ value2
1234
+ );
1235
+ for (const item of list)
1236
+ if (typeof item != "number" && typeof item != "string")
1237
+ return !0;
1238
+ }
1239
+ }
1240
+ return !!("children" in value && Array.isArray(value.children));
1241
+ }
1242
+ function addProperty(schema, properties, key, value) {
1243
+ const info = find(schema, key);
1244
+ let result;
1245
+ if (value != null) {
1246
+ if (typeof value == "number") {
1247
+ if (Number.isNaN(value)) return;
1248
+ result = value;
1249
+ } else typeof value == "boolean" ? result = value : typeof value == "string" ? info.spaceSeparated ? result = parse(value) : info.commaSeparated ? result = parse$1(value) : info.commaOrSpaceSeparated ? result = parse(parse$1(value).join(" ")) : result = parsePrimitive(info, info.property, value) : Array.isArray(value) ? result = [...value] : result = info.property === "style" ? style(value) : String(value);
1250
+ if (Array.isArray(result)) {
1251
+ const finalResult = [];
1252
+ for (const item of result)
1253
+ finalResult.push(
1254
+ /** @type {number | string} */
1255
+ parsePrimitive(info, info.property, item)
1256
+ );
1257
+ result = finalResult;
1258
+ }
1259
+ info.property === "className" && Array.isArray(properties.className) && (result = properties.className.concat(
1260
+ /** @type {Array<number | string> | number | string} */
1261
+ result
1262
+ )), properties[info.property] = result;
1263
+ }
1264
+ }
1265
+ function addChild(nodes, value) {
1266
+ if (value != null) if (typeof value == "number" || typeof value == "string")
1267
+ nodes.push({ type: "text", value: String(value) });
1268
+ else if (Array.isArray(value))
1269
+ for (const child of value)
1270
+ addChild(nodes, child);
1271
+ else if (typeof value == "object" && "type" in value)
1272
+ value.type === "root" ? addChild(nodes, value.children) : nodes.push(value);
1273
+ else
1274
+ throw new Error("Expected node, nodes, or string, got `" + value + "`");
1275
+ }
1276
+ function parsePrimitive(info, name, value) {
1277
+ if (typeof value == "string") {
1278
+ if (info.number && value && !Number.isNaN(Number(value)))
1279
+ return Number(value);
1280
+ if ((info.boolean || info.overloadedBoolean) && (value === "" || normalize(value) === normalize(name)))
1281
+ return !0;
1282
+ }
1283
+ return value;
1284
+ }
1285
+ function style(styles) {
1286
+ const result = [];
1287
+ for (const [key, value] of Object.entries(styles))
1288
+ result.push([key, value].join(": "));
1289
+ return result.join("; ");
1290
+ }
1291
+ function createAdjustMap(values) {
1292
+ const result = /* @__PURE__ */ new Map();
1293
+ for (const value of values)
1294
+ result.set(value.toLowerCase(), value);
1295
+ return result;
1296
+ }
1297
+ const svgCaseSensitiveTagNames = [
1298
+ "altGlyph",
1299
+ "altGlyphDef",
1300
+ "altGlyphItem",
1301
+ "animateColor",
1302
+ "animateMotion",
1303
+ "animateTransform",
1304
+ "clipPath",
1305
+ "feBlend",
1306
+ "feColorMatrix",
1307
+ "feComponentTransfer",
1308
+ "feComposite",
1309
+ "feConvolveMatrix",
1310
+ "feDiffuseLighting",
1311
+ "feDisplacementMap",
1312
+ "feDistantLight",
1313
+ "feDropShadow",
1314
+ "feFlood",
1315
+ "feFuncA",
1316
+ "feFuncB",
1317
+ "feFuncG",
1318
+ "feFuncR",
1319
+ "feGaussianBlur",
1320
+ "feImage",
1321
+ "feMerge",
1322
+ "feMergeNode",
1323
+ "feMorphology",
1324
+ "feOffset",
1325
+ "fePointLight",
1326
+ "feSpecularLighting",
1327
+ "feSpotLight",
1328
+ "feTile",
1329
+ "feTurbulence",
1330
+ "foreignObject",
1331
+ "glyphRef",
1332
+ "linearGradient",
1333
+ "radialGradient",
1334
+ "solidColor",
1335
+ "textArea",
1336
+ "textPath"
1337
+ ], h = createH(html, "div");
1338
+ createH(svg, "g", svgCaseSensitiveTagNames);
1339
+ const characterEntitiesLegacy = [
1340
+ "AElig",
1341
+ "AMP",
1342
+ "Aacute",
1343
+ "Acirc",
1344
+ "Agrave",
1345
+ "Aring",
1346
+ "Atilde",
1347
+ "Auml",
1348
+ "COPY",
1349
+ "Ccedil",
1350
+ "ETH",
1351
+ "Eacute",
1352
+ "Ecirc",
1353
+ "Egrave",
1354
+ "Euml",
1355
+ "GT",
1356
+ "Iacute",
1357
+ "Icirc",
1358
+ "Igrave",
1359
+ "Iuml",
1360
+ "LT",
1361
+ "Ntilde",
1362
+ "Oacute",
1363
+ "Ocirc",
1364
+ "Ograve",
1365
+ "Oslash",
1366
+ "Otilde",
1367
+ "Ouml",
1368
+ "QUOT",
1369
+ "REG",
1370
+ "THORN",
1371
+ "Uacute",
1372
+ "Ucirc",
1373
+ "Ugrave",
1374
+ "Uuml",
1375
+ "Yacute",
1376
+ "aacute",
1377
+ "acirc",
1378
+ "acute",
1379
+ "aelig",
1380
+ "agrave",
1381
+ "amp",
1382
+ "aring",
1383
+ "atilde",
1384
+ "auml",
1385
+ "brvbar",
1386
+ "ccedil",
1387
+ "cedil",
1388
+ "cent",
1389
+ "copy",
1390
+ "curren",
1391
+ "deg",
1392
+ "divide",
1393
+ "eacute",
1394
+ "ecirc",
1395
+ "egrave",
1396
+ "eth",
1397
+ "euml",
1398
+ "frac12",
1399
+ "frac14",
1400
+ "frac34",
1401
+ "gt",
1402
+ "iacute",
1403
+ "icirc",
1404
+ "iexcl",
1405
+ "igrave",
1406
+ "iquest",
1407
+ "iuml",
1408
+ "laquo",
1409
+ "lt",
1410
+ "macr",
1411
+ "micro",
1412
+ "middot",
1413
+ "nbsp",
1414
+ "not",
1415
+ "ntilde",
1416
+ "oacute",
1417
+ "ocirc",
1418
+ "ograve",
1419
+ "ordf",
1420
+ "ordm",
1421
+ "oslash",
1422
+ "otilde",
1423
+ "ouml",
1424
+ "para",
1425
+ "plusmn",
1426
+ "pound",
1427
+ "quot",
1428
+ "raquo",
1429
+ "reg",
1430
+ "sect",
1431
+ "shy",
1432
+ "sup1",
1433
+ "sup2",
1434
+ "sup3",
1435
+ "szlig",
1436
+ "thorn",
1437
+ "times",
1438
+ "uacute",
1439
+ "ucirc",
1440
+ "ugrave",
1441
+ "uml",
1442
+ "uuml",
1443
+ "yacute",
1444
+ "yen",
1445
+ "yuml"
1446
+ ], characterReferenceInvalid = {
1447
+ 0: "\uFFFD",
1448
+ 128: "\u20AC",
1449
+ 130: "\u201A",
1450
+ 131: "\u0192",
1451
+ 132: "\u201E",
1452
+ 133: "\u2026",
1453
+ 134: "\u2020",
1454
+ 135: "\u2021",
1455
+ 136: "\u02C6",
1456
+ 137: "\u2030",
1457
+ 138: "\u0160",
1458
+ 139: "\u2039",
1459
+ 140: "\u0152",
1460
+ 142: "\u017D",
1461
+ 145: "\u2018",
1462
+ 146: "\u2019",
1463
+ 147: "\u201C",
1464
+ 148: "\u201D",
1465
+ 149: "\u2022",
1466
+ 150: "\u2013",
1467
+ 151: "\u2014",
1468
+ 152: "\u02DC",
1469
+ 153: "\u2122",
1470
+ 154: "\u0161",
1471
+ 155: "\u203A",
1472
+ 156: "\u0153",
1473
+ 158: "\u017E",
1474
+ 159: "\u0178"
1475
+ };
1476
+ function isDecimal(character) {
1477
+ const code = typeof character == "string" ? character.charCodeAt(0) : character;
1478
+ return code >= 48 && code <= 57;
1479
+ }
1480
+ function isHexadecimal(character) {
1481
+ const code = typeof character == "string" ? character.charCodeAt(0) : character;
1482
+ return code >= 97 && code <= 102 || code >= 65 && code <= 70 || code >= 48 && code <= 57;
1483
+ }
1484
+ function isAlphabetical(character) {
1485
+ const code = typeof character == "string" ? character.charCodeAt(0) : character;
1486
+ return code >= 97 && code <= 122 || code >= 65 && code <= 90;
1487
+ }
1488
+ function isAlphanumerical(character) {
1489
+ return isAlphabetical(character) || isDecimal(character);
1490
+ }
1491
+ const characterEntities = {
1492
+ AElig: "\xC6",
1493
+ AMP: "&",
1494
+ Aacute: "\xC1",
1495
+ Abreve: "\u0102",
1496
+ Acirc: "\xC2",
1497
+ Acy: "\u0410",
1498
+ Afr: "\u{1D504}",
1499
+ Agrave: "\xC0",
1500
+ Alpha: "\u0391",
1501
+ Amacr: "\u0100",
1502
+ And: "\u2A53",
1503
+ Aogon: "\u0104",
1504
+ Aopf: "\u{1D538}",
1505
+ ApplyFunction: "\u2061",
1506
+ Aring: "\xC5",
1507
+ Ascr: "\u{1D49C}",
1508
+ Assign: "\u2254",
1509
+ Atilde: "\xC3",
1510
+ Auml: "\xC4",
1511
+ Backslash: "\u2216",
1512
+ Barv: "\u2AE7",
1513
+ Barwed: "\u2306",
1514
+ Bcy: "\u0411",
1515
+ Because: "\u2235",
1516
+ Bernoullis: "\u212C",
1517
+ Beta: "\u0392",
1518
+ Bfr: "\u{1D505}",
1519
+ Bopf: "\u{1D539}",
1520
+ Breve: "\u02D8",
1521
+ Bscr: "\u212C",
1522
+ Bumpeq: "\u224E",
1523
+ CHcy: "\u0427",
1524
+ COPY: "\xA9",
1525
+ Cacute: "\u0106",
1526
+ Cap: "\u22D2",
1527
+ CapitalDifferentialD: "\u2145",
1528
+ Cayleys: "\u212D",
1529
+ Ccaron: "\u010C",
1530
+ Ccedil: "\xC7",
1531
+ Ccirc: "\u0108",
1532
+ Cconint: "\u2230",
1533
+ Cdot: "\u010A",
1534
+ Cedilla: "\xB8",
1535
+ CenterDot: "\xB7",
1536
+ Cfr: "\u212D",
1537
+ Chi: "\u03A7",
1538
+ CircleDot: "\u2299",
1539
+ CircleMinus: "\u2296",
1540
+ CirclePlus: "\u2295",
1541
+ CircleTimes: "\u2297",
1542
+ ClockwiseContourIntegral: "\u2232",
1543
+ CloseCurlyDoubleQuote: "\u201D",
1544
+ CloseCurlyQuote: "\u2019",
1545
+ Colon: "\u2237",
1546
+ Colone: "\u2A74",
1547
+ Congruent: "\u2261",
1548
+ Conint: "\u222F",
1549
+ ContourIntegral: "\u222E",
1550
+ Copf: "\u2102",
1551
+ Coproduct: "\u2210",
1552
+ CounterClockwiseContourIntegral: "\u2233",
1553
+ Cross: "\u2A2F",
1554
+ Cscr: "\u{1D49E}",
1555
+ Cup: "\u22D3",
1556
+ CupCap: "\u224D",
1557
+ DD: "\u2145",
1558
+ DDotrahd: "\u2911",
1559
+ DJcy: "\u0402",
1560
+ DScy: "\u0405",
1561
+ DZcy: "\u040F",
1562
+ Dagger: "\u2021",
1563
+ Darr: "\u21A1",
1564
+ Dashv: "\u2AE4",
1565
+ Dcaron: "\u010E",
1566
+ Dcy: "\u0414",
1567
+ Del: "\u2207",
1568
+ Delta: "\u0394",
1569
+ Dfr: "\u{1D507}",
1570
+ DiacriticalAcute: "\xB4",
1571
+ DiacriticalDot: "\u02D9",
1572
+ DiacriticalDoubleAcute: "\u02DD",
1573
+ DiacriticalGrave: "`",
1574
+ DiacriticalTilde: "\u02DC",
1575
+ Diamond: "\u22C4",
1576
+ DifferentialD: "\u2146",
1577
+ Dopf: "\u{1D53B}",
1578
+ Dot: "\xA8",
1579
+ DotDot: "\u20DC",
1580
+ DotEqual: "\u2250",
1581
+ DoubleContourIntegral: "\u222F",
1582
+ DoubleDot: "\xA8",
1583
+ DoubleDownArrow: "\u21D3",
1584
+ DoubleLeftArrow: "\u21D0",
1585
+ DoubleLeftRightArrow: "\u21D4",
1586
+ DoubleLeftTee: "\u2AE4",
1587
+ DoubleLongLeftArrow: "\u27F8",
1588
+ DoubleLongLeftRightArrow: "\u27FA",
1589
+ DoubleLongRightArrow: "\u27F9",
1590
+ DoubleRightArrow: "\u21D2",
1591
+ DoubleRightTee: "\u22A8",
1592
+ DoubleUpArrow: "\u21D1",
1593
+ DoubleUpDownArrow: "\u21D5",
1594
+ DoubleVerticalBar: "\u2225",
1595
+ DownArrow: "\u2193",
1596
+ DownArrowBar: "\u2913",
1597
+ DownArrowUpArrow: "\u21F5",
1598
+ DownBreve: "\u0311",
1599
+ DownLeftRightVector: "\u2950",
1600
+ DownLeftTeeVector: "\u295E",
1601
+ DownLeftVector: "\u21BD",
1602
+ DownLeftVectorBar: "\u2956",
1603
+ DownRightTeeVector: "\u295F",
1604
+ DownRightVector: "\u21C1",
1605
+ DownRightVectorBar: "\u2957",
1606
+ DownTee: "\u22A4",
1607
+ DownTeeArrow: "\u21A7",
1608
+ Downarrow: "\u21D3",
1609
+ Dscr: "\u{1D49F}",
1610
+ Dstrok: "\u0110",
1611
+ ENG: "\u014A",
1612
+ ETH: "\xD0",
1613
+ Eacute: "\xC9",
1614
+ Ecaron: "\u011A",
1615
+ Ecirc: "\xCA",
1616
+ Ecy: "\u042D",
1617
+ Edot: "\u0116",
1618
+ Efr: "\u{1D508}",
1619
+ Egrave: "\xC8",
1620
+ Element: "\u2208",
1621
+ Emacr: "\u0112",
1622
+ EmptySmallSquare: "\u25FB",
1623
+ EmptyVerySmallSquare: "\u25AB",
1624
+ Eogon: "\u0118",
1625
+ Eopf: "\u{1D53C}",
1626
+ Epsilon: "\u0395",
1627
+ Equal: "\u2A75",
1628
+ EqualTilde: "\u2242",
1629
+ Equilibrium: "\u21CC",
1630
+ Escr: "\u2130",
1631
+ Esim: "\u2A73",
1632
+ Eta: "\u0397",
1633
+ Euml: "\xCB",
1634
+ Exists: "\u2203",
1635
+ ExponentialE: "\u2147",
1636
+ Fcy: "\u0424",
1637
+ Ffr: "\u{1D509}",
1638
+ FilledSmallSquare: "\u25FC",
1639
+ FilledVerySmallSquare: "\u25AA",
1640
+ Fopf: "\u{1D53D}",
1641
+ ForAll: "\u2200",
1642
+ Fouriertrf: "\u2131",
1643
+ Fscr: "\u2131",
1644
+ GJcy: "\u0403",
1645
+ GT: ">",
1646
+ Gamma: "\u0393",
1647
+ Gammad: "\u03DC",
1648
+ Gbreve: "\u011E",
1649
+ Gcedil: "\u0122",
1650
+ Gcirc: "\u011C",
1651
+ Gcy: "\u0413",
1652
+ Gdot: "\u0120",
1653
+ Gfr: "\u{1D50A}",
1654
+ Gg: "\u22D9",
1655
+ Gopf: "\u{1D53E}",
1656
+ GreaterEqual: "\u2265",
1657
+ GreaterEqualLess: "\u22DB",
1658
+ GreaterFullEqual: "\u2267",
1659
+ GreaterGreater: "\u2AA2",
1660
+ GreaterLess: "\u2277",
1661
+ GreaterSlantEqual: "\u2A7E",
1662
+ GreaterTilde: "\u2273",
1663
+ Gscr: "\u{1D4A2}",
1664
+ Gt: "\u226B",
1665
+ HARDcy: "\u042A",
1666
+ Hacek: "\u02C7",
1667
+ Hat: "^",
1668
+ Hcirc: "\u0124",
1669
+ Hfr: "\u210C",
1670
+ HilbertSpace: "\u210B",
1671
+ Hopf: "\u210D",
1672
+ HorizontalLine: "\u2500",
1673
+ Hscr: "\u210B",
1674
+ Hstrok: "\u0126",
1675
+ HumpDownHump: "\u224E",
1676
+ HumpEqual: "\u224F",
1677
+ IEcy: "\u0415",
1678
+ IJlig: "\u0132",
1679
+ IOcy: "\u0401",
1680
+ Iacute: "\xCD",
1681
+ Icirc: "\xCE",
1682
+ Icy: "\u0418",
1683
+ Idot: "\u0130",
1684
+ Ifr: "\u2111",
1685
+ Igrave: "\xCC",
1686
+ Im: "\u2111",
1687
+ Imacr: "\u012A",
1688
+ ImaginaryI: "\u2148",
1689
+ Implies: "\u21D2",
1690
+ Int: "\u222C",
1691
+ Integral: "\u222B",
1692
+ Intersection: "\u22C2",
1693
+ InvisibleComma: "\u2063",
1694
+ InvisibleTimes: "\u2062",
1695
+ Iogon: "\u012E",
1696
+ Iopf: "\u{1D540}",
1697
+ Iota: "\u0399",
1698
+ Iscr: "\u2110",
1699
+ Itilde: "\u0128",
1700
+ Iukcy: "\u0406",
1701
+ Iuml: "\xCF",
1702
+ Jcirc: "\u0134",
1703
+ Jcy: "\u0419",
1704
+ Jfr: "\u{1D50D}",
1705
+ Jopf: "\u{1D541}",
1706
+ Jscr: "\u{1D4A5}",
1707
+ Jsercy: "\u0408",
1708
+ Jukcy: "\u0404",
1709
+ KHcy: "\u0425",
1710
+ KJcy: "\u040C",
1711
+ Kappa: "\u039A",
1712
+ Kcedil: "\u0136",
1713
+ Kcy: "\u041A",
1714
+ Kfr: "\u{1D50E}",
1715
+ Kopf: "\u{1D542}",
1716
+ Kscr: "\u{1D4A6}",
1717
+ LJcy: "\u0409",
1718
+ LT: "<",
1719
+ Lacute: "\u0139",
1720
+ Lambda: "\u039B",
1721
+ Lang: "\u27EA",
1722
+ Laplacetrf: "\u2112",
1723
+ Larr: "\u219E",
1724
+ Lcaron: "\u013D",
1725
+ Lcedil: "\u013B",
1726
+ Lcy: "\u041B",
1727
+ LeftAngleBracket: "\u27E8",
1728
+ LeftArrow: "\u2190",
1729
+ LeftArrowBar: "\u21E4",
1730
+ LeftArrowRightArrow: "\u21C6",
1731
+ LeftCeiling: "\u2308",
1732
+ LeftDoubleBracket: "\u27E6",
1733
+ LeftDownTeeVector: "\u2961",
1734
+ LeftDownVector: "\u21C3",
1735
+ LeftDownVectorBar: "\u2959",
1736
+ LeftFloor: "\u230A",
1737
+ LeftRightArrow: "\u2194",
1738
+ LeftRightVector: "\u294E",
1739
+ LeftTee: "\u22A3",
1740
+ LeftTeeArrow: "\u21A4",
1741
+ LeftTeeVector: "\u295A",
1742
+ LeftTriangle: "\u22B2",
1743
+ LeftTriangleBar: "\u29CF",
1744
+ LeftTriangleEqual: "\u22B4",
1745
+ LeftUpDownVector: "\u2951",
1746
+ LeftUpTeeVector: "\u2960",
1747
+ LeftUpVector: "\u21BF",
1748
+ LeftUpVectorBar: "\u2958",
1749
+ LeftVector: "\u21BC",
1750
+ LeftVectorBar: "\u2952",
1751
+ Leftarrow: "\u21D0",
1752
+ Leftrightarrow: "\u21D4",
1753
+ LessEqualGreater: "\u22DA",
1754
+ LessFullEqual: "\u2266",
1755
+ LessGreater: "\u2276",
1756
+ LessLess: "\u2AA1",
1757
+ LessSlantEqual: "\u2A7D",
1758
+ LessTilde: "\u2272",
1759
+ Lfr: "\u{1D50F}",
1760
+ Ll: "\u22D8",
1761
+ Lleftarrow: "\u21DA",
1762
+ Lmidot: "\u013F",
1763
+ LongLeftArrow: "\u27F5",
1764
+ LongLeftRightArrow: "\u27F7",
1765
+ LongRightArrow: "\u27F6",
1766
+ Longleftarrow: "\u27F8",
1767
+ Longleftrightarrow: "\u27FA",
1768
+ Longrightarrow: "\u27F9",
1769
+ Lopf: "\u{1D543}",
1770
+ LowerLeftArrow: "\u2199",
1771
+ LowerRightArrow: "\u2198",
1772
+ Lscr: "\u2112",
1773
+ Lsh: "\u21B0",
1774
+ Lstrok: "\u0141",
1775
+ Lt: "\u226A",
1776
+ Map: "\u2905",
1777
+ Mcy: "\u041C",
1778
+ MediumSpace: "\u205F",
1779
+ Mellintrf: "\u2133",
1780
+ Mfr: "\u{1D510}",
1781
+ MinusPlus: "\u2213",
1782
+ Mopf: "\u{1D544}",
1783
+ Mscr: "\u2133",
1784
+ Mu: "\u039C",
1785
+ NJcy: "\u040A",
1786
+ Nacute: "\u0143",
1787
+ Ncaron: "\u0147",
1788
+ Ncedil: "\u0145",
1789
+ Ncy: "\u041D",
1790
+ NegativeMediumSpace: "\u200B",
1791
+ NegativeThickSpace: "\u200B",
1792
+ NegativeThinSpace: "\u200B",
1793
+ NegativeVeryThinSpace: "\u200B",
1794
+ NestedGreaterGreater: "\u226B",
1795
+ NestedLessLess: "\u226A",
1796
+ NewLine: `
1797
+ `,
1798
+ Nfr: "\u{1D511}",
1799
+ NoBreak: "\u2060",
1800
+ NonBreakingSpace: "\xA0",
1801
+ Nopf: "\u2115",
1802
+ Not: "\u2AEC",
1803
+ NotCongruent: "\u2262",
1804
+ NotCupCap: "\u226D",
1805
+ NotDoubleVerticalBar: "\u2226",
1806
+ NotElement: "\u2209",
1807
+ NotEqual: "\u2260",
1808
+ NotEqualTilde: "\u2242\u0338",
1809
+ NotExists: "\u2204",
1810
+ NotGreater: "\u226F",
1811
+ NotGreaterEqual: "\u2271",
1812
+ NotGreaterFullEqual: "\u2267\u0338",
1813
+ NotGreaterGreater: "\u226B\u0338",
1814
+ NotGreaterLess: "\u2279",
1815
+ NotGreaterSlantEqual: "\u2A7E\u0338",
1816
+ NotGreaterTilde: "\u2275",
1817
+ NotHumpDownHump: "\u224E\u0338",
1818
+ NotHumpEqual: "\u224F\u0338",
1819
+ NotLeftTriangle: "\u22EA",
1820
+ NotLeftTriangleBar: "\u29CF\u0338",
1821
+ NotLeftTriangleEqual: "\u22EC",
1822
+ NotLess: "\u226E",
1823
+ NotLessEqual: "\u2270",
1824
+ NotLessGreater: "\u2278",
1825
+ NotLessLess: "\u226A\u0338",
1826
+ NotLessSlantEqual: "\u2A7D\u0338",
1827
+ NotLessTilde: "\u2274",
1828
+ NotNestedGreaterGreater: "\u2AA2\u0338",
1829
+ NotNestedLessLess: "\u2AA1\u0338",
1830
+ NotPrecedes: "\u2280",
1831
+ NotPrecedesEqual: "\u2AAF\u0338",
1832
+ NotPrecedesSlantEqual: "\u22E0",
1833
+ NotReverseElement: "\u220C",
1834
+ NotRightTriangle: "\u22EB",
1835
+ NotRightTriangleBar: "\u29D0\u0338",
1836
+ NotRightTriangleEqual: "\u22ED",
1837
+ NotSquareSubset: "\u228F\u0338",
1838
+ NotSquareSubsetEqual: "\u22E2",
1839
+ NotSquareSuperset: "\u2290\u0338",
1840
+ NotSquareSupersetEqual: "\u22E3",
1841
+ NotSubset: "\u2282\u20D2",
1842
+ NotSubsetEqual: "\u2288",
1843
+ NotSucceeds: "\u2281",
1844
+ NotSucceedsEqual: "\u2AB0\u0338",
1845
+ NotSucceedsSlantEqual: "\u22E1",
1846
+ NotSucceedsTilde: "\u227F\u0338",
1847
+ NotSuperset: "\u2283\u20D2",
1848
+ NotSupersetEqual: "\u2289",
1849
+ NotTilde: "\u2241",
1850
+ NotTildeEqual: "\u2244",
1851
+ NotTildeFullEqual: "\u2247",
1852
+ NotTildeTilde: "\u2249",
1853
+ NotVerticalBar: "\u2224",
1854
+ Nscr: "\u{1D4A9}",
1855
+ Ntilde: "\xD1",
1856
+ Nu: "\u039D",
1857
+ OElig: "\u0152",
1858
+ Oacute: "\xD3",
1859
+ Ocirc: "\xD4",
1860
+ Ocy: "\u041E",
1861
+ Odblac: "\u0150",
1862
+ Ofr: "\u{1D512}",
1863
+ Ograve: "\xD2",
1864
+ Omacr: "\u014C",
1865
+ Omega: "\u03A9",
1866
+ Omicron: "\u039F",
1867
+ Oopf: "\u{1D546}",
1868
+ OpenCurlyDoubleQuote: "\u201C",
1869
+ OpenCurlyQuote: "\u2018",
1870
+ Or: "\u2A54",
1871
+ Oscr: "\u{1D4AA}",
1872
+ Oslash: "\xD8",
1873
+ Otilde: "\xD5",
1874
+ Otimes: "\u2A37",
1875
+ Ouml: "\xD6",
1876
+ OverBar: "\u203E",
1877
+ OverBrace: "\u23DE",
1878
+ OverBracket: "\u23B4",
1879
+ OverParenthesis: "\u23DC",
1880
+ PartialD: "\u2202",
1881
+ Pcy: "\u041F",
1882
+ Pfr: "\u{1D513}",
1883
+ Phi: "\u03A6",
1884
+ Pi: "\u03A0",
1885
+ PlusMinus: "\xB1",
1886
+ Poincareplane: "\u210C",
1887
+ Popf: "\u2119",
1888
+ Pr: "\u2ABB",
1889
+ Precedes: "\u227A",
1890
+ PrecedesEqual: "\u2AAF",
1891
+ PrecedesSlantEqual: "\u227C",
1892
+ PrecedesTilde: "\u227E",
1893
+ Prime: "\u2033",
1894
+ Product: "\u220F",
1895
+ Proportion: "\u2237",
1896
+ Proportional: "\u221D",
1897
+ Pscr: "\u{1D4AB}",
1898
+ Psi: "\u03A8",
1899
+ QUOT: '"',
1900
+ Qfr: "\u{1D514}",
1901
+ Qopf: "\u211A",
1902
+ Qscr: "\u{1D4AC}",
1903
+ RBarr: "\u2910",
1904
+ REG: "\xAE",
1905
+ Racute: "\u0154",
1906
+ Rang: "\u27EB",
1907
+ Rarr: "\u21A0",
1908
+ Rarrtl: "\u2916",
1909
+ Rcaron: "\u0158",
1910
+ Rcedil: "\u0156",
1911
+ Rcy: "\u0420",
1912
+ Re: "\u211C",
1913
+ ReverseElement: "\u220B",
1914
+ ReverseEquilibrium: "\u21CB",
1915
+ ReverseUpEquilibrium: "\u296F",
1916
+ Rfr: "\u211C",
1917
+ Rho: "\u03A1",
1918
+ RightAngleBracket: "\u27E9",
1919
+ RightArrow: "\u2192",
1920
+ RightArrowBar: "\u21E5",
1921
+ RightArrowLeftArrow: "\u21C4",
1922
+ RightCeiling: "\u2309",
1923
+ RightDoubleBracket: "\u27E7",
1924
+ RightDownTeeVector: "\u295D",
1925
+ RightDownVector: "\u21C2",
1926
+ RightDownVectorBar: "\u2955",
1927
+ RightFloor: "\u230B",
1928
+ RightTee: "\u22A2",
1929
+ RightTeeArrow: "\u21A6",
1930
+ RightTeeVector: "\u295B",
1931
+ RightTriangle: "\u22B3",
1932
+ RightTriangleBar: "\u29D0",
1933
+ RightTriangleEqual: "\u22B5",
1934
+ RightUpDownVector: "\u294F",
1935
+ RightUpTeeVector: "\u295C",
1936
+ RightUpVector: "\u21BE",
1937
+ RightUpVectorBar: "\u2954",
1938
+ RightVector: "\u21C0",
1939
+ RightVectorBar: "\u2953",
1940
+ Rightarrow: "\u21D2",
1941
+ Ropf: "\u211D",
1942
+ RoundImplies: "\u2970",
1943
+ Rrightarrow: "\u21DB",
1944
+ Rscr: "\u211B",
1945
+ Rsh: "\u21B1",
1946
+ RuleDelayed: "\u29F4",
1947
+ SHCHcy: "\u0429",
1948
+ SHcy: "\u0428",
1949
+ SOFTcy: "\u042C",
1950
+ Sacute: "\u015A",
1951
+ Sc: "\u2ABC",
1952
+ Scaron: "\u0160",
1953
+ Scedil: "\u015E",
1954
+ Scirc: "\u015C",
1955
+ Scy: "\u0421",
1956
+ Sfr: "\u{1D516}",
1957
+ ShortDownArrow: "\u2193",
1958
+ ShortLeftArrow: "\u2190",
1959
+ ShortRightArrow: "\u2192",
1960
+ ShortUpArrow: "\u2191",
1961
+ Sigma: "\u03A3",
1962
+ SmallCircle: "\u2218",
1963
+ Sopf: "\u{1D54A}",
1964
+ Sqrt: "\u221A",
1965
+ Square: "\u25A1",
1966
+ SquareIntersection: "\u2293",
1967
+ SquareSubset: "\u228F",
1968
+ SquareSubsetEqual: "\u2291",
1969
+ SquareSuperset: "\u2290",
1970
+ SquareSupersetEqual: "\u2292",
1971
+ SquareUnion: "\u2294",
1972
+ Sscr: "\u{1D4AE}",
1973
+ Star: "\u22C6",
1974
+ Sub: "\u22D0",
1975
+ Subset: "\u22D0",
1976
+ SubsetEqual: "\u2286",
1977
+ Succeeds: "\u227B",
1978
+ SucceedsEqual: "\u2AB0",
1979
+ SucceedsSlantEqual: "\u227D",
1980
+ SucceedsTilde: "\u227F",
1981
+ SuchThat: "\u220B",
1982
+ Sum: "\u2211",
1983
+ Sup: "\u22D1",
1984
+ Superset: "\u2283",
1985
+ SupersetEqual: "\u2287",
1986
+ Supset: "\u22D1",
1987
+ THORN: "\xDE",
1988
+ TRADE: "\u2122",
1989
+ TSHcy: "\u040B",
1990
+ TScy: "\u0426",
1991
+ Tab: " ",
1992
+ Tau: "\u03A4",
1993
+ Tcaron: "\u0164",
1994
+ Tcedil: "\u0162",
1995
+ Tcy: "\u0422",
1996
+ Tfr: "\u{1D517}",
1997
+ Therefore: "\u2234",
1998
+ Theta: "\u0398",
1999
+ ThickSpace: "\u205F\u200A",
2000
+ ThinSpace: "\u2009",
2001
+ Tilde: "\u223C",
2002
+ TildeEqual: "\u2243",
2003
+ TildeFullEqual: "\u2245",
2004
+ TildeTilde: "\u2248",
2005
+ Topf: "\u{1D54B}",
2006
+ TripleDot: "\u20DB",
2007
+ Tscr: "\u{1D4AF}",
2008
+ Tstrok: "\u0166",
2009
+ Uacute: "\xDA",
2010
+ Uarr: "\u219F",
2011
+ Uarrocir: "\u2949",
2012
+ Ubrcy: "\u040E",
2013
+ Ubreve: "\u016C",
2014
+ Ucirc: "\xDB",
2015
+ Ucy: "\u0423",
2016
+ Udblac: "\u0170",
2017
+ Ufr: "\u{1D518}",
2018
+ Ugrave: "\xD9",
2019
+ Umacr: "\u016A",
2020
+ UnderBar: "_",
2021
+ UnderBrace: "\u23DF",
2022
+ UnderBracket: "\u23B5",
2023
+ UnderParenthesis: "\u23DD",
2024
+ Union: "\u22C3",
2025
+ UnionPlus: "\u228E",
2026
+ Uogon: "\u0172",
2027
+ Uopf: "\u{1D54C}",
2028
+ UpArrow: "\u2191",
2029
+ UpArrowBar: "\u2912",
2030
+ UpArrowDownArrow: "\u21C5",
2031
+ UpDownArrow: "\u2195",
2032
+ UpEquilibrium: "\u296E",
2033
+ UpTee: "\u22A5",
2034
+ UpTeeArrow: "\u21A5",
2035
+ Uparrow: "\u21D1",
2036
+ Updownarrow: "\u21D5",
2037
+ UpperLeftArrow: "\u2196",
2038
+ UpperRightArrow: "\u2197",
2039
+ Upsi: "\u03D2",
2040
+ Upsilon: "\u03A5",
2041
+ Uring: "\u016E",
2042
+ Uscr: "\u{1D4B0}",
2043
+ Utilde: "\u0168",
2044
+ Uuml: "\xDC",
2045
+ VDash: "\u22AB",
2046
+ Vbar: "\u2AEB",
2047
+ Vcy: "\u0412",
2048
+ Vdash: "\u22A9",
2049
+ Vdashl: "\u2AE6",
2050
+ Vee: "\u22C1",
2051
+ Verbar: "\u2016",
2052
+ Vert: "\u2016",
2053
+ VerticalBar: "\u2223",
2054
+ VerticalLine: "|",
2055
+ VerticalSeparator: "\u2758",
2056
+ VerticalTilde: "\u2240",
2057
+ VeryThinSpace: "\u200A",
2058
+ Vfr: "\u{1D519}",
2059
+ Vopf: "\u{1D54D}",
2060
+ Vscr: "\u{1D4B1}",
2061
+ Vvdash: "\u22AA",
2062
+ Wcirc: "\u0174",
2063
+ Wedge: "\u22C0",
2064
+ Wfr: "\u{1D51A}",
2065
+ Wopf: "\u{1D54E}",
2066
+ Wscr: "\u{1D4B2}",
2067
+ Xfr: "\u{1D51B}",
2068
+ Xi: "\u039E",
2069
+ Xopf: "\u{1D54F}",
2070
+ Xscr: "\u{1D4B3}",
2071
+ YAcy: "\u042F",
2072
+ YIcy: "\u0407",
2073
+ YUcy: "\u042E",
2074
+ Yacute: "\xDD",
2075
+ Ycirc: "\u0176",
2076
+ Ycy: "\u042B",
2077
+ Yfr: "\u{1D51C}",
2078
+ Yopf: "\u{1D550}",
2079
+ Yscr: "\u{1D4B4}",
2080
+ Yuml: "\u0178",
2081
+ ZHcy: "\u0416",
2082
+ Zacute: "\u0179",
2083
+ Zcaron: "\u017D",
2084
+ Zcy: "\u0417",
2085
+ Zdot: "\u017B",
2086
+ ZeroWidthSpace: "\u200B",
2087
+ Zeta: "\u0396",
2088
+ Zfr: "\u2128",
2089
+ Zopf: "\u2124",
2090
+ Zscr: "\u{1D4B5}",
2091
+ aacute: "\xE1",
2092
+ abreve: "\u0103",
2093
+ ac: "\u223E",
2094
+ acE: "\u223E\u0333",
2095
+ acd: "\u223F",
2096
+ acirc: "\xE2",
2097
+ acute: "\xB4",
2098
+ acy: "\u0430",
2099
+ aelig: "\xE6",
2100
+ af: "\u2061",
2101
+ afr: "\u{1D51E}",
2102
+ agrave: "\xE0",
2103
+ alefsym: "\u2135",
2104
+ aleph: "\u2135",
2105
+ alpha: "\u03B1",
2106
+ amacr: "\u0101",
2107
+ amalg: "\u2A3F",
2108
+ amp: "&",
2109
+ and: "\u2227",
2110
+ andand: "\u2A55",
2111
+ andd: "\u2A5C",
2112
+ andslope: "\u2A58",
2113
+ andv: "\u2A5A",
2114
+ ang: "\u2220",
2115
+ ange: "\u29A4",
2116
+ angle: "\u2220",
2117
+ angmsd: "\u2221",
2118
+ angmsdaa: "\u29A8",
2119
+ angmsdab: "\u29A9",
2120
+ angmsdac: "\u29AA",
2121
+ angmsdad: "\u29AB",
2122
+ angmsdae: "\u29AC",
2123
+ angmsdaf: "\u29AD",
2124
+ angmsdag: "\u29AE",
2125
+ angmsdah: "\u29AF",
2126
+ angrt: "\u221F",
2127
+ angrtvb: "\u22BE",
2128
+ angrtvbd: "\u299D",
2129
+ angsph: "\u2222",
2130
+ angst: "\xC5",
2131
+ angzarr: "\u237C",
2132
+ aogon: "\u0105",
2133
+ aopf: "\u{1D552}",
2134
+ ap: "\u2248",
2135
+ apE: "\u2A70",
2136
+ apacir: "\u2A6F",
2137
+ ape: "\u224A",
2138
+ apid: "\u224B",
2139
+ apos: "'",
2140
+ approx: "\u2248",
2141
+ approxeq: "\u224A",
2142
+ aring: "\xE5",
2143
+ ascr: "\u{1D4B6}",
2144
+ ast: "*",
2145
+ asymp: "\u2248",
2146
+ asympeq: "\u224D",
2147
+ atilde: "\xE3",
2148
+ auml: "\xE4",
2149
+ awconint: "\u2233",
2150
+ awint: "\u2A11",
2151
+ bNot: "\u2AED",
2152
+ backcong: "\u224C",
2153
+ backepsilon: "\u03F6",
2154
+ backprime: "\u2035",
2155
+ backsim: "\u223D",
2156
+ backsimeq: "\u22CD",
2157
+ barvee: "\u22BD",
2158
+ barwed: "\u2305",
2159
+ barwedge: "\u2305",
2160
+ bbrk: "\u23B5",
2161
+ bbrktbrk: "\u23B6",
2162
+ bcong: "\u224C",
2163
+ bcy: "\u0431",
2164
+ bdquo: "\u201E",
2165
+ becaus: "\u2235",
2166
+ because: "\u2235",
2167
+ bemptyv: "\u29B0",
2168
+ bepsi: "\u03F6",
2169
+ bernou: "\u212C",
2170
+ beta: "\u03B2",
2171
+ beth: "\u2136",
2172
+ between: "\u226C",
2173
+ bfr: "\u{1D51F}",
2174
+ bigcap: "\u22C2",
2175
+ bigcirc: "\u25EF",
2176
+ bigcup: "\u22C3",
2177
+ bigodot: "\u2A00",
2178
+ bigoplus: "\u2A01",
2179
+ bigotimes: "\u2A02",
2180
+ bigsqcup: "\u2A06",
2181
+ bigstar: "\u2605",
2182
+ bigtriangledown: "\u25BD",
2183
+ bigtriangleup: "\u25B3",
2184
+ biguplus: "\u2A04",
2185
+ bigvee: "\u22C1",
2186
+ bigwedge: "\u22C0",
2187
+ bkarow: "\u290D",
2188
+ blacklozenge: "\u29EB",
2189
+ blacksquare: "\u25AA",
2190
+ blacktriangle: "\u25B4",
2191
+ blacktriangledown: "\u25BE",
2192
+ blacktriangleleft: "\u25C2",
2193
+ blacktriangleright: "\u25B8",
2194
+ blank: "\u2423",
2195
+ blk12: "\u2592",
2196
+ blk14: "\u2591",
2197
+ blk34: "\u2593",
2198
+ block: "\u2588",
2199
+ bne: "=\u20E5",
2200
+ bnequiv: "\u2261\u20E5",
2201
+ bnot: "\u2310",
2202
+ bopf: "\u{1D553}",
2203
+ bot: "\u22A5",
2204
+ bottom: "\u22A5",
2205
+ bowtie: "\u22C8",
2206
+ boxDL: "\u2557",
2207
+ boxDR: "\u2554",
2208
+ boxDl: "\u2556",
2209
+ boxDr: "\u2553",
2210
+ boxH: "\u2550",
2211
+ boxHD: "\u2566",
2212
+ boxHU: "\u2569",
2213
+ boxHd: "\u2564",
2214
+ boxHu: "\u2567",
2215
+ boxUL: "\u255D",
2216
+ boxUR: "\u255A",
2217
+ boxUl: "\u255C",
2218
+ boxUr: "\u2559",
2219
+ boxV: "\u2551",
2220
+ boxVH: "\u256C",
2221
+ boxVL: "\u2563",
2222
+ boxVR: "\u2560",
2223
+ boxVh: "\u256B",
2224
+ boxVl: "\u2562",
2225
+ boxVr: "\u255F",
2226
+ boxbox: "\u29C9",
2227
+ boxdL: "\u2555",
2228
+ boxdR: "\u2552",
2229
+ boxdl: "\u2510",
2230
+ boxdr: "\u250C",
2231
+ boxh: "\u2500",
2232
+ boxhD: "\u2565",
2233
+ boxhU: "\u2568",
2234
+ boxhd: "\u252C",
2235
+ boxhu: "\u2534",
2236
+ boxminus: "\u229F",
2237
+ boxplus: "\u229E",
2238
+ boxtimes: "\u22A0",
2239
+ boxuL: "\u255B",
2240
+ boxuR: "\u2558",
2241
+ boxul: "\u2518",
2242
+ boxur: "\u2514",
2243
+ boxv: "\u2502",
2244
+ boxvH: "\u256A",
2245
+ boxvL: "\u2561",
2246
+ boxvR: "\u255E",
2247
+ boxvh: "\u253C",
2248
+ boxvl: "\u2524",
2249
+ boxvr: "\u251C",
2250
+ bprime: "\u2035",
2251
+ breve: "\u02D8",
2252
+ brvbar: "\xA6",
2253
+ bscr: "\u{1D4B7}",
2254
+ bsemi: "\u204F",
2255
+ bsim: "\u223D",
2256
+ bsime: "\u22CD",
2257
+ bsol: "\\",
2258
+ bsolb: "\u29C5",
2259
+ bsolhsub: "\u27C8",
2260
+ bull: "\u2022",
2261
+ bullet: "\u2022",
2262
+ bump: "\u224E",
2263
+ bumpE: "\u2AAE",
2264
+ bumpe: "\u224F",
2265
+ bumpeq: "\u224F",
2266
+ cacute: "\u0107",
2267
+ cap: "\u2229",
2268
+ capand: "\u2A44",
2269
+ capbrcup: "\u2A49",
2270
+ capcap: "\u2A4B",
2271
+ capcup: "\u2A47",
2272
+ capdot: "\u2A40",
2273
+ caps: "\u2229\uFE00",
2274
+ caret: "\u2041",
2275
+ caron: "\u02C7",
2276
+ ccaps: "\u2A4D",
2277
+ ccaron: "\u010D",
2278
+ ccedil: "\xE7",
2279
+ ccirc: "\u0109",
2280
+ ccups: "\u2A4C",
2281
+ ccupssm: "\u2A50",
2282
+ cdot: "\u010B",
2283
+ cedil: "\xB8",
2284
+ cemptyv: "\u29B2",
2285
+ cent: "\xA2",
2286
+ centerdot: "\xB7",
2287
+ cfr: "\u{1D520}",
2288
+ chcy: "\u0447",
2289
+ check: "\u2713",
2290
+ checkmark: "\u2713",
2291
+ chi: "\u03C7",
2292
+ cir: "\u25CB",
2293
+ cirE: "\u29C3",
2294
+ circ: "\u02C6",
2295
+ circeq: "\u2257",
2296
+ circlearrowleft: "\u21BA",
2297
+ circlearrowright: "\u21BB",
2298
+ circledR: "\xAE",
2299
+ circledS: "\u24C8",
2300
+ circledast: "\u229B",
2301
+ circledcirc: "\u229A",
2302
+ circleddash: "\u229D",
2303
+ cire: "\u2257",
2304
+ cirfnint: "\u2A10",
2305
+ cirmid: "\u2AEF",
2306
+ cirscir: "\u29C2",
2307
+ clubs: "\u2663",
2308
+ clubsuit: "\u2663",
2309
+ colon: ":",
2310
+ colone: "\u2254",
2311
+ coloneq: "\u2254",
2312
+ comma: ",",
2313
+ commat: "@",
2314
+ comp: "\u2201",
2315
+ compfn: "\u2218",
2316
+ complement: "\u2201",
2317
+ complexes: "\u2102",
2318
+ cong: "\u2245",
2319
+ congdot: "\u2A6D",
2320
+ conint: "\u222E",
2321
+ copf: "\u{1D554}",
2322
+ coprod: "\u2210",
2323
+ copy: "\xA9",
2324
+ copysr: "\u2117",
2325
+ crarr: "\u21B5",
2326
+ cross: "\u2717",
2327
+ cscr: "\u{1D4B8}",
2328
+ csub: "\u2ACF",
2329
+ csube: "\u2AD1",
2330
+ csup: "\u2AD0",
2331
+ csupe: "\u2AD2",
2332
+ ctdot: "\u22EF",
2333
+ cudarrl: "\u2938",
2334
+ cudarrr: "\u2935",
2335
+ cuepr: "\u22DE",
2336
+ cuesc: "\u22DF",
2337
+ cularr: "\u21B6",
2338
+ cularrp: "\u293D",
2339
+ cup: "\u222A",
2340
+ cupbrcap: "\u2A48",
2341
+ cupcap: "\u2A46",
2342
+ cupcup: "\u2A4A",
2343
+ cupdot: "\u228D",
2344
+ cupor: "\u2A45",
2345
+ cups: "\u222A\uFE00",
2346
+ curarr: "\u21B7",
2347
+ curarrm: "\u293C",
2348
+ curlyeqprec: "\u22DE",
2349
+ curlyeqsucc: "\u22DF",
2350
+ curlyvee: "\u22CE",
2351
+ curlywedge: "\u22CF",
2352
+ curren: "\xA4",
2353
+ curvearrowleft: "\u21B6",
2354
+ curvearrowright: "\u21B7",
2355
+ cuvee: "\u22CE",
2356
+ cuwed: "\u22CF",
2357
+ cwconint: "\u2232",
2358
+ cwint: "\u2231",
2359
+ cylcty: "\u232D",
2360
+ dArr: "\u21D3",
2361
+ dHar: "\u2965",
2362
+ dagger: "\u2020",
2363
+ daleth: "\u2138",
2364
+ darr: "\u2193",
2365
+ dash: "\u2010",
2366
+ dashv: "\u22A3",
2367
+ dbkarow: "\u290F",
2368
+ dblac: "\u02DD",
2369
+ dcaron: "\u010F",
2370
+ dcy: "\u0434",
2371
+ dd: "\u2146",
2372
+ ddagger: "\u2021",
2373
+ ddarr: "\u21CA",
2374
+ ddotseq: "\u2A77",
2375
+ deg: "\xB0",
2376
+ delta: "\u03B4",
2377
+ demptyv: "\u29B1",
2378
+ dfisht: "\u297F",
2379
+ dfr: "\u{1D521}",
2380
+ dharl: "\u21C3",
2381
+ dharr: "\u21C2",
2382
+ diam: "\u22C4",
2383
+ diamond: "\u22C4",
2384
+ diamondsuit: "\u2666",
2385
+ diams: "\u2666",
2386
+ die: "\xA8",
2387
+ digamma: "\u03DD",
2388
+ disin: "\u22F2",
2389
+ div: "\xF7",
2390
+ divide: "\xF7",
2391
+ divideontimes: "\u22C7",
2392
+ divonx: "\u22C7",
2393
+ djcy: "\u0452",
2394
+ dlcorn: "\u231E",
2395
+ dlcrop: "\u230D",
2396
+ dollar: "$",
2397
+ dopf: "\u{1D555}",
2398
+ dot: "\u02D9",
2399
+ doteq: "\u2250",
2400
+ doteqdot: "\u2251",
2401
+ dotminus: "\u2238",
2402
+ dotplus: "\u2214",
2403
+ dotsquare: "\u22A1",
2404
+ doublebarwedge: "\u2306",
2405
+ downarrow: "\u2193",
2406
+ downdownarrows: "\u21CA",
2407
+ downharpoonleft: "\u21C3",
2408
+ downharpoonright: "\u21C2",
2409
+ drbkarow: "\u2910",
2410
+ drcorn: "\u231F",
2411
+ drcrop: "\u230C",
2412
+ dscr: "\u{1D4B9}",
2413
+ dscy: "\u0455",
2414
+ dsol: "\u29F6",
2415
+ dstrok: "\u0111",
2416
+ dtdot: "\u22F1",
2417
+ dtri: "\u25BF",
2418
+ dtrif: "\u25BE",
2419
+ duarr: "\u21F5",
2420
+ duhar: "\u296F",
2421
+ dwangle: "\u29A6",
2422
+ dzcy: "\u045F",
2423
+ dzigrarr: "\u27FF",
2424
+ eDDot: "\u2A77",
2425
+ eDot: "\u2251",
2426
+ eacute: "\xE9",
2427
+ easter: "\u2A6E",
2428
+ ecaron: "\u011B",
2429
+ ecir: "\u2256",
2430
+ ecirc: "\xEA",
2431
+ ecolon: "\u2255",
2432
+ ecy: "\u044D",
2433
+ edot: "\u0117",
2434
+ ee: "\u2147",
2435
+ efDot: "\u2252",
2436
+ efr: "\u{1D522}",
2437
+ eg: "\u2A9A",
2438
+ egrave: "\xE8",
2439
+ egs: "\u2A96",
2440
+ egsdot: "\u2A98",
2441
+ el: "\u2A99",
2442
+ elinters: "\u23E7",
2443
+ ell: "\u2113",
2444
+ els: "\u2A95",
2445
+ elsdot: "\u2A97",
2446
+ emacr: "\u0113",
2447
+ empty: "\u2205",
2448
+ emptyset: "\u2205",
2449
+ emptyv: "\u2205",
2450
+ emsp13: "\u2004",
2451
+ emsp14: "\u2005",
2452
+ emsp: "\u2003",
2453
+ eng: "\u014B",
2454
+ ensp: "\u2002",
2455
+ eogon: "\u0119",
2456
+ eopf: "\u{1D556}",
2457
+ epar: "\u22D5",
2458
+ eparsl: "\u29E3",
2459
+ eplus: "\u2A71",
2460
+ epsi: "\u03B5",
2461
+ epsilon: "\u03B5",
2462
+ epsiv: "\u03F5",
2463
+ eqcirc: "\u2256",
2464
+ eqcolon: "\u2255",
2465
+ eqsim: "\u2242",
2466
+ eqslantgtr: "\u2A96",
2467
+ eqslantless: "\u2A95",
2468
+ equals: "=",
2469
+ equest: "\u225F",
2470
+ equiv: "\u2261",
2471
+ equivDD: "\u2A78",
2472
+ eqvparsl: "\u29E5",
2473
+ erDot: "\u2253",
2474
+ erarr: "\u2971",
2475
+ escr: "\u212F",
2476
+ esdot: "\u2250",
2477
+ esim: "\u2242",
2478
+ eta: "\u03B7",
2479
+ eth: "\xF0",
2480
+ euml: "\xEB",
2481
+ euro: "\u20AC",
2482
+ excl: "!",
2483
+ exist: "\u2203",
2484
+ expectation: "\u2130",
2485
+ exponentiale: "\u2147",
2486
+ fallingdotseq: "\u2252",
2487
+ fcy: "\u0444",
2488
+ female: "\u2640",
2489
+ ffilig: "\uFB03",
2490
+ fflig: "\uFB00",
2491
+ ffllig: "\uFB04",
2492
+ ffr: "\u{1D523}",
2493
+ filig: "\uFB01",
2494
+ fjlig: "fj",
2495
+ flat: "\u266D",
2496
+ fllig: "\uFB02",
2497
+ fltns: "\u25B1",
2498
+ fnof: "\u0192",
2499
+ fopf: "\u{1D557}",
2500
+ forall: "\u2200",
2501
+ fork: "\u22D4",
2502
+ forkv: "\u2AD9",
2503
+ fpartint: "\u2A0D",
2504
+ frac12: "\xBD",
2505
+ frac13: "\u2153",
2506
+ frac14: "\xBC",
2507
+ frac15: "\u2155",
2508
+ frac16: "\u2159",
2509
+ frac18: "\u215B",
2510
+ frac23: "\u2154",
2511
+ frac25: "\u2156",
2512
+ frac34: "\xBE",
2513
+ frac35: "\u2157",
2514
+ frac38: "\u215C",
2515
+ frac45: "\u2158",
2516
+ frac56: "\u215A",
2517
+ frac58: "\u215D",
2518
+ frac78: "\u215E",
2519
+ frasl: "\u2044",
2520
+ frown: "\u2322",
2521
+ fscr: "\u{1D4BB}",
2522
+ gE: "\u2267",
2523
+ gEl: "\u2A8C",
2524
+ gacute: "\u01F5",
2525
+ gamma: "\u03B3",
2526
+ gammad: "\u03DD",
2527
+ gap: "\u2A86",
2528
+ gbreve: "\u011F",
2529
+ gcirc: "\u011D",
2530
+ gcy: "\u0433",
2531
+ gdot: "\u0121",
2532
+ ge: "\u2265",
2533
+ gel: "\u22DB",
2534
+ geq: "\u2265",
2535
+ geqq: "\u2267",
2536
+ geqslant: "\u2A7E",
2537
+ ges: "\u2A7E",
2538
+ gescc: "\u2AA9",
2539
+ gesdot: "\u2A80",
2540
+ gesdoto: "\u2A82",
2541
+ gesdotol: "\u2A84",
2542
+ gesl: "\u22DB\uFE00",
2543
+ gesles: "\u2A94",
2544
+ gfr: "\u{1D524}",
2545
+ gg: "\u226B",
2546
+ ggg: "\u22D9",
2547
+ gimel: "\u2137",
2548
+ gjcy: "\u0453",
2549
+ gl: "\u2277",
2550
+ glE: "\u2A92",
2551
+ gla: "\u2AA5",
2552
+ glj: "\u2AA4",
2553
+ gnE: "\u2269",
2554
+ gnap: "\u2A8A",
2555
+ gnapprox: "\u2A8A",
2556
+ gne: "\u2A88",
2557
+ gneq: "\u2A88",
2558
+ gneqq: "\u2269",
2559
+ gnsim: "\u22E7",
2560
+ gopf: "\u{1D558}",
2561
+ grave: "`",
2562
+ gscr: "\u210A",
2563
+ gsim: "\u2273",
2564
+ gsime: "\u2A8E",
2565
+ gsiml: "\u2A90",
2566
+ gt: ">",
2567
+ gtcc: "\u2AA7",
2568
+ gtcir: "\u2A7A",
2569
+ gtdot: "\u22D7",
2570
+ gtlPar: "\u2995",
2571
+ gtquest: "\u2A7C",
2572
+ gtrapprox: "\u2A86",
2573
+ gtrarr: "\u2978",
2574
+ gtrdot: "\u22D7",
2575
+ gtreqless: "\u22DB",
2576
+ gtreqqless: "\u2A8C",
2577
+ gtrless: "\u2277",
2578
+ gtrsim: "\u2273",
2579
+ gvertneqq: "\u2269\uFE00",
2580
+ gvnE: "\u2269\uFE00",
2581
+ hArr: "\u21D4",
2582
+ hairsp: "\u200A",
2583
+ half: "\xBD",
2584
+ hamilt: "\u210B",
2585
+ hardcy: "\u044A",
2586
+ harr: "\u2194",
2587
+ harrcir: "\u2948",
2588
+ harrw: "\u21AD",
2589
+ hbar: "\u210F",
2590
+ hcirc: "\u0125",
2591
+ hearts: "\u2665",
2592
+ heartsuit: "\u2665",
2593
+ hellip: "\u2026",
2594
+ hercon: "\u22B9",
2595
+ hfr: "\u{1D525}",
2596
+ hksearow: "\u2925",
2597
+ hkswarow: "\u2926",
2598
+ hoarr: "\u21FF",
2599
+ homtht: "\u223B",
2600
+ hookleftarrow: "\u21A9",
2601
+ hookrightarrow: "\u21AA",
2602
+ hopf: "\u{1D559}",
2603
+ horbar: "\u2015",
2604
+ hscr: "\u{1D4BD}",
2605
+ hslash: "\u210F",
2606
+ hstrok: "\u0127",
2607
+ hybull: "\u2043",
2608
+ hyphen: "\u2010",
2609
+ iacute: "\xED",
2610
+ ic: "\u2063",
2611
+ icirc: "\xEE",
2612
+ icy: "\u0438",
2613
+ iecy: "\u0435",
2614
+ iexcl: "\xA1",
2615
+ iff: "\u21D4",
2616
+ ifr: "\u{1D526}",
2617
+ igrave: "\xEC",
2618
+ ii: "\u2148",
2619
+ iiiint: "\u2A0C",
2620
+ iiint: "\u222D",
2621
+ iinfin: "\u29DC",
2622
+ iiota: "\u2129",
2623
+ ijlig: "\u0133",
2624
+ imacr: "\u012B",
2625
+ image: "\u2111",
2626
+ imagline: "\u2110",
2627
+ imagpart: "\u2111",
2628
+ imath: "\u0131",
2629
+ imof: "\u22B7",
2630
+ imped: "\u01B5",
2631
+ in: "\u2208",
2632
+ incare: "\u2105",
2633
+ infin: "\u221E",
2634
+ infintie: "\u29DD",
2635
+ inodot: "\u0131",
2636
+ int: "\u222B",
2637
+ intcal: "\u22BA",
2638
+ integers: "\u2124",
2639
+ intercal: "\u22BA",
2640
+ intlarhk: "\u2A17",
2641
+ intprod: "\u2A3C",
2642
+ iocy: "\u0451",
2643
+ iogon: "\u012F",
2644
+ iopf: "\u{1D55A}",
2645
+ iota: "\u03B9",
2646
+ iprod: "\u2A3C",
2647
+ iquest: "\xBF",
2648
+ iscr: "\u{1D4BE}",
2649
+ isin: "\u2208",
2650
+ isinE: "\u22F9",
2651
+ isindot: "\u22F5",
2652
+ isins: "\u22F4",
2653
+ isinsv: "\u22F3",
2654
+ isinv: "\u2208",
2655
+ it: "\u2062",
2656
+ itilde: "\u0129",
2657
+ iukcy: "\u0456",
2658
+ iuml: "\xEF",
2659
+ jcirc: "\u0135",
2660
+ jcy: "\u0439",
2661
+ jfr: "\u{1D527}",
2662
+ jmath: "\u0237",
2663
+ jopf: "\u{1D55B}",
2664
+ jscr: "\u{1D4BF}",
2665
+ jsercy: "\u0458",
2666
+ jukcy: "\u0454",
2667
+ kappa: "\u03BA",
2668
+ kappav: "\u03F0",
2669
+ kcedil: "\u0137",
2670
+ kcy: "\u043A",
2671
+ kfr: "\u{1D528}",
2672
+ kgreen: "\u0138",
2673
+ khcy: "\u0445",
2674
+ kjcy: "\u045C",
2675
+ kopf: "\u{1D55C}",
2676
+ kscr: "\u{1D4C0}",
2677
+ lAarr: "\u21DA",
2678
+ lArr: "\u21D0",
2679
+ lAtail: "\u291B",
2680
+ lBarr: "\u290E",
2681
+ lE: "\u2266",
2682
+ lEg: "\u2A8B",
2683
+ lHar: "\u2962",
2684
+ lacute: "\u013A",
2685
+ laemptyv: "\u29B4",
2686
+ lagran: "\u2112",
2687
+ lambda: "\u03BB",
2688
+ lang: "\u27E8",
2689
+ langd: "\u2991",
2690
+ langle: "\u27E8",
2691
+ lap: "\u2A85",
2692
+ laquo: "\xAB",
2693
+ larr: "\u2190",
2694
+ larrb: "\u21E4",
2695
+ larrbfs: "\u291F",
2696
+ larrfs: "\u291D",
2697
+ larrhk: "\u21A9",
2698
+ larrlp: "\u21AB",
2699
+ larrpl: "\u2939",
2700
+ larrsim: "\u2973",
2701
+ larrtl: "\u21A2",
2702
+ lat: "\u2AAB",
2703
+ latail: "\u2919",
2704
+ late: "\u2AAD",
2705
+ lates: "\u2AAD\uFE00",
2706
+ lbarr: "\u290C",
2707
+ lbbrk: "\u2772",
2708
+ lbrace: "{",
2709
+ lbrack: "[",
2710
+ lbrke: "\u298B",
2711
+ lbrksld: "\u298F",
2712
+ lbrkslu: "\u298D",
2713
+ lcaron: "\u013E",
2714
+ lcedil: "\u013C",
2715
+ lceil: "\u2308",
2716
+ lcub: "{",
2717
+ lcy: "\u043B",
2718
+ ldca: "\u2936",
2719
+ ldquo: "\u201C",
2720
+ ldquor: "\u201E",
2721
+ ldrdhar: "\u2967",
2722
+ ldrushar: "\u294B",
2723
+ ldsh: "\u21B2",
2724
+ le: "\u2264",
2725
+ leftarrow: "\u2190",
2726
+ leftarrowtail: "\u21A2",
2727
+ leftharpoondown: "\u21BD",
2728
+ leftharpoonup: "\u21BC",
2729
+ leftleftarrows: "\u21C7",
2730
+ leftrightarrow: "\u2194",
2731
+ leftrightarrows: "\u21C6",
2732
+ leftrightharpoons: "\u21CB",
2733
+ leftrightsquigarrow: "\u21AD",
2734
+ leftthreetimes: "\u22CB",
2735
+ leg: "\u22DA",
2736
+ leq: "\u2264",
2737
+ leqq: "\u2266",
2738
+ leqslant: "\u2A7D",
2739
+ les: "\u2A7D",
2740
+ lescc: "\u2AA8",
2741
+ lesdot: "\u2A7F",
2742
+ lesdoto: "\u2A81",
2743
+ lesdotor: "\u2A83",
2744
+ lesg: "\u22DA\uFE00",
2745
+ lesges: "\u2A93",
2746
+ lessapprox: "\u2A85",
2747
+ lessdot: "\u22D6",
2748
+ lesseqgtr: "\u22DA",
2749
+ lesseqqgtr: "\u2A8B",
2750
+ lessgtr: "\u2276",
2751
+ lesssim: "\u2272",
2752
+ lfisht: "\u297C",
2753
+ lfloor: "\u230A",
2754
+ lfr: "\u{1D529}",
2755
+ lg: "\u2276",
2756
+ lgE: "\u2A91",
2757
+ lhard: "\u21BD",
2758
+ lharu: "\u21BC",
2759
+ lharul: "\u296A",
2760
+ lhblk: "\u2584",
2761
+ ljcy: "\u0459",
2762
+ ll: "\u226A",
2763
+ llarr: "\u21C7",
2764
+ llcorner: "\u231E",
2765
+ llhard: "\u296B",
2766
+ lltri: "\u25FA",
2767
+ lmidot: "\u0140",
2768
+ lmoust: "\u23B0",
2769
+ lmoustache: "\u23B0",
2770
+ lnE: "\u2268",
2771
+ lnap: "\u2A89",
2772
+ lnapprox: "\u2A89",
2773
+ lne: "\u2A87",
2774
+ lneq: "\u2A87",
2775
+ lneqq: "\u2268",
2776
+ lnsim: "\u22E6",
2777
+ loang: "\u27EC",
2778
+ loarr: "\u21FD",
2779
+ lobrk: "\u27E6",
2780
+ longleftarrow: "\u27F5",
2781
+ longleftrightarrow: "\u27F7",
2782
+ longmapsto: "\u27FC",
2783
+ longrightarrow: "\u27F6",
2784
+ looparrowleft: "\u21AB",
2785
+ looparrowright: "\u21AC",
2786
+ lopar: "\u2985",
2787
+ lopf: "\u{1D55D}",
2788
+ loplus: "\u2A2D",
2789
+ lotimes: "\u2A34",
2790
+ lowast: "\u2217",
2791
+ lowbar: "_",
2792
+ loz: "\u25CA",
2793
+ lozenge: "\u25CA",
2794
+ lozf: "\u29EB",
2795
+ lpar: "(",
2796
+ lparlt: "\u2993",
2797
+ lrarr: "\u21C6",
2798
+ lrcorner: "\u231F",
2799
+ lrhar: "\u21CB",
2800
+ lrhard: "\u296D",
2801
+ lrm: "\u200E",
2802
+ lrtri: "\u22BF",
2803
+ lsaquo: "\u2039",
2804
+ lscr: "\u{1D4C1}",
2805
+ lsh: "\u21B0",
2806
+ lsim: "\u2272",
2807
+ lsime: "\u2A8D",
2808
+ lsimg: "\u2A8F",
2809
+ lsqb: "[",
2810
+ lsquo: "\u2018",
2811
+ lsquor: "\u201A",
2812
+ lstrok: "\u0142",
2813
+ lt: "<",
2814
+ ltcc: "\u2AA6",
2815
+ ltcir: "\u2A79",
2816
+ ltdot: "\u22D6",
2817
+ lthree: "\u22CB",
2818
+ ltimes: "\u22C9",
2819
+ ltlarr: "\u2976",
2820
+ ltquest: "\u2A7B",
2821
+ ltrPar: "\u2996",
2822
+ ltri: "\u25C3",
2823
+ ltrie: "\u22B4",
2824
+ ltrif: "\u25C2",
2825
+ lurdshar: "\u294A",
2826
+ luruhar: "\u2966",
2827
+ lvertneqq: "\u2268\uFE00",
2828
+ lvnE: "\u2268\uFE00",
2829
+ mDDot: "\u223A",
2830
+ macr: "\xAF",
2831
+ male: "\u2642",
2832
+ malt: "\u2720",
2833
+ maltese: "\u2720",
2834
+ map: "\u21A6",
2835
+ mapsto: "\u21A6",
2836
+ mapstodown: "\u21A7",
2837
+ mapstoleft: "\u21A4",
2838
+ mapstoup: "\u21A5",
2839
+ marker: "\u25AE",
2840
+ mcomma: "\u2A29",
2841
+ mcy: "\u043C",
2842
+ mdash: "\u2014",
2843
+ measuredangle: "\u2221",
2844
+ mfr: "\u{1D52A}",
2845
+ mho: "\u2127",
2846
+ micro: "\xB5",
2847
+ mid: "\u2223",
2848
+ midast: "*",
2849
+ midcir: "\u2AF0",
2850
+ middot: "\xB7",
2851
+ minus: "\u2212",
2852
+ minusb: "\u229F",
2853
+ minusd: "\u2238",
2854
+ minusdu: "\u2A2A",
2855
+ mlcp: "\u2ADB",
2856
+ mldr: "\u2026",
2857
+ mnplus: "\u2213",
2858
+ models: "\u22A7",
2859
+ mopf: "\u{1D55E}",
2860
+ mp: "\u2213",
2861
+ mscr: "\u{1D4C2}",
2862
+ mstpos: "\u223E",
2863
+ mu: "\u03BC",
2864
+ multimap: "\u22B8",
2865
+ mumap: "\u22B8",
2866
+ nGg: "\u22D9\u0338",
2867
+ nGt: "\u226B\u20D2",
2868
+ nGtv: "\u226B\u0338",
2869
+ nLeftarrow: "\u21CD",
2870
+ nLeftrightarrow: "\u21CE",
2871
+ nLl: "\u22D8\u0338",
2872
+ nLt: "\u226A\u20D2",
2873
+ nLtv: "\u226A\u0338",
2874
+ nRightarrow: "\u21CF",
2875
+ nVDash: "\u22AF",
2876
+ nVdash: "\u22AE",
2877
+ nabla: "\u2207",
2878
+ nacute: "\u0144",
2879
+ nang: "\u2220\u20D2",
2880
+ nap: "\u2249",
2881
+ napE: "\u2A70\u0338",
2882
+ napid: "\u224B\u0338",
2883
+ napos: "\u0149",
2884
+ napprox: "\u2249",
2885
+ natur: "\u266E",
2886
+ natural: "\u266E",
2887
+ naturals: "\u2115",
2888
+ nbsp: "\xA0",
2889
+ nbump: "\u224E\u0338",
2890
+ nbumpe: "\u224F\u0338",
2891
+ ncap: "\u2A43",
2892
+ ncaron: "\u0148",
2893
+ ncedil: "\u0146",
2894
+ ncong: "\u2247",
2895
+ ncongdot: "\u2A6D\u0338",
2896
+ ncup: "\u2A42",
2897
+ ncy: "\u043D",
2898
+ ndash: "\u2013",
2899
+ ne: "\u2260",
2900
+ neArr: "\u21D7",
2901
+ nearhk: "\u2924",
2902
+ nearr: "\u2197",
2903
+ nearrow: "\u2197",
2904
+ nedot: "\u2250\u0338",
2905
+ nequiv: "\u2262",
2906
+ nesear: "\u2928",
2907
+ nesim: "\u2242\u0338",
2908
+ nexist: "\u2204",
2909
+ nexists: "\u2204",
2910
+ nfr: "\u{1D52B}",
2911
+ ngE: "\u2267\u0338",
2912
+ nge: "\u2271",
2913
+ ngeq: "\u2271",
2914
+ ngeqq: "\u2267\u0338",
2915
+ ngeqslant: "\u2A7E\u0338",
2916
+ nges: "\u2A7E\u0338",
2917
+ ngsim: "\u2275",
2918
+ ngt: "\u226F",
2919
+ ngtr: "\u226F",
2920
+ nhArr: "\u21CE",
2921
+ nharr: "\u21AE",
2922
+ nhpar: "\u2AF2",
2923
+ ni: "\u220B",
2924
+ nis: "\u22FC",
2925
+ nisd: "\u22FA",
2926
+ niv: "\u220B",
2927
+ njcy: "\u045A",
2928
+ nlArr: "\u21CD",
2929
+ nlE: "\u2266\u0338",
2930
+ nlarr: "\u219A",
2931
+ nldr: "\u2025",
2932
+ nle: "\u2270",
2933
+ nleftarrow: "\u219A",
2934
+ nleftrightarrow: "\u21AE",
2935
+ nleq: "\u2270",
2936
+ nleqq: "\u2266\u0338",
2937
+ nleqslant: "\u2A7D\u0338",
2938
+ nles: "\u2A7D\u0338",
2939
+ nless: "\u226E",
2940
+ nlsim: "\u2274",
2941
+ nlt: "\u226E",
2942
+ nltri: "\u22EA",
2943
+ nltrie: "\u22EC",
2944
+ nmid: "\u2224",
2945
+ nopf: "\u{1D55F}",
2946
+ not: "\xAC",
2947
+ notin: "\u2209",
2948
+ notinE: "\u22F9\u0338",
2949
+ notindot: "\u22F5\u0338",
2950
+ notinva: "\u2209",
2951
+ notinvb: "\u22F7",
2952
+ notinvc: "\u22F6",
2953
+ notni: "\u220C",
2954
+ notniva: "\u220C",
2955
+ notnivb: "\u22FE",
2956
+ notnivc: "\u22FD",
2957
+ npar: "\u2226",
2958
+ nparallel: "\u2226",
2959
+ nparsl: "\u2AFD\u20E5",
2960
+ npart: "\u2202\u0338",
2961
+ npolint: "\u2A14",
2962
+ npr: "\u2280",
2963
+ nprcue: "\u22E0",
2964
+ npre: "\u2AAF\u0338",
2965
+ nprec: "\u2280",
2966
+ npreceq: "\u2AAF\u0338",
2967
+ nrArr: "\u21CF",
2968
+ nrarr: "\u219B",
2969
+ nrarrc: "\u2933\u0338",
2970
+ nrarrw: "\u219D\u0338",
2971
+ nrightarrow: "\u219B",
2972
+ nrtri: "\u22EB",
2973
+ nrtrie: "\u22ED",
2974
+ nsc: "\u2281",
2975
+ nsccue: "\u22E1",
2976
+ nsce: "\u2AB0\u0338",
2977
+ nscr: "\u{1D4C3}",
2978
+ nshortmid: "\u2224",
2979
+ nshortparallel: "\u2226",
2980
+ nsim: "\u2241",
2981
+ nsime: "\u2244",
2982
+ nsimeq: "\u2244",
2983
+ nsmid: "\u2224",
2984
+ nspar: "\u2226",
2985
+ nsqsube: "\u22E2",
2986
+ nsqsupe: "\u22E3",
2987
+ nsub: "\u2284",
2988
+ nsubE: "\u2AC5\u0338",
2989
+ nsube: "\u2288",
2990
+ nsubset: "\u2282\u20D2",
2991
+ nsubseteq: "\u2288",
2992
+ nsubseteqq: "\u2AC5\u0338",
2993
+ nsucc: "\u2281",
2994
+ nsucceq: "\u2AB0\u0338",
2995
+ nsup: "\u2285",
2996
+ nsupE: "\u2AC6\u0338",
2997
+ nsupe: "\u2289",
2998
+ nsupset: "\u2283\u20D2",
2999
+ nsupseteq: "\u2289",
3000
+ nsupseteqq: "\u2AC6\u0338",
3001
+ ntgl: "\u2279",
3002
+ ntilde: "\xF1",
3003
+ ntlg: "\u2278",
3004
+ ntriangleleft: "\u22EA",
3005
+ ntrianglelefteq: "\u22EC",
3006
+ ntriangleright: "\u22EB",
3007
+ ntrianglerighteq: "\u22ED",
3008
+ nu: "\u03BD",
3009
+ num: "#",
3010
+ numero: "\u2116",
3011
+ numsp: "\u2007",
3012
+ nvDash: "\u22AD",
3013
+ nvHarr: "\u2904",
3014
+ nvap: "\u224D\u20D2",
3015
+ nvdash: "\u22AC",
3016
+ nvge: "\u2265\u20D2",
3017
+ nvgt: ">\u20D2",
3018
+ nvinfin: "\u29DE",
3019
+ nvlArr: "\u2902",
3020
+ nvle: "\u2264\u20D2",
3021
+ nvlt: "<\u20D2",
3022
+ nvltrie: "\u22B4\u20D2",
3023
+ nvrArr: "\u2903",
3024
+ nvrtrie: "\u22B5\u20D2",
3025
+ nvsim: "\u223C\u20D2",
3026
+ nwArr: "\u21D6",
3027
+ nwarhk: "\u2923",
3028
+ nwarr: "\u2196",
3029
+ nwarrow: "\u2196",
3030
+ nwnear: "\u2927",
3031
+ oS: "\u24C8",
3032
+ oacute: "\xF3",
3033
+ oast: "\u229B",
3034
+ ocir: "\u229A",
3035
+ ocirc: "\xF4",
3036
+ ocy: "\u043E",
3037
+ odash: "\u229D",
3038
+ odblac: "\u0151",
3039
+ odiv: "\u2A38",
3040
+ odot: "\u2299",
3041
+ odsold: "\u29BC",
3042
+ oelig: "\u0153",
3043
+ ofcir: "\u29BF",
3044
+ ofr: "\u{1D52C}",
3045
+ ogon: "\u02DB",
3046
+ ograve: "\xF2",
3047
+ ogt: "\u29C1",
3048
+ ohbar: "\u29B5",
3049
+ ohm: "\u03A9",
3050
+ oint: "\u222E",
3051
+ olarr: "\u21BA",
3052
+ olcir: "\u29BE",
3053
+ olcross: "\u29BB",
3054
+ oline: "\u203E",
3055
+ olt: "\u29C0",
3056
+ omacr: "\u014D",
3057
+ omega: "\u03C9",
3058
+ omicron: "\u03BF",
3059
+ omid: "\u29B6",
3060
+ ominus: "\u2296",
3061
+ oopf: "\u{1D560}",
3062
+ opar: "\u29B7",
3063
+ operp: "\u29B9",
3064
+ oplus: "\u2295",
3065
+ or: "\u2228",
3066
+ orarr: "\u21BB",
3067
+ ord: "\u2A5D",
3068
+ order: "\u2134",
3069
+ orderof: "\u2134",
3070
+ ordf: "\xAA",
3071
+ ordm: "\xBA",
3072
+ origof: "\u22B6",
3073
+ oror: "\u2A56",
3074
+ orslope: "\u2A57",
3075
+ orv: "\u2A5B",
3076
+ oscr: "\u2134",
3077
+ oslash: "\xF8",
3078
+ osol: "\u2298",
3079
+ otilde: "\xF5",
3080
+ otimes: "\u2297",
3081
+ otimesas: "\u2A36",
3082
+ ouml: "\xF6",
3083
+ ovbar: "\u233D",
3084
+ par: "\u2225",
3085
+ para: "\xB6",
3086
+ parallel: "\u2225",
3087
+ parsim: "\u2AF3",
3088
+ parsl: "\u2AFD",
3089
+ part: "\u2202",
3090
+ pcy: "\u043F",
3091
+ percnt: "%",
3092
+ period: ".",
3093
+ permil: "\u2030",
3094
+ perp: "\u22A5",
3095
+ pertenk: "\u2031",
3096
+ pfr: "\u{1D52D}",
3097
+ phi: "\u03C6",
3098
+ phiv: "\u03D5",
3099
+ phmmat: "\u2133",
3100
+ phone: "\u260E",
3101
+ pi: "\u03C0",
3102
+ pitchfork: "\u22D4",
3103
+ piv: "\u03D6",
3104
+ planck: "\u210F",
3105
+ planckh: "\u210E",
3106
+ plankv: "\u210F",
3107
+ plus: "+",
3108
+ plusacir: "\u2A23",
3109
+ plusb: "\u229E",
3110
+ pluscir: "\u2A22",
3111
+ plusdo: "\u2214",
3112
+ plusdu: "\u2A25",
3113
+ pluse: "\u2A72",
3114
+ plusmn: "\xB1",
3115
+ plussim: "\u2A26",
3116
+ plustwo: "\u2A27",
3117
+ pm: "\xB1",
3118
+ pointint: "\u2A15",
3119
+ popf: "\u{1D561}",
3120
+ pound: "\xA3",
3121
+ pr: "\u227A",
3122
+ prE: "\u2AB3",
3123
+ prap: "\u2AB7",
3124
+ prcue: "\u227C",
3125
+ pre: "\u2AAF",
3126
+ prec: "\u227A",
3127
+ precapprox: "\u2AB7",
3128
+ preccurlyeq: "\u227C",
3129
+ preceq: "\u2AAF",
3130
+ precnapprox: "\u2AB9",
3131
+ precneqq: "\u2AB5",
3132
+ precnsim: "\u22E8",
3133
+ precsim: "\u227E",
3134
+ prime: "\u2032",
3135
+ primes: "\u2119",
3136
+ prnE: "\u2AB5",
3137
+ prnap: "\u2AB9",
3138
+ prnsim: "\u22E8",
3139
+ prod: "\u220F",
3140
+ profalar: "\u232E",
3141
+ profline: "\u2312",
3142
+ profsurf: "\u2313",
3143
+ prop: "\u221D",
3144
+ propto: "\u221D",
3145
+ prsim: "\u227E",
3146
+ prurel: "\u22B0",
3147
+ pscr: "\u{1D4C5}",
3148
+ psi: "\u03C8",
3149
+ puncsp: "\u2008",
3150
+ qfr: "\u{1D52E}",
3151
+ qint: "\u2A0C",
3152
+ qopf: "\u{1D562}",
3153
+ qprime: "\u2057",
3154
+ qscr: "\u{1D4C6}",
3155
+ quaternions: "\u210D",
3156
+ quatint: "\u2A16",
3157
+ quest: "?",
3158
+ questeq: "\u225F",
3159
+ quot: '"',
3160
+ rAarr: "\u21DB",
3161
+ rArr: "\u21D2",
3162
+ rAtail: "\u291C",
3163
+ rBarr: "\u290F",
3164
+ rHar: "\u2964",
3165
+ race: "\u223D\u0331",
3166
+ racute: "\u0155",
3167
+ radic: "\u221A",
3168
+ raemptyv: "\u29B3",
3169
+ rang: "\u27E9",
3170
+ rangd: "\u2992",
3171
+ range: "\u29A5",
3172
+ rangle: "\u27E9",
3173
+ raquo: "\xBB",
3174
+ rarr: "\u2192",
3175
+ rarrap: "\u2975",
3176
+ rarrb: "\u21E5",
3177
+ rarrbfs: "\u2920",
3178
+ rarrc: "\u2933",
3179
+ rarrfs: "\u291E",
3180
+ rarrhk: "\u21AA",
3181
+ rarrlp: "\u21AC",
3182
+ rarrpl: "\u2945",
3183
+ rarrsim: "\u2974",
3184
+ rarrtl: "\u21A3",
3185
+ rarrw: "\u219D",
3186
+ ratail: "\u291A",
3187
+ ratio: "\u2236",
3188
+ rationals: "\u211A",
3189
+ rbarr: "\u290D",
3190
+ rbbrk: "\u2773",
3191
+ rbrace: "}",
3192
+ rbrack: "]",
3193
+ rbrke: "\u298C",
3194
+ rbrksld: "\u298E",
3195
+ rbrkslu: "\u2990",
3196
+ rcaron: "\u0159",
3197
+ rcedil: "\u0157",
3198
+ rceil: "\u2309",
3199
+ rcub: "}",
3200
+ rcy: "\u0440",
3201
+ rdca: "\u2937",
3202
+ rdldhar: "\u2969",
3203
+ rdquo: "\u201D",
3204
+ rdquor: "\u201D",
3205
+ rdsh: "\u21B3",
3206
+ real: "\u211C",
3207
+ realine: "\u211B",
3208
+ realpart: "\u211C",
3209
+ reals: "\u211D",
3210
+ rect: "\u25AD",
3211
+ reg: "\xAE",
3212
+ rfisht: "\u297D",
3213
+ rfloor: "\u230B",
3214
+ rfr: "\u{1D52F}",
3215
+ rhard: "\u21C1",
3216
+ rharu: "\u21C0",
3217
+ rharul: "\u296C",
3218
+ rho: "\u03C1",
3219
+ rhov: "\u03F1",
3220
+ rightarrow: "\u2192",
3221
+ rightarrowtail: "\u21A3",
3222
+ rightharpoondown: "\u21C1",
3223
+ rightharpoonup: "\u21C0",
3224
+ rightleftarrows: "\u21C4",
3225
+ rightleftharpoons: "\u21CC",
3226
+ rightrightarrows: "\u21C9",
3227
+ rightsquigarrow: "\u219D",
3228
+ rightthreetimes: "\u22CC",
3229
+ ring: "\u02DA",
3230
+ risingdotseq: "\u2253",
3231
+ rlarr: "\u21C4",
3232
+ rlhar: "\u21CC",
3233
+ rlm: "\u200F",
3234
+ rmoust: "\u23B1",
3235
+ rmoustache: "\u23B1",
3236
+ rnmid: "\u2AEE",
3237
+ roang: "\u27ED",
3238
+ roarr: "\u21FE",
3239
+ robrk: "\u27E7",
3240
+ ropar: "\u2986",
3241
+ ropf: "\u{1D563}",
3242
+ roplus: "\u2A2E",
3243
+ rotimes: "\u2A35",
3244
+ rpar: ")",
3245
+ rpargt: "\u2994",
3246
+ rppolint: "\u2A12",
3247
+ rrarr: "\u21C9",
3248
+ rsaquo: "\u203A",
3249
+ rscr: "\u{1D4C7}",
3250
+ rsh: "\u21B1",
3251
+ rsqb: "]",
3252
+ rsquo: "\u2019",
3253
+ rsquor: "\u2019",
3254
+ rthree: "\u22CC",
3255
+ rtimes: "\u22CA",
3256
+ rtri: "\u25B9",
3257
+ rtrie: "\u22B5",
3258
+ rtrif: "\u25B8",
3259
+ rtriltri: "\u29CE",
3260
+ ruluhar: "\u2968",
3261
+ rx: "\u211E",
3262
+ sacute: "\u015B",
3263
+ sbquo: "\u201A",
3264
+ sc: "\u227B",
3265
+ scE: "\u2AB4",
3266
+ scap: "\u2AB8",
3267
+ scaron: "\u0161",
3268
+ sccue: "\u227D",
3269
+ sce: "\u2AB0",
3270
+ scedil: "\u015F",
3271
+ scirc: "\u015D",
3272
+ scnE: "\u2AB6",
3273
+ scnap: "\u2ABA",
3274
+ scnsim: "\u22E9",
3275
+ scpolint: "\u2A13",
3276
+ scsim: "\u227F",
3277
+ scy: "\u0441",
3278
+ sdot: "\u22C5",
3279
+ sdotb: "\u22A1",
3280
+ sdote: "\u2A66",
3281
+ seArr: "\u21D8",
3282
+ searhk: "\u2925",
3283
+ searr: "\u2198",
3284
+ searrow: "\u2198",
3285
+ sect: "\xA7",
3286
+ semi: ";",
3287
+ seswar: "\u2929",
3288
+ setminus: "\u2216",
3289
+ setmn: "\u2216",
3290
+ sext: "\u2736",
3291
+ sfr: "\u{1D530}",
3292
+ sfrown: "\u2322",
3293
+ sharp: "\u266F",
3294
+ shchcy: "\u0449",
3295
+ shcy: "\u0448",
3296
+ shortmid: "\u2223",
3297
+ shortparallel: "\u2225",
3298
+ shy: "\xAD",
3299
+ sigma: "\u03C3",
3300
+ sigmaf: "\u03C2",
3301
+ sigmav: "\u03C2",
3302
+ sim: "\u223C",
3303
+ simdot: "\u2A6A",
3304
+ sime: "\u2243",
3305
+ simeq: "\u2243",
3306
+ simg: "\u2A9E",
3307
+ simgE: "\u2AA0",
3308
+ siml: "\u2A9D",
3309
+ simlE: "\u2A9F",
3310
+ simne: "\u2246",
3311
+ simplus: "\u2A24",
3312
+ simrarr: "\u2972",
3313
+ slarr: "\u2190",
3314
+ smallsetminus: "\u2216",
3315
+ smashp: "\u2A33",
3316
+ smeparsl: "\u29E4",
3317
+ smid: "\u2223",
3318
+ smile: "\u2323",
3319
+ smt: "\u2AAA",
3320
+ smte: "\u2AAC",
3321
+ smtes: "\u2AAC\uFE00",
3322
+ softcy: "\u044C",
3323
+ sol: "/",
3324
+ solb: "\u29C4",
3325
+ solbar: "\u233F",
3326
+ sopf: "\u{1D564}",
3327
+ spades: "\u2660",
3328
+ spadesuit: "\u2660",
3329
+ spar: "\u2225",
3330
+ sqcap: "\u2293",
3331
+ sqcaps: "\u2293\uFE00",
3332
+ sqcup: "\u2294",
3333
+ sqcups: "\u2294\uFE00",
3334
+ sqsub: "\u228F",
3335
+ sqsube: "\u2291",
3336
+ sqsubset: "\u228F",
3337
+ sqsubseteq: "\u2291",
3338
+ sqsup: "\u2290",
3339
+ sqsupe: "\u2292",
3340
+ sqsupset: "\u2290",
3341
+ sqsupseteq: "\u2292",
3342
+ squ: "\u25A1",
3343
+ square: "\u25A1",
3344
+ squarf: "\u25AA",
3345
+ squf: "\u25AA",
3346
+ srarr: "\u2192",
3347
+ sscr: "\u{1D4C8}",
3348
+ ssetmn: "\u2216",
3349
+ ssmile: "\u2323",
3350
+ sstarf: "\u22C6",
3351
+ star: "\u2606",
3352
+ starf: "\u2605",
3353
+ straightepsilon: "\u03F5",
3354
+ straightphi: "\u03D5",
3355
+ strns: "\xAF",
3356
+ sub: "\u2282",
3357
+ subE: "\u2AC5",
3358
+ subdot: "\u2ABD",
3359
+ sube: "\u2286",
3360
+ subedot: "\u2AC3",
3361
+ submult: "\u2AC1",
3362
+ subnE: "\u2ACB",
3363
+ subne: "\u228A",
3364
+ subplus: "\u2ABF",
3365
+ subrarr: "\u2979",
3366
+ subset: "\u2282",
3367
+ subseteq: "\u2286",
3368
+ subseteqq: "\u2AC5",
3369
+ subsetneq: "\u228A",
3370
+ subsetneqq: "\u2ACB",
3371
+ subsim: "\u2AC7",
3372
+ subsub: "\u2AD5",
3373
+ subsup: "\u2AD3",
3374
+ succ: "\u227B",
3375
+ succapprox: "\u2AB8",
3376
+ succcurlyeq: "\u227D",
3377
+ succeq: "\u2AB0",
3378
+ succnapprox: "\u2ABA",
3379
+ succneqq: "\u2AB6",
3380
+ succnsim: "\u22E9",
3381
+ succsim: "\u227F",
3382
+ sum: "\u2211",
3383
+ sung: "\u266A",
3384
+ sup1: "\xB9",
3385
+ sup2: "\xB2",
3386
+ sup3: "\xB3",
3387
+ sup: "\u2283",
3388
+ supE: "\u2AC6",
3389
+ supdot: "\u2ABE",
3390
+ supdsub: "\u2AD8",
3391
+ supe: "\u2287",
3392
+ supedot: "\u2AC4",
3393
+ suphsol: "\u27C9",
3394
+ suphsub: "\u2AD7",
3395
+ suplarr: "\u297B",
3396
+ supmult: "\u2AC2",
3397
+ supnE: "\u2ACC",
3398
+ supne: "\u228B",
3399
+ supplus: "\u2AC0",
3400
+ supset: "\u2283",
3401
+ supseteq: "\u2287",
3402
+ supseteqq: "\u2AC6",
3403
+ supsetneq: "\u228B",
3404
+ supsetneqq: "\u2ACC",
3405
+ supsim: "\u2AC8",
3406
+ supsub: "\u2AD4",
3407
+ supsup: "\u2AD6",
3408
+ swArr: "\u21D9",
3409
+ swarhk: "\u2926",
3410
+ swarr: "\u2199",
3411
+ swarrow: "\u2199",
3412
+ swnwar: "\u292A",
3413
+ szlig: "\xDF",
3414
+ target: "\u2316",
3415
+ tau: "\u03C4",
3416
+ tbrk: "\u23B4",
3417
+ tcaron: "\u0165",
3418
+ tcedil: "\u0163",
3419
+ tcy: "\u0442",
3420
+ tdot: "\u20DB",
3421
+ telrec: "\u2315",
3422
+ tfr: "\u{1D531}",
3423
+ there4: "\u2234",
3424
+ therefore: "\u2234",
3425
+ theta: "\u03B8",
3426
+ thetasym: "\u03D1",
3427
+ thetav: "\u03D1",
3428
+ thickapprox: "\u2248",
3429
+ thicksim: "\u223C",
3430
+ thinsp: "\u2009",
3431
+ thkap: "\u2248",
3432
+ thksim: "\u223C",
3433
+ thorn: "\xFE",
3434
+ tilde: "\u02DC",
3435
+ times: "\xD7",
3436
+ timesb: "\u22A0",
3437
+ timesbar: "\u2A31",
3438
+ timesd: "\u2A30",
3439
+ tint: "\u222D",
3440
+ toea: "\u2928",
3441
+ top: "\u22A4",
3442
+ topbot: "\u2336",
3443
+ topcir: "\u2AF1",
3444
+ topf: "\u{1D565}",
3445
+ topfork: "\u2ADA",
3446
+ tosa: "\u2929",
3447
+ tprime: "\u2034",
3448
+ trade: "\u2122",
3449
+ triangle: "\u25B5",
3450
+ triangledown: "\u25BF",
3451
+ triangleleft: "\u25C3",
3452
+ trianglelefteq: "\u22B4",
3453
+ triangleq: "\u225C",
3454
+ triangleright: "\u25B9",
3455
+ trianglerighteq: "\u22B5",
3456
+ tridot: "\u25EC",
3457
+ trie: "\u225C",
3458
+ triminus: "\u2A3A",
3459
+ triplus: "\u2A39",
3460
+ trisb: "\u29CD",
3461
+ tritime: "\u2A3B",
3462
+ trpezium: "\u23E2",
3463
+ tscr: "\u{1D4C9}",
3464
+ tscy: "\u0446",
3465
+ tshcy: "\u045B",
3466
+ tstrok: "\u0167",
3467
+ twixt: "\u226C",
3468
+ twoheadleftarrow: "\u219E",
3469
+ twoheadrightarrow: "\u21A0",
3470
+ uArr: "\u21D1",
3471
+ uHar: "\u2963",
3472
+ uacute: "\xFA",
3473
+ uarr: "\u2191",
3474
+ ubrcy: "\u045E",
3475
+ ubreve: "\u016D",
3476
+ ucirc: "\xFB",
3477
+ ucy: "\u0443",
3478
+ udarr: "\u21C5",
3479
+ udblac: "\u0171",
3480
+ udhar: "\u296E",
3481
+ ufisht: "\u297E",
3482
+ ufr: "\u{1D532}",
3483
+ ugrave: "\xF9",
3484
+ uharl: "\u21BF",
3485
+ uharr: "\u21BE",
3486
+ uhblk: "\u2580",
3487
+ ulcorn: "\u231C",
3488
+ ulcorner: "\u231C",
3489
+ ulcrop: "\u230F",
3490
+ ultri: "\u25F8",
3491
+ umacr: "\u016B",
3492
+ uml: "\xA8",
3493
+ uogon: "\u0173",
3494
+ uopf: "\u{1D566}",
3495
+ uparrow: "\u2191",
3496
+ updownarrow: "\u2195",
3497
+ upharpoonleft: "\u21BF",
3498
+ upharpoonright: "\u21BE",
3499
+ uplus: "\u228E",
3500
+ upsi: "\u03C5",
3501
+ upsih: "\u03D2",
3502
+ upsilon: "\u03C5",
3503
+ upuparrows: "\u21C8",
3504
+ urcorn: "\u231D",
3505
+ urcorner: "\u231D",
3506
+ urcrop: "\u230E",
3507
+ uring: "\u016F",
3508
+ urtri: "\u25F9",
3509
+ uscr: "\u{1D4CA}",
3510
+ utdot: "\u22F0",
3511
+ utilde: "\u0169",
3512
+ utri: "\u25B5",
3513
+ utrif: "\u25B4",
3514
+ uuarr: "\u21C8",
3515
+ uuml: "\xFC",
3516
+ uwangle: "\u29A7",
3517
+ vArr: "\u21D5",
3518
+ vBar: "\u2AE8",
3519
+ vBarv: "\u2AE9",
3520
+ vDash: "\u22A8",
3521
+ vangrt: "\u299C",
3522
+ varepsilon: "\u03F5",
3523
+ varkappa: "\u03F0",
3524
+ varnothing: "\u2205",
3525
+ varphi: "\u03D5",
3526
+ varpi: "\u03D6",
3527
+ varpropto: "\u221D",
3528
+ varr: "\u2195",
3529
+ varrho: "\u03F1",
3530
+ varsigma: "\u03C2",
3531
+ varsubsetneq: "\u228A\uFE00",
3532
+ varsubsetneqq: "\u2ACB\uFE00",
3533
+ varsupsetneq: "\u228B\uFE00",
3534
+ varsupsetneqq: "\u2ACC\uFE00",
3535
+ vartheta: "\u03D1",
3536
+ vartriangleleft: "\u22B2",
3537
+ vartriangleright: "\u22B3",
3538
+ vcy: "\u0432",
3539
+ vdash: "\u22A2",
3540
+ vee: "\u2228",
3541
+ veebar: "\u22BB",
3542
+ veeeq: "\u225A",
3543
+ vellip: "\u22EE",
3544
+ verbar: "|",
3545
+ vert: "|",
3546
+ vfr: "\u{1D533}",
3547
+ vltri: "\u22B2",
3548
+ vnsub: "\u2282\u20D2",
3549
+ vnsup: "\u2283\u20D2",
3550
+ vopf: "\u{1D567}",
3551
+ vprop: "\u221D",
3552
+ vrtri: "\u22B3",
3553
+ vscr: "\u{1D4CB}",
3554
+ vsubnE: "\u2ACB\uFE00",
3555
+ vsubne: "\u228A\uFE00",
3556
+ vsupnE: "\u2ACC\uFE00",
3557
+ vsupne: "\u228B\uFE00",
3558
+ vzigzag: "\u299A",
3559
+ wcirc: "\u0175",
3560
+ wedbar: "\u2A5F",
3561
+ wedge: "\u2227",
3562
+ wedgeq: "\u2259",
3563
+ weierp: "\u2118",
3564
+ wfr: "\u{1D534}",
3565
+ wopf: "\u{1D568}",
3566
+ wp: "\u2118",
3567
+ wr: "\u2240",
3568
+ wreath: "\u2240",
3569
+ wscr: "\u{1D4CC}",
3570
+ xcap: "\u22C2",
3571
+ xcirc: "\u25EF",
3572
+ xcup: "\u22C3",
3573
+ xdtri: "\u25BD",
3574
+ xfr: "\u{1D535}",
3575
+ xhArr: "\u27FA",
3576
+ xharr: "\u27F7",
3577
+ xi: "\u03BE",
3578
+ xlArr: "\u27F8",
3579
+ xlarr: "\u27F5",
3580
+ xmap: "\u27FC",
3581
+ xnis: "\u22FB",
3582
+ xodot: "\u2A00",
3583
+ xopf: "\u{1D569}",
3584
+ xoplus: "\u2A01",
3585
+ xotime: "\u2A02",
3586
+ xrArr: "\u27F9",
3587
+ xrarr: "\u27F6",
3588
+ xscr: "\u{1D4CD}",
3589
+ xsqcup: "\u2A06",
3590
+ xuplus: "\u2A04",
3591
+ xutri: "\u25B3",
3592
+ xvee: "\u22C1",
3593
+ xwedge: "\u22C0",
3594
+ yacute: "\xFD",
3595
+ yacy: "\u044F",
3596
+ ycirc: "\u0177",
3597
+ ycy: "\u044B",
3598
+ yen: "\xA5",
3599
+ yfr: "\u{1D536}",
3600
+ yicy: "\u0457",
3601
+ yopf: "\u{1D56A}",
3602
+ yscr: "\u{1D4CE}",
3603
+ yucy: "\u044E",
3604
+ yuml: "\xFF",
3605
+ zacute: "\u017A",
3606
+ zcaron: "\u017E",
3607
+ zcy: "\u0437",
3608
+ zdot: "\u017C",
3609
+ zeetrf: "\u2128",
3610
+ zeta: "\u03B6",
3611
+ zfr: "\u{1D537}",
3612
+ zhcy: "\u0436",
3613
+ zigrarr: "\u21DD",
3614
+ zopf: "\u{1D56B}",
3615
+ zscr: "\u{1D4CF}",
3616
+ zwj: "\u200D",
3617
+ zwnj: "\u200C"
3618
+ }, own$1 = {}.hasOwnProperty;
3619
+ function decodeNamedCharacterReference(value) {
3620
+ return own$1.call(characterEntities, value) ? characterEntities[value] : !1;
3621
+ }
3622
+ const messages = [
3623
+ "",
3624
+ /* 1: Non terminated (named) */
3625
+ "Named character references must be terminated by a semicolon",
3626
+ /* 2: Non terminated (numeric) */
3627
+ "Numeric character references must be terminated by a semicolon",
3628
+ /* 3: Empty (named) */
3629
+ "Named character references cannot be empty",
3630
+ /* 4: Empty (numeric) */
3631
+ "Numeric character references cannot be empty",
3632
+ /* 5: Unknown (named) */
3633
+ "Named character references must be known",
3634
+ /* 6: Disallowed (numeric) */
3635
+ "Numeric character references cannot be disallowed",
3636
+ /* 7: Prohibited (numeric) */
3637
+ "Numeric character references cannot be outside the permissible Unicode range"
3638
+ ];
3639
+ function parseEntities(value, options) {
3640
+ const settings = {}, additional = typeof settings.additional == "string" ? settings.additional.charCodeAt(0) : settings.additional, result = [];
3641
+ let index = 0, lines = -1, queue = "", point, indent;
3642
+ settings.position && ("start" in settings.position || "indent" in settings.position ? (indent = settings.position.indent, point = settings.position.start) : point = settings.position);
3643
+ let line = (point ? point.line : 0) || 1, column = (point ? point.column : 0) || 1, previous = now(), character;
3644
+ for (index--; ++index <= value.length; )
3645
+ if (character === 10 && (column = (indent ? indent[lines] : 0) || 1), character = value.charCodeAt(index), character === 38) {
3646
+ const following = value.charCodeAt(index + 1);
3647
+ if (following === 9 || following === 10 || following === 12 || following === 32 || following === 38 || following === 60 || Number.isNaN(following) || additional && following === additional) {
3648
+ queue += String.fromCharCode(character), column++;
3649
+ continue;
3650
+ }
3651
+ const start = index + 1;
3652
+ let begin = start, end = start, type;
3653
+ if (following === 35) {
3654
+ end = ++begin;
3655
+ const following2 = value.charCodeAt(end);
3656
+ following2 === 88 || following2 === 120 ? (type = "hexadecimal", end = ++begin) : type = "decimal";
3657
+ } else
3658
+ type = "named";
3659
+ let characterReferenceCharacters = "", characterReference = "", characters = "";
3660
+ const test = type === "named" ? isAlphanumerical : type === "decimal" ? isDecimal : isHexadecimal;
3661
+ for (end--; ++end <= value.length; ) {
3662
+ const following2 = value.charCodeAt(end);
3663
+ if (!test(following2))
3664
+ break;
3665
+ characters += String.fromCharCode(following2), type === "named" && characterEntitiesLegacy.includes(characters) && (characterReferenceCharacters = characters, characterReference = decodeNamedCharacterReference(characters));
3666
+ }
3667
+ let terminated = value.charCodeAt(end) === 59;
3668
+ if (terminated) {
3669
+ end++;
3670
+ const namedReference = type === "named" ? decodeNamedCharacterReference(characters) : !1;
3671
+ namedReference && (characterReferenceCharacters = characters, characterReference = namedReference);
3672
+ }
3673
+ let diff = 1 + end - start, reference = "";
3674
+ if (!(!terminated && settings.nonTerminated === !1)) if (!characters)
3675
+ type !== "named" && warning(4, diff);
3676
+ else if (type === "named") {
3677
+ if (terminated && !characterReference)
3678
+ warning(5, 1);
3679
+ else if (characterReferenceCharacters !== characters && (end = begin + characterReferenceCharacters.length, diff = 1 + end - begin, terminated = !1), !terminated) {
3680
+ const reason = characterReferenceCharacters ? 1 : 3;
3681
+ if (settings.attribute) {
3682
+ const following2 = value.charCodeAt(end);
3683
+ following2 === 61 ? (warning(reason, diff), characterReference = "") : isAlphanumerical(following2) ? characterReference = "" : warning(reason, diff);
3684
+ } else
3685
+ warning(reason, diff);
3686
+ }
3687
+ reference = characterReference;
3688
+ } else {
3689
+ terminated || warning(2, diff);
3690
+ let referenceCode = Number.parseInt(
3691
+ characters,
3692
+ type === "hexadecimal" ? 16 : 10
3693
+ );
3694
+ if (prohibited(referenceCode))
3695
+ warning(7, diff), reference = "\uFFFD";
3696
+ else if (referenceCode in characterReferenceInvalid)
3697
+ warning(6, diff), reference = characterReferenceInvalid[referenceCode];
3698
+ else {
3699
+ let output = "";
3700
+ disallowed(referenceCode) && warning(6, diff), referenceCode > 65535 && (referenceCode -= 65536, output += String.fromCharCode(
3701
+ referenceCode >>> 10 | 55296
3702
+ ), referenceCode = 56320 | referenceCode & 1023), reference = output + String.fromCharCode(referenceCode);
3703
+ }
3704
+ }
3705
+ if (reference) {
3706
+ flush(), previous = now(), index = end - 1, column += end - start + 1, result.push(reference);
3707
+ const next = now();
3708
+ next.offset++, settings.reference && settings.reference.call(
3709
+ settings.referenceContext || void 0,
3710
+ reference,
3711
+ { start: previous, end: next },
3712
+ value.slice(start - 1, end)
3713
+ ), previous = next;
3714
+ } else
3715
+ characters = value.slice(start - 1, end), queue += characters, column += characters.length, index = end - 1;
3716
+ } else
3717
+ character === 10 && (line++, lines++, column = 0), Number.isNaN(character) ? flush() : (queue += String.fromCharCode(character), column++);
3718
+ return result.join("");
3719
+ function now() {
3720
+ return {
3721
+ line,
3722
+ column,
3723
+ offset: index + ((point ? point.offset : 0) || 0)
3724
+ };
3725
+ }
3726
+ function warning(code, offset) {
3727
+ let position;
3728
+ settings.warning && (position = now(), position.column += offset, position.offset += offset, settings.warning.call(
3729
+ settings.warningContext || void 0,
3730
+ messages[code],
3731
+ position,
3732
+ code
3733
+ ));
3734
+ }
3735
+ function flush() {
3736
+ queue && (result.push(queue), settings.text && settings.text.call(settings.textContext || void 0, queue, {
3737
+ start: previous,
3738
+ end: now()
3739
+ }), queue = "");
3740
+ }
3741
+ }
3742
+ function prohibited(code) {
3743
+ return code >= 55296 && code <= 57343 || code > 1114111;
3744
+ }
3745
+ function disallowed(code) {
3746
+ return code >= 1 && code <= 8 || code === 11 || code >= 13 && code <= 31 || code >= 127 && code <= 159 || code >= 64976 && code <= 65007 || (code & 65535) === 65535 || (code & 65535) === 65534;
3747
+ }
3748
+ var uniqueId = 0, plainTextGrammar = {}, _ = {
3749
+ /**
3750
+ * A namespace for utility methods.
3751
+ *
3752
+ * All function in this namespace that are not explicitly marked as _public_ are for __internal use only__ and may
3753
+ * change or disappear at any time.
3754
+ *
3755
+ * @namespace
3756
+ * @memberof Prism
3757
+ */
3758
+ util: {
3759
+ /**
3760
+ * Returns the name of the type of the given value.
3761
+ *
3762
+ * @param {any} o
3763
+ * @returns {string}
3764
+ * @example
3765
+ * type(null) === 'Null'
3766
+ * type(undefined) === 'Undefined'
3767
+ * type(123) === 'Number'
3768
+ * type('foo') === 'String'
3769
+ * type(true) === 'Boolean'
3770
+ * type([1, 2]) === 'Array'
3771
+ * type({}) === 'Object'
3772
+ * type(String) === 'Function'
3773
+ * type(/abc+/) === 'RegExp'
3774
+ */
3775
+ type: function(o) {
3776
+ return Object.prototype.toString.call(o).slice(8, -1);
3777
+ },
3778
+ /**
3779
+ * Returns a unique number for the given object. Later calls will still return the same number.
3780
+ *
3781
+ * @param {Object} obj
3782
+ * @returns {number}
3783
+ */
3784
+ objId: function(obj) {
3785
+ return obj.__id || Object.defineProperty(obj, "__id", { value: ++uniqueId }), obj.__id;
3786
+ },
3787
+ /**
3788
+ * Creates a deep clone of the given object.
3789
+ *
3790
+ * The main intended use of this function is to clone language definitions.
3791
+ *
3792
+ * @param {T} o
3793
+ * @param {Record<number, any>} [visited]
3794
+ * @returns {T}
3795
+ * @template T
3796
+ */
3797
+ clone: function deepClone(o, visited) {
3798
+ visited = visited || {};
3799
+ var clone, id;
3800
+ switch (_.util.type(o)) {
3801
+ case "Object":
3802
+ if (id = _.util.objId(o), visited[id])
3803
+ return visited[id];
3804
+ clone = /** @type {Record<string, any>} */
3805
+ {}, visited[id] = clone;
3806
+ for (var key in o)
3807
+ o.hasOwnProperty(key) && (clone[key] = deepClone(o[key], visited));
3808
+ return (
3809
+ /** @type {any} */
3810
+ clone
3811
+ );
3812
+ case "Array":
3813
+ return id = _.util.objId(o), visited[id] ? visited[id] : (clone = [], visited[id] = clone, /** @type {any} */
3814
+ o.forEach(
3815
+ function(v, i) {
3816
+ clone[i] = deepClone(v, visited);
3817
+ }
3818
+ ), /** @type {any} */
3819
+ clone);
3820
+ default:
3821
+ return o;
3822
+ }
3823
+ }
3824
+ },
3825
+ /**
3826
+ * This namespace contains all currently loaded languages and the some helper functions to create and modify languages.
3827
+ *
3828
+ * @namespace
3829
+ * @memberof Prism
3830
+ * @public
3831
+ */
3832
+ languages: {
3833
+ /**
3834
+ * The grammar for plain, unformatted text.
3835
+ */
3836
+ plain: plainTextGrammar,
3837
+ plaintext: plainTextGrammar,
3838
+ text: plainTextGrammar,
3839
+ txt: plainTextGrammar,
3840
+ /**
3841
+ * Creates a deep copy of the language with the given id and appends the given tokens.
3842
+ *
3843
+ * If a token in `redef` also appears in the copied language, then the existing token in the copied language
3844
+ * will be overwritten at its original position.
3845
+ *
3846
+ * ## Best practices
3847
+ *
3848
+ * Since the position of overwriting tokens (token in `redef` that overwrite tokens in the copied language)
3849
+ * doesn't matter, they can technically be in any order. However, this can be confusing to others that trying to
3850
+ * understand the language definition because, normally, the order of tokens matters in Prism grammars.
3851
+ *
3852
+ * Therefore, it is encouraged to order overwriting tokens according to the positions of the overwritten tokens.
3853
+ * Furthermore, all non-overwriting tokens should be placed after the overwriting ones.
3854
+ *
3855
+ * @param {string} id The id of the language to extend. This has to be a key in `Prism.languages`.
3856
+ * @param {Grammar} redef The new tokens to append.
3857
+ * @returns {Grammar} The new language created.
3858
+ * @public
3859
+ * @example
3860
+ * Prism.languages['css-with-colors'] = Prism.languages.extend('css', {
3861
+ * // Prism.languages.css already has a 'comment' token, so this token will overwrite CSS' 'comment' token
3862
+ * // at its original position
3863
+ * 'comment': { ... },
3864
+ * // CSS doesn't have a 'color' token, so this token will be appended
3865
+ * 'color': /\b(?:red|green|blue)\b/
3866
+ * });
3867
+ */
3868
+ extend: function(id, redef) {
3869
+ var lang = _.util.clone(_.languages[id]);
3870
+ for (var key in redef)
3871
+ lang[key] = redef[key];
3872
+ return lang;
3873
+ },
3874
+ /**
3875
+ * Inserts tokens _before_ another token in a language definition or any other grammar.
3876
+ *
3877
+ * ## Usage
3878
+ *
3879
+ * This helper method makes it easy to modify existing languages. For example, the CSS language definition
3880
+ * not only defines CSS highlighting for CSS documents, but also needs to define highlighting for CSS embedded
3881
+ * in HTML through `<style>` elements. To do this, it needs to modify `Prism.languages.markup` and add the
3882
+ * appropriate tokens. However, `Prism.languages.markup` is a regular JavaScript object literal, so if you do
3883
+ * this:
3884
+ *
3885
+ * ```js
3886
+ * Prism.languages.markup.style = {
3887
+ * // token
3888
+ * };
3889
+ * ```
3890
+ *
3891
+ * then the `style` token will be added (and processed) at the end. `insertBefore` allows you to insert tokens
3892
+ * before existing tokens. For the CSS example above, you would use it like this:
3893
+ *
3894
+ * ```js
3895
+ * Prism.languages.insertBefore('markup', 'cdata', {
3896
+ * 'style': {
3897
+ * // token
3898
+ * }
3899
+ * });
3900
+ * ```
3901
+ *
3902
+ * ## Special cases
3903
+ *
3904
+ * If the grammars of `inside` and `insert` have tokens with the same name, the tokens in `inside`'s grammar
3905
+ * will be ignored.
3906
+ *
3907
+ * This behavior can be used to insert tokens after `before`:
3908
+ *
3909
+ * ```js
3910
+ * Prism.languages.insertBefore('markup', 'comment', {
3911
+ * 'comment': Prism.languages.markup.comment,
3912
+ * // tokens after 'comment'
3913
+ * });
3914
+ * ```
3915
+ *
3916
+ * ## Limitations
3917
+ *
3918
+ * The main problem `insertBefore` has to solve is iteration order. Since ES2015, the iteration order for object
3919
+ * properties is guaranteed to be the insertion order (except for integer keys) but some browsers behave
3920
+ * differently when keys are deleted and re-inserted. So `insertBefore` can't be implemented by temporarily
3921
+ * deleting properties which is necessary to insert at arbitrary positions.
3922
+ *
3923
+ * To solve this problem, `insertBefore` doesn't actually insert the given tokens into the target object.
3924
+ * Instead, it will create a new object and replace all references to the target object with the new one. This
3925
+ * can be done without temporarily deleting properties, so the iteration order is well-defined.
3926
+ *
3927
+ * However, only references that can be reached from `Prism.languages` or `insert` will be replaced. I.e. if
3928
+ * you hold the target object in a variable, then the value of the variable will not change.
3929
+ *
3930
+ * ```js
3931
+ * var oldMarkup = Prism.languages.markup;
3932
+ * var newMarkup = Prism.languages.insertBefore('markup', 'comment', { ... });
3933
+ *
3934
+ * assert(oldMarkup !== Prism.languages.markup);
3935
+ * assert(newMarkup === Prism.languages.markup);
3936
+ * ```
3937
+ *
3938
+ * @param {string} inside The property of `root` (e.g. a language id in `Prism.languages`) that contains the
3939
+ * object to be modified.
3940
+ * @param {string} before The key to insert before.
3941
+ * @param {Grammar} insert An object containing the key-value pairs to be inserted.
3942
+ * @param {Object<string, any>} [root] The object containing `inside`, i.e. the object that contains the
3943
+ * object to be modified.
3944
+ *
3945
+ * Defaults to `Prism.languages`.
3946
+ * @returns {Grammar} The new grammar object.
3947
+ * @public
3948
+ */
3949
+ insertBefore: function(inside, before, insert, root) {
3950
+ root = root || /** @type {any} */
3951
+ _.languages;
3952
+ var grammar = root[inside], ret = {};
3953
+ for (var token in grammar)
3954
+ if (grammar.hasOwnProperty(token)) {
3955
+ if (token == before)
3956
+ for (var newToken in insert)
3957
+ insert.hasOwnProperty(newToken) && (ret[newToken] = insert[newToken]);
3958
+ insert.hasOwnProperty(token) || (ret[token] = grammar[token]);
3959
+ }
3960
+ var old = root[inside];
3961
+ return root[inside] = ret, _.languages.DFS(_.languages, function(key, value) {
3962
+ value === old && key != inside && (this[key] = ret);
3963
+ }), ret;
3964
+ },
3965
+ // Traverse a language definition with Depth First Search
3966
+ DFS: function DFS(o, callback, type, visited) {
3967
+ visited = visited || {};
3968
+ var objId = _.util.objId;
3969
+ for (var i in o)
3970
+ if (o.hasOwnProperty(i)) {
3971
+ callback.call(o, i, o[i], type || i);
3972
+ var property = o[i], propertyType = _.util.type(property);
3973
+ propertyType === "Object" && !visited[objId(property)] ? (visited[objId(property)] = !0, DFS(property, callback, null, visited)) : propertyType === "Array" && !visited[objId(property)] && (visited[objId(property)] = !0, DFS(property, callback, i, visited));
3974
+ }
3975
+ }
3976
+ },
3977
+ plugins: {},
3978
+ /**
3979
+ * Low-level function, only use if you know what you’re doing. It accepts a string of text as input
3980
+ * and the language definitions to use, and returns a string with the HTML produced.
3981
+ *
3982
+ * The following hooks will be run:
3983
+ * 1. `before-tokenize`
3984
+ * 2. `after-tokenize`
3985
+ * 3. `wrap`: On each {@link Token}.
3986
+ *
3987
+ * @param {string} text A string with the code to be highlighted.
3988
+ * @param {Grammar} grammar An object containing the tokens to use.
3989
+ *
3990
+ * Usually a language definition like `Prism.languages.markup`.
3991
+ * @param {string} language The name of the language definition passed to `grammar`.
3992
+ * @returns {string} The highlighted HTML.
3993
+ * @memberof Prism
3994
+ * @public
3995
+ * @example
3996
+ * Prism.highlight('var foo = true;', Prism.languages.javascript, 'javascript');
3997
+ */
3998
+ highlight: function(text, grammar, language) {
3999
+ var env = {
4000
+ code: text,
4001
+ grammar,
4002
+ language
4003
+ };
4004
+ if (_.hooks.run("before-tokenize", env), !env.grammar)
4005
+ throw new Error('The language "' + env.language + '" has no grammar.');
4006
+ return env.tokens = _.tokenize(env.code, env.grammar), _.hooks.run("after-tokenize", env), Token.stringify(_.util.encode(env.tokens), env.language);
4007
+ },
4008
+ /**
4009
+ * This is the heart of Prism, and the most low-level function you can use. It accepts a string of text as input
4010
+ * and the language definitions to use, and returns an array with the tokenized code.
4011
+ *
4012
+ * When the language definition includes nested tokens, the function is called recursively on each of these tokens.
4013
+ *
4014
+ * This method could be useful in other contexts as well, as a very crude parser.
4015
+ *
4016
+ * @param {string} text A string with the code to be highlighted.
4017
+ * @param {Grammar} grammar An object containing the tokens to use.
4018
+ *
4019
+ * Usually a language definition like `Prism.languages.markup`.
4020
+ * @returns {TokenStream} An array of strings and tokens, a token stream.
4021
+ * @memberof Prism
4022
+ * @public
4023
+ * @example
4024
+ * let code = `var foo = 0;`;
4025
+ * let tokens = Prism.tokenize(code, Prism.languages.javascript);
4026
+ * tokens.forEach(token => {
4027
+ * if (token instanceof Prism.Token && token.type === 'number') {
4028
+ * console.log(`Found numeric literal: ${token.content}`);
4029
+ * }
4030
+ * });
4031
+ */
4032
+ tokenize: function(text, grammar) {
4033
+ var rest = grammar.rest;
4034
+ if (rest) {
4035
+ for (var token in rest)
4036
+ grammar[token] = rest[token];
4037
+ delete grammar.rest;
4038
+ }
4039
+ var tokenList = new LinkedList();
4040
+ return addAfter(tokenList, tokenList.head, text), matchGrammar(text, tokenList, grammar, tokenList.head, 0), toArray(tokenList);
4041
+ },
4042
+ /**
4043
+ * @namespace
4044
+ * @memberof Prism
4045
+ * @public
4046
+ */
4047
+ hooks: {
4048
+ all: {},
4049
+ /**
4050
+ * Adds the given callback to the list of callbacks for the given hook.
4051
+ *
4052
+ * The callback will be invoked when the hook it is registered for is run.
4053
+ * Hooks are usually directly run by a highlight function but you can also run hooks yourself.
4054
+ *
4055
+ * One callback function can be registered to multiple hooks and the same hook multiple times.
4056
+ *
4057
+ * @param {string} name The name of the hook.
4058
+ * @param {HookCallback} callback The callback function which is given environment variables.
4059
+ * @public
4060
+ */
4061
+ add: function(name, callback) {
4062
+ var hooks = _.hooks.all;
4063
+ hooks[name] = hooks[name] || [], hooks[name].push(callback);
4064
+ },
4065
+ /**
4066
+ * Runs a hook invoking all registered callbacks with the given environment variables.
4067
+ *
4068
+ * Callbacks will be invoked synchronously and in the order in which they were registered.
4069
+ *
4070
+ * @param {string} name The name of the hook.
4071
+ * @param {Object<string, any>} env The environment variables of the hook passed to all callbacks registered.
4072
+ * @public
4073
+ */
4074
+ run: function(name, env) {
4075
+ var callbacks = _.hooks.all[name];
4076
+ if (!(!callbacks || !callbacks.length))
4077
+ for (var i = 0, callback; callback = callbacks[i++]; )
4078
+ callback(env);
4079
+ }
4080
+ },
4081
+ Token
4082
+ };
4083
+ function Token(type, content, alias2, matchedStr) {
4084
+ this.type = type, this.content = content, this.alias = alias2, this.length = (matchedStr || "").length | 0;
4085
+ }
4086
+ function matchPattern(pattern, pos, text, lookbehind) {
4087
+ pattern.lastIndex = pos;
4088
+ var match = pattern.exec(text);
4089
+ if (match && lookbehind && match[1]) {
4090
+ var lookbehindLength = match[1].length;
4091
+ match.index += lookbehindLength, match[0] = match[0].slice(lookbehindLength);
4092
+ }
4093
+ return match;
4094
+ }
4095
+ function matchGrammar(text, tokenList, grammar, startNode, startPos, rematch) {
4096
+ for (var token in grammar)
4097
+ if (!(!grammar.hasOwnProperty(token) || !grammar[token])) {
4098
+ var patterns = grammar[token];
4099
+ patterns = Array.isArray(patterns) ? patterns : [patterns];
4100
+ for (var j = 0; j < patterns.length; ++j) {
4101
+ if (rematch && rematch.cause == token + "," + j)
4102
+ return;
4103
+ var patternObj = patterns[j], inside = patternObj.inside, lookbehind = !!patternObj.lookbehind, greedy = !!patternObj.greedy, alias2 = patternObj.alias;
4104
+ if (greedy && !patternObj.pattern.global) {
4105
+ var flags = patternObj.pattern.toString().match(/[imsuy]*$/)[0];
4106
+ patternObj.pattern = RegExp(patternObj.pattern.source, flags + "g");
4107
+ }
4108
+ for (var pattern = patternObj.pattern || patternObj, currentNode = startNode.next, pos = startPos; currentNode !== tokenList.tail && !(rematch && pos >= rematch.reach); pos += currentNode.value.length, currentNode = currentNode.next) {
4109
+ var str = currentNode.value;
4110
+ if (tokenList.length > text.length)
4111
+ return;
4112
+ if (!(str instanceof Token)) {
4113
+ var removeCount = 1, match;
4114
+ if (greedy) {
4115
+ if (match = matchPattern(pattern, pos, text, lookbehind), !match || match.index >= text.length)
4116
+ break;
4117
+ var from = match.index, to = match.index + match[0].length, p = pos;
4118
+ for (p += currentNode.value.length; from >= p; )
4119
+ currentNode = currentNode.next, p += currentNode.value.length;
4120
+ if (p -= currentNode.value.length, pos = p, currentNode.value instanceof Token)
4121
+ continue;
4122
+ for (var k = currentNode; k !== tokenList.tail && (p < to || typeof k.value == "string"); k = k.next)
4123
+ removeCount++, p += k.value.length;
4124
+ removeCount--, str = text.slice(pos, p), match.index -= pos;
4125
+ } else if (match = matchPattern(pattern, 0, str, lookbehind), !match)
4126
+ continue;
4127
+ var from = match.index, matchStr = match[0], before = str.slice(0, from), after = str.slice(from + matchStr.length), reach = pos + str.length;
4128
+ rematch && reach > rematch.reach && (rematch.reach = reach);
4129
+ var removeFrom = currentNode.prev;
4130
+ before && (removeFrom = addAfter(tokenList, removeFrom, before), pos += before.length), removeRange(tokenList, removeFrom, removeCount);
4131
+ var wrapped = new Token(
4132
+ token,
4133
+ inside ? _.tokenize(matchStr, inside) : matchStr,
4134
+ alias2,
4135
+ matchStr
4136
+ );
4137
+ if (currentNode = addAfter(tokenList, removeFrom, wrapped), after && addAfter(tokenList, currentNode, after), removeCount > 1) {
4138
+ var nestedRematch = {
4139
+ cause: token + "," + j,
4140
+ reach
4141
+ };
4142
+ matchGrammar(
4143
+ text,
4144
+ tokenList,
4145
+ grammar,
4146
+ currentNode.prev,
4147
+ pos,
4148
+ nestedRematch
4149
+ ), rematch && nestedRematch.reach > rematch.reach && (rematch.reach = nestedRematch.reach);
4150
+ }
4151
+ }
4152
+ }
4153
+ }
4154
+ }
4155
+ }
4156
+ function LinkedList() {
4157
+ var head = { value: null, prev: null, next: null }, tail = { value: null, prev: head, next: null };
4158
+ head.next = tail, this.head = head, this.tail = tail, this.length = 0;
4159
+ }
4160
+ function addAfter(list, node, value) {
4161
+ var next = node.next, newNode = { value, prev: node, next };
4162
+ return node.next = newNode, next.prev = newNode, list.length++, newNode;
4163
+ }
4164
+ function removeRange(list, node, count) {
4165
+ for (var next = node.next, i = 0; i < count && next !== list.tail; i++)
4166
+ next = next.next;
4167
+ node.next = next, next.prev = node, list.length -= i;
4168
+ }
4169
+ function toArray(list) {
4170
+ for (var array = [], node = list.head.next; node !== list.tail; )
4171
+ array.push(node.value), node = node.next;
4172
+ return array;
4173
+ }
4174
+ const Prism = _;
4175
+ function Refractor$1() {
4176
+ }
4177
+ Refractor$1.prototype = Prism;
4178
+ const refractor = new Refractor$1();
4179
+ refractor.highlight = highlight;
4180
+ refractor.register = register;
4181
+ refractor.alias = alias;
4182
+ refractor.registered = registered;
4183
+ refractor.listLanguages = listLanguages;
4184
+ refractor.util.encode = encode;
4185
+ refractor.Token.stringify = stringify;
4186
+ function highlight(value, language) {
4187
+ if (typeof value != "string")
4188
+ throw new TypeError("Expected `string` for `value`, got `" + value + "`");
4189
+ let grammar, name;
4190
+ if (language && typeof language == "object")
4191
+ grammar = language;
4192
+ else {
4193
+ if (name = language, typeof name != "string")
4194
+ throw new TypeError("Expected `string` for `name`, got `" + name + "`");
4195
+ if (Object.hasOwn(refractor.languages, name))
4196
+ grammar = refractor.languages[name];
4197
+ else
4198
+ throw new Error("Unknown language: `" + name + "` is not registered");
4199
+ }
4200
+ return {
4201
+ type: "root",
4202
+ // @ts-expect-error: we hacked Prism to accept and return the things we want.
4203
+ children: Prism.highlight.call(refractor, value, grammar, name)
4204
+ };
4205
+ }
4206
+ function register(syntax) {
4207
+ if (typeof syntax != "function" || !syntax.displayName)
4208
+ throw new Error("Expected `function` for `syntax`, got `" + syntax + "`");
4209
+ Object.hasOwn(refractor.languages, syntax.displayName) || syntax(refractor);
4210
+ }
4211
+ function alias(language, alias2) {
4212
+ const languages = refractor.languages;
4213
+ let map = {};
4214
+ typeof language == "string" ? alias2 && (map[language] = alias2) : map = language;
4215
+ let key;
4216
+ for (key in map)
4217
+ if (Object.hasOwn(map, key)) {
4218
+ const value = map[key], list = typeof value == "string" ? [value] : value;
4219
+ let index = -1;
4220
+ for (; ++index < list.length; )
4221
+ languages[list[index]] = languages[key];
4222
+ }
4223
+ }
4224
+ function registered(aliasOrLanguage) {
4225
+ if (typeof aliasOrLanguage != "string")
4226
+ throw new TypeError(
4227
+ "Expected `string` for `aliasOrLanguage`, got `" + aliasOrLanguage + "`"
4228
+ );
4229
+ return Object.hasOwn(refractor.languages, aliasOrLanguage);
4230
+ }
4231
+ function listLanguages() {
4232
+ const languages = refractor.languages, list = [];
4233
+ let language;
4234
+ for (language in languages)
4235
+ Object.hasOwn(languages, language) && typeof languages[language] == "object" && list.push(language);
4236
+ return list;
4237
+ }
4238
+ function stringify(value, language) {
4239
+ if (typeof value == "string")
4240
+ return { type: "text", value };
4241
+ if (Array.isArray(value)) {
4242
+ const result = [];
4243
+ let index = -1;
4244
+ for (; ++index < value.length; )
4245
+ value[index] !== null && value[index] !== void 0 && value[index] !== "" && result.push(
4246
+ /** @type {Element | Text} */
4247
+ stringify(value[index], language)
4248
+ );
4249
+ return result;
4250
+ }
4251
+ const env = {
4252
+ attributes: {},
4253
+ classes: ["token", value.type],
4254
+ content: stringify(value.content, language),
4255
+ language,
4256
+ tag: "span",
4257
+ type: value.type
4258
+ };
4259
+ return value.alias && env.classes.push(
4260
+ ...typeof value.alias == "string" ? [value.alias] : value.alias
4261
+ ), refractor.hooks.run("wrap", env), h(
4262
+ env.tag + "." + env.classes.join("."),
4263
+ attributes(env.attributes),
4264
+ env.content
4265
+ );
4266
+ }
4267
+ function encode(tokens) {
4268
+ return tokens;
4269
+ }
4270
+ function attributes(record) {
4271
+ let key;
4272
+ for (key in record)
4273
+ Object.hasOwn(record, key) && (record[key] = parseEntities(record[key]));
4274
+ return record;
4275
+ }
4276
+ const convert = (
4277
+ // Note: overloads in JSDoc can’t yet use different `@template`s.
4278
+ /**
4279
+ * @type {(
4280
+ * (<Condition extends string>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &
4281
+ * (<Condition extends Props>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &
4282
+ * (<Condition extends TestFunction>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate<Condition, Node>) &
4283
+ * ((test?: null | undefined) => (node?: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &
4284
+ * ((test?: Test) => Check)
4285
+ * )}
4286
+ */
4287
+ /**
4288
+ * @param {Test} [test]
4289
+ * @returns {Check}
4290
+ */
4291
+ (function(test) {
4292
+ if (test == null)
4293
+ return ok;
4294
+ if (typeof test == "function")
4295
+ return castFactory(test);
4296
+ if (typeof test == "object")
4297
+ return Array.isArray(test) ? anyFactory(test) : (
4298
+ // Cast because `ReadonlyArray` goes into the above but `isArray`
4299
+ // narrows to `Array`.
4300
+ propertiesFactory(
4301
+ /** @type {Props} */
4302
+ test
4303
+ )
4304
+ );
4305
+ if (typeof test == "string")
4306
+ return typeFactory(test);
4307
+ throw new Error("Expected function, string, or object as test");
4308
+ })
4309
+ );
4310
+ function anyFactory(tests) {
4311
+ const checks2 = [];
4312
+ let index = -1;
4313
+ for (; ++index < tests.length; )
4314
+ checks2[index] = convert(tests[index]);
4315
+ return castFactory(any);
4316
+ function any(...parameters) {
4317
+ let index2 = -1;
4318
+ for (; ++index2 < checks2.length; )
4319
+ if (checks2[index2].apply(this, parameters)) return !0;
4320
+ return !1;
4321
+ }
4322
+ }
4323
+ function propertiesFactory(check) {
4324
+ const checkAsRecord = (
4325
+ /** @type {Record<string, unknown>} */
4326
+ check
4327
+ );
4328
+ return castFactory(all);
4329
+ function all(node) {
4330
+ const nodeAsRecord = (
4331
+ /** @type {Record<string, unknown>} */
4332
+ /** @type {unknown} */
4333
+ node
4334
+ );
4335
+ let key;
4336
+ for (key in check)
4337
+ if (nodeAsRecord[key] !== checkAsRecord[key]) return !1;
4338
+ return !0;
4339
+ }
4340
+ }
4341
+ function typeFactory(check) {
4342
+ return castFactory(type);
4343
+ function type(node) {
4344
+ return node && node.type === check;
4345
+ }
4346
+ }
4347
+ function castFactory(testFunction) {
4348
+ return check;
4349
+ function check(value, index, parent2) {
4350
+ return !!(looksLikeANode(value) && testFunction.call(
4351
+ this,
4352
+ value,
4353
+ typeof index == "number" ? index : void 0,
4354
+ parent2 || void 0
4355
+ ));
4356
+ }
4357
+ }
4358
+ function ok() {
4359
+ return !0;
4360
+ }
4361
+ function looksLikeANode(value) {
4362
+ return value !== null && typeof value == "object" && "type" in value;
4363
+ }
4364
+ const own = {}.hasOwnProperty;
4365
+ function filter(tree, options, test) {
4366
+ const is = convert(options), cascadeRaw = options && typeof options == "object" && "cascade" in options ? (
4367
+ /** @type {boolean | null | undefined} */
4368
+ options.cascade
4369
+ ) : void 0, cascade = cascadeRaw ?? !0;
4370
+ return preorder(tree);
4371
+ function preorder(node, index, parentNode) {
4372
+ const children = [];
4373
+ if (!is(node, index, parentNode)) return;
4374
+ if (parent(node)) {
4375
+ let childIndex = -1;
4376
+ for (; ++childIndex < node.children.length; ) {
4377
+ const result = preorder(node.children[childIndex], childIndex, node);
4378
+ result && children.push(result);
4379
+ }
4380
+ if (cascade && node.children.length > 0 && children.length === 0)
4381
+ return;
4382
+ }
4383
+ const next = {};
4384
+ let key;
4385
+ for (key in node)
4386
+ own.call(node, key) && (next[key] = key === "children" ? children : node[key]);
4387
+ return next;
4388
+ }
4389
+ }
4390
+ function parent(node) {
4391
+ return "children" in node && node.children !== void 0;
4392
+ }
4393
+ const empty = [], CONTINUE = !0, EXIT = !1, SKIP = "skip";
4394
+ function visitParents(tree, test, visitor, reverse) {
4395
+ let check;
4396
+ typeof test == "function" && typeof visitor != "function" ? (reverse = visitor, visitor = test) : check = test;
4397
+ const is = convert(check), step = reverse ? -1 : 1;
4398
+ factory(tree, void 0, [])();
4399
+ function factory(node, index, parents) {
4400
+ const value = (
4401
+ /** @type {Record<string, unknown>} */
4402
+ node && typeof node == "object" ? node : {}
4403
+ );
4404
+ if (typeof value.type == "string") {
4405
+ const name = (
4406
+ // `hast`
4407
+ typeof value.tagName == "string" ? value.tagName : (
4408
+ // `xast`
4409
+ typeof value.name == "string" ? value.name : void 0
4410
+ )
4411
+ );
4412
+ Object.defineProperty(visit, "name", {
4413
+ value: "node (" + (node.type + (name ? "<" + name + ">" : "")) + ")"
4414
+ });
4415
+ }
4416
+ return visit;
4417
+ function visit() {
4418
+ let result = empty, subresult, offset, grandparents;
4419
+ if ((!test || is(node, index, parents[parents.length - 1] || void 0)) && (result = toResult(visitor(node, parents)), result[0] === EXIT))
4420
+ return result;
4421
+ if ("children" in node && node.children) {
4422
+ const nodeAsParent = (
4423
+ /** @type {UnistParent} */
4424
+ node
4425
+ );
4426
+ if (nodeAsParent.children && result[0] !== SKIP)
4427
+ for (offset = (reverse ? nodeAsParent.children.length : -1) + step, grandparents = parents.concat(nodeAsParent); offset > -1 && offset < nodeAsParent.children.length; ) {
4428
+ const child = nodeAsParent.children[offset];
4429
+ if (subresult = factory(child, offset, grandparents)(), subresult[0] === EXIT)
4430
+ return subresult;
4431
+ offset = typeof subresult[1] == "number" ? subresult[1] : offset + step;
4432
+ }
4433
+ }
4434
+ return result;
4435
+ }
4436
+ }
4437
+ }
4438
+ function toResult(value) {
4439
+ return Array.isArray(value) ? value : typeof value == "number" ? [CONTINUE, value] : value == null ? empty : [value];
4440
+ }
4441
+ var __defProp$2 = Object.defineProperty, __defProps$2 = Object.defineProperties, __getOwnPropDescs$2 = Object.getOwnPropertyDescriptors, __getOwnPropSymbols$2 = Object.getOwnPropertySymbols, __hasOwnProp$2 = Object.prototype.hasOwnProperty, __propIsEnum$2 = Object.prototype.propertyIsEnumerable, __defNormalProp$2 = (obj, key, value) => key in obj ? __defProp$2(obj, key, { enumerable: !0, configurable: !0, writable: !0, value }) : obj[key] = value, __spreadValues$2 = (a, b) => {
4442
+ for (var prop in b || (b = {}))
4443
+ __hasOwnProp$2.call(b, prop) && __defNormalProp$2(a, prop, b[prop]);
4444
+ if (__getOwnPropSymbols$2)
4445
+ for (var prop of __getOwnPropSymbols$2(b))
4446
+ __propIsEnum$2.call(b, prop) && __defNormalProp$2(a, prop, b[prop]);
4447
+ return a;
4448
+ }, __spreadProps$2 = (a, b) => __defProps$2(a, __getOwnPropDescs$2(b));
4449
+ function addMarkers(ast, options) {
4450
+ const markers = options.markers.map((marker) => typeof marker == "number" ? { line: marker } : marker).sort((nodeA, nodeB) => nodeA.line - nodeB.line), numbered = lineNumberify(ast.children).nodes;
4451
+ return markers.length === 0 || numbered.length === 0 ? __spreadProps$2(__spreadValues$2({}, ast), { children: numbered }) : wrapLines(numbered, markers, options);
4452
+ }
4453
+ function lineNumberify(ast, context = { lineNumber: 1 }) {
4454
+ const resultNodes = [];
4455
+ return ast.reduce(
4456
+ (result, node) => {
4457
+ if (node.type === "doctype")
4458
+ return result;
4459
+ const lineStart = context.lineNumber;
4460
+ if (node.type === "text") {
4461
+ if (node.value.indexOf(`
4462
+ `) === -1)
4463
+ return setLineInfo(node, lineStart, lineStart), result.nodes.push(node), result;
4464
+ const lines = node.value.split(`
4465
+ `);
4466
+ for (let i = 0; i < lines.length; i++) {
4467
+ const lineNum = i === 0 ? context.lineNumber : ++context.lineNumber, text = {
4468
+ type: "text",
4469
+ value: i === lines.length - 1 ? lines[i] : `${lines[i]}
4470
+ `
4471
+ }, withLineInfo = setLineInfo(text, lineNum, lineNum);
4472
+ result.nodes.push(withLineInfo);
4473
+ }
4474
+ return result.lineNumber = context.lineNumber, result;
4475
+ }
4476
+ if (node.type === "element" && node.children) {
4477
+ const processed = lineNumberify(node.children, context), firstChild = processed.nodes.find(isElementOrText), lastChild = processed.nodes.findLast(isElementOrText);
4478
+ return setLineInfo(
4479
+ node,
4480
+ firstChild ? getLineStart(firstChild, lineStart) : lineStart,
4481
+ lastChild ? getLineEnd(lastChild, lineStart) : lineStart
4482
+ ), node.children = processed.nodes, result.lineNumber = processed.lineNumber, result.nodes.push(node), result;
4483
+ }
4484
+ return result.nodes.push(node), result;
4485
+ },
4486
+ { nodes: resultNodes, lineNumber: context.lineNumber }
4487
+ );
4488
+ }
4489
+ function isElementOrText(node) {
4490
+ return node.type === "element" || node.type === "text";
4491
+ }
4492
+ function getLineStart(node, fallbackLineStart = 1) {
4493
+ return node.data && typeof node.data.lineStart == "number" ? node.data.lineStart : fallbackLineStart;
4494
+ }
4495
+ function getLineEnd(node, fallbackLineEnd = 1) {
4496
+ return node.data && typeof node.data.lineEnd == "number" ? node.data.lineEnd : fallbackLineEnd;
4497
+ }
4498
+ function setLineInfo(node, lineStart, lineEnd) {
4499
+ return node.data || (node.data = {}), node.data.lineStart = lineStart, node.data.lineEnd = lineEnd, node;
4500
+ }
4501
+ function unwrapLine(markerLine, nodes) {
4502
+ const tree = { type: "root", children: nodes }, headMap = /* @__PURE__ */ new WeakMap(), lineMap = /* @__PURE__ */ new WeakMap(), tailMap = /* @__PURE__ */ new WeakMap(), cloned = [];
4503
+ function addCopy(map, node, ancestors) {
4504
+ cloned.push(node), ancestors.forEach((ancestor) => {
4505
+ map.has(ancestor) || (map.set(ancestor, Object.assign({}, ancestor, { children: [] })), ancestor !== tree && cloned.push(ancestor));
4506
+ });
4507
+ let i = ancestors.length;
4508
+ for (; i--; ) {
4509
+ const ancestor = map.get(ancestors[i]);
4510
+ if (!ancestor || !("children" in ancestor))
4511
+ continue;
4512
+ const child = ancestors[i + 1], leaf = map.get(child) || node;
4513
+ ancestor.children.indexOf(leaf) === -1 && ancestor.children.push(leaf);
4514
+ }
4515
+ }
4516
+ visitParents(tree, (node, ancestors) => {
4517
+ if (!("children" in node || !isElementOrText(node))) {
4518
+ if (getLineStart(node) < markerLine) {
4519
+ addCopy(headMap, node, ancestors);
4520
+ return;
4521
+ }
4522
+ if (getLineStart(node) === markerLine) {
4523
+ addCopy(lineMap, node, ancestors);
4524
+ return;
4525
+ }
4526
+ getLineEnd(node) > markerLine && cloned.some((clone) => ancestors.includes(clone)) && addCopy(tailMap, node, ancestors);
4527
+ }
4528
+ });
4529
+ const filtered = filter(tree, (node) => cloned.indexOf(node) === -1), getChildren = (map) => {
4530
+ const rootNode = map.get(tree);
4531
+ return rootNode ? (visitParents(rootNode, (leaf, ancestors) => {
4532
+ if (isElementOrText(leaf) && "children" in leaf) {
4533
+ setLineInfo(leaf, 0, 0);
4534
+ return;
4535
+ }
4536
+ ancestors.forEach((ancestor) => {
4537
+ setLineInfo(
4538
+ ancestor,
4539
+ Math.max(getLineStart(ancestor), getLineStart(leaf)),
4540
+ Math.max(getLineEnd(ancestor), getLineEnd(leaf))
4541
+ );
4542
+ });
4543
+ }), rootNode.children) : [];
4544
+ };
4545
+ return [
4546
+ ...getChildren(headMap),
4547
+ ...getChildren(lineMap),
4548
+ ...getChildren(tailMap),
4549
+ ...filtered ? filtered.children : []
4550
+ ];
4551
+ }
4552
+ function wrapBatch(children, marker, options) {
4553
+ const className = marker.className || "refractor-marker", baseData = {
4554
+ lineStart: marker.line,
4555
+ lineEnd: getLineEnd(children[children.length - 1]),
4556
+ isMarker: !0
4557
+ };
4558
+ return {
4559
+ type: "element",
4560
+ tagName: "div",
4561
+ data: marker.component ? __spreadProps$2(__spreadValues$2({}, baseData), { component: marker.component, markerProperties: options }) : baseData,
4562
+ properties: { className },
4563
+ children
4564
+ };
4565
+ }
4566
+ function wrapLines(treeNodes, markers, options) {
4567
+ const ast = markers.reduce(
4568
+ (acc, marker) => unwrapLine(marker.line, acc),
4569
+ treeNodes
4570
+ ), wrapped = [];
4571
+ let astIndex = 0;
4572
+ for (let m = 0; m < markers.length; m++) {
4573
+ const marker = markers[m];
4574
+ for (let node = ast[astIndex]; node && getLineEnd(node) < marker.line; node = ast[++astIndex])
4575
+ wrapped.push(node);
4576
+ const batch = [];
4577
+ for (let node = ast[astIndex]; node && getLineEnd(node) === marker.line; node = ast[++astIndex])
4578
+ node.type !== "doctype" && batch.push(node);
4579
+ batch.length > 0 && wrapped.push(wrapBatch(batch, marker, options));
4580
+ }
4581
+ for (; astIndex < ast.length; )
4582
+ wrapped.push(ast[astIndex++]);
4583
+ return { type: "root", children: wrapped };
4584
+ }
4585
+ var __defProp$1 = Object.defineProperty, __defProps$1 = Object.defineProperties, __getOwnPropDescs$1 = Object.getOwnPropertyDescriptors, __getOwnPropSymbols$1 = Object.getOwnPropertySymbols, __hasOwnProp$1 = Object.prototype.hasOwnProperty, __propIsEnum$1 = Object.prototype.propertyIsEnumerable, __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: !0, configurable: !0, writable: !0, value }) : obj[key] = value, __spreadValues$1 = (a, b) => {
4586
+ for (var prop in b || (b = {}))
4587
+ __hasOwnProp$1.call(b, prop) && __defNormalProp$1(a, prop, b[prop]);
4588
+ if (__getOwnPropSymbols$1)
4589
+ for (var prop of __getOwnPropSymbols$1(b))
4590
+ __propIsEnum$1.call(b, prop) && __defNormalProp$1(a, prop, b[prop]);
4591
+ return a;
4592
+ }, __spreadProps$1 = (a, b) => __defProps$1(a, __getOwnPropDescs$1(b));
4593
+ function mapWithDepth(depth) {
4594
+ return function(child, i) {
4595
+ return mapChild(child, i, depth);
4596
+ };
4597
+ }
4598
+ function mapChild(child, i, depth) {
4599
+ if (child.type === "doctype")
4600
+ return null;
4601
+ if (!("tagName" in child))
4602
+ return child.value;
4603
+ let className = "";
4604
+ typeof child.properties < "u" && (className = Array.isArray(child.properties.className) ? child.properties.className.join(" ") : `${child.properties.className}`);
4605
+ const key = `fract-${depth}-${i}`, children = child.children && child.children.map(mapWithDepth(depth + 1));
4606
+ return isReactRefractorMarkerDataWithComponent(child.data) ? createElement(
4607
+ child.data.component,
4608
+ __spreadProps$1(__spreadValues$1(__spreadValues$1({ key }, child.properties), child.data.markerProperties), { className }),
4609
+ children
4610
+ ) : createElement(child.tagName, { key, className }, children);
4611
+ }
4612
+ function isReactRefractorMarkerDataWithComponent(data) {
4613
+ return typeof data == "object" && data !== null && "component" in data && "markerProperties" in data;
4614
+ }
4615
+ var __defProp = Object.defineProperty, __defProps = Object.defineProperties, __getOwnPropDescs = Object.getOwnPropertyDescriptors, __getOwnPropSymbols = Object.getOwnPropertySymbols, __hasOwnProp = Object.prototype.hasOwnProperty, __propIsEnum = Object.prototype.propertyIsEnumerable, __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: !0, configurable: !0, writable: !0, value }) : obj[key] = value, __spreadValues = (a, b) => {
4616
+ for (var prop in b || (b = {}))
4617
+ __hasOwnProp.call(b, prop) && __defNormalProp(a, prop, b[prop]);
4618
+ if (__getOwnPropSymbols)
4619
+ for (var prop of __getOwnPropSymbols(b))
4620
+ __propIsEnum.call(b, prop) && __defNormalProp(a, prop, b[prop]);
4621
+ return a;
4622
+ }, __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
4623
+ const DEFAULT_CLASSNAME = "refractor";
4624
+ function Refractor(props) {
4625
+ const className = props.className || DEFAULT_CLASSNAME, langClassName = `language-${props.language}`, codeProps = { className: langClassName }, preClass = [className, langClassName].filter(Boolean).join(" ");
4626
+ if (props.inline && (codeProps.style = { display: "inline" }, codeProps.className = className), props.plainText) {
4627
+ const code2 = /* @__PURE__ */ jsx("code", __spreadProps(__spreadValues({}, codeProps), { children: props.value }));
4628
+ return props.inline ? code2 : /* @__PURE__ */ jsx("pre", { className: preClass, children: code2 });
4629
+ }
4630
+ let ast = refractor.highlight(props.value, props.language);
4631
+ props.markers && props.markers.length > 0 && (ast = addMarkers(ast, { markers: props.markers }));
4632
+ const value = ast.children.length === 0 ? props.value : ast.children.map(mapWithDepth(0)), code = /* @__PURE__ */ jsx("code", __spreadProps(__spreadValues({}, codeProps), { children: value }));
4633
+ return props.inline ? code : /* @__PURE__ */ jsx("pre", { className: preClass, children: code });
4634
+ }
4635
+ const hasLanguage = (lang) => refractor.registered(lang);
4636
+ function LazyRefractor(props) {
4637
+ let $ = distExports.c(13), { language: languageProp, value } = props, language = typeof languageProp == "string" ? languageProp : void 0, t0;
4638
+ $[0] === language ? t0 = $[1] : (t0 = language ? hasLanguage(language) : !1, $[0] = language, $[1] = t0);
4639
+ let registered2 = t0, t1;
4640
+ $[2] !== language || $[3] !== registered2 || $[4] !== value ? (t1 = !(language && registered2) && /* @__PURE__ */ jsx("code", { children: value }), $[2] = language, $[3] = registered2, $[4] = value, $[5] = t1) : t1 = $[5];
4641
+ let t2;
4642
+ $[6] !== language || $[7] !== registered2 || $[8] !== value ? (t2 = language && registered2 && /* @__PURE__ */ jsx(Refractor, {
4643
+ inline: !0,
4644
+ language,
4645
+ value: String(value)
4646
+ }), $[6] = language, $[7] = registered2, $[8] = value, $[9] = t2) : t2 = $[9];
4647
+ let t3;
4648
+ return $[10] !== t1 || $[11] !== t2 ? (t3 = /* @__PURE__ */ jsxs(Fragment, { children: [t1, t2] }), $[10] = t1, $[11] = t2, $[12] = t3) : t3 = $[12], t3;
4649
+ }
4650
+ export {
4651
+ LazyRefractor as default
4652
+ };
4653
+ //# sourceMappingURL=refractor.js.map