soonjs 0.0.33 → 0.1.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.
Files changed (61) hide show
  1. package/dist/deps/acorn-jU-39Pbw5W-x7qdgz1ts.js +3005 -0
  2. package/dist/deps/acorn-jU-39Pbw5W-z5debqqlj.js +16 -0
  3. package/dist/deps/angular-eXKcfordor-b1hkohm74.js +3 -0
  4. package/dist/deps/angular-eXKcfordor-l3kwajkbh.js +2533 -0
  5. package/dist/deps/babel-QODt_XJZCU-a8i81wjiu.js +15 -0
  6. package/dist/deps/babel-QODt_XJZCU-ghwhrb71b.js +7217 -0
  7. package/dist/deps/estree-_Gcr3virjH-h1acxq4yv.js +44 -0
  8. package/dist/deps/estree-_Gcr3virjH-j31qwtvbp.js +4528 -0
  9. package/dist/deps/flow-VkrRJr6lFd-qqbqr5hei.js +27411 -0
  10. package/dist/deps/flow-VkrRJr6lFd-ucth0k2tc.js +20 -0
  11. package/dist/deps/{glimmer-SKEURx3bl3-rp82ple5i.js → glimmer-I6jyK4xw2I-23lk5ck83.js} +1409 -1462
  12. package/dist/deps/glimmer-I6jyK4xw2I-3z8pf5pty.js +37 -0
  13. package/dist/deps/graphql-F7JRnTC996-4d02luxbf.js +28 -0
  14. package/dist/deps/graphql-F7JRnTC996-narvpamoj.js +1221 -0
  15. package/dist/deps/html-C-ZYESkdqr-ogat88tt8.js +25 -0
  16. package/dist/deps/html-C-ZYESkdqr-te4xlvh7i.js +2791 -0
  17. package/dist/deps/markdown-4m9fGqwyBD-3zxc7zsgm.js +3190 -0
  18. package/dist/deps/markdown-4m9fGqwyBD-pv6ycpbaq.js +62 -0
  19. package/dist/deps/meriyah-2XmgupY1jB-90gvtx3gl.js +5 -0
  20. package/dist/deps/meriyah-2XmgupY1jB-akr3gkgcz.js +2645 -0
  21. package/dist/deps/postcss-UtIjNac23s-dmefkra5w.js +61 -0
  22. package/dist/deps/postcss-UtIjNac23s-kaopmxfox.js +4739 -0
  23. package/dist/deps/typescript-7W94NRN5-v-d4v78yftm.js +21 -0
  24. package/dist/deps/typescript-7W94NRN5-v-y96cijxoo.js +12947 -0
  25. package/dist/deps/yaml-GTMY6ek0xu-5ybo8o2wg.js +159 -0
  26. package/dist/deps/yaml-GTMY6ek0xu-x856naz63.js +4079 -0
  27. package/dist/index.cjs +8 -8
  28. package/dist/index.js +1376 -1181
  29. package/dist/vite-plugin-soon-client.cjs +148 -156
  30. package/dist/vite-plugin-soon-client.js +33643 -38238
  31. package/dist/vite-plugin-soon-server.cjs +19 -20
  32. package/dist/vite-plugin-soon-server.d.ts +2 -2
  33. package/dist/vite-plugin-soon-server.js +1142 -1153
  34. package/package.json +12 -10
  35. package/dist/deps/acorn-MFuat2YCgG-l6wjg9m99.js +0 -15
  36. package/dist/deps/acorn-MFuat2YCgG-wuak0poow.js +0 -2895
  37. package/dist/deps/angular-Nz7Izt9RB4-px31m5zsp.js +0 -1
  38. package/dist/deps/angular-Nz7Izt9RB4-rmmyehg9b.js +0 -1448
  39. package/dist/deps/babel-JaNXSJC73c-mrrxx7w76.js +0 -15
  40. package/dist/deps/babel-JaNXSJC73c-wlfv7gcc8.js +0 -6844
  41. package/dist/deps/estree-lrVsLbm9_D-5wzu8mrhj.js +0 -36
  42. package/dist/deps/estree-lrVsLbm9_D-pkah75rfp.js +0 -4265
  43. package/dist/deps/flow-MAZ63dnw8p-483wf9q78.js +0 -19
  44. package/dist/deps/flow-MAZ63dnw8p-ipdsapaxz.js +0 -26221
  45. package/dist/deps/glimmer-SKEURx3bl3-v0ucxxip4.js +0 -30
  46. package/dist/deps/graphql--N7MQg-wpp-0xtsyo1wd.js +0 -29
  47. package/dist/deps/graphql--N7MQg-wpp-dbq3trrn1.js +0 -1212
  48. package/dist/deps/html-WW7XljTSl6-8dcid3s4p.js +0 -23
  49. package/dist/deps/html-WW7XljTSl6-nb3si9grn.js +0 -2623
  50. package/dist/deps/markdown-i-DCK3AslU-aj464zw4z.js +0 -62
  51. package/dist/deps/markdown-i-DCK3AslU-w8x7m0cha.js +0 -3058
  52. package/dist/deps/meriyah-0-URq6zZ8n-3k1kkhhe7.js +0 -2320
  53. package/dist/deps/meriyah-0-URq6zZ8n-r2lluy8ci.js +0 -4
  54. package/dist/deps/postcss-urUw1vxeu1-1jy7v5te8.js +0 -52
  55. package/dist/deps/postcss-urUw1vxeu1-ew775audn.js +0 -4664
  56. package/dist/deps/typescript-5-LBeuVeDB-7oofghhag.js +0 -12794
  57. package/dist/deps/typescript-5-LBeuVeDB-tvrl5vkhb.js +0 -20
  58. package/dist/deps/yaml-zChCAOpgM7-04u8k59ak.js +0 -4088
  59. package/dist/deps/yaml-zChCAOpgM7-3tlae50lh.js +0 -161
  60. /package/dist/deps/{soon-id-t25L9qRGGZ-9sc9fn6dr.js → soon-id-t25L9qRGGZ-fzl1kq3ux.js} +0 -0
  61. /package/dist/deps/{soon-id-t25L9qRGGZ-qutxk45vh.js → soon-id-t25L9qRGGZ-yp47pjtmz.js} +0 -0
@@ -1,70 +1,53 @@
1
- var pn = Object.defineProperty;
2
- var dn = (t, e, r) => e in t ? pn(t, e, { enumerable: !0, configurable: !0, writable: !0, value: r }) : t[e] = r;
3
- var w = (t, e, r) => dn(t, typeof e != "symbol" ? e + "" : e, r);
4
- var mn = Object.defineProperty, Er = (t) => {
1
+ var gn = Object.defineProperty;
2
+ var tr = (t) => {
5
3
  throw TypeError(t);
6
- }, Pe = (t, e) => {
7
- for (var r in e) mn(t, r, { get: e[r], enumerable: !0 });
8
- }, vr = (t, e, r) => e.has(t) || Er("Cannot " + r), nt = (t, e, r) => (vr(t, e, "read from private field"), e.get(t)), fn = (t, e, r) => e.has(t) ? Er("Cannot add the same private member more than once") : e instanceof WeakSet ? e.add(t) : e.set(t, r), gn = (t, e, r, n) => (vr(t, e, "write to private field"), e.set(t, r), r), Cr = {};
9
- Pe(Cr, { languages: () => Ca, parsers: () => jr, printers: () => iu });
10
- var bn = (t, e, r, n) => {
11
- if (!(t && e == null)) return e.replaceAll ? e.replaceAll(r, n) : r.global ? e.replace(r, n) : e.split(r).join(n);
12
- }, Sr = bn, wr = "string", Br = "array", kr = "cursor", Fe = "indent", Le = "align", xr = "trim", _e = "group", qe = "fill", Ie = "if-break", Tr = "indent-if-break", Nr = "line-suffix", Pr = "line-suffix-boundary", St = "line", Fr = "label", Oe = "break-parent", Lr = /* @__PURE__ */ new Set([kr, Fe, Le, xr, _e, qe, Ie, Tr, Nr, Pr, St, Fr, Oe]);
13
- function yn(t) {
14
- if (typeof t == "string") return wr;
15
- if (Array.isArray(t)) return Br;
4
+ };
5
+ var yn = (t, e, r) => e in t ? gn(t, e, { enumerable: !0, configurable: !0, writable: !0, value: r }) : t[e] = r;
6
+ var ge = (t, e, r) => yn(t, typeof e != "symbol" ? e + "" : e, r), ye = (t, e, r) => e.has(t) || tr("Cannot " + r);
7
+ var I = (t, e, r) => (ye(t, e, "read from private field"), r ? r.call(t) : e.get(t)), Dt = (t, e, r) => e.has(t) ? tr("Cannot add the same private member more than once") : e instanceof WeakSet ? e.add(t) : e.set(t, r), K = (t, e, r, n) => (ye(t, e, "write to private field"), n ? n.call(t, r) : e.set(t, r), r), er = (t, e, r) => (ye(t, e, "access private method"), r);
8
+ var bn = Object.defineProperty, qe = (t, e) => {
9
+ for (var r in e) bn(t, r, { get: e[r], enumerable: !0 });
10
+ }, An = {};
11
+ qe(An, { languages: () => Es, parsers: () => cn, printers: () => Is });
12
+ var xr = (t, e) => (r, n, ...a) => r | 1 && n == null ? void 0 : (e.call(n) ?? n[t]).apply(n, a), Dn = String.prototype.replaceAll ?? function(t, e) {
13
+ return t.global ? this.replace(t, e) : this.split(t).join(e);
14
+ }, En = xr("replaceAll", function() {
15
+ if (typeof this == "string") return Dn;
16
+ }), Zt = En;
17
+ function vn(t) {
18
+ return this[t < 0 ? this.length + t : t];
19
+ }
20
+ var Cn = xr("at", function() {
21
+ if (Array.isArray(this) || typeof this == "string") return vn;
22
+ }), nt = Cn, Sn = () => {
23
+ }, wn = Sn, Tr = "string", Nr = "array", Pr = "cursor", _e = "indent", Ie = "align", Fr = "trim", Oe = "group", Re = "fill", Ve = "if-break", Lr = "indent-if-break", qr = "line-suffix", _r = "line-suffix-boundary", xt = "line", Ir = "label", $e = "break-parent", Or = /* @__PURE__ */ new Set([Pr, _e, Ie, Fr, Oe, Re, Ve, Lr, qr, _r, xt, Ir, $e]);
24
+ function Bn(t) {
25
+ if (typeof t == "string") return Tr;
26
+ if (Array.isArray(t)) return Nr;
16
27
  if (!t) return;
17
28
  let { type: e } = t;
18
- if (Lr.has(e)) return e;
29
+ if (Or.has(e)) return e;
19
30
  }
20
- var _r = yn, An = (t) => new Intl.ListFormat("en-US", { type: "disjunction" }).format(t);
21
- function Dn(t) {
31
+ var Rr = Bn, kn = (t) => new Intl.ListFormat("en-US", { type: "disjunction" }).format(t);
32
+ function xn(t) {
22
33
  let e = t === null ? "null" : typeof t;
23
34
  if (e !== "string" && e !== "object") return `Unexpected doc '${e}',
24
35
  Expected it to be 'string' or 'object'.`;
25
- if (_r(t)) throw new Error("doc is valid.");
36
+ if (Rr(t)) throw new Error("doc is valid.");
26
37
  let r = Object.prototype.toString.call(t);
27
38
  if (r !== "[object Object]") return `Unexpected doc '${r}'.`;
28
- let n = An([...Lr].map((a) => `'${a}'`));
39
+ let n = kn([...Or].map((a) => `'${a}'`));
29
40
  return `Unexpected doc.type '${t.type}'.
30
41
  Expected it to be ${n}.`;
31
42
  }
32
- var En = class extends Error {
43
+ var Tn = class extends Error {
33
44
  constructor(e) {
34
- super(Dn(e));
35
- w(this, "name", "InvalidDocError");
45
+ super(xn(e));
46
+ ge(this, "name", "InvalidDocError");
36
47
  this.doc = e;
37
48
  }
38
- }, vn = En, Cn = () => {
39
- }, Sn = Cn;
40
- function O(t) {
41
- return { type: Fe, contents: t };
42
- }
43
- function wn(t, e) {
44
- return { type: Le, contents: e, n: t };
45
- }
46
- function R(t, e = {}) {
47
- return Sn(e.expandedStates), { type: _e, id: e.id, contents: t, break: !!e.shouldBreak, expandedStates: e.expandedStates };
48
- }
49
- function Xe(t) {
50
- return wn(-1, t);
51
- }
52
- function Ze(t) {
53
- return { type: qe, parts: t };
54
- }
55
- function tr(t, e = "", r = {}) {
56
- return { type: Ie, breakContents: t, flatContents: e, groupId: r.groupId };
57
- }
58
- var qr = { type: Oe }, Bn = { type: St, hard: !0 }, kn = { type: St, hard: !0, literal: !0 }, L = { type: St }, K = { type: St, soft: !0 }, wt = [Bn, qr], xn = [kn, qr];
59
- function Ot(t, e) {
60
- let r = [];
61
- for (let n = 0; n < e.length; n++) n !== 0 && r.push(t), r.push(e[n]);
62
- return r;
63
- }
64
- var Tn = (t, e, r) => {
65
- if (!(t && e == null)) return Array.isArray(e) || typeof e == "string" ? e[r < 0 ? e.length + r : r] : e.at(r);
66
- }, Tt = Tn;
67
- function Nn(t, e) {
49
+ }, Nn = Tn;
50
+ function Pn(t, e) {
68
51
  if (typeof t == "string") return e(t);
69
52
  let r = /* @__PURE__ */ new Map();
70
53
  return n(t);
@@ -74,61 +57,91 @@ function Nn(t, e) {
74
57
  return r.set(s, u), u;
75
58
  }
76
59
  function a(s) {
77
- switch (_r(s)) {
78
- case Br:
60
+ switch (Rr(s)) {
61
+ case Nr:
79
62
  return e(s.map(n));
80
- case qe:
63
+ case Re:
81
64
  return e({ ...s, parts: s.parts.map(n) });
82
- case Ie:
65
+ case Ve:
83
66
  return e({ ...s, breakContents: n(s.breakContents), flatContents: n(s.flatContents) });
84
- case _e: {
67
+ case Oe: {
85
68
  let { expandedStates: u, contents: i } = s;
86
69
  return u ? (u = u.map(n), i = u[0]) : i = n(i), e({ ...s, contents: i, expandedStates: u });
87
70
  }
88
- case Le:
89
- case Fe:
90
- case Tr:
91
- case Fr:
92
- case Nr:
71
+ case Ie:
72
+ case _e:
73
+ case Lr:
74
+ case Ir:
75
+ case qr:
93
76
  return e({ ...s, contents: n(s.contents) });
94
- case wr:
95
- case kr:
96
- case xr:
77
+ case Tr:
97
78
  case Pr:
98
- case St:
99
- case Oe:
79
+ case Fr:
80
+ case _r:
81
+ case xt:
82
+ case $e:
100
83
  return e(s);
101
84
  default:
102
- throw new vn(s);
85
+ throw new Nn(s);
103
86
  }
104
87
  }
105
88
  }
106
- function Pn(t, e = xn) {
107
- return Nn(t, (r) => typeof r == "string" ? Ot(e, r.split(`
89
+ function be(t, e = In) {
90
+ return Pn(t, (r) => typeof r == "string" ? Rt(e, r.split(`
108
91
  `)) : r);
109
92
  }
110
- var zt = "'", er = '"';
111
- function Fn(t, e) {
112
- let r = e === !0 || e === zt ? zt : er, n = r === zt ? er : zt, a = 0, s = 0;
113
- for (let u of t) u === r ? a++ : u === n && s++;
114
- return a > s ? n : r;
93
+ var Fn = wn;
94
+ function G(t) {
95
+ return { type: _e, contents: t };
96
+ }
97
+ function Ln(t, e) {
98
+ return { type: Ie, contents: e, n: t };
99
+ }
100
+ function rr(t) {
101
+ return Ln(-1, t);
115
102
  }
116
- var De = Fn;
117
- function Ln(t) {
103
+ var Vr = { type: $e };
104
+ function nr(t) {
105
+ return { type: Re, parts: t };
106
+ }
107
+ function O(t, e = {}) {
108
+ return Fn(e.expandedStates), { type: Oe, id: e.id, contents: t, break: !!e.shouldBreak, expandedStates: e.expandedStates };
109
+ }
110
+ function ar(t, e = "", r = {}) {
111
+ return { type: Ve, breakContents: t, flatContents: e, groupId: r.groupId };
112
+ }
113
+ function Rt(t, e) {
114
+ let r = [];
115
+ for (let n = 0; n < e.length; n++) n !== 0 && r.push(t), r.push(e[n]);
116
+ return r;
117
+ }
118
+ var N = { type: xt }, j = { type: xt, soft: !0 }, qn = { type: xt, hard: !0 }, Tt = [qn, Vr], _n = { type: xt, hard: !0, literal: !0 }, In = [_n, Vr], $r = Object.freeze({ character: "'", codePoint: 39 }), Ur = Object.freeze({ character: '"', codePoint: 34 }), On = Object.freeze({ preferred: $r, alternate: Ur }), Rn = Object.freeze({ preferred: Ur, alternate: $r });
119
+ function Vn(t, e) {
120
+ let { preferred: r, alternate: n } = e === !0 || e === "'" ? On : Rn, { length: a } = t, s = 0, u = 0;
121
+ for (let i = 0; i < a; i++) {
122
+ let l = t.charCodeAt(i);
123
+ l === r.codePoint ? s++ : l === n.codePoint && u++;
124
+ }
125
+ return (s > u ? n : r).character;
126
+ }
127
+ var we = Vn;
128
+ function $n(t) {
118
129
  if (typeof t != "string") throw new TypeError("Expected a string");
119
130
  return t.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&").replace(/-/g, "\\x2d");
120
131
  }
121
- var z, _n = class {
132
+ var U, ee, Hr, wr, Un = (wr = class {
122
133
  constructor(t) {
123
- fn(this, z), gn(this, z, new Set(t));
134
+ Dt(this, ee);
135
+ Dt(this, U);
136
+ K(this, U, new Set(t));
124
137
  }
125
138
  getLeadingWhitespaceCount(t) {
126
- let e = nt(this, z), r = 0;
139
+ let e = I(this, U), r = 0;
127
140
  for (let n = 0; n < t.length && e.has(t.charAt(n)); n++) r++;
128
141
  return r;
129
142
  }
130
143
  getTrailingWhitespaceCount(t) {
131
- let e = nt(this, z), r = 0;
144
+ let e = I(this, U), r = 0;
132
145
  for (let n = t.length - 1; n >= 0 && e.has(t.charAt(n)); n--) r++;
133
146
  return r;
134
147
  }
@@ -141,10 +154,10 @@ var z, _n = class {
141
154
  return t.slice(t.length - e);
142
155
  }
143
156
  hasLeadingWhitespace(t) {
144
- return nt(this, z).has(t.charAt(0));
157
+ return I(this, U).has(t.charAt(0));
145
158
  }
146
159
  hasTrailingWhitespace(t) {
147
- return nt(this, z).has(Tt(!1, t, -1));
160
+ return I(this, U).has(nt(0, t, -1));
148
161
  }
149
162
  trimStart(t) {
150
163
  let e = this.getLeadingWhitespaceCount(t);
@@ -158,59 +171,85 @@ var z, _n = class {
158
171
  return this.trimEnd(this.trimStart(t));
159
172
  }
160
173
  split(t, e = !1) {
161
- let r = `[${Ln([...nt(this, z)].join(""))}]+`, n = new RegExp(e ? `(${r})` : r, "u");
174
+ let r = `[${$n([...I(this, U)].join(""))}]+`, n = new RegExp(e ? `(${r})` : r, "u");
162
175
  return t.split(n);
163
176
  }
164
177
  hasWhitespaceCharacter(t) {
165
- let e = nt(this, z);
178
+ let e = I(this, U);
166
179
  return Array.prototype.some.call(t, (r) => e.has(r));
167
180
  }
168
181
  hasNonWhitespaceCharacter(t) {
169
- let e = nt(this, z);
182
+ let e = I(this, U);
170
183
  return Array.prototype.some.call(t, (r) => !e.has(r));
171
184
  }
172
185
  isWhitespaceOnly(t) {
173
- let e = nt(this, z);
186
+ let e = I(this, U);
174
187
  return Array.prototype.every.call(t, (r) => e.has(r));
175
188
  }
176
- };
177
- z = /* @__PURE__ */ new WeakMap();
178
- var qn = _n, In = [" ", `
179
- `, "\f", "\r", " "], On = new qn(In), Z = On;
180
- function $n(t) {
189
+ dedentString(t) {
190
+ let e = er(this, ee, Hr).call(this, t);
191
+ return e === 0 ? t : t.split(`
192
+ `).map((r) => r.slice(e)).join(`
193
+ `);
194
+ }
195
+ }, U = new WeakMap(), ee = new WeakSet(), Hr = function(t) {
196
+ let e = Number.POSITIVE_INFINITY;
197
+ for (let r of t.split(`
198
+ `)) {
199
+ if (r.length === 0) continue;
200
+ let n = this.getLeadingWhitespaceCount(r);
201
+ if (n === 0) return 0;
202
+ r.length !== n && n < e && (e = n);
203
+ }
204
+ return e === Number.POSITIVE_INFINITY ? 0 : e;
205
+ }, wr), Hn = Un, zn = [" ", `
206
+ `, "\f", "\r", " "], Mn = new Hn(zn), M = Mn;
207
+ function jn(t) {
181
208
  return Array.isArray(t) && t.length > 0;
182
209
  }
183
- var Xt = $n, Vn = class extends Error {
210
+ var Xt = jn, Gn = class extends Error {
184
211
  constructor(e, r, n = "type") {
185
212
  super(`Unexpected ${r} node ${n}: ${JSON.stringify(e[n])}.`);
186
- w(this, "name", "UnexpectedNodeError");
213
+ ge(this, "name", "UnexpectedNodeError");
187
214
  this.node = e;
188
215
  }
189
- }, Rn = Vn;
190
- function Ir(t, e) {
216
+ }, Wn = Gn;
217
+ function zr(t, e, r) {
191
218
  if (t.type === "TextNode") {
192
- let r = t.chars.trim();
193
- if (!r) return null;
194
- e.chars = Z.split(r).join(" ");
219
+ let n = t.chars.trim();
220
+ if (!n) return null;
221
+ r.tag === "style" && r.children.length === 1 && r.children[0] === t ? e.chars = "" : e.chars = M.split(n).join(" ");
195
222
  }
196
223
  t.type === "ElementNode" && (delete e.startTag, delete e.openTag, delete e.parts, delete e.endTag, delete e.closeTag, delete e.nameNode, delete e.body, delete e.blockParamNodes, delete e.params, delete e.path), t.type === "Block" && (delete e.blockParamNodes, delete e.params), t.type === "AttrNode" && t.name.toLowerCase() === "class" && delete e.value, t.type === "PathExpression" && (e.head = t.head.original);
197
224
  }
198
- Ir.ignoredProperties = /* @__PURE__ */ new Set(["loc", "selfClosing"]);
199
- var Un = Ir, kt = null;
200
- function Nt(t) {
201
- if (kt !== null && typeof kt.property) {
202
- let e = kt;
203
- return kt = Nt.prototype = null, e;
225
+ zr.ignoredProperties = /* @__PURE__ */ new Set(["loc", "selfClosing"]);
226
+ var Kn = zr;
227
+ function Jn(t) {
228
+ let { node: e } = t;
229
+ if (e.type !== "TextNode") return;
230
+ let { parent: r } = t;
231
+ if (!(r.type === "ElementNode" && r.tag === "style" && r.children.length === 1 && r.children[0] === e)) return;
232
+ let n = r.attributes.find((a) => a.type === "AttrNode" && a.name === "lang");
233
+ if (!(n && !(n.value.type === "TextNode" && (n.value.chars === "" || n.value.chars === "css")))) return async (a) => {
234
+ let s = e.chars;
235
+ return s.trim() ? await a(s, { parser: "css" }) : "";
236
+ };
237
+ }
238
+ var Qn = Jn, Nt = null;
239
+ function qt(t) {
240
+ if (Nt !== null && typeof Nt.property) {
241
+ let e = Nt;
242
+ return Nt = qt.prototype = null, e;
204
243
  }
205
- return kt = Nt.prototype = t ?? /* @__PURE__ */ Object.create(null), new Nt();
244
+ return Nt = qt.prototype = t ?? /* @__PURE__ */ Object.create(null), new qt();
206
245
  }
207
- var Hn = 10;
208
- for (let t = 0; t <= Hn; t++) Nt();
209
- function Mn(t) {
210
- return Nt(t);
246
+ var Yn = 10;
247
+ for (let t = 0; t <= Yn; t++) qt();
248
+ function Zn(t) {
249
+ return qt(t);
211
250
  }
212
- function zn(t, e = "type") {
213
- Mn(t);
251
+ function Xn(t, e = "type") {
252
+ Zn(t);
214
253
  function r(n) {
215
254
  let a = n[e], s = t[a];
216
255
  if (!Array.isArray(s)) throw Object.assign(new Error(`Missing visitor keys for '${a}'.`), { node: n });
@@ -218,356 +257,22 @@ function zn(t, e = "type") {
218
257
  }
219
258
  return r;
220
259
  }
221
- var jn = zn, Gn = { Template: ["body"], Block: ["body"], MustacheStatement: ["path", "params", "hash"], BlockStatement: ["path", "params", "hash", "program", "inverse"], ElementModifierStatement: ["path", "params", "hash"], CommentStatement: [], MustacheCommentStatement: [], ElementNode: ["attributes", "modifiers", "children", "comments"], AttrNode: ["value"], TextNode: [], ConcatStatement: ["parts"], SubExpression: ["path", "params", "hash"], PathExpression: [], StringLiteral: [], BooleanLiteral: [], NumberLiteral: [], NullLiteral: [], UndefinedLiteral: [], Hash: ["pairs"], HashPair: ["value"] }, Wn = jn(Gn), Kn = Wn;
222
- function Lt(t) {
223
- return t.loc.start.offset;
224
- }
225
- function Ee(t) {
226
- return t.loc.end.offset;
227
- }
228
- var Qn = /* @__PURE__ */ new Set(["area", "base", "br", "col", "command", "embed", "hr", "img", "input", "keygen", "link", "meta", "param", "source", "track", "wbr"]);
229
- function Or(t) {
230
- return t.toUpperCase() === t;
231
- }
232
- function Jn(t) {
233
- return t.type === "ElementNode" && typeof t.tag == "string" && !t.tag.startsWith(":") && (Or(t.tag[0]) || t.tag.includes("."));
234
- }
235
- function Yn(t) {
236
- return Qn.has(t.toLowerCase()) && !Or(t[0]);
237
- }
238
- function $r(t) {
239
- return t.selfClosing === !0 || Yn(t.tag) || Jn(t) && t.children.every((e) => $e(e));
240
- }
241
- function $e(t) {
242
- return t.type === "TextNode" && !/\S/u.test(t.chars);
243
- }
244
- function rr(t) {
245
- return (t == null ? void 0 : t.type) === "MustacheCommentStatement" && typeof t.value == "string" && t.value.trim() === "prettier-ignore";
260
+ var ta = Xn, Mr = Object.assign, sr = console;
261
+ function ea(t, e = "unexpected unreachable branch") {
262
+ throw sr.log("unreachable", t), sr.log(`${e} :: ${JSON.stringify(t)} (${t})`), new Error("code reached unreachable");
246
263
  }
247
- function Xn(t) {
248
- return rr(t.node) || t.isInArray && (t.key === "children" || t.key === "body" || t.key === "parts") && rr(t.siblings[t.index - 2]);
249
- }
250
- var Vr = 2;
251
- function Zn(t, e, r) {
252
- var n, a, s, u, i, l, g, h, m;
253
- let { node: A } = t;
254
- switch (A.type) {
255
- case "Block":
256
- case "Program":
257
- case "Template":
258
- return R(t.map(r, "body"));
259
- case "ElementNode": {
260
- let y = R(ea(t, r)), C = e.htmlWhitespaceSensitivity === "ignore" && ((n = t.next) == null ? void 0 : n.type) === "ElementNode" ? K : "";
261
- if ($r(A)) return [y, C];
262
- let T = ["</", A.tag, ">"];
263
- return A.children.length === 0 ? [y, O(T), C] : e.htmlWhitespaceSensitivity === "ignore" ? [y, O(nr(t, e, r)), wt, O(T), C] : [y, O(R(nr(t, e, r))), O(T), C];
264
- }
265
- case "BlockStatement":
266
- return ia(t) ? [oa(t, r), ur(t, r, e), ir(t, r, e)] : [sa(t, r), R([ur(t, r, e), ir(t, r, e), la(t, r, e)])];
267
- case "ElementModifierStatement":
268
- return R(["{{", lr(t, r), "}}"]);
269
- case "MustacheStatement":
270
- return R([Zt(A), lr(t, r), te(A)]);
271
- case "SubExpression":
272
- return R(["(", ga(t, r), K, ")"]);
273
- case "AttrNode": {
274
- let { name: y, value: C } = A, T = C.type === "TextNode";
275
- if (T && C.chars === "" && Lt(C) === Ee(C)) return y;
276
- let x = T ? De(C.chars, e.singleQuote) : C.type === "ConcatStatement" ? De(C.parts.map((U) => U.type === "TextNode" ? U.chars : "").join(""), e.singleQuote) : "", B = r("value");
277
- return [y, "=", x, y === "class" && x ? R(O(B)) : B, x];
278
- }
279
- case "ConcatStatement":
280
- return t.map(r, "parts");
281
- case "Hash":
282
- return Ot(L, t.map(r, "pairs"));
283
- case "HashPair":
284
- return [A.key, "=", r("value")];
285
- case "TextNode": {
286
- let y = Sr(!1, A.chars, "{{", String.raw`\{{`), C = ha(t);
287
- if (C) {
288
- if (C === "class") {
289
- let Y = y.trim().split(/\s+/u).join(" "), tt = !1, $ = !1;
290
- return t.parent.type === "ConcatStatement" && (((a = t.previous) == null ? void 0 : a.type) === "MustacheStatement" && /^\s/u.test(y) && (tt = !0), ((s = t.next) == null ? void 0 : s.type) === "MustacheStatement" && /\s$/u.test(y) && Y !== "" && ($ = !0)), [tt ? L : "", Y, $ ? L : ""];
291
- }
292
- return Pn(y);
293
- }
294
- let T = Z.isWhitespaceOnly(y), { isFirst: x, isLast: B } = t;
295
- if (e.htmlWhitespaceSensitivity !== "ignore") {
296
- let Y = B && t.parent.type === "Template", tt = x && t.parent.type === "Template";
297
- if (T) {
298
- if (tt || Y) return "";
299
- let P = [L], rt = Dt(y);
300
- return rt && (P = xt(rt)), B && (P = P.map((Vt) => Xe(Vt))), P;
301
- }
302
- let $ = Z.getLeadingWhitespace(y), ft = [];
303
- if ($) {
304
- ft = [L];
305
- let P = Dt($);
306
- P && (ft = xt(P)), y = y.slice($.length);
307
- }
308
- let V = Z.getTrailingWhitespace(y), et = [];
309
- if (V) {
310
- if (!Y) {
311
- et = [L];
312
- let P = Dt(V);
313
- P && (et = xt(P)), B && (et = et.map((rt) => Xe(rt)));
314
- }
315
- y = y.slice(0, -V.length);
316
- }
317
- return [...ft, Ze(or(y)), ...et];
318
- }
319
- let U = Dt(y), j = pa(y), J = da(y);
320
- if ((x || B) && T && (t.parent.type === "Block" || t.parent.type === "ElementNode" || t.parent.type === "Template")) return "";
321
- T && U ? (j = Math.min(U, Vr), J = 0) : ((((u = t.next) == null ? void 0 : u.type) === "BlockStatement" || ((i = t.next) == null ? void 0 : i.type) === "ElementNode") && (J = Math.max(J, 1)), (((l = t.previous) == null ? void 0 : l.type) === "BlockStatement" || ((g = t.previous) == null ? void 0 : g.type) === "ElementNode") && (j = Math.max(j, 1)));
322
- let dt = "", mt = "";
323
- return J === 0 && ((h = t.next) == null ? void 0 : h.type) === "MustacheStatement" && (mt = " "), j === 0 && ((m = t.previous) == null ? void 0 : m.type) === "MustacheStatement" && (dt = " "), x && (j = 0, dt = ""), B && (J = 0, mt = ""), Z.hasLeadingWhitespace(y) && (y = dt + Z.trimStart(y)), Z.hasTrailingWhitespace(y) && (y = Z.trimEnd(y) + mt), [...xt(j), Ze(or(y)), ...xt(J)];
324
- }
325
- case "MustacheCommentStatement": {
326
- let y = Lt(A), C = Ee(A), T = e.originalText.charAt(y + 2) === "~", x = e.originalText.charAt(C - 3) === "~", B = A.value.includes("}}") ? "--" : "";
327
- return ["{{", T ? "~" : "", "!", B, A.value, B, x ? "~" : "", "}}"];
328
- }
329
- case "PathExpression":
330
- return Da(A);
331
- case "BooleanLiteral":
332
- return String(A.value);
333
- case "CommentStatement":
334
- return ["<!--", A.value, "-->"];
335
- case "StringLiteral":
336
- return ma(t, e);
337
- case "NumberLiteral":
338
- return String(A.value);
339
- case "UndefinedLiteral":
340
- return "undefined";
341
- case "NullLiteral":
342
- return "null";
343
- case "AtHead":
344
- case "VarHead":
345
- case "ThisHead":
346
- default:
347
- throw new Rn(A, "Handlebars");
348
- }
349
- }
350
- function ta(t, e) {
351
- return Lt(t) - Lt(e);
352
- }
353
- function ea(t, e) {
354
- let { node: r } = t, n = ["attributes", "modifiers", "comments"].filter((s) => Xt(r[s])), a = n.flatMap((s) => r[s]).sort(ta);
355
- for (let s of n) t.each(({ node: u }) => {
356
- let i = a.indexOf(u);
357
- a.splice(i, 1, [L, e()]);
358
- }, s);
359
- return Xt(r.blockParams) && a.push(L, Re(r)), ["<", r.tag, O(a), ra(r)];
360
- }
361
- function nr(t, e, r) {
362
- let { node: n } = t, a = n.children.every((s) => $e(s));
363
- return e.htmlWhitespaceSensitivity === "ignore" && a ? "" : t.map(({ isFirst: s }) => {
364
- let u = r();
365
- return s && e.htmlWhitespaceSensitivity === "ignore" ? [K, u] : u;
366
- }, "children");
367
- }
368
- function ra(t) {
369
- return $r(t) ? tr([K, "/>"], [" />", K]) : tr([K, ">"], ">");
370
- }
371
- function Zt(t) {
372
- var e;
373
- let r = t.trusting ? "{{{" : "{{", n = (e = t.strip) != null && e.open ? "~" : "";
374
- return [r, n];
375
- }
376
- function te(t) {
377
- var e;
378
- let r = t.trusting ? "}}}" : "}}";
379
- return [(e = t.strip) != null && e.close ? "~" : "", r];
380
- }
381
- function na(t) {
382
- let e = Zt(t), r = t.openStrip.open ? "~" : "";
383
- return [e, r, "#"];
384
- }
385
- function aa(t) {
386
- let e = te(t);
387
- return [t.openStrip.close ? "~" : "", e];
388
- }
389
- function ar(t) {
390
- let e = Zt(t), r = t.closeStrip.open ? "~" : "";
391
- return [e, r, "/"];
392
- }
393
- function sr(t) {
394
- let e = te(t);
395
- return [t.closeStrip.close ? "~" : "", e];
396
- }
397
- function Rr(t) {
398
- let e = Zt(t), r = t.inverseStrip.open ? "~" : "";
399
- return [e, r];
400
- }
401
- function Ur(t) {
402
- let e = te(t);
403
- return [t.inverseStrip.close ? "~" : "", e];
404
- }
405
- function sa(t, e) {
406
- let { node: r } = t, n = [], a = ee(t, e);
407
- return a && n.push(R(a)), Xt(r.program.blockParams) && n.push(Re(r.program)), R([na(r), Ve(t, e), n.length > 0 ? O([L, Ot(L, n)]) : "", K, aa(r)]);
408
- }
409
- function ua(t, e) {
410
- return [e.htmlWhitespaceSensitivity === "ignore" ? wt : "", Rr(t), "else", Ur(t)];
411
- }
412
- var Hr = (t, e) => t.head.type === "VarHead" && e.head.type === "VarHead" && t.head.name === e.head.name;
413
- function ia(t) {
414
- var e;
415
- let { grandparent: r, node: n } = t;
416
- return ((e = r == null ? void 0 : r.inverse) == null ? void 0 : e.body.length) === 1 && r.inverse.body[0] === n && Hr(r.inverse.body[0].path, r.path);
417
- }
418
- function oa(t, e) {
419
- let { node: r, grandparent: n } = t;
420
- return R([Rr(n), ["else", " ", n.inverse.body[0].path.head.name], O([L, R(ee(t, e)), ...Xt(r.program.blockParams) ? [L, Re(r.program)] : []]), K, Ur(n)]);
421
- }
422
- function la(t, e, r) {
423
- let { node: n } = t;
424
- return r.htmlWhitespaceSensitivity === "ignore" ? [Mr(n) ? K : wt, ar(n), e("path"), sr(n)] : [ar(n), e("path"), sr(n)];
425
- }
426
- function Mr(t) {
427
- return t.type === "BlockStatement" && t.program.body.every((e) => $e(e));
428
- }
429
- function ca(t) {
430
- return zr(t) && t.inverse.body.length === 1 && t.inverse.body[0].type === "BlockStatement" && Hr(t.inverse.body[0].path, t.path);
431
- }
432
- function zr(t) {
433
- return t.type === "BlockStatement" && t.inverse;
434
- }
435
- function ur(t, e, r) {
436
- let { node: n } = t;
437
- if (Mr(n)) return "";
438
- let a = e("program");
439
- return r.htmlWhitespaceSensitivity === "ignore" ? O([wt, a]) : O(a);
440
- }
441
- function ir(t, e, r) {
442
- let { node: n } = t, a = e("inverse"), s = r.htmlWhitespaceSensitivity === "ignore" ? [wt, a] : a;
443
- return ca(n) ? s : zr(n) ? [ua(n, r), O(s)] : "";
444
- }
445
- function or(t) {
446
- return Ot(L, Z.split(t));
447
- }
448
- function ha(t) {
449
- for (let e = 0; e < 2; e++) {
450
- let r = t.getParentNode(e);
451
- if ((r == null ? void 0 : r.type) === "AttrNode") return r.name.toLowerCase();
452
- }
453
- }
454
- function Dt(t) {
455
- return t = typeof t == "string" ? t : "", t.split(`
456
- `).length - 1;
457
- }
458
- function pa(t) {
459
- t = typeof t == "string" ? t : "";
460
- let e = (t.match(/^([^\S\n\r]*[\n\r])+/gu) || [])[0] || "";
461
- return Dt(e);
462
- }
463
- function da(t) {
464
- t = typeof t == "string" ? t : "";
465
- let e = (t.match(/([\n\r][^\S\n\r]*)+$/gu) || [])[0] || "";
466
- return Dt(e);
467
- }
468
- function xt(t = 0) {
469
- return Array.from({ length: Math.min(t, Vr) }).fill(wt);
470
- }
471
- function ma(t, e) {
472
- let { node: { value: r } } = t, n = De(r, fa(t) ? !e.singleQuote : e.singleQuote);
473
- return [n, Sr(!1, r, n, `\\${n}`), n];
474
- }
475
- function fa(t) {
476
- let { ancestors: e } = t, r = e.findIndex((n) => n.type !== "SubExpression");
477
- return r !== -1 && e[r + 1].type === "ConcatStatement" && e[r + 2].type === "AttrNode";
478
- }
479
- function ga(t, e) {
480
- let r = Ve(t, e), n = ee(t, e);
481
- return n ? O([r, L, R(n)]) : r;
482
- }
483
- function lr(t, e) {
484
- let r = Ve(t, e), n = ee(t, e);
485
- return n ? [O([r, L, n]), K] : r;
486
- }
487
- function Ve(t, e) {
488
- return e("path");
489
- }
490
- function ee(t, e) {
491
- var r;
492
- let { node: n } = t, a = [];
493
- return n.params.length > 0 && a.push(...t.map(e, "params")), ((r = n.hash) == null ? void 0 : r.pairs.length) > 0 && a.push(e("hash")), a.length === 0 ? "" : Ot(L, a);
494
- }
495
- function Re(t) {
496
- return ["as |", t.blockParams.join(" "), "|"];
497
- }
498
- var ba = new Set("!\"#%&'()*+,./;<=>@[\\]^`{|}~"), ya = /* @__PURE__ */ new Set(["true", "false", "null", "undefined"]), Aa = (t, e) => e === 0 && t.startsWith("@") ? !1 : e !== 0 && ya.has(t) || /\s/u.test(t) || /^\d/u.test(t) || Array.prototype.some.call(t, (r) => ba.has(r));
499
- function Da(t) {
500
- return t.tail.length === 0 && t.original.includes("/") ? t.original : [t.head.original, ...t.tail].map((e, r) => Aa(e, r) ? `[${e}]` : e).join(".");
501
- }
502
- var Ea = { print: Zn, massageAstNode: Un, hasPrettierIgnore: Xn, getVisitorKeys: Kn }, va = Ea, Ca = [{ linguistLanguageId: 155, name: "Handlebars", type: "markup", color: "#f7931e", aliases: ["hbs", "htmlbars"], extensions: [".handlebars", ".hbs"], tmScope: "text.html.handlebars", aceMode: "handlebars", parsers: ["glimmer"], vscodeLanguageIds: ["handlebars"] }], jr = {};
503
- Pe(jr, { glimmer: () => uu });
504
- function S(t, e) {
505
- if (!t) throw new Error(e || "assertion failure");
506
- }
507
- function M(t) {
508
- Fa.warn(`DEPRECATION: ${t}`);
509
- }
510
- function Ue(t) {
511
- if (t == null) throw new Error("Expected value to be present");
512
- return t;
513
- }
514
- function Sa(t, e) {
515
- if (t == null) throw new Error(e);
516
- return t;
517
- }
518
- function Bt(t) {
519
- return t.length > 0;
520
- }
521
- function ve(t, e = "unexpected empty list") {
522
- if (!Bt(t)) throw new Error(e);
523
- }
524
- function _t(t, e = "unexpected empty list") {
525
- return ve(t, e), t;
526
- }
527
- function He(t) {
528
- return t.length === 0 ? void 0 : t[t.length - 1];
529
- }
530
- function wa(t) {
531
- return t.length === 0 ? void 0 : t[0];
532
- }
533
- var Me = function(t) {
534
- return t[t.MAX_SMI = 1073741823] = "MAX_SMI", t[t.MIN_SMI = -1073741824] = "MIN_SMI", t[t.SIGN_BIT = -536870913] = "SIGN_BIT", t[t.MAX_INT = 536870911] = "MAX_INT", t[t.MIN_INT = -536870912] = "MIN_INT", t[t.FALSE_HANDLE = 0] = "FALSE_HANDLE", t[t.TRUE_HANDLE = 1] = "TRUE_HANDLE", t[t.NULL_HANDLE = 2] = "NULL_HANDLE", t[t.UNDEFINED_HANDLE = 3] = "UNDEFINED_HANDLE", t[t.ENCODED_FALSE_HANDLE = 0] = "ENCODED_FALSE_HANDLE", t[t.ENCODED_TRUE_HANDLE = 1] = "ENCODED_TRUE_HANDLE", t[t.ENCODED_NULL_HANDLE = 2] = "ENCODED_NULL_HANDLE", t[t.ENCODED_UNDEFINED_HANDLE = 3] = "ENCODED_UNDEFINED_HANDLE", t;
535
- }({});
536
- function Ba(t) {
537
- return t & Me.SIGN_BIT;
538
- }
539
- function ka(t) {
540
- return t | ~Me.SIGN_BIT;
541
- }
542
- function xa(t) {
543
- return ~t;
544
- }
545
- function Ta(t) {
546
- return ~t;
547
- }
548
- function Na(t) {
549
- return t |= 0, t < 0 ? Ba(t) : xa(t);
550
- }
551
- function Pa(t) {
552
- return t |= 0, t > Me.SIGN_BIT ? Ta(t) : ka(t);
553
- }
554
- [1, -1].forEach((t) => Pa(Na(t)));
555
- var Gr = Object.assign, Fa = console, cr = console;
556
- function La(t, e = "unexpected unreachable branch") {
557
- throw cr.log("unreachable", t), cr.log(`${e} :: ${JSON.stringify(t)} (${t})`), new Error("code reached unreachable");
558
- }
559
- var _a = function() {
560
- var t = function(G, p, b, d) {
561
- for (b = b || {}, d = G.length; d--; b[G[d]] = p) ;
264
+ var ra = function() {
265
+ var t = function(W, g, b, p) {
266
+ for (b = b || {}, p = W.length; p--; b[W[p]] = g) ;
562
267
  return b;
563
- }, e = [2, 44], r = [1, 20], n = [5, 14, 15, 19, 29, 34, 39, 44, 47, 48, 52, 56, 60], a = [1, 35], s = [1, 38], u = [1, 30], i = [1, 31], l = [1, 32], g = [1, 33], h = [1, 34], m = [1, 37], A = [14, 15, 19, 29, 34, 39, 44, 47, 48, 52, 56, 60], y = [14, 15, 19, 29, 34, 44, 47, 48, 52, 56, 60], C = [15, 18], T = [14, 15, 19, 29, 34, 47, 48, 52, 56, 60], x = [33, 64, 71, 79, 80, 81, 82, 83, 84], B = [23, 33, 55, 64, 67, 71, 74, 79, 80, 81, 82, 83, 84], U = [1, 51], j = [23, 33, 55, 64, 67, 71, 74, 79, 80, 81, 82, 83, 84, 86], J = [2, 43], dt = [55, 64, 71, 79, 80, 81, 82, 83, 84], mt = [1, 58], Y = [1, 59], tt = [1, 66], $ = [33, 64, 71, 74, 79, 80, 81, 82, 83, 84], ft = [23, 64, 71, 79, 80, 81, 82, 83, 84], V = [1, 76], et = [64, 67, 71, 79, 80, 81, 82, 83, 84], P = [33, 74], rt = [23, 33, 55, 67, 71, 74], Vt = [1, 106], se = [1, 118], Qe = [71, 76], ue = { trace: function() {
564
- }, yy: {}, symbols_: { error: 2, root: 3, program: 4, EOF: 5, program_repetition0: 6, statement: 7, mustache: 8, block: 9, rawBlock: 10, partial: 11, partialBlock: 12, content: 13, COMMENT: 14, CONTENT: 15, openRawBlock: 16, rawBlock_repetition0: 17, END_RAW_BLOCK: 18, OPEN_RAW_BLOCK: 19, helperName: 20, openRawBlock_repetition0: 21, openRawBlock_option0: 22, CLOSE_RAW_BLOCK: 23, openBlock: 24, block_option0: 25, closeBlock: 26, openInverse: 27, block_option1: 28, OPEN_BLOCK: 29, openBlock_repetition0: 30, openBlock_option0: 31, openBlock_option1: 32, CLOSE: 33, OPEN_INVERSE: 34, openInverse_repetition0: 35, openInverse_option0: 36, openInverse_option1: 37, openInverseChain: 38, OPEN_INVERSE_CHAIN: 39, openInverseChain_repetition0: 40, openInverseChain_option0: 41, openInverseChain_option1: 42, inverseAndProgram: 43, INVERSE: 44, inverseChain: 45, inverseChain_option0: 46, OPEN_ENDBLOCK: 47, OPEN: 48, expr: 49, mustache_repetition0: 50, mustache_option0: 51, OPEN_UNESCAPED: 52, mustache_repetition1: 53, mustache_option1: 54, CLOSE_UNESCAPED: 55, OPEN_PARTIAL: 56, partial_repetition0: 57, partial_option0: 58, openPartialBlock: 59, OPEN_PARTIAL_BLOCK: 60, openPartialBlock_repetition0: 61, openPartialBlock_option0: 62, sexpr: 63, OPEN_SEXPR: 64, sexpr_repetition0: 65, sexpr_option0: 66, CLOSE_SEXPR: 67, hash: 68, hash_repetition_plus0: 69, hashSegment: 70, ID: 71, EQUALS: 72, blockParams: 73, OPEN_BLOCK_PARAMS: 74, blockParams_repetition_plus0: 75, CLOSE_BLOCK_PARAMS: 76, path: 77, dataName: 78, STRING: 79, NUMBER: 80, BOOLEAN: 81, UNDEFINED: 82, NULL: 83, DATA: 84, pathSegments: 85, SEP: 86, $accept: 0, $end: 1 }, terminals_: { 2: "error", 5: "EOF", 14: "COMMENT", 15: "CONTENT", 18: "END_RAW_BLOCK", 19: "OPEN_RAW_BLOCK", 23: "CLOSE_RAW_BLOCK", 29: "OPEN_BLOCK", 33: "CLOSE", 34: "OPEN_INVERSE", 39: "OPEN_INVERSE_CHAIN", 44: "INVERSE", 47: "OPEN_ENDBLOCK", 48: "OPEN", 52: "OPEN_UNESCAPED", 55: "CLOSE_UNESCAPED", 56: "OPEN_PARTIAL", 60: "OPEN_PARTIAL_BLOCK", 64: "OPEN_SEXPR", 67: "CLOSE_SEXPR", 71: "ID", 72: "EQUALS", 74: "OPEN_BLOCK_PARAMS", 76: "CLOSE_BLOCK_PARAMS", 79: "STRING", 80: "NUMBER", 81: "BOOLEAN", 82: "UNDEFINED", 83: "NULL", 84: "DATA", 86: "SEP" }, productions_: [0, [3, 2], [4, 1], [7, 1], [7, 1], [7, 1], [7, 1], [7, 1], [7, 1], [7, 1], [13, 1], [10, 3], [16, 5], [9, 4], [9, 4], [24, 6], [27, 6], [38, 6], [43, 2], [45, 3], [45, 1], [26, 3], [8, 5], [8, 5], [11, 5], [12, 3], [59, 5], [49, 1], [49, 1], [63, 5], [68, 1], [70, 3], [73, 3], [20, 1], [20, 1], [20, 1], [20, 1], [20, 1], [20, 1], [20, 1], [78, 2], [77, 1], [85, 3], [85, 1], [6, 0], [6, 2], [17, 0], [17, 2], [21, 0], [21, 2], [22, 0], [22, 1], [25, 0], [25, 1], [28, 0], [28, 1], [30, 0], [30, 2], [31, 0], [31, 1], [32, 0], [32, 1], [35, 0], [35, 2], [36, 0], [36, 1], [37, 0], [37, 1], [40, 0], [40, 2], [41, 0], [41, 1], [42, 0], [42, 1], [46, 0], [46, 1], [50, 0], [50, 2], [51, 0], [51, 1], [53, 0], [53, 2], [54, 0], [54, 1], [57, 0], [57, 2], [58, 0], [58, 1], [61, 0], [61, 2], [62, 0], [62, 1], [65, 0], [65, 2], [66, 0], [66, 1], [69, 1], [69, 2], [75, 1], [75, 2]], performAction: function(G, p, b, d, E, o, _) {
268
+ }, e = [2, 52], r = [1, 20], n = [5, 14, 15, 19, 29, 34, 39, 44, 47, 48, 53, 57, 61], a = [1, 44], s = [1, 40], u = [1, 43], i = [1, 33], l = [1, 34], h = [1, 35], f = [1, 36], m = [1, 37], A = [1, 42], d = [1, 46], v = [14, 15, 19, 29, 34, 39, 44, 47, 48, 53, 57, 61], w = [14, 15, 19, 29, 34, 44, 47, 48, 53, 57, 61], S = [15, 18], B = [14, 15, 19, 29, 34, 47, 48, 53, 57, 61], x = [33, 67, 73, 75, 84, 85, 86, 87, 88, 89], P = [23, 33, 56, 67, 68, 73, 75, 77, 79, 84, 85, 86, 87, 88, 89], R = [1, 62], V = [1, 63], ot = [23, 33, 56, 68, 73, 79], H = [23, 33, 56, 67, 68, 73, 75, 77, 79, 84, 85, 86, 87, 88, 89, 92, 93], tt = [2, 51], lt = [1, 64], Y = [67, 73, 75, 77, 84, 85, 86, 87, 88, 89], mt = [56, 67, 73, 75, 84, 85, 86, 87, 88, 89], gt = [1, 75], Z = [1, 76], _ = [1, 83], z = [33, 67, 73, 75, 79, 84, 85, 86, 87, 88, 89], $t = [23, 67, 73, 75, 84, 85, 86, 87, 88, 89], Qe = [67, 68, 73, 75, 84, 85, 86, 87, 88, 89], yt = [33, 79], oe = [1, 134], Ye = [73, 81], le = { trace: function() {
269
+ }, yy: {}, symbols_: { error: 2, root: 3, program: 4, EOF: 5, program_repetition0: 6, statement: 7, mustache: 8, block: 9, rawBlock: 10, partial: 11, partialBlock: 12, content: 13, COMMENT: 14, CONTENT: 15, openRawBlock: 16, rawBlock_repetition0: 17, END_RAW_BLOCK: 18, OPEN_RAW_BLOCK: 19, helperName: 20, openRawBlock_repetition0: 21, openRawBlock_option0: 22, CLOSE_RAW_BLOCK: 23, openBlock: 24, block_option0: 25, closeBlock: 26, openInverse: 27, block_option1: 28, OPEN_BLOCK: 29, openBlock_repetition0: 30, openBlock_option0: 31, openBlock_option1: 32, CLOSE: 33, OPEN_INVERSE: 34, openInverse_repetition0: 35, openInverse_option0: 36, openInverse_option1: 37, openInverseChain: 38, OPEN_INVERSE_CHAIN: 39, openInverseChain_repetition0: 40, openInverseChain_option0: 41, openInverseChain_option1: 42, inverseAndProgram: 43, INVERSE: 44, inverseChain: 45, inverseChain_option0: 46, OPEN_ENDBLOCK: 47, OPEN: 48, hash: 49, expr: 50, mustache_repetition0: 51, mustache_option0: 52, OPEN_UNESCAPED: 53, mustache_repetition1: 54, mustache_option1: 55, CLOSE_UNESCAPED: 56, OPEN_PARTIAL: 57, partial_repetition0: 58, partial_option0: 59, openPartialBlock: 60, OPEN_PARTIAL_BLOCK: 61, openPartialBlock_repetition0: 62, openPartialBlock_option0: 63, exprHead: 64, arrayLiteral: 65, sexpr: 66, OPEN_SEXPR: 67, CLOSE_SEXPR: 68, sexpr_repetition0: 69, sexpr_option0: 70, hash_repetition_plus0: 71, hashSegment: 72, ID: 73, EQUALS: 74, OPEN_ARRAY: 75, arrayLiteral_repetition0: 76, CLOSE_ARRAY: 77, blockParams: 78, OPEN_BLOCK_PARAMS: 79, blockParams_repetition_plus0: 80, CLOSE_BLOCK_PARAMS: 81, path: 82, dataName: 83, STRING: 84, NUMBER: 85, BOOLEAN: 86, UNDEFINED: 87, NULL: 88, DATA: 89, pathSegments: 90, sep: 91, SEP: 92, PRIVATE_SEP: 93, $accept: 0, $end: 1 }, terminals_: { 2: "error", 5: "EOF", 14: "COMMENT", 15: "CONTENT", 18: "END_RAW_BLOCK", 19: "OPEN_RAW_BLOCK", 23: "CLOSE_RAW_BLOCK", 29: "OPEN_BLOCK", 33: "CLOSE", 34: "OPEN_INVERSE", 39: "OPEN_INVERSE_CHAIN", 44: "INVERSE", 47: "OPEN_ENDBLOCK", 48: "OPEN", 53: "OPEN_UNESCAPED", 56: "CLOSE_UNESCAPED", 57: "OPEN_PARTIAL", 61: "OPEN_PARTIAL_BLOCK", 67: "OPEN_SEXPR", 68: "CLOSE_SEXPR", 73: "ID", 74: "EQUALS", 75: "OPEN_ARRAY", 77: "CLOSE_ARRAY", 79: "OPEN_BLOCK_PARAMS", 81: "CLOSE_BLOCK_PARAMS", 84: "STRING", 85: "NUMBER", 86: "BOOLEAN", 87: "UNDEFINED", 88: "NULL", 89: "DATA", 92: "SEP", 93: "PRIVATE_SEP" }, productions_: [0, [3, 2], [4, 1], [7, 1], [7, 1], [7, 1], [7, 1], [7, 1], [7, 1], [7, 1], [13, 1], [10, 3], [16, 5], [9, 4], [9, 4], [24, 6], [27, 6], [38, 6], [43, 2], [45, 3], [45, 1], [26, 3], [8, 3], [8, 5], [8, 5], [11, 5], [12, 3], [60, 5], [50, 1], [50, 1], [64, 1], [64, 1], [66, 3], [66, 5], [49, 1], [72, 3], [65, 3], [78, 3], [20, 1], [20, 1], [20, 1], [20, 1], [20, 1], [20, 1], [20, 1], [83, 2], [91, 1], [91, 1], [82, 3], [82, 1], [90, 3], [90, 1], [6, 0], [6, 2], [17, 0], [17, 2], [21, 0], [21, 2], [22, 0], [22, 1], [25, 0], [25, 1], [28, 0], [28, 1], [30, 0], [30, 2], [31, 0], [31, 1], [32, 0], [32, 1], [35, 0], [35, 2], [36, 0], [36, 1], [37, 0], [37, 1], [40, 0], [40, 2], [41, 0], [41, 1], [42, 0], [42, 1], [46, 0], [46, 1], [51, 0], [51, 2], [52, 0], [52, 1], [54, 0], [54, 2], [55, 0], [55, 1], [58, 0], [58, 2], [59, 0], [59, 1], [62, 0], [62, 2], [63, 0], [63, 1], [69, 0], [69, 2], [70, 0], [70, 1], [71, 1], [71, 2], [76, 0], [76, 2], [80, 1], [80, 2]], performAction: function(W, g, b, p, D, o, F) {
565
270
  var c = o.length - 1;
566
- switch (E) {
271
+ switch (D) {
567
272
  case 1:
568
273
  return o[c - 1];
569
274
  case 2:
570
- this.$ = d.prepareProgram(o[c]);
275
+ this.$ = p.prepareProgram(o[c]);
571
276
  break;
572
277
  case 3:
573
278
  case 4:
@@ -576,190 +281,208 @@ var _a = function() {
576
281
  case 7:
577
282
  case 8:
578
283
  case 20:
579
- case 27:
580
284
  case 28:
581
- case 33:
582
- case 34:
285
+ case 29:
286
+ case 30:
287
+ case 31:
288
+ case 38:
289
+ case 39:
290
+ case 46:
291
+ case 47:
583
292
  this.$ = o[c];
584
293
  break;
585
294
  case 9:
586
- this.$ = { type: "CommentStatement", value: d.stripComment(o[c]), strip: d.stripFlags(o[c], o[c]), loc: d.locInfo(this._$) };
295
+ this.$ = { type: "CommentStatement", value: p.stripComment(o[c]), strip: p.stripFlags(o[c], o[c]), loc: p.locInfo(this._$) };
587
296
  break;
588
297
  case 10:
589
- this.$ = { type: "ContentStatement", original: o[c], value: o[c], loc: d.locInfo(this._$) };
298
+ this.$ = { type: "ContentStatement", original: o[c], value: o[c], loc: p.locInfo(this._$) };
590
299
  break;
591
300
  case 11:
592
- this.$ = d.prepareRawBlock(o[c - 2], o[c - 1], o[c], this._$);
301
+ this.$ = p.prepareRawBlock(o[c - 2], o[c - 1], o[c], this._$);
593
302
  break;
594
303
  case 12:
595
304
  this.$ = { path: o[c - 3], params: o[c - 2], hash: o[c - 1] };
596
305
  break;
597
306
  case 13:
598
- this.$ = d.prepareBlock(o[c - 3], o[c - 2], o[c - 1], o[c], !1, this._$);
307
+ this.$ = p.prepareBlock(o[c - 3], o[c - 2], o[c - 1], o[c], !1, this._$);
599
308
  break;
600
309
  case 14:
601
- this.$ = d.prepareBlock(o[c - 3], o[c - 2], o[c - 1], o[c], !0, this._$);
310
+ this.$ = p.prepareBlock(o[c - 3], o[c - 2], o[c - 1], o[c], !0, this._$);
602
311
  break;
603
312
  case 15:
604
- this.$ = { open: o[c - 5], path: o[c - 4], params: o[c - 3], hash: o[c - 2], blockParams: o[c - 1], strip: d.stripFlags(o[c - 5], o[c]) };
313
+ this.$ = { open: o[c - 5], path: o[c - 4], params: o[c - 3], hash: o[c - 2], blockParams: o[c - 1], strip: p.stripFlags(o[c - 5], o[c]) };
605
314
  break;
606
315
  case 16:
607
316
  case 17:
608
- this.$ = { path: o[c - 4], params: o[c - 3], hash: o[c - 2], blockParams: o[c - 1], strip: d.stripFlags(o[c - 5], o[c]) };
317
+ this.$ = { path: o[c - 4], params: o[c - 3], hash: o[c - 2], blockParams: o[c - 1], strip: p.stripFlags(o[c - 5], o[c]) };
609
318
  break;
610
319
  case 18:
611
- this.$ = { strip: d.stripFlags(o[c - 1], o[c - 1]), program: o[c] };
320
+ this.$ = { strip: p.stripFlags(o[c - 1], o[c - 1]), program: o[c] };
612
321
  break;
613
322
  case 19:
614
- var Rt = d.prepareBlock(o[c - 2], o[c - 1], o[c], o[c], !1, this._$), Ut = d.prepareProgram([Rt], o[c - 1].loc);
615
- Ut.chained = !0, this.$ = { strip: o[c - 2].strip, program: Ut, chain: !0 };
323
+ var Ut = p.prepareBlock(o[c - 2], o[c - 1], o[c], o[c], !1, this._$), Ht = p.prepareProgram([Ut], o[c - 1].loc);
324
+ Ht.chained = !0, this.$ = { strip: o[c - 2].strip, program: Ht, chain: !0 };
616
325
  break;
617
326
  case 21:
618
- this.$ = { path: o[c - 1], strip: d.stripFlags(o[c - 2], o[c]) };
327
+ this.$ = { path: o[c - 1], strip: p.stripFlags(o[c - 2], o[c]) };
619
328
  break;
620
329
  case 22:
621
- case 23:
622
- this.$ = d.prepareMustache(o[c - 3], o[c - 2], o[c - 1], o[c - 4], d.stripFlags(o[c - 4], o[c]), this._$);
330
+ this.$ = p.prepareMustache(p.syntax.hash(o[c - 1], p.locInfo(this._$), { yy: p, syntax: "expr" }), [], void 0, o[c - 2], p.stripFlags(o[c - 2], o[c]), this._$);
623
331
  break;
332
+ case 23:
624
333
  case 24:
625
- this.$ = { type: "PartialStatement", name: o[c - 3], params: o[c - 2], hash: o[c - 1], indent: "", strip: d.stripFlags(o[c - 4], o[c]), loc: d.locInfo(this._$) };
334
+ this.$ = p.prepareMustache(o[c - 3], o[c - 2], o[c - 1], o[c - 4], p.stripFlags(o[c - 4], o[c]), this._$);
626
335
  break;
627
336
  case 25:
628
- this.$ = d.preparePartialBlock(o[c - 2], o[c - 1], o[c], this._$);
337
+ this.$ = { type: "PartialStatement", name: o[c - 3], params: o[c - 2], hash: o[c - 1], indent: "", strip: p.stripFlags(o[c - 4], o[c]), loc: p.locInfo(this._$) };
629
338
  break;
630
339
  case 26:
631
- this.$ = { path: o[c - 3], params: o[c - 2], hash: o[c - 1], strip: d.stripFlags(o[c - 4], o[c]) };
340
+ this.$ = p.preparePartialBlock(o[c - 2], o[c - 1], o[c], this._$);
632
341
  break;
633
- case 29:
634
- this.$ = { type: "SubExpression", path: o[c - 3], params: o[c - 2], hash: o[c - 1], loc: d.locInfo(this._$) };
342
+ case 27:
343
+ this.$ = { path: o[c - 3], params: o[c - 2], hash: o[c - 1], strip: p.stripFlags(o[c - 4], o[c]) };
635
344
  break;
636
- case 30:
637
- this.$ = { type: "Hash", pairs: o[c], loc: d.locInfo(this._$) };
345
+ case 32:
346
+ this.$ = p.syntax.hash(o[c - 1], p.locInfo(this._$), { yy: p, syntax: "expr" });
638
347
  break;
639
- case 31:
640
- this.$ = { type: "HashPair", key: d.id(o[c - 2]), value: o[c], loc: d.locInfo(this._$) };
348
+ case 33:
349
+ this.$ = { type: "SubExpression", path: o[c - 3], params: o[c - 2], hash: o[c - 1], loc: p.locInfo(this._$) };
641
350
  break;
642
- case 32:
643
- this.$ = d.id(o[c - 1]);
351
+ case 34:
352
+ this.$ = { type: "Hash", pairs: o[c], loc: p.locInfo(this._$) };
644
353
  break;
645
354
  case 35:
646
- this.$ = { type: "StringLiteral", value: o[c], original: o[c], loc: d.locInfo(this._$) };
355
+ this.$ = { type: "HashPair", key: p.id(o[c - 2]), value: o[c], loc: p.locInfo(this._$) };
647
356
  break;
648
357
  case 36:
649
- this.$ = { type: "NumberLiteral", value: Number(o[c]), original: Number(o[c]), loc: d.locInfo(this._$) };
358
+ this.$ = p.syntax.square(o[c - 1], p.locInfo(this._$), { yy: p, syntax: "expr" });
650
359
  break;
651
360
  case 37:
652
- this.$ = { type: "BooleanLiteral", value: o[c] === "true", original: o[c] === "true", loc: d.locInfo(this._$) };
653
- break;
654
- case 38:
655
- this.$ = { type: "UndefinedLiteral", original: void 0, value: void 0, loc: d.locInfo(this._$) };
656
- break;
657
- case 39:
658
- this.$ = { type: "NullLiteral", original: null, value: null, loc: d.locInfo(this._$) };
361
+ this.$ = p.id(o[c - 1]);
659
362
  break;
660
363
  case 40:
661
- this.$ = d.preparePath(!0, o[c], this._$);
364
+ this.$ = { type: "StringLiteral", value: o[c], original: o[c], loc: p.locInfo(this._$) };
662
365
  break;
663
366
  case 41:
664
- this.$ = d.preparePath(!1, o[c], this._$);
367
+ this.$ = { type: "NumberLiteral", value: Number(o[c]), original: Number(o[c]), loc: p.locInfo(this._$) };
665
368
  break;
666
369
  case 42:
667
- o[c - 2].push({ part: d.id(o[c]), original: o[c], separator: o[c - 1] }), this.$ = o[c - 2];
370
+ this.$ = { type: "BooleanLiteral", value: o[c] === "true", original: o[c] === "true", loc: p.locInfo(this._$) };
668
371
  break;
669
372
  case 43:
670
- this.$ = [{ part: d.id(o[c]), original: o[c] }];
373
+ this.$ = { type: "UndefinedLiteral", original: void 0, value: void 0, loc: p.locInfo(this._$) };
671
374
  break;
672
375
  case 44:
673
- case 46:
376
+ this.$ = { type: "NullLiteral", original: null, value: null, loc: p.locInfo(this._$) };
377
+ break;
378
+ case 45:
379
+ this.$ = p.preparePath(!0, !1, o[c], this._$);
380
+ break;
674
381
  case 48:
382
+ this.$ = p.preparePath(!1, o[c - 2], o[c], this._$);
383
+ break;
384
+ case 49:
385
+ this.$ = p.preparePath(!1, !1, o[c], this._$);
386
+ break;
387
+ case 50:
388
+ o[c - 2].push({ part: p.id(o[c]), original: o[c], separator: o[c - 1] }), this.$ = o[c - 2];
389
+ break;
390
+ case 51:
391
+ this.$ = [{ part: p.id(o[c]), original: o[c] }];
392
+ break;
393
+ case 52:
394
+ case 54:
675
395
  case 56:
676
- case 62:
677
- case 68:
396
+ case 64:
397
+ case 70:
678
398
  case 76:
679
- case 80:
680
399
  case 84:
681
400
  case 88:
682
401
  case 92:
402
+ case 96:
403
+ case 100:
404
+ case 106:
683
405
  this.$ = [];
684
406
  break;
685
- case 45:
686
- case 47:
687
- case 49:
407
+ case 53:
408
+ case 55:
688
409
  case 57:
689
- case 63:
690
- case 69:
410
+ case 65:
411
+ case 71:
691
412
  case 77:
692
- case 81:
693
413
  case 85:
694
414
  case 89:
695
415
  case 93:
696
416
  case 97:
697
- case 99:
417
+ case 101:
418
+ case 105:
419
+ case 107:
420
+ case 109:
698
421
  o[c - 1].push(o[c]);
699
422
  break;
700
- case 96:
701
- case 98:
423
+ case 104:
424
+ case 108:
702
425
  this.$ = [o[c]];
703
426
  break;
704
427
  }
705
- }, table: [t([5, 14, 15, 19, 29, 34, 48, 52, 56, 60], e, { 3: 1, 4: 2, 6: 3 }), { 1: [3] }, { 5: [1, 4] }, t([5, 39, 44, 47], [2, 2], { 7: 5, 8: 6, 9: 7, 10: 8, 11: 9, 12: 10, 13: 11, 24: 15, 27: 16, 16: 17, 59: 19, 14: [1, 12], 15: r, 19: [1, 23], 29: [1, 21], 34: [1, 22], 48: [1, 13], 52: [1, 14], 56: [1, 18], 60: [1, 24] }), { 1: [2, 1] }, t(n, [2, 45]), t(n, [2, 3]), t(n, [2, 4]), t(n, [2, 5]), t(n, [2, 6]), t(n, [2, 7]), t(n, [2, 8]), t(n, [2, 9]), { 20: 26, 49: 25, 63: 27, 64: a, 71: s, 77: 28, 78: 29, 79: u, 80: i, 81: l, 82: g, 83: h, 84: m, 85: 36 }, { 20: 26, 49: 39, 63: 27, 64: a, 71: s, 77: 28, 78: 29, 79: u, 80: i, 81: l, 82: g, 83: h, 84: m, 85: 36 }, t(A, e, { 6: 3, 4: 40 }), t(y, e, { 6: 3, 4: 41 }), t(C, [2, 46], { 17: 42 }), { 20: 26, 49: 43, 63: 27, 64: a, 71: s, 77: 28, 78: 29, 79: u, 80: i, 81: l, 82: g, 83: h, 84: m, 85: 36 }, t(T, e, { 6: 3, 4: 44 }), t([5, 14, 15, 18, 19, 29, 34, 39, 44, 47, 48, 52, 56, 60], [2, 10]), { 20: 45, 71: s, 77: 28, 78: 29, 79: u, 80: i, 81: l, 82: g, 83: h, 84: m, 85: 36 }, { 20: 46, 71: s, 77: 28, 78: 29, 79: u, 80: i, 81: l, 82: g, 83: h, 84: m, 85: 36 }, { 20: 47, 71: s, 77: 28, 78: 29, 79: u, 80: i, 81: l, 82: g, 83: h, 84: m, 85: 36 }, { 20: 26, 49: 48, 63: 27, 64: a, 71: s, 77: 28, 78: 29, 79: u, 80: i, 81: l, 82: g, 83: h, 84: m, 85: 36 }, t(x, [2, 76], { 50: 49 }), t(B, [2, 27]), t(B, [2, 28]), t(B, [2, 33]), t(B, [2, 34]), t(B, [2, 35]), t(B, [2, 36]), t(B, [2, 37]), t(B, [2, 38]), t(B, [2, 39]), { 20: 26, 49: 50, 63: 27, 64: a, 71: s, 77: 28, 78: 29, 79: u, 80: i, 81: l, 82: g, 83: h, 84: m, 85: 36 }, t(B, [2, 41], { 86: U }), { 71: s, 85: 52 }, t(j, J), t(dt, [2, 80], { 53: 53 }), { 25: 54, 38: 56, 39: mt, 43: 57, 44: Y, 45: 55, 47: [2, 52] }, { 28: 60, 43: 61, 44: Y, 47: [2, 54] }, { 13: 63, 15: r, 18: [1, 62] }, t(x, [2, 84], { 57: 64 }), { 26: 65, 47: tt }, t($, [2, 56], { 30: 67 }), t($, [2, 62], { 35: 68 }), t(ft, [2, 48], { 21: 69 }), t(x, [2, 88], { 61: 70 }), { 20: 26, 33: [2, 78], 49: 72, 51: 71, 63: 27, 64: a, 68: 73, 69: 74, 70: 75, 71: V, 77: 28, 78: 29, 79: u, 80: i, 81: l, 82: g, 83: h, 84: m, 85: 36 }, t(et, [2, 92], { 65: 77 }), { 71: [1, 78] }, t(B, [2, 40], { 86: U }), { 20: 26, 49: 80, 54: 79, 55: [2, 82], 63: 27, 64: a, 68: 81, 69: 74, 70: 75, 71: V, 77: 28, 78: 29, 79: u, 80: i, 81: l, 82: g, 83: h, 84: m, 85: 36 }, { 26: 82, 47: tt }, { 47: [2, 53] }, t(A, e, { 6: 3, 4: 83 }), { 47: [2, 20] }, { 20: 84, 71: s, 77: 28, 78: 29, 79: u, 80: i, 81: l, 82: g, 83: h, 84: m, 85: 36 }, t(T, e, { 6: 3, 4: 85 }), { 26: 86, 47: tt }, { 47: [2, 55] }, t(n, [2, 11]), t(C, [2, 47]), { 20: 26, 33: [2, 86], 49: 88, 58: 87, 63: 27, 64: a, 68: 89, 69: 74, 70: 75, 71: V, 77: 28, 78: 29, 79: u, 80: i, 81: l, 82: g, 83: h, 84: m, 85: 36 }, t(n, [2, 25]), { 20: 90, 71: s, 77: 28, 78: 29, 79: u, 80: i, 81: l, 82: g, 83: h, 84: m, 85: 36 }, t(P, [2, 58], { 20: 26, 63: 27, 77: 28, 78: 29, 85: 36, 69: 74, 70: 75, 31: 91, 49: 92, 68: 93, 64: a, 71: V, 79: u, 80: i, 81: l, 82: g, 83: h, 84: m }), t(P, [2, 64], { 20: 26, 63: 27, 77: 28, 78: 29, 85: 36, 69: 74, 70: 75, 36: 94, 49: 95, 68: 96, 64: a, 71: V, 79: u, 80: i, 81: l, 82: g, 83: h, 84: m }), { 20: 26, 22: 97, 23: [2, 50], 49: 98, 63: 27, 64: a, 68: 99, 69: 74, 70: 75, 71: V, 77: 28, 78: 29, 79: u, 80: i, 81: l, 82: g, 83: h, 84: m, 85: 36 }, { 20: 26, 33: [2, 90], 49: 101, 62: 100, 63: 27, 64: a, 68: 102, 69: 74, 70: 75, 71: V, 77: 28, 78: 29, 79: u, 80: i, 81: l, 82: g, 83: h, 84: m, 85: 36 }, { 33: [1, 103] }, t(x, [2, 77]), { 33: [2, 79] }, t([23, 33, 55, 67, 74], [2, 30], { 70: 104, 71: [1, 105] }), t(rt, [2, 96]), t(j, J, { 72: Vt }), { 20: 26, 49: 108, 63: 27, 64: a, 66: 107, 67: [2, 94], 68: 109, 69: 74, 70: 75, 71: V, 77: 28, 78: 29, 79: u, 80: i, 81: l, 82: g, 83: h, 84: m, 85: 36 }, t(j, [2, 42]), { 55: [1, 110] }, t(dt, [2, 81]), { 55: [2, 83] }, t(n, [2, 13]), { 38: 56, 39: mt, 43: 57, 44: Y, 45: 112, 46: 111, 47: [2, 74] }, t($, [2, 68], { 40: 113 }), { 47: [2, 18] }, t(n, [2, 14]), { 33: [1, 114] }, t(x, [2, 85]), { 33: [2, 87] }, { 33: [1, 115] }, { 32: 116, 33: [2, 60], 73: 117, 74: se }, t($, [2, 57]), t(P, [2, 59]), { 33: [2, 66], 37: 119, 73: 120, 74: se }, t($, [2, 63]), t(P, [2, 65]), { 23: [1, 121] }, t(ft, [2, 49]), { 23: [2, 51] }, { 33: [1, 122] }, t(x, [2, 89]), { 33: [2, 91] }, t(n, [2, 22]), t(rt, [2, 97]), { 72: Vt }, { 20: 26, 49: 123, 63: 27, 64: a, 71: s, 77: 28, 78: 29, 79: u, 80: i, 81: l, 82: g, 83: h, 84: m, 85: 36 }, { 67: [1, 124] }, t(et, [2, 93]), { 67: [2, 95] }, t(n, [2, 23]), { 47: [2, 19] }, { 47: [2, 75] }, t(P, [2, 70], { 20: 26, 63: 27, 77: 28, 78: 29, 85: 36, 69: 74, 70: 75, 41: 125, 49: 126, 68: 127, 64: a, 71: V, 79: u, 80: i, 81: l, 82: g, 83: h, 84: m }), t(n, [2, 24]), t(n, [2, 21]), { 33: [1, 128] }, { 33: [2, 61] }, { 71: [1, 130], 75: 129 }, { 33: [1, 131] }, { 33: [2, 67] }, t(C, [2, 12]), t(T, [2, 26]), t(rt, [2, 31]), t(B, [2, 29]), { 33: [2, 72], 42: 132, 73: 133, 74: se }, t($, [2, 69]), t(P, [2, 71]), t(A, [2, 15]), { 71: [1, 135], 76: [1, 134] }, t(Qe, [2, 98]), t(y, [2, 16]), { 33: [1, 136] }, { 33: [2, 73] }, { 33: [2, 32] }, t(Qe, [2, 99]), t(A, [2, 17])], defaultActions: { 4: [2, 1], 55: [2, 53], 57: [2, 20], 61: [2, 55], 73: [2, 79], 81: [2, 83], 85: [2, 18], 89: [2, 87], 99: [2, 51], 102: [2, 91], 109: [2, 95], 111: [2, 19], 112: [2, 75], 117: [2, 61], 120: [2, 67], 133: [2, 73], 134: [2, 32] }, parseError: function(G, p) {
706
- if (p.recoverable) this.trace(G);
428
+ }, table: [t([5, 14, 15, 19, 29, 34, 48, 53, 57, 61], e, { 3: 1, 4: 2, 6: 3 }), { 1: [3] }, { 5: [1, 4] }, t([5, 39, 44, 47], [2, 2], { 7: 5, 8: 6, 9: 7, 10: 8, 11: 9, 12: 10, 13: 11, 24: 15, 27: 16, 16: 17, 60: 19, 14: [1, 12], 15: r, 19: [1, 23], 29: [1, 21], 34: [1, 22], 48: [1, 13], 53: [1, 14], 57: [1, 18], 61: [1, 24] }), { 1: [2, 1] }, t(n, [2, 53]), t(n, [2, 3]), t(n, [2, 4]), t(n, [2, 5]), t(n, [2, 6]), t(n, [2, 7]), t(n, [2, 8]), t(n, [2, 9]), { 20: 28, 49: 25, 50: 26, 64: 29, 65: 38, 66: 39, 67: a, 71: 27, 72: 30, 73: s, 75: u, 82: 31, 83: 32, 84: i, 85: l, 86: h, 87: f, 88: m, 89: A, 90: 41 }, { 20: 28, 50: 45, 64: 29, 65: 38, 66: 39, 67: a, 73: d, 75: u, 82: 31, 83: 32, 84: i, 85: l, 86: h, 87: f, 88: m, 89: A, 90: 41 }, t(v, e, { 6: 3, 4: 47 }), t(w, e, { 6: 3, 4: 48 }), t(S, [2, 54], { 17: 49 }), { 20: 28, 50: 50, 64: 29, 65: 38, 66: 39, 67: a, 73: d, 75: u, 82: 31, 83: 32, 84: i, 85: l, 86: h, 87: f, 88: m, 89: A, 90: 41 }, t(B, e, { 6: 3, 4: 51 }), t([5, 14, 15, 18, 19, 29, 34, 39, 44, 47, 48, 53, 57, 61], [2, 10]), { 20: 52, 64: 53, 65: 38, 66: 39, 67: a, 73: d, 75: u, 82: 31, 83: 32, 84: i, 85: l, 86: h, 87: f, 88: m, 89: A, 90: 41 }, { 20: 54, 64: 53, 65: 38, 66: 39, 67: a, 73: d, 75: u, 82: 31, 83: 32, 84: i, 85: l, 86: h, 87: f, 88: m, 89: A, 90: 41 }, { 20: 55, 64: 53, 65: 38, 66: 39, 67: a, 73: d, 75: u, 82: 31, 83: 32, 84: i, 85: l, 86: h, 87: f, 88: m, 89: A, 90: 41 }, { 20: 28, 50: 56, 64: 29, 65: 38, 66: 39, 67: a, 73: d, 75: u, 82: 31, 83: 32, 84: i, 85: l, 86: h, 87: f, 88: m, 89: A, 90: 41 }, { 33: [1, 57] }, t(x, [2, 84], { 51: 58 }), t([23, 33, 56, 68, 79], [2, 34], { 72: 59, 73: [1, 60] }), t(P, [2, 28]), t(P, [2, 29], { 91: 61, 92: R, 93: V }), t(ot, [2, 104]), t(P, [2, 38]), t(P, [2, 39]), t(P, [2, 40]), t(P, [2, 41]), t(P, [2, 42]), t(P, [2, 43]), t(P, [2, 44]), t(H, [2, 30]), t(H, [2, 31]), t([23, 33, 56, 67, 68, 73, 75, 79, 84, 85, 86, 87, 88, 89, 92, 93], tt, { 74: lt }), t(P, [2, 49], { 91: 65, 92: R, 93: V }), { 73: d, 90: 66 }, t(Y, [2, 106], { 76: 67 }), { 20: 28, 49: 68, 50: 69, 64: 29, 65: 38, 66: 39, 67: a, 71: 27, 72: 30, 73: s, 75: u, 82: 31, 83: 32, 84: i, 85: l, 86: h, 87: f, 88: m, 89: A, 90: 41 }, t(mt, [2, 88], { 54: 70 }), t(H, tt), { 25: 71, 38: 73, 39: gt, 43: 74, 44: Z, 45: 72, 47: [2, 60] }, { 28: 77, 43: 78, 44: Z, 47: [2, 62] }, { 13: 80, 15: r, 18: [1, 79] }, t(x, [2, 92], { 58: 81 }), { 26: 82, 47: _ }, t(z, [2, 64], { 30: 84 }), { 91: 61, 92: R, 93: V }, t(z, [2, 70], { 35: 85 }), t($t, [2, 56], { 21: 86 }), t(x, [2, 96], { 62: 87 }), t(n, [2, 22]), { 20: 28, 33: [2, 86], 49: 90, 50: 89, 52: 88, 64: 29, 65: 38, 66: 39, 67: a, 71: 27, 72: 30, 73: s, 75: u, 82: 31, 83: 32, 84: i, 85: l, 86: h, 87: f, 88: m, 89: A, 90: 41 }, t(ot, [2, 105]), { 74: lt }, { 73: d, 90: 91 }, { 73: [2, 46] }, { 73: [2, 47] }, { 20: 28, 50: 92, 64: 29, 65: 38, 66: 39, 67: a, 73: d, 75: u, 82: 31, 83: 32, 84: i, 85: l, 86: h, 87: f, 88: m, 89: A, 90: 41 }, { 73: [1, 93] }, t(P, [2, 45], { 91: 65, 92: R, 93: V }), { 20: 28, 50: 95, 64: 29, 65: 38, 66: 39, 67: a, 73: d, 75: u, 77: [1, 94], 82: 31, 83: 32, 84: i, 85: l, 86: h, 87: f, 88: m, 89: A, 90: 41 }, { 68: [1, 96] }, t(Qe, [2, 100], { 69: 97 }), { 20: 28, 49: 100, 50: 99, 55: 98, 56: [2, 90], 64: 29, 65: 38, 66: 39, 67: a, 71: 27, 72: 30, 73: s, 75: u, 82: 31, 83: 32, 84: i, 85: l, 86: h, 87: f, 88: m, 89: A, 90: 41 }, { 26: 101, 47: _ }, { 47: [2, 61] }, t(v, e, { 6: 3, 4: 102 }), { 47: [2, 20] }, { 20: 103, 64: 53, 65: 38, 66: 39, 67: a, 73: d, 75: u, 82: 31, 83: 32, 84: i, 85: l, 86: h, 87: f, 88: m, 89: A, 90: 41 }, t(B, e, { 6: 3, 4: 104 }), { 26: 105, 47: _ }, { 47: [2, 63] }, t(n, [2, 11]), t(S, [2, 55]), { 20: 28, 33: [2, 94], 49: 108, 50: 107, 59: 106, 64: 29, 65: 38, 66: 39, 67: a, 71: 27, 72: 30, 73: s, 75: u, 82: 31, 83: 32, 84: i, 85: l, 86: h, 87: f, 88: m, 89: A, 90: 41 }, t(n, [2, 26]), { 20: 109, 64: 53, 65: 38, 66: 39, 67: a, 73: d, 75: u, 82: 31, 83: 32, 84: i, 85: l, 86: h, 87: f, 88: m, 89: A, 90: 41 }, t(yt, [2, 66], { 71: 27, 20: 28, 64: 29, 72: 30, 82: 31, 83: 32, 65: 38, 66: 39, 90: 41, 31: 110, 50: 111, 49: 112, 67: a, 73: s, 75: u, 84: i, 85: l, 86: h, 87: f, 88: m, 89: A }), t(yt, [2, 72], { 71: 27, 20: 28, 64: 29, 72: 30, 82: 31, 83: 32, 65: 38, 66: 39, 90: 41, 36: 113, 50: 114, 49: 115, 67: a, 73: s, 75: u, 84: i, 85: l, 86: h, 87: f, 88: m, 89: A }), { 20: 28, 22: 116, 23: [2, 58], 49: 118, 50: 117, 64: 29, 65: 38, 66: 39, 67: a, 71: 27, 72: 30, 73: s, 75: u, 82: 31, 83: 32, 84: i, 85: l, 86: h, 87: f, 88: m, 89: A, 90: 41 }, { 20: 28, 33: [2, 98], 49: 121, 50: 120, 63: 119, 64: 29, 65: 38, 66: 39, 67: a, 71: 27, 72: 30, 73: s, 75: u, 82: 31, 83: 32, 84: i, 85: l, 86: h, 87: f, 88: m, 89: A, 90: 41 }, { 33: [1, 122] }, t(x, [2, 85]), { 33: [2, 87] }, t(P, [2, 48], { 91: 65, 92: R, 93: V }), t(ot, [2, 35]), t(H, [2, 50]), t(H, [2, 36]), t(Y, [2, 107]), t(H, [2, 32]), { 20: 28, 49: 125, 50: 124, 64: 29, 65: 38, 66: 39, 67: a, 68: [2, 102], 70: 123, 71: 27, 72: 30, 73: s, 75: u, 82: 31, 83: 32, 84: i, 85: l, 86: h, 87: f, 88: m, 89: A, 90: 41 }, { 56: [1, 126] }, t(mt, [2, 89]), { 56: [2, 91] }, t(n, [2, 13]), { 38: 73, 39: gt, 43: 74, 44: Z, 45: 128, 46: 127, 47: [2, 82] }, t(z, [2, 76], { 40: 129 }), { 47: [2, 18] }, t(n, [2, 14]), { 33: [1, 130] }, t(x, [2, 93]), { 33: [2, 95] }, { 33: [1, 131] }, { 32: 132, 33: [2, 68], 78: 133, 79: oe }, t(z, [2, 65]), t(yt, [2, 67]), { 33: [2, 74], 37: 135, 78: 136, 79: oe }, t(z, [2, 71]), t(yt, [2, 73]), { 23: [1, 137] }, t($t, [2, 57]), { 23: [2, 59] }, { 33: [1, 138] }, t(x, [2, 97]), { 33: [2, 99] }, t(n, [2, 23]), { 68: [1, 139] }, t(Qe, [2, 101]), { 68: [2, 103] }, t(n, [2, 24]), { 47: [2, 19] }, { 47: [2, 83] }, t(yt, [2, 78], { 71: 27, 20: 28, 64: 29, 72: 30, 82: 31, 83: 32, 65: 38, 66: 39, 90: 41, 41: 140, 50: 141, 49: 142, 67: a, 73: s, 75: u, 84: i, 85: l, 86: h, 87: f, 88: m, 89: A }), t(n, [2, 25]), t(n, [2, 21]), { 33: [1, 143] }, { 33: [2, 69] }, { 73: [1, 145], 80: 144 }, { 33: [1, 146] }, { 33: [2, 75] }, t(S, [2, 12]), t(B, [2, 27]), t(H, [2, 33]), { 33: [2, 80], 42: 147, 78: 148, 79: oe }, t(z, [2, 77]), t(yt, [2, 79]), t(v, [2, 15]), { 73: [1, 150], 81: [1, 149] }, t(Ye, [2, 108]), t(w, [2, 16]), { 33: [1, 151] }, { 33: [2, 81] }, { 33: [2, 37] }, t(Ye, [2, 109]), t(v, [2, 17])], defaultActions: { 4: [2, 1], 62: [2, 46], 63: [2, 47], 72: [2, 61], 74: [2, 20], 78: [2, 63], 90: [2, 87], 100: [2, 91], 104: [2, 18], 108: [2, 95], 118: [2, 59], 121: [2, 99], 125: [2, 103], 127: [2, 19], 128: [2, 83], 133: [2, 69], 136: [2, 75], 148: [2, 81], 149: [2, 37] }, parseError: function(W, g) {
429
+ if (g.recoverable) this.trace(W);
707
430
  else {
708
- var b = new Error(G);
709
- throw b.hash = p, b;
431
+ var b = new Error(W);
432
+ throw b.hash = g, b;
710
433
  }
711
- }, parse: function(G) {
712
- var p = this, b = [0], d = [null], E = [], o = this.table, _ = "", c = 0, Rt = 0, Ut = 0, on = 2, Je = 1, ln = E.slice.call(arguments, 1), N = Object.create(this.lexer), lt = { yy: {} };
713
- for (var oe in this.yy) Object.prototype.hasOwnProperty.call(this.yy, oe) && (lt.yy[oe] = this.yy[oe]);
714
- N.setInput(G, lt.yy), lt.yy.lexer = N, lt.yy.parser = this, typeof N.yylloc > "u" && (N.yylloc = {});
715
- var le = N.yylloc;
716
- E.push(le);
717
- var cn = N.options && N.options.ranges;
718
- typeof lt.yy.parseError == "function" ? this.parseError = lt.yy.parseError : this.parseError = Object.getPrototypeOf(this).parseError;
719
- for (var hn = function() {
720
- var bt;
721
- return bt = N.lex() || Je, typeof bt != "number" && (bt = p.symbols_[bt] || bt), bt;
722
- }, q, ce, ct, H, ou, he, gt = {}, Ht, X, Ye, Mt; ; ) {
723
- if (ct = b[b.length - 1], this.defaultActions[ct] ? H = this.defaultActions[ct] : ((q === null || typeof q > "u") && (q = hn()), H = o[ct] && o[ct][q]), typeof H > "u" || !H.length || !H[0]) {
724
- var pe = "";
434
+ }, parse: function(W) {
435
+ var g = this, b = [0], p = [null], D = [], o = this.table, F = "", c = 0, Ut = 0, Ht = 0, pn = 2, Ze = 1, dn = D.slice.call(arguments, 1), k = Object.create(this.lexer), ct = { yy: {} };
436
+ for (var he in this.yy) Object.prototype.hasOwnProperty.call(this.yy, he) && (ct.yy[he] = this.yy[he]);
437
+ k.setInput(W, ct.yy), ct.yy.lexer = k, ct.yy.parser = this, typeof k.yylloc > "u" && (k.yylloc = {});
438
+ var pe = k.yylloc;
439
+ D.push(pe);
440
+ var fn = k.options && k.options.ranges;
441
+ typeof ct.yy.parseError == "function" ? this.parseError = ct.yy.parseError : this.parseError = Object.getPrototypeOf(this).parseError;
442
+ for (var mn = function() {
443
+ var At;
444
+ return At = k.lex() || Ze, typeof At != "number" && (At = g.symbols_[At] || At), At;
445
+ }, L, de, ht, $, Os, fe, bt = {}, zt, X, Xe, Mt; ; ) {
446
+ if (ht = b[b.length - 1], this.defaultActions[ht] ? $ = this.defaultActions[ht] : ((L === null || typeof L > "u") && (L = mn()), $ = o[ht] && o[ht][L]), typeof $ > "u" || !$.length || !$[0]) {
447
+ var me = "";
725
448
  Mt = [];
726
- for (Ht in o[ct]) this.terminals_[Ht] && Ht > on && Mt.push("'" + this.terminals_[Ht] + "'");
727
- N.showPosition ? pe = "Parse error on line " + (c + 1) + `:
728
- ` + N.showPosition() + `
729
- Expecting ` + Mt.join(", ") + ", got '" + (this.terminals_[q] || q) + "'" : pe = "Parse error on line " + (c + 1) + ": Unexpected " + (q == Je ? "end of input" : "'" + (this.terminals_[q] || q) + "'"), this.parseError(pe, { text: N.match, token: this.terminals_[q] || q, line: N.yylineno, loc: le, expected: Mt });
449
+ for (zt in o[ht]) this.terminals_[zt] && zt > pn && Mt.push("'" + this.terminals_[zt] + "'");
450
+ k.showPosition ? me = "Parse error on line " + (c + 1) + `:
451
+ ` + k.showPosition() + `
452
+ Expecting ` + Mt.join(", ") + ", got '" + (this.terminals_[L] || L) + "'" : me = "Parse error on line " + (c + 1) + ": Unexpected " + (L == Ze ? "end of input" : "'" + (this.terminals_[L] || L) + "'"), this.parseError(me, { text: k.match, token: this.terminals_[L] || L, line: k.yylineno, loc: pe, expected: Mt });
730
453
  }
731
- if (H[0] instanceof Array && H.length > 1) throw new Error("Parse Error: multiple actions possible at state: " + ct + ", token: " + q);
732
- switch (H[0]) {
454
+ if ($[0] instanceof Array && $.length > 1) throw new Error("Parse Error: multiple actions possible at state: " + ht + ", token: " + L);
455
+ switch ($[0]) {
733
456
  case 1:
734
- b.push(q), d.push(N.yytext), E.push(N.yylloc), b.push(H[1]), q = null, ce ? (q = ce, ce = null) : (Rt = N.yyleng, _ = N.yytext, c = N.yylineno, le = N.yylloc, Ut > 0);
457
+ b.push(L), p.push(k.yytext), D.push(k.yylloc), b.push($[1]), L = null, de ? (L = de, de = null) : (Ut = k.yyleng, F = k.yytext, c = k.yylineno, pe = k.yylloc, Ht > 0);
735
458
  break;
736
459
  case 2:
737
- if (X = this.productions_[H[1]][1], gt.$ = d[d.length - X], gt._$ = { first_line: E[E.length - (X || 1)].first_line, last_line: E[E.length - 1].last_line, first_column: E[E.length - (X || 1)].first_column, last_column: E[E.length - 1].last_column }, cn && (gt._$.range = [E[E.length - (X || 1)].range[0], E[E.length - 1].range[1]]), he = this.performAction.apply(gt, [_, Rt, c, lt.yy, H[1], d, E].concat(ln)), typeof he < "u") return he;
738
- X && (b = b.slice(0, -1 * X * 2), d = d.slice(0, -1 * X), E = E.slice(0, -1 * X)), b.push(this.productions_[H[1]][0]), d.push(gt.$), E.push(gt._$), Ye = o[b[b.length - 2]][b[b.length - 1]], b.push(Ye);
460
+ if (X = this.productions_[$[1]][1], bt.$ = p[p.length - X], bt._$ = { first_line: D[D.length - (X || 1)].first_line, last_line: D[D.length - 1].last_line, first_column: D[D.length - (X || 1)].first_column, last_column: D[D.length - 1].last_column }, fn && (bt._$.range = [D[D.length - (X || 1)].range[0], D[D.length - 1].range[1]]), fe = this.performAction.apply(bt, [F, Ut, c, ct.yy, $[1], p, D].concat(dn)), typeof fe < "u") return fe;
461
+ X && (b = b.slice(0, -1 * X * 2), p = p.slice(0, -1 * X), D = D.slice(0, -1 * X)), b.push(this.productions_[$[1]][0]), p.push(bt.$), D.push(bt._$), Xe = o[b[b.length - 2]][b[b.length - 1]], b.push(Xe);
739
462
  break;
740
463
  case 3:
741
464
  return !0;
742
465
  }
743
466
  }
744
467
  return !0;
745
- } }, un = /* @__PURE__ */ function() {
746
- var G = { EOF: 1, parseError: function(p, b) {
747
- if (this.yy.parser) this.yy.parser.parseError(p, b);
748
- else throw new Error(p);
749
- }, setInput: function(p, b) {
750
- return this.yy = b || this.yy || {}, this._input = p, this._more = this._backtrack = this.done = !1, this.yylineno = this.yyleng = 0, this.yytext = this.matched = this.match = "", this.conditionStack = ["INITIAL"], this.yylloc = { first_line: 1, first_column: 0, last_line: 1, last_column: 0 }, this.options.ranges && (this.yylloc.range = [0, 0]), this.offset = 0, this;
468
+ } }, hn = /* @__PURE__ */ function() {
469
+ var W = { EOF: 1, parseError: function(g, b) {
470
+ if (this.yy.parser) this.yy.parser.parseError(g, b);
471
+ else throw new Error(g);
472
+ }, setInput: function(g, b) {
473
+ return this.yy = b || this.yy || {}, this._input = g, this._more = this._backtrack = this.done = !1, this.yylineno = this.yyleng = 0, this.yytext = this.matched = this.match = "", this.conditionStack = ["INITIAL"], this.yylloc = { first_line: 1, first_column: 0, last_line: 1, last_column: 0 }, this.options.ranges && (this.yylloc.range = [0, 0]), this.offset = 0, this;
751
474
  }, input: function() {
752
- var p = this._input[0];
753
- this.yytext += p, this.yyleng++, this.offset++, this.match += p, this.matched += p;
754
- var b = p.match(/(?:\r\n?|\n).*/g);
755
- return b ? (this.yylineno++, this.yylloc.last_line++) : this.yylloc.last_column++, this.options.ranges && this.yylloc.range[1]++, this._input = this._input.slice(1), p;
756
- }, unput: function(p) {
757
- var b = p.length, d = p.split(/(?:\r\n?|\n)/g);
758
- this._input = p + this._input, this.yytext = this.yytext.substr(0, this.yytext.length - b), this.offset -= b;
759
- var E = this.match.split(/(?:\r\n?|\n)/g);
760
- this.match = this.match.substr(0, this.match.length - 1), this.matched = this.matched.substr(0, this.matched.length - 1), d.length - 1 && (this.yylineno -= d.length - 1);
475
+ var g = this._input[0];
476
+ this.yytext += g, this.yyleng++, this.offset++, this.match += g, this.matched += g;
477
+ var b = g.match(/(?:\r\n?|\n).*/g);
478
+ return b ? (this.yylineno++, this.yylloc.last_line++) : this.yylloc.last_column++, this.options.ranges && this.yylloc.range[1]++, this._input = this._input.slice(1), g;
479
+ }, unput: function(g) {
480
+ var b = g.length, p = g.split(/(?:\r\n?|\n)/g);
481
+ this._input = g + this._input, this.yytext = this.yytext.substr(0, this.yytext.length - b), this.offset -= b;
482
+ var D = this.match.split(/(?:\r\n?|\n)/g);
483
+ this.match = this.match.substr(0, this.match.length - 1), this.matched = this.matched.substr(0, this.matched.length - 1), p.length - 1 && (this.yylineno -= p.length - 1);
761
484
  var o = this.yylloc.range;
762
- return this.yylloc = { first_line: this.yylloc.first_line, last_line: this.yylineno + 1, first_column: this.yylloc.first_column, last_column: d ? (d.length === E.length ? this.yylloc.first_column : 0) + E[E.length - d.length].length - d[0].length : this.yylloc.first_column - b }, this.options.ranges && (this.yylloc.range = [o[0], o[0] + this.yyleng - b]), this.yyleng = this.yytext.length, this;
485
+ return this.yylloc = { first_line: this.yylloc.first_line, last_line: this.yylineno + 1, first_column: this.yylloc.first_column, last_column: p ? (p.length === D.length ? this.yylloc.first_column : 0) + D[D.length - p.length].length - p[0].length : this.yylloc.first_column - b }, this.options.ranges && (this.yylloc.range = [o[0], o[0] + this.yyleng - b]), this.yyleng = this.yytext.length, this;
763
486
  }, more: function() {
764
487
  return this._more = !0, this;
765
488
  }, reject: function() {
@@ -767,63 +490,63 @@ Expecting ` + Mt.join(", ") + ", got '" + (this.terminals_[q] || q) + "'" : pe =
767
490
  else return this.parseError("Lexical error on line " + (this.yylineno + 1) + `. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
768
491
  ` + this.showPosition(), { text: "", token: null, line: this.yylineno });
769
492
  return this;
770
- }, less: function(p) {
771
- this.unput(this.match.slice(p));
493
+ }, less: function(g) {
494
+ this.unput(this.match.slice(g));
772
495
  }, pastInput: function() {
773
- var p = this.matched.substr(0, this.matched.length - this.match.length);
774
- return (p.length > 20 ? "..." : "") + p.substr(-20).replace(/\n/g, "");
496
+ var g = this.matched.substr(0, this.matched.length - this.match.length);
497
+ return (g.length > 20 ? "..." : "") + g.substr(-20).replace(/\n/g, "");
775
498
  }, upcomingInput: function() {
776
- var p = this.match;
777
- return p.length < 20 && (p += this._input.substr(0, 20 - p.length)), (p.substr(0, 20) + (p.length > 20 ? "..." : "")).replace(/\n/g, "");
499
+ var g = this.match;
500
+ return g.length < 20 && (g += this._input.substr(0, 20 - g.length)), (g.substr(0, 20) + (g.length > 20 ? "..." : "")).replace(/\n/g, "");
778
501
  }, showPosition: function() {
779
- var p = this.pastInput(), b = new Array(p.length + 1).join("-");
780
- return p + this.upcomingInput() + `
502
+ var g = this.pastInput(), b = new Array(g.length + 1).join("-");
503
+ return g + this.upcomingInput() + `
781
504
  ` + b + "^";
782
- }, test_match: function(p, b) {
783
- var d, E, o;
784
- if (this.options.backtrack_lexer && (o = { yylineno: this.yylineno, yylloc: { first_line: this.yylloc.first_line, last_line: this.last_line, first_column: this.yylloc.first_column, last_column: this.yylloc.last_column }, yytext: this.yytext, match: this.match, matches: this.matches, matched: this.matched, yyleng: this.yyleng, offset: this.offset, _more: this._more, _input: this._input, yy: this.yy, conditionStack: this.conditionStack.slice(0), done: this.done }, this.options.ranges && (o.yylloc.range = this.yylloc.range.slice(0))), E = p[0].match(/(?:\r\n?|\n).*/g), E && (this.yylineno += E.length), this.yylloc = { first_line: this.yylloc.last_line, last_line: this.yylineno + 1, first_column: this.yylloc.last_column, last_column: E ? E[E.length - 1].length - E[E.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + p[0].length }, this.yytext += p[0], this.match += p[0], this.matches = p, this.yyleng = this.yytext.length, this.options.ranges && (this.yylloc.range = [this.offset, this.offset += this.yyleng]), this._more = !1, this._backtrack = !1, this._input = this._input.slice(p[0].length), this.matched += p[0], d = this.performAction.call(this, this.yy, this, b, this.conditionStack[this.conditionStack.length - 1]), this.done && this._input && (this.done = !1), d) return d;
505
+ }, test_match: function(g, b) {
506
+ var p, D, o;
507
+ if (this.options.backtrack_lexer && (o = { yylineno: this.yylineno, yylloc: { first_line: this.yylloc.first_line, last_line: this.last_line, first_column: this.yylloc.first_column, last_column: this.yylloc.last_column }, yytext: this.yytext, match: this.match, matches: this.matches, matched: this.matched, yyleng: this.yyleng, offset: this.offset, _more: this._more, _input: this._input, yy: this.yy, conditionStack: this.conditionStack.slice(0), done: this.done }, this.options.ranges && (o.yylloc.range = this.yylloc.range.slice(0))), D = g[0].match(/(?:\r\n?|\n).*/g), D && (this.yylineno += D.length), this.yylloc = { first_line: this.yylloc.last_line, last_line: this.yylineno + 1, first_column: this.yylloc.last_column, last_column: D ? D[D.length - 1].length - D[D.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + g[0].length }, this.yytext += g[0], this.match += g[0], this.matches = g, this.yyleng = this.yytext.length, this.options.ranges && (this.yylloc.range = [this.offset, this.offset += this.yyleng]), this._more = !1, this._backtrack = !1, this._input = this._input.slice(g[0].length), this.matched += g[0], p = this.performAction.call(this, this.yy, this, b, this.conditionStack[this.conditionStack.length - 1]), this.done && this._input && (this.done = !1), p) return p;
785
508
  if (this._backtrack) {
786
- for (var _ in o) this[_] = o[_];
509
+ for (var F in o) this[F] = o[F];
787
510
  return !1;
788
511
  }
789
512
  return !1;
790
513
  }, next: function() {
791
514
  if (this.done) return this.EOF;
792
515
  this._input || (this.done = !0);
793
- var p, b, d, E;
516
+ var g, b, p, D;
794
517
  this._more || (this.yytext = "", this.match = "");
795
- for (var o = this._currentRules(), _ = 0; _ < o.length; _++) if (d = this._input.match(this.rules[o[_]]), d && (!b || d[0].length > b[0].length)) {
796
- if (b = d, E = _, this.options.backtrack_lexer) {
797
- if (p = this.test_match(d, o[_]), p !== !1) return p;
518
+ for (var o = this._currentRules(), F = 0; F < o.length; F++) if (p = this._input.match(this.rules[o[F]]), p && (!b || p[0].length > b[0].length)) {
519
+ if (b = p, D = F, this.options.backtrack_lexer) {
520
+ if (g = this.test_match(p, o[F]), g !== !1) return g;
798
521
  if (this._backtrack) {
799
522
  b = !1;
800
523
  continue;
801
524
  } else return !1;
802
525
  } else if (!this.options.flex) break;
803
526
  }
804
- return b ? (p = this.test_match(b, o[E]), p !== !1 ? p : !1) : this._input === "" ? this.EOF : this.parseError("Lexical error on line " + (this.yylineno + 1) + `. Unrecognized text.
527
+ return b ? (g = this.test_match(b, o[D]), g !== !1 ? g : !1) : this._input === "" ? this.EOF : this.parseError("Lexical error on line " + (this.yylineno + 1) + `. Unrecognized text.
805
528
  ` + this.showPosition(), { text: "", token: null, line: this.yylineno });
806
529
  }, lex: function() {
807
- var p = this.next();
808
- return p || this.lex();
809
- }, begin: function(p) {
810
- this.conditionStack.push(p);
530
+ var g = this.next();
531
+ return g || this.lex();
532
+ }, begin: function(g) {
533
+ this.conditionStack.push(g);
811
534
  }, popState: function() {
812
- var p = this.conditionStack.length - 1;
813
- return p > 0 ? this.conditionStack.pop() : this.conditionStack[0];
535
+ var g = this.conditionStack.length - 1;
536
+ return g > 0 ? this.conditionStack.pop() : this.conditionStack[0];
814
537
  }, _currentRules: function() {
815
538
  return this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1] ? this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules : this.conditions.INITIAL.rules;
816
- }, topState: function(p) {
817
- return p = this.conditionStack.length - 1 - Math.abs(p || 0), p >= 0 ? this.conditionStack[p] : "INITIAL";
818
- }, pushState: function(p) {
819
- this.begin(p);
539
+ }, topState: function(g) {
540
+ return g = this.conditionStack.length - 1 - Math.abs(g || 0), g >= 0 ? this.conditionStack[g] : "INITIAL";
541
+ }, pushState: function(g) {
542
+ this.begin(g);
820
543
  }, stateStackSize: function() {
821
544
  return this.conditionStack.length;
822
- }, options: {}, performAction: function(p, b, d, E) {
823
- function o(_, c) {
824
- return b.yytext = b.yytext.substring(_, b.yyleng - c + _);
545
+ }, options: {}, performAction: function(g, b, p, D) {
546
+ function o(F, c) {
547
+ return b.yytext = b.yytext.substring(F, b.yyleng - c + F);
825
548
  }
826
- switch (d) {
549
+ switch (p) {
827
550
  case 0:
828
551
  if (b.yytext.slice(-2) === "\\\\" ? (o(0, 1), this.begin("mu")) : b.yytext.slice(-1) === "\\" ? (o(0, 1), this.begin("emu")) : this.begin("mu"), b.yytext) return 15;
829
552
  break;
@@ -840,120 +563,128 @@ Expecting ` + Mt.join(", ") + ", got '" + (this.terminals_[q] || q) + "'" : pe =
840
563
  case 6:
841
564
  return this.popState(), 14;
842
565
  case 7:
843
- return 64;
844
- case 8:
845
566
  return 67;
567
+ case 8:
568
+ return 68;
846
569
  case 9:
847
- return 19;
570
+ if (g.syntax.square === "string") this.unput(b.yytext), this.begin("escl");
571
+ else return 75;
572
+ break;
848
573
  case 10:
849
- return this.popState(), this.begin("raw"), 23;
574
+ return 77;
850
575
  case 11:
851
- return 56;
576
+ return 19;
852
577
  case 12:
853
- return 60;
578
+ return this.popState(), this.begin("raw"), 23;
854
579
  case 13:
855
- return 29;
580
+ return 57;
856
581
  case 14:
857
- return 47;
582
+ return 61;
858
583
  case 15:
859
- return this.popState(), 44;
584
+ return 29;
860
585
  case 16:
861
- return this.popState(), 44;
586
+ return 47;
862
587
  case 17:
863
- return 34;
588
+ return this.popState(), 44;
864
589
  case 18:
865
- return 39;
590
+ return this.popState(), 44;
866
591
  case 19:
867
- return 52;
592
+ return 34;
868
593
  case 20:
869
- return 48;
594
+ return 39;
870
595
  case 21:
871
- this.unput(b.yytext), this.popState(), this.begin("com");
872
- break;
596
+ return 53;
873
597
  case 22:
874
- return this.popState(), 14;
875
- case 23:
876
598
  return 48;
599
+ case 23:
600
+ this.unput(b.yytext), this.popState(), this.begin("com");
601
+ break;
877
602
  case 24:
878
- return 72;
603
+ return this.popState(), 14;
879
604
  case 25:
880
- return 71;
605
+ return 48;
881
606
  case 26:
882
- return 71;
607
+ return 74;
883
608
  case 27:
884
- return 86;
609
+ return 73;
885
610
  case 28:
886
- break;
611
+ return 73;
887
612
  case 29:
888
- return this.popState(), 55;
613
+ return 93;
889
614
  case 30:
890
- return this.popState(), 33;
615
+ return 92;
891
616
  case 31:
892
- return b.yytext = o(1, 2).replace(/\\"/g, '"'), 79;
617
+ break;
893
618
  case 32:
894
- return b.yytext = o(1, 2).replace(/\\'/g, "'"), 79;
619
+ return this.popState(), 56;
895
620
  case 33:
896
- return 84;
621
+ return this.popState(), 33;
897
622
  case 34:
898
- return 81;
623
+ return b.yytext = o(1, 2).replace(/\\"/g, '"'), 84;
899
624
  case 35:
900
- return 81;
625
+ return b.yytext = o(1, 2).replace(/\\'/g, "'"), 84;
901
626
  case 36:
902
- return 82;
627
+ return 89;
903
628
  case 37:
904
- return 83;
629
+ return 86;
905
630
  case 38:
906
- return 80;
631
+ return 86;
907
632
  case 39:
908
- return 74;
633
+ return 87;
909
634
  case 40:
910
- return 76;
635
+ return 88;
911
636
  case 41:
912
- return 71;
637
+ return 85;
913
638
  case 42:
914
- return b.yytext = b.yytext.replace(/\\([\\\]])/g, "$1"), 71;
639
+ return 79;
915
640
  case 43:
916
- return "INVALID";
641
+ return 81;
917
642
  case 44:
643
+ return 73;
644
+ case 45:
645
+ return b.yytext = b.yytext.replace(/\\([\\\]])/g, "$1"), this.popState(), 73;
646
+ case 46:
647
+ return "INVALID";
648
+ case 47:
918
649
  return 5;
919
650
  }
920
- }, rules: [/^(?:[^\x00]*?(?=(\{\{)))/, /^(?:[^\x00]+)/, /^(?:[^\x00]{2,}?(?=(\{\{|\\\{\{|\\\\\{\{|$)))/, /^(?:\{\{\{\{(?=[^/]))/, /^(?:\{\{\{\{\/[^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=[=}\s\/.])\}\}\}\})/, /^(?:[^\x00]+?(?=(\{\{\{\{)))/, /^(?:[\s\S]*?--(~)?\}\})/, /^(?:\()/, /^(?:\))/, /^(?:\{\{\{\{)/, /^(?:\}\}\}\})/, /^(?:\{\{(~)?>)/, /^(?:\{\{(~)?#>)/, /^(?:\{\{(~)?#\*?)/, /^(?:\{\{(~)?\/)/, /^(?:\{\{(~)?\^\s*(~)?\}\})/, /^(?:\{\{(~)?\s*else\s*(~)?\}\})/, /^(?:\{\{(~)?\^)/, /^(?:\{\{(~)?\s*else\b)/, /^(?:\{\{(~)?\{)/, /^(?:\{\{(~)?&)/, /^(?:\{\{(~)?!--)/, /^(?:\{\{(~)?![\s\S]*?\}\})/, /^(?:\{\{(~)?\*?)/, /^(?:=)/, /^(?:\.\.)/, /^(?:\.(?=([=~}\s\/.)|])))/, /^(?:[\/.])/, /^(?:\s+)/, /^(?:\}(~)?\}\})/, /^(?:(~)?\}\})/, /^(?:"(\\["]|[^"])*")/, /^(?:'(\\[']|[^'])*')/, /^(?:@)/, /^(?:true(?=([~}\s)])))/, /^(?:false(?=([~}\s)])))/, /^(?:undefined(?=([~}\s)])))/, /^(?:null(?=([~}\s)])))/, /^(?:-?[0-9]+(?:\.[0-9]+)?(?=([~}\s)])))/, /^(?:as\s+\|)/, /^(?:\|)/, /^(?:([^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=([=~}\s\/.)|]))))/, /^(?:\[(\\\]|[^\]])*\])/, /^(?:.)/, /^(?:$)/], conditions: { mu: { rules: [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44], inclusive: !1 }, emu: { rules: [2], inclusive: !1 }, com: { rules: [6], inclusive: !1 }, raw: { rules: [3, 4, 5], inclusive: !1 }, INITIAL: { rules: [0, 1, 44], inclusive: !0 } } };
921
- return G;
651
+ }, rules: [/^(?:[^\x00]*?(?=(\{\{)))/, /^(?:[^\x00]+)/, /^(?:[^\x00]{2,}?(?=(\{\{|\\\{\{|\\\\\{\{|$)))/, /^(?:\{\{\{\{(?=[^/]))/, /^(?:\{\{\{\{\/[^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=[=}\s\/.])\}\}\}\})/, /^(?:[^\x00]+?(?=(\{\{\{\{)))/, /^(?:[\s\S]*?--(~)?\}\})/, /^(?:\()/, /^(?:\))/, /^(?:\[)/, /^(?:\])/, /^(?:\{\{\{\{)/, /^(?:\}\}\}\})/, /^(?:\{\{(~)?>)/, /^(?:\{\{(~)?#>)/, /^(?:\{\{(~)?#\*?)/, /^(?:\{\{(~)?\/)/, /^(?:\{\{(~)?\^\s*(~)?\}\})/, /^(?:\{\{(~)?\s*else\s*(~)?\}\})/, /^(?:\{\{(~)?\^)/, /^(?:\{\{(~)?\s*else\b)/, /^(?:\{\{(~)?\{)/, /^(?:\{\{(~)?&)/, /^(?:\{\{(~)?!--)/, /^(?:\{\{(~)?![\s\S]*?\}\})/, /^(?:\{\{(~)?\*?)/, /^(?:=)/, /^(?:\.\.)/, /^(?:\.(?=([=~}\s\/.)\]|])))/, /^(?:\.#)/, /^(?:[\/.])/, /^(?:\s+)/, /^(?:\}(~)?\}\})/, /^(?:(~)?\}\})/, /^(?:"(\\["]|[^"])*")/, /^(?:'(\\[']|[^'])*')/, /^(?:@)/, /^(?:true(?=([~}\s)\]])))/, /^(?:false(?=([~}\s)\]])))/, /^(?:undefined(?=([~}\s)\]])))/, /^(?:null(?=([~}\s)\]])))/, /^(?:-?[0-9]+(?:\.[0-9]+)?(?=([~}\s)\]])))/, /^(?:as\s+\|)/, /^(?:\|)/, /^(?:([^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=([=~}\s\/.)\]|]))))/, /^(?:\[(\\\]|[^\]])*\])/, /^(?:.)/, /^(?:$)/], conditions: { mu: { rules: [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 46, 47], inclusive: !1 }, emu: { rules: [2], inclusive: !1 }, com: { rules: [6], inclusive: !1 }, raw: { rules: [3, 4, 5], inclusive: !1 }, escl: { rules: [45], inclusive: !1 }, INITIAL: { rules: [0, 1, 47], inclusive: !0 } } };
652
+ return W;
922
653
  }();
923
- ue.lexer = un;
924
- function ie() {
654
+ le.lexer = hn;
655
+ function ce() {
925
656
  this.yy = {};
926
657
  }
927
- return ie.prototype = ue, ue.Parser = ie, new ie();
928
- }(), de = _a, me = ["description", "fileName", "lineNumber", "endLineNumber", "message", "name", "number", "stack"];
929
- function ze(t, e) {
658
+ return ce.prototype = le, le.Parser = ce, new ce();
659
+ }(), jt = ra, Ae = ["description", "fileName", "lineNumber", "endLineNumber", "message", "name", "number", "stack"];
660
+ function Ue(t, e) {
930
661
  var r = e && e.loc, n, a, s, u;
931
662
  r && (n = r.start.line, a = r.end.line, s = r.start.column, u = r.end.column, t += " - " + n + ":" + s);
932
- for (var i = Error.prototype.constructor.call(this, t), l = 0; l < me.length; l++) this[me[l]] = i[me[l]];
933
- Error.captureStackTrace && Error.captureStackTrace(this, ze);
663
+ for (var i = Error.prototype.constructor.call(this, t), l = 0; l < Ae.length; l++) this[Ae[l]] = i[Ae[l]];
664
+ Error.captureStackTrace && Error.captureStackTrace(this, Ue);
934
665
  try {
935
666
  r && (this.lineNumber = n, this.endLineNumber = a, Object.defineProperty ? (Object.defineProperty(this, "column", { value: s, enumerable: !0 }), Object.defineProperty(this, "endColumn", { value: u, enumerable: !0 })) : (this.column = s, this.endColumn = u));
936
667
  } catch {
937
668
  }
938
669
  }
939
- ze.prototype = new Error();
940
- var Et = ze;
670
+ Ue.prototype = new Error();
671
+ var St = Ue;
941
672
  function Kt() {
942
673
  this.parents = [];
943
674
  }
944
675
  Kt.prototype = { constructor: Kt, mutating: !1, acceptKey: function(t, e) {
945
676
  var r = this.accept(t[e]);
946
677
  if (this.mutating) {
947
- if (r && !Kt.prototype[r.type]) throw new Et('Unexpected node type "' + r.type + '" found when accepting ' + e + " on " + t.type);
678
+ if (r && !Kt.prototype[r.type]) throw new St('Unexpected node type "' + r.type + '" found when accepting ' + e + " on " + t.type);
948
679
  t[e] = r;
949
680
  }
950
681
  }, acceptRequired: function(t, e) {
951
- if (this.acceptKey(t, e), !t[e]) throw new Et(t.type + " requires " + e);
682
+ if (this.acceptKey(t, e), !t[e]) throw new St(t.type + " requires " + e);
952
683
  }, acceptArray: function(t) {
953
684
  for (var e = 0, r = t.length; e < r; e++) this.acceptKey(t, e), t[e] || (t.splice(e, 1), e--, r--);
954
685
  }, accept: function(t) {
955
686
  if (t) {
956
- if (!this[t.type]) throw new Et("Unknown type: " + t.type, t);
687
+ if (!this[t.type]) throw new St("Unknown type: " + t.type, t);
957
688
  this.current && this.parents.unshift(this.current), this.current = t;
958
689
  var e = this[t.type](t);
959
690
  if (this.current = this.parents.shift(), !this.mutating || e) return e;
@@ -961,11 +692,11 @@ Kt.prototype = { constructor: Kt, mutating: !1, acceptKey: function(t, e) {
961
692
  }
962
693
  }, Program: function(t) {
963
694
  this.acceptArray(t.body);
964
- }, MustacheStatement: Qt, Decorator: Qt, BlockStatement: hr, DecoratorBlock: hr, PartialStatement: pr, PartialBlockStatement: function(t) {
965
- pr.call(this, t), this.acceptKey(t, "program");
695
+ }, MustacheStatement: Jt, Decorator: Jt, BlockStatement: ur, DecoratorBlock: ur, PartialStatement: ir, PartialBlockStatement: function(t) {
696
+ ir.call(this, t), this.acceptKey(t, "program");
966
697
  }, ContentStatement: function() {
967
698
  }, CommentStatement: function() {
968
- }, SubExpression: Qt, PathExpression: function() {
699
+ }, SubExpression: Jt, PathExpression: function() {
969
700
  }, StringLiteral: function() {
970
701
  }, NumberLiteral: function() {
971
702
  }, BooleanLiteral: function() {
@@ -976,28 +707,28 @@ Kt.prototype = { constructor: Kt, mutating: !1, acceptKey: function(t, e) {
976
707
  }, HashPair: function(t) {
977
708
  this.acceptRequired(t, "value");
978
709
  } };
979
- function Qt(t) {
710
+ function Jt(t) {
980
711
  this.acceptRequired(t, "path"), this.acceptArray(t.params), this.acceptKey(t, "hash");
981
712
  }
982
- function hr(t) {
983
- Qt.call(this, t), this.acceptKey(t, "program"), this.acceptKey(t, "inverse");
713
+ function ur(t) {
714
+ Jt.call(this, t), this.acceptKey(t, "program"), this.acceptKey(t, "inverse");
984
715
  }
985
- function pr(t) {
716
+ function ir(t) {
986
717
  this.acceptRequired(t, "name"), this.acceptArray(t.params), this.acceptKey(t, "hash");
987
718
  }
988
- var qa = Kt;
719
+ var na = Kt;
989
720
  function Q(t) {
990
721
  t === void 0 && (t = {}), this.options = t;
991
722
  }
992
- Q.prototype = new qa();
723
+ Q.prototype = new na();
993
724
  Q.prototype.Program = function(t) {
994
725
  var e = !this.options.ignoreStandalone, r = !this.isRootSeen;
995
726
  this.isRootSeen = !0;
996
727
  for (var n = t.body, a = 0, s = n.length; a < s; a++) {
997
728
  var u = n[a], i = this.accept(u);
998
729
  if (i) {
999
- var l = Ce(n, a, r), g = Se(n, a, r), h = i.openStandalone && l, m = i.closeStandalone && g, A = i.inlineStandalone && l && g;
1000
- i.close && ht(n, a, !0), i.open && at(n, a, !0), e && A && (ht(n, a), at(n, a) && u.type === "PartialStatement" && (u.indent = /([ \t]+$)/.exec(n[a - 1].original)[1])), e && h && (ht((u.program || u.inverse).body), at(n, a)), e && m && (ht(n, a), at((u.inverse || u.program).body));
730
+ var l = Be(n, a, r), h = ke(n, a, r), f = i.openStandalone && l, m = i.closeStandalone && h, A = i.inlineStandalone && l && h;
731
+ i.close && pt(n, a, !0), i.open && at(n, a, !0), e && A && (pt(n, a), at(n, a) && u.type === "PartialStatement" && (u.indent = /([ \t]+$)/.exec(n[a - 1].original)[1])), e && f && (pt((u.program || u.inverse).body), at(n, a)), e && m && (pt(n, a), at((u.inverse || u.program).body));
1001
732
  }
1002
733
  }
1003
734
  return t;
@@ -1006,10 +737,10 @@ Q.prototype.BlockStatement = Q.prototype.DecoratorBlock = Q.prototype.PartialBlo
1006
737
  this.accept(t.program), this.accept(t.inverse);
1007
738
  var e = t.program || t.inverse, r = t.program && t.inverse, n = r, a = r;
1008
739
  if (r && r.chained) for (n = r.body[0].program; a.chained; ) a = a.body[a.body.length - 1].program;
1009
- var s = { open: t.openStrip.open, close: t.closeStrip.close, openStandalone: Se(e.body), closeStandalone: Ce((n || e).body) };
1010
- if (t.openStrip.close && ht(e.body, null, !0), r) {
740
+ var s = { open: t.openStrip.open, close: t.closeStrip.close, openStandalone: ke(e.body), closeStandalone: Be((n || e).body) };
741
+ if (t.openStrip.close && pt(e.body, null, !0), r) {
1011
742
  var u = t.inverseStrip;
1012
- u.open && at(e.body, null, !0), u.close && ht(n.body, null, !0), t.closeStrip.open && at(a.body, null, !0), !this.options.ignoreStandalone && Ce(e.body) && Se(n.body) && (at(e.body), ht(n.body));
743
+ u.open && at(e.body, null, !0), u.close && pt(n.body, null, !0), t.closeStrip.open && at(a.body, null, !0), !this.options.ignoreStandalone && Be(e.body) && ke(n.body) && (at(e.body), pt(n.body));
1013
744
  } else t.closeStrip.open && at(e.body, null, !0);
1014
745
  return s;
1015
746
  };
@@ -1020,19 +751,19 @@ Q.prototype.PartialStatement = Q.prototype.CommentStatement = function(t) {
1020
751
  var e = t.strip || {};
1021
752
  return { inlineStandalone: !0, open: e.open, close: e.close };
1022
753
  };
1023
- function Ce(t, e, r) {
754
+ function Be(t, e, r) {
1024
755
  e === void 0 && (e = t.length);
1025
756
  var n = t[e - 1], a = t[e - 2];
1026
757
  if (!n) return r;
1027
758
  if (n.type === "ContentStatement") return (a || !r ? /\r?\n\s*?$/ : /(^|\r?\n)\s*?$/).test(n.original);
1028
759
  }
1029
- function Se(t, e, r) {
760
+ function ke(t, e, r) {
1030
761
  e === void 0 && (e = -1);
1031
762
  var n = t[e + 1], a = t[e + 2];
1032
763
  if (!n) return r;
1033
764
  if (n.type === "ContentStatement") return (a || !r ? /^\s*?\r?\n/ : /^\s*?(\r?\n|$)/).test(n.original);
1034
765
  }
1035
- function ht(t, e, r) {
766
+ function pt(t, e, r) {
1036
767
  var n = t[e == null ? 0 : e + 1];
1037
768
  if (!(!n || n.type !== "ContentStatement" || !r && n.rightStripped)) {
1038
769
  var a = n.value;
@@ -1046,107 +777,123 @@ function at(t, e, r) {
1046
777
  return n.value = n.value.replace(r ? /\s+$/ : /[ \t]+$/, ""), n.leftStripped = n.value !== a, n.leftStripped;
1047
778
  }
1048
779
  }
1049
- var Ia = Q, Jt = {};
1050
- Pe(Jt, { SourceLocation: () => Wr, id: () => Oa, prepareBlock: () => Ma, prepareMustache: () => Ua, preparePartialBlock: () => ja, preparePath: () => Ra, prepareProgram: () => za, prepareRawBlock: () => Ha, stripComment: () => Va, stripFlags: () => $a });
1051
- function je(t, e) {
780
+ var aa = Q, Qt = {};
781
+ qe(Qt, { SourceLocation: () => jr, id: () => ua, prepareBlock: () => pa, prepareMustache: () => ca, preparePartialBlock: () => fa, preparePath: () => la, prepareProgram: () => da, prepareRawBlock: () => ha, stripComment: () => oa, stripFlags: () => ia });
782
+ var sa = function(t, e, r) {
783
+ for (var n = 0, a = e.length, s; n < a; n++) (s || !(n in e)) && (s || (s = Array.prototype.slice.call(e, 0, n)), s[n] = e[n]);
784
+ return t.concat(s || Array.prototype.slice.call(e));
785
+ };
786
+ function He(t, e) {
1052
787
  if (e = e.path ? e.path.original : e, t.path.original !== e) {
1053
788
  var r = { loc: t.path.loc };
1054
- throw new Et(t.path.original + " doesn't match " + e, r);
789
+ throw new St(t.path.original + " doesn't match " + e, r);
1055
790
  }
1056
791
  }
1057
- function Wr(t, e) {
792
+ function jr(t, e) {
1058
793
  this.source = t, this.start = { line: e.first_line, column: e.first_column }, this.end = { line: e.last_line, column: e.last_column };
1059
794
  }
1060
- function Oa(t) {
795
+ function ua(t) {
1061
796
  return /^\[.*\]$/.test(t) ? t.substring(1, t.length - 1) : t;
1062
797
  }
1063
- function $a(t, e) {
798
+ function ia(t, e) {
1064
799
  return { open: t.charAt(2) === "~", close: e.charAt(e.length - 3) === "~" };
1065
800
  }
1066
- function Va(t) {
801
+ function oa(t) {
1067
802
  return t.replace(/^\{\{~?!-?-?/, "").replace(/-?-?~?\}\}$/, "");
1068
803
  }
1069
- function Ra(t, e, r) {
1070
- r = this.locInfo(r);
1071
- for (var n = t ? "@" : "", a = [], s = 0, u = 0, i = e.length; u < i; u++) {
1072
- var l = e[u].part, g = e[u].original !== l;
1073
- if (n += (e[u].separator || "") + l, !g && (l === ".." || l === "." || l === "this")) {
1074
- if (a.length > 0) throw new Et("Invalid path: " + n, { loc: r });
1075
- l === ".." && s++;
1076
- } else a.push(l);
1077
- }
1078
- return { type: "PathExpression", data: t, depth: s, parts: a, original: n, loc: r };
1079
- }
1080
- function Ua(t, e, r, n, a, s) {
804
+ function la(t, e, r, n) {
805
+ n = this.locInfo(n);
806
+ var a;
807
+ t ? a = "@" : e ? a = e.original + "." : a = "";
808
+ for (var s = [], u = 0, i = 0, l = r.length; i < l; i++) {
809
+ var h = r[i].part, f = r[i].original !== h, m = r[i].separator, A = m === ".#" ? "#" : "";
810
+ if (a += (m || "") + h, !f && (h === ".." || h === "." || h === "this")) {
811
+ if (s.length > 0) throw new St("Invalid path: " + a, { loc: n });
812
+ h === ".." && u++;
813
+ } else s.push("".concat(A).concat(h));
814
+ }
815
+ var d = e || s.shift();
816
+ return { type: "PathExpression", this: a.startsWith("this."), data: t, depth: u, head: d, tail: s, parts: d ? sa([d], s) : s, original: a, loc: n };
817
+ }
818
+ function ca(t, e, r, n, a, s) {
1081
819
  var u = n.charAt(3) || n.charAt(2), i = u !== "{" && u !== "&", l = /\*/.test(n);
1082
820
  return { type: l ? "Decorator" : "MustacheStatement", path: t, params: e, hash: r, escaped: i, strip: a, loc: this.locInfo(s) };
1083
821
  }
1084
- function Ha(t, e, r, n) {
1085
- je(t, r), n = this.locInfo(n);
822
+ function ha(t, e, r, n) {
823
+ He(t, r), n = this.locInfo(n);
1086
824
  var a = { type: "Program", body: e, strip: {}, loc: n };
1087
825
  return { type: "BlockStatement", path: t.path, params: t.params, hash: t.hash, program: a, openStrip: {}, inverseStrip: {}, closeStrip: {}, loc: n };
1088
826
  }
1089
- function Ma(t, e, r, n, a, s) {
1090
- n && n.path && je(t, n);
827
+ function pa(t, e, r, n, a, s) {
828
+ n && n.path && He(t, n);
1091
829
  var u = /\*/.test(t.open);
1092
830
  e.blockParams = t.blockParams;
1093
831
  var i, l;
1094
832
  if (r) {
1095
- if (u) throw new Et("Unexpected inverse block on decorator", r);
833
+ if (u) throw new St("Unexpected inverse block on decorator", r);
1096
834
  r.chain && (r.program.body[0].closeStrip = n.strip), l = r.strip, i = r.program;
1097
835
  }
1098
836
  return a && (a = i, i = e, e = a), { type: u ? "DecoratorBlock" : "BlockStatement", path: t.path, params: t.params, hash: t.hash, program: e, inverse: i, openStrip: t.strip, inverseStrip: l, closeStrip: n && n.strip, loc: this.locInfo(s) };
1099
837
  }
1100
- function za(t, e) {
838
+ function da(t, e) {
1101
839
  if (!e && t.length) {
1102
840
  var r = t[0].loc, n = t[t.length - 1].loc;
1103
841
  r && n && (e = { source: r.source, start: { line: r.start.line, column: r.start.column }, end: { line: n.end.line, column: n.end.column } });
1104
842
  }
1105
843
  return { type: "Program", body: t, strip: {}, loc: e };
1106
844
  }
1107
- function ja(t, e, r, n) {
1108
- return je(t, r), { type: "PartialBlockStatement", name: t.path, params: t.params, hash: t.hash, program: e, openStrip: t.strip, closeStrip: r && r.strip, loc: this.locInfo(n) };
845
+ function fa(t, e, r, n) {
846
+ return He(t, r), { type: "PartialBlockStatement", name: t.path, params: t.params, hash: t.hash, program: e, openStrip: t.strip, closeStrip: r && r.strip, loc: this.locInfo(n) };
1109
847
  }
1110
- var Kr = {};
1111
- for (jt in Jt) Object.prototype.hasOwnProperty.call(Jt, jt) && (Kr[jt] = Jt[jt]);
1112
- var jt;
1113
- function we(t, e) {
848
+ var Gr = {};
849
+ for (Gt in Qt) Object.prototype.hasOwnProperty.call(Qt, Gt) && (Gr[Gt] = Qt[Gt]);
850
+ var Gt;
851
+ function xe(t, e) {
852
+ var r, n, a;
1114
853
  if (t.type === "Program") return t;
1115
- de.yy = Kr, de.yy.locInfo = function(n) {
1116
- return new Wr(e && e.srcName, n);
854
+ jt.yy = Gr, jt.yy.locInfo = function(i) {
855
+ return new jr(e && e.srcName, i);
1117
856
  };
1118
- var r = de.parse(t);
1119
- return r;
857
+ var s;
858
+ typeof ((r = e == null ? void 0 : e.syntax) === null || r === void 0 ? void 0 : r.square) == "function" ? s = e.syntax.square : ((n = e == null ? void 0 : e.syntax) === null || n === void 0 ? void 0 : n.square) === "node" ? s = ma : s = "string";
859
+ var u;
860
+ return typeof ((a = e == null ? void 0 : e.syntax) === null || a === void 0 ? void 0 : a.hash) == "function" ? u = e.syntax.hash : u = ga, jt.yy.syntax = { square: s, hash: u }, jt.parse(t);
861
+ }
862
+ function ma(t, e) {
863
+ return { type: "ArrayLiteral", items: t, loc: e };
864
+ }
865
+ function ga(t, e) {
866
+ return { type: "HashLiteral", pairs: t.pairs, loc: e };
1120
867
  }
1121
- function dr(t, e) {
1122
- var r = we(t, e), n = new Ia(e);
868
+ function or(t, e) {
869
+ var r = xe(t, e), n = new aa(e);
1123
870
  return n.accept(r);
1124
871
  }
1125
- var Ga = { Aacute: "Á", aacute: "á", Abreve: "Ă", abreve: "ă", ac: "∾", acd: "∿", acE: "∾̳", Acirc: "Â", acirc: "â", acute: "´", Acy: "А", acy: "а", AElig: "Æ", aelig: "æ", af: "⁡", Afr: "𝔄", afr: "𝔞", Agrave: "À", agrave: "à", alefsym: "ℵ", aleph: "ℵ", Alpha: "Α", alpha: "α", Amacr: "Ā", amacr: "ā", amalg: "⨿", amp: "&", AMP: "&", andand: "⩕", And: "⩓", and: "∧", andd: "⩜", andslope: "⩘", andv: "⩚", ang: "∠", ange: "⦤", angle: "∠", angmsdaa: "⦨", angmsdab: "⦩", angmsdac: "⦪", angmsdad: "⦫", angmsdae: "⦬", angmsdaf: "⦭", angmsdag: "⦮", angmsdah: "⦯", angmsd: "∡", angrt: "∟", angrtvb: "⊾", angrtvbd: "⦝", angsph: "∢", angst: "Å", angzarr: "⍼", Aogon: "Ą", aogon: "ą", Aopf: "𝔸", aopf: "𝕒", apacir: "⩯", ap: "≈", apE: "⩰", ape: "≊", apid: "≋", apos: "'", ApplyFunction: "⁡", approx: "≈", approxeq: "≊", Aring: "Å", aring: "å", Ascr: "𝒜", ascr: "𝒶", Assign: "≔", ast: "*", asymp: "≈", asympeq: "≍", Atilde: "Ã", atilde: "ã", Auml: "Ä", auml: "ä", awconint: "∳", awint: "⨑", backcong: "≌", backepsilon: "϶", backprime: "‵", backsim: "∽", backsimeq: "⋍", Backslash: "∖", Barv: "⫧", barvee: "⊽", barwed: "⌅", Barwed: "⌆", barwedge: "⌅", bbrk: "⎵", bbrktbrk: "⎶", bcong: "≌", Bcy: "Б", bcy: "б", bdquo: "„", becaus: "∵", because: "∵", Because: "∵", bemptyv: "⦰", bepsi: "϶", bernou: "ℬ", Bernoullis: "ℬ", Beta: "Β", beta: "β", beth: "ℶ", between: "≬", Bfr: "𝔅", bfr: "𝔟", bigcap: "⋂", bigcirc: "◯", bigcup: "⋃", bigodot: "⨀", bigoplus: "⨁", bigotimes: "⨂", bigsqcup: "⨆", bigstar: "★", bigtriangledown: "▽", bigtriangleup: "△", biguplus: "⨄", bigvee: "⋁", bigwedge: "⋀", bkarow: "⤍", blacklozenge: "⧫", blacksquare: "▪", blacktriangle: "▴", blacktriangledown: "▾", blacktriangleleft: "◂", blacktriangleright: "▸", blank: "␣", blk12: "▒", blk14: "░", blk34: "▓", block: "█", bne: "=⃥", bnequiv: "≡⃥", bNot: "⫭", bnot: "⌐", Bopf: "𝔹", bopf: "𝕓", bot: "⊥", bottom: "⊥", bowtie: "⋈", boxbox: "⧉", boxdl: "┐", boxdL: "╕", boxDl: "╖", boxDL: "╗", boxdr: "┌", boxdR: "╒", boxDr: "╓", boxDR: "╔", boxh: "─", boxH: "═", boxhd: "┬", boxHd: "╤", boxhD: "╥", boxHD: "╦", boxhu: "┴", boxHu: "╧", boxhU: "╨", boxHU: "╩", boxminus: "⊟", boxplus: "⊞", boxtimes: "⊠", boxul: "┘", boxuL: "╛", boxUl: "╜", boxUL: "╝", boxur: "└", boxuR: "╘", boxUr: "╙", boxUR: "╚", boxv: "│", boxV: "║", boxvh: "┼", boxvH: "╪", boxVh: "╫", boxVH: "╬", boxvl: "┤", boxvL: "╡", boxVl: "╢", boxVL: "╣", boxvr: "├", boxvR: "╞", boxVr: "╟", boxVR: "╠", bprime: "‵", breve: "˘", Breve: "˘", brvbar: "¦", bscr: "𝒷", Bscr: "ℬ", bsemi: "⁏", bsim: "∽", bsime: "⋍", bsolb: "⧅", bsol: "\\", bsolhsub: "⟈", bull: "•", bullet: "•", bump: "≎", bumpE: "⪮", bumpe: "≏", Bumpeq: "≎", bumpeq: "≏", Cacute: "Ć", cacute: "ć", capand: "⩄", capbrcup: "⩉", capcap: "⩋", cap: "∩", Cap: "⋒", capcup: "⩇", capdot: "⩀", CapitalDifferentialD: "ⅅ", caps: "∩︀", caret: "⁁", caron: "ˇ", Cayleys: "ℭ", ccaps: "⩍", Ccaron: "Č", ccaron: "č", Ccedil: "Ç", ccedil: "ç", Ccirc: "Ĉ", ccirc: "ĉ", Cconint: "∰", ccups: "⩌", ccupssm: "⩐", Cdot: "Ċ", cdot: "ċ", cedil: "¸", Cedilla: "¸", cemptyv: "⦲", cent: "¢", centerdot: "·", CenterDot: "·", cfr: "𝔠", Cfr: "ℭ", CHcy: "Ч", chcy: "ч", check: "✓", checkmark: "✓", Chi: "Χ", chi: "χ", circ: "ˆ", circeq: "≗", circlearrowleft: "↺", circlearrowright: "↻", circledast: "⊛", circledcirc: "⊚", circleddash: "⊝", CircleDot: "⊙", circledR: "®", circledS: "Ⓢ", CircleMinus: "⊖", CirclePlus: "⊕", CircleTimes: "⊗", cir: "○", cirE: "⧃", cire: "≗", cirfnint: "⨐", cirmid: "⫯", cirscir: "⧂", ClockwiseContourIntegral: "∲", CloseCurlyDoubleQuote: "”", CloseCurlyQuote: "’", clubs: "♣", clubsuit: "♣", colon: ":", Colon: "∷", Colone: "⩴", colone: "≔", coloneq: "≔", comma: ",", commat: "@", comp: "∁", compfn: "∘", complement: "∁", complexes: "ℂ", cong: "≅", congdot: "⩭", Congruent: "≡", conint: "∮", Conint: "∯", ContourIntegral: "∮", copf: "𝕔", Copf: "ℂ", coprod: "∐", Coproduct: "∐", copy: "©", COPY: "©", copysr: "℗", CounterClockwiseContourIntegral: "∳", crarr: "↵", cross: "✗", Cross: "⨯", Cscr: "𝒞", cscr: "𝒸", csub: "⫏", csube: "⫑", csup: "⫐", csupe: "⫒", ctdot: "⋯", cudarrl: "⤸", cudarrr: "⤵", cuepr: "⋞", cuesc: "⋟", cularr: "↶", cularrp: "⤽", cupbrcap: "⩈", cupcap: "⩆", CupCap: "≍", cup: "∪", Cup: "⋓", cupcup: "⩊", cupdot: "⊍", cupor: "⩅", cups: "∪︀", curarr: "↷", curarrm: "⤼", curlyeqprec: "⋞", curlyeqsucc: "⋟", curlyvee: "⋎", curlywedge: "⋏", curren: "¤", curvearrowleft: "↶", curvearrowright: "↷", cuvee: "⋎", cuwed: "⋏", cwconint: "∲", cwint: "∱", cylcty: "⌭", dagger: "†", Dagger: "‡", daleth: "ℸ", darr: "↓", Darr: "↡", dArr: "⇓", dash: "‐", Dashv: "⫤", dashv: "⊣", dbkarow: "⤏", dblac: "˝", Dcaron: "Ď", dcaron: "ď", Dcy: "Д", dcy: "д", ddagger: "‡", ddarr: "⇊", DD: "ⅅ", dd: "ⅆ", DDotrahd: "⤑", ddotseq: "⩷", deg: "°", Del: "∇", Delta: "Δ", delta: "δ", demptyv: "⦱", dfisht: "⥿", Dfr: "𝔇", dfr: "𝔡", dHar: "⥥", dharl: "⇃", dharr: "⇂", DiacriticalAcute: "´", DiacriticalDot: "˙", DiacriticalDoubleAcute: "˝", DiacriticalGrave: "`", DiacriticalTilde: "˜", diam: "⋄", diamond: "⋄", Diamond: "⋄", diamondsuit: "♦", diams: "♦", die: "¨", DifferentialD: "ⅆ", digamma: "ϝ", disin: "⋲", div: "÷", divide: "÷", divideontimes: "⋇", divonx: "⋇", DJcy: "Ђ", djcy: "ђ", dlcorn: "⌞", dlcrop: "⌍", dollar: "$", Dopf: "𝔻", dopf: "𝕕", Dot: "¨", dot: "˙", DotDot: "⃜", doteq: "≐", doteqdot: "≑", DotEqual: "≐", dotminus: "∸", dotplus: "∔", dotsquare: "⊡", doublebarwedge: "⌆", DoubleContourIntegral: "∯", DoubleDot: "¨", DoubleDownArrow: "⇓", DoubleLeftArrow: "⇐", DoubleLeftRightArrow: "⇔", DoubleLeftTee: "⫤", DoubleLongLeftArrow: "⟸", DoubleLongLeftRightArrow: "⟺", DoubleLongRightArrow: "⟹", DoubleRightArrow: "⇒", DoubleRightTee: "⊨", DoubleUpArrow: "⇑", DoubleUpDownArrow: "⇕", DoubleVerticalBar: "∥", DownArrowBar: "⤓", downarrow: "↓", DownArrow: "↓", Downarrow: "⇓", DownArrowUpArrow: "⇵", DownBreve: "̑", downdownarrows: "⇊", downharpoonleft: "⇃", downharpoonright: "⇂", DownLeftRightVector: "⥐", DownLeftTeeVector: "⥞", DownLeftVectorBar: "⥖", DownLeftVector: "↽", DownRightTeeVector: "⥟", DownRightVectorBar: "⥗", DownRightVector: "⇁", DownTeeArrow: "↧", DownTee: "⊤", drbkarow: "⤐", drcorn: "⌟", drcrop: "⌌", Dscr: "𝒟", dscr: "𝒹", DScy: "Ѕ", dscy: "ѕ", dsol: "⧶", Dstrok: "Đ", dstrok: "đ", dtdot: "⋱", dtri: "▿", dtrif: "▾", duarr: "⇵", duhar: "⥯", dwangle: "⦦", DZcy: "Џ", dzcy: "џ", dzigrarr: "⟿", Eacute: "É", eacute: "é", easter: "⩮", Ecaron: "Ě", ecaron: "ě", Ecirc: "Ê", ecirc: "ê", ecir: "≖", ecolon: "≕", Ecy: "Э", ecy: "э", eDDot: "⩷", Edot: "Ė", edot: "ė", eDot: "≑", ee: "ⅇ", efDot: "≒", Efr: "𝔈", efr: "𝔢", eg: "⪚", Egrave: "È", egrave: "è", egs: "⪖", egsdot: "⪘", el: "⪙", Element: "∈", elinters: "⏧", ell: "ℓ", els: "⪕", elsdot: "⪗", Emacr: "Ē", emacr: "ē", empty: "∅", emptyset: "∅", EmptySmallSquare: "◻", emptyv: "∅", EmptyVerySmallSquare: "▫", emsp13: " ", emsp14: " ", emsp: " ", ENG: "Ŋ", eng: "ŋ", ensp: " ", Eogon: "Ę", eogon: "ę", Eopf: "𝔼", eopf: "𝕖", epar: "⋕", eparsl: "⧣", eplus: "⩱", epsi: "ε", Epsilon: "Ε", epsilon: "ε", epsiv: "ϵ", eqcirc: "≖", eqcolon: "≕", eqsim: "≂", eqslantgtr: "⪖", eqslantless: "⪕", Equal: "⩵", equals: "=", EqualTilde: "≂", equest: "≟", Equilibrium: "⇌", equiv: "≡", equivDD: "⩸", eqvparsl: "⧥", erarr: "⥱", erDot: "≓", escr: "ℯ", Escr: "ℰ", esdot: "≐", Esim: "⩳", esim: "≂", Eta: "Η", eta: "η", ETH: "Ð", eth: "ð", Euml: "Ë", euml: "ë", euro: "€", excl: "!", exist: "∃", Exists: "∃", expectation: "ℰ", exponentiale: "ⅇ", ExponentialE: "ⅇ", fallingdotseq: "≒", Fcy: "Ф", fcy: "ф", female: "♀", ffilig: "ffi", fflig: "ff", ffllig: "ffl", Ffr: "𝔉", ffr: "𝔣", filig: "fi", FilledSmallSquare: "◼", FilledVerySmallSquare: "▪", fjlig: "fj", flat: "♭", fllig: "fl", fltns: "▱", fnof: "ƒ", Fopf: "𝔽", fopf: "𝕗", forall: "∀", ForAll: "∀", fork: "⋔", forkv: "⫙", Fouriertrf: "ℱ", fpartint: "⨍", frac12: "½", frac13: "⅓", frac14: "¼", frac15: "⅕", frac16: "⅙", frac18: "⅛", frac23: "⅔", frac25: "⅖", frac34: "¾", frac35: "⅗", frac38: "⅜", frac45: "⅘", frac56: "⅚", frac58: "⅝", frac78: "⅞", frasl: "⁄", frown: "⌢", fscr: "𝒻", Fscr: "ℱ", gacute: "ǵ", Gamma: "Γ", gamma: "γ", Gammad: "Ϝ", gammad: "ϝ", gap: "⪆", Gbreve: "Ğ", gbreve: "ğ", Gcedil: "Ģ", Gcirc: "Ĝ", gcirc: "ĝ", Gcy: "Г", gcy: "г", Gdot: "Ġ", gdot: "ġ", ge: "≥", gE: "≧", gEl: "⪌", gel: "⋛", geq: "≥", geqq: "≧", geqslant: "⩾", gescc: "⪩", ges: "⩾", gesdot: "⪀", gesdoto: "⪂", gesdotol: "⪄", gesl: "⋛︀", gesles: "⪔", Gfr: "𝔊", gfr: "𝔤", gg: "≫", Gg: "⋙", ggg: "⋙", gimel: "ℷ", GJcy: "Ѓ", gjcy: "ѓ", gla: "⪥", gl: "≷", glE: "⪒", glj: "⪤", gnap: "⪊", gnapprox: "⪊", gne: "⪈", gnE: "≩", gneq: "⪈", gneqq: "≩", gnsim: "⋧", Gopf: "𝔾", gopf: "𝕘", grave: "`", GreaterEqual: "≥", GreaterEqualLess: "⋛", GreaterFullEqual: "≧", GreaterGreater: "⪢", GreaterLess: "≷", GreaterSlantEqual: "⩾", GreaterTilde: "≳", Gscr: "𝒢", gscr: "ℊ", gsim: "≳", gsime: "⪎", gsiml: "⪐", gtcc: "⪧", gtcir: "⩺", gt: ">", GT: ">", Gt: "≫", gtdot: "⋗", gtlPar: "⦕", gtquest: "⩼", gtrapprox: "⪆", gtrarr: "⥸", gtrdot: "⋗", gtreqless: "⋛", gtreqqless: "⪌", gtrless: "≷", gtrsim: "≳", gvertneqq: "≩︀", gvnE: "≩︀", Hacek: "ˇ", hairsp: " ", half: "½", hamilt: "ℋ", HARDcy: "Ъ", hardcy: "ъ", harrcir: "⥈", harr: "↔", hArr: "⇔", harrw: "↭", Hat: "^", hbar: "ℏ", Hcirc: "Ĥ", hcirc: "ĥ", hearts: "♥", heartsuit: "♥", hellip: "…", hercon: "⊹", hfr: "𝔥", Hfr: "ℌ", HilbertSpace: "ℋ", hksearow: "⤥", hkswarow: "⤦", hoarr: "⇿", homtht: "∻", hookleftarrow: "↩", hookrightarrow: "↪", hopf: "𝕙", Hopf: "ℍ", horbar: "―", HorizontalLine: "─", hscr: "𝒽", Hscr: "ℋ", hslash: "ℏ", Hstrok: "Ħ", hstrok: "ħ", HumpDownHump: "≎", HumpEqual: "≏", hybull: "⁃", hyphen: "‐", Iacute: "Í", iacute: "í", ic: "⁣", Icirc: "Î", icirc: "î", Icy: "И", icy: "и", Idot: "İ", IEcy: "Е", iecy: "е", iexcl: "¡", iff: "⇔", ifr: "𝔦", Ifr: "ℑ", Igrave: "Ì", igrave: "ì", ii: "ⅈ", iiiint: "⨌", iiint: "∭", iinfin: "⧜", iiota: "℩", IJlig: "IJ", ijlig: "ij", Imacr: "Ī", imacr: "ī", image: "ℑ", ImaginaryI: "ⅈ", imagline: "ℐ", imagpart: "ℑ", imath: "ı", Im: "ℑ", imof: "⊷", imped: "Ƶ", Implies: "⇒", incare: "℅", in: "∈", infin: "∞", infintie: "⧝", inodot: "ı", intcal: "⊺", int: "∫", Int: "∬", integers: "ℤ", Integral: "∫", intercal: "⊺", Intersection: "⋂", intlarhk: "⨗", intprod: "⨼", InvisibleComma: "⁣", InvisibleTimes: "⁢", IOcy: "Ё", iocy: "ё", Iogon: "Į", iogon: "į", Iopf: "𝕀", iopf: "𝕚", Iota: "Ι", iota: "ι", iprod: "⨼", iquest: "¿", iscr: "𝒾", Iscr: "ℐ", isin: "∈", isindot: "⋵", isinE: "⋹", isins: "⋴", isinsv: "⋳", isinv: "∈", it: "⁢", Itilde: "Ĩ", itilde: "ĩ", Iukcy: "І", iukcy: "і", Iuml: "Ï", iuml: "ï", Jcirc: "Ĵ", jcirc: "ĵ", Jcy: "Й", jcy: "й", Jfr: "𝔍", jfr: "𝔧", jmath: "ȷ", Jopf: "𝕁", jopf: "𝕛", Jscr: "𝒥", jscr: "𝒿", Jsercy: "Ј", jsercy: "ј", Jukcy: "Є", jukcy: "є", Kappa: "Κ", kappa: "κ", kappav: "ϰ", Kcedil: "Ķ", kcedil: "ķ", Kcy: "К", kcy: "к", Kfr: "𝔎", kfr: "𝔨", kgreen: "ĸ", KHcy: "Х", khcy: "х", KJcy: "Ќ", kjcy: "ќ", Kopf: "𝕂", kopf: "𝕜", Kscr: "𝒦", kscr: "𝓀", lAarr: "⇚", Lacute: "Ĺ", lacute: "ĺ", laemptyv: "⦴", lagran: "ℒ", Lambda: "Λ", lambda: "λ", lang: "⟨", Lang: "⟪", langd: "⦑", langle: "⟨", lap: "⪅", Laplacetrf: "ℒ", laquo: "«", larrb: "⇤", larrbfs: "⤟", larr: "←", Larr: "↞", lArr: "⇐", larrfs: "⤝", larrhk: "↩", larrlp: "↫", larrpl: "⤹", larrsim: "⥳", larrtl: "↢", latail: "⤙", lAtail: "⤛", lat: "⪫", late: "⪭", lates: "⪭︀", lbarr: "⤌", lBarr: "⤎", lbbrk: "❲", lbrace: "{", lbrack: "[", lbrke: "⦋", lbrksld: "⦏", lbrkslu: "⦍", Lcaron: "Ľ", lcaron: "ľ", Lcedil: "Ļ", lcedil: "ļ", lceil: "⌈", lcub: "{", Lcy: "Л", lcy: "л", ldca: "⤶", ldquo: "“", ldquor: "„", ldrdhar: "⥧", ldrushar: "⥋", ldsh: "↲", le: "≤", lE: "≦", LeftAngleBracket: "⟨", LeftArrowBar: "⇤", leftarrow: "←", LeftArrow: "←", Leftarrow: "⇐", LeftArrowRightArrow: "⇆", leftarrowtail: "↢", LeftCeiling: "⌈", LeftDoubleBracket: "⟦", LeftDownTeeVector: "⥡", LeftDownVectorBar: "⥙", LeftDownVector: "⇃", LeftFloor: "⌊", leftharpoondown: "↽", leftharpoonup: "↼", leftleftarrows: "⇇", leftrightarrow: "↔", LeftRightArrow: "↔", Leftrightarrow: "⇔", leftrightarrows: "⇆", leftrightharpoons: "⇋", leftrightsquigarrow: "↭", LeftRightVector: "⥎", LeftTeeArrow: "↤", LeftTee: "⊣", LeftTeeVector: "⥚", leftthreetimes: "⋋", LeftTriangleBar: "⧏", LeftTriangle: "⊲", LeftTriangleEqual: "⊴", LeftUpDownVector: "⥑", LeftUpTeeVector: "⥠", LeftUpVectorBar: "⥘", LeftUpVector: "↿", LeftVectorBar: "⥒", LeftVector: "↼", lEg: "⪋", leg: "⋚", leq: "≤", leqq: "≦", leqslant: "⩽", lescc: "⪨", les: "⩽", lesdot: "⩿", lesdoto: "⪁", lesdotor: "⪃", lesg: "⋚︀", lesges: "⪓", lessapprox: "⪅", lessdot: "⋖", lesseqgtr: "⋚", lesseqqgtr: "⪋", LessEqualGreater: "⋚", LessFullEqual: "≦", LessGreater: "≶", lessgtr: "≶", LessLess: "⪡", lesssim: "≲", LessSlantEqual: "⩽", LessTilde: "≲", lfisht: "⥼", lfloor: "⌊", Lfr: "𝔏", lfr: "𝔩", lg: "≶", lgE: "⪑", lHar: "⥢", lhard: "↽", lharu: "↼", lharul: "⥪", lhblk: "▄", LJcy: "Љ", ljcy: "љ", llarr: "⇇", ll: "≪", Ll: "⋘", llcorner: "⌞", Lleftarrow: "⇚", llhard: "⥫", lltri: "◺", Lmidot: "Ŀ", lmidot: "ŀ", lmoustache: "⎰", lmoust: "⎰", lnap: "⪉", lnapprox: "⪉", lne: "⪇", lnE: "≨", lneq: "⪇", lneqq: "≨", lnsim: "⋦", loang: "⟬", loarr: "⇽", lobrk: "⟦", longleftarrow: "⟵", LongLeftArrow: "⟵", Longleftarrow: "⟸", longleftrightarrow: "⟷", LongLeftRightArrow: "⟷", Longleftrightarrow: "⟺", longmapsto: "⟼", longrightarrow: "⟶", LongRightArrow: "⟶", Longrightarrow: "⟹", looparrowleft: "↫", looparrowright: "↬", lopar: "⦅", Lopf: "𝕃", lopf: "𝕝", loplus: "⨭", lotimes: "⨴", lowast: "∗", lowbar: "_", LowerLeftArrow: "↙", LowerRightArrow: "↘", loz: "◊", lozenge: "◊", lozf: "⧫", lpar: "(", lparlt: "⦓", lrarr: "⇆", lrcorner: "⌟", lrhar: "⇋", lrhard: "⥭", lrm: "‎", lrtri: "⊿", lsaquo: "‹", lscr: "𝓁", Lscr: "ℒ", lsh: "↰", Lsh: "↰", lsim: "≲", lsime: "⪍", lsimg: "⪏", lsqb: "[", lsquo: "‘", lsquor: "‚", Lstrok: "Ł", lstrok: "ł", ltcc: "⪦", ltcir: "⩹", lt: "<", LT: "<", Lt: "≪", ltdot: "⋖", lthree: "⋋", ltimes: "⋉", ltlarr: "⥶", ltquest: "⩻", ltri: "◃", ltrie: "⊴", ltrif: "◂", ltrPar: "⦖", lurdshar: "⥊", luruhar: "⥦", lvertneqq: "≨︀", lvnE: "≨︀", macr: "¯", male: "♂", malt: "✠", maltese: "✠", Map: "⤅", map: "↦", mapsto: "↦", mapstodown: "↧", mapstoleft: "↤", mapstoup: "↥", marker: "▮", mcomma: "⨩", Mcy: "М", mcy: "м", mdash: "—", mDDot: "∺", measuredangle: "∡", MediumSpace: " ", Mellintrf: "ℳ", Mfr: "𝔐", mfr: "𝔪", mho: "℧", micro: "µ", midast: "*", midcir: "⫰", mid: "∣", middot: "·", minusb: "⊟", minus: "−", minusd: "∸", minusdu: "⨪", MinusPlus: "∓", mlcp: "⫛", mldr: "…", mnplus: "∓", models: "⊧", Mopf: "𝕄", mopf: "𝕞", mp: "∓", mscr: "𝓂", Mscr: "ℳ", mstpos: "∾", Mu: "Μ", mu: "μ", multimap: "⊸", mumap: "⊸", nabla: "∇", Nacute: "Ń", nacute: "ń", nang: "∠⃒", nap: "≉", napE: "⩰̸", napid: "≋̸", napos: "ʼn", napprox: "≉", natural: "♮", naturals: "ℕ", natur: "♮", nbsp: " ", nbump: "≎̸", nbumpe: "≏̸", ncap: "⩃", Ncaron: "Ň", ncaron: "ň", Ncedil: "Ņ", ncedil: "ņ", ncong: "≇", ncongdot: "⩭̸", ncup: "⩂", Ncy: "Н", ncy: "н", ndash: "–", nearhk: "⤤", nearr: "↗", neArr: "⇗", nearrow: "↗", ne: "≠", nedot: "≐̸", NegativeMediumSpace: "​", NegativeThickSpace: "​", NegativeThinSpace: "​", NegativeVeryThinSpace: "​", nequiv: "≢", nesear: "⤨", nesim: "≂̸", NestedGreaterGreater: "≫", NestedLessLess: "≪", NewLine: `
1126
- `, nexist: "∄", nexists: "∄", Nfr: "𝔑", nfr: "𝔫", ngE: "≧̸", nge: "≱", ngeq: "≱", ngeqq: "≧̸", ngeqslant: "⩾̸", nges: "⩾̸", nGg: "⋙̸", ngsim: "≵", nGt: "≫⃒", ngt: "≯", ngtr: "≯", nGtv: "≫̸", nharr: "↮", nhArr: "⇎", nhpar: "⫲", ni: "∋", nis: "⋼", nisd: "⋺", niv: "∋", NJcy: "Њ", njcy: "њ", nlarr: "↚", nlArr: "⇍", nldr: "‥", nlE: "≦̸", nle: "≰", nleftarrow: "↚", nLeftarrow: "⇍", nleftrightarrow: "↮", nLeftrightarrow: "⇎", nleq: "≰", nleqq: "≦̸", nleqslant: "⩽̸", nles: "⩽̸", nless: "≮", nLl: "⋘̸", nlsim: "≴", nLt: "≪⃒", nlt: "≮", nltri: "⋪", nltrie: "⋬", nLtv: "≪̸", nmid: "∤", NoBreak: "⁠", NonBreakingSpace: " ", nopf: "𝕟", Nopf: "ℕ", Not: "⫬", not: "¬", NotCongruent: "≢", NotCupCap: "≭", NotDoubleVerticalBar: "∦", NotElement: "∉", NotEqual: "≠", NotEqualTilde: "≂̸", NotExists: "∄", NotGreater: "≯", NotGreaterEqual: "≱", NotGreaterFullEqual: "≧̸", NotGreaterGreater: "≫̸", NotGreaterLess: "≹", NotGreaterSlantEqual: "⩾̸", NotGreaterTilde: "≵", NotHumpDownHump: "≎̸", NotHumpEqual: "≏̸", notin: "∉", notindot: "⋵̸", notinE: "⋹̸", notinva: "∉", notinvb: "⋷", notinvc: "⋶", NotLeftTriangleBar: "⧏̸", NotLeftTriangle: "⋪", NotLeftTriangleEqual: "⋬", NotLess: "≮", NotLessEqual: "≰", NotLessGreater: "≸", NotLessLess: "≪̸", NotLessSlantEqual: "⩽̸", NotLessTilde: "≴", NotNestedGreaterGreater: "⪢̸", NotNestedLessLess: "⪡̸", notni: "∌", notniva: "∌", notnivb: "⋾", notnivc: "⋽", NotPrecedes: "⊀", NotPrecedesEqual: "⪯̸", NotPrecedesSlantEqual: "⋠", NotReverseElement: "∌", NotRightTriangleBar: "⧐̸", NotRightTriangle: "⋫", NotRightTriangleEqual: "⋭", NotSquareSubset: "⊏̸", NotSquareSubsetEqual: "⋢", NotSquareSuperset: "⊐̸", NotSquareSupersetEqual: "⋣", NotSubset: "⊂⃒", NotSubsetEqual: "⊈", NotSucceeds: "⊁", NotSucceedsEqual: "⪰̸", NotSucceedsSlantEqual: "⋡", NotSucceedsTilde: "≿̸", NotSuperset: "⊃⃒", NotSupersetEqual: "⊉", NotTilde: "≁", NotTildeEqual: "≄", NotTildeFullEqual: "≇", NotTildeTilde: "≉", NotVerticalBar: "∤", nparallel: "∦", npar: "∦", nparsl: "⫽⃥", npart: "∂̸", npolint: "⨔", npr: "⊀", nprcue: "⋠", nprec: "⊀", npreceq: "⪯̸", npre: "⪯̸", nrarrc: "⤳̸", nrarr: "↛", nrArr: "⇏", nrarrw: "↝̸", nrightarrow: "↛", nRightarrow: "⇏", nrtri: "⋫", nrtrie: "⋭", nsc: "⊁", nsccue: "⋡", nsce: "⪰̸", Nscr: "𝒩", nscr: "𝓃", nshortmid: "∤", nshortparallel: "∦", nsim: "≁", nsime: "≄", nsimeq: "≄", nsmid: "∤", nspar: "∦", nsqsube: "⋢", nsqsupe: "⋣", nsub: "⊄", nsubE: "⫅̸", nsube: "⊈", nsubset: "⊂⃒", nsubseteq: "⊈", nsubseteqq: "⫅̸", nsucc: "⊁", nsucceq: "⪰̸", nsup: "⊅", nsupE: "⫆̸", nsupe: "⊉", nsupset: "⊃⃒", nsupseteq: "⊉", nsupseteqq: "⫆̸", ntgl: "≹", Ntilde: "Ñ", ntilde: "ñ", ntlg: "≸", ntriangleleft: "⋪", ntrianglelefteq: "⋬", ntriangleright: "⋫", ntrianglerighteq: "⋭", Nu: "Ν", nu: "ν", num: "#", numero: "№", numsp: " ", nvap: "≍⃒", nvdash: "⊬", nvDash: "⊭", nVdash: "⊮", nVDash: "⊯", nvge: "≥⃒", nvgt: ">⃒", nvHarr: "⤄", nvinfin: "⧞", nvlArr: "⤂", nvle: "≤⃒", nvlt: "<⃒", nvltrie: "⊴⃒", nvrArr: "⤃", nvrtrie: "⊵⃒", nvsim: "∼⃒", nwarhk: "⤣", nwarr: "↖", nwArr: "⇖", nwarrow: "↖", nwnear: "⤧", Oacute: "Ó", oacute: "ó", oast: "⊛", Ocirc: "Ô", ocirc: "ô", ocir: "⊚", Ocy: "О", ocy: "о", odash: "⊝", Odblac: "Ő", odblac: "ő", odiv: "⨸", odot: "⊙", odsold: "⦼", OElig: "Œ", oelig: "œ", ofcir: "⦿", Ofr: "𝔒", ofr: "𝔬", ogon: "˛", Ograve: "Ò", ograve: "ò", ogt: "⧁", ohbar: "⦵", ohm: "Ω", oint: "∮", olarr: "↺", olcir: "⦾", olcross: "⦻", oline: "‾", olt: "⧀", Omacr: "Ō", omacr: "ō", Omega: "Ω", omega: "ω", Omicron: "Ο", omicron: "ο", omid: "⦶", ominus: "⊖", Oopf: "𝕆", oopf: "𝕠", opar: "⦷", OpenCurlyDoubleQuote: "“", OpenCurlyQuote: "‘", operp: "⦹", oplus: "⊕", orarr: "↻", Or: "⩔", or: "∨", ord: "⩝", order: "ℴ", orderof: "ℴ", ordf: "ª", ordm: "º", origof: "⊶", oror: "⩖", orslope: "⩗", orv: "⩛", oS: "Ⓢ", Oscr: "𝒪", oscr: "ℴ", Oslash: "Ø", oslash: "ø", osol: "⊘", Otilde: "Õ", otilde: "õ", otimesas: "⨶", Otimes: "⨷", otimes: "⊗", Ouml: "Ö", ouml: "ö", ovbar: "⌽", OverBar: "‾", OverBrace: "⏞", OverBracket: "⎴", OverParenthesis: "⏜", para: "¶", parallel: "∥", par: "∥", parsim: "⫳", parsl: "⫽", part: "∂", PartialD: "∂", Pcy: "П", pcy: "п", percnt: "%", period: ".", permil: "‰", perp: "⊥", pertenk: "‱", Pfr: "𝔓", pfr: "𝔭", Phi: "Φ", phi: "φ", phiv: "ϕ", phmmat: "ℳ", phone: "☎", Pi: "Π", pi: "π", pitchfork: "⋔", piv: "ϖ", planck: "ℏ", planckh: "ℎ", plankv: "ℏ", plusacir: "⨣", plusb: "⊞", pluscir: "⨢", plus: "+", plusdo: "∔", plusdu: "⨥", pluse: "⩲", PlusMinus: "±", plusmn: "±", plussim: "⨦", plustwo: "⨧", pm: "±", Poincareplane: "ℌ", pointint: "⨕", popf: "𝕡", Popf: "ℙ", pound: "£", prap: "⪷", Pr: "⪻", pr: "≺", prcue: "≼", precapprox: "⪷", prec: "≺", preccurlyeq: "≼", Precedes: "≺", PrecedesEqual: "⪯", PrecedesSlantEqual: "≼", PrecedesTilde: "≾", preceq: "⪯", precnapprox: "⪹", precneqq: "⪵", precnsim: "⋨", pre: "⪯", prE: "⪳", precsim: "≾", prime: "′", Prime: "″", primes: "ℙ", prnap: "⪹", prnE: "⪵", prnsim: "⋨", prod: "∏", Product: "∏", profalar: "⌮", profline: "⌒", profsurf: "⌓", prop: "∝", Proportional: "∝", Proportion: "∷", propto: "∝", prsim: "≾", prurel: "⊰", Pscr: "𝒫", pscr: "𝓅", Psi: "Ψ", psi: "ψ", puncsp: " ", Qfr: "𝔔", qfr: "𝔮", qint: "⨌", qopf: "𝕢", Qopf: "ℚ", qprime: "⁗", Qscr: "𝒬", qscr: "𝓆", quaternions: "ℍ", quatint: "⨖", quest: "?", questeq: "≟", quot: '"', QUOT: '"', rAarr: "⇛", race: "∽̱", Racute: "Ŕ", racute: "ŕ", radic: "√", raemptyv: "⦳", rang: "⟩", Rang: "⟫", rangd: "⦒", range: "⦥", rangle: "⟩", raquo: "»", rarrap: "⥵", rarrb: "⇥", rarrbfs: "⤠", rarrc: "⤳", rarr: "→", Rarr: "↠", rArr: "⇒", rarrfs: "⤞", rarrhk: "↪", rarrlp: "↬", rarrpl: "⥅", rarrsim: "⥴", Rarrtl: "⤖", rarrtl: "↣", rarrw: "↝", ratail: "⤚", rAtail: "⤜", ratio: "∶", rationals: "ℚ", rbarr: "⤍", rBarr: "⤏", RBarr: "⤐", rbbrk: "❳", rbrace: "}", rbrack: "]", rbrke: "⦌", rbrksld: "⦎", rbrkslu: "⦐", Rcaron: "Ř", rcaron: "ř", Rcedil: "Ŗ", rcedil: "ŗ", rceil: "⌉", rcub: "}", Rcy: "Р", rcy: "р", rdca: "⤷", rdldhar: "⥩", rdquo: "”", rdquor: "”", rdsh: "↳", real: "ℜ", realine: "ℛ", realpart: "ℜ", reals: "ℝ", Re: "ℜ", rect: "▭", reg: "®", REG: "®", ReverseElement: "∋", ReverseEquilibrium: "⇋", ReverseUpEquilibrium: "⥯", rfisht: "⥽", rfloor: "⌋", rfr: "𝔯", Rfr: "ℜ", rHar: "⥤", rhard: "⇁", rharu: "⇀", rharul: "⥬", Rho: "Ρ", rho: "ρ", rhov: "ϱ", RightAngleBracket: "⟩", RightArrowBar: "⇥", rightarrow: "→", RightArrow: "→", Rightarrow: "⇒", RightArrowLeftArrow: "⇄", rightarrowtail: "↣", RightCeiling: "⌉", RightDoubleBracket: "⟧", RightDownTeeVector: "⥝", RightDownVectorBar: "⥕", RightDownVector: "⇂", RightFloor: "⌋", rightharpoondown: "⇁", rightharpoonup: "⇀", rightleftarrows: "⇄", rightleftharpoons: "⇌", rightrightarrows: "⇉", rightsquigarrow: "↝", RightTeeArrow: "↦", RightTee: "⊢", RightTeeVector: "⥛", rightthreetimes: "⋌", RightTriangleBar: "⧐", RightTriangle: "⊳", RightTriangleEqual: "⊵", RightUpDownVector: "⥏", RightUpTeeVector: "⥜", RightUpVectorBar: "⥔", RightUpVector: "↾", RightVectorBar: "⥓", RightVector: "⇀", ring: "˚", risingdotseq: "≓", rlarr: "⇄", rlhar: "⇌", rlm: "‏", rmoustache: "⎱", rmoust: "⎱", rnmid: "⫮", roang: "⟭", roarr: "⇾", robrk: "⟧", ropar: "⦆", ropf: "𝕣", Ropf: "ℝ", roplus: "⨮", rotimes: "⨵", RoundImplies: "⥰", rpar: ")", rpargt: "⦔", rppolint: "⨒", rrarr: "⇉", Rrightarrow: "⇛", rsaquo: "›", rscr: "𝓇", Rscr: "ℛ", rsh: "↱", Rsh: "↱", rsqb: "]", rsquo: "’", rsquor: "’", rthree: "⋌", rtimes: "⋊", rtri: "▹", rtrie: "⊵", rtrif: "▸", rtriltri: "⧎", RuleDelayed: "⧴", ruluhar: "⥨", rx: "℞", Sacute: "Ś", sacute: "ś", sbquo: "‚", scap: "⪸", Scaron: "Š", scaron: "š", Sc: "⪼", sc: "≻", sccue: "≽", sce: "⪰", scE: "⪴", Scedil: "Ş", scedil: "ş", Scirc: "Ŝ", scirc: "ŝ", scnap: "⪺", scnE: "⪶", scnsim: "⋩", scpolint: "⨓", scsim: "≿", Scy: "С", scy: "с", sdotb: "⊡", sdot: "⋅", sdote: "⩦", searhk: "⤥", searr: "↘", seArr: "⇘", searrow: "↘", sect: "§", semi: ";", seswar: "⤩", setminus: "∖", setmn: "∖", sext: "✶", Sfr: "𝔖", sfr: "𝔰", sfrown: "⌢", sharp: "♯", SHCHcy: "Щ", shchcy: "щ", SHcy: "Ш", shcy: "ш", ShortDownArrow: "↓", ShortLeftArrow: "←", shortmid: "∣", shortparallel: "∥", ShortRightArrow: "→", ShortUpArrow: "↑", shy: "­", Sigma: "Σ", sigma: "σ", sigmaf: "ς", sigmav: "ς", sim: "∼", simdot: "⩪", sime: "≃", simeq: "≃", simg: "⪞", simgE: "⪠", siml: "⪝", simlE: "⪟", simne: "≆", simplus: "⨤", simrarr: "⥲", slarr: "←", SmallCircle: "∘", smallsetminus: "∖", smashp: "⨳", smeparsl: "⧤", smid: "∣", smile: "⌣", smt: "⪪", smte: "⪬", smtes: "⪬︀", SOFTcy: "Ь", softcy: "ь", solbar: "⌿", solb: "⧄", sol: "/", Sopf: "𝕊", sopf: "𝕤", spades: "♠", spadesuit: "♠", spar: "∥", sqcap: "⊓", sqcaps: "⊓︀", sqcup: "⊔", sqcups: "⊔︀", Sqrt: "√", sqsub: "⊏", sqsube: "⊑", sqsubset: "⊏", sqsubseteq: "⊑", sqsup: "⊐", sqsupe: "⊒", sqsupset: "⊐", sqsupseteq: "⊒", square: "□", Square: "□", SquareIntersection: "⊓", SquareSubset: "⊏", SquareSubsetEqual: "⊑", SquareSuperset: "⊐", SquareSupersetEqual: "⊒", SquareUnion: "⊔", squarf: "▪", squ: "□", squf: "▪", srarr: "→", Sscr: "𝒮", sscr: "𝓈", ssetmn: "∖", ssmile: "⌣", sstarf: "⋆", Star: "⋆", star: "☆", starf: "★", straightepsilon: "ϵ", straightphi: "ϕ", strns: "¯", sub: "⊂", Sub: "⋐", subdot: "⪽", subE: "⫅", sube: "⊆", subedot: "⫃", submult: "⫁", subnE: "⫋", subne: "⊊", subplus: "⪿", subrarr: "⥹", subset: "⊂", Subset: "⋐", subseteq: "⊆", subseteqq: "⫅", SubsetEqual: "⊆", subsetneq: "⊊", subsetneqq: "⫋", subsim: "⫇", subsub: "⫕", subsup: "⫓", succapprox: "⪸", succ: "≻", succcurlyeq: "≽", Succeeds: "≻", SucceedsEqual: "⪰", SucceedsSlantEqual: "≽", SucceedsTilde: "≿", succeq: "⪰", succnapprox: "⪺", succneqq: "⪶", succnsim: "⋩", succsim: "≿", SuchThat: "∋", sum: "∑", Sum: "∑", sung: "♪", sup1: "¹", sup2: "²", sup3: "³", sup: "⊃", Sup: "⋑", supdot: "⪾", supdsub: "⫘", supE: "⫆", supe: "⊇", supedot: "⫄", Superset: "⊃", SupersetEqual: "⊇", suphsol: "⟉", suphsub: "⫗", suplarr: "⥻", supmult: "⫂", supnE: "⫌", supne: "⊋", supplus: "⫀", supset: "⊃", Supset: "⋑", supseteq: "⊇", supseteqq: "⫆", supsetneq: "⊋", supsetneqq: "⫌", supsim: "⫈", supsub: "⫔", supsup: "⫖", swarhk: "⤦", swarr: "↙", swArr: "⇙", swarrow: "↙", swnwar: "⤪", szlig: "ß", Tab: " ", target: "⌖", Tau: "Τ", tau: "τ", tbrk: "⎴", Tcaron: "Ť", tcaron: "ť", Tcedil: "Ţ", tcedil: "ţ", Tcy: "Т", tcy: "т", tdot: "⃛", telrec: "⌕", Tfr: "𝔗", tfr: "𝔱", there4: "∴", therefore: "∴", Therefore: "∴", Theta: "Θ", theta: "θ", thetasym: "ϑ", thetav: "ϑ", thickapprox: "≈", thicksim: "∼", ThickSpace: "  ", ThinSpace: " ", thinsp: " ", thkap: "≈", thksim: "∼", THORN: "Þ", thorn: "þ", tilde: "˜", Tilde: "∼", TildeEqual: "≃", TildeFullEqual: "≅", TildeTilde: "≈", timesbar: "⨱", timesb: "⊠", times: "×", timesd: "⨰", tint: "∭", toea: "⤨", topbot: "⌶", topcir: "⫱", top: "⊤", Topf: "𝕋", topf: "𝕥", topfork: "⫚", tosa: "⤩", tprime: "‴", trade: "™", TRADE: "™", triangle: "▵", triangledown: "▿", triangleleft: "◃", trianglelefteq: "⊴", triangleq: "≜", triangleright: "▹", trianglerighteq: "⊵", tridot: "◬", trie: "≜", triminus: "⨺", TripleDot: "⃛", triplus: "⨹", trisb: "⧍", tritime: "⨻", trpezium: "⏢", Tscr: "𝒯", tscr: "𝓉", TScy: "Ц", tscy: "ц", TSHcy: "Ћ", tshcy: "ћ", Tstrok: "Ŧ", tstrok: "ŧ", twixt: "≬", twoheadleftarrow: "↞", twoheadrightarrow: "↠", Uacute: "Ú", uacute: "ú", uarr: "↑", Uarr: "↟", uArr: "⇑", Uarrocir: "⥉", Ubrcy: "Ў", ubrcy: "ў", Ubreve: "Ŭ", ubreve: "ŭ", Ucirc: "Û", ucirc: "û", Ucy: "У", ucy: "у", udarr: "⇅", Udblac: "Ű", udblac: "ű", udhar: "⥮", ufisht: "⥾", Ufr: "𝔘", ufr: "𝔲", Ugrave: "Ù", ugrave: "ù", uHar: "⥣", uharl: "↿", uharr: "↾", uhblk: "▀", ulcorn: "⌜", ulcorner: "⌜", ulcrop: "⌏", ultri: "◸", Umacr: "Ū", umacr: "ū", uml: "¨", UnderBar: "_", UnderBrace: "⏟", UnderBracket: "⎵", UnderParenthesis: "⏝", Union: "⋃", UnionPlus: "⊎", Uogon: "Ų", uogon: "ų", Uopf: "𝕌", uopf: "𝕦", UpArrowBar: "⤒", uparrow: "↑", UpArrow: "↑", Uparrow: "⇑", UpArrowDownArrow: "⇅", updownarrow: "↕", UpDownArrow: "↕", Updownarrow: "⇕", UpEquilibrium: "⥮", upharpoonleft: "↿", upharpoonright: "↾", uplus: "⊎", UpperLeftArrow: "↖", UpperRightArrow: "↗", upsi: "υ", Upsi: "ϒ", upsih: "ϒ", Upsilon: "Υ", upsilon: "υ", UpTeeArrow: "↥", UpTee: "⊥", upuparrows: "⇈", urcorn: "⌝", urcorner: "⌝", urcrop: "⌎", Uring: "Ů", uring: "ů", urtri: "◹", Uscr: "𝒰", uscr: "𝓊", utdot: "⋰", Utilde: "Ũ", utilde: "ũ", utri: "▵", utrif: "▴", uuarr: "⇈", Uuml: "Ü", uuml: "ü", uwangle: "⦧", vangrt: "⦜", varepsilon: "ϵ", varkappa: "ϰ", varnothing: "∅", varphi: "ϕ", varpi: "ϖ", varpropto: "∝", varr: "↕", vArr: "⇕", varrho: "ϱ", varsigma: "ς", varsubsetneq: "⊊︀", varsubsetneqq: "⫋︀", varsupsetneq: "⊋︀", varsupsetneqq: "⫌︀", vartheta: "ϑ", vartriangleleft: "⊲", vartriangleright: "⊳", vBar: "⫨", Vbar: "⫫", vBarv: "⫩", Vcy: "В", vcy: "в", vdash: "⊢", vDash: "⊨", Vdash: "⊩", VDash: "⊫", Vdashl: "⫦", veebar: "⊻", vee: "∨", Vee: "⋁", veeeq: "≚", vellip: "⋮", verbar: "|", Verbar: "‖", vert: "|", Vert: "‖", VerticalBar: "∣", VerticalLine: "|", VerticalSeparator: "❘", VerticalTilde: "≀", VeryThinSpace: " ", Vfr: "𝔙", vfr: "𝔳", vltri: "⊲", vnsub: "⊂⃒", vnsup: "⊃⃒", Vopf: "𝕍", vopf: "𝕧", vprop: "∝", vrtri: "⊳", Vscr: "𝒱", vscr: "𝓋", vsubnE: "⫋︀", vsubne: "⊊︀", vsupnE: "⫌︀", vsupne: "⊋︀", Vvdash: "⊪", vzigzag: "⦚", Wcirc: "Ŵ", wcirc: "ŵ", wedbar: "⩟", wedge: "∧", Wedge: "⋀", wedgeq: "≙", weierp: "℘", Wfr: "𝔚", wfr: "𝔴", Wopf: "𝕎", wopf: "𝕨", wp: "℘", wr: "≀", wreath: "≀", Wscr: "𝒲", wscr: "𝓌", xcap: "⋂", xcirc: "◯", xcup: "⋃", xdtri: "▽", Xfr: "𝔛", xfr: "𝔵", xharr: "⟷", xhArr: "⟺", Xi: "Ξ", xi: "ξ", xlarr: "⟵", xlArr: "⟸", xmap: "⟼", xnis: "⋻", xodot: "⨀", Xopf: "𝕏", xopf: "𝕩", xoplus: "⨁", xotime: "⨂", xrarr: "⟶", xrArr: "⟹", Xscr: "𝒳", xscr: "𝓍", xsqcup: "⨆", xuplus: "⨄", xutri: "△", xvee: "⋁", xwedge: "⋀", Yacute: "Ý", yacute: "ý", YAcy: "Я", yacy: "я", Ycirc: "Ŷ", ycirc: "ŷ", Ycy: "Ы", ycy: "ы", yen: "¥", Yfr: "𝔜", yfr: "𝔶", YIcy: "Ї", yicy: "ї", Yopf: "𝕐", yopf: "𝕪", Yscr: "𝒴", yscr: "𝓎", YUcy: "Ю", yucy: "ю", yuml: "ÿ", Yuml: "Ÿ", Zacute: "Ź", zacute: "ź", Zcaron: "Ž", zcaron: "ž", Zcy: "З", zcy: "з", Zdot: "Ż", zdot: "ż", zeetrf: "ℨ", ZeroWidthSpace: "​", Zeta: "Ζ", zeta: "ζ", zfr: "𝔷", Zfr: "ℨ", ZHcy: "Ж", zhcy: "ж", zigrarr: "⇝", zopf: "𝕫", Zopf: "ℤ", Zscr: "𝒵", zscr: "𝓏", zwj: "‍", zwnj: "‌" }, Wa = /^#[xX]([A-Fa-f0-9]+)$/, Ka = /^#([0-9]+)$/, Qa = /^([A-Za-z0-9]+)$/, Qr = function() {
872
+ var ya = { Aacute: "Á", aacute: "á", Abreve: "Ă", abreve: "ă", ac: "∾", acd: "∿", acE: "∾̳", Acirc: "Â", acirc: "â", acute: "´", Acy: "А", acy: "а", AElig: "Æ", aelig: "æ", af: "⁡", Afr: "𝔄", afr: "𝔞", Agrave: "À", agrave: "à", alefsym: "ℵ", aleph: "ℵ", Alpha: "Α", alpha: "α", Amacr: "Ā", amacr: "ā", amalg: "⨿", amp: "&", AMP: "&", andand: "⩕", And: "⩓", and: "∧", andd: "⩜", andslope: "⩘", andv: "⩚", ang: "∠", ange: "⦤", angle: "∠", angmsdaa: "⦨", angmsdab: "⦩", angmsdac: "⦪", angmsdad: "⦫", angmsdae: "⦬", angmsdaf: "⦭", angmsdag: "⦮", angmsdah: "⦯", angmsd: "∡", angrt: "∟", angrtvb: "⊾", angrtvbd: "⦝", angsph: "∢", angst: "Å", angzarr: "⍼", Aogon: "Ą", aogon: "ą", Aopf: "𝔸", aopf: "𝕒", apacir: "⩯", ap: "≈", apE: "⩰", ape: "≊", apid: "≋", apos: "'", ApplyFunction: "⁡", approx: "≈", approxeq: "≊", Aring: "Å", aring: "å", Ascr: "𝒜", ascr: "𝒶", Assign: "≔", ast: "*", asymp: "≈", asympeq: "≍", Atilde: "Ã", atilde: "ã", Auml: "Ä", auml: "ä", awconint: "∳", awint: "⨑", backcong: "≌", backepsilon: "϶", backprime: "‵", backsim: "∽", backsimeq: "⋍", Backslash: "∖", Barv: "⫧", barvee: "⊽", barwed: "⌅", Barwed: "⌆", barwedge: "⌅", bbrk: "⎵", bbrktbrk: "⎶", bcong: "≌", Bcy: "Б", bcy: "б", bdquo: "„", becaus: "∵", because: "∵", Because: "∵", bemptyv: "⦰", bepsi: "϶", bernou: "ℬ", Bernoullis: "ℬ", Beta: "Β", beta: "β", beth: "ℶ", between: "≬", Bfr: "𝔅", bfr: "𝔟", bigcap: "⋂", bigcirc: "◯", bigcup: "⋃", bigodot: "⨀", bigoplus: "⨁", bigotimes: "⨂", bigsqcup: "⨆", bigstar: "★", bigtriangledown: "▽", bigtriangleup: "△", biguplus: "⨄", bigvee: "⋁", bigwedge: "⋀", bkarow: "⤍", blacklozenge: "⧫", blacksquare: "▪", blacktriangle: "▴", blacktriangledown: "▾", blacktriangleleft: "◂", blacktriangleright: "▸", blank: "␣", blk12: "▒", blk14: "░", blk34: "▓", block: "█", bne: "=⃥", bnequiv: "≡⃥", bNot: "⫭", bnot: "⌐", Bopf: "𝔹", bopf: "𝕓", bot: "⊥", bottom: "⊥", bowtie: "⋈", boxbox: "⧉", boxdl: "┐", boxdL: "╕", boxDl: "╖", boxDL: "╗", boxdr: "┌", boxdR: "╒", boxDr: "╓", boxDR: "╔", boxh: "─", boxH: "═", boxhd: "┬", boxHd: "╤", boxhD: "╥", boxHD: "╦", boxhu: "┴", boxHu: "╧", boxhU: "╨", boxHU: "╩", boxminus: "⊟", boxplus: "⊞", boxtimes: "⊠", boxul: "┘", boxuL: "╛", boxUl: "╜", boxUL: "╝", boxur: "└", boxuR: "╘", boxUr: "╙", boxUR: "╚", boxv: "│", boxV: "║", boxvh: "┼", boxvH: "╪", boxVh: "╫", boxVH: "╬", boxvl: "┤", boxvL: "╡", boxVl: "╢", boxVL: "╣", boxvr: "├", boxvR: "╞", boxVr: "╟", boxVR: "╠", bprime: "‵", breve: "˘", Breve: "˘", brvbar: "¦", bscr: "𝒷", Bscr: "ℬ", bsemi: "⁏", bsim: "∽", bsime: "⋍", bsolb: "⧅", bsol: "\\", bsolhsub: "⟈", bull: "•", bullet: "•", bump: "≎", bumpE: "⪮", bumpe: "≏", Bumpeq: "≎", bumpeq: "≏", Cacute: "Ć", cacute: "ć", capand: "⩄", capbrcup: "⩉", capcap: "⩋", cap: "∩", Cap: "⋒", capcup: "⩇", capdot: "⩀", CapitalDifferentialD: "ⅅ", caps: "∩︀", caret: "⁁", caron: "ˇ", Cayleys: "ℭ", ccaps: "⩍", Ccaron: "Č", ccaron: "č", Ccedil: "Ç", ccedil: "ç", Ccirc: "Ĉ", ccirc: "ĉ", Cconint: "∰", ccups: "⩌", ccupssm: "⩐", Cdot: "Ċ", cdot: "ċ", cedil: "¸", Cedilla: "¸", cemptyv: "⦲", cent: "¢", centerdot: "·", CenterDot: "·", cfr: "𝔠", Cfr: "ℭ", CHcy: "Ч", chcy: "ч", check: "✓", checkmark: "✓", Chi: "Χ", chi: "χ", circ: "ˆ", circeq: "≗", circlearrowleft: "↺", circlearrowright: "↻", circledast: "⊛", circledcirc: "⊚", circleddash: "⊝", CircleDot: "⊙", circledR: "®", circledS: "Ⓢ", CircleMinus: "⊖", CirclePlus: "⊕", CircleTimes: "⊗", cir: "○", cirE: "⧃", cire: "≗", cirfnint: "⨐", cirmid: "⫯", cirscir: "⧂", ClockwiseContourIntegral: "∲", CloseCurlyDoubleQuote: "”", CloseCurlyQuote: "’", clubs: "♣", clubsuit: "♣", colon: ":", Colon: "∷", Colone: "⩴", colone: "≔", coloneq: "≔", comma: ",", commat: "@", comp: "∁", compfn: "∘", complement: "∁", complexes: "ℂ", cong: "≅", congdot: "⩭", Congruent: "≡", conint: "∮", Conint: "∯", ContourIntegral: "∮", copf: "𝕔", Copf: "ℂ", coprod: "∐", Coproduct: "∐", copy: "©", COPY: "©", copysr: "℗", CounterClockwiseContourIntegral: "∳", crarr: "↵", cross: "✗", Cross: "⨯", Cscr: "𝒞", cscr: "𝒸", csub: "⫏", csube: "⫑", csup: "⫐", csupe: "⫒", ctdot: "⋯", cudarrl: "⤸", cudarrr: "⤵", cuepr: "⋞", cuesc: "⋟", cularr: "↶", cularrp: "⤽", cupbrcap: "⩈", cupcap: "⩆", CupCap: "≍", cup: "∪", Cup: "⋓", cupcup: "⩊", cupdot: "⊍", cupor: "⩅", cups: "∪︀", curarr: "↷", curarrm: "⤼", curlyeqprec: "⋞", curlyeqsucc: "⋟", curlyvee: "⋎", curlywedge: "⋏", curren: "¤", curvearrowleft: "↶", curvearrowright: "↷", cuvee: "⋎", cuwed: "⋏", cwconint: "∲", cwint: "∱", cylcty: "⌭", dagger: "†", Dagger: "‡", daleth: "ℸ", darr: "↓", Darr: "↡", dArr: "⇓", dash: "‐", Dashv: "⫤", dashv: "⊣", dbkarow: "⤏", dblac: "˝", Dcaron: "Ď", dcaron: "ď", Dcy: "Д", dcy: "д", ddagger: "‡", ddarr: "⇊", DD: "ⅅ", dd: "ⅆ", DDotrahd: "⤑", ddotseq: "⩷", deg: "°", Del: "∇", Delta: "Δ", delta: "δ", demptyv: "⦱", dfisht: "⥿", Dfr: "𝔇", dfr: "𝔡", dHar: "⥥", dharl: "⇃", dharr: "⇂", DiacriticalAcute: "´", DiacriticalDot: "˙", DiacriticalDoubleAcute: "˝", DiacriticalGrave: "`", DiacriticalTilde: "˜", diam: "⋄", diamond: "⋄", Diamond: "⋄", diamondsuit: "♦", diams: "♦", die: "¨", DifferentialD: "ⅆ", digamma: "ϝ", disin: "⋲", div: "÷", divide: "÷", divideontimes: "⋇", divonx: "⋇", DJcy: "Ђ", djcy: "ђ", dlcorn: "⌞", dlcrop: "⌍", dollar: "$", Dopf: "𝔻", dopf: "𝕕", Dot: "¨", dot: "˙", DotDot: "⃜", doteq: "≐", doteqdot: "≑", DotEqual: "≐", dotminus: "∸", dotplus: "∔", dotsquare: "⊡", doublebarwedge: "⌆", DoubleContourIntegral: "∯", DoubleDot: "¨", DoubleDownArrow: "⇓", DoubleLeftArrow: "⇐", DoubleLeftRightArrow: "⇔", DoubleLeftTee: "⫤", DoubleLongLeftArrow: "⟸", DoubleLongLeftRightArrow: "⟺", DoubleLongRightArrow: "⟹", DoubleRightArrow: "⇒", DoubleRightTee: "⊨", DoubleUpArrow: "⇑", DoubleUpDownArrow: "⇕", DoubleVerticalBar: "∥", DownArrowBar: "⤓", downarrow: "↓", DownArrow: "↓", Downarrow: "⇓", DownArrowUpArrow: "⇵", DownBreve: "̑", downdownarrows: "⇊", downharpoonleft: "⇃", downharpoonright: "⇂", DownLeftRightVector: "⥐", DownLeftTeeVector: "⥞", DownLeftVectorBar: "⥖", DownLeftVector: "↽", DownRightTeeVector: "⥟", DownRightVectorBar: "⥗", DownRightVector: "⇁", DownTeeArrow: "↧", DownTee: "⊤", drbkarow: "⤐", drcorn: "⌟", drcrop: "⌌", Dscr: "𝒟", dscr: "𝒹", DScy: "Ѕ", dscy: "ѕ", dsol: "⧶", Dstrok: "Đ", dstrok: "đ", dtdot: "⋱", dtri: "▿", dtrif: "▾", duarr: "⇵", duhar: "⥯", dwangle: "⦦", DZcy: "Џ", dzcy: "џ", dzigrarr: "⟿", Eacute: "É", eacute: "é", easter: "⩮", Ecaron: "Ě", ecaron: "ě", Ecirc: "Ê", ecirc: "ê", ecir: "≖", ecolon: "≕", Ecy: "Э", ecy: "э", eDDot: "⩷", Edot: "Ė", edot: "ė", eDot: "≑", ee: "ⅇ", efDot: "≒", Efr: "𝔈", efr: "𝔢", eg: "⪚", Egrave: "È", egrave: "è", egs: "⪖", egsdot: "⪘", el: "⪙", Element: "∈", elinters: "⏧", ell: "ℓ", els: "⪕", elsdot: "⪗", Emacr: "Ē", emacr: "ē", empty: "∅", emptyset: "∅", EmptySmallSquare: "◻", emptyv: "∅", EmptyVerySmallSquare: "▫", emsp13: " ", emsp14: " ", emsp: " ", ENG: "Ŋ", eng: "ŋ", ensp: " ", Eogon: "Ę", eogon: "ę", Eopf: "𝔼", eopf: "𝕖", epar: "⋕", eparsl: "⧣", eplus: "⩱", epsi: "ε", Epsilon: "Ε", epsilon: "ε", epsiv: "ϵ", eqcirc: "≖", eqcolon: "≕", eqsim: "≂", eqslantgtr: "⪖", eqslantless: "⪕", Equal: "⩵", equals: "=", EqualTilde: "≂", equest: "≟", Equilibrium: "⇌", equiv: "≡", equivDD: "⩸", eqvparsl: "⧥", erarr: "⥱", erDot: "≓", escr: "ℯ", Escr: "ℰ", esdot: "≐", Esim: "⩳", esim: "≂", Eta: "Η", eta: "η", ETH: "Ð", eth: "ð", Euml: "Ë", euml: "ë", euro: "€", excl: "!", exist: "∃", Exists: "∃", expectation: "ℰ", exponentiale: "ⅇ", ExponentialE: "ⅇ", fallingdotseq: "≒", Fcy: "Ф", fcy: "ф", female: "♀", ffilig: "ffi", fflig: "ff", ffllig: "ffl", Ffr: "𝔉", ffr: "𝔣", filig: "fi", FilledSmallSquare: "◼", FilledVerySmallSquare: "▪", fjlig: "fj", flat: "♭", fllig: "fl", fltns: "▱", fnof: "ƒ", Fopf: "𝔽", fopf: "𝕗", forall: "∀", ForAll: "∀", fork: "⋔", forkv: "⫙", Fouriertrf: "ℱ", fpartint: "⨍", frac12: "½", frac13: "⅓", frac14: "¼", frac15: "⅕", frac16: "⅙", frac18: "⅛", frac23: "⅔", frac25: "⅖", frac34: "¾", frac35: "⅗", frac38: "⅜", frac45: "⅘", frac56: "⅚", frac58: "⅝", frac78: "⅞", frasl: "⁄", frown: "⌢", fscr: "𝒻", Fscr: "ℱ", gacute: "ǵ", Gamma: "Γ", gamma: "γ", Gammad: "Ϝ", gammad: "ϝ", gap: "⪆", Gbreve: "Ğ", gbreve: "ğ", Gcedil: "Ģ", Gcirc: "Ĝ", gcirc: "ĝ", Gcy: "Г", gcy: "г", Gdot: "Ġ", gdot: "ġ", ge: "≥", gE: "≧", gEl: "⪌", gel: "⋛", geq: "≥", geqq: "≧", geqslant: "⩾", gescc: "⪩", ges: "⩾", gesdot: "⪀", gesdoto: "⪂", gesdotol: "⪄", gesl: "⋛︀", gesles: "⪔", Gfr: "𝔊", gfr: "𝔤", gg: "≫", Gg: "⋙", ggg: "⋙", gimel: "ℷ", GJcy: "Ѓ", gjcy: "ѓ", gla: "⪥", gl: "≷", glE: "⪒", glj: "⪤", gnap: "⪊", gnapprox: "⪊", gne: "⪈", gnE: "≩", gneq: "⪈", gneqq: "≩", gnsim: "⋧", Gopf: "𝔾", gopf: "𝕘", grave: "`", GreaterEqual: "≥", GreaterEqualLess: "⋛", GreaterFullEqual: "≧", GreaterGreater: "⪢", GreaterLess: "≷", GreaterSlantEqual: "⩾", GreaterTilde: "≳", Gscr: "𝒢", gscr: "ℊ", gsim: "≳", gsime: "⪎", gsiml: "⪐", gtcc: "⪧", gtcir: "⩺", gt: ">", GT: ">", Gt: "≫", gtdot: "⋗", gtlPar: "⦕", gtquest: "⩼", gtrapprox: "⪆", gtrarr: "⥸", gtrdot: "⋗", gtreqless: "⋛", gtreqqless: "⪌", gtrless: "≷", gtrsim: "≳", gvertneqq: "≩︀", gvnE: "≩︀", Hacek: "ˇ", hairsp: " ", half: "½", hamilt: "ℋ", HARDcy: "Ъ", hardcy: "ъ", harrcir: "⥈", harr: "↔", hArr: "⇔", harrw: "↭", Hat: "^", hbar: "ℏ", Hcirc: "Ĥ", hcirc: "ĥ", hearts: "♥", heartsuit: "♥", hellip: "…", hercon: "⊹", hfr: "𝔥", Hfr: "ℌ", HilbertSpace: "ℋ", hksearow: "⤥", hkswarow: "⤦", hoarr: "⇿", homtht: "∻", hookleftarrow: "↩", hookrightarrow: "↪", hopf: "𝕙", Hopf: "ℍ", horbar: "―", HorizontalLine: "─", hscr: "𝒽", Hscr: "ℋ", hslash: "ℏ", Hstrok: "Ħ", hstrok: "ħ", HumpDownHump: "≎", HumpEqual: "≏", hybull: "⁃", hyphen: "‐", Iacute: "Í", iacute: "í", ic: "⁣", Icirc: "Î", icirc: "î", Icy: "И", icy: "и", Idot: "İ", IEcy: "Е", iecy: "е", iexcl: "¡", iff: "⇔", ifr: "𝔦", Ifr: "ℑ", Igrave: "Ì", igrave: "ì", ii: "ⅈ", iiiint: "⨌", iiint: "∭", iinfin: "⧜", iiota: "℩", IJlig: "IJ", ijlig: "ij", Imacr: "Ī", imacr: "ī", image: "ℑ", ImaginaryI: "ⅈ", imagline: "ℐ", imagpart: "ℑ", imath: "ı", Im: "ℑ", imof: "⊷", imped: "Ƶ", Implies: "⇒", incare: "℅", in: "∈", infin: "∞", infintie: "⧝", inodot: "ı", intcal: "⊺", int: "∫", Int: "∬", integers: "ℤ", Integral: "∫", intercal: "⊺", Intersection: "⋂", intlarhk: "⨗", intprod: "⨼", InvisibleComma: "⁣", InvisibleTimes: "⁢", IOcy: "Ё", iocy: "ё", Iogon: "Į", iogon: "į", Iopf: "𝕀", iopf: "𝕚", Iota: "Ι", iota: "ι", iprod: "⨼", iquest: "¿", iscr: "𝒾", Iscr: "ℐ", isin: "∈", isindot: "⋵", isinE: "⋹", isins: "⋴", isinsv: "⋳", isinv: "∈", it: "⁢", Itilde: "Ĩ", itilde: "ĩ", Iukcy: "І", iukcy: "і", Iuml: "Ï", iuml: "ï", Jcirc: "Ĵ", jcirc: "ĵ", Jcy: "Й", jcy: "й", Jfr: "𝔍", jfr: "𝔧", jmath: "ȷ", Jopf: "𝕁", jopf: "𝕛", Jscr: "𝒥", jscr: "𝒿", Jsercy: "Ј", jsercy: "ј", Jukcy: "Є", jukcy: "є", Kappa: "Κ", kappa: "κ", kappav: "ϰ", Kcedil: "Ķ", kcedil: "ķ", Kcy: "К", kcy: "к", Kfr: "𝔎", kfr: "𝔨", kgreen: "ĸ", KHcy: "Х", khcy: "х", KJcy: "Ќ", kjcy: "ќ", Kopf: "𝕂", kopf: "𝕜", Kscr: "𝒦", kscr: "𝓀", lAarr: "⇚", Lacute: "Ĺ", lacute: "ĺ", laemptyv: "⦴", lagran: "ℒ", Lambda: "Λ", lambda: "λ", lang: "⟨", Lang: "⟪", langd: "⦑", langle: "⟨", lap: "⪅", Laplacetrf: "ℒ", laquo: "«", larrb: "⇤", larrbfs: "⤟", larr: "←", Larr: "↞", lArr: "⇐", larrfs: "⤝", larrhk: "↩", larrlp: "↫", larrpl: "⤹", larrsim: "⥳", larrtl: "↢", latail: "⤙", lAtail: "⤛", lat: "⪫", late: "⪭", lates: "⪭︀", lbarr: "⤌", lBarr: "⤎", lbbrk: "❲", lbrace: "{", lbrack: "[", lbrke: "⦋", lbrksld: "⦏", lbrkslu: "⦍", Lcaron: "Ľ", lcaron: "ľ", Lcedil: "Ļ", lcedil: "ļ", lceil: "⌈", lcub: "{", Lcy: "Л", lcy: "л", ldca: "⤶", ldquo: "“", ldquor: "„", ldrdhar: "⥧", ldrushar: "⥋", ldsh: "↲", le: "≤", lE: "≦", LeftAngleBracket: "⟨", LeftArrowBar: "⇤", leftarrow: "←", LeftArrow: "←", Leftarrow: "⇐", LeftArrowRightArrow: "⇆", leftarrowtail: "↢", LeftCeiling: "⌈", LeftDoubleBracket: "⟦", LeftDownTeeVector: "⥡", LeftDownVectorBar: "⥙", LeftDownVector: "⇃", LeftFloor: "⌊", leftharpoondown: "↽", leftharpoonup: "↼", leftleftarrows: "⇇", leftrightarrow: "↔", LeftRightArrow: "↔", Leftrightarrow: "⇔", leftrightarrows: "⇆", leftrightharpoons: "⇋", leftrightsquigarrow: "↭", LeftRightVector: "⥎", LeftTeeArrow: "↤", LeftTee: "⊣", LeftTeeVector: "⥚", leftthreetimes: "⋋", LeftTriangleBar: "⧏", LeftTriangle: "⊲", LeftTriangleEqual: "⊴", LeftUpDownVector: "⥑", LeftUpTeeVector: "⥠", LeftUpVectorBar: "⥘", LeftUpVector: "↿", LeftVectorBar: "⥒", LeftVector: "↼", lEg: "⪋", leg: "⋚", leq: "≤", leqq: "≦", leqslant: "⩽", lescc: "⪨", les: "⩽", lesdot: "⩿", lesdoto: "⪁", lesdotor: "⪃", lesg: "⋚︀", lesges: "⪓", lessapprox: "⪅", lessdot: "⋖", lesseqgtr: "⋚", lesseqqgtr: "⪋", LessEqualGreater: "⋚", LessFullEqual: "≦", LessGreater: "≶", lessgtr: "≶", LessLess: "⪡", lesssim: "≲", LessSlantEqual: "⩽", LessTilde: "≲", lfisht: "⥼", lfloor: "⌊", Lfr: "𝔏", lfr: "𝔩", lg: "≶", lgE: "⪑", lHar: "⥢", lhard: "↽", lharu: "↼", lharul: "⥪", lhblk: "▄", LJcy: "Љ", ljcy: "љ", llarr: "⇇", ll: "≪", Ll: "⋘", llcorner: "⌞", Lleftarrow: "⇚", llhard: "⥫", lltri: "◺", Lmidot: "Ŀ", lmidot: "ŀ", lmoustache: "⎰", lmoust: "⎰", lnap: "⪉", lnapprox: "⪉", lne: "⪇", lnE: "≨", lneq: "⪇", lneqq: "≨", lnsim: "⋦", loang: "⟬", loarr: "⇽", lobrk: "⟦", longleftarrow: "⟵", LongLeftArrow: "⟵", Longleftarrow: "⟸", longleftrightarrow: "⟷", LongLeftRightArrow: "⟷", Longleftrightarrow: "⟺", longmapsto: "⟼", longrightarrow: "⟶", LongRightArrow: "⟶", Longrightarrow: "⟹", looparrowleft: "↫", looparrowright: "↬", lopar: "⦅", Lopf: "𝕃", lopf: "𝕝", loplus: "⨭", lotimes: "⨴", lowast: "∗", lowbar: "_", LowerLeftArrow: "↙", LowerRightArrow: "↘", loz: "◊", lozenge: "◊", lozf: "⧫", lpar: "(", lparlt: "⦓", lrarr: "⇆", lrcorner: "⌟", lrhar: "⇋", lrhard: "⥭", lrm: "‎", lrtri: "⊿", lsaquo: "‹", lscr: "𝓁", Lscr: "ℒ", lsh: "↰", Lsh: "↰", lsim: "≲", lsime: "⪍", lsimg: "⪏", lsqb: "[", lsquo: "‘", lsquor: "‚", Lstrok: "Ł", lstrok: "ł", ltcc: "⪦", ltcir: "⩹", lt: "<", LT: "<", Lt: "≪", ltdot: "⋖", lthree: "⋋", ltimes: "⋉", ltlarr: "⥶", ltquest: "⩻", ltri: "◃", ltrie: "⊴", ltrif: "◂", ltrPar: "⦖", lurdshar: "⥊", luruhar: "⥦", lvertneqq: "≨︀", lvnE: "≨︀", macr: "¯", male: "♂", malt: "✠", maltese: "✠", Map: "⤅", map: "↦", mapsto: "↦", mapstodown: "↧", mapstoleft: "↤", mapstoup: "↥", marker: "▮", mcomma: "⨩", Mcy: "М", mcy: "м", mdash: "—", mDDot: "∺", measuredangle: "∡", MediumSpace: " ", Mellintrf: "ℳ", Mfr: "𝔐", mfr: "𝔪", mho: "℧", micro: "µ", midast: "*", midcir: "⫰", mid: "∣", middot: "·", minusb: "⊟", minus: "−", minusd: "∸", minusdu: "⨪", MinusPlus: "∓", mlcp: "⫛", mldr: "…", mnplus: "∓", models: "⊧", Mopf: "𝕄", mopf: "𝕞", mp: "∓", mscr: "𝓂", Mscr: "ℳ", mstpos: "∾", Mu: "Μ", mu: "μ", multimap: "⊸", mumap: "⊸", nabla: "∇", Nacute: "Ń", nacute: "ń", nang: "∠⃒", nap: "≉", napE: "⩰̸", napid: "≋̸", napos: "ʼn", napprox: "≉", natural: "♮", naturals: "ℕ", natur: "♮", nbsp: " ", nbump: "≎̸", nbumpe: "≏̸", ncap: "⩃", Ncaron: "Ň", ncaron: "ň", Ncedil: "Ņ", ncedil: "ņ", ncong: "≇", ncongdot: "⩭̸", ncup: "⩂", Ncy: "Н", ncy: "н", ndash: "–", nearhk: "⤤", nearr: "↗", neArr: "⇗", nearrow: "↗", ne: "≠", nedot: "≐̸", NegativeMediumSpace: "​", NegativeThickSpace: "​", NegativeThinSpace: "​", NegativeVeryThinSpace: "​", nequiv: "≢", nesear: "⤨", nesim: "≂̸", NestedGreaterGreater: "≫", NestedLessLess: "≪", NewLine: `
873
+ `, nexist: "∄", nexists: "∄", Nfr: "𝔑", nfr: "𝔫", ngE: "≧̸", nge: "≱", ngeq: "≱", ngeqq: "≧̸", ngeqslant: "⩾̸", nges: "⩾̸", nGg: "⋙̸", ngsim: "≵", nGt: "≫⃒", ngt: "≯", ngtr: "≯", nGtv: "≫̸", nharr: "↮", nhArr: "⇎", nhpar: "⫲", ni: "∋", nis: "⋼", nisd: "⋺", niv: "∋", NJcy: "Њ", njcy: "њ", nlarr: "↚", nlArr: "⇍", nldr: "‥", nlE: "≦̸", nle: "≰", nleftarrow: "↚", nLeftarrow: "⇍", nleftrightarrow: "↮", nLeftrightarrow: "⇎", nleq: "≰", nleqq: "≦̸", nleqslant: "⩽̸", nles: "⩽̸", nless: "≮", nLl: "⋘̸", nlsim: "≴", nLt: "≪⃒", nlt: "≮", nltri: "⋪", nltrie: "⋬", nLtv: "≪̸", nmid: "∤", NoBreak: "⁠", NonBreakingSpace: " ", nopf: "𝕟", Nopf: "ℕ", Not: "⫬", not: "¬", NotCongruent: "≢", NotCupCap: "≭", NotDoubleVerticalBar: "∦", NotElement: "∉", NotEqual: "≠", NotEqualTilde: "≂̸", NotExists: "∄", NotGreater: "≯", NotGreaterEqual: "≱", NotGreaterFullEqual: "≧̸", NotGreaterGreater: "≫̸", NotGreaterLess: "≹", NotGreaterSlantEqual: "⩾̸", NotGreaterTilde: "≵", NotHumpDownHump: "≎̸", NotHumpEqual: "≏̸", notin: "∉", notindot: "⋵̸", notinE: "⋹̸", notinva: "∉", notinvb: "⋷", notinvc: "⋶", NotLeftTriangleBar: "⧏̸", NotLeftTriangle: "⋪", NotLeftTriangleEqual: "⋬", NotLess: "≮", NotLessEqual: "≰", NotLessGreater: "≸", NotLessLess: "≪̸", NotLessSlantEqual: "⩽̸", NotLessTilde: "≴", NotNestedGreaterGreater: "⪢̸", NotNestedLessLess: "⪡̸", notni: "∌", notniva: "∌", notnivb: "⋾", notnivc: "⋽", NotPrecedes: "⊀", NotPrecedesEqual: "⪯̸", NotPrecedesSlantEqual: "⋠", NotReverseElement: "∌", NotRightTriangleBar: "⧐̸", NotRightTriangle: "⋫", NotRightTriangleEqual: "⋭", NotSquareSubset: "⊏̸", NotSquareSubsetEqual: "⋢", NotSquareSuperset: "⊐̸", NotSquareSupersetEqual: "⋣", NotSubset: "⊂⃒", NotSubsetEqual: "⊈", NotSucceeds: "⊁", NotSucceedsEqual: "⪰̸", NotSucceedsSlantEqual: "⋡", NotSucceedsTilde: "≿̸", NotSuperset: "⊃⃒", NotSupersetEqual: "⊉", NotTilde: "≁", NotTildeEqual: "≄", NotTildeFullEqual: "≇", NotTildeTilde: "≉", NotVerticalBar: "∤", nparallel: "∦", npar: "∦", nparsl: "⫽⃥", npart: "∂̸", npolint: "⨔", npr: "⊀", nprcue: "⋠", nprec: "⊀", npreceq: "⪯̸", npre: "⪯̸", nrarrc: "⤳̸", nrarr: "↛", nrArr: "⇏", nrarrw: "↝̸", nrightarrow: "↛", nRightarrow: "⇏", nrtri: "⋫", nrtrie: "⋭", nsc: "⊁", nsccue: "⋡", nsce: "⪰̸", Nscr: "𝒩", nscr: "𝓃", nshortmid: "∤", nshortparallel: "∦", nsim: "≁", nsime: "≄", nsimeq: "≄", nsmid: "∤", nspar: "∦", nsqsube: "⋢", nsqsupe: "⋣", nsub: "⊄", nsubE: "⫅̸", nsube: "⊈", nsubset: "⊂⃒", nsubseteq: "⊈", nsubseteqq: "⫅̸", nsucc: "⊁", nsucceq: "⪰̸", nsup: "⊅", nsupE: "⫆̸", nsupe: "⊉", nsupset: "⊃⃒", nsupseteq: "⊉", nsupseteqq: "⫆̸", ntgl: "≹", Ntilde: "Ñ", ntilde: "ñ", ntlg: "≸", ntriangleleft: "⋪", ntrianglelefteq: "⋬", ntriangleright: "⋫", ntrianglerighteq: "⋭", Nu: "Ν", nu: "ν", num: "#", numero: "№", numsp: " ", nvap: "≍⃒", nvdash: "⊬", nvDash: "⊭", nVdash: "⊮", nVDash: "⊯", nvge: "≥⃒", nvgt: ">⃒", nvHarr: "⤄", nvinfin: "⧞", nvlArr: "⤂", nvle: "≤⃒", nvlt: "<⃒", nvltrie: "⊴⃒", nvrArr: "⤃", nvrtrie: "⊵⃒", nvsim: "∼⃒", nwarhk: "⤣", nwarr: "↖", nwArr: "⇖", nwarrow: "↖", nwnear: "⤧", Oacute: "Ó", oacute: "ó", oast: "⊛", Ocirc: "Ô", ocirc: "ô", ocir: "⊚", Ocy: "О", ocy: "о", odash: "⊝", Odblac: "Ő", odblac: "ő", odiv: "⨸", odot: "⊙", odsold: "⦼", OElig: "Œ", oelig: "œ", ofcir: "⦿", Ofr: "𝔒", ofr: "𝔬", ogon: "˛", Ograve: "Ò", ograve: "ò", ogt: "⧁", ohbar: "⦵", ohm: "Ω", oint: "∮", olarr: "↺", olcir: "⦾", olcross: "⦻", oline: "‾", olt: "⧀", Omacr: "Ō", omacr: "ō", Omega: "Ω", omega: "ω", Omicron: "Ο", omicron: "ο", omid: "⦶", ominus: "⊖", Oopf: "𝕆", oopf: "𝕠", opar: "⦷", OpenCurlyDoubleQuote: "“", OpenCurlyQuote: "‘", operp: "⦹", oplus: "⊕", orarr: "↻", Or: "⩔", or: "∨", ord: "⩝", order: "ℴ", orderof: "ℴ", ordf: "ª", ordm: "º", origof: "⊶", oror: "⩖", orslope: "⩗", orv: "⩛", oS: "Ⓢ", Oscr: "𝒪", oscr: "ℴ", Oslash: "Ø", oslash: "ø", osol: "⊘", Otilde: "Õ", otilde: "õ", otimesas: "⨶", Otimes: "⨷", otimes: "⊗", Ouml: "Ö", ouml: "ö", ovbar: "⌽", OverBar: "‾", OverBrace: "⏞", OverBracket: "⎴", OverParenthesis: "⏜", para: "¶", parallel: "∥", par: "∥", parsim: "⫳", parsl: "⫽", part: "∂", PartialD: "∂", Pcy: "П", pcy: "п", percnt: "%", period: ".", permil: "‰", perp: "⊥", pertenk: "‱", Pfr: "𝔓", pfr: "𝔭", Phi: "Φ", phi: "φ", phiv: "ϕ", phmmat: "ℳ", phone: "☎", Pi: "Π", pi: "π", pitchfork: "⋔", piv: "ϖ", planck: "ℏ", planckh: "ℎ", plankv: "ℏ", plusacir: "⨣", plusb: "⊞", pluscir: "⨢", plus: "+", plusdo: "∔", plusdu: "⨥", pluse: "⩲", PlusMinus: "±", plusmn: "±", plussim: "⨦", plustwo: "⨧", pm: "±", Poincareplane: "ℌ", pointint: "⨕", popf: "𝕡", Popf: "ℙ", pound: "£", prap: "⪷", Pr: "⪻", pr: "≺", prcue: "≼", precapprox: "⪷", prec: "≺", preccurlyeq: "≼", Precedes: "≺", PrecedesEqual: "⪯", PrecedesSlantEqual: "≼", PrecedesTilde: "≾", preceq: "⪯", precnapprox: "⪹", precneqq: "⪵", precnsim: "⋨", pre: "⪯", prE: "⪳", precsim: "≾", prime: "′", Prime: "″", primes: "ℙ", prnap: "⪹", prnE: "⪵", prnsim: "⋨", prod: "∏", Product: "∏", profalar: "⌮", profline: "⌒", profsurf: "⌓", prop: "∝", Proportional: "∝", Proportion: "∷", propto: "∝", prsim: "≾", prurel: "⊰", Pscr: "𝒫", pscr: "𝓅", Psi: "Ψ", psi: "ψ", puncsp: " ", Qfr: "𝔔", qfr: "𝔮", qint: "⨌", qopf: "𝕢", Qopf: "ℚ", qprime: "⁗", Qscr: "𝒬", qscr: "𝓆", quaternions: "ℍ", quatint: "⨖", quest: "?", questeq: "≟", quot: '"', QUOT: '"', rAarr: "⇛", race: "∽̱", Racute: "Ŕ", racute: "ŕ", radic: "√", raemptyv: "⦳", rang: "⟩", Rang: "⟫", rangd: "⦒", range: "⦥", rangle: "⟩", raquo: "»", rarrap: "⥵", rarrb: "⇥", rarrbfs: "⤠", rarrc: "⤳", rarr: "→", Rarr: "↠", rArr: "⇒", rarrfs: "⤞", rarrhk: "↪", rarrlp: "↬", rarrpl: "⥅", rarrsim: "⥴", Rarrtl: "⤖", rarrtl: "↣", rarrw: "↝", ratail: "⤚", rAtail: "⤜", ratio: "∶", rationals: "ℚ", rbarr: "⤍", rBarr: "⤏", RBarr: "⤐", rbbrk: "❳", rbrace: "}", rbrack: "]", rbrke: "⦌", rbrksld: "⦎", rbrkslu: "⦐", Rcaron: "Ř", rcaron: "ř", Rcedil: "Ŗ", rcedil: "ŗ", rceil: "⌉", rcub: "}", Rcy: "Р", rcy: "р", rdca: "⤷", rdldhar: "⥩", rdquo: "”", rdquor: "”", rdsh: "↳", real: "ℜ", realine: "ℛ", realpart: "ℜ", reals: "ℝ", Re: "ℜ", rect: "▭", reg: "®", REG: "®", ReverseElement: "∋", ReverseEquilibrium: "⇋", ReverseUpEquilibrium: "⥯", rfisht: "⥽", rfloor: "⌋", rfr: "𝔯", Rfr: "ℜ", rHar: "⥤", rhard: "⇁", rharu: "⇀", rharul: "⥬", Rho: "Ρ", rho: "ρ", rhov: "ϱ", RightAngleBracket: "⟩", RightArrowBar: "⇥", rightarrow: "→", RightArrow: "→", Rightarrow: "⇒", RightArrowLeftArrow: "⇄", rightarrowtail: "↣", RightCeiling: "⌉", RightDoubleBracket: "⟧", RightDownTeeVector: "⥝", RightDownVectorBar: "⥕", RightDownVector: "⇂", RightFloor: "⌋", rightharpoondown: "⇁", rightharpoonup: "⇀", rightleftarrows: "⇄", rightleftharpoons: "⇌", rightrightarrows: "⇉", rightsquigarrow: "↝", RightTeeArrow: "↦", RightTee: "⊢", RightTeeVector: "⥛", rightthreetimes: "⋌", RightTriangleBar: "⧐", RightTriangle: "⊳", RightTriangleEqual: "⊵", RightUpDownVector: "⥏", RightUpTeeVector: "⥜", RightUpVectorBar: "⥔", RightUpVector: "↾", RightVectorBar: "⥓", RightVector: "⇀", ring: "˚", risingdotseq: "≓", rlarr: "⇄", rlhar: "⇌", rlm: "‏", rmoustache: "⎱", rmoust: "⎱", rnmid: "⫮", roang: "⟭", roarr: "⇾", robrk: "⟧", ropar: "⦆", ropf: "𝕣", Ropf: "ℝ", roplus: "⨮", rotimes: "⨵", RoundImplies: "⥰", rpar: ")", rpargt: "⦔", rppolint: "⨒", rrarr: "⇉", Rrightarrow: "⇛", rsaquo: "›", rscr: "𝓇", Rscr: "ℛ", rsh: "↱", Rsh: "↱", rsqb: "]", rsquo: "’", rsquor: "’", rthree: "⋌", rtimes: "⋊", rtri: "▹", rtrie: "⊵", rtrif: "▸", rtriltri: "⧎", RuleDelayed: "⧴", ruluhar: "⥨", rx: "℞", Sacute: "Ś", sacute: "ś", sbquo: "‚", scap: "⪸", Scaron: "Š", scaron: "š", Sc: "⪼", sc: "≻", sccue: "≽", sce: "⪰", scE: "⪴", Scedil: "Ş", scedil: "ş", Scirc: "Ŝ", scirc: "ŝ", scnap: "⪺", scnE: "⪶", scnsim: "⋩", scpolint: "⨓", scsim: "≿", Scy: "С", scy: "с", sdotb: "⊡", sdot: "⋅", sdote: "⩦", searhk: "⤥", searr: "↘", seArr: "⇘", searrow: "↘", sect: "§", semi: ";", seswar: "⤩", setminus: "∖", setmn: "∖", sext: "✶", Sfr: "𝔖", sfr: "𝔰", sfrown: "⌢", sharp: "♯", SHCHcy: "Щ", shchcy: "щ", SHcy: "Ш", shcy: "ш", ShortDownArrow: "↓", ShortLeftArrow: "←", shortmid: "∣", shortparallel: "∥", ShortRightArrow: "→", ShortUpArrow: "↑", shy: "­", Sigma: "Σ", sigma: "σ", sigmaf: "ς", sigmav: "ς", sim: "∼", simdot: "⩪", sime: "≃", simeq: "≃", simg: "⪞", simgE: "⪠", siml: "⪝", simlE: "⪟", simne: "≆", simplus: "⨤", simrarr: "⥲", slarr: "←", SmallCircle: "∘", smallsetminus: "∖", smashp: "⨳", smeparsl: "⧤", smid: "∣", smile: "⌣", smt: "⪪", smte: "⪬", smtes: "⪬︀", SOFTcy: "Ь", softcy: "ь", solbar: "⌿", solb: "⧄", sol: "/", Sopf: "𝕊", sopf: "𝕤", spades: "♠", spadesuit: "♠", spar: "∥", sqcap: "⊓", sqcaps: "⊓︀", sqcup: "⊔", sqcups: "⊔︀", Sqrt: "√", sqsub: "⊏", sqsube: "⊑", sqsubset: "⊏", sqsubseteq: "⊑", sqsup: "⊐", sqsupe: "⊒", sqsupset: "⊐", sqsupseteq: "⊒", square: "□", Square: "□", SquareIntersection: "⊓", SquareSubset: "⊏", SquareSubsetEqual: "⊑", SquareSuperset: "⊐", SquareSupersetEqual: "⊒", SquareUnion: "⊔", squarf: "▪", squ: "□", squf: "▪", srarr: "→", Sscr: "𝒮", sscr: "𝓈", ssetmn: "∖", ssmile: "⌣", sstarf: "⋆", Star: "⋆", star: "☆", starf: "★", straightepsilon: "ϵ", straightphi: "ϕ", strns: "¯", sub: "⊂", Sub: "⋐", subdot: "⪽", subE: "⫅", sube: "⊆", subedot: "⫃", submult: "⫁", subnE: "⫋", subne: "⊊", subplus: "⪿", subrarr: "⥹", subset: "⊂", Subset: "⋐", subseteq: "⊆", subseteqq: "⫅", SubsetEqual: "⊆", subsetneq: "⊊", subsetneqq: "⫋", subsim: "⫇", subsub: "⫕", subsup: "⫓", succapprox: "⪸", succ: "≻", succcurlyeq: "≽", Succeeds: "≻", SucceedsEqual: "⪰", SucceedsSlantEqual: "≽", SucceedsTilde: "≿", succeq: "⪰", succnapprox: "⪺", succneqq: "⪶", succnsim: "⋩", succsim: "≿", SuchThat: "∋", sum: "∑", Sum: "∑", sung: "♪", sup1: "¹", sup2: "²", sup3: "³", sup: "⊃", Sup: "⋑", supdot: "⪾", supdsub: "⫘", supE: "⫆", supe: "⊇", supedot: "⫄", Superset: "⊃", SupersetEqual: "⊇", suphsol: "⟉", suphsub: "⫗", suplarr: "⥻", supmult: "⫂", supnE: "⫌", supne: "⊋", supplus: "⫀", supset: "⊃", Supset: "⋑", supseteq: "⊇", supseteqq: "⫆", supsetneq: "⊋", supsetneqq: "⫌", supsim: "⫈", supsub: "⫔", supsup: "⫖", swarhk: "⤦", swarr: "↙", swArr: "⇙", swarrow: "↙", swnwar: "⤪", szlig: "ß", Tab: " ", target: "⌖", Tau: "Τ", tau: "τ", tbrk: "⎴", Tcaron: "Ť", tcaron: "ť", Tcedil: "Ţ", tcedil: "ţ", Tcy: "Т", tcy: "т", tdot: "⃛", telrec: "⌕", Tfr: "𝔗", tfr: "𝔱", there4: "∴", therefore: "∴", Therefore: "∴", Theta: "Θ", theta: "θ", thetasym: "ϑ", thetav: "ϑ", thickapprox: "≈", thicksim: "∼", ThickSpace: "  ", ThinSpace: " ", thinsp: " ", thkap: "≈", thksim: "∼", THORN: "Þ", thorn: "þ", tilde: "˜", Tilde: "∼", TildeEqual: "≃", TildeFullEqual: "≅", TildeTilde: "≈", timesbar: "⨱", timesb: "⊠", times: "×", timesd: "⨰", tint: "∭", toea: "⤨", topbot: "⌶", topcir: "⫱", top: "⊤", Topf: "𝕋", topf: "𝕥", topfork: "⫚", tosa: "⤩", tprime: "‴", trade: "™", TRADE: "™", triangle: "▵", triangledown: "▿", triangleleft: "◃", trianglelefteq: "⊴", triangleq: "≜", triangleright: "▹", trianglerighteq: "⊵", tridot: "◬", trie: "≜", triminus: "⨺", TripleDot: "⃛", triplus: "⨹", trisb: "⧍", tritime: "⨻", trpezium: "⏢", Tscr: "𝒯", tscr: "𝓉", TScy: "Ц", tscy: "ц", TSHcy: "Ћ", tshcy: "ћ", Tstrok: "Ŧ", tstrok: "ŧ", twixt: "≬", twoheadleftarrow: "↞", twoheadrightarrow: "↠", Uacute: "Ú", uacute: "ú", uarr: "↑", Uarr: "↟", uArr: "⇑", Uarrocir: "⥉", Ubrcy: "Ў", ubrcy: "ў", Ubreve: "Ŭ", ubreve: "ŭ", Ucirc: "Û", ucirc: "û", Ucy: "У", ucy: "у", udarr: "⇅", Udblac: "Ű", udblac: "ű", udhar: "⥮", ufisht: "⥾", Ufr: "𝔘", ufr: "𝔲", Ugrave: "Ù", ugrave: "ù", uHar: "⥣", uharl: "↿", uharr: "↾", uhblk: "▀", ulcorn: "⌜", ulcorner: "⌜", ulcrop: "⌏", ultri: "◸", Umacr: "Ū", umacr: "ū", uml: "¨", UnderBar: "_", UnderBrace: "⏟", UnderBracket: "⎵", UnderParenthesis: "⏝", Union: "⋃", UnionPlus: "⊎", Uogon: "Ų", uogon: "ų", Uopf: "𝕌", uopf: "𝕦", UpArrowBar: "⤒", uparrow: "↑", UpArrow: "↑", Uparrow: "⇑", UpArrowDownArrow: "⇅", updownarrow: "↕", UpDownArrow: "↕", Updownarrow: "⇕", UpEquilibrium: "⥮", upharpoonleft: "↿", upharpoonright: "↾", uplus: "⊎", UpperLeftArrow: "↖", UpperRightArrow: "↗", upsi: "υ", Upsi: "ϒ", upsih: "ϒ", Upsilon: "Υ", upsilon: "υ", UpTeeArrow: "↥", UpTee: "⊥", upuparrows: "⇈", urcorn: "⌝", urcorner: "⌝", urcrop: "⌎", Uring: "Ů", uring: "ů", urtri: "◹", Uscr: "𝒰", uscr: "𝓊", utdot: "⋰", Utilde: "Ũ", utilde: "ũ", utri: "▵", utrif: "▴", uuarr: "⇈", Uuml: "Ü", uuml: "ü", uwangle: "⦧", vangrt: "⦜", varepsilon: "ϵ", varkappa: "ϰ", varnothing: "∅", varphi: "ϕ", varpi: "ϖ", varpropto: "∝", varr: "↕", vArr: "⇕", varrho: "ϱ", varsigma: "ς", varsubsetneq: "⊊︀", varsubsetneqq: "⫋︀", varsupsetneq: "⊋︀", varsupsetneqq: "⫌︀", vartheta: "ϑ", vartriangleleft: "⊲", vartriangleright: "⊳", vBar: "⫨", Vbar: "⫫", vBarv: "⫩", Vcy: "В", vcy: "в", vdash: "⊢", vDash: "⊨", Vdash: "⊩", VDash: "⊫", Vdashl: "⫦", veebar: "⊻", vee: "∨", Vee: "⋁", veeeq: "≚", vellip: "⋮", verbar: "|", Verbar: "‖", vert: "|", Vert: "‖", VerticalBar: "∣", VerticalLine: "|", VerticalSeparator: "❘", VerticalTilde: "≀", VeryThinSpace: " ", Vfr: "𝔙", vfr: "𝔳", vltri: "⊲", vnsub: "⊂⃒", vnsup: "⊃⃒", Vopf: "𝕍", vopf: "𝕧", vprop: "∝", vrtri: "⊳", Vscr: "𝒱", vscr: "𝓋", vsubnE: "⫋︀", vsubne: "⊊︀", vsupnE: "⫌︀", vsupne: "⊋︀", Vvdash: "⊪", vzigzag: "⦚", Wcirc: "Ŵ", wcirc: "ŵ", wedbar: "⩟", wedge: "∧", Wedge: "⋀", wedgeq: "≙", weierp: "℘", Wfr: "𝔚", wfr: "𝔴", Wopf: "𝕎", wopf: "𝕨", wp: "℘", wr: "≀", wreath: "≀", Wscr: "𝒲", wscr: "𝓌", xcap: "⋂", xcirc: "◯", xcup: "⋃", xdtri: "▽", Xfr: "𝔛", xfr: "𝔵", xharr: "⟷", xhArr: "⟺", Xi: "Ξ", xi: "ξ", xlarr: "⟵", xlArr: "⟸", xmap: "⟼", xnis: "⋻", xodot: "⨀", Xopf: "𝕏", xopf: "𝕩", xoplus: "⨁", xotime: "⨂", xrarr: "⟶", xrArr: "⟹", Xscr: "𝒳", xscr: "𝓍", xsqcup: "⨆", xuplus: "⨄", xutri: "△", xvee: "⋁", xwedge: "⋀", Yacute: "Ý", yacute: "ý", YAcy: "Я", yacy: "я", Ycirc: "Ŷ", ycirc: "ŷ", Ycy: "Ы", ycy: "ы", yen: "¥", Yfr: "𝔜", yfr: "𝔶", YIcy: "Ї", yicy: "ї", Yopf: "𝕐", yopf: "𝕪", Yscr: "𝒴", yscr: "𝓎", YUcy: "Ю", yucy: "ю", yuml: "ÿ", Yuml: "Ÿ", Zacute: "Ź", zacute: "ź", Zcaron: "Ž", zcaron: "ž", Zcy: "З", zcy: "з", Zdot: "Ż", zdot: "ż", zeetrf: "ℨ", ZeroWidthSpace: "​", Zeta: "Ζ", zeta: "ζ", zfr: "𝔷", Zfr: "ℨ", ZHcy: "Ж", zhcy: "ж", zigrarr: "⇝", zopf: "𝕫", Zopf: "ℤ", Zscr: "𝒵", zscr: "𝓏", zwj: "‍", zwnj: "‌" }, ba = /^#[xX]([A-Fa-f0-9]+)$/, Aa = /^#([0-9]+)$/, Da = /^([A-Za-z0-9]+)$/, Wr = function() {
1127
874
  function t(e) {
1128
875
  this.named = e;
1129
876
  }
1130
877
  return t.prototype.parse = function(e) {
1131
878
  if (e) {
1132
- var r = e.match(Wa);
879
+ var r = e.match(ba);
1133
880
  if (r) return String.fromCharCode(parseInt(r[1], 16));
1134
- if (r = e.match(Ka), r) return String.fromCharCode(parseInt(r[1], 10));
1135
- if (r = e.match(Qa), r) return this.named[r[1]];
881
+ if (r = e.match(Aa), r) return String.fromCharCode(parseInt(r[1], 10));
882
+ if (r = e.match(Da), r) return this.named[r[1]];
1136
883
  }
1137
884
  }, t;
1138
- }(), Ja = /[\t\n\f ]/, Ya = /[A-Za-z]/, Xa = /\r\n?/g;
1139
- function F(t) {
1140
- return Ja.test(t);
885
+ }(), Ea = /[\t\n\f ]/, va = /[A-Za-z]/, Ca = /\r\n?/g;
886
+ function T(t) {
887
+ return Ea.test(t);
1141
888
  }
1142
- function mr(t) {
1143
- return Ya.test(t);
889
+ function lr(t) {
890
+ return va.test(t);
1144
891
  }
1145
- function Za(t) {
1146
- return t.replace(Xa, `
892
+ function Sa(t) {
893
+ return t.replace(Ca, `
1147
894
  `);
1148
895
  }
1149
- var ts = function() {
896
+ var wa = function() {
1150
897
  function t(e, r, n) {
1151
898
  n === void 0 && (n = "precompile"), this.delegate = e, this.entityParser = r, this.mode = n, this.state = "beforeData", this.line = -1, this.column = -1, this.input = "", this.index = -1, this.tagNameBuffer = "", this.states = { beforeData: function() {
1152
899
  var a = this.peek();
@@ -1164,7 +911,7 @@ var ts = function() {
1164
911
  a === "<" && !this.isIgnoredEndTag() ? (this.delegate.finishData(), this.transitionTo("tagOpen"), this.markTagStart(), this.consume()) : a === "&" && s !== "script" && s !== "style" ? (this.consume(), this.delegate.appendToData(this.consumeCharRef() || "&")) : (this.consume(), this.delegate.appendToData(a));
1165
912
  }, tagOpen: function() {
1166
913
  var a = this.consume();
1167
- a === "!" ? this.transitionTo("markupDeclarationOpen") : a === "/" ? this.transitionTo("endTagOpen") : (a === "@" || a === ":" || mr(a)) && (this.transitionTo("tagName"), this.tagNameBuffer = "", this.delegate.beginStartTag(), this.appendToTagName(a));
914
+ a === "!" ? this.transitionTo("markupDeclarationOpen") : a === "/" ? this.transitionTo("endTagOpen") : (a === "@" || a === ":" || lr(a)) && (this.transitionTo("tagName"), this.tagNameBuffer = "", this.delegate.beginStartTag(), this.appendToTagName(a));
1168
915
  }, markupDeclarationOpen: function() {
1169
916
  var a = this.consume();
1170
917
  if (a === "-" && this.peek() === "-") this.consume(), this.transitionTo("commentStart"), this.delegate.beginComment();
@@ -1174,23 +921,23 @@ var ts = function() {
1174
921
  }
1175
922
  }, doctype: function() {
1176
923
  var a = this.consume();
1177
- F(a) && this.transitionTo("beforeDoctypeName");
924
+ T(a) && this.transitionTo("beforeDoctypeName");
1178
925
  }, beforeDoctypeName: function() {
1179
926
  var a = this.consume();
1180
- F(a) || (this.transitionTo("doctypeName"), this.delegate.appendToDoctypeName && this.delegate.appendToDoctypeName(a.toLowerCase()));
927
+ T(a) || (this.transitionTo("doctypeName"), this.delegate.appendToDoctypeName && this.delegate.appendToDoctypeName(a.toLowerCase()));
1181
928
  }, doctypeName: function() {
1182
929
  var a = this.consume();
1183
- F(a) ? this.transitionTo("afterDoctypeName") : a === ">" ? (this.delegate.endDoctype && this.delegate.endDoctype(), this.transitionTo("beforeData")) : this.delegate.appendToDoctypeName && this.delegate.appendToDoctypeName(a.toLowerCase());
930
+ T(a) ? this.transitionTo("afterDoctypeName") : a === ">" ? (this.delegate.endDoctype && this.delegate.endDoctype(), this.transitionTo("beforeData")) : this.delegate.appendToDoctypeName && this.delegate.appendToDoctypeName(a.toLowerCase());
1184
931
  }, afterDoctypeName: function() {
1185
932
  var a = this.consume();
1186
- if (!F(a)) if (a === ">") this.delegate.endDoctype && this.delegate.endDoctype(), this.transitionTo("beforeData");
933
+ if (!T(a)) if (a === ">") this.delegate.endDoctype && this.delegate.endDoctype(), this.transitionTo("beforeData");
1187
934
  else {
1188
935
  var s = a.toUpperCase() + this.input.substring(this.index, this.index + 5).toUpperCase(), u = s.toUpperCase() === "PUBLIC", i = s.toUpperCase() === "SYSTEM";
1189
936
  (u || i) && (this.consume(), this.consume(), this.consume(), this.consume(), this.consume(), this.consume()), u ? this.transitionTo("afterDoctypePublicKeyword") : i && this.transitionTo("afterDoctypeSystemKeyword");
1190
937
  }
1191
938
  }, afterDoctypePublicKeyword: function() {
1192
939
  var a = this.peek();
1193
- F(a) ? (this.transitionTo("beforeDoctypePublicIdentifier"), this.consume()) : a === '"' ? (this.transitionTo("doctypePublicIdentifierDoubleQuoted"), this.consume()) : a === "'" ? (this.transitionTo("doctypePublicIdentifierSingleQuoted"), this.consume()) : a === ">" && (this.consume(), this.delegate.endDoctype && this.delegate.endDoctype(), this.transitionTo("beforeData"));
940
+ T(a) ? (this.transitionTo("beforeDoctypePublicIdentifier"), this.consume()) : a === '"' ? (this.transitionTo("doctypePublicIdentifierDoubleQuoted"), this.consume()) : a === "'" ? (this.transitionTo("doctypePublicIdentifierSingleQuoted"), this.consume()) : a === ">" && (this.consume(), this.delegate.endDoctype && this.delegate.endDoctype(), this.transitionTo("beforeData"));
1194
941
  }, doctypePublicIdentifierDoubleQuoted: function() {
1195
942
  var a = this.consume();
1196
943
  a === '"' ? this.transitionTo("afterDoctypePublicIdentifier") : a === ">" ? (this.delegate.endDoctype && this.delegate.endDoctype(), this.transitionTo("beforeData")) : this.delegate.appendToDoctypePublicIdentifier && this.delegate.appendToDoctypePublicIdentifier(a);
@@ -1199,10 +946,10 @@ var ts = function() {
1199
946
  a === "'" ? this.transitionTo("afterDoctypePublicIdentifier") : a === ">" ? (this.delegate.endDoctype && this.delegate.endDoctype(), this.transitionTo("beforeData")) : this.delegate.appendToDoctypePublicIdentifier && this.delegate.appendToDoctypePublicIdentifier(a);
1200
947
  }, afterDoctypePublicIdentifier: function() {
1201
948
  var a = this.consume();
1202
- F(a) ? this.transitionTo("betweenDoctypePublicAndSystemIdentifiers") : a === ">" ? (this.delegate.endDoctype && this.delegate.endDoctype(), this.transitionTo("beforeData")) : a === '"' ? this.transitionTo("doctypeSystemIdentifierDoubleQuoted") : a === "'" && this.transitionTo("doctypeSystemIdentifierSingleQuoted");
949
+ T(a) ? this.transitionTo("betweenDoctypePublicAndSystemIdentifiers") : a === ">" ? (this.delegate.endDoctype && this.delegate.endDoctype(), this.transitionTo("beforeData")) : a === '"' ? this.transitionTo("doctypeSystemIdentifierDoubleQuoted") : a === "'" && this.transitionTo("doctypeSystemIdentifierSingleQuoted");
1203
950
  }, betweenDoctypePublicAndSystemIdentifiers: function() {
1204
951
  var a = this.consume();
1205
- F(a) || (a === ">" ? (this.delegate.endDoctype && this.delegate.endDoctype(), this.transitionTo("beforeData")) : a === '"' ? this.transitionTo("doctypeSystemIdentifierDoubleQuoted") : a === "'" && this.transitionTo("doctypeSystemIdentifierSingleQuoted"));
952
+ T(a) || (a === ">" ? (this.delegate.endDoctype && this.delegate.endDoctype(), this.transitionTo("beforeData")) : a === '"' ? this.transitionTo("doctypeSystemIdentifierDoubleQuoted") : a === "'" && this.transitionTo("doctypeSystemIdentifierSingleQuoted"));
1206
953
  }, doctypeSystemIdentifierDoubleQuoted: function() {
1207
954
  var a = this.consume();
1208
955
  a === '"' ? this.transitionTo("afterDoctypeSystemIdentifier") : a === ">" ? (this.delegate.endDoctype && this.delegate.endDoctype(), this.transitionTo("beforeData")) : this.delegate.appendToDoctypeSystemIdentifier && this.delegate.appendToDoctypeSystemIdentifier(a);
@@ -1211,7 +958,7 @@ var ts = function() {
1211
958
  a === "'" ? this.transitionTo("afterDoctypeSystemIdentifier") : a === ">" ? (this.delegate.endDoctype && this.delegate.endDoctype(), this.transitionTo("beforeData")) : this.delegate.appendToDoctypeSystemIdentifier && this.delegate.appendToDoctypeSystemIdentifier(a);
1212
959
  }, afterDoctypeSystemIdentifier: function() {
1213
960
  var a = this.consume();
1214
- F(a) || a === ">" && (this.delegate.endDoctype && this.delegate.endDoctype(), this.transitionTo("beforeData"));
961
+ T(a) || a === ">" && (this.delegate.endDoctype && this.delegate.endDoctype(), this.transitionTo("beforeData"));
1215
962
  }, commentStart: function() {
1216
963
  var a = this.consume();
1217
964
  a === "-" ? this.transitionTo("commentStartDash") : a === ">" ? (this.delegate.finishComment(), this.transitionTo("beforeData")) : (this.delegate.appendToCommentData(a), this.transitionTo("comment"));
@@ -1229,28 +976,28 @@ var ts = function() {
1229
976
  a === ">" ? (this.delegate.finishComment(), this.transitionTo("beforeData")) : (this.delegate.appendToCommentData("--" + a), this.transitionTo("comment"));
1230
977
  }, tagName: function() {
1231
978
  var a = this.consume();
1232
- F(a) ? this.transitionTo("beforeAttributeName") : a === "/" ? this.transitionTo("selfClosingStartTag") : a === ">" ? (this.delegate.finishTag(), this.transitionTo("beforeData")) : this.appendToTagName(a);
979
+ T(a) ? this.transitionTo("beforeAttributeName") : a === "/" ? this.transitionTo("selfClosingStartTag") : a === ">" ? (this.delegate.finishTag(), this.transitionTo("beforeData")) : this.appendToTagName(a);
1233
980
  }, endTagName: function() {
1234
981
  var a = this.consume();
1235
- F(a) ? (this.transitionTo("beforeAttributeName"), this.tagNameBuffer = "") : a === "/" ? (this.transitionTo("selfClosingStartTag"), this.tagNameBuffer = "") : a === ">" ? (this.delegate.finishTag(), this.transitionTo("beforeData"), this.tagNameBuffer = "") : this.appendToTagName(a);
982
+ T(a) ? (this.transitionTo("beforeAttributeName"), this.tagNameBuffer = "") : a === "/" ? (this.transitionTo("selfClosingStartTag"), this.tagNameBuffer = "") : a === ">" ? (this.delegate.finishTag(), this.transitionTo("beforeData"), this.tagNameBuffer = "") : this.appendToTagName(a);
1236
983
  }, beforeAttributeName: function() {
1237
984
  var a = this.peek();
1238
- if (F(a)) {
985
+ if (T(a)) {
1239
986
  this.consume();
1240
987
  return;
1241
988
  } else a === "/" ? (this.transitionTo("selfClosingStartTag"), this.consume()) : a === ">" ? (this.consume(), this.delegate.finishTag(), this.transitionTo("beforeData")) : a === "=" ? (this.delegate.reportSyntaxError("attribute name cannot start with equals sign"), this.transitionTo("attributeName"), this.delegate.beginAttribute(), this.consume(), this.delegate.appendToAttributeName(a)) : (this.transitionTo("attributeName"), this.delegate.beginAttribute());
1242
989
  }, attributeName: function() {
1243
990
  var a = this.peek();
1244
- F(a) ? (this.transitionTo("afterAttributeName"), this.consume()) : a === "/" ? (this.delegate.beginAttributeValue(!1), this.delegate.finishAttributeValue(), this.consume(), this.transitionTo("selfClosingStartTag")) : a === "=" ? (this.transitionTo("beforeAttributeValue"), this.consume()) : a === ">" ? (this.delegate.beginAttributeValue(!1), this.delegate.finishAttributeValue(), this.consume(), this.delegate.finishTag(), this.transitionTo("beforeData")) : a === '"' || a === "'" || a === "<" ? (this.delegate.reportSyntaxError(a + " is not a valid character within attribute names"), this.consume(), this.delegate.appendToAttributeName(a)) : (this.consume(), this.delegate.appendToAttributeName(a));
991
+ T(a) ? (this.transitionTo("afterAttributeName"), this.consume()) : a === "/" ? (this.delegate.beginAttributeValue(!1), this.delegate.finishAttributeValue(), this.consume(), this.transitionTo("selfClosingStartTag")) : a === "=" ? (this.transitionTo("beforeAttributeValue"), this.consume()) : a === ">" ? (this.delegate.beginAttributeValue(!1), this.delegate.finishAttributeValue(), this.consume(), this.delegate.finishTag(), this.transitionTo("beforeData")) : a === '"' || a === "'" || a === "<" ? (this.delegate.reportSyntaxError(a + " is not a valid character within attribute names"), this.consume(), this.delegate.appendToAttributeName(a)) : (this.consume(), this.delegate.appendToAttributeName(a));
1245
992
  }, afterAttributeName: function() {
1246
993
  var a = this.peek();
1247
- if (F(a)) {
994
+ if (T(a)) {
1248
995
  this.consume();
1249
996
  return;
1250
997
  } else a === "/" ? (this.delegate.beginAttributeValue(!1), this.delegate.finishAttributeValue(), this.consume(), this.transitionTo("selfClosingStartTag")) : a === "=" ? (this.consume(), this.transitionTo("beforeAttributeValue")) : a === ">" ? (this.delegate.beginAttributeValue(!1), this.delegate.finishAttributeValue(), this.consume(), this.delegate.finishTag(), this.transitionTo("beforeData")) : (this.delegate.beginAttributeValue(!1), this.delegate.finishAttributeValue(), this.transitionTo("attributeName"), this.delegate.beginAttribute(), this.consume(), this.delegate.appendToAttributeName(a));
1251
998
  }, beforeAttributeValue: function() {
1252
999
  var a = this.peek();
1253
- F(a) ? this.consume() : a === '"' ? (this.transitionTo("attributeValueDoubleQuoted"), this.delegate.beginAttributeValue(!0), this.consume()) : a === "'" ? (this.transitionTo("attributeValueSingleQuoted"), this.delegate.beginAttributeValue(!0), this.consume()) : a === ">" ? (this.delegate.beginAttributeValue(!1), this.delegate.finishAttributeValue(), this.consume(), this.delegate.finishTag(), this.transitionTo("beforeData")) : (this.transitionTo("attributeValueUnquoted"), this.delegate.beginAttributeValue(!1), this.consume(), this.delegate.appendToAttributeValue(a));
1000
+ T(a) ? this.consume() : a === '"' ? (this.transitionTo("attributeValueDoubleQuoted"), this.delegate.beginAttributeValue(!0), this.consume()) : a === "'" ? (this.transitionTo("attributeValueSingleQuoted"), this.delegate.beginAttributeValue(!0), this.consume()) : a === ">" ? (this.delegate.beginAttributeValue(!1), this.delegate.finishAttributeValue(), this.consume(), this.delegate.finishTag(), this.transitionTo("beforeData")) : (this.transitionTo("attributeValueUnquoted"), this.delegate.beginAttributeValue(!1), this.consume(), this.delegate.appendToAttributeValue(a));
1254
1001
  }, attributeValueDoubleQuoted: function() {
1255
1002
  var a = this.consume();
1256
1003
  a === '"' ? (this.delegate.finishAttributeValue(), this.transitionTo("afterAttributeValueQuoted")) : a === "&" ? this.delegate.appendToAttributeValue(this.consumeCharRef() || "&") : this.delegate.appendToAttributeValue(a);
@@ -1259,16 +1006,16 @@ var ts = function() {
1259
1006
  a === "'" ? (this.delegate.finishAttributeValue(), this.transitionTo("afterAttributeValueQuoted")) : a === "&" ? this.delegate.appendToAttributeValue(this.consumeCharRef() || "&") : this.delegate.appendToAttributeValue(a);
1260
1007
  }, attributeValueUnquoted: function() {
1261
1008
  var a = this.peek();
1262
- F(a) ? (this.delegate.finishAttributeValue(), this.consume(), this.transitionTo("beforeAttributeName")) : a === "/" ? (this.delegate.finishAttributeValue(), this.consume(), this.transitionTo("selfClosingStartTag")) : a === "&" ? (this.consume(), this.delegate.appendToAttributeValue(this.consumeCharRef() || "&")) : a === ">" ? (this.delegate.finishAttributeValue(), this.consume(), this.delegate.finishTag(), this.transitionTo("beforeData")) : (this.consume(), this.delegate.appendToAttributeValue(a));
1009
+ T(a) ? (this.delegate.finishAttributeValue(), this.consume(), this.transitionTo("beforeAttributeName")) : a === "/" ? (this.delegate.finishAttributeValue(), this.consume(), this.transitionTo("selfClosingStartTag")) : a === "&" ? (this.consume(), this.delegate.appendToAttributeValue(this.consumeCharRef() || "&")) : a === ">" ? (this.delegate.finishAttributeValue(), this.consume(), this.delegate.finishTag(), this.transitionTo("beforeData")) : (this.consume(), this.delegate.appendToAttributeValue(a));
1263
1010
  }, afterAttributeValueQuoted: function() {
1264
1011
  var a = this.peek();
1265
- F(a) ? (this.consume(), this.transitionTo("beforeAttributeName")) : a === "/" ? (this.consume(), this.transitionTo("selfClosingStartTag")) : a === ">" ? (this.consume(), this.delegate.finishTag(), this.transitionTo("beforeData")) : this.transitionTo("beforeAttributeName");
1012
+ T(a) ? (this.consume(), this.transitionTo("beforeAttributeName")) : a === "/" ? (this.consume(), this.transitionTo("selfClosingStartTag")) : a === ">" ? (this.consume(), this.delegate.finishTag(), this.transitionTo("beforeData")) : this.transitionTo("beforeAttributeName");
1266
1013
  }, selfClosingStartTag: function() {
1267
1014
  var a = this.peek();
1268
1015
  a === ">" ? (this.consume(), this.delegate.markTagAsSelfClosing(), this.delegate.finishTag(), this.transitionTo("beforeData")) : this.transitionTo("beforeAttributeName");
1269
1016
  }, endTagOpen: function() {
1270
1017
  var a = this.consume();
1271
- (a === "@" || a === ":" || mr(a)) && (this.transitionTo("endTagName"), this.tagNameBuffer = "", this.delegate.beginEndTag(), this.appendToTagName(a));
1018
+ (a === "@" || a === ":" || lr(a)) && (this.transitionTo("endTagName"), this.tagNameBuffer = "", this.delegate.beginEndTag(), this.appendToTagName(a));
1272
1019
  } }, this.reset();
1273
1020
  }
1274
1021
  return t.prototype.reset = function() {
@@ -1278,7 +1025,7 @@ var ts = function() {
1278
1025
  }, t.prototype.tokenize = function(e) {
1279
1026
  this.reset(), this.tokenizePart(e), this.tokenizeEOF();
1280
1027
  }, t.prototype.tokenizePart = function(e) {
1281
- for (this.input += Za(e); this.index < this.input.length; ) {
1028
+ for (this.input += Sa(e); this.index < this.input.length; ) {
1282
1029
  var r = this.states[this.state];
1283
1030
  if (r !== void 0) r.call(this);
1284
1031
  else throw new Error("unhandled state " + this.state);
@@ -1310,29 +1057,35 @@ var ts = function() {
1310
1057
  var e = this.tagNameBuffer;
1311
1058
  return e === "title" && this.input.substring(this.index, this.index + 8) !== "</title>" || e === "style" && this.input.substring(this.index, this.index + 8) !== "</style>" || e === "script" && this.input.substring(this.index, this.index + 9) !== "<\/script>";
1312
1059
  }, t;
1313
- }(), Be = /* @__PURE__ */ new Set(["area", "base", "br", "col", "command", "embed", "hr", "img", "input", "keygen", "link", "meta", "param", "source", "track", "wbr"]);
1314
- function es(t) {
1060
+ }(), te = /* @__PURE__ */ new Set(["area", "base", "br", "col", "command", "embed", "hr", "img", "input", "keygen", "link", "meta", "param", "source", "track", "wbr"]);
1061
+ function Ba() {
1062
+ return [...te];
1063
+ }
1064
+ function ka(t) {
1315
1065
  var e;
1316
- return Be.has(t.toLowerCase()) && ((e = t[0]) == null ? void 0 : e.toLowerCase()) === t[0];
1066
+ return te.has(t.toLowerCase()) && ((e = t[0]) == null ? void 0 : e.toLowerCase()) === t[0];
1067
+ }
1068
+ function Vt(t) {
1069
+ return !!t && t.length > 0;
1070
+ }
1071
+ function ze(t) {
1072
+ return t.length === 0 ? void 0 : t[t.length - 1];
1073
+ }
1074
+ function xa(t) {
1075
+ return t.length === 0 ? void 0 : t[0];
1317
1076
  }
1318
- var it = Object.freeze({ line: 1, column: 0 }), rs = Object.freeze({ source: "(synthetic)", start: it, end: it }), Pt = Object.freeze({ source: "(nonexistent)", start: it, end: it }), st = Object.freeze({ source: "(broken)", start: it, end: it }), v = function(t) {
1319
- return t.CharPosition = "CharPosition", t.HbsPosition = "HbsPosition", t.InternalsSynthetic = "InternalsSynthetic", t.NonExistent = "NonExistent", t.Broken = "Broken", t;
1320
- }({}), qt = "MATCH_ANY", ke = "IS_INVISIBLE", ns = class {
1077
+ var ut = Object.freeze({ line: 1, column: 0 }), Ta = Object.freeze({ source: "(synthetic)", start: ut, end: ut }), Te = Object.freeze({ source: "(nonexistent)", start: ut, end: ut }), st = Object.freeze({ source: "(broken)", start: ut, end: ut }), Na = class {
1321
1078
  constructor(t) {
1322
- w(this, "_whens");
1323
1079
  this._whens = t;
1324
1080
  }
1325
1081
  first(t) {
1326
1082
  for (let e of this._whens) {
1327
1083
  let r = e.match(t);
1328
- if (Bt(r)) return r[0];
1084
+ if (Vt(r)) return r[0];
1329
1085
  }
1330
1086
  return null;
1331
1087
  }
1332
- }, fr = class {
1333
- constructor() {
1334
- w(this, "_map", /* @__PURE__ */ new Map());
1335
- }
1088
+ }, cr = class {
1336
1089
  get(t, e) {
1337
1090
  let r = this._map.get(t);
1338
1091
  return r || (r = e(), this._map.set(t, r), r);
@@ -1341,52 +1094,49 @@ var it = Object.freeze({ line: 1, column: 0 }), rs = Object.freeze({ source: "(s
1341
1094
  this._map.set(t, e);
1342
1095
  }
1343
1096
  match(t) {
1344
- let e = ss(t), r = [], n = this._map.get(e), a = this._map.get(qt);
1097
+ let e = function(s) {
1098
+ switch (s) {
1099
+ case "Broken":
1100
+ case "InternalsSynthetic":
1101
+ case "NonExistent":
1102
+ return "IS_INVISIBLE";
1103
+ default:
1104
+ return s;
1105
+ }
1106
+ }(t), r = [], n = this._map.get(e), a = this._map.get("MATCH_ANY");
1345
1107
  return n && r.push(n), a && r.push(a), r;
1346
1108
  }
1347
- };
1348
- function Jr(t) {
1349
- return t(new as()).check();
1350
- }
1351
- var as = class {
1352
1109
  constructor() {
1353
- w(this, "_whens", new fr());
1110
+ this._map = /* @__PURE__ */ new Map();
1354
1111
  }
1355
- check() {
1112
+ };
1113
+ function Kr(t) {
1114
+ return t(new Pa()).validate();
1115
+ }
1116
+ var Pa = class {
1117
+ validate() {
1356
1118
  return (t, e) => this.matchFor(t.kind, e.kind)(t, e);
1357
1119
  }
1358
1120
  matchFor(t, e) {
1359
1121
  let r = this._whens.match(t);
1360
- S(Bt(r), `no match defined for (${t}, ${e}) and no AnyMatch defined either`);
1361
- let n = new ns(r).first(e);
1362
- return S(n !== null, `no match defined for (${t}, ${e}) and no AnyMatch defined either`), n;
1122
+ return Vt(r), new Na(r).first(e);
1363
1123
  }
1364
1124
  when(t, e, r) {
1365
- return this._whens.get(t, () => new fr()).add(e, r), this;
1366
- }
1367
- };
1368
- function ss(t) {
1369
- switch (t) {
1370
- case v.Broken:
1371
- case v.InternalsSynthetic:
1372
- case v.NonExistent:
1373
- return ke;
1374
- default:
1375
- return t;
1125
+ return this._whens.get(t, () => new cr()).add(e, r), this;
1376
1126
  }
1377
- }
1378
- var us = class xe {
1379
- constructor(e) {
1380
- w(this, "chars");
1381
- w(this, "loc");
1382
- this.loc = e.loc, this.chars = e.chars;
1127
+ constructor() {
1128
+ this._whens = new cr();
1383
1129
  }
1130
+ }, Fa = class Ne {
1384
1131
  static synthetic(e) {
1385
- let r = I.synthetic(e);
1386
- return new xe({ loc: r, chars: e });
1132
+ let r = q.synthetic(e);
1133
+ return new Ne({ loc: r, chars: e });
1387
1134
  }
1388
1135
  static load(e, r) {
1389
- return new xe({ loc: I.load(e, r[1]), chars: r[0] });
1136
+ return new Ne({ loc: q.load(e, r[1]), chars: r[0] });
1137
+ }
1138
+ constructor(e) {
1139
+ this.loc = e.loc, this.chars = e.chars;
1390
1140
  }
1391
1141
  getString() {
1392
1142
  return this.chars;
@@ -1394,35 +1144,30 @@ var us = class xe {
1394
1144
  serialize() {
1395
1145
  return [this.chars, this.loc.serialize()];
1396
1146
  }
1397
- }, I = class At {
1398
- constructor(e) {
1399
- w(this, "isInvisible");
1400
- this.data = e, this.isInvisible = e.kind !== v.CharPosition && e.kind !== v.HbsPosition;
1401
- }
1147
+ }, q = class vt {
1402
1148
  static get NON_EXISTENT() {
1403
- return new pt(v.NonExistent, Pt).wrap();
1149
+ return new dt("NonExistent", Te).wrap();
1404
1150
  }
1405
1151
  static load(e, r) {
1406
- if (typeof r == "number") return At.forCharPositions(e, r, r);
1407
- if (typeof r == "string") return At.synthetic(r);
1408
- if (Array.isArray(r)) return At.forCharPositions(e, r[0], r[1]);
1409
- if (r === v.NonExistent) return At.NON_EXISTENT;
1410
- if (r === v.Broken) return At.broken(st);
1411
- La(r);
1152
+ return typeof r == "number" ? vt.forCharPositions(e, r, r) : typeof r == "string" ? vt.synthetic(r) : Array.isArray(r) ? vt.forCharPositions(e, r[0], r[1]) : r === "NonExistent" ? vt.NON_EXISTENT : r === "Broken" ? vt.broken(st) : void ea(r);
1412
1153
  }
1413
1154
  static forHbsLoc(e, r) {
1414
- let n = new Ct(e, r.start), a = new Ct(e, r.end);
1415
- return new We(e, { start: n, end: a }, r).wrap();
1155
+ let n = new kt(e, r.start), a = new kt(e, r.end);
1156
+ return new je(e, { start: n, end: a }, r).wrap();
1416
1157
  }
1417
1158
  static forCharPositions(e, r, n) {
1418
1159
  let a = new It(e, r), s = new It(e, n);
1419
- return new Ge(e, { start: a, end: s }).wrap();
1160
+ return new Me(e, { start: a, end: s }).wrap();
1420
1161
  }
1421
1162
  static synthetic(e) {
1422
- return new pt(v.InternalsSynthetic, Pt, e).wrap();
1163
+ return new dt("InternalsSynthetic", Te, e).wrap();
1423
1164
  }
1424
1165
  static broken(e = st) {
1425
- return new pt(v.Broken, e).wrap();
1166
+ return new dt("Broken", e).wrap();
1167
+ }
1168
+ constructor(e) {
1169
+ var r;
1170
+ this.data = e, this.isInvisible = (r = e.kind) !== "CharPosition" && r !== "HbsPosition";
1426
1171
  }
1427
1172
  getStart() {
1428
1173
  return this.data.getStart().wrap();
@@ -1447,17 +1192,17 @@ var us = class xe {
1447
1192
  return this.loc;
1448
1193
  }
1449
1194
  withStart(e) {
1450
- return W(e.data, this.data.getEnd());
1195
+ return J(e.data, this.data.getEnd());
1451
1196
  }
1452
1197
  withEnd(e) {
1453
- return W(this.data.getStart(), e.data);
1198
+ return J(this.data.getStart(), e.data);
1454
1199
  }
1455
1200
  asString() {
1456
1201
  return this.data.asString();
1457
1202
  }
1458
1203
  toSlice(e) {
1459
1204
  let r = this.data.asString();
1460
- return new us({ loc: this, chars: e || r });
1205
+ return JSON.stringify(r), JSON.stringify(e), new Fa({ loc: this, chars: e || r });
1461
1206
  }
1462
1207
  get start() {
1463
1208
  return this.loc.start;
@@ -1483,28 +1228,27 @@ var us = class xe {
1483
1228
  }
1484
1229
  }
1485
1230
  extend(e) {
1486
- return W(this.data.getStart(), e.data.getEnd());
1231
+ return J(this.data.getStart(), e.data.getEnd());
1487
1232
  }
1488
1233
  serialize() {
1489
1234
  return this.data.serialize();
1490
1235
  }
1491
1236
  slice({ skipStart: e = 0, skipEnd: r = 0 }) {
1492
- return W(this.getStart().move(e).data, this.getEnd().move(-r).data);
1237
+ return J(this.getStart().move(e).data, this.getEnd().move(-r).data);
1493
1238
  }
1494
1239
  sliceStartChars({ skipStart: e = 0, chars: r }) {
1495
- return W(this.getStart().move(e).data, this.getStart().move(e + r).data);
1240
+ return J(this.getStart().move(e).data, this.getStart().move(e + r).data);
1496
1241
  }
1497
1242
  sliceEndChars({ skipEnd: e = 0, chars: r }) {
1498
- return W(this.getEnd().move(e - r).data, this.getStart().move(-e).data);
1243
+ return J(this.getEnd().move(e - r).data, this.getStart().move(-e).data);
1499
1244
  }
1500
- }, Ge = class {
1245
+ }, Bt, Br, Me = (Br = class {
1501
1246
  constructor(t, e) {
1502
- w(this, "kind", v.CharPosition);
1503
- w(this, "_locPosSpan", null);
1504
- this.source = t, this.charPositions = e;
1247
+ Dt(this, Bt);
1248
+ this.source = t, this.charPositions = e, this.kind = "CharPosition", K(this, Bt, null);
1505
1249
  }
1506
1250
  wrap() {
1507
- return new I(this);
1251
+ return new q(this);
1508
1252
  }
1509
1253
  asString() {
1510
1254
  return this.source.slice(this.charPositions.start.charPos, this.charPositions.end.charPos);
@@ -1521,12 +1265,12 @@ var us = class xe {
1521
1265
  locDidUpdate() {
1522
1266
  }
1523
1267
  toHbsSpan() {
1524
- let t = this._locPosSpan;
1268
+ let t = I(this, Bt);
1525
1269
  if (t === null) {
1526
1270
  let e = this.charPositions.start.toHbsPos(), r = this.charPositions.end.toHbsPos();
1527
- e === null || r === null ? t = this._locPosSpan = ot : t = this._locPosSpan = new We(this.source, { start: e, end: r });
1271
+ t = K(this, Bt, e === null || r === null ? it : new je(this.source, { start: e, end: r }));
1528
1272
  }
1529
- return t === ot ? null : t;
1273
+ return t === it ? null : t;
1530
1274
  }
1531
1275
  serialize() {
1532
1276
  let { start: { charPos: t }, end: { charPos: e } } = this.charPositions;
@@ -1535,25 +1279,24 @@ var us = class xe {
1535
1279
  toCharPosSpan() {
1536
1280
  return this;
1537
1281
  }
1538
- }, We = class {
1282
+ }, Bt = new WeakMap(), Br), rt, ft, kr, je = (kr = class {
1539
1283
  constructor(t, e, r = null) {
1540
- w(this, "kind", v.HbsPosition);
1541
- w(this, "_charPosSpan", null);
1542
- w(this, "_providedHbsLoc");
1543
- this.source = t, this.hbsPositions = e, this._providedHbsLoc = r;
1284
+ Dt(this, rt);
1285
+ Dt(this, ft);
1286
+ this.source = t, this.hbsPositions = e, this.kind = "HbsPosition", K(this, rt, null), K(this, ft, r);
1544
1287
  }
1545
1288
  serialize() {
1546
1289
  let t = this.toCharPosSpan();
1547
- return t === null ? v.Broken : t.wrap().serialize();
1290
+ return t === null ? "Broken" : t.wrap().serialize();
1548
1291
  }
1549
1292
  wrap() {
1550
- return new I(this);
1293
+ return new q(this);
1551
1294
  }
1552
1295
  updateProvided(t, e) {
1553
- this._providedHbsLoc && (this._providedHbsLoc[e] = t), this._charPosSpan = null, this._providedHbsLoc = { start: t, end: t };
1296
+ I(this, ft) && (I(this, ft)[e] = t), K(this, rt, null), K(this, ft, { start: t, end: t });
1554
1297
  }
1555
1298
  locDidUpdate({ start: t, end: e }) {
1556
- t !== void 0 && (this.updateProvided(t, "start"), this.hbsPositions.start = new Ct(this.source, t, null)), e !== void 0 && (this.updateProvided(e, "end"), this.hbsPositions.end = new Ct(this.source, e, null));
1299
+ t !== void 0 && (this.updateProvided(t, "start"), this.hbsPositions.start = new kt(this.source, t, null)), e !== void 0 && (this.updateProvided(e, "end"), this.hbsPositions.end = new kt(this.source, e, null));
1557
1300
  }
1558
1301
  asString() {
1559
1302
  let t = this.toCharPosSpan();
@@ -1575,29 +1318,29 @@ var us = class xe {
1575
1318
  return this;
1576
1319
  }
1577
1320
  toCharPosSpan() {
1578
- let t = this._charPosSpan;
1321
+ let t = I(this, rt);
1579
1322
  if (t === null) {
1580
1323
  let e = this.hbsPositions.start.toCharPos(), r = this.hbsPositions.end.toCharPos();
1581
- if (e && r) t = this._charPosSpan = new Ge(this.source, { start: e, end: r });
1582
- else return t = this._charPosSpan = ot, null;
1324
+ if (!e || !r) return t = K(this, rt, it), null;
1325
+ t = K(this, rt, new Me(this.source, { start: e, end: r }));
1583
1326
  }
1584
- return t === ot ? null : t;
1327
+ return t === it ? null : t;
1585
1328
  }
1586
- }, pt = class {
1329
+ }, rt = new WeakMap(), ft = new WeakMap(), kr), dt = class {
1587
1330
  constructor(t, e, r = null) {
1588
1331
  this.kind = t, this.loc = e, this.string = r;
1589
1332
  }
1590
1333
  serialize() {
1591
1334
  switch (this.kind) {
1592
- case v.Broken:
1593
- case v.NonExistent:
1335
+ case "Broken":
1336
+ case "NonExistent":
1594
1337
  return this.kind;
1595
- case v.InternalsSynthetic:
1338
+ case "InternalsSynthetic":
1596
1339
  return this.string || "";
1597
1340
  }
1598
1341
  }
1599
1342
  wrap() {
1600
- return new I(this);
1343
+ return new q(this);
1601
1344
  }
1602
1345
  asString() {
1603
1346
  return this.string || "";
@@ -1609,10 +1352,10 @@ var us = class xe {
1609
1352
  return "an unknown module";
1610
1353
  }
1611
1354
  getStart() {
1612
- return new Ne(this.kind, this.loc.start);
1355
+ return new Fe(this.kind, this.loc.start);
1613
1356
  }
1614
1357
  getEnd() {
1615
- return new Ne(this.kind, this.loc.end);
1358
+ return new Fe(this.kind, this.loc.end);
1616
1359
  }
1617
1360
  toCharPosSpan() {
1618
1361
  return this;
@@ -1623,18 +1366,18 @@ var us = class xe {
1623
1366
  toHbsLoc() {
1624
1367
  return st;
1625
1368
  }
1626
- }, W = Jr((t) => t.when(v.HbsPosition, v.HbsPosition, (e, r) => new We(e.source, { start: e, end: r }).wrap()).when(v.CharPosition, v.CharPosition, (e, r) => new Ge(e.source, { start: e, end: r }).wrap()).when(v.CharPosition, v.HbsPosition, (e, r) => {
1369
+ }, J = Kr((t) => t.when("HbsPosition", "HbsPosition", (e, r) => new je(e.source, { start: e, end: r }).wrap()).when("CharPosition", "CharPosition", (e, r) => new Me(e.source, { start: e, end: r }).wrap()).when("CharPosition", "HbsPosition", (e, r) => {
1627
1370
  let n = r.toCharPos();
1628
- return n === null ? new pt(v.Broken, st).wrap() : W(e, n);
1629
- }).when(v.HbsPosition, v.CharPosition, (e, r) => {
1371
+ return n === null ? new dt("Broken", st).wrap() : J(e, n);
1372
+ }).when("HbsPosition", "CharPosition", (e, r) => {
1630
1373
  let n = e.toCharPos();
1631
- return n === null ? new pt(v.Broken, st).wrap() : W(n, r);
1632
- }).when(ke, qt, (e) => new pt(e.kind, st).wrap()).when(qt, ke, (e, r) => new pt(r.kind, st).wrap())), ot = "BROKEN", re = class Te {
1374
+ return n === null ? new dt("Broken", st).wrap() : J(n, r);
1375
+ }).when("IS_INVISIBLE", "MATCH_ANY", (e) => new dt(e.kind, st).wrap()).when("MATCH_ANY", "IS_INVISIBLE", (e, r) => new dt(r.kind, st).wrap())), it = "BROKEN", re = class Pe {
1633
1376
  static forHbsPos(e, r) {
1634
- return new Ct(e, r, null).wrap();
1377
+ return new kt(e, r, null).wrap();
1635
1378
  }
1636
- static broken(e = it) {
1637
- return new Ne(v.Broken, e).wrap();
1379
+ static broken(e = ut) {
1380
+ return new Fe("Broken", e).wrap();
1638
1381
  }
1639
1382
  constructor(e) {
1640
1383
  this.data = e;
@@ -1644,37 +1387,35 @@ var us = class xe {
1644
1387
  return e === null ? null : e.offset;
1645
1388
  }
1646
1389
  eql(e) {
1647
- return is(this.data, e.data);
1390
+ return La(this.data, e.data);
1648
1391
  }
1649
1392
  until(e) {
1650
- return W(this.data, e.data);
1393
+ return J(this.data, e.data);
1651
1394
  }
1652
1395
  move(e) {
1653
1396
  let r = this.data.toCharPos();
1654
- if (r === null) return Te.broken();
1397
+ if (r === null) return Pe.broken();
1655
1398
  {
1656
1399
  let n = r.offset + e;
1657
- return r.source.check(n) ? new It(r.source, n).wrap() : Te.broken();
1400
+ return r.source.validate(n) ? new It(r.source, n).wrap() : Pe.broken();
1658
1401
  }
1659
1402
  }
1660
1403
  collapsed() {
1661
- return W(this.data, this.data);
1404
+ return J(this.data, this.data);
1662
1405
  }
1663
1406
  toJSON() {
1664
1407
  return this.data.toJSON();
1665
1408
  }
1666
1409
  }, It = class {
1667
1410
  constructor(t, e) {
1668
- w(this, "kind", v.CharPosition);
1669
- w(this, "_locPos", null);
1670
- this.source = t, this.charPos = e;
1411
+ this.source = t, this.charPos = e, this.kind = "CharPosition", this._locPos = null;
1671
1412
  }
1672
1413
  toCharPos() {
1673
1414
  return this;
1674
1415
  }
1675
1416
  toJSON() {
1676
1417
  let t = this.toHbsPos();
1677
- return t === null ? it : t.toJSON();
1418
+ return t === null ? ut : t.toJSON();
1678
1419
  }
1679
1420
  wrap() {
1680
1421
  return new re(this);
@@ -1686,23 +1427,21 @@ var us = class xe {
1686
1427
  let t = this._locPos;
1687
1428
  if (t === null) {
1688
1429
  let e = this.source.hbsPosFor(this.charPos);
1689
- e === null ? this._locPos = t = ot : this._locPos = t = new Ct(this.source, e, this.charPos);
1430
+ this._locPos = t = e === null ? it : new kt(this.source, e, this.charPos);
1690
1431
  }
1691
- return t === ot ? null : t;
1432
+ return t === it ? null : t;
1692
1433
  }
1693
- }, Ct = class {
1434
+ }, kt = class {
1694
1435
  constructor(t, e, r = null) {
1695
- w(this, "kind", v.HbsPosition);
1696
- w(this, "_charPos");
1697
- this.source = t, this.hbsPos = e, this._charPos = r === null ? null : new It(t, r);
1436
+ this.source = t, this.hbsPos = e, this.kind = "HbsPosition", this._charPos = r === null ? null : new It(t, r);
1698
1437
  }
1699
1438
  toCharPos() {
1700
1439
  let t = this._charPos;
1701
1440
  if (t === null) {
1702
1441
  let e = this.source.charPosFor(this.hbsPos);
1703
- e === null ? this._charPos = t = ot : this._charPos = t = new It(this.source, e);
1442
+ this._charPos = t = e === null ? it : new It(this.source, e);
1704
1443
  }
1705
- return t === ot ? null : t;
1444
+ return t === it ? null : t;
1706
1445
  }
1707
1446
  toJSON() {
1708
1447
  return this.hbsPos;
@@ -1713,7 +1452,7 @@ var us = class xe {
1713
1452
  toHbsPos() {
1714
1453
  return this;
1715
1454
  }
1716
- }, Ne = class {
1455
+ }, Fe = class {
1717
1456
  constructor(t, e) {
1718
1457
  this.kind = t, this.pos = e;
1719
1458
  }
@@ -1729,21 +1468,21 @@ var us = class xe {
1729
1468
  get offset() {
1730
1469
  return null;
1731
1470
  }
1732
- }, is = Jr((t) => t.when(v.HbsPosition, v.HbsPosition, ({ hbsPos: e }, { hbsPos: r }) => e.column === r.column && e.line === r.line).when(v.CharPosition, v.CharPosition, ({ charPos: e }, { charPos: r }) => e === r).when(v.CharPosition, v.HbsPosition, ({ offset: e }, r) => {
1471
+ }, La = Kr((t) => t.when("HbsPosition", "HbsPosition", ({ hbsPos: e }, { hbsPos: r }) => e.column === r.column && e.line === r.line).when("CharPosition", "CharPosition", ({ charPos: e }, { charPos: r }) => e === r).when("CharPosition", "HbsPosition", ({ offset: e }, r) => {
1733
1472
  var n;
1734
1473
  return e === ((n = r.toCharPos()) == null ? void 0 : n.offset);
1735
- }).when(v.HbsPosition, v.CharPosition, (e, { offset: r }) => {
1474
+ }).when("HbsPosition", "CharPosition", (e, { offset: r }) => {
1736
1475
  var n;
1737
1476
  return ((n = e.toCharPos()) == null ? void 0 : n.offset) === r;
1738
- }).when(qt, qt, () => !1)), Ft = class Yr {
1477
+ }).when("MATCH_ANY", "MATCH_ANY", () => !1)), _t = class Jr {
1739
1478
  static from(e, r = {}) {
1740
1479
  var n;
1741
- return new Yr(e, (n = r.meta) == null ? void 0 : n.moduleName);
1480
+ return new Jr(e, (n = r.meta) == null ? void 0 : n.moduleName);
1742
1481
  }
1743
1482
  constructor(e, r = "an unknown module") {
1744
1483
  this.source = e, this.module = r;
1745
1484
  }
1746
- check(e) {
1485
+ validate(e) {
1747
1486
  return e >= 0 && e <= this.source.length;
1748
1487
  }
1749
1488
  slice(e, r) {
@@ -1753,7 +1492,7 @@ var us = class xe {
1753
1492
  return re.forHbsPos(this, { line: e, column: r });
1754
1493
  }
1755
1494
  spanFor({ start: e, end: r }) {
1756
- return I.forHbsLoc(this, { start: { line: e.line, column: e.column }, end: { line: r.line, column: r.column } });
1495
+ return q.forHbsLoc(this, { start: { line: e.line, column: e.column }, end: { line: r.line, column: r.column } });
1757
1496
  }
1758
1497
  hbsPosFor(e) {
1759
1498
  let r = 0, n = 0;
@@ -1778,7 +1517,7 @@ var us = class xe {
1778
1517
  return a;
1779
1518
  }
1780
1519
  };
1781
- function D(t, e) {
1520
+ function E(t, e) {
1782
1521
  let { module: r, loc: n } = e, { line: a, column: s } = n.start, u = e.asString(), i = u ? `
1783
1522
 
1784
1523
  |
@@ -1790,296 +1529,215 @@ function D(t, e) {
1790
1529
  ` : "", l = new Error(`${t}: ${i}(error occurred in '${r}' @ line ${a} : column ${s})`);
1791
1530
  return l.name = "SyntaxError", l.location = e, l.code = u, l;
1792
1531
  }
1793
- var os = { Template: ["body"], Block: ["body"], MustacheStatement: ["path", "params", "hash"], BlockStatement: ["path", "params", "hash", "program", "inverse"], ElementModifierStatement: ["path", "params", "hash"], CommentStatement: [], MustacheCommentStatement: [], ElementNode: ["attributes", "modifiers", "children", "comments"], AttrNode: ["value"], TextNode: [], ConcatStatement: ["parts"], SubExpression: ["path", "params", "hash"], PathExpression: [], StringLiteral: [], BooleanLiteral: [], NumberLiteral: [], NullLiteral: [], UndefinedLiteral: [], Hash: ["pairs"], HashPair: ["value"] }, Ke = function() {
1794
- t.prototype = Object.create(Error.prototype), t.prototype.constructor = t;
1532
+ var Qr = { Template: ["body"], Block: ["body"], MustacheStatement: ["path", "params", "hash"], BlockStatement: ["path", "params", "hash", "program", "inverse"], ElementModifierStatement: ["path", "params", "hash"], CommentStatement: [], MustacheCommentStatement: [], ElementNode: ["attributes", "modifiers", "children", "comments"], AttrNode: ["value"], TextNode: [], ConcatStatement: ["parts"], SubExpression: ["path", "params", "hash"], PathExpression: [], StringLiteral: [], BooleanLiteral: [], NumberLiteral: [], NullLiteral: [], UndefinedLiteral: [], Hash: ["pairs"], HashPair: ["value"] }, Ge = function() {
1795
1533
  function t(e, r, n, a) {
1796
1534
  let s = Error.call(this, e);
1797
1535
  this.key = a, this.message = e, this.node = r, this.parent = n, s.stack && (this.stack = s.stack);
1798
1536
  }
1799
- return t;
1537
+ return t.prototype = Object.create(Error.prototype), t.prototype.constructor = t, t;
1800
1538
  }();
1801
- function gr(t, e, r) {
1802
- return new Ke("Cannot remove a node unless it is part of an array", t, e, r);
1539
+ function hr(t, e, r) {
1540
+ return new Ge("Cannot remove a node unless it is part of an array", t, e, r);
1803
1541
  }
1804
- function ls(t, e, r) {
1805
- return new Ke("Cannot replace a node with multiple nodes unless it is part of an array", t, e, r);
1542
+ function qa(t, e, r) {
1543
+ return new Ge("Cannot replace a node with multiple nodes unless it is part of an array", t, e, r);
1806
1544
  }
1807
- function br(t, e) {
1808
- return new Ke("Replacing and removing in key handlers is not yet supported.", t, null, e);
1545
+ function pr(t, e) {
1546
+ return new Ge("Replacing and removing in key handlers is not yet supported.", t, null, e);
1809
1547
  }
1810
1548
  var ne = class {
1811
1549
  constructor(t, e = null, r = null) {
1812
- w(this, "node");
1813
- w(this, "parent");
1814
- w(this, "parentKey");
1815
1550
  this.node = t, this.parent = e, this.parentKey = r;
1816
1551
  }
1817
1552
  get parentNode() {
1818
1553
  return this.parent ? this.parent.node : null;
1819
1554
  }
1820
1555
  parents() {
1821
- return { [Symbol.iterator]: () => new cs(this) };
1556
+ return { [Symbol.iterator]: () => new _a(this) };
1822
1557
  }
1823
- }, cs = class {
1558
+ }, _a = class {
1824
1559
  constructor(t) {
1825
- w(this, "path");
1826
1560
  this.path = t;
1827
1561
  }
1828
1562
  next() {
1829
1563
  return this.path.parent ? (this.path = this.path.parent, { done: !1, value: this.path }) : { done: !0, value: null };
1830
1564
  }
1831
1565
  };
1832
- function Xr(t) {
1566
+ function Yr(t) {
1833
1567
  return typeof t == "function" ? t : t.enter;
1834
1568
  }
1835
1569
  function Zr(t) {
1836
- if (typeof t != "function") return t.exit;
1837
- }
1838
- function hs(t, e) {
1839
- let r = typeof t != "function" ? t.keys : void 0;
1840
- if (r === void 0) return;
1841
- let n = r[e];
1842
- return n !== void 0 ? n : r.All;
1843
- }
1844
- function ps(t, e) {
1845
- if (t.Program && (e === "Template" && !t.Template || e === "Block" && !t.Block)) return M(`The 'Program' visitor node is deprecated. Use 'Template' or 'Block' instead (node was '${e}') `), t.Program;
1846
- let r = t[e];
1847
- return r !== void 0 ? r : t.All;
1570
+ return typeof t == "function" ? void 0 : t.exit;
1848
1571
  }
1849
1572
  function ae(t, e) {
1850
- let { node: r, parent: n, parentKey: a } = e, s = ps(t, r.type), u, i;
1851
- s !== void 0 && (u = Xr(s), i = Zr(s));
1852
- let l;
1853
- if (u !== void 0 && (l = u(r, e)), l != null) if (JSON.stringify(r) === JSON.stringify(l)) l = void 0;
1854
- else {
1855
- if (Array.isArray(l)) return tn(t, l, n, a), l;
1856
- {
1857
- let g = new ne(l, n, a);
1858
- return ae(t, g) || l;
1859
- }
1860
- }
1861
- if (l === void 0) {
1862
- let g = os[r.type];
1863
- for (let h = 0; h < g.length; h++) {
1864
- let m = g[h];
1865
- ms(t, s, e, m);
1866
- }
1867
- i !== void 0 && (l = i(r, e));
1868
- }
1869
- return l;
1870
- }
1871
- function ds(t, e) {
1872
- return t[e];
1873
- }
1874
- function yr(t, e, r) {
1573
+ let r, n, a, { node: s, parent: u, parentKey: i } = e, l = function(h, f) {
1574
+ if (h.Program && (f === "Template" && !h.Template || f === "Block" && !h.Block)) return h.Program;
1575
+ let m = h[f];
1576
+ return m !== void 0 ? m : h.All;
1577
+ }(t, s.type);
1578
+ if (l !== void 0 && (r = Yr(l), n = Zr(l)), r !== void 0 && (a = r(s, e)), a != null) {
1579
+ if (JSON.stringify(s) !== JSON.stringify(a)) return Array.isArray(a) ? (Xr(t, a, u, i), a) : ae(t, new ne(a, u, i)) || a;
1580
+ a = void 0;
1581
+ }
1582
+ if (a === void 0) {
1583
+ let h = Qr[s.type];
1584
+ for (let f = 0; f < h.length; f++) Ia(t, l, e, h[f]);
1585
+ n !== void 0 && (a = n(s, e));
1586
+ }
1587
+ return a;
1588
+ }
1589
+ function dr(t, e, r) {
1875
1590
  t[e] = r;
1876
1591
  }
1877
- function ms(t, e, r, n) {
1878
- let { node: a } = r, s = ds(a, n);
1879
- if (!s) return;
1880
- let u, i;
1881
- if (e !== void 0) {
1882
- let l = hs(e, n);
1883
- l !== void 0 && (u = Xr(l), i = Zr(l));
1884
- }
1885
- if (u !== void 0 && u(a, n) !== void 0) throw br(a, n);
1886
- if (Array.isArray(s)) tn(t, s, r, n);
1887
- else {
1888
- let l = new ne(s, r, n), g = ae(t, l);
1889
- g !== void 0 && fs(a, n, s, g);
1592
+ function Ia(t, e, r, n) {
1593
+ let a, s, { node: u } = r, i = function(l, h) {
1594
+ return l[h];
1595
+ }(u, n);
1596
+ if (i) {
1597
+ if (e !== void 0) {
1598
+ let l = function(h, f) {
1599
+ let m = typeof h != "function" ? h.keys : void 0;
1600
+ if (m === void 0) return;
1601
+ let A = m[f];
1602
+ return A !== void 0 ? A : m.All;
1603
+ }(e, n);
1604
+ l !== void 0 && (a = Yr(l), s = Zr(l));
1605
+ }
1606
+ if (a !== void 0 && a(u, n) !== void 0) throw pr(u, n);
1607
+ if (Array.isArray(i)) Xr(t, i, r, n);
1608
+ else {
1609
+ let l = ae(t, new ne(i, r, n));
1610
+ l !== void 0 && function(h, f, m, A) {
1611
+ if (A === null) throw hr(m, h, f);
1612
+ if (Array.isArray(A)) {
1613
+ if (A.length !== 1) throw A.length === 0 ? hr(m, h, f) : qa(m, h, f);
1614
+ dr(h, f, A[0]);
1615
+ } else dr(h, f, A);
1616
+ }(u, n, i, l);
1617
+ }
1618
+ if (s !== void 0 && s(u, n) !== void 0) throw pr(u, n);
1890
1619
  }
1891
- if (i !== void 0 && i(a, n) !== void 0) throw br(a, n);
1892
1620
  }
1893
- function tn(t, e, r, n) {
1621
+ function Xr(t, e, r, n) {
1894
1622
  for (let a = 0; a < e.length; a++) {
1895
- let s = Ue(e[a]), u = new ne(s, r, n), i = ae(t, u);
1896
- i !== void 0 && (a += gs(e, a, i) - 1);
1623
+ let s = e[a], u = ae(t, new ne(s, r, n));
1624
+ u !== void 0 && (a += Oa(e, a, u) - 1);
1897
1625
  }
1898
1626
  }
1899
- function fs(t, e, r, n) {
1900
- if (n === null) throw gr(r, t, e);
1901
- if (Array.isArray(n)) if (n.length === 1) yr(t, e, n[0]);
1902
- else throw n.length === 0 ? gr(r, t, e) : ls(r, t, e);
1903
- else yr(t, e, n);
1904
- }
1905
- function gs(t, e, r) {
1627
+ function Oa(t, e, r) {
1906
1628
  return r === null ? (t.splice(e, 1), 0) : Array.isArray(r) ? (t.splice(e, 1, ...r), r.length) : (t.splice(e, 1, r), 1);
1907
1629
  }
1908
- function bs(t, e) {
1909
- let r = new ne(t);
1910
- ae(e, r);
1911
- }
1912
- function ys(t) {
1913
- switch (t.type) {
1914
- case "Block":
1915
- case "Template":
1916
- return t.body;
1917
- case "ElementNode":
1918
- return t.children;
1919
- }
1920
- }
1921
- function vt(t, e) {
1922
- ys(t).push(e);
1630
+ function Ra(t, e) {
1631
+ ae(e, new ne(t));
1632
+ }
1633
+ function wt(t, e) {
1634
+ (function(r) {
1635
+ switch (r.type) {
1636
+ case "Block":
1637
+ case "Template":
1638
+ return r.body;
1639
+ case "ElementNode":
1640
+ return r.children;
1641
+ }
1642
+ })(t).push(e);
1923
1643
  }
1924
- function en(t) {
1644
+ function tn(t) {
1925
1645
  return t.type === "StringLiteral" || t.type === "BooleanLiteral" || t.type === "NumberLiteral" || t.type === "NullLiteral" || t.type === "UndefinedLiteral";
1926
1646
  }
1927
- function As(t) {
1928
- return t.type === "UndefinedLiteral" ? "undefined" : JSON.stringify(t.value);
1647
+ var De;
1648
+ function Ee() {
1649
+ return De || (De = new _t("", "(synthetic)")), De;
1929
1650
  }
1930
- var fe;
1931
- function ge() {
1932
- return fe || (fe = new Ft("", "(synthetic)")), fe;
1651
+ function fr(t, e) {
1652
+ return y.var({ name: t, loc: C(e || null) });
1933
1653
  }
1934
- function Ds(t, e = [], r = $t([]), n = !1, a, s) {
1935
- return f.mustache({ path: ut(t), params: e, hash: r, trusting: n, strip: s, loc: k(a || null) });
1936
- }
1937
- function Es(t, e, r, n, a = null, s, u, i, l) {
1938
- let g, h = null;
1939
- return n.type === "Template" ? (M("b.program is deprecated. Use b.blockItself instead."), g = f.blockItself({ params: nn(n.blockParams), body: n.body, loc: n.loc })) : g = n, (a == null ? void 0 : a.type) === "Template" ? (M("b.program is deprecated. Use b.blockItself instead."), S(a.blockParams.length === 0, "{{else}} block cannot have block params"), h = f.blockItself({ params: [], body: a.body, loc: a.loc })) : h = a, f.block({ path: ut(t), params: e || [], hash: r || $t([]), defaultBlock: g, elseBlock: h, loc: k(s || null), openStrip: u, inverseStrip: i, closeStrip: l });
1940
- }
1941
- function vs(t, e, r, n) {
1942
- return f.elementModifier({ path: ut(t), params: e || [], hash: r || $t([]), loc: k(n || null) });
1943
- }
1944
- function Cs(t, e) {
1945
- return f.comment({ value: t, loc: k(e || null) });
1946
- }
1947
- function Ss(t, e) {
1948
- return f.mustacheComment({ value: t, loc: k(e || null) });
1949
- }
1950
- function ws(t, e) {
1951
- if (!Bt(t)) throw new Error("b.concat requires at least one part");
1952
- return f.concat({ parts: t, loc: k(e || null) });
1953
- }
1954
- function Bs(t, e = {}) {
1955
- let { attrs: r, blockParams: n, modifiers: a, comments: s, children: u, openTag: i, closeTag: l, loc: g } = e, h, m;
1956
- typeof t == "string" ? t.endsWith("/") ? (h = ut(t.slice(0, -1)), m = !0) : h = ut(t) : "type" in t ? (S(t.type === "PathExpression", `Invalid tag type ${t.type}`), h = t) : "path" in t ? (S(t.path.type === "PathExpression", `Invalid tag type ${t.path.type}`), h = t.path, m = t.selfClosing) : (h = ut(t.name), m = t.selfClosing), m && S(l == null, "Cannot build a self-closing tag with a closeTag source location");
1957
- let A = n == null ? void 0 : n.map((C) => typeof C == "string" ? rn(C) : C), y = null;
1958
- return l ? y = k(l || null) : l === void 0 && (y = m || es(h.original) ? null : k(null)), f.element({ path: h, selfClosing: m || !1, attributes: r || [], params: A || [], modifiers: a || [], comments: s || [], children: u || [], openTag: k(i || null), closeTag: y, loc: k(g || null) });
1959
- }
1960
- function ks(t, e, r) {
1961
- return f.attr({ name: t, value: e, loc: k(r || null) });
1962
- }
1963
- function xs(t = "", e) {
1964
- return f.text({ chars: t, loc: k(e || null) });
1965
- }
1966
- function Ts(t, e = [], r = $t([]), n) {
1967
- return f.sexpr({ path: ut(t), params: e, hash: r, loc: k(n || null) });
1968
- }
1969
- function Ns(t, e) {
1970
- let [r, ...n] = _t(t.split(".")), a = f.head({ original: r, loc: k(e || null) });
1971
- return f.path({ head: a, tail: n, loc: k(e || null) });
1972
- }
1973
- function Ps(t) {
1974
- return f.this({ loc: k(t || null) });
1975
- }
1976
- function Fs(t, e) {
1977
- return f.atName({ name: t, loc: k(e || null) });
1978
- }
1979
- function rn(t, e) {
1980
- return f.var({ name: t, loc: k(e || null) });
1981
- }
1982
- function Ls(t, e) {
1983
- return f.head({ original: t, loc: k(e || null) });
1984
- }
1985
- function _s(t, e = [], r) {
1986
- return f.path({ head: t, tail: e, loc: k(r || null) });
1987
- }
1988
- function ut(t, e) {
1989
- let r = k(e || null);
1654
+ function et(t, e) {
1655
+ let r = C(e || null);
1990
1656
  if (typeof t != "string") {
1991
1657
  if ("type" in t) return t;
1992
1658
  {
1993
- S(t.head.indexOf(".") === -1, "builder.path({ head, tail }) should not be called with a head with dots in it");
1659
+ t.head.indexOf(".");
1994
1660
  let { head: s, tail: u } = t;
1995
- return f.path({ head: f.head({ original: s, loc: r.sliceStartChars({ chars: s.length }) }), tail: u, loc: k(e || null) });
1661
+ return y.path({ head: y.head({ original: s, loc: r.sliceStartChars({ chars: s.length }) }), tail: u, loc: C(e || null) });
1996
1662
  }
1997
1663
  }
1998
- let { head: n, tail: a } = Ns(t, r);
1999
- return f.path({ head: n, tail: a, loc: r });
1664
+ let { head: n, tail: a } = function(s, u) {
1665
+ let [i, ...l] = s.split("."), h = y.head({ original: i, loc: C(u || null) });
1666
+ return y.path({ head: h, tail: l, loc: C(u || null) });
1667
+ }(t, r);
1668
+ return y.path({ head: n, tail: a, loc: r });
2000
1669
  }
2001
1670
  function Yt(t, e, r) {
2002
- return f.literal({ type: t, value: e, loc: k(r || null) });
1671
+ return y.literal({ type: t, value: e, loc: C(r || null) });
2003
1672
  }
2004
- function $t(t = [], e) {
2005
- return f.hash({ pairs: t, loc: k(e || null) });
1673
+ function Pt(t = [], e) {
1674
+ return y.hash({ pairs: t, loc: C(e || null) });
2006
1675
  }
2007
- function qs(t, e, r) {
2008
- return f.pair({ key: t, value: e, loc: k(r || null) });
2009
- }
2010
- function Is(t, e, r) {
2011
- return M("b.program is deprecated. Use b.template or b.blockItself instead."), e && e.length ? an(t, e, !1, r) : sn(t, [], r);
2012
- }
2013
- function nn(t) {
2014
- return t.map((e) => typeof e == "string" ? f.var({ name: e, loc: I.synthetic(e) }) : e);
2015
- }
2016
- function an(t = [], e = [], r = !1, n) {
2017
- return f.blockItself({ body: t, params: nn(e), chained: r, loc: k(n || null) });
1676
+ function en(t) {
1677
+ return t.map((e) => typeof e == "string" ? y.var({ name: e, loc: q.synthetic(e) }) : e);
2018
1678
  }
2019
- function sn(t = [], e = [], r) {
2020
- return f.template({ body: t, blockParams: e, loc: k(r || null) });
1679
+ function mr(t = [], e = [], r = !1, n) {
1680
+ return y.blockItself({ body: t, params: en(e), chained: r, loc: C(n || null) });
2021
1681
  }
2022
- function Os(t, e) {
2023
- return f.pos({ line: t, column: e });
1682
+ function gr(t = [], e = [], r) {
1683
+ return y.template({ body: t, blockParams: e, loc: C(r || null) });
2024
1684
  }
2025
- function k(...t) {
1685
+ function C(...t) {
2026
1686
  if (t.length === 1) {
2027
1687
  let e = t[0];
2028
- return e && typeof e == "object" ? I.forHbsLoc(ge(), e) : I.forHbsLoc(ge(), rs);
2029
- } else {
2030
- let [e, r, n, a, s] = t, u = s ? new Ft("", s) : ge();
2031
- return I.forHbsLoc(u, { start: { line: e, column: r }, end: { line: n || e, column: a || r } });
2032
- }
2033
- }
2034
- var $s = { mustache: Ds, block: Es, comment: Cs, mustacheComment: Ss, element: Bs, elementModifier: vs, attr: ks, text: xs, sexpr: Ts, concat: ws, hash: $t, pair: qs, literal: Yt, program: Is, blockItself: an, template: sn, loc: k, pos: Os, path: ut, fullPath: _s, head: Ls, at: Fs, var: rn, this: Ps, string: be("StringLiteral"), boolean: be("BooleanLiteral"), number: be("NumberLiteral"), undefined() {
2035
- return Yt("UndefinedLiteral", void 0);
2036
- }, null() {
2037
- return Yt("NullLiteral", null);
2038
- } };
2039
- function be(t) {
1688
+ return e && typeof e == "object" ? q.forHbsLoc(Ee(), e) : q.forHbsLoc(Ee(), Ta);
1689
+ }
1690
+ {
1691
+ let [e, r, n, a, s] = t, u = s ? new _t("", s) : Ee();
1692
+ return q.forHbsLoc(u, { start: { line: e, column: r }, end: { line: n || e, column: a || r } });
1693
+ }
1694
+ }
1695
+ var Va = { mustache: function(t, e = [], r = Pt([]), n = !1, a, s) {
1696
+ return y.mustache({ path: et(t), params: e, hash: r, trusting: n, strip: s, loc: C(a || null) });
1697
+ }, block: function(t, e, r, n, a = null, s, u, i, l) {
1698
+ let h, f = null;
1699
+ return h = n.type === "Template" ? y.blockItself({ params: en(n.blockParams), body: n.body, loc: n.loc }) : n, (a == null ? void 0 : a.type) === "Template" ? (a.blockParams.length, f = y.blockItself({ params: [], body: a.body, loc: a.loc })) : f = a, y.block({ path: et(t), params: e || [], hash: r || Pt([]), defaultBlock: h, elseBlock: f, loc: C(s || null), openStrip: u, inverseStrip: i, closeStrip: l });
1700
+ }, comment: function(t, e) {
1701
+ return y.comment({ value: t, loc: C(e || null) });
1702
+ }, mustacheComment: function(t, e) {
1703
+ return y.mustacheComment({ value: t, loc: C(e || null) });
1704
+ }, element: function(t, e = {}) {
1705
+ let r, n, { attrs: a, blockParams: s, modifiers: u, comments: i, children: l, openTag: h, closeTag: f, loc: m } = e;
1706
+ typeof t == "string" ? t.endsWith("/") ? (r = et(t.slice(0, -1)), n = !0) : r = et(t) : "type" in t ? (t.type, t.type, r = t) : "path" in t ? (t.path.type, t.path.type, r = t.path, n = t.selfClosing) : (r = et(t.name), n = t.selfClosing);
1707
+ let A = s == null ? void 0 : s.map((v) => typeof v == "string" ? fr(v) : v), d = null;
1708
+ return f ? d = C(f) : f === void 0 && (d = n || ka(r.original) ? null : C(null)), y.element({ path: r, selfClosing: n || !1, attributes: a || [], params: A || [], modifiers: u || [], comments: i || [], children: l || [], openTag: C(h || null), closeTag: d, loc: C(m || null) });
1709
+ }, elementModifier: function(t, e, r, n) {
1710
+ return y.elementModifier({ path: et(t), params: e || [], hash: r || Pt([]), loc: C(n || null) });
1711
+ }, attr: function(t, e, r) {
1712
+ return y.attr({ name: t, value: e, loc: C(r || null) });
1713
+ }, text: function(t = "", e) {
1714
+ return y.text({ chars: t, loc: C(e || null) });
1715
+ }, sexpr: function(t, e = [], r = Pt([]), n) {
1716
+ return y.sexpr({ path: et(t), params: e, hash: r, loc: C(n || null) });
1717
+ }, concat: function(t, e) {
1718
+ if (!Vt(t)) throw new Error("b.concat requires at least one part");
1719
+ return y.concat({ parts: t, loc: C(e || null) });
1720
+ }, hash: Pt, pair: function(t, e, r) {
1721
+ return y.pair({ key: t, value: e, loc: C(r || null) });
1722
+ }, literal: Yt, program: function(t, e, r) {
1723
+ return e && e.length ? mr(t, e, !1, r) : gr(t, [], r);
1724
+ }, blockItself: mr, template: gr, loc: C, pos: function(t, e) {
1725
+ return y.pos({ line: t, column: e });
1726
+ }, path: et, fullPath: function(t, e = [], r) {
1727
+ return y.path({ head: t, tail: e, loc: C(r || null) });
1728
+ }, head: function(t, e) {
1729
+ return y.head({ original: t, loc: C(e || null) });
1730
+ }, at: function(t, e) {
1731
+ return y.atName({ name: t, loc: C(e || null) });
1732
+ }, var: fr, this: function(t) {
1733
+ return y.this({ loc: C(t || null) });
1734
+ }, string: ve("StringLiteral"), boolean: ve("BooleanLiteral"), number: ve("NumberLiteral"), undefined: () => Yt("UndefinedLiteral", void 0), null: () => Yt("NullLiteral", null) };
1735
+ function ve(t) {
2040
1736
  return function(e, r) {
2041
1737
  return Yt(t, e, r);
2042
1738
  };
2043
1739
  }
2044
- function Vs({ path: t, params: e, hash: r, trusting: n, strip: a, loc: s }) {
2045
- let u = { type: "MustacheStatement", path: t, params: e, hash: r, trusting: n, strip: a, loc: s };
2046
- return Object.defineProperty(u, "escaped", { enumerable: !1, get() {
2047
- return M("The escaped property on mustache nodes is deprecated, use trusting instead"), !this.trusting;
2048
- }, set(i) {
2049
- M("The escaped property on mustache nodes is deprecated, use trusting instead"), this.trusting = !i;
2050
- } }), u;
2051
- }
2052
- function Rs({ head: t, tail: e, loc: r }) {
2053
- let n = { type: "PathExpression", head: t, tail: e, get original() {
2054
- return [this.head.original, ...this.tail].join(".");
2055
- }, set original(a) {
2056
- let [s, ...u] = _t(a.split("."));
2057
- this.head = $s.head(s, this.head.loc), this.tail = u;
2058
- }, loc: r };
2059
- return Object.defineProperty(n, "parts", { enumerable: !1, get() {
2060
- M("The parts property on path nodes is deprecated, use head and tail instead");
2061
- let a = _t(this.original.split("."));
2062
- return a[0] === "this" ? a.shift() : a[0].startsWith("@") && (a[0] = a[0].slice(1)), Object.freeze(a);
2063
- }, set(a) {
2064
- var s;
2065
- M("The parts property on mustache nodes is deprecated, use head and tail instead");
2066
- let u = [...a];
2067
- u[0] !== "this" && !((s = u[0]) != null && s.startsWith("@")) && (this.head.type === "ThisHead" ? u.unshift("this") : this.head.type === "AtHead" && (u[0] = `@${u[0]}`)), this.original = u.join(".");
2068
- } }), Object.defineProperty(n, "this", { enumerable: !1, get() {
2069
- return M("The this property on path nodes is deprecated, use head.type instead"), this.head.type === "ThisHead";
2070
- } }), Object.defineProperty(n, "data", { enumerable: !1, get() {
2071
- return M("The data property on path nodes is deprecated, use head.type instead"), this.head.type === "AtHead";
2072
- } }), n;
2073
- }
2074
- function Us({ type: t, value: e, loc: r }) {
2075
- let n = { type: t, value: e, loc: r };
2076
- return Object.defineProperty(n, "original", { enumerable: !1, get() {
2077
- return M("The original property on literal nodes is deprecated, use value instead"), this.value;
2078
- }, set(a) {
2079
- M("The original property on literal nodes is deprecated, use value instead"), this.value = a;
2080
- } }), n;
2081
- }
2082
- var Gt = { close: !1, open: !1 }, Hs = class {
1740
+ var Wt = { close: !1, open: !1 }, y = new class {
2083
1741
  pos({ line: t, column: e }) {
2084
1742
  return { line: t, column: e };
2085
1743
  }
@@ -2087,16 +1745,23 @@ var Gt = { close: !1, open: !1 }, Hs = class {
2087
1745
  return { type: "Block", body: t, params: e, get blockParams() {
2088
1746
  return this.params.map((a) => a.name);
2089
1747
  }, set blockParams(a) {
2090
- this.params = a.map((s) => f.var({ name: s, loc: I.synthetic(s) }));
1748
+ this.params = a.map((s) => y.var({ name: s, loc: q.synthetic(s) }));
2091
1749
  }, chained: r, loc: n };
2092
1750
  }
2093
1751
  template({ body: t, blockParams: e, loc: r }) {
2094
1752
  return { type: "Template", body: t, blockParams: e, loc: r };
2095
1753
  }
2096
- mustache({ path: t, params: e, hash: r, trusting: n, loc: a, strip: s = Gt }) {
2097
- return Vs({ path: t, params: e, hash: r, trusting: n, strip: s, loc: a });
2098
- }
2099
- block({ path: t, params: e, hash: r, defaultBlock: n, elseBlock: a = null, loc: s, openStrip: u = Gt, inverseStrip: i = Gt, closeStrip: l = Gt }) {
1754
+ mustache({ path: t, params: e, hash: r, trusting: n, loc: a, strip: s = Wt }) {
1755
+ return function({ path: u, params: i, hash: l, trusting: h, strip: f, loc: m }) {
1756
+ let A = { type: "MustacheStatement", path: u, params: i, hash: l, trusting: h, strip: f, loc: m };
1757
+ return Object.defineProperty(A, "escaped", { enumerable: !1, get() {
1758
+ return !this.trusting;
1759
+ }, set(d) {
1760
+ this.trusting = !d;
1761
+ } }), A;
1762
+ }({ path: t, params: e, hash: r, trusting: n, strip: s, loc: a });
1763
+ }
1764
+ block({ path: t, params: e, hash: r, defaultBlock: n, elseBlock: a = null, loc: s, openStrip: u = Wt, inverseStrip: i = Wt, closeStrip: l = Wt }) {
2100
1765
  return { type: "BlockStatement", path: t, params: e, hash: r, program: n, inverse: a, loc: s, openStrip: u, inverseStrip: i, closeStrip: l };
2101
1766
  }
2102
1767
  comment({ value: t, loc: e }) {
@@ -2108,20 +1773,20 @@ var Gt = { close: !1, open: !1 }, Hs = class {
2108
1773
  concat({ parts: t, loc: e }) {
2109
1774
  return { type: "ConcatStatement", parts: t, loc: e };
2110
1775
  }
2111
- element({ path: t, selfClosing: e, attributes: r, modifiers: n, params: a, comments: s, children: u, openTag: i, closeTag: l, loc: g }) {
2112
- let h = e;
2113
- return { type: "ElementNode", path: t, attributes: r, modifiers: n, params: a, comments: s, children: u, openTag: i, closeTag: l, loc: g, get tag() {
1776
+ element({ path: t, selfClosing: e, attributes: r, modifiers: n, params: a, comments: s, children: u, openTag: i, closeTag: l, loc: h }) {
1777
+ let f = e;
1778
+ return { type: "ElementNode", path: t, attributes: r, modifiers: n, params: a, comments: s, children: u, openTag: i, closeTag: l, loc: h, get tag() {
2114
1779
  return this.path.original;
2115
1780
  }, set tag(m) {
2116
1781
  this.path.original = m;
2117
1782
  }, get blockParams() {
2118
1783
  return this.params.map((m) => m.name);
2119
1784
  }, set blockParams(m) {
2120
- this.params = m.map((A) => f.var({ name: A, loc: I.synthetic(A) }));
1785
+ this.params = m.map((A) => y.var({ name: A, loc: q.synthetic(A) }));
2121
1786
  }, get selfClosing() {
2122
- return h;
1787
+ return f;
2123
1788
  }, set selfClosing(m) {
2124
- h = m, m ? this.closeTag = null : this.closeTag = I.synthetic(`</${this.tag}>`);
1789
+ f = m, this.closeTag = m ? null : q.synthetic(`</${this.tag}>`);
2125
1790
  } };
2126
1791
  }
2127
1792
  elementModifier({ path: t, params: e, hash: r, loc: n }) {
@@ -2137,7 +1802,26 @@ var Gt = { close: !1, open: !1 }, Hs = class {
2137
1802
  return { type: "SubExpression", path: t, params: e, hash: r, loc: n };
2138
1803
  }
2139
1804
  path({ head: t, tail: e, loc: r }) {
2140
- return Rs({ head: t, tail: e, loc: r });
1805
+ return function({ head: n, tail: a, loc: s }) {
1806
+ let u = { type: "PathExpression", head: n, tail: a, get original() {
1807
+ return [this.head.original, ...this.tail].join(".");
1808
+ }, set original(i) {
1809
+ let [l, ...h] = i.split(".");
1810
+ this.head = Va.head(l, this.head.loc), this.tail = h;
1811
+ }, loc: s };
1812
+ return Object.defineProperty(u, "parts", { enumerable: !1, get() {
1813
+ let i = this.original.split(".");
1814
+ return i[0] === "this" ? i.shift() : i[0].startsWith("@") && (i[0] = i[0].slice(1)), Object.freeze(i);
1815
+ }, set(i) {
1816
+ var h;
1817
+ let l = [...i];
1818
+ l[0] === "this" || (h = l[0]) != null && h.startsWith("@") || (this.head.type === "ThisHead" ? l.unshift("this") : this.head.type === "AtHead" && (l[0] = `@${l[0]}`)), this.original = l.join(".");
1819
+ } }), Object.defineProperty(u, "this", { enumerable: !1, get() {
1820
+ return this.head.type === "ThisHead";
1821
+ } }), Object.defineProperty(u, "data", { enumerable: !1, get() {
1822
+ return this.head.type === "AtHead";
1823
+ } }), u;
1824
+ }({ head: t, tail: e, loc: r });
2141
1825
  }
2142
1826
  head({ original: t, loc: e }) {
2143
1827
  return t === "this" ? this.this({ loc: e }) : t[0] === "@" ? this.atName({ name: t, loc: e }) : this.var({ name: t, loc: e });
@@ -2151,7 +1835,7 @@ var Gt = { close: !1, open: !1 }, Hs = class {
2151
1835
  let r = "", n = { type: "AtHead", get name() {
2152
1836
  return r;
2153
1837
  }, set name(a) {
2154
- S(a[0] === "@", "call builders.at() with a string that starts with '@'"), S(a.indexOf(".") === -1, "builder.at() should not be called with a name with dots in it"), r = a;
1838
+ a[0], a.indexOf("."), r = a;
2155
1839
  }, get original() {
2156
1840
  return this.name;
2157
1841
  }, set original(a) {
@@ -2163,7 +1847,7 @@ var Gt = { close: !1, open: !1 }, Hs = class {
2163
1847
  let r = "", n = { type: "VarHead", get name() {
2164
1848
  return r;
2165
1849
  }, set name(a) {
2166
- S(a !== "this", "You called builders.var() with 'this'. Call builders.this instead"), S(a[0] !== "@", `You called builders.var() with '${t}'. Call builders.at('${t}') instead`), S(a.indexOf(".") === -1, "builder.var() should not be called with a name with dots in it"), r = a;
1850
+ a[0], a.indexOf("."), r = a;
2167
1851
  }, get original() {
2168
1852
  return this.name;
2169
1853
  }, set original(a) {
@@ -2178,17 +1862,18 @@ var Gt = { close: !1, open: !1 }, Hs = class {
2178
1862
  return { type: "HashPair", key: t, value: e, loc: r };
2179
1863
  }
2180
1864
  literal({ type: t, value: e, loc: r }) {
2181
- return Us({ type: t, value: e, loc: r });
2182
- }
2183
- }, f = new Hs(), Ms = class {
2184
- constructor(t, e = new Qr(Ga), r = "precompile") {
2185
- w(this, "elementStack", []);
2186
- w(this, "lines");
2187
- w(this, "source");
2188
- w(this, "currentAttribute", null);
2189
- w(this, "currentNode", null);
2190
- w(this, "tokenizer");
2191
- this.source = t, this.lines = t.source.split(/\r\n?|\n/u), this.tokenizer = new ts(this, e, r);
1865
+ return function({ type: n, value: a, loc: s }) {
1866
+ let u = { type: n, value: a, loc: s };
1867
+ return Object.defineProperty(u, "original", { enumerable: !1, get() {
1868
+ return this.value;
1869
+ }, set(i) {
1870
+ this.value = i;
1871
+ } }), u;
1872
+ }({ type: t, value: e, loc: r });
1873
+ }
1874
+ }(), $a = class {
1875
+ constructor(t, e = new Wr(ya), r = "precompile") {
1876
+ this.elementStack = [], this.currentAttribute = null, this.currentNode = null, this.source = t, this.lines = t.source.split(/\r\n?|\n/u), this.tokenizer = new wa(this, e, r);
2192
1877
  }
2193
1878
  offset() {
2194
1879
  let { line: t, column: e } = this.tokenizer;
@@ -2198,242 +1883,231 @@ var Gt = { close: !1, open: !1 }, Hs = class {
2198
1883
  return this.source.offsetFor(t, e);
2199
1884
  }
2200
1885
  finish(t) {
2201
- return Gr({}, t, { loc: t.start.until(this.offset()) });
1886
+ return Mr({}, t, { loc: t.start.until(this.offset()) });
2202
1887
  }
2203
1888
  get currentAttr() {
2204
- return Sa(this.currentAttribute, "expected attribute");
1889
+ return this.currentAttribute;
2205
1890
  }
2206
1891
  get currentTag() {
2207
1892
  let t = this.currentNode;
2208
- return S(t && (t.type === "StartTag" || t.type === "EndTag"), "expected tag"), t;
1893
+ return t && (t.type === "StartTag" || t.type), t;
2209
1894
  }
2210
1895
  get currentStartTag() {
2211
1896
  let t = this.currentNode;
2212
- return S(t && t.type === "StartTag", "expected start tag"), t;
1897
+ return t && t.type, t;
2213
1898
  }
2214
1899
  get currentEndTag() {
2215
1900
  let t = this.currentNode;
2216
- return S(t && t.type === "EndTag", "expected end tag"), t;
1901
+ return t && t.type, t;
2217
1902
  }
2218
1903
  get currentComment() {
2219
1904
  let t = this.currentNode;
2220
- return S(t && t.type === "CommentStatement", "expected a comment"), t;
1905
+ return t && t.type, t;
2221
1906
  }
2222
1907
  get currentData() {
2223
1908
  let t = this.currentNode;
2224
- return S(t && t.type === "TextNode", "expected a text node"), t;
1909
+ return t && t.type, t;
2225
1910
  }
2226
1911
  acceptNode(t) {
2227
1912
  return this[t.type](t);
2228
1913
  }
2229
1914
  currentElement() {
2230
- return He(_t(this.elementStack));
1915
+ return ze(this.elementStack);
2231
1916
  }
2232
1917
  sourceForNode(t, e) {
2233
- let r = t.loc.start.line - 1, n = r - 1, a = t.loc.start.column, s = [], u, i, l;
2234
- for (e ? (i = e.loc.end.line - 1, l = e.loc.end.column) : (i = t.loc.end.line - 1, l = t.loc.end.column); n < i; ) n++, u = Ue(this.lines[n]), n === r ? r === i ? s.push(u.slice(a, l)) : s.push(u.slice(a)) : n === i ? s.push(u.slice(0, l)) : s.push(u);
2235
- return s.join(`
1918
+ let r, n, a, s = t.loc.start.line - 1, u = s - 1, i = t.loc.start.column, l = [];
1919
+ for (e ? (n = e.loc.end.line - 1, a = e.loc.end.column) : (n = t.loc.end.line - 1, a = t.loc.end.column); u < n; ) u++, r = this.lines[u], u === s ? s === n ? l.push(r.slice(i, a)) : l.push(r.slice(i)) : u === n ? l.push(r.slice(0, a)) : l.push(r);
1920
+ return l.join(`
2236
1921
  `);
2237
1922
  }
2238
- }, Ar = "beforeAttributeName", zs = "attributeValueUnquoted", js = class extends Ms {
2239
- constructor() {
2240
- super(...arguments);
2241
- w(this, "pendingError", null);
2242
- }
2243
- parse(e, r) {
2244
- var n;
2245
- let a = f.template({ body: [], blockParams: r, loc: this.source.spanFor(e.loc) }), s = this.parseProgram(a, e);
2246
- return (n = this.pendingError) == null || n.eof(s.loc.getEnd()), s;
2247
- }
2248
- Program(e, r) {
2249
- S(Array.isArray(r), "[BUG] Program in parser unexpectedly called without block params");
2250
- let n = f.blockItself({ body: [], params: r, chained: e.chained, loc: this.source.spanFor(e.loc) });
2251
- return this.parseProgram(n, e);
2252
- }
2253
- parseProgram(e, r) {
2254
- if (r.body.length === 0) return e;
2255
- let n;
1923
+ }, Ua = class extends $a {
1924
+ parse(t, e) {
1925
+ var a;
1926
+ t.loc;
1927
+ let r = y.template({ body: [], blockParams: e, loc: this.source.spanFor(t.loc) }), n = this.parseProgram(r, t);
1928
+ return (a = this.pendingError) == null || a.eof(n.loc.getEnd()), n;
1929
+ }
1930
+ Program(t, e) {
1931
+ t.loc;
1932
+ let r = y.blockItself({ body: [], params: e, chained: t.chained, loc: this.source.spanFor(t.loc) });
1933
+ return this.parseProgram(r, t);
1934
+ }
1935
+ parseProgram(t, e) {
1936
+ if (e.body.length === 0) return t;
1937
+ let r;
2256
1938
  try {
2257
- this.elementStack.push(e);
2258
- for (let a of r.body) this.acceptNode(a);
1939
+ this.elementStack.push(t);
1940
+ for (let n of e.body) this.acceptNode(n);
2259
1941
  } finally {
2260
- n = this.elementStack.pop();
1942
+ r = this.elementStack.pop();
2261
1943
  }
2262
- if (e !== n) {
2263
- if ((n == null ? void 0 : n.type) === "ElementNode") throw D(`Unclosed element \`${n.tag}\``, n.loc);
2264
- S(n !== void 0, "[BUG] empty parser elementStack"), S(!1, `[BUG] mismatched parser elementStack node: ${e.type}`);
2265
- }
2266
- return e;
2267
- }
2268
- BlockStatement(e) {
2269
- var r;
2270
- if (this.tokenizer.state === "comment") {
2271
- this.appendToCommentData(this.sourceForNode(e));
2272
- return;
1944
+ if (t !== r) {
1945
+ if ((r == null ? void 0 : r.type) === "ElementNode") throw E(`Unclosed element \`${r.tag}\``, r.loc);
1946
+ t.type;
2273
1947
  }
2274
- if (this.tokenizer.state !== "data" && this.tokenizer.state !== "beforeData") throw D("A block may only be used inside an HTML element or another block.", this.source.spanFor(e.loc));
2275
- let { path: n, params: a, hash: s } = ye(this, e), u = this.source.spanFor(e.loc), i = [];
2276
- if ((r = e.program.blockParams) != null && r.length) {
2277
- let A = s.loc.collapse("end");
2278
- e.program.loc ? A = A.withEnd(this.source.spanFor(e.program.loc).getStart()) : e.program.body[0] ? A = A.withEnd(this.source.spanFor(e.program.body[0].loc).getStart()) : A = A.withEnd(u.getEnd());
2279
- let y = A.asString(), C = y.indexOf("|") + 1, T = y.indexOf("|", C);
2280
- for (let x of e.program.blockParams) {
2281
- let B, U;
2282
- C >= T ? B = -1 : B = y.indexOf(x, C), B === -1 || B + x.length > T ? (C = T, U = this.source.spanFor(Pt)) : (C = B, U = A.sliceStartChars({ skipStart: C, chars: x.length }), C += x.length), i.push(f.var({ name: x, loc: U }));
1948
+ return t;
1949
+ }
1950
+ BlockStatement(t) {
1951
+ var f;
1952
+ if (this.tokenizer.state === "comment") return t.loc, void this.appendToCommentData(this.sourceForNode(t));
1953
+ if (this.tokenizer.state !== "data" && this.tokenizer.state !== "beforeData") throw E("A block may only be used inside an HTML element or another block.", this.source.spanFor(t.loc));
1954
+ let { path: e, params: r, hash: n } = Ce(this, t), a = this.source.spanFor(t.loc), s, u = [];
1955
+ if ((f = t.program.blockParams) != null && f.length) {
1956
+ let m = n.loc.collapse("end");
1957
+ m = t.program.loc ? m.withEnd(this.source.spanFor(t.program.loc).getStart()) : t.program.body[0] ? m.withEnd(this.source.spanFor(t.program.body[0].loc).getStart()) : m.withEnd(a.getEnd()), s = yr(this.source, t, m);
1958
+ let A = m.asString(), d = A.indexOf("|") + 1, v = A.indexOf("|", d);
1959
+ for (let w of t.program.blockParams) {
1960
+ let S, B;
1961
+ S = d >= v ? -1 : A.indexOf(w, d), S === -1 || S + w.length > v ? (d = v, B = this.source.spanFor(Te)) : (d = S, B = m.sliceStartChars({ skipStart: d, chars: w.length }), d += w.length), u.push(y.var({ name: w, loc: B }));
2283
1962
  }
2284
- }
2285
- e.program.loc || (e.program.loc = Pt), e.inverse && !e.inverse.loc && (e.inverse.loc = Pt);
2286
- let l = this.Program(e.program, i), g = e.inverse ? this.Program(e.inverse, []) : null, h = f.block({ path: n, params: a, hash: s, defaultBlock: l, elseBlock: g, loc: this.source.spanFor(e.loc), openStrip: e.openStrip, inverseStrip: e.inverseStrip, closeStrip: e.closeStrip }), m = this.currentElement();
2287
- vt(m, h);
2288
- }
2289
- MustacheStatement(e) {
2290
- var r;
2291
- (r = this.pendingError) == null || r.mustache(this.source.spanFor(e.loc));
2292
- let { tokenizer: n } = this;
2293
- if (n.state === "comment") {
2294
- this.appendToCommentData(this.sourceForNode(e));
2295
- return;
2296
- }
2297
- let a, { escaped: s, loc: u, strip: i } = e;
2298
- if ("original" in e.path && e.path.original === "...attributes") throw D("Illegal use of ...attributes", this.source.spanFor(e.loc));
2299
- if (en(e.path)) a = f.mustache({ path: this.acceptNode(e.path), params: [], hash: f.hash({ pairs: [], loc: this.source.spanFor(e.path.loc).collapse("end") }), trusting: !s, loc: this.source.spanFor(u), strip: i });
1963
+ } else s = yr(this.source, t, a);
1964
+ let i = this.Program(s.program, u), l = s.inverse ? this.Program(s.inverse, []) : null, h = y.block({ path: e, params: r, hash: n, defaultBlock: i, elseBlock: l, loc: this.source.spanFor(t.loc), openStrip: t.openStrip, inverseStrip: t.inverseStrip, closeStrip: t.closeStrip });
1965
+ wt(this.currentElement(), h);
1966
+ }
1967
+ MustacheStatement(t) {
1968
+ var u;
1969
+ (u = this.pendingError) == null || u.mustache(this.source.spanFor(t.loc));
1970
+ let { tokenizer: e } = this;
1971
+ if (e.state === "comment") return void this.appendToCommentData(this.sourceForNode(t));
1972
+ let r, { escaped: n, loc: a, strip: s } = t;
1973
+ if ("original" in t.path && t.path.original === "...attributes") throw E("Illegal use of ...attributes", this.source.spanFor(t.loc));
1974
+ if (tn(t.path)) r = y.mustache({ path: this.acceptNode(t.path), params: [], hash: y.hash({ pairs: [], loc: this.source.spanFor(t.path.loc).collapse("end") }), trusting: !n, loc: this.source.spanFor(a), strip: s });
2300
1975
  else {
2301
- let { path: l, params: g, hash: h } = ye(this, e);
2302
- a = f.mustache({ path: l, params: g, hash: h, trusting: !s, loc: this.source.spanFor(u), strip: i });
1976
+ let { path: i, params: l, hash: h } = Ce(this, t);
1977
+ r = y.mustache({ path: i, params: l, hash: h, trusting: !n, loc: this.source.spanFor(a), strip: s });
2303
1978
  }
2304
- switch (n.state) {
1979
+ switch (e.state) {
2305
1980
  case "tagOpen":
2306
1981
  case "tagName":
2307
- throw D("Cannot use mustaches in an elements tagname", a.loc);
1982
+ throw E("Cannot use mustaches in an elements tagname", r.loc);
2308
1983
  case "beforeAttributeName":
2309
- Ae(this.currentStartTag, a);
1984
+ Se(this.currentStartTag, r);
2310
1985
  break;
2311
1986
  case "attributeName":
2312
1987
  case "afterAttributeName":
2313
- this.beginAttributeValue(!1), this.finishAttributeValue(), Ae(this.currentStartTag, a), n.transitionTo(Ar);
1988
+ this.beginAttributeValue(!1), this.finishAttributeValue(), Se(this.currentStartTag, r), e.transitionTo("beforeAttributeName");
2314
1989
  break;
2315
1990
  case "afterAttributeValueQuoted":
2316
- Ae(this.currentStartTag, a), n.transitionTo(Ar);
1991
+ Se(this.currentStartTag, r), e.transitionTo("beforeAttributeName");
2317
1992
  break;
2318
1993
  case "beforeAttributeValue":
2319
- this.beginAttributeValue(!1), this.appendDynamicAttributeValuePart(a), n.transitionTo(zs);
1994
+ this.beginAttributeValue(!1), this.appendDynamicAttributeValuePart(r), e.transitionTo("attributeValueUnquoted");
2320
1995
  break;
2321
1996
  case "attributeValueDoubleQuoted":
2322
1997
  case "attributeValueSingleQuoted":
2323
1998
  case "attributeValueUnquoted":
2324
- this.appendDynamicAttributeValuePart(a);
1999
+ this.appendDynamicAttributeValuePart(r);
2325
2000
  break;
2326
2001
  default:
2327
- vt(this.currentElement(), a);
2002
+ wt(this.currentElement(), r);
2328
2003
  }
2329
- return a;
2004
+ return r;
2330
2005
  }
2331
- appendDynamicAttributeValuePart(e) {
2006
+ appendDynamicAttributeValuePart(t) {
2332
2007
  this.finalizeTextPart();
2333
- let r = this.currentAttr;
2334
- r.isDynamic = !0, r.parts.push(e);
2008
+ let e = this.currentAttr;
2009
+ e.isDynamic = !0, e.parts.push(t);
2335
2010
  }
2336
2011
  finalizeTextPart() {
2337
- let e = this.currentAttr.currentPart;
2338
- e !== null && (this.currentAttr.parts.push(e), this.startTextPart());
2012
+ let t = this.currentAttr.currentPart;
2013
+ t !== null && (this.currentAttr.parts.push(t), this.startTextPart());
2339
2014
  }
2340
2015
  startTextPart() {
2341
2016
  this.currentAttr.currentPart = null;
2342
2017
  }
2343
- ContentStatement(e) {
2344
- Ws(this.tokenizer, e), this.tokenizer.tokenizePart(e.value), this.tokenizer.flushData();
2345
- }
2346
- CommentStatement(e) {
2347
- let { tokenizer: r } = this;
2348
- if (r.state === "comment") return this.appendToCommentData(this.sourceForNode(e)), null;
2349
- let { value: n, loc: a } = e, s = f.mustacheComment({ value: n, loc: this.source.spanFor(a) });
2350
- switch (r.state) {
2018
+ ContentStatement(t) {
2019
+ (function(e, r) {
2020
+ let n = r.loc.start.line, a = r.loc.start.column, s = function(u, i) {
2021
+ if (i === "") return { lines: u.split(`
2022
+ `).length - 1, columns: 0 };
2023
+ let [l] = u.split(i), h = l.split(/\n/u), f = h.length - 1;
2024
+ return { lines: f, columns: h[f].length };
2025
+ }(r.original, r.value);
2026
+ n += s.lines, s.lines ? a = s.columns : a += s.columns, e.line = n, e.column = a;
2027
+ })(this.tokenizer, t), this.tokenizer.tokenizePart(t.value), this.tokenizer.flushData();
2028
+ }
2029
+ CommentStatement(t) {
2030
+ let { tokenizer: e } = this;
2031
+ if (e.state === "comment") return this.appendToCommentData(this.sourceForNode(t)), null;
2032
+ let { value: r, loc: n } = t, a = y.mustacheComment({ value: r, loc: this.source.spanFor(n) });
2033
+ switch (e.state) {
2351
2034
  case "beforeAttributeName":
2352
2035
  case "afterAttributeName":
2353
- this.currentStartTag.comments.push(s);
2036
+ this.currentStartTag.comments.push(a);
2354
2037
  break;
2355
2038
  case "beforeData":
2356
2039
  case "data":
2357
- vt(this.currentElement(), s);
2040
+ wt(this.currentElement(), a);
2358
2041
  break;
2359
2042
  default:
2360
- throw D(`Using a Handlebars comment when in the \`${r.state}\` state is not supported`, this.source.spanFor(e.loc));
2043
+ throw E(`Using a Handlebars comment when in the \`${e.state}\` state is not supported`, this.source.spanFor(t.loc));
2361
2044
  }
2362
- return s;
2045
+ return a;
2363
2046
  }
2364
- PartialStatement(e) {
2365
- throw D("Handlebars partials are not supported", this.source.spanFor(e.loc));
2047
+ PartialStatement(t) {
2048
+ throw E("Handlebars partials are not supported", this.source.spanFor(t.loc));
2366
2049
  }
2367
- PartialBlockStatement(e) {
2368
- throw D("Handlebars partial blocks are not supported", this.source.spanFor(e.loc));
2050
+ PartialBlockStatement(t) {
2051
+ throw E("Handlebars partial blocks are not supported", this.source.spanFor(t.loc));
2369
2052
  }
2370
- Decorator(e) {
2371
- throw D("Handlebars decorators are not supported", this.source.spanFor(e.loc));
2053
+ Decorator(t) {
2054
+ throw E("Handlebars decorators are not supported", this.source.spanFor(t.loc));
2372
2055
  }
2373
- DecoratorBlock(e) {
2374
- throw D("Handlebars decorator blocks are not supported", this.source.spanFor(e.loc));
2056
+ DecoratorBlock(t) {
2057
+ throw E("Handlebars decorator blocks are not supported", this.source.spanFor(t.loc));
2375
2058
  }
2376
- SubExpression(e) {
2377
- let { path: r, params: n, hash: a } = ye(this, e);
2378
- return f.sexpr({ path: r, params: n, hash: a, loc: this.source.spanFor(e.loc) });
2059
+ SubExpression(t) {
2060
+ let { path: e, params: r, hash: n } = Ce(this, t);
2061
+ return y.sexpr({ path: e, params: r, hash: n, loc: this.source.spanFor(t.loc) });
2379
2062
  }
2380
- PathExpression(e) {
2381
- let { original: r } = e, n;
2382
- if (r.indexOf("/") !== -1) {
2383
- if (r.slice(0, 2) === "./") throw D('Using "./" is not supported in Glimmer and unnecessary', this.source.spanFor(e.loc));
2384
- if (r.slice(0, 3) === "../") throw D('Changing context using "../" is not supported in Glimmer', this.source.spanFor(e.loc));
2385
- if (r.indexOf(".") !== -1) throw D("Mixing '.' and '/' in paths is not supported in Glimmer; use only '.' to separate property paths", this.source.spanFor(e.loc));
2386
- n = [e.parts.join("/")];
2063
+ PathExpression(t) {
2064
+ let { original: e } = t, r;
2065
+ if (e.indexOf("/") !== -1) {
2066
+ if (e.slice(0, 2) === "./") throw E('Using "./" is not supported in Glimmer and unnecessary', this.source.spanFor(t.loc));
2067
+ if (e.slice(0, 3) === "../") throw E('Changing context using "../" is not supported in Glimmer', this.source.spanFor(t.loc));
2068
+ if (e.indexOf(".") !== -1) throw E("Mixing '.' and '/' in paths is not supported in Glimmer; use only '.' to separate property paths", this.source.spanFor(t.loc));
2069
+ r = [t.parts.join("/")];
2387
2070
  } else {
2388
- if (r === ".") throw D("'.' is not a supported path in Glimmer; check for a path with a trailing '.'", this.source.spanFor(e.loc));
2389
- n = e.parts;
2071
+ if (e === ".") throw E("'.' is not a supported path in Glimmer; check for a path with a trailing '.'", this.source.spanFor(t.loc));
2072
+ r = t.parts;
2390
2073
  }
2391
- let a = !1;
2392
- /^this(?:\..+)?$/u.test(r) && (a = !0);
2393
- let s;
2394
- if (a) s = f.this({ loc: this.source.spanFor({ start: e.loc.start, end: { line: e.loc.start.line, column: e.loc.start.column + 4 } }) });
2395
- else if (e.data) {
2396
- let u = n.shift();
2397
- if (u === void 0) throw D("Attempted to parse a path expression, but it was not valid. Paths beginning with @ must start with a-z.", this.source.spanFor(e.loc));
2398
- s = f.atName({ name: `@${u}`, loc: this.source.spanFor({ start: e.loc.start, end: { line: e.loc.start.line, column: e.loc.start.column + u.length + 1 } }) });
2074
+ let n, a = !1;
2075
+ if (/^this(?:\..+)?$/u.test(e) && (a = !0), a) n = y.this({ loc: this.source.spanFor({ start: t.loc.start, end: { line: t.loc.start.line, column: t.loc.start.column + 4 } }) });
2076
+ else if (t.data) {
2077
+ let s = r.shift();
2078
+ if (s === void 0) throw E("Attempted to parse a path expression, but it was not valid. Paths beginning with @ must start with a-z.", this.source.spanFor(t.loc));
2079
+ n = y.atName({ name: `@${s}`, loc: this.source.spanFor({ start: t.loc.start, end: { line: t.loc.start.line, column: t.loc.start.column + s.length + 1 } }) });
2399
2080
  } else {
2400
- let u = n.shift();
2401
- if (u === void 0) throw D("Attempted to parse a path expression, but it was not valid. Paths must start with a-z or A-Z.", this.source.spanFor(e.loc));
2402
- s = f.var({ name: u, loc: this.source.spanFor({ start: e.loc.start, end: { line: e.loc.start.line, column: e.loc.start.column + u.length } }) });
2081
+ let s = r.shift();
2082
+ if (s === void 0) throw E("Attempted to parse a path expression, but it was not valid. Paths must start with a-z or A-Z.", this.source.spanFor(t.loc));
2083
+ n = y.var({ name: s, loc: this.source.spanFor({ start: t.loc.start, end: { line: t.loc.start.line, column: t.loc.start.column + s.length } }) });
2403
2084
  }
2404
- return f.path({ head: s, tail: n, loc: this.source.spanFor(e.loc) });
2085
+ return y.path({ head: n, tail: r, loc: this.source.spanFor(t.loc) });
2086
+ }
2087
+ Hash(t) {
2088
+ let e = t.pairs.map((r) => y.pair({ key: r.key, value: this.acceptNode(r.value), loc: this.source.spanFor(r.loc) }));
2089
+ return y.hash({ pairs: e, loc: this.source.spanFor(t.loc) });
2405
2090
  }
2406
- Hash(e) {
2407
- let r = e.pairs.map((n) => f.pair({ key: n.key, value: this.acceptNode(n.value), loc: this.source.spanFor(n.loc) }));
2408
- return f.hash({ pairs: r, loc: this.source.spanFor(e.loc) });
2091
+ StringLiteral(t) {
2092
+ return y.literal({ type: "StringLiteral", value: t.value, loc: this.source.spanFor(t.loc) });
2409
2093
  }
2410
- StringLiteral(e) {
2411
- return f.literal({ type: "StringLiteral", value: e.value, loc: this.source.spanFor(e.loc) });
2094
+ BooleanLiteral(t) {
2095
+ return y.literal({ type: "BooleanLiteral", value: t.value, loc: this.source.spanFor(t.loc) });
2412
2096
  }
2413
- BooleanLiteral(e) {
2414
- return f.literal({ type: "BooleanLiteral", value: e.value, loc: this.source.spanFor(e.loc) });
2097
+ NumberLiteral(t) {
2098
+ return y.literal({ type: "NumberLiteral", value: t.value, loc: this.source.spanFor(t.loc) });
2415
2099
  }
2416
- NumberLiteral(e) {
2417
- return f.literal({ type: "NumberLiteral", value: e.value, loc: this.source.spanFor(e.loc) });
2100
+ UndefinedLiteral(t) {
2101
+ return y.literal({ type: "UndefinedLiteral", value: void 0, loc: this.source.spanFor(t.loc) });
2418
2102
  }
2419
- UndefinedLiteral(e) {
2420
- return f.literal({ type: "UndefinedLiteral", value: void 0, loc: this.source.spanFor(e.loc) });
2103
+ NullLiteral(t) {
2104
+ return y.literal({ type: "NullLiteral", value: null, loc: this.source.spanFor(t.loc) });
2421
2105
  }
2422
- NullLiteral(e) {
2423
- return f.literal({ type: "NullLiteral", value: null, loc: this.source.spanFor(e.loc) });
2106
+ constructor(...t) {
2107
+ super(...t), this.pendingError = null;
2424
2108
  }
2425
2109
  };
2426
- function Gs(t, e) {
2427
- if (e === "") return { lines: t.split(`
2428
- `).length - 1, columns: 0 };
2429
- let [r] = t.split(e), n = r.split(/\n/u), a = n.length - 1;
2430
- return { lines: a, columns: Ue(n[a]).length };
2431
- }
2432
- function Ws(t, e) {
2433
- let r = e.loc.start.line, n = e.loc.start.column, a = Gs(e.original, e.value);
2434
- r = r + a.lines, a.lines ? n = a.columns : n = n + a.columns, t.line = r, t.column = n;
2435
- }
2436
- function ye(t, e) {
2110
+ function Ce(t, e) {
2437
2111
  let r;
2438
2112
  switch (e.path.type) {
2439
2113
  case "PathExpression":
@@ -2447,51 +2121,60 @@ function ye(t, e) {
2447
2121
  case "NullLiteral":
2448
2122
  case "NumberLiteral":
2449
2123
  case "BooleanLiteral": {
2450
- let u;
2451
- throw e.path.type === "BooleanLiteral" ? u = e.path.original.toString() : e.path.type === "StringLiteral" ? u = `"${e.path.original}"` : e.path.type === "NullLiteral" ? u = "null" : e.path.type === "NumberLiteral" ? u = e.path.value.toString() : u = "undefined", D(`${e.path.type} "${e.path.type === "StringLiteral" ? e.path.original : u}" cannot be called as a sub-expression, replace (${u}) with ${u}`, t.source.spanFor(e.path.loc));
2124
+ let s;
2125
+ throw s = e.path.type === "BooleanLiteral" ? e.path.original.toString() : e.path.type === "StringLiteral" ? `"${e.path.original}"` : e.path.type === "NullLiteral" ? "null" : e.path.type === "NumberLiteral" ? e.path.value.toString() : "undefined", E(`${e.path.type} "${e.path.type === "StringLiteral" ? e.path.original : s}" cannot be called as a sub-expression, replace (${s}) with ${s}`, t.source.spanFor(e.path.loc));
2452
2126
  }
2453
2127
  }
2454
- let n = e.params ? e.params.map((u) => t.acceptNode(u)) : [], a = Bt(n) ? He(n).loc : r.loc, s = e.hash ? t.Hash(e.hash) : f.hash({ pairs: [], loc: t.source.spanFor(a).collapse("end") });
2455
- return { path: r, params: n, hash: s };
2128
+ let n = e.params.map((s) => t.acceptNode(s)), a = Vt(n) ? ze(n).loc : r.loc;
2129
+ return { path: r, params: n, hash: e.hash ? t.Hash(e.hash) : y.hash({ pairs: [], loc: t.source.spanFor(a).collapse("end") }) };
2456
2130
  }
2457
- function Ae(t, e) {
2131
+ function Se(t, e) {
2458
2132
  let { path: r, params: n, hash: a, loc: s } = e;
2459
- if (en(r)) {
2460
- let i = `{{${As(r)}}}`, l = `<${t.name} ... ${i} ...`;
2461
- throw D(`In ${l}, ${i} is not a valid modifier`, e.loc);
2133
+ if (tn(r)) {
2134
+ let i = `{{${function(l) {
2135
+ return l.type === "UndefinedLiteral" ? "undefined" : JSON.stringify(l.value);
2136
+ }(r)}}}`;
2137
+ throw E(`In <${t.name} ... ${i} ..., ${i} is not a valid modifier`, e.loc);
2462
2138
  }
2463
- let u = f.elementModifier({ path: r, params: n, hash: a, loc: s });
2139
+ let u = y.elementModifier({ path: r, params: n, hash: a, loc: s });
2464
2140
  t.modifiers.push(u);
2465
2141
  }
2466
- function yt(t) {
2142
+ function yr(t, e, r) {
2143
+ if (!e.program.loc) {
2144
+ let a = nt(0, e.program.body, 0), s = nt(0, e.program.body, -1);
2145
+ if (a && s) e.program.loc = { ...a.loc, end: s.loc.end };
2146
+ else {
2147
+ let u = t.spanFor(e.loc);
2148
+ e.program.loc = r.withEnd(u.getEnd());
2149
+ }
2150
+ }
2151
+ let n = t.spanFor(e.program.loc).getEnd();
2152
+ return e.inverse && !e.inverse.loc && (e.inverse.loc = n.collapsed()), e;
2153
+ }
2154
+ function Et(t) {
2467
2155
  return /[\t\n\f ]/u.test(t);
2468
2156
  }
2469
- var Ks = class extends js {
2470
- constructor() {
2471
- super(...arguments);
2472
- w(this, "tagOpenLine", 0);
2473
- w(this, "tagOpenColumn", 0);
2474
- }
2157
+ var Ha = class extends Ua {
2475
2158
  reset() {
2476
2159
  this.currentNode = null;
2477
2160
  }
2478
2161
  beginComment() {
2479
2162
  this.currentNode = { type: "CommentStatement", value: "", start: this.source.offsetFor(this.tagOpenLine, this.tagOpenColumn) };
2480
2163
  }
2481
- appendToCommentData(e) {
2482
- this.currentComment.value += e;
2164
+ appendToCommentData(t) {
2165
+ this.currentComment.value += t;
2483
2166
  }
2484
2167
  finishComment() {
2485
- vt(this.currentElement(), f.comment(this.finish(this.currentComment)));
2168
+ wt(this.currentElement(), y.comment(this.finish(this.currentComment)));
2486
2169
  }
2487
2170
  beginData() {
2488
2171
  this.currentNode = { type: "TextNode", chars: "", start: this.offset() };
2489
2172
  }
2490
- appendToData(e) {
2491
- this.currentData.chars += e;
2173
+ appendToData(t) {
2174
+ this.currentData.chars += t;
2492
2175
  }
2493
2176
  finishData() {
2494
- vt(this.currentElement(), f.text(this.finish(this.currentData)));
2177
+ wt(this.currentElement(), y.text(this.finish(this.currentData)));
2495
2178
  }
2496
2179
  tagOpen() {
2497
2180
  this.tagOpenLine = this.tokenizer.line, this.tagOpenColumn = this.tokenizer.column;
@@ -2503,240 +2186,504 @@ var Ks = class extends js {
2503
2186
  this.currentNode = { type: "EndTag", name: "", start: this.source.offsetFor(this.tagOpenLine, this.tagOpenColumn) };
2504
2187
  }
2505
2188
  finishTag() {
2506
- let e = this.finish(this.currentTag);
2507
- if (e.type === "StartTag") {
2508
- if (this.finishStartTag(), e.name === ":") throw D("Invalid named block named detected, you may have created a named block without a name, or you may have began your name with a number. Named blocks must have names that are at least one character long, and begin with a lower case letter", this.source.spanFor({ start: this.currentTag.start.toJSON(), end: this.offset().toJSON() }));
2509
- (Be.has(e.name) || e.selfClosing) && this.finishEndTag(!0);
2510
- } else e.type === "EndTag" && this.finishEndTag(!1);
2189
+ let t = this.finish(this.currentTag);
2190
+ if (t.type === "StartTag") {
2191
+ if (this.finishStartTag(), t.name === ":") throw E("Invalid named block named detected, you may have created a named block without a name, or you may have began your name with a number. Named blocks must have names that are at least one character long, and begin with a lower case letter", this.source.spanFor({ start: this.currentTag.start.toJSON(), end: this.offset().toJSON() }));
2192
+ (te.has(t.name) || t.selfClosing) && this.finishEndTag(!0);
2193
+ } else t.type, t.type, this.finishEndTag(!1);
2511
2194
  }
2512
2195
  finishStartTag() {
2513
- let { name: e, nameStart: r, nameEnd: n } = this.currentStartTag;
2514
- S(e !== "", "tag name cannot be empty"), S(r !== null, "nameStart unexpectedly null"), S(n !== null, "nameEnd unexpectedly null");
2515
- let a = r.until(n), [s, ...u] = _t(e.split(".")), i = f.path({ head: f.head({ original: s, loc: a.sliceStartChars({ chars: s.length }) }), tail: u, loc: a }), { attributes: l, modifiers: g, comments: h, params: m, selfClosing: A, loc: y } = this.finish(this.currentStartTag), C = f.element({ path: i, selfClosing: A, attributes: l, modifiers: g, comments: h, params: m, children: [], openTag: y, closeTag: A ? null : I.broken(), loc: y });
2516
- this.elementStack.push(C);
2196
+ let { name: t, nameStart: e, nameEnd: r } = this.currentStartTag, n = e.until(r), [a, ...s] = t.split("."), u = y.path({ head: y.head({ original: a, loc: n.sliceStartChars({ chars: a.length }) }), tail: s, loc: n }), { attributes: i, modifiers: l, comments: h, params: f, selfClosing: m, loc: A } = this.finish(this.currentStartTag), d = y.element({ path: u, selfClosing: m, attributes: i, modifiers: l, comments: h, params: f, children: [], openTag: A, closeTag: m ? null : q.broken(), loc: A });
2197
+ this.elementStack.push(d);
2517
2198
  }
2518
- finishEndTag(e) {
2519
- let { start: r } = this.currentTag, n = this.finish(this.currentTag), a = this.elementStack.pop();
2520
- this.validateEndTag(n, a, e);
2521
- let s = this.currentElement();
2522
- e ? a.closeTag = null : a.selfClosing ? S(a.closeTag === null, "element.closeTag unexpectedly present") : a.closeTag = r.until(this.offset()), a.loc = a.loc.withEnd(this.offset()), vt(s, f.element(a));
2199
+ finishEndTag(t) {
2200
+ let { start: e } = this.currentTag, r = this.finish(this.currentTag), n = this.elementStack.pop();
2201
+ this.validateEndTag(r, n, t);
2202
+ let a = this.currentElement();
2203
+ t ? n.closeTag = null : n.selfClosing ? n.closeTag : n.closeTag = e.until(this.offset()), n.loc = n.loc.withEnd(this.offset()), wt(a, y.element(n));
2523
2204
  }
2524
2205
  markTagAsSelfClosing() {
2206
+ let t = this.currentTag;
2207
+ if (t.type !== "StartTag") throw E("Invalid end tag: closing tag must not be self-closing", this.source.spanFor({ start: t.start.toJSON(), end: this.offset().toJSON() }));
2208
+ t.selfClosing = !0;
2209
+ }
2210
+ appendToTagName(t) {
2525
2211
  let e = this.currentTag;
2526
- if (e.type === "StartTag") e.selfClosing = !0;
2527
- else throw D("Invalid end tag: closing tag must not be self-closing", this.source.spanFor({ start: e.start.toJSON(), end: this.offset().toJSON() }));
2528
- }
2529
- appendToTagName(e) {
2530
- let r = this.currentTag;
2531
- if (r.name += e, r.type === "StartTag") {
2532
- let n = this.offset();
2533
- r.nameStart === null && (S(r.nameEnd === null, "nameStart and nameEnd must both be null"), r.nameStart = n.move(-1)), r.nameEnd = n;
2212
+ if (e.name += t, e.type === "StartTag") {
2213
+ let r = this.offset();
2214
+ e.nameStart === null && (e.nameEnd, e.nameStart = r.move(-1)), e.nameEnd = r;
2534
2215
  }
2535
2216
  }
2536
2217
  beginAttribute() {
2537
- let e = this.offset();
2538
- this.currentAttribute = { name: "", parts: [], currentPart: null, isQuoted: !1, isDynamic: !1, start: e, valueSpan: e.collapsed() };
2218
+ let t = this.offset();
2219
+ this.currentAttribute = { name: "", parts: [], currentPart: null, isQuoted: !1, isDynamic: !1, start: t, valueSpan: t.collapsed() };
2539
2220
  }
2540
- appendToAttributeName(e) {
2541
- this.currentAttr.name += e, this.currentAttr.name === "as" && this.parsePossibleBlockParams();
2221
+ appendToAttributeName(t) {
2222
+ this.currentAttr.name += t, this.currentAttr.name === "as" && this.parsePossibleBlockParams();
2542
2223
  }
2543
- beginAttributeValue(e) {
2544
- this.currentAttr.isQuoted = e, this.startTextPart(), this.currentAttr.valueSpan = this.offset().collapsed();
2224
+ beginAttributeValue(t) {
2225
+ this.currentAttr.isQuoted = t, this.startTextPart(), this.currentAttr.valueSpan = this.offset().collapsed();
2545
2226
  }
2546
- appendToAttributeValue(e) {
2547
- let r = this.currentAttr.parts, n = r[r.length - 1], a = this.currentAttr.currentPart;
2548
- if (a) a.chars += e, a.loc = a.loc.withEnd(this.offset());
2227
+ appendToAttributeValue(t) {
2228
+ let e = this.currentAttr.parts, r = e[e.length - 1], n = this.currentAttr.currentPart;
2229
+ if (n) n.chars += t, n.loc = n.loc.withEnd(this.offset());
2549
2230
  else {
2550
- let s = this.offset();
2551
- e === `
2552
- ` ? s = n ? n.loc.getEnd() : this.currentAttr.valueSpan.getStart() : s = s.move(-1), this.currentAttr.currentPart = f.text({ chars: e, loc: s.collapsed() });
2231
+ let a = this.offset();
2232
+ a = t === `
2233
+ ` ? r ? r.loc.getEnd() : this.currentAttr.valueSpan.getStart() : a.move(-1), this.currentAttr.currentPart = y.text({ chars: t, loc: a.collapsed() });
2553
2234
  }
2554
2235
  }
2555
2236
  finishAttributeValue() {
2556
2237
  this.finalizeTextPart();
2557
- let e = this.currentTag, r = this.offset();
2558
- if (e.type === "EndTag") throw D("Invalid end tag: closing tag must not have attributes", this.source.spanFor({ start: e.start.toJSON(), end: r.toJSON() }));
2559
- let { name: n, parts: a, start: s, isQuoted: u, isDynamic: i, valueSpan: l } = this.currentAttr;
2560
- if (n.startsWith("|") && a.length === 0 && !u && !i) throw D("Invalid block parameters syntax: block parameters must be preceded by the `as` keyword", s.until(s.move(n.length)));
2561
- let g = this.assembleAttributeValue(a, u, i, s.until(r));
2562
- g.loc = l.withEnd(r);
2563
- let h = f.attr({ name: n, value: g, loc: s.until(r) });
2238
+ let t = this.currentTag, e = this.offset();
2239
+ if (t.type === "EndTag") throw E("Invalid end tag: closing tag must not have attributes", this.source.spanFor({ start: t.start.toJSON(), end: e.toJSON() }));
2240
+ let { name: r, parts: n, start: a, isQuoted: s, isDynamic: u, valueSpan: i } = this.currentAttr;
2241
+ if (r.startsWith("|") && n.length === 0 && !s && !u) throw E("Invalid block parameters syntax: block parameters must be preceded by the `as` keyword", a.until(a.move(r.length)));
2242
+ let l = this.assembleAttributeValue(n, s, u, a.until(e));
2243
+ l.loc = i.withEnd(e);
2244
+ let h = y.attr({ name: r, value: l, loc: a.until(e) });
2564
2245
  this.currentStartTag.attributes.push(h);
2565
2246
  }
2566
2247
  parsePossibleBlockParams() {
2567
- let e = "beforeAttributeName", r = "attributeName", n = "afterAttributeName", a = /[!"#%&'()*+./;<=>@[\\\]^`{|}~]/u;
2568
- S(this.tokenizer.state === r, "must be in TokenizerState.attributeName");
2569
- let s = this.currentStartTag, u = this.currentAttr, i = { state: "PossibleAs" }, l = { PossibleAs: (h) => {
2570
- if (S(i.state === "PossibleAs", "bug in block params parser"), yt(h)) i = { state: "BeforeStartPipe" }, this.tokenizer.transitionTo(n), this.tokenizer.consume();
2248
+ let t = /[!"#%&'()*+./;<=>@[\\\]^`{|}~]/u;
2249
+ this.tokenizer.state;
2250
+ let e = this.currentStartTag, r = this.currentAttr, n = { state: "PossibleAs" }, a = { PossibleAs: (u) => {
2251
+ if (n.state, Et(u)) n = { state: "BeforeStartPipe" }, this.tokenizer.transitionTo("afterAttributeName"), this.tokenizer.consume();
2571
2252
  else {
2572
- if (h === "|") throw D('Invalid block parameters syntax: expecting at least one space character between "as" and "|"', u.start.until(this.offset().move(1)));
2573
- i = { state: "Done" };
2253
+ if (u === "|") throw E('Invalid block parameters syntax: expecting at least one space character between "as" and "|"', r.start.until(this.offset().move(1)));
2254
+ n = { state: "Done" };
2574
2255
  }
2575
- }, BeforeStartPipe: (h) => {
2576
- S(i.state === "BeforeStartPipe", "bug in block params parser"), yt(h) ? this.tokenizer.consume() : h === "|" ? (i = { state: "BeforeBlockParamName" }, this.tokenizer.transitionTo(e), this.tokenizer.consume()) : i = { state: "Done" };
2577
- }, BeforeBlockParamName: (h) => {
2578
- if (S(i.state === "BeforeBlockParamName", "bug in block params parser"), yt(h)) this.tokenizer.consume();
2579
- else if (h === "") i = { state: "Done" }, this.pendingError = { mustache(m) {
2580
- throw D("Invalid block parameters syntax: mustaches cannot be used inside parameters list", m);
2581
- }, eof(m) {
2582
- throw D('Invalid block parameters syntax: expecting the tag to be closed with ">" or "/>" after parameters list', u.start.until(m));
2256
+ }, BeforeStartPipe: (u) => {
2257
+ n.state, Et(u) ? this.tokenizer.consume() : u === "|" ? (n = { state: "BeforeBlockParamName" }, this.tokenizer.transitionTo("beforeAttributeName"), this.tokenizer.consume()) : n = { state: "Done" };
2258
+ }, BeforeBlockParamName: (u) => {
2259
+ if (n.state, Et(u)) this.tokenizer.consume();
2260
+ else if (u === "") n = { state: "Done" }, this.pendingError = { mustache(i) {
2261
+ throw E("Invalid block parameters syntax: mustaches cannot be used inside parameters list", i);
2262
+ }, eof(i) {
2263
+ throw E('Invalid block parameters syntax: expecting the tag to be closed with ">" or "/>" after parameters list', r.start.until(i));
2583
2264
  } };
2584
- else if (h === "|") {
2585
- if (s.params.length === 0) throw D("Invalid block parameters syntax: empty parameters list, expecting at least one identifier", u.start.until(this.offset().move(1)));
2586
- i = { state: "AfterEndPipe" }, this.tokenizer.consume();
2265
+ else if (u === "|") {
2266
+ if (e.params.length === 0) throw E("Invalid block parameters syntax: empty parameters list, expecting at least one identifier", r.start.until(this.offset().move(1)));
2267
+ n = { state: "AfterEndPipe" }, this.tokenizer.consume();
2587
2268
  } else {
2588
- if (h === ">" || h === "/") throw D('Invalid block parameters syntax: incomplete parameters list, expecting "|" but the tag was closed prematurely', u.start.until(this.offset().move(1)));
2589
- i = { state: "BlockParamName", name: h, start: this.offset() }, this.tokenizer.consume();
2269
+ if (u === ">" || u === "/") throw E('Invalid block parameters syntax: incomplete parameters list, expecting "|" but the tag was closed prematurely', r.start.until(this.offset().move(1)));
2270
+ n = { state: "BlockParamName", name: u, start: this.offset() }, this.tokenizer.consume();
2590
2271
  }
2591
- }, BlockParamName: (h) => {
2592
- if (S(i.state === "BlockParamName", "bug in block params parser"), h === "") i = { state: "Done" }, this.pendingError = { mustache(m) {
2593
- throw D("Invalid block parameters syntax: mustaches cannot be used inside parameters list", m);
2594
- }, eof(m) {
2595
- throw D('Invalid block parameters syntax: expecting the tag to be closed with ">" or "/>" after parameters list', u.start.until(m));
2272
+ }, BlockParamName: (u) => {
2273
+ if (n.state, u === "") n = { state: "Done" }, this.pendingError = { mustache(i) {
2274
+ throw E("Invalid block parameters syntax: mustaches cannot be used inside parameters list", i);
2275
+ }, eof(i) {
2276
+ throw E('Invalid block parameters syntax: expecting the tag to be closed with ">" or "/>" after parameters list', r.start.until(i));
2596
2277
  } };
2597
- else if (h === "|" || yt(h)) {
2598
- let m = i.start.until(this.offset());
2599
- if (i.name === "this" || a.test(i.name)) throw D(`Invalid block parameters syntax: invalid identifier name \`${i.name}\``, m);
2600
- s.params.push(f.var({ name: i.name, loc: m })), i = h === "|" ? { state: "AfterEndPipe" } : { state: "BeforeBlockParamName" }, this.tokenizer.consume();
2278
+ else if (u === "|" || Et(u)) {
2279
+ let i = n.start.until(this.offset());
2280
+ if (n.name === "this" || t.test(n.name)) throw E(`Invalid block parameters syntax: invalid identifier name \`${n.name}\``, i);
2281
+ e.params.push(y.var({ name: n.name, loc: i })), n = u === "|" ? { state: "AfterEndPipe" } : { state: "BeforeBlockParamName" }, this.tokenizer.consume();
2601
2282
  } else {
2602
- if (h === ">" || h === "/") throw D('Invalid block parameters syntax: expecting "|" but the tag was closed prematurely', u.start.until(this.offset().move(1)));
2603
- i.name += h, this.tokenizer.consume();
2283
+ if (u === ">" || u === "/") throw E('Invalid block parameters syntax: expecting "|" but the tag was closed prematurely', r.start.until(this.offset().move(1)));
2284
+ n.name += u, this.tokenizer.consume();
2604
2285
  }
2605
- }, AfterEndPipe: (h) => {
2606
- S(i.state === "AfterEndPipe", "bug in block params parser"), yt(h) ? this.tokenizer.consume() : h === "" ? (i = { state: "Done" }, this.pendingError = { mustache(m) {
2607
- throw D("Invalid block parameters syntax: modifiers cannot follow parameters list", m);
2608
- }, eof(m) {
2609
- throw D('Invalid block parameters syntax: expecting the tag to be closed with ">" or "/>" after parameters list', u.start.until(m));
2610
- } }) : h === ">" || h === "/" ? i = { state: "Done" } : (i = { state: "Error", message: 'Invalid block parameters syntax: expecting the tag to be closed with ">" or "/>" after parameters list', start: this.offset() }, this.tokenizer.consume());
2611
- }, Error: (h) => {
2612
- if (S(i.state === "Error", "bug in block params parser"), h === "" || h === "/" || h === ">" || yt(h)) throw D(i.message, i.start.until(this.offset()));
2286
+ }, AfterEndPipe: (u) => {
2287
+ n.state, Et(u) ? this.tokenizer.consume() : u === "" ? (n = { state: "Done" }, this.pendingError = { mustache(i) {
2288
+ throw E("Invalid block parameters syntax: modifiers cannot follow parameters list", i);
2289
+ }, eof(i) {
2290
+ throw E('Invalid block parameters syntax: expecting the tag to be closed with ">" or "/>" after parameters list', r.start.until(i));
2291
+ } }) : u === ">" || u === "/" ? n = { state: "Done" } : (n = { state: "Error", message: 'Invalid block parameters syntax: expecting the tag to be closed with ">" or "/>" after parameters list', start: this.offset() }, this.tokenizer.consume());
2292
+ }, Error: (u) => {
2293
+ if (n.state, u === "" || u === "/" || u === ">" || Et(u)) throw E(n.message, n.start.until(this.offset()));
2613
2294
  this.tokenizer.consume();
2614
2295
  }, Done: () => {
2615
- S(!1, "This should never be called");
2616
- } }, g;
2296
+ } }, s;
2617
2297
  do
2618
- g = this.tokenizer.peek(), l[i.state](g);
2619
- while (i.state !== "Done" && g !== "");
2620
- S(i.state === "Done", "bug in block params parser");
2621
- }
2622
- reportSyntaxError(e) {
2623
- throw D(e, this.offset().collapsed());
2624
- }
2625
- assembleConcatenatedValue(e) {
2626
- for (let a of e) if (a.type !== "MustacheStatement" && a.type !== "TextNode") throw D(`Unsupported node in quoted attribute value: ${a.type}`, a.loc);
2627
- ve(e, "the concatenation parts of an element should not be empty");
2628
- let r = wa(e), n = He(e);
2629
- return f.concat({ parts: e, loc: this.source.spanFor(r.loc).extend(this.source.spanFor(n.loc)) });
2630
- }
2631
- validateEndTag(e, r, n) {
2632
- if (Be.has(e.name) && !n) throw D(`<${e.name}> elements do not need end tags. You should remove it`, e.loc);
2633
- if (r.tag === void 0) throw D(`Closing tag </${e.name}> without an open tag`, e.loc);
2634
- if (r.tag !== e.name) throw D(`Closing tag </${e.name}> did not match last open tag <${r.tag}> (on line ${r.loc.startPosition.line})`, e.loc);
2635
- }
2636
- assembleAttributeValue(e, r, n, a) {
2637
- if (n) {
2638
- if (r) return this.assembleConcatenatedValue(e);
2298
+ s = this.tokenizer.peek(), a[n.state](s);
2299
+ while (n.state !== "Done" && s !== "");
2300
+ n.state;
2301
+ }
2302
+ reportSyntaxError(t) {
2303
+ throw E(t, this.offset().collapsed());
2304
+ }
2305
+ assembleConcatenatedValue(t) {
2306
+ let e = xa(t), r = ze(t);
2307
+ return y.concat({ parts: t, loc: this.source.spanFor(e.loc).extend(this.source.spanFor(r.loc)) });
2308
+ }
2309
+ validateEndTag(t, e, r) {
2310
+ if (te.has(t.name) && !r) throw E(`<${t.name}> elements do not need end tags. You should remove it`, t.loc);
2311
+ if (e.type !== "ElementNode") throw E(`Closing tag </${t.name}> without an open tag`, t.loc);
2312
+ if (e.tag !== t.name) throw E(`Closing tag </${t.name}> did not match last open tag <${e.tag}> (on line ${e.loc.startPosition.line})`, t.loc);
2313
+ }
2314
+ assembleAttributeValue(t, e, r, n) {
2315
+ if (r) {
2316
+ if (e) return this.assembleConcatenatedValue(t);
2639
2317
  {
2640
- ve(e);
2641
- let [s, u] = e;
2642
- if (u === void 0 || u.type === "TextNode" && u.chars === "/") return s;
2643
- throw D("An unquoted attribute value must be a string or a mustache, preceded by whitespace or a '=' character, and followed by whitespace, a '>' character, or '/>'", a);
2318
+ let [a, s] = t;
2319
+ if (s === void 0 || s.type === "TextNode" && s.chars === "/") return a;
2320
+ throw E("An unquoted attribute value must be a string or a mustache, preceded by whitespace or a '=' character, and followed by whitespace, a '>' character, or '/>'", n);
2644
2321
  }
2645
- } else return Bt(e) ? e[0] : f.text({ chars: "", loc: a });
2322
+ }
2323
+ return Vt(t) ? t[0] : y.text({ chars: "", loc: n });
2646
2324
  }
2647
- }, Qs = {}, Js = class extends Qr {
2325
+ constructor(...t) {
2326
+ super(...t), this.tagOpenLine = 0, this.tagOpenColumn = 0;
2327
+ }
2328
+ }, za = {}, Ma = class extends Wr {
2648
2329
  constructor() {
2649
2330
  super({});
2650
2331
  }
2651
2332
  parse() {
2652
2333
  }
2653
2334
  };
2654
- function Ys(t, e = {}) {
2655
- var r, n, a;
2656
- let s = e.mode || "precompile", u, i;
2657
- typeof t == "string" ? (u = new Ft(t, (r = e.meta) == null ? void 0 : r.moduleName), s === "codemod" ? i = we(t, e.parseOptions) : i = dr(t, e.parseOptions)) : t instanceof Ft ? (u = t, s === "codemod" ? i = we(t.source, e.parseOptions) : i = dr(t.source, e.parseOptions)) : (u = new Ft("", (n = e.meta) == null ? void 0 : n.moduleName), i = t);
2658
- let l;
2659
- s === "codemod" && (l = new Js());
2660
- let g = I.forCharPositions(u, 0, u.source.length);
2661
- i.loc = { source: "(program)", start: g.startPosition, end: g.endPosition };
2662
- let h = new Ks(u, l, s).parse(i, e.locals ?? []);
2663
- if ((a = e == null ? void 0 : e.plugins) != null && a.ast) for (let m of e.plugins.ast) {
2664
- let A = Gr({}, e, { syntax: Qs }, { plugins: void 0 }), y = m(A);
2665
- bs(h, y.visitor);
2666
- }
2667
- return h;
2668
- }
2669
- (function(t) {
2670
- return t.Helper = "Helper", t.Modifier = "Modifier", t.Component = "Component", t;
2671
- })({});
2672
- var Wt = `
2673
- `, Dr = "\r", Xs = function() {
2674
- function t(e) {
2675
- this.length = e.length;
2676
- for (var r = [0], n = 0; n < e.length; ) switch (e[n]) {
2677
- case Wt:
2678
- n += Wt.length, r.push(n);
2679
- break;
2680
- case Dr:
2681
- n += Dr.length, e[n] === Wt && (n += Wt.length), r.push(n);
2682
- break;
2683
- default:
2684
- n++;
2685
- break;
2335
+ function ja(t, e = {}) {
2336
+ var l, h, f;
2337
+ let r, n, a, s = e.mode || "precompile";
2338
+ typeof t == "string" ? (r = new _t(t, (l = e.meta) == null ? void 0 : l.moduleName), n = s === "codemod" ? xe(t, e.parseOptions) : or(t, e.parseOptions)) : t instanceof _t ? (r = t, n = s === "codemod" ? xe(t.source, e.parseOptions) : or(t.source, e.parseOptions)) : (r = new _t("", (h = e.meta) == null ? void 0 : h.moduleName), n = t), s === "codemod" && (a = new Ma());
2339
+ let u = q.forCharPositions(r, 0, r.source.length);
2340
+ n.loc = { source: "(program)", start: u.startPosition, end: u.endPosition };
2341
+ let i = new Ha(r, a, s).parse(n, e.locals ?? []);
2342
+ if ((f = e.plugins) != null && f.ast) for (let m of e.plugins.ast) Ra(i, m(Mr({}, e, { syntax: za }, { plugins: void 0 })).visitor);
2343
+ return i;
2344
+ }
2345
+ var Ga = ta(Qr), Wa = Ga, Ot = (t) => t.loc.start.offset, Le = (t) => t.loc.end.offset, Ka = new Set(Ba());
2346
+ function rn(t) {
2347
+ return t.toUpperCase() === t;
2348
+ }
2349
+ function Ja(t) {
2350
+ return t.type === "ElementNode" && typeof t.tag == "string" && !t.tag.startsWith(":") && (rn(t.tag[0]) || t.tag.includes("."));
2351
+ }
2352
+ function Qa(t) {
2353
+ return Ka.has(t.toLowerCase()) && !rn(t[0]);
2354
+ }
2355
+ function nn(t) {
2356
+ return t.selfClosing === !0 || Qa(t.tag) || Ja(t) && t.children.every((e) => We(e));
2357
+ }
2358
+ function We(t) {
2359
+ return t.type === "TextNode" && !/\S/u.test(t.chars);
2360
+ }
2361
+ function br(t) {
2362
+ return (t == null ? void 0 : t.type) === "MustacheCommentStatement" && typeof t.value == "string" && t.value.trim() === "prettier-ignore";
2363
+ }
2364
+ function Ya(t) {
2365
+ return br(t.node) || t.isInArray && (t.key === "children" || t.key === "body" || t.key === "parts") && br(t.siblings[t.index - 2]);
2366
+ }
2367
+ var an = 2;
2368
+ function Za(t, e, r) {
2369
+ var a, s, u, i, l, h, f, m, A;
2370
+ let { node: n } = t;
2371
+ switch (n.type) {
2372
+ case "Block":
2373
+ case "Program":
2374
+ case "Template":
2375
+ return O(t.map(r, "body"));
2376
+ case "ElementNode": {
2377
+ let d = e.htmlWhitespaceSensitivity !== "ignore", v = [!d && ((a = t.previous) == null ? void 0 : a.type) === "ElementNode" ? j : "", O([ts(t, r)])];
2378
+ if (nn(n)) return [v];
2379
+ let w = ["</", n.tag, ">"], S = n.tag === "style";
2380
+ if (n.children.length === 0 || (!d || S) && n.children.every((x) => We(x))) return [v, w];
2381
+ let B = t.map(r, "children");
2382
+ return S || !d ? [v, G([j, ...B]), j, w] : [v, G(O(B)), w];
2686
2383
  }
2687
- this.offsets = r;
2688
- }
2689
- return t.prototype.locationForIndex = function(e) {
2690
- if (e < 0 || e > this.length) return null;
2691
- for (var r = 0, n = this.offsets; n[r + 1] <= e; ) r++;
2692
- var a = e - n[r];
2693
- return { line: r, column: a };
2694
- }, t.prototype.indexForLocation = function(e) {
2695
- var r = e.line, n = e.column;
2696
- return r < 0 || r >= this.offsets.length || n < 0 || n > this.lengthOfLine(r) ? null : this.offsets[r] + n;
2697
- }, t.prototype.lengthOfLine = function(e) {
2698
- var r = this.offsets[e], n = e === this.offsets.length - 1 ? this.length : this.offsets[e + 1];
2699
- return n - r;
2700
- }, t;
2701
- }();
2702
- function Zs(t, e) {
2384
+ case "BlockStatement":
2385
+ return on(t) ? [is(t, r), Er(t, e, r), vr(t, e, r)] : [as(t, r), O([Er(t, e, r), vr(t, e, r), os(t, e, r)])];
2386
+ case "ElementModifierStatement":
2387
+ return O(["{{", Sr(t, r), "}}"]);
2388
+ case "MustacheStatement":
2389
+ return O([se(n), Sr(t, r), ue(n)]);
2390
+ case "SubExpression":
2391
+ return O(["(", fs(t, r), j, ")"]);
2392
+ case "AttrNode": {
2393
+ let { name: d, value: v } = n, w = v.type === "TextNode";
2394
+ if (w && v.chars === "" && Ot(v) === Le(v)) return d;
2395
+ let S = w ? we(v.chars, e.singleQuote) : v.type === "ConcatStatement" ? we(v.parts.map((x) => x.type === "TextNode" ? x.chars : "").join(""), e.singleQuote) : "", B = r("value");
2396
+ return [d, "=", S, d === "class" && S ? O(G(B)) : B, S];
2397
+ }
2398
+ case "ConcatStatement":
2399
+ return t.map(r, "parts");
2400
+ case "Hash":
2401
+ return Rt(N, t.map(r, "pairs"));
2402
+ case "HashPair":
2403
+ return [n.key, "=", r("value")];
2404
+ case "TextNode": {
2405
+ let d = n.chars, { parent: v } = t;
2406
+ if (v.type === "ElementNode") {
2407
+ if (v.tag === "pre") return be(d);
2408
+ if (v.tag === "style") return d = Zt(0, d, /^\n+/gu, ""), d = M.trimEnd(d), d = M.dedentString(d), be(d, Tt);
2409
+ }
2410
+ d = Zt(0, d, "{{", "\\{{");
2411
+ let w = ls(t);
2412
+ if (w) {
2413
+ if (w === "class") {
2414
+ let tt = d.trim().split(/\s+/u).join(" "), lt = !1, Y = !1;
2415
+ return t.parent.type === "ConcatStatement" && (((s = t.previous) == null ? void 0 : s.type) === "MustacheStatement" && /^\s/u.test(d) && (lt = !0), ((u = t.next) == null ? void 0 : u.type) === "MustacheStatement" && /\s$/u.test(d) && tt !== "" && (Y = !0)), [lt ? N : "", tt, Y ? N : ""];
2416
+ }
2417
+ return be(d);
2418
+ }
2419
+ let S = M.isWhitespaceOnly(d), { isFirst: B, isLast: x } = t;
2420
+ if (e.htmlWhitespaceSensitivity !== "ignore") {
2421
+ let tt = x && t.parent.type === "Template", lt = B && t.parent.type === "Template";
2422
+ if (S) {
2423
+ if (lt || tt) return "";
2424
+ let _ = [N], z = Ct(d);
2425
+ return z && (_ = Ft(z)), x && (_ = _.map(($t) => rr($t))), _;
2426
+ }
2427
+ let Y = M.getLeadingWhitespace(d), mt = [];
2428
+ if (Y) {
2429
+ mt = [N];
2430
+ let _ = Ct(Y);
2431
+ _ && (mt = Ft(_)), d = d.slice(Y.length);
2432
+ }
2433
+ let gt = M.getTrailingWhitespace(d), Z = [];
2434
+ if (gt) {
2435
+ if (!tt) {
2436
+ Z = [N];
2437
+ let _ = Ct(gt);
2438
+ _ && (Z = Ft(_)), x && (Z = Z.map((z) => rr(z)));
2439
+ }
2440
+ d = d.slice(0, -gt.length);
2441
+ }
2442
+ return [...mt, nr(Cr(d)), ...Z];
2443
+ }
2444
+ let P = Ct(d), R = cs(d), V = hs(d);
2445
+ if ((B || x) && S && (t.parent.type === "Block" || t.parent.type === "ElementNode" || t.parent.type === "Template")) return "";
2446
+ S && P ? (R = Math.min(P, an), V = 0) : ((((i = t.next) == null ? void 0 : i.type) === "BlockStatement" || ((l = t.next) == null ? void 0 : l.type) === "ElementNode") && (V = Math.max(V, 1)), (((h = t.previous) == null ? void 0 : h.type) === "BlockStatement" || ((f = t.previous) == null ? void 0 : f.type) === "ElementNode") && (R = Math.max(R, 1)));
2447
+ let ot = "", H = "";
2448
+ return V === 0 && ((m = t.next) == null ? void 0 : m.type) === "MustacheStatement" && (H = " "), R === 0 && ((A = t.previous) == null ? void 0 : A.type) === "MustacheStatement" && (ot = " "), B && (R = 0, ot = ""), x && (V = 0, H = ""), M.hasLeadingWhitespace(d) && (d = ot + M.trimStart(d)), M.hasTrailingWhitespace(d) && (d = M.trimEnd(d) + H), [...Ft(R), nr(Cr(d)), ...Ft(V)];
2449
+ }
2450
+ case "MustacheCommentStatement": {
2451
+ let d = Ot(n), v = Le(n), w = e.originalText.charAt(d + 2) === "~", S = e.originalText.charAt(v - 3) === "~", B = n.value.includes("}}") ? "--" : "";
2452
+ return ["{{", w ? "~" : "", "!", B, n.value, B, S ? "~" : "", "}}"];
2453
+ }
2454
+ case "PathExpression":
2455
+ return bs(n);
2456
+ case "BooleanLiteral":
2457
+ return String(n.value);
2458
+ case "CommentStatement":
2459
+ return ["<!--", n.value, "-->"];
2460
+ case "StringLiteral":
2461
+ return ps(t, e);
2462
+ case "NumberLiteral":
2463
+ return String(n.value);
2464
+ case "UndefinedLiteral":
2465
+ return "undefined";
2466
+ case "NullLiteral":
2467
+ return "null";
2468
+ case "FrontMatter":
2469
+ case "AtHead":
2470
+ case "VarHead":
2471
+ case "ThisHead":
2472
+ default:
2473
+ throw new Wn(n, "Handlebars");
2474
+ }
2475
+ }
2476
+ function Xa(t, e) {
2477
+ return Ot(t) - Ot(e);
2478
+ }
2479
+ function ts(t, e) {
2480
+ let { node: r } = t, n = ["attributes", "modifiers", "comments"].filter((s) => Xt(r[s])), a = n.flatMap((s) => r[s]).sort(Xa);
2481
+ for (let s of n) t.each(({ node: u }) => {
2482
+ let i = a.indexOf(u);
2483
+ a.splice(i, 1, [N, e()]);
2484
+ }, s);
2485
+ return Xt(r.blockParams) && a.push(N, Je(r)), ["<", r.tag, G(a), es(r)];
2486
+ }
2487
+ function es(t) {
2488
+ return nn(t) ? ar([j, "/>"], [" />", j]) : ar([j, ">"], ">");
2489
+ }
2490
+ function se(t) {
2491
+ var n;
2492
+ let e = t.trusting ? "{{{" : "{{", r = (n = t.strip) != null && n.open ? "~" : "";
2493
+ return [e, r];
2494
+ }
2495
+ function ue(t) {
2496
+ var r;
2497
+ let e = t.trusting ? "}}}" : "}}";
2498
+ return [(r = t.strip) != null && r.close ? "~" : "", e];
2499
+ }
2500
+ function rs(t) {
2501
+ let e = se(t), r = t.openStrip.open ? "~" : "";
2502
+ return [e, r, "#"];
2503
+ }
2504
+ function ns(t) {
2505
+ let e = ue(t);
2506
+ return [t.openStrip.close ? "~" : "", e];
2507
+ }
2508
+ function Ar(t) {
2509
+ let e = se(t), r = t.closeStrip.open ? "~" : "";
2510
+ return [e, r, "/"];
2511
+ }
2512
+ function Dr(t) {
2513
+ let e = ue(t);
2514
+ return [t.closeStrip.close ? "~" : "", e];
2515
+ }
2516
+ function sn(t) {
2517
+ let e = se(t), r = t.inverseStrip.open ? "~" : "";
2518
+ return [e, r];
2519
+ }
2520
+ function un(t) {
2521
+ let e = ue(t);
2522
+ return [t.inverseStrip.close ? "~" : "", e];
2523
+ }
2524
+ function as(t, e) {
2525
+ let { node: r } = t, n = [], a = ie(t, e);
2526
+ return a && n.push(O(a)), Xt(r.program.blockParams) && n.push(Je(r.program)), O([rs(r), Ke(t, e), n.length > 0 ? G([N, Rt(N, n)]) : "", j, ns(r)]);
2527
+ }
2528
+ function ss(t, e) {
2529
+ return [e.htmlWhitespaceSensitivity === "ignore" ? Tt : "", sn(t), "else", un(t)];
2530
+ }
2531
+ var us = ({ path: t }, { path: e }) => [t, e].every((r) => r.type === "PathExpression" && r.head.type === "VarHead") && t.head.name === e.head.name;
2532
+ function on(t) {
2533
+ if (!t.match((r) => r.type === "BlockStatement", (r, n) => n === "body" && r.type === "Block" && r.body.length === 1, (r, n) => n === "inverse" && r.type === "BlockStatement")) return !1;
2534
+ let { node: e } = t;
2535
+ return e.path.type === "PathExpression" && e.path.head.type === "VarHead" && e.path.head.name === "if" || us(e, t.grandparent);
2536
+ }
2537
+ function is(t, e) {
2538
+ let { node: r, grandparent: n } = t;
2539
+ return O([sn(n), ["else", " ", n.inverse.body[0].path.head.name], G([N, O(ie(t, e)), ...Xt(r.program.blockParams) ? [N, Je(r.program)] : []]), j, un(n)]);
2540
+ }
2541
+ function os(t, e, r) {
2542
+ let { node: n } = t;
2543
+ return e.htmlWhitespaceSensitivity === "ignore" ? [ln(n) ? j : Tt, Ar(n), r("path"), Dr(n)] : [Ar(n), r("path"), Dr(n)];
2544
+ }
2545
+ function ln(t) {
2546
+ return t.type === "BlockStatement" && t.program.body.every((e) => We(e));
2547
+ }
2548
+ function Er(t, e, r) {
2549
+ let { node: n } = t;
2550
+ if (ln(n)) return "";
2551
+ let a = r("program");
2552
+ return e.htmlWhitespaceSensitivity === "ignore" ? G([Tt, a]) : G(a);
2553
+ }
2554
+ function vr(t, e, r) {
2555
+ let { node: n } = t;
2556
+ if (!n.inverse) return "";
2557
+ let a = r("inverse"), s = e.htmlWhitespaceSensitivity === "ignore" ? [Tt, a] : a;
2558
+ return t.call(on, "inverse", "body", 0) ? s : [ss(n, e), G(s)];
2559
+ }
2560
+ function Cr(t) {
2561
+ return Rt(N, M.split(t));
2562
+ }
2563
+ function ls(t) {
2564
+ for (let e = 0; e < 2; e++) {
2565
+ let r = t.getParentNode(e);
2566
+ if ((r == null ? void 0 : r.type) === "AttrNode") return r.name.toLowerCase();
2567
+ }
2568
+ }
2569
+ function Ct(t) {
2570
+ return t = typeof t == "string" ? t : "", t.split(`
2571
+ `).length - 1;
2572
+ }
2573
+ function cs(t) {
2574
+ t = typeof t == "string" ? t : "";
2575
+ let e = (t.match(/^([^\S\n\r]*[\n\r])+/gu) || [])[0] || "";
2576
+ return Ct(e);
2577
+ }
2578
+ function hs(t) {
2579
+ t = typeof t == "string" ? t : "";
2580
+ let e = (t.match(/([\n\r][^\S\n\r]*)+$/gu) || [])[0] || "";
2581
+ return Ct(e);
2582
+ }
2583
+ function Ft(t = 0) {
2584
+ return Array.from({ length: Math.min(t, an) }).fill(Tt);
2585
+ }
2586
+ function ps(t, e) {
2587
+ let { node: { value: r } } = t, n = we(r, ds(t) ? !e.singleQuote : e.singleQuote);
2588
+ return [n, Zt(0, r, n, `\\${n}`), n];
2589
+ }
2590
+ function ds(t) {
2591
+ let { ancestors: e } = t, r = e.findIndex((n) => n.type !== "SubExpression");
2592
+ return r !== -1 && e[r + 1].type === "ConcatStatement" && e[r + 2].type === "AttrNode";
2593
+ }
2594
+ function fs(t, e) {
2595
+ let r = Ke(t, e), n = ie(t, e);
2596
+ return n ? G([r, N, O(n)]) : r;
2597
+ }
2598
+ function Sr(t, e) {
2599
+ let r = Ke(t, e), n = ie(t, e);
2600
+ return n ? [G([r, N, n]), j] : r;
2601
+ }
2602
+ function Ke(t, e) {
2603
+ return e("path");
2604
+ }
2605
+ function ie(t, e) {
2606
+ var a;
2607
+ let { node: r } = t, n = [];
2608
+ return r.params.length > 0 && n.push(...t.map(e, "params")), ((a = r.hash) == null ? void 0 : a.pairs.length) > 0 && n.push(e("hash")), n.length === 0 ? "" : Rt(N, n);
2609
+ }
2610
+ function Je(t) {
2611
+ return ["as |", t.blockParams.join(" "), "|"];
2612
+ }
2613
+ var ms = new Set("!\"#%&'()*+,./;<=>@[\\]^`{|}~"), gs = /* @__PURE__ */ new Set(["true", "false", "null", "undefined"]), ys = (t, e) => e === 0 && t.startsWith("@") ? !1 : e !== 0 && gs.has(t) || /\s/u.test(t) || /^\d/u.test(t) || Array.prototype.some.call(t, (r) => ms.has(r));
2614
+ function bs(t) {
2615
+ return t.tail.length === 0 && t.original.includes("/") ? t.original : [t.head.original, ...t.tail].map((e, r) => ys(e, r) ? `[${e}]` : e).join(".");
2616
+ }
2617
+ var As = { features: { experimental_frontMatterSupport: { massageAstNode: !0, embed: !0, print: !0 } }, print: Za, massageAstNode: Kn, hasPrettierIgnore: Ya, getVisitorKeys: Wa, embed: Qn }, Ds = As, Es = [{ name: "Handlebars", type: "markup", aceMode: "handlebars", extensions: [".handlebars", ".hbs"], tmScope: "text.html.handlebars", aliases: ["hbs", "htmlbars"], parsers: ["glimmer"], vscodeLanguageIds: ["handlebars"], linguistLanguageId: 155 }], cn = {};
2618
+ qe(cn, { glimmer: () => _s });
2619
+ function vs(t, e) {
2703
2620
  let r = new SyntaxError(t + " (" + e.loc.start.line + ":" + e.loc.start.column + ")");
2704
2621
  return Object.assign(r, e);
2705
2622
  }
2706
- var tu = Zs;
2707
- function eu(t) {
2623
+ var Cs = vs, Ss = Symbol.for("PRETTIER_IS_FRONT_MATTER"), Lt = 3;
2624
+ function ws(t) {
2625
+ let e = t.slice(0, Lt);
2626
+ if (e !== "---" && e !== "+++") return;
2627
+ let r = t.indexOf(`
2628
+ `, Lt);
2629
+ if (r === -1) return;
2630
+ let n = t.slice(Lt, r).trim(), a = t.indexOf(`
2631
+ ${e}`, r), s = n;
2632
+ if (s || (s = e === "+++" ? "toml" : "yaml"), a === -1 && e === "---" && s === "yaml" && (a = t.indexOf(`
2633
+ ...`, r)), a === -1) return;
2634
+ let u = a + 1 + Lt, i = t.charAt(u + 1);
2635
+ if (!/\s?/u.test(i)) return;
2636
+ let l = t.slice(0, u), h;
2637
+ return { language: s, explicitLanguage: n || null, value: t.slice(r + 1, a), startDelimiter: e, endDelimiter: l.slice(-Lt), raw: l, start: { line: 1, column: 0, index: 0 }, end: { index: l.length, get line() {
2638
+ return h ?? (h = l.split(`
2639
+ `)), h.length;
2640
+ }, get column() {
2641
+ return h ?? (h = l.split(`
2642
+ `)), nt(0, h, -1).length;
2643
+ } }, [Ss]: !0 };
2644
+ }
2645
+ function Bs(t) {
2646
+ let e = ws(t);
2647
+ return e ? { frontMatter: e, get content() {
2648
+ let { raw: r } = e;
2649
+ return Zt(0, r, /[^\n]/gu, " ") + t.slice(r.length);
2650
+ } } : { content: t };
2651
+ }
2652
+ var ks = Bs;
2653
+ function xs(t) {
2708
2654
  let e = t.children ?? t.body;
2709
2655
  if (e) for (let r = 0; r < e.length - 1; r++) e[r].type === "TextNode" && e[r + 1].type === "MustacheStatement" && (e[r].chars = e[r].chars.replace(/\\$/u, "\\\\"));
2710
2656
  }
2711
- function ru(t) {
2712
- let e = new Xs(t), r = ({ line: a, column: s }) => e.indexForLocation({ line: a - 1, column: s }), n = (a) => {
2713
- let { start: s, end: u } = a.loc;
2714
- s.offset = r(s), u.offset = r(u);
2715
- };
2716
- return () => ({ name: "prettierParsePlugin", visitor: { All(a) {
2717
- n(a), eu(a);
2718
- } } });
2719
- }
2720
- function nu(t) {
2721
- let e;
2657
+ var Ts = (t) => {
2658
+ let { start: e, end: r } = t.loc;
2659
+ e.offset = t.loc.getStart().offset, r.offset = t.loc.getEnd().offset;
2660
+ }, Ns = () => ({ name: "glimmerPrettierParsePlugin", visitor: { All(t) {
2661
+ Ts(t), xs(t);
2662
+ } } }), Ps = { mode: "codemod", plugins: { ast: [Ns] } };
2663
+ function Fs(t) {
2664
+ let { frontMatter: e, content: r } = ks(t), n;
2722
2665
  try {
2723
- e = Ys(t, { mode: "codemod", plugins: { ast: [ru(t)] } });
2724
- } catch (r) {
2725
- let n = su(r);
2726
- if (n) {
2727
- let a = au(r);
2728
- throw tu(a, { loc: n, cause: r });
2666
+ n = ja(r, Ps);
2667
+ } catch (a) {
2668
+ let s = qs(a);
2669
+ if (s) {
2670
+ let u = Ls(a);
2671
+ throw Cs(u, { loc: s, cause: a });
2729
2672
  }
2730
- throw r;
2673
+ throw a;
2674
+ }
2675
+ if (e) {
2676
+ let a = { ...e, type: "FrontMatter", loc: { start: { ...e.start, offset: e.start.index }, end: { ...e.end, offset: e.end.index } } };
2677
+ n.body.unshift(a);
2731
2678
  }
2732
- return e;
2679
+ return n;
2733
2680
  }
2734
- function au(t) {
2681
+ function Ls(t) {
2735
2682
  let { message: e } = t, r = e.split(`
2736
2683
  `);
2737
- return r.length >= 4 && /^Parse error on line \d+:$/u.test(r[0]) && /^-*\^$/u.test(Tt(!1, r, -2)) ? Tt(!1, r, -1) : r.length >= 4 && /:\s?$/u.test(r[0]) && /^\(error occurred in '.*?' @ line \d+ : column \d+\)$/u.test(Tt(!1, r, -1)) && r[1] === "" && Tt(!1, r, -2) === "" && r.slice(2, -2).every((n) => n.startsWith("|")) ? r[0].trim().slice(0, -1) : e;
2684
+ return r.length >= 4 && /^Parse error on line \d+:$/u.test(r[0]) && /^-*\^$/u.test(nt(0, r, -2)) ? nt(0, r, -1) : r.length >= 4 && /:\s?$/u.test(r[0]) && /^\(error occurred in '.*?' @ line \d+ : column \d+\)$/u.test(nt(0, r, -1)) && r[1] === "" && nt(0, r, -2) === "" && r.slice(2, -2).every((n) => n.startsWith("|")) ? r[0].trim().slice(0, -1) : e;
2738
2685
  }
2739
- function su(t) {
2686
+ function qs(t) {
2740
2687
  let { location: e, hash: r } = t;
2741
2688
  if (e) {
2742
2689
  let { start: n, end: a } = e;
@@ -2747,10 +2694,10 @@ function su(t) {
2747
2694
  return { start: { line: n, column: a + 1 } };
2748
2695
  }
2749
2696
  }
2750
- var uu = { parse: nu, astFormat: "glimmer", locStart: Lt, locEnd: Ee }, iu = { glimmer: va }, cu = Cr;
2697
+ var _s = { parse: Fs, astFormat: "glimmer", locStart: Ot, locEnd: Le }, Is = { glimmer: Ds };
2751
2698
  export {
2752
- cu as default,
2753
- Ca as languages,
2754
- jr as parsers,
2755
- iu as printers
2699
+ An as default,
2700
+ Es as languages,
2701
+ cn as parsers,
2702
+ Is as printers
2756
2703
  };