@hsorby/vue3-highlightjs
Version:
Syntax highlighting with highlight.js for Vue.js 3.x
947 lines • 1.43 MB
JavaScript
var _r = { exports: {} };
function dr(n) {
return n instanceof Map ? n.clear = n.delete = n.set = function() {
throw new Error("map is read-only");
} : n instanceof Set && (n.add = n.clear = n.delete = function() {
throw new Error("set is read-only");
}), Object.freeze(n), Object.getOwnPropertyNames(n).forEach(function(e) {
var t = n[e];
typeof t == "object" && !Object.isFrozen(t) && dr(t);
}), n;
}
_r.exports = dr;
_r.exports.default = dr;
class fr {
constructor(e) {
e.data === void 0 && (e.data = {}), this.data = e.data, this.isMatchIgnored = !1;
}
ignoreMatch() {
this.isMatchIgnored = !0;
}
}
function sl(n) {
return n.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'");
}
function _e(n, ...e) {
const t = /* @__PURE__ */ Object.create(null);
for (const a in n)
t[a] = n[a];
return e.forEach(function(a) {
for (const i in a)
t[i] = a[i];
}), t;
}
const Dc = "</span>", Or = (n) => !!n.scope || n.sublanguage && n.language, hc = (n, { prefix: e }) => {
if (n.includes(".")) {
const t = n.split(".");
return [
`${e}${t.shift()}`,
...t.map((a, i) => `${a}${"_".repeat(i + 1)}`)
].join(" ");
}
return `${e}${n}`;
};
class Mc {
constructor(e, t) {
this.buffer = "", this.classPrefix = t.classPrefix, e.walk(this);
}
addText(e) {
this.buffer += sl(e);
}
openNode(e) {
if (!Or(e))
return;
let t = "";
e.sublanguage ? t = `language-${e.language}` : t = hc(e.scope, { prefix: this.classPrefix }), this.span(t);
}
closeNode(e) {
!Or(e) || (this.buffer += Dc);
}
value() {
return this.buffer;
}
span(e) {
this.buffer += `<span class="${e}">`;
}
}
const Ir = (n = {}) => {
const e = { children: [] };
return Object.assign(e, n), e;
};
class ur {
constructor() {
this.rootNode = Ir(), this.stack = [this.rootNode];
}
get top() {
return this.stack[this.stack.length - 1];
}
get root() {
return this.rootNode;
}
add(e) {
this.top.children.push(e);
}
openNode(e) {
const t = Ir({ scope: e });
this.add(t), this.stack.push(t);
}
closeNode() {
if (this.stack.length > 1)
return this.stack.pop();
}
closeAllNodes() {
for (; this.closeNode(); )
;
}
toJSON() {
return JSON.stringify(this.rootNode, null, 4);
}
walk(e) {
return this.constructor._walk(e, this.rootNode);
}
static _walk(e, t) {
return typeof t == "string" ? e.addText(t) : t.children && (e.openNode(t), t.children.forEach((a) => this._walk(e, a)), e.closeNode(t)), e;
}
static _collapse(e) {
typeof e != "string" && (!e.children || (e.children.every((t) => typeof t == "string") ? e.children = [e.children.join("")] : e.children.forEach((t) => {
ur._collapse(t);
})));
}
}
class Lc extends ur {
constructor(e) {
super(), this.options = e;
}
addKeyword(e, t) {
e !== "" && (this.openNode(t), this.addText(e), this.closeNode());
}
addText(e) {
e !== "" && this.add(e);
}
addSublanguage(e, t) {
const a = e.root;
a.sublanguage = !0, a.language = t, this.add(a);
}
toHTML() {
return new Mc(this, this.options).value();
}
finalize() {
return !0;
}
}
function Ne(n) {
return n ? typeof n == "string" ? n : n.source : null;
}
function ll(n) {
return pe("(?=", n, ")");
}
function xc(n) {
return pe("(?:", n, ")*");
}
function Pc(n) {
return pe("(?:", n, ")?");
}
function pe(...n) {
return n.map((t) => Ne(t)).join("");
}
function wc(n) {
const e = n[n.length - 1];
return typeof e == "object" && e.constructor === Object ? (n.splice(n.length - 1, 1), e) : {};
}
function Er(...n) {
const e = wc(n);
return "(" + (e.capture ? "" : "?:") + n.map((a) => Ne(a)).join("|") + ")";
}
function cl(n) {
return new RegExp(n.toString() + "|").exec("").length - 1;
}
function kc(n, e) {
const t = n && n.exec(e);
return t && t.index === 0;
}
const Uc = /\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;
function mr(n, { joinWith: e }) {
let t = 0;
return n.map((a) => {
t += 1;
const i = t;
let o = Ne(a), s = "";
for (; o.length > 0; ) {
const r = Uc.exec(o);
if (!r) {
s += o;
break;
}
s += o.substring(0, r.index), o = o.substring(r.index + r[0].length), r[0][0] === "\\" && r[1] ? s += "\\" + String(Number(r[1]) + i) : (s += r[0], r[0] === "(" && t++);
}
return s;
}).map((a) => `(${a})`).join(e);
}
const Fc = /\b\B/, _l = "[a-zA-Z]\\w*", pr = "[a-zA-Z_]\\w*", dl = "\\b\\d+(\\.\\d+)?", ul = "(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)", El = "\\b(0b[01]+)", Bc = "!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~", Gc = (n = {}) => {
const e = /^#![ ]*\//;
return n.binary && (n.begin = pe(
e,
/.*\b/,
n.binary,
/\b.*/
)), _e({
scope: "meta",
begin: e,
end: /$/,
relevance: 0,
"on:begin": (t, a) => {
t.index !== 0 && a.ignoreMatch();
}
}, n);
}, Ce = {
begin: "\\\\[\\s\\S]",
relevance: 0
}, Yc = {
scope: "string",
begin: "'",
end: "'",
illegal: "\\n",
contains: [Ce]
}, qc = {
scope: "string",
begin: '"',
end: '"',
illegal: "\\n",
contains: [Ce]
}, Hc = {
begin: /\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/
}, De = function(n, e, t = {}) {
const a = _e(
{
scope: "comment",
begin: n,
end: e,
contains: []
},
t
);
a.contains.push({
scope: "doctag",
begin: "[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",
end: /(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,
excludeBegin: !0,
relevance: 0
});
const i = Er(
"I",
"a",
"is",
"so",
"us",
"to",
"at",
"if",
"in",
"it",
"on",
/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,
/[A-Za-z]+[-][a-z]+/,
/[A-Za-z][a-z]{2,}/
);
return a.contains.push(
{
begin: pe(
/[ ]+/,
"(",
i,
/[.]?[:]?([.][ ]|[ ])/,
"){3}"
)
}
), a;
}, Vc = De("//", "$"), Wc = De("/\\*", "\\*/"), zc = De("#", "$"), Kc = {
scope: "number",
begin: dl,
relevance: 0
}, $c = {
scope: "number",
begin: ul,
relevance: 0
}, Qc = {
scope: "number",
begin: El,
relevance: 0
}, Xc = {
begin: /(?=\/[^/\n]*\/)/,
contains: [{
scope: "regexp",
begin: /\//,
end: /\/[gimuy]*/,
illegal: /\n/,
contains: [
Ce,
{
begin: /\[/,
end: /\]/,
relevance: 0,
contains: [Ce]
}
]
}]
}, Zc = {
scope: "title",
begin: _l,
relevance: 0
}, Jc = {
scope: "title",
begin: pr,
relevance: 0
}, jc = {
begin: "\\.\\s*" + pr,
relevance: 0
}, e_ = function(n) {
return Object.assign(
n,
{
"on:begin": (e, t) => {
t.data._beginMatch = e[1];
},
"on:end": (e, t) => {
t.data._beginMatch !== e[1] && t.ignoreMatch();
}
}
);
};
var ve = /* @__PURE__ */ Object.freeze({
__proto__: null,
MATCH_NOTHING_RE: Fc,
IDENT_RE: _l,
UNDERSCORE_IDENT_RE: pr,
NUMBER_RE: dl,
C_NUMBER_RE: ul,
BINARY_NUMBER_RE: El,
RE_STARTERS_RE: Bc,
SHEBANG: Gc,
BACKSLASH_ESCAPE: Ce,
APOS_STRING_MODE: Yc,
QUOTE_STRING_MODE: qc,
PHRASAL_WORDS_MODE: Hc,
COMMENT: De,
C_LINE_COMMENT_MODE: Vc,
C_BLOCK_COMMENT_MODE: Wc,
HASH_COMMENT_MODE: zc,
NUMBER_MODE: Kc,
C_NUMBER_MODE: $c,
BINARY_NUMBER_MODE: Qc,
REGEXP_MODE: Xc,
TITLE_MODE: Zc,
UNDERSCORE_TITLE_MODE: Jc,
METHOD_GUARD: jc,
END_SAME_AS_BEGIN: e_
});
function t_(n, e) {
n.input[n.index - 1] === "." && e.ignoreMatch();
}
function n_(n, e) {
n.className !== void 0 && (n.scope = n.className, delete n.className);
}
function a_(n, e) {
!e || !n.beginKeywords || (n.begin = "\\b(" + n.beginKeywords.split(" ").join("|") + ")(?!\\.)(?=\\b|\\s)", n.__beforeBegin = t_, n.keywords = n.keywords || n.beginKeywords, delete n.beginKeywords, n.relevance === void 0 && (n.relevance = 0));
}
function r_(n, e) {
!Array.isArray(n.illegal) || (n.illegal = Er(...n.illegal));
}
function i_(n, e) {
if (!!n.match) {
if (n.begin || n.end)
throw new Error("begin & end are not supported with match");
n.begin = n.match, delete n.match;
}
}
function o_(n, e) {
n.relevance === void 0 && (n.relevance = 1);
}
const s_ = (n, e) => {
if (!n.beforeMatch)
return;
if (n.starts)
throw new Error("beforeMatch cannot be used with starts");
const t = Object.assign({}, n);
Object.keys(n).forEach((a) => {
delete n[a];
}), n.keywords = t.keywords, n.begin = pe(t.beforeMatch, ll(t.begin)), n.starts = {
relevance: 0,
contains: [
Object.assign(t, { endsParent: !0 })
]
}, n.relevance = 0, delete t.beforeMatch;
}, l_ = [
"of",
"and",
"for",
"in",
"not",
"or",
"if",
"then",
"parent",
"list",
"value"
], c_ = "keyword";
function ml(n, e, t = c_) {
const a = /* @__PURE__ */ Object.create(null);
return typeof n == "string" ? i(t, n.split(" ")) : Array.isArray(n) ? i(t, n) : Object.keys(n).forEach(function(o) {
Object.assign(
a,
ml(n[o], e, o)
);
}), a;
function i(o, s) {
e && (s = s.map((r) => r.toLowerCase())), s.forEach(function(r) {
const l = r.split("|");
a[l[0]] = [o, __(l[0], l[1])];
});
}
}
function __(n, e) {
return e ? Number(e) : d_(n) ? 0 : 1;
}
function d_(n) {
return l_.includes(n.toLowerCase());
}
const Ar = {}, me = (n) => {
console.error(n);
}, vr = (n, ...e) => {
console.log(`WARN: ${n}`, ...e);
}, ge = (n, e) => {
Ar[`${n}/${e}`] || (console.log(`Deprecated as of ${n}. ${e}`), Ar[`${n}/${e}`] = !0);
}, ye = new Error();
function pl(n, e, { key: t }) {
let a = 0;
const i = n[t], o = {}, s = {};
for (let r = 1; r <= e.length; r++)
s[r + a] = i[r], o[r + a] = !0, a += cl(e[r - 1]);
n[t] = s, n[t]._emit = o, n[t]._multi = !0;
}
function u_(n) {
if (!!Array.isArray(n.begin)) {
if (n.skip || n.excludeBegin || n.returnBegin)
throw me("skip, excludeBegin, returnBegin not compatible with beginScope: {}"), ye;
if (typeof n.beginScope != "object" || n.beginScope === null)
throw me("beginScope must be object"), ye;
pl(n, n.begin, { key: "beginScope" }), n.begin = mr(n.begin, { joinWith: "" });
}
}
function E_(n) {
if (!!Array.isArray(n.end)) {
if (n.skip || n.excludeEnd || n.returnEnd)
throw me("skip, excludeEnd, returnEnd not compatible with endScope: {}"), ye;
if (typeof n.endScope != "object" || n.endScope === null)
throw me("endScope must be object"), ye;
pl(n, n.end, { key: "endScope" }), n.end = mr(n.end, { joinWith: "" });
}
}
function m_(n) {
n.scope && typeof n.scope == "object" && n.scope !== null && (n.beginScope = n.scope, delete n.scope);
}
function p_(n) {
m_(n), typeof n.beginScope == "string" && (n.beginScope = { _wrap: n.beginScope }), typeof n.endScope == "string" && (n.endScope = { _wrap: n.endScope }), u_(n), E_(n);
}
function S_(n) {
function e(s, r) {
return new RegExp(
Ne(s),
"m" + (n.case_insensitive ? "i" : "") + (n.unicodeRegex ? "u" : "") + (r ? "g" : "")
);
}
class t {
constructor() {
this.matchIndexes = {}, this.regexes = [], this.matchAt = 1, this.position = 0;
}
addRule(r, l) {
l.position = this.position++, this.matchIndexes[this.matchAt] = l, this.regexes.push([l, r]), this.matchAt += cl(r) + 1;
}
compile() {
this.regexes.length === 0 && (this.exec = () => null);
const r = this.regexes.map((l) => l[1]);
this.matcherRe = e(mr(r, { joinWith: "|" }), !0), this.lastIndex = 0;
}
exec(r) {
this.matcherRe.lastIndex = this.lastIndex;
const l = this.matcherRe.exec(r);
if (!l)
return null;
const c = l.findIndex((d, E) => E > 0 && d !== void 0), _ = this.matchIndexes[c];
return l.splice(0, c), Object.assign(l, _);
}
}
class a {
constructor() {
this.rules = [], this.multiRegexes = [], this.count = 0, this.lastIndex = 0, this.regexIndex = 0;
}
getMatcher(r) {
if (this.multiRegexes[r])
return this.multiRegexes[r];
const l = new t();
return this.rules.slice(r).forEach(([c, _]) => l.addRule(c, _)), l.compile(), this.multiRegexes[r] = l, l;
}
resumingScanAtSamePosition() {
return this.regexIndex !== 0;
}
considerAll() {
this.regexIndex = 0;
}
addRule(r, l) {
this.rules.push([r, l]), l.type === "begin" && this.count++;
}
exec(r) {
const l = this.getMatcher(this.regexIndex);
l.lastIndex = this.lastIndex;
let c = l.exec(r);
if (this.resumingScanAtSamePosition() && !(c && c.index === this.lastIndex)) {
const _ = this.getMatcher(0);
_.lastIndex = this.lastIndex + 1, c = _.exec(r);
}
return c && (this.regexIndex += c.position + 1, this.regexIndex === this.count && this.considerAll()), c;
}
}
function i(s) {
const r = new a();
return s.contains.forEach((l) => r.addRule(l.begin, { rule: l, type: "begin" })), s.terminatorEnd && r.addRule(s.terminatorEnd, { type: "end" }), s.illegal && r.addRule(s.illegal, { type: "illegal" }), r;
}
function o(s, r) {
const l = s;
if (s.isCompiled)
return l;
[
n_,
i_,
p_,
s_
].forEach((_) => _(s, r)), n.compilerExtensions.forEach((_) => _(s, r)), s.__beforeBegin = null, [
a_,
r_,
o_
].forEach((_) => _(s, r)), s.isCompiled = !0;
let c = null;
return typeof s.keywords == "object" && s.keywords.$pattern && (s.keywords = Object.assign({}, s.keywords), c = s.keywords.$pattern, delete s.keywords.$pattern), c = c || /\w+/, s.keywords && (s.keywords = ml(s.keywords, n.case_insensitive)), l.keywordPatternRe = e(c, !0), r && (s.begin || (s.begin = /\B|\b/), l.beginRe = e(l.begin), !s.end && !s.endsWithParent && (s.end = /\B|\b/), s.end && (l.endRe = e(l.end)), l.terminatorEnd = Ne(l.end) || "", s.endsWithParent && r.terminatorEnd && (l.terminatorEnd += (s.end ? "|" : "") + r.terminatorEnd)), s.illegal && (l.illegalRe = e(s.illegal)), s.contains || (s.contains = []), s.contains = [].concat(...s.contains.map(function(_) {
return g_(_ === "self" ? s : _);
})), s.contains.forEach(function(_) {
o(_, l);
}), s.starts && o(s.starts, r), l.matcher = i(l), l;
}
if (n.compilerExtensions || (n.compilerExtensions = []), n.contains && n.contains.includes("self"))
throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");
return n.classNameAliases = _e(n.classNameAliases || {}), o(n);
}
function Sl(n) {
return n ? n.endsWithParent || Sl(n.starts) : !1;
}
function g_(n) {
return n.variants && !n.cachedVariants && (n.cachedVariants = n.variants.map(function(e) {
return _e(n, { variants: null }, e);
})), n.cachedVariants ? n.cachedVariants : Sl(n) ? _e(n, { starts: n.starts ? _e(n.starts) : null }) : Object.isFrozen(n) ? _e(n) : n;
}
var T_ = "11.6.0";
class b_ extends Error {
constructor(e, t) {
super(e), this.name = "HTMLInjectionError", this.html = t;
}
}
const Le = sl, yr = _e, Dr = Symbol("nomatch"), R_ = 7, N_ = function(n) {
const e = /* @__PURE__ */ Object.create(null), t = /* @__PURE__ */ Object.create(null), a = [];
let i = !0;
const o = "Could not find the language '{}', did you forget to load/include a language module?", s = { disableAutodetect: !0, name: "Plain text", contains: [] };
let r = {
ignoreUnescapedHTML: !1,
throwUnescapedHTML: !1,
noHighlightRe: /^(no-?highlight)$/i,
languageDetectRe: /\blang(?:uage)?-([\w-]+)\b/i,
classPrefix: "hljs-",
cssSelector: "pre code",
languages: null,
__emitter: Lc
};
function l(b) {
return r.noHighlightRe.test(b);
}
function c(b) {
let v = b.className + " ";
v += b.parentNode ? b.parentNode.className : "";
const h = r.languageDetectRe.exec(v);
if (h) {
const w = M(h[1]);
return w || (vr(o.replace("{}", h[1])), vr("Falling back to no-highlight mode for this block.", b)), w ? h[1] : "no-highlight";
}
return v.split(/\s+/).find((w) => l(w) || M(w));
}
function _(b, v, h) {
let w = "", F = "";
typeof v == "object" ? (w = b, h = v.ignoreIllegals, F = v.language) : (ge("10.7.0", "highlight(lang, code, ...args) has been deprecated."), ge("10.7.0", `Please use highlight(code, options) instead.
https://github.com/highlightjs/highlight.js/issues/2277`), F = b, w = v), h === void 0 && (h = !0);
const K = {
code: w,
language: F
};
G("before:highlight", K);
const j = K.result ? K.result : d(K.language, K.code, h);
return j.code = K.code, G("after:highlight", j), j;
}
function d(b, v, h, w) {
const F = /* @__PURE__ */ Object.create(null);
function K(I, y) {
return I.keywords[y];
}
function j() {
if (!x.keywords) {
J.addText(H);
return;
}
let I = 0;
x.keywordPatternRe.lastIndex = 0;
let y = x.keywordPatternRe.exec(H), P = "";
for (; y; ) {
P += H.substring(I, y.index);
const U = ie.case_insensitive ? y[0].toLowerCase() : y[0], ee = K(x, U);
if (ee) {
const [oe, be] = ee;
if (J.addText(P), P = "", F[U] = (F[U] || 0) + 1, F[U] <= R_ && (ce += be), oe.startsWith("_"))
P += y[0];
else {
const Re = ie.classNameAliases[oe] || oe;
J.addKeyword(y[0], Re);
}
} else
P += y[0];
I = x.keywordPatternRe.lastIndex, y = x.keywordPatternRe.exec(H);
}
P += H.substring(I), J.addText(P);
}
function te() {
if (H === "")
return;
let I = null;
if (typeof x.subLanguage == "string") {
if (!e[x.subLanguage]) {
J.addText(H);
return;
}
I = d(x.subLanguage, H, !0, Se[x.subLanguage]), Se[x.subLanguage] = I._top;
} else
I = m(H, x.subLanguage.length ? x.subLanguage : null);
x.relevance > 0 && (ce += I.relevance), J.addSublanguage(I._emitter, I.language);
}
function Y() {
x.subLanguage != null ? te() : j(), H = "";
}
function W(I, y) {
let P = 1;
const U = y.length - 1;
for (; P <= U; ) {
if (!I._emit[P]) {
P++;
continue;
}
const ee = ie.classNameAliases[I[P]] || I[P], oe = y[P];
ee ? J.addKeyword(oe, ee) : (H = oe, j(), H = ""), P++;
}
}
function q(I, y) {
return I.scope && typeof I.scope == "string" && J.openNode(ie.classNameAliases[I.scope] || I.scope), I.beginScope && (I.beginScope._wrap ? (J.addKeyword(H, ie.classNameAliases[I.beginScope._wrap] || I.beginScope._wrap), H = "") : I.beginScope._multi && (W(I.beginScope, y), H = "")), x = Object.create(I, { parent: { value: x } }), x;
}
function B(I, y, P) {
let U = kc(I.endRe, P);
if (U) {
if (I["on:end"]) {
const ee = new fr(I);
I["on:end"](y, ee), ee.isMatchIgnored && (U = !1);
}
if (U) {
for (; I.endsParent && I.parent; )
I = I.parent;
return I;
}
}
if (I.endsWithParent)
return B(I.parent, y, P);
}
function $(I) {
return x.matcher.regexIndex === 0 ? (H += I[0], 1) : (Ee = !0, 0);
}
function Z(I) {
const y = I[0], P = I.rule, U = new fr(P), ee = [P.__beforeBegin, P["on:begin"]];
for (const oe of ee)
if (!!oe && (oe(I, U), U.isMatchIgnored))
return $(y);
return P.skip ? H += y : (P.excludeBegin && (H += y), Y(), !P.returnBegin && !P.excludeBegin && (H = y)), q(P, I), P.returnBegin ? 0 : y.length;
}
function ne(I) {
const y = I[0], P = v.substring(I.index), U = B(x, I, P);
if (!U)
return Dr;
const ee = x;
x.endScope && x.endScope._wrap ? (Y(), J.addKeyword(y, x.endScope._wrap)) : x.endScope && x.endScope._multi ? (Y(), W(x.endScope, I)) : ee.skip ? H += y : (ee.returnEnd || ee.excludeEnd || (H += y), Y(), ee.excludeEnd && (H = y));
do
x.scope && J.closeNode(), !x.skip && !x.subLanguage && (ce += x.relevance), x = x.parent;
while (x !== U.parent);
return U.starts && q(U.starts, I), ee.returnEnd ? 0 : y.length;
}
function re() {
const I = [];
for (let y = x; y !== ie; y = y.parent)
y.scope && I.unshift(y.scope);
I.forEach((y) => J.openNode(y));
}
let se = {};
function le(I, y) {
const P = y && y[0];
if (H += I, P == null)
return Y(), 0;
if (se.type === "begin" && y.type === "end" && se.index === y.index && P === "") {
if (H += v.slice(y.index, y.index + 1), !i) {
const U = new Error(`0 width match regex (${b})`);
throw U.languageName = b, U.badRule = se.rule, U;
}
return 1;
}
if (se = y, y.type === "begin")
return Z(y);
if (y.type === "illegal" && !h) {
const U = new Error('Illegal lexeme "' + P + '" for mode "' + (x.scope || "<unnamed>") + '"');
throw U.mode = x, U;
} else if (y.type === "end") {
const U = ne(y);
if (U !== Dr)
return U;
}
if (y.type === "illegal" && P === "")
return 1;
if (ue > 1e5 && ue > y.index * 3)
throw new Error("potential infinite loop, way more iterations than matches");
return H += P, P.length;
}
const ie = M(b);
if (!ie)
throw me(o.replace("{}", b)), new Error('Unknown language: "' + b + '"');
const Te = S_(ie);
let de = "", x = w || Te;
const Se = {}, J = new r.__emitter(r);
re();
let H = "", ce = 0, ae = 0, ue = 0, Ee = !1;
try {
for (x.matcher.considerAll(); ; ) {
ue++, Ee ? Ee = !1 : x.matcher.considerAll(), x.matcher.lastIndex = ae;
const I = x.matcher.exec(v);
if (!I)
break;
const y = v.substring(ae, I.index), P = le(y, I);
ae = I.index + P;
}
return le(v.substring(ae)), J.closeAllNodes(), J.finalize(), de = J.toHTML(), {
language: b,
value: de,
relevance: ce,
illegal: !1,
_emitter: J,
_top: x
};
} catch (I) {
if (I.message && I.message.includes("Illegal"))
return {
language: b,
value: Le(v),
illegal: !0,
relevance: 0,
_illegalBy: {
message: I.message,
index: ae,
context: v.slice(ae - 100, ae + 100),
mode: I.mode,
resultSoFar: de
},
_emitter: J
};
if (i)
return {
language: b,
value: Le(v),
illegal: !1,
relevance: 0,
errorRaised: I,
_emitter: J,
_top: x
};
throw I;
}
}
function E(b) {
const v = {
value: Le(b),
illegal: !1,
relevance: 0,
_top: s,
_emitter: new r.__emitter(r)
};
return v._emitter.addText(b), v;
}
function m(b, v) {
v = v || r.languages || Object.keys(e);
const h = E(b), w = v.filter(M).filter(D).map(
(Y) => d(Y, b, !1)
);
w.unshift(h);
const F = w.sort((Y, W) => {
if (Y.relevance !== W.relevance)
return W.relevance - Y.relevance;
if (Y.language && W.language) {
if (M(Y.language).supersetOf === W.language)
return 1;
if (M(W.language).supersetOf === Y.language)
return -1;
}
return 0;
}), [K, j] = F, te = K;
return te.secondBest = j, te;
}
function p(b, v, h) {
const w = v && t[v] || h;
b.classList.add("hljs"), b.classList.add(`language-${w}`);
}
function S(b) {
let v = null;
const h = c(b);
if (l(h))
return;
if (G(
"before:highlightElement",
{ el: b, language: h }
), b.children.length > 0 && (r.ignoreUnescapedHTML || (console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."), console.warn("https://github.com/highlightjs/highlight.js/wiki/security"), console.warn("The element with unescaped HTML:"), console.warn(b)), r.throwUnescapedHTML))
throw new b_(
"One of your code blocks includes unescaped HTML.",
b.innerHTML
);
v = b;
const w = v.textContent, F = h ? _(w, { language: h, ignoreIllegals: !0 }) : m(w);
b.innerHTML = F.value, p(b, h, F.language), b.result = {
language: F.language,
re: F.relevance,
relevance: F.relevance
}, F.secondBest && (b.secondBest = {
language: F.secondBest.language,
relevance: F.secondBest.relevance
}), G("after:highlightElement", { el: b, result: F, text: w });
}
function g(b) {
r = yr(r, b);
}
const T = () => {
R(), ge("10.6.0", "initHighlighting() deprecated. Use highlightAll() now.");
};
function N() {
R(), ge("10.6.0", "initHighlightingOnLoad() deprecated. Use highlightAll() now.");
}
let C = !1;
function R() {
if (document.readyState === "loading") {
C = !0;
return;
}
document.querySelectorAll(r.cssSelector).forEach(S);
}
function O() {
C && R();
}
typeof window < "u" && window.addEventListener && window.addEventListener("DOMContentLoaded", O, !1);
function f(b, v) {
let h = null;
try {
h = v(n);
} catch (w) {
if (me("Language definition for '{}' could not be registered.".replace("{}", b)), i)
me(w);
else
throw w;
h = s;
}
h.name || (h.name = b), e[b] = h, h.rawDefinition = v.bind(null, n), h.aliases && k(h.aliases, { languageName: b });
}
function L(b) {
delete e[b];
for (const v of Object.keys(t))
t[v] === b && delete t[v];
}
function A() {
return Object.keys(e);
}
function M(b) {
return b = (b || "").toLowerCase(), e[b] || e[t[b]];
}
function k(b, { languageName: v }) {
typeof b == "string" && (b = [b]), b.forEach((h) => {
t[h.toLowerCase()] = v;
});
}
function D(b) {
const v = M(b);
return v && !v.disableAutodetect;
}
function V(b) {
b["before:highlightBlock"] && !b["before:highlightElement"] && (b["before:highlightElement"] = (v) => {
b["before:highlightBlock"](
Object.assign({ block: v.el }, v)
);
}), b["after:highlightBlock"] && !b["after:highlightElement"] && (b["after:highlightElement"] = (v) => {
b["after:highlightBlock"](
Object.assign({ block: v.el }, v)
);
});
}
function X(b) {
V(b), a.push(b);
}
function G(b, v) {
const h = b;
a.forEach(function(w) {
w[h] && w[h](v);
});
}
function z(b) {
return ge("10.7.0", "highlightBlock will be removed entirely in v12.0"), ge("10.7.0", "Please use highlightElement now."), S(b);
}
Object.assign(n, {
highlight: _,
highlightAuto: m,
highlightAll: R,
highlightElement: S,
highlightBlock: z,
configure: g,
initHighlighting: T,
initHighlightingOnLoad: N,
registerLanguage: f,
unregisterLanguage: L,
listLanguages: A,
getLanguage: M,
registerAliases: k,
autoDetection: D,
inherit: yr,
addPlugin: X
}), n.debugMode = function() {
i = !1;
}, n.safeMode = function() {
i = !0;
}, n.versionString = T_, n.regex = {
concat: pe,
lookahead: ll,
either: Er,
optional: Pc,
anyNumberOfTimes: xc
};
for (const b in ve)
typeof ve[b] == "object" && _r.exports(ve[b]);
return Object.assign(n, ve), n;
};
var fe = N_({}), C_ = fe;
fe.HighlightJS = fe;
fe.default = fe;
var xe, hr;
function f_() {
if (hr)
return xe;
hr = 1;
function n(e) {
const t = "[A-Za-z\u0410-\u042F\u0430-\u044F\u0451\u0401_][A-Za-z\u0410-\u042F\u0430-\u044F\u0451\u0401_0-9]+", o = "\u0434\u0430\u043B\u0435\u0435 " + "\u0432\u043E\u0437\u0432\u0440\u0430\u0442 \u0432\u044B\u0437\u0432\u0430\u0442\u044C\u0438\u0441\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 \u0432\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u044C \u0434\u043B\u044F \u0435\u0441\u043B\u0438 \u0438 \u0438\u0437 \u0438\u043B\u0438 \u0438\u043D\u0430\u0447\u0435 \u0438\u043D\u0430\u0447\u0435\u0435\u0441\u043B\u0438 \u0438\u0441\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 \u043A\u0430\u0436\u0434\u043E\u0433\u043E \u043A\u043E\u043D\u0435\u0446\u0435\u0441\u043B\u0438 \u043A\u043E\u043D\u0435\u0446\u043F\u043E\u043F\u044B\u0442\u043A\u0438 \u043A\u043E\u043D\u0435\u0446\u0446\u0438\u043A\u043B\u0430 \u043D\u0435 \u043D\u043E\u0432\u044B\u0439 \u043F\u0435\u0440\u0435\u0439\u0442\u0438 \u043F\u0435\u0440\u0435\u043C \u043F\u043E \u043F\u043E\u043A\u0430 \u043F\u043E\u043F\u044B\u0442\u043A\u0430 \u043F\u0440\u0435\u0440\u0432\u0430\u0442\u044C \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C \u0442\u043E\u0433\u0434\u0430 \u0446\u0438\u043A\u043B \u044D\u043A\u0441\u043F\u043E\u0440\u0442 ", l = "\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C\u0438\u0437\u0444\u0430\u0439\u043B\u0430 " + "\u0432\u0435\u0431\u043A\u043B\u0438\u0435\u043D\u0442 \u0432\u043C\u0435\u0441\u0442\u043E \u0432\u043D\u0435\u0448\u043D\u0435\u0435\u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u0435 \u043A\u043B\u0438\u0435\u043D\u0442 \u043A\u043E\u043D\u0435\u0446\u043E\u0431\u043B\u0430\u0441\u0442\u0438 \u043C\u043E\u0431\u0438\u043B\u044C\u043D\u043E\u0435\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u043A\u043B\u0438\u0435\u043D\u0442 \u043C\u043E\u0431\u0438\u043B\u044C\u043D\u043E\u0435\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0441\u0435\u0440\u0432\u0435\u0440 \u043D\u0430\u043A\u043B\u0438\u0435\u043D\u0442\u0435 \u043D\u0430\u043A\u043B\u0438\u0435\u043D\u0442\u0435\u043D\u0430\u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u043D\u0430\u043A\u043B\u0438\u0435\u043D\u0442\u0435\u043D\u0430\u0441\u0435\u0440\u0432\u0435\u0440\u0435\u0431\u0435\u0437\u043A\u043E\u043D\u0442\u0435\u043A\u0441\u0442\u0430 \u043D\u0430\u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u043D\u0430\u0441\u0435\u0440\u0432\u0435\u0440\u0435\u0431\u0435\u0437\u043A\u043E\u043D\u0442\u0435\u043A\u0441\u0442\u0430 \u043E\u0431\u043B\u0430\u0441\u0442\u044C \u043F\u0435\u0440\u0435\u0434 \u043F\u043E\u0441\u043B\u0435 \u0441\u0435\u0440\u0432\u0435\u0440 \u0442\u043E\u043B\u0441\u0442\u044B\u0439\u043A\u043B\u0438\u0435\u043D\u0442\u043E\u0431\u044B\u0447\u043D\u043E\u0435\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0442\u043E\u043B\u0441\u0442\u044B\u0439\u043A\u043B\u0438\u0435\u043D\u0442\u0443\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u043C\u043E\u0435\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0442\u043E\u043D\u043A\u0438\u0439\u043A\u043B\u0438\u0435\u043D\u0442 ", c = "\u0440\u0430\u0437\u0434\u0435\u043B\u0438\u0442\u0435\u043B\u044C\u0441\u0442\u0440\u0430\u043D\u0438\u0446 \u0440\u0430\u0437\u0434\u0435\u043B\u0438\u0442\u0435\u043B\u044C\u0441\u0442\u0440\u043E\u043A \u0441\u0438\u043C\u0432\u043E\u043B\u0442\u0430\u0431\u0443\u043B\u044F\u0446\u0438\u0438 ", _ = "ansitooem oemtoansi \u0432\u0432\u0435\u0441\u0442\u0438\u0432\u0438\u0434\u0441\u0443\u0431\u043A\u043E\u043D\u0442\u043E \u0432\u0432\u0435\u0441\u0442\u0438\u043F\u0435\u0440\u0435\u0447\u0438\u0441\u043B\u0435\u043D\u0438\u0435 \u0432\u0432\u0435\u0441\u0442\u0438\u043F\u0435\u0440\u0438\u043E\u0434 \u0432\u0432\u0435\u0441\u0442\u0438\u043F\u043B\u0430\u043D\u0441\u0447\u0435\u0442\u043E\u0432 \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u044B\u0439\u043F\u043B\u0430\u043D\u0441\u0447\u0435\u0442\u043E\u0432 \u0434\u0430\u0442\u0430\u0433\u043E\u0434 \u0434\u0430\u0442\u0430\u043C\u0435\u0441\u044F\u0446 \u0434\u0430\u0442\u0430\u0447\u0438\u0441\u043B\u043E \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A\u0441\u0438\u0441\u0442\u0435\u043C\u044B \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u0432\u0441\u0442\u0440\u043E\u043A\u0443 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u0438\u0437\u0441\u0442\u0440\u043E\u043A\u0438 \u043A\u0430\u0442\u0430\u043B\u043E\u0433\u0438\u0431 \u043A\u0430\u0442\u0430\u043B\u043E\u0433\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u043A\u043E\u0434\u0441\u0438\u043C\u0432 \u043A\u043E\u043D\u0433\u043E\u0434\u0430 \u043A\u043E\u043D\u0435\u0446\u043F\u0435\u0440\u0438\u043E\u0434\u0430\u0431\u0438 \u043A\u043E\u043D\u0435\u0446\u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043D\u043D\u043E\u0433\u043E\u043F\u0435\u0440\u0438\u043E\u0434\u0430\u0431\u0438 \u043A\u043E\u043D\u0435\u0446\u0441\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u043D\u043E\u0433\u043E\u0438\u043D\u0442\u0435\u0440\u0432\u0430\u043B\u0430 \u043A\u043E\u043D\u043A\u0432\u0430\u0440\u0442\u0430\u043B\u0430 \u043A\u043E\u043D\u043C\u0435\u0441\u044F\u0446\u0430 \u043A\u043E\u043D\u043D\u0435\u0434\u0435\u043B\u0438 \u043B\u043E\u0433 \u043B\u043E\u043310 \u043C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0435\u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E\u0441\u0443\u0431\u043A\u043E\u043D\u0442\u043E \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u0435\u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u0435\u043D\u0430\u0431\u043E\u0440\u0430\u043F\u0440\u0430\u0432 \u043D\u0430\u0437\u043D\u0430\u0447\u0438\u0442\u044C\u0432\u0438\u0434 \u043D\u0430\u0437\u043D\u0430\u0447\u0438\u0442\u044C\u0441\u0447\u0435\u0442 \u043D\u0430\u0439\u0442\u0438\u0441\u0441\u044B\u043B\u043A\u0438 \u043D\u0430\u0447\u0430\u043B\u043E\u043F\u0435\u0440\u0438\u043E\u0434\u0430\u0431\u0438 \u043D\u0430\u0447\u0430\u043B\u043E\u0441\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u043D\u043E\u0433\u043E\u0438\u043D\u0442\u0435\u0440\u0432\u0430\u043B\u0430 \u043D\u0430\u0447\u0433\u043E\u0434\u0430 \u043D\u0430\u0447\u043A\u0432\u0430\u0440\u0442\u0430\u043B\u0430 \u043D\u0430\u0447\u043C\u0435\u0441\u044F\u0446\u0430 \u043D\u0430\u0447\u043D\u0435\u0434\u0435\u043B\u0438 \u043D\u043E\u043C\u0435\u0440\u0434\u043D\u044F\u0433\u043E\u0434\u0430 \u043D\u043E\u043C\u0435\u0440\u0434\u043D\u044F\u043D\u0435\u0434\u0435\u043B\u0438 \u043D\u043E\u043C\u0435\u0440\u043D\u0435\u0434\u0435\u043B\u0438\u0433\u043E\u0434\u0430 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0430\u043E\u0436\u0438\u0434\u0430\u043D\u0438\u044F \u043E\u0441\u043D\u043E\u0432\u043D\u043E\u0439\u0436\u0443\u0440\u043D\u0430\u043B\u0440\u0430\u0441\u0447\u0435\u0442\u043E\u0432 \u043E\u0441\u043D\u043E\u0432\u043D\u043E\u0439\u043F\u043B\u0430\u043D\u0441\u0447\u0435\u0442\u043E\u0432 \u043E\u0441\u043D\u043E\u0432\u043D\u043E\u0439\u044F\u0437\u044B\u043A \u043E\u0447\u0438\u0441\u0442\u0438\u0442\u044C\u043E\u043A\u043D\u043E\u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0439 \u043F\u0435\u0440\u0438\u043E\u0434\u0441\u0442\u0440 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0432\u0440\u0435\u043C\u044F\u0442\u0430 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0434\u0430\u0442\u0443\u0442\u0430 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0442\u0430 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F\u043E\u0442\u0431\u043E\u0440\u0430 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u043F\u043E\u0437\u0438\u0446\u0438\u044E\u0442\u0430 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u043F\u0443\u0441\u0442\u043E\u0435\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0442\u0430 \u043F\u0440\u0435\u0444\u0438\u043A\u0441\u0430\u0432\u0442\u043E\u043D\u0443\u043C\u0435\u0440\u0430\u0446\u0438\u0438 \u043F\u0440\u043E\u043F\u0438\u0441\u044C \u043F\u0443\u0441\u0442\u043E\u0435\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u0440\u0430\u0437\u043C \u0440\u0430\u0437\u043E\u0431\u0440\u0430\u0442\u044C\u043F\u043E\u0437\u0438\u0446\u0438\u044E\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u0442\u044C\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044B\u043D\u0430 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u0442\u044C\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044B\u043F\u043E \u0441\u0438\u043C\u0432 \u0441\u043E\u0437\u0434\u0430\u0442\u044C\u043E\u0431\u044A\u0435\u043A\u0442 \u0441\u0442\u0430\u0442\u0443\u0441\u0432\u043E\u0437\u0432\u0440\u0430\u0442\u0430 \u0441\u0442\u0440\u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E\u0441\u0442\u0440\u043E\u043A \u0441\u0444\u043E\u0440\u043C\u0438\u0440\u043E\u0432\u0430\u0442\u044C\u043F\u043E\u0437\u0438\u0446\u0438\u044E\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430 \u0441\u0447\u0435\u0442\u043F\u043E\u043A\u043E\u0434\u0443 \u0442\u0435\u043A\u0443\u0449\u0435\u0435\u0432\u0440\u0435\u043C\u044F \u0442\u0438\u043F\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u0442\u0438\u043F\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F\u0441\u0442\u0440 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u0442\u0430\u043D\u0430 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u0442\u0430\u043F\u043E \u0444\u0438\u043A\u0441\u0448\u0430\u0431\u043B\u043E\u043D \u0448\u0430\u0431\u043B\u043E\u043D ", d = "acos asin atan base64\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 base64\u0441\u0442\u0440\u043E\u043A\u0430 cos exp log log10 pow sin sqrt tan xml\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 xml\u0441\u0442\u0440\u043E\u043A\u0430 xml\u0442\u0438\u043F xml\u0442\u0438\u043F\u0437\u043D\u0447 \u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0435\u043E\u043A\u043D\u043E \u0431\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u044B\u0439\u0440\u0435\u0436\u0438\u043C \u0431\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u044B\u0439\u0440\u0435\u0436\u0438\u043C\u0440\u0430\u0437\u0434\u0435\u043B\u0435\u043D\u0438\u044F\u0434\u0430\u043D\u043D\u044B\u0445 \u0431\u0443\u043B\u0435\u0432\u043E \u0432\u0432\u0435\u0441\u0442\u0438\u0434\u0430\u0442\u0443 \u0432\u0432\u0435\u0441\u0442\u0438\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u0432\u0432\u0435\u0441\u0442\u0438\u0441\u0442\u0440\u043E\u043A\u0443 \u0432\u0432\u0435\u0441\u0442\u0438\u0447\u0438\u0441\u043B\u043E \u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442\u044C\u0447\u0442\u0435\u043D\u0438\u044Fxml \u0432\u043E\u043F\u0440\u043E\u0441 \u0432\u043E\u0441\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u0432\u0440\u0435\u0433 \u0432\u044B\u0433\u0440\u0443\u0437\u0438\u0442\u044C\u0436\u0443\u0440\u043D\u0430\u043B\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0432\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u044C\u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0443\u043E\u043F\u043E\u0432\u0435\u0449\u0435\u043D\u0438\u044F \u0432\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u044C\u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0443\u043F\u0440\u0430\u0432\u0434\u043E\u0441\u0442\u0443\u043F\u0430 \u0432\u044B\u0447\u0438\u0441\u043B\u0438\u0442\u044C \u0433\u043E\u0434 \u0434\u0430\u043D\u043D\u044B\u0435\u0444\u043E\u0440\u043C\u044B\u0432\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u0434\u0430\u0442\u0430 \u0434\u0435\u043D\u044C \u0434\u0435\u043D\u044C\u0433\u043E\u0434\u0430 \u0434\u0435\u043D\u044C\u043D\u0435\u0434\u0435\u043B\u0438 \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C\u043C\u0435\u0441\u044F\u0446 \u0437\u0430\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u0442\u044C\u0434\u0430\u043D\u043D\u044B\u0435\u0434\u043B\u044F\u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u0437\u0430\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u0442\u044C\u0440\u0430\u0431\u043E\u0442\u0443\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u044C\u0440\u0430\u0431\u043E\u0442\u0443\u0441\u0438\u0441\u0442\u0435\u043C\u044B \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C\u0432\u043D\u0435\u0448\u043D\u044E\u044E\u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u0443 \u0437\u0430\u043A\u0440\u044B\u0442\u044C\u0441\u043F\u0440\u0430\u0432\u043A\u0443 \u0437\u0430\u043F\u0438\u0441\u0430\u0442\u044Cjson \u0437\u0430\u043F\u0438\u0441\u0430\u0442\u044Cxml \u0437\u0430\u043F\u0438\u0441\u0430\u0442\u044C\u0434\u0430\u0442\u0443json \u0437\u0430\u043F\u0438\u0441\u044C\u0436\u0443\u0440\u043D\u0430\u043B\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0437\u0430\u043F\u043E\u043B\u043D\u0438\u0442\u044C\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F\u0441\u0432\u043E\u0439\u0441\u0442\u0432 \u0437\u0430\u043F\u0440\u043E\u0441\u0438\u0442\u044C\u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043D\u0438\u0435\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u0437\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u044C\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0437\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u044C\u0441\u0438\u0441\u0442\u0435\u043C\u0443 \u0437\u0430\u0444\u0438\u043A\u0441\u0438\u0440\u043E\u0432\u0430\u0442\u044C\u0442\u0440\u0430\u043D\u0437\u0430\u043A\u0446\u0438\u044E \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u0432\u0434\u0430\u043D\u043D\u044B\u0435\u0444\u043E\u0440\u043C\u044B \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u0432\u0441\u0442\u0440\u043E\u043A\u0443\u0432\u043D\u0443\u0442\u0440 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u0432\u0444\u0430\u0439\u043B \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u0437\u0430\u043F\u043E\u043B\u043D\u0435\u043D\u043E \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u0438\u0437\u0441\u0442\u0440\u043E\u043A\u0438\u0432\u043D\u0443\u0442\u0440 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u0438\u0437\u0444\u0430\u0439\u043B\u0430 \u0438\u0437xml\u0442\u0438\u043F\u0430 \u0438\u043C\u043F\u043E\u0440\u0442\u043C\u043E\u0434\u0435\u043B\u0438xdto \u0438\u043C\u044F\u043A\u043E\u043C\u043F\u044C\u044E\u0442\u0435\u0440\u0430 \u0438\u043C\u044F\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u0438\u043D\u0438\u0446\u0438\u0430\u043B\u0438\u0437\u0438\u0440\u043E\u0432\u0430\u0442\u044C\u043F\u0440\u0435\u0434\u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u043D\u044B\u0435\u0434\u0430\u043D\u043D\u044B\u0435 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F\u043E\u0431\u043E\u0448\u0438\u0431\u043A\u0435 \u043A\u0430\u0442\u0430\u043B\u043E\u0433\u0431\u0438\u0431\u043B\u0438\u043E\u0442\u0435\u043A\u0438\u043C\u043E\u0431\u0438\u043B\u044C\u043D\u043E\u0433\u043E\u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u0430 \u043A\u0430\u0442\u0430\u043B\u043E\u0433\u0432\u0440\u0435\u043C\u0435\u043D\u043D\u044B\u0445\u0444\u0430\u0439\u043B\u043E\u0432 \u043A\u0430\u0442\u0430\u043B\u043E\u0433\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u043E\u0432 \u043A\u0430\u0442\u0430\u043B\u043E\u0433\u043F\u0440\u043E\u0433\u0440\u0430\u043C\u043C\u044B \u043A\u043E\u0434\u0438\u0440\u043E\u0432\u0430\u0442\u044C\u0441\u0442\u0440\u043E\u043A\u0443 \u043A\u043E\u0434\u043B\u043E\u043A\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u0438\u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u043E\u043D\u043D\u043E\u0439\u0431\u0430\u0437\u044B \u043A\u043E\u0434\u0441\u0438\u043C\u0432\u043E\u043B\u0430 \u043A\u043E\u043C\u0430\u043D\u0434\u0430\u0441\u0438\u0441\u0442\u0435\u043C\u044B \u043A\u043E\u043D\u0435\u0446\u0433\u043E\u0434\u0430 \u043A\u043E\u043D\u0435\u0446\u0434\u043D\u044F \u043A\u043E\u043D\u0435\u0446\u043A\u0432\u0430\u0440\u0442\u0430\u043B\u0430 \u043A\u043E\u043D\u0435\u0446\u043C\u0435\u0441\u044F\u0446\u0430 \u043A\u043E\u043D\u0435\u0446\u043C\u0438\u043D\u0443\u0442\u044B \u043A\u043E\u043D\u0435\u0446\u043D\u0435\u0434\u0435\u043B\u0438 \u043A\u043E\u043D\u0435\u0446\u0447\u0430\u0441\u0430 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F\u0431\u0430\u0437\u044B\u0434\u0430\u043D\u043D\u044B\u0445\u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0430\u0434\u0438\u043D\u0430\u043C\u0438\u0447\u0435\u0441\u043A\u0438 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F\u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0430 \u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C\u0434\u0430\u043D\u043D\u044B\u0435\u0444\u043E\u0440\u043C\u044B \u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C\u0444\u0430\u0439\u043B \u043A\u0440\u0430\u0442\u043A\u043E\u0435\u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435\u043E\u0448\u0438\u0431\u043A\u0438 \u043B\u0435\u0432 \u043C\u0430\u043A\u0441 \u043C\u0435\u0441\u0442\u043D\u043E\u0435\u0432\u0440\u0435\u043C\u044F \u043C\u0435\u0441\u044F\u0446 \u043C\u0438\u043D \u043C\u0438\u043D\u0443\u0442\u0430 \u043C\u043E\u043D\u043E\u043F\u043E\u043B\u044C\u043D\u044B\u0439\u0440\u0435\u0436\u0438\u043C \u043D\u0430\u0439\u0442\u0438 \u043D\u0430\u0439\u0442\u0438\u043D\u0435\u0434\u043E\u043F\u0443\u0441\u0442\u0438\u043C\u044B\u0435\u0441\u0438\u043C\u0432\u043E\u043B\u044Bxml \u043D\u0430\u0439\u0442\u0438\u043E\u043A\u043D\u043E\u043F\u043E\u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u043E\u043D\u043D\u043E\u0439\u0441\u0441\u044B\u043B\u043A\u0435 \u043D\u0430\u0439\u0442\u0438\u043F\u043E\u043C\u0435\u0447\u0435\u043D\u043D\u044B\u0435\u043D\u0430\u0443\u0434\u0430\u043B\u0435\u043D\u0438\u0435 \u043D\u0430\u0439\u0442\u0438\u043F\u043E\u0441\u0441\u044B\u043B\u043A\u0430\u043C \u043D\u0430\u0439\u0442\u0438\u0444\u0430\u0439\u043B\u044B \u043D\u0430\u0447\u0430\u043B\u043E\u0433\u043E\u0434\u0430 \u043D\u0430\u0447\u0430\u043B\u043E\u0434\u043D\u044F \u043D\u0430\u0447\u0430\u043B\u043E\u043A\u0432\u0430\u0440\u0442\u0430\u043B\u0430 \u043D\u0430\u0447\u0430\u043B\u043E\u043C\u0435\u0441\u044F\u0446\u0430 \u043D\u0430\u0447\u0430\u043B\u043E\u043C\u0438\u043D\u0443\u0442\u044B \u043D\u0430\u0447\u0430\u043B\u043E\u043D\u0435\u0434\u0435\u043B\u0438 \u043D\u0430\u0447\u0430\u043B\u043E\u0447\u0430\u0441\u0430 \u043D\u0430\u0447\u0430\u0442\u044C\u0437\u0430\u043F\u0440\u043E\u0441\u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043D\u0438\u044F\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u043D\u0430\u0447\u0430\u0442\u044C\u0437\u0430\u043F\u0443\u0441\u043A\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u043D\u0430\u0447\u0430\u0442\u044C\u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435\u0444\u0430\u0439\u043B\u0430 \u043D\u0430\u0447\u0430\u0442\u044C\u043F\u0435\u0440\u0435\u043C\u0435\u0449\u0435\u043D\u0438\u0435\u0444\u0430\u0439\u043B\u0430 \u043D\u0430\u0447\u0430\u0442\u044C\u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435\u0432\u043D\u0435\u0448\u043D\u0435\u0439\u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u044B \u043D\u0430\u0447\u0430\u0442\u044C\u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u044F\u0440\u0430\u0431\u043E\u0442\u044B\u0441\u043A\u0440\u0438\u043F\u0442\u043E\u0433\u0440\u0430\u0444\u0438\u0435\u0439 \u043D\u0430\u0447\u0430\u0442\u044C\u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u044F\u0440\u0430\u0431\u043E\u0442\u044B\u0441\u0444\u0430\u0439\u043B\u0430\u043C\u0438 \u043D\u0430\u0447\u0430\u0442\u044C\u043F\u043E\u0438\u0441\u043A\u0444\u0430\u0439\u043B\u043E\u0432 \u043D\u0430\u0447\u0430\u0442\u044C\u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u0435\u043A\u0430\u0442\u0430\u043B\u043E\u0433\u0430\u0432\u0440\u0435\u043C\u0435\u043D\u043D\u044B\u0445\u0444\u0430\u0439\u043B\u043E\u0432 \u043D\u0430\u0447\u0430\u0442\u044C\u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u0435\u043A\u0430\u0442\u0430\u043B\u043E\u0433\u0430\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u043E\u0432 \u043D\u0430\u0447\u0430\u0442\u044C\u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u0435\u0440\u0430\u0431\u043E\u0447\u0435\u0433\u043E\u043A\u0430\u0442\u0430\u043B\u043E\u0433\u0430\u0434\u0430\u043D\u043D\u044B\u0445\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u043D\u0430\u0447\u0430\u0442\u044C\u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u0435\u0444\u0430\u0439\u043B\u043E\u0432 \u043D\u0430\u0447\u0430\u0442\u044C\u043F\u043E\u043C\u0435\u0449\u0435\u043D\u0438\u0435\u0444\u0430\u0439\u043B\u0430 \u043D\u0430\u0447\u0430\u0442\u044C\u043F\u043E\u043C\u0435\u0449\u0435\u043D\u0438\u0435\u0444\u0430\u0439\u043B\u043E\u0432 \u043D\u0430\u0447\u0430\u0442\u044C\u0441\u043E\u0437\u0434\u0430\u043D\u0438\u0435\u0434\u0432\u043E\u0438\u0447\u043D\u044B\u0445\u0434\u0430\u043D\u043D\u044B\u0445\u0438\u0437\u0444\u0430\u0439\u043B\u0430 \u043D\u0430\u0447\u0430\u0442\u044C\u0441\u043E\u0437\u0434\u0430\u043D\u0438\u0435\u043A\u0430\u0442\u0430\u043B\u043E\u0433\u0430 \u043D\u0430\u0447\u0430\u0442\u044C\u0442\u0440\u0430\u043D\u0437\u0430\u043A\u0446\u0438\u044E \u043D\u0430\u0447\u0430\u0442\u044C\u0443\u0434\u0430\u043B\u0435\u043D\u0438\u0435\u0444\u0430\u0439\u043B\u043E\u0432 \u043D\u0430\u0447\u0430\u0442\u044C\u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043A\u0443\u0432\u043D\u0435\u0448\u043D\u0435\u0439\u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u044B \u043D\u0430\u0447\u0430\u0442\u044C\u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043A\u0443\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u044F\u0440\u0430\u0431\u043E\u0442\u044B\u0441\u043A\u0440\u0438\u043F\u0442\u043E\u0433\u0440\u0430\u0444\u0438\u0435\u0439 \u043D\u