import { B as tags, Et as EditorSelection, I as syntaxTree, J as parseMixed, O as indentNodeProp, R as Tag, S as foldInside, Z as EditorView, f as StreamLanguage, h as continuedIndent, n as ExternalTokenizer, r as LRParser, s as LRLanguage, t as ContextTracker, u as LanguageSupport, v as delimitedIndent, w as foldNodeProp, z as styleTags } from "./dist-CCADb07R.js";
import { f as snippetCompletion, l as ifNotIn, s as completeFromList } from "./dist-JEhxD_cn.js";
import { a as PLSQL, f as sql, l as StandardSQL, t as Cassandra } from "./dist-BrBucRXs.js";
import { a as markdown } from "./dist-Yrfc6L0I.js";
import { n as html, r as htmlCompletionSource } from "./dist-UcOPnRMa.js";
import { r as cssLanguage, t as css } from "./dist-BTyJtnNg.js";
import { c as typescriptLanguage, n as javascript, r as javascriptLanguage, u as parser$1 } from "./dist-DGAfI2rB.js";
import { r as python } from "./dist-nuW5EDYT.js";
import { t as stex } from "./stex-DrxP7bb3.js";
import { t as cpp } from "./dist-C34oIrQ9.js";
import { t as go } from "./dist-B507mf_I.js";
import { t as java } from "./dist-BvCfQQQE.js";
import { n as jinja } from "./dist-BNyrZfqT.js";
import { t as json } from "./dist-B4LJpMEg.js";
import { t as less } from "./dist-C2ej4eOH.js";
import { n as liquid } from "./dist-Dh3wkoyH.js";
import { t as php } from "./dist-DJ6zJQZ4.js";
import { t as rust } from "./dist-WdPUFc56.js";
import { t as sass } from "./dist-t_qL7eB8.js";
import { t as wast } from "./dist-CYEylvZA.js";
import { r as xml } from "./dist-CDFZi-QD.js";
import { t as yaml } from "./dist-Bc5pmZIw.js";
import { t as apl } from "./apl-BCgCq9iM.js";
import { t as asciiArmor } from "./asciiarmor-BtqU-KJQ.js";
import { t as asn1 } from "./asn1-Dmb-dTMx.js";
import { t as brainfuck } from "./brainfuck-C1HoZKlE.js";
import { t as cobol } from "./cobol-CcJXewp8.js";
import { c as squirrel, i as kotlin, n as csharp, o as objectiveCpp, r as dart, s as scala } from "./clike-CdT0yHjt.js";
import { t as clojure } from "./clojure-CdyrCpUv.js";
import { t as gss } from "./css-B45lc2V3.js";
import { t as cmake } from "./cmake-BFlPxym7.js";
import { t as coffeeScript } from "./coffeescript-DnKuIKRo.js";
import { t as commonLisp } from "./commonlisp-B-kok83Z.js";
import { t as cypher } from "./cypher-DZMLyVY_.js";
import { t as cython } from "./python-DAQXi720.js";
import { t as crystal } from "./crystal-FYRYjI1I.js";
import { t as d } from "./d-x-VVT4o9.js";
import { t as diff } from "./diff-Dxe2mpXk.js";
import { t as dtd } from "./dtd-C9VM_Wfu.js";
import { t as dylan } from "./dylan-DTSnEIFO.js";
import { t as ecl } from "./ecl-N04ptnRK.js";
import { t as eiffel } from "./eiffel-Dd8rpqr_.js";
import { t as elm } from "./elm-GT2E866W.js";
import { t as erlang } from "./erlang-Cf0Bp5pY.js";
import { t as factor } from "./factor-CajWS6mS.js";
import { t as forth } from "./forth-wd_XzGTg.js";
import { t as fortran } from "./fortran-DcwUTZFe.js";
import { n as oCaml, r as sml, t as fSharp } from "./mllike-DRO89bsU.js";
import { t as gas } from "./gas-DeALIER3.js";
import { t as gherkin } from "./gherkin-CKTqaJNX.js";
import { t as groovy } from "./groovy-Bwdp_d8D.js";
import { t as haskell } from "./haskell-DCdCcPLK.js";
import { n as hxml, t as haxe } from "./haxe-DAyktQWJ.js";
import { t as idl } from "./idl-CBuZiRYu.js";
import { n as jsonld } from "./javascript-DzigE11c.js";
import { t as julia } from "./julia-PwfB-0Cm.js";
import { t as liveScript } from "./livescript-BJLz1EbT.js";
import { t as lua } from "./lua-ZC-XC2jf.js";
import { t as mirc } from "./mirc-nJVyhA0H.js";
import { t as mathematica } from "./mathematica-DCYMx6qB.js";
import { t as modelica } from "./modelica-Don3E6ZD.js";
import { t as mumps } from "./mumps-SjGTvDYL.js";
import { t as mbox } from "./mbox-OxMK_9XI.js";
import { t as nsis } from "./nsis-ClF3r5Tr.js";
import { t as ntriples } from "./ntriples-CNBKRl3I.js";
import { t as octave } from "./octave-DdeVHNlx.js";
import { t as oz } from "./oz-CcKSoNvN.js";
import { t as pascal } from "./pascal-6leftwNj.js";
import { t as perl } from "./perl-BhJIwWzN.js";
import { t as pig } from "./pig-r-xDHqRf.js";
import { t as powerShell } from "./powershell-D-BELeNi.js";
import { t as properties } from "./properties-CnuDhbll.js";
import { t as protobuf } from "./protobuf-CO8RBhvX.js";
import { t as pug } from "./pug-B_rby2yb.js";
import { t as puppet } from "./puppet-NmXHjLy8.js";
import { t as q } from "./q-DlikXfV0.js";
import { t as r } from "./r-CuohilwT.js";
import { n as rpmSpec } from "./rpm-0Pjwp0Pb.js";
import { t as ruby } from "./ruby-Dq8NJTDG.js";
import { t as sas } from "./sas-CuwonyVP.js";
import { t as scheme } from "./scheme-CYU-RRIf.js";
import { t as shell } from "./shell-COPmX2qE.js";
import { t as sieve } from "./sieve-B_3zyLne.js";
import { t as smalltalk } from "./smalltalk-DRft7iPv.js";
import { t as sparql } from "./sparql-CN6qj55H.js";
import { t as stylus } from "./stylus-Bn_ZjOQ3.js";
import { t as swift } from "./swift-BLUJhMbz.js";
import { t as verilog } from "./verilog-CzSQm4cG.js";
import { t as tcl } from "./tcl-C86fxecl.js";
import { t as textile } from "./textile-DmHh2rsK.js";
import { t as toml } from "./toml-GWANRNAD.js";
import { t as troff } from "./troff-BHTsomIy.js";
import { t as ttcn } from "./ttcn-DQuhn5Mn.js";
import { t as ttcnCfg } from "./ttcn-cfg-HjFYtdB-.js";
import { t as turtle } from "./turtle-nCay33Nv.js";
import { t as webIDL } from "./webidl-DXEUpDWH.js";
import { t as vb } from "./vb-BG-XlqqJ.js";
import { t as vbScript } from "./vbscript-B6vyW0-D.js";
import { t as velocity } from "./velocity-CWegueqO.js";
import { t as vhdl } from "./vhdl-DqnNVL7r.js";
import { t as xQuery } from "./xquery-Ba_NB5bD.js";
import { t as yacas } from "./yacas-HKQU6hyk.js";
import { t as z80 } from "./z80-CXkHXLdj.js";
import { n as msgenny, r as xu, t as mscgen } from "./mscgen-DJfqD3bN.js";
import { t as vue } from "./dist-Dhk6FMb0.js";
var strContent = 63, strDollarBrace = 64, strEnd = 65, escapeSequence = 66, indStrContent = 67, indStrDollarBrace = 68, indStrEnd = 69, indEscapeSequence = 70, quote = 34, backslack = 92, braceL = 123, dollar = 36, apostrophe = 39, scanString = /* @__PURE__ */ new ExternalTokenizer((y) => {
  for (let G = false, K = 0; ; K++) {
    let { next: J } = y;
    if (J < 0) {
      K > 0 && y.acceptToken(strContent);
      break;
    } else if (J === quote) {
      K > 0 ? y.acceptToken(strContent) : y.acceptToken(strEnd, 1);
      break;
    } else if (J === braceL && G) {
      K == 1 ? y.acceptToken(strDollarBrace, 1) : y.acceptToken(strContent, -1);
      break;
    } else J === backslack && (y.advance(), y.acceptToken(escapeSequence, 1));
    G = J === dollar, y.advance();
  }
}), scanIndString = /* @__PURE__ */ new ExternalTokenizer((y) => {
  for (let G = false, K = false, J = 0; ; J++) {
    let { next: Y } = y;
    if (Y < 0) {
      J > 0 && y.acceptToken(indStrContent);
      break;
    } else if (Y === apostrophe && K) {
      J > 1 ? y.acceptToken(indStrContent, -1) : y.acceptToken(indStrEnd, 1);
      break;
    } else if (Y === braceL && G) {
      J == 1 ? y.acceptToken(indStrDollarBrace, 1) : y.acceptToken(indStrContent, -1);
      break;
    } else Y === backslack && (y.advance(), y.acceptToken(indEscapeSequence, 1));
    G = Y === dollar, K = Y === apostrophe, y.advance();
  }
}), spec_Identifier = {
  __proto__: null,
  assert: 22,
  with: 26,
  let: 30,
  inherit: 42,
  in: 48,
  if: 52,
  then: 54,
  else: 56,
  builtins: 70,
  null: 214,
  true: 216,
  false: 216,
  rec: 100,
  or: 108
}, parser$3 = /* @__PURE__ */ LRParser.deserialize({
  version: 14,
  states: "7QO]QSOOO!sQWO'#DyO#XQ`O'#EjO&QQSO'#C`O&YQTO'#CnO'lQWO'#EWO(VQSO'#C|O(VQSO'#C|OOQO'#DQ'#DQOOQO'#DT'#DTO)dQUO'#DUO*yQSO'#DcOOQO'#Ej'#EjO,XQ`O'#EiOOQO'#Ei'#EiO-wQ`O'#EXOOQO'#Eh'#EhOOQO'#EX'#EXOOQO'#EW'#EWOOQO'#Dw'#DwO]QSO'#CfO]QSO'#ChO/dQSO'#D^O]QSO'#CuO]QSO'#D[O/xQSO'#D_QOQSOOO/}QSO'#CdO0`Q`O,5:eO3XQSO,5:eO3aQSO,5:eO4sQSO'#EOOOQO'#Cm'#CmOOQO'#Df'#DfO4}QSO,59wO]QSO'#CpO5`QSO'#ClO5eQSO'#EUO]QSO,58zO5sQSO,58zO5xQSO,58zOOQP'#EQ'#EQOOQP'#Dg'#DgO5}QTO,59YOOQO,59Y,59YO]QSO'#CoO6]QSO,59eO(VQSO,59eO(VQSO,59eO(VQSO,59eO(VQSO,59eO(VQSO,59eO(VQSO,59eO(VQSO,59eO(VQSO,59eO(VQSO,59eO(VQSO,59eO(VQSO,59eO(VQSO,59eO(VQSO,59eO6|QWO,59hO8VQSO'#D]O/xQSO'#D^OOQO,59h,59hOOQQ'#En'#EnOOQQ'#Dj'#DjO8hQUO,59pOOQO,59p,59pO]QSO'#DVOOQO'#Dk'#DkO8vQSO,59}OOQO,59},59}O8}QSO'#EiO6]QSO,59jOOQO,59i,59iO9XQSO,59QO9^QSO,59SO9cQSO,59UO]QSO,59UOOQO,59x,59xO9tQSO,59aO9yQSO,59vOOQO,59y,59yO:OQSO'#DhO;hQSO,5:jO]QSO,59OO;rQWO1G0PO;zQSO1G0POOQO1G0P1G0POOQO-E7d-E7dOOQO1G/c1G/cO<SQSO,59[O]QSO,59WOOQO'#Di'#DiO<XQSO,5:pO]QSO,5:qOOQO1G.f1G.fO<gQWO'#DyO<rQSO1G.fOOQP-E7e-E7eOOQO1G.t1G.tO<wQSO,59ZO<|Q`O'#EOOOQO1G/P1G/PO@PQWO1G/PO@WQWO1G/POAuQWO1G/POA|QWO1G/POBTQWO1G/POC^QWO1G/PODgQWO1G/POEpQWO1G/POFyQWO1G/POHSQWO1G/POI]QWO1G/POJfQWO1G/POKoQWO1G/POOQO,59w,59wOOQQ-E7h-E7hOOQO1G/[1G/[OLYQSO,59qOOQO-E7i-E7iOOQO1G/i1G/iOMfQ`O1G/UO]QSO1G.lO]QSO1G.nO]QSO1G.pOOQO1G.p1G.pO]QSO1G.{OOQO1G/b1G/bOOQO,5:S,5:SOOQO-E7f-E7fOOQO1G.j1G.jO! UQSO'#CdOOQO,5:P,5:PO! aQSO7+%kO! fQWO7+%kOOQO-E7c-E7cOOQO7+%k7+%kOOQO1G.v1G.vO! nQSO1G.rOOQO-E7g-E7gOOQO1G0[1G0[O! sQSO1G0]OOQO,5:e,5:eO]QSO7+$QOOQP1G.u1G.uO! xQ`O,5:jOOQQ1G/]1G/]O!#eQSO1G/UO)rQSO7+$pOOQO7+$W7+$WOOQO7+$Y7+$YOOQO7+$[7+$[O!#oQSO7+$gOOQO<<IV<<IVO!#tQSO<<IVP!#yQSO'#DeOOQO7+$^7+$^O!$OQSO7+%wOOQO<<Gl<<GlOOQO<<H[<<H[O]QSO<<HROOQOAN>qAN>qO!$ZQSO<<IcOOQOAN=mAN=mOOQOAN>}AN>}O!$iQSO,59jO)rQSO7+$p",
  stateData: "!$x~O!jOSPOSQOS~OTQOUPOZdO]eO_fOfhOjgOs[Ou[Ov[Oz[O{[O|[O}[O!SiO!UZO!sSO#QVO#ZUO#_WO#`XO#aYO~OTkOVlOXnOeuO!sSO!usO~O!lvO!pwOT#^XU#^X_#^Xf#^Xn#^Xo#^Xs#^Xu#^Xv#^Xz#^X{#^X|#^X}#^X!S#^X!U#^X!`#^X!n#^X!s#^X!v#^X!|#^X!}#^X#O#^X#P#^X#Q#^X#R#^X#S#^X#T#^X#U#^X#V#^X#W#^X#X#^X#Y#^X#_#^X#`#^X#a#^X!q#^Xk#^Xg#^XV#^X!o#^Xl#^X~O!lvO!pxO~O!ayO!b}O!c|O!dyO~On!TOo!VO!n!OO!|!PO!}!PO#O!QO#P!RO#Q!SO#R!TO#S!UO#T!WO#U!XO#V!YO#W!ZO#X![O#Y!]O~O!`!zX!q!zXk!zXg!zXV!zX!o!zXl!zX~P&hOT[OU!_O_!`OfhOs[Ou[Ov[Oz[O{[O|[O}[O!SiO!UZO!sSO#QVO#ZUO#_WO#`XO#aYO~O!e!bO!f!fO!g!eO!h!bO~OT[OU!_O_!`OfhOs[Ou[Ov[Oz[O{[O|[O}[O!SiO!UZO!sSO#_WO#`XO#aYO~O!T!iO~P)rOT#]XU#]X_#]Xf#]Xs#]Xu#]Xv#]Xz#]X{#]X|#]X}#]X!S#]X!U#]X!s#]X#_#]X#`#]X#a#]X~O!v!kOn#]Xo#]X!`#]X!n#]X!|#]X!}#]X#O#]X#P#]X#Q#]X#R#]X#S#]X#T#]X#U#]X#V#]X#W#]X#X#]X#Y#]X!q#]Xk#]Xg#]XV#]X!o#]Xl#]X~P+QOn!{Xo!{X!`!{X!n!{X!|!{X!}!{X#O!{X#P!{X#Q!{X#R!{X#S!{X#T!{X#U!{X#V!{X#W!{X#X!{X#Y!{X!q!{Xk!{Xg!{XV!{X!o!{Xl!{X~P)rOToOU!_OeuOh!pO!sSO!usO~OU!_O~O!n!wO!v!uOVWX!oWX!w!rX~OT!PaU!Pa_!Paf!Pan!Pao!Pas!Pau!Pav!Paz!Pa{!Pa|!Pa}!Pa!S!Pa!U!Pa!`!Pa!l!ma!n!Pa!p!ma!s!Pa!v!Pa!|!Pa!}!Pa#O!Pa#P!Pa#Q!Pa#R!Pa#S!Pa#T!Pa#U!Pa#V!Pa#W!Pa#X!Pa#Y!Pa#_!Pa#`!Pa#a!Pa!q!Pak!Pag!PaV!Pa!o!Pal!Pa~OV!zO!o!xO~OV!zO~O!v!uOT!rXU!rX_!rXf!rXs!rXu!rXv!rXz!rX{!rX|!rX}!rX!S!rX!U!rX!W!rX!s!rX#_!rX#`!rX#a!rX~O!w!rX!T!rX~P3fOToOV!|OeuO!sSO!usO~O!w#OO~OT#POf#RO!sSO!usO~OU#TO~OT#UO~O!ayO!b}O!c#WO!dyO~OT#YO!sSO!usO~O!n!OO!|!PO!}!PO#O!QO#P!RO#Q!SO~Onpaopa!`pa#Rpa#Spa#Tpa#Upa#Vpa#Wpa#Xpa#Ypa!qpakpagpaVpa!opalpa~P6hOToOV#iOeuO!sSO!usO~O!e!bO!f!fO!g#kO!h!bO~O!T#nO~P)rO!v$mO!T#]X~P+QO!q#pO~O!q#qO~OToOeuOh#rO!sSO!usO~Ok#tO~Og#uO~OT#vO!sSO!usO~O!v!uOT!raU!ra_!raf!ras!rau!rav!raz!ra{!ra|!ra}!ra!S!ra!U!ra!W!ra!s!ra#_!ra#`!ra#a!ra~O!w!ra!T!ra~P:ZOT#yOX#{O~OV$OO!o#|O~OV$PO~OT#PO!q$SO!sSO!usO~OT#yOV$UOXnO~O!l$VO~OV$WO~On!rXo!rX!`!rX!n!rX!|!rX!}!rX#O!rX#P!rX#Q!rX#R!rX#S!rX#T!rX#U!rX#V!rX#W!rX#X!rX#Y!rX!q!rXk!rXg!rXV!rX!o!rXl!rX~P3fO!n!OO!|!POnmiomi!`mi#Omi#Pmi#Qmi#Rmi#Smi#Tmi#Umi#Vmi#Wmi#Xmi#Ymi!qmikmigmiVmi!omilmi~O!}mi~P>iO!}!PO~P>iO!n!OO!|!PO!}!PO#O!QOnmiomi!`mi#Qmi#Rmi#Smi#Tmi#Umi#Vmi#Wmi#Xmi#Ymi!qmikmigmiVmi!omilmi~O#Pmi~P@_O#P!RO~P@_O#R!TOnmiomi!`mi#Smi#Tmi#Umi#Vmi#Wmi#Xmi#Ymi!qmikmigmiVmi!omilmi~P6hOn!TO#R!TOomi!`mi#Smi#Tmi#Umi#Vmi#Wmi#Xmi#Ymi!qmikmigmiVmi!omilmi~P6hOn!TO#R!TO#S!UOomi!`mi#Tmi#Umi#Vmi#Wmi#Xmi#Ymi!qmikmigmiVmi!omilmi~P6hOn!TOo!VO#R!TO#S!UO!`mi#Tmi#Umi#Vmi#Wmi#Xmi#Ymi!qmikmigmiVmi!omilmi~P6hOn!TOo!VO#R!TO#S!UO#T!WO!`mi#Umi#Vmi#Wmi#Xmi#Ymi!qmikmigmiVmi!omilmi~P6hOn!TOo!VO#R!TO#S!UO#T!WO#U!XO!`mi#Vmi#Wmi#Xmi#Ymi!qmikmigmiVmi!omilmi~P6hOn!TOo!VO#R!TO#S!UO#T!WO#U!XO#V!YO!`mi#Wmi#Xmi#Ymi!qmikmigmiVmi!omilmi~P6hOn!TOo!VO#R!TO#S!UO#T!WO#U!XO#V!YO#W!ZO!`mi#Xmi#Ymi!qmikmigmiVmi!omilmi~P6hO!`mi!qmikmigmiVmi!omilmi~P&hOV$YO~OTriUri_rifrisriurivrizri{ri|ri}ri!Sri!Uri!sri#_ri#`ri#ari~O!W$[Onriori!`ri!nri!|ri!}ri#Ori#Pri#Qri#Rri#Sri#Tri#Uri#Vri#Wri#Xri#Yri!qrikrigriVri!orilri~PL_O!n!wOVWX!oWX~OV$aO~OT#yOX$bO~O!q$dO~Og$eO~On!rao!ra!`!ra!n!ra!|!ra!}!ra#O!ra#P!ra#Q!ra#R!ra#S!ra#T!ra#U!ra#V!ra#W!ra#X!ra#Y!ra!q!rak!rag!raV!ra!o!ral!ra~P:ZO!W$nO!Tri~PL_Ol$hO~OV$iO~OT#yO~OT#PO!sSO!usO~OT#PO!q$lO!sSO!usO~OToO!sSO!usO~Oz!v!v~",
  goto: "2g#cPPPP#dPPP#yP#dP#dP#dP$S$Z$k%{%fPPPP&PPPP&fPP&f'[(QP({PP({({)vPPPP({)z({({PPP({P*|+S+_+e+p+z,QPPPPPPPPPPP,WP-cPPPP-{P.VPPP$S$S#d.ZPPPPPPPPPPPPPP/o0e1fPPP2cwcOdeghsv}!f!p!w#O#R#p#q#r#t$V$hSmP#TV#z!x#|$cZqPfr!_!oYtPfr!_!oQ#Z!OQ#o!kR$Z$m!p[OUVZ_deghsv}!P!Q!R!S!T!U!V!W!X!Y!Z![!]!f!h!p!w#O#R#p#q#r#t$V$[$h$n[oPfr!_!o$mW#Pu#Q$e$jS#Y!O!kR#v!uTyS{wbOdeghsv}!f!p!w#O#R#p#q#r#t$V$h!gaOUVdeghsv}!P!Q!R!S!T!U!V!W!X!Y!Z![!]!f!p!w#O#R#p#q#r#t$V$h!g`OUVdeghsv}!P!Q!R!S!T!U!V!W!X!Y!Z![!]!f!p!w#O#R#p#q#r#t$V$h!q^OUVZ_deghsv}!P!Q!R!S!T!U!V!W!X!Y!Z![!]!f!h!p!w#O#R#p#q#r#t$V$[$h$n!q[OUVZ_deghsv}!P!Q!R!S!T!U!V!W!X!Y!Z![!]!f!h!p!w#O#R#p#q#r#t$V$[$h$nT!bY!d!p[OUVZ_deghsv}!P!Q!R!S!T!U!V!W!X!Y!Z![!]!f!h!p!w#O#R#p#q#r#t$V$[$h$nS!qf!`R!tiQ!ymR#}!ySrP!_Q!ofT!{r!oQ{SR#V{S!vkoS#w!v$XR$X#YQ#QuS$R#Q$jR$j$eQ!dYR#j!dQ!hZR#m!hQjOQ!mdQ!neQ!rgQ!shQ!}sQ#SvQ#X}Q#l!fQ#s!pQ#x!wQ$Q#OQ$T#RQ$]#pQ$^#qQ$_#rQ$`#tQ$f$VR$k$hvROdeghsv}!f!p!w#O#R#p#q#r#t$V$hR#UwapPfr!O!_!k!o$mTzS{vTOdeghsv}!f!p!w#O#R#p#q#r#t$V$hQ!^UQ!aVQ#[!PQ#]!QQ#^!RQ#_!SQ#`!TQ#a!UQ#b!VQ#c!WQ#d!XQ#e!YQ#f!ZQ#g![R#h!]!g_OUVdeghsv}!P!Q!R!S!T!U!V!W!X!Y!Z![!]!f!p!w#O#R#p#q#r#t$V$h!f`OUVdeghsv}!P!Q!R!S!T!U!V!W!X!Y!Z![!]!f!p!w#O#R#p#q#r#t$V$hS!gZ!hQ!l_T$g$[$n!j]OUV_deghsv}!P!Q!R!S!T!U!V!W!X!Y!Z![!]!f!p!w#O#R#p#q#r#t$V$[$hV!jZ!h$nT!cY!d",
  nodeNames: "\u26A0 LineComment BlockComment Program Function Identifier { } Formal Ellipses Assert assert With with Let let Bind AttrPath String Interpolation Interpolation inherit ( ) in IfExpr if then else BinaryExpr < > UnaryExpr App Select builtins Null Integer Float Boolean IndentedString Interpolation Path HPath SPath URI Parenthesized AttrSet LetAttrSet RecAttrSet rec ] [ List or",
  maxTerm: 110,
  nodeProps: [[
    "closedBy",
    6,
    "}",
    22,
    ")",
    52,
    "]"
  ], [
    "openedBy",
    7,
    "{",
    23,
    "(",
    51,
    "["
  ]],
  skippedNodes: [
    0,
    1,
    2
  ],
  repeatNodeCount: 7,
  tokenData: ">P~RtXY#cYZ#c]^#cpq#cqr#trs$Rst$Wtu$ovw$zwx%Vxy%byz%gz{%l{|%q|})]}!O)b!O!P*X!P!Q.r!Q!R0l!R![2e![!]3S!]!^3X!^!_3^!_!`5_!`!a5l!a!b5y!b!c6O!c!}6T!}#O;g#P#Q;l#R#S:u#T#o6T#o#p;q#p#q;v#q#r<R#r#s<W~#hS!j~XY#cYZ#c]^#cpq#cV#yP#ZP!_!`#|U$RO#VU~$WO!s~~$]SP~OY$WZ;'S$W;'S;=`$i<%lO$W~$lP;=`<%l$W~$rP#o#p$u~$zO!u~~$}Pvw%Q~%VO#W~~%YPwx%]~%bO#a~~%gOf~~%lOg~~%qO!}~~%vW#P~{|&`}!O&}!O!P&}!P!Q'j!Q![&}!c!}&}#R#S&}#T#o&}~&eW!|~{|&}}!O&}!O!P&}!P!Q'j!Q![&}!c!}&}#R#S&}#T#o&}T'QW{|&}}!O&}!O!P&}!P!Q'j!Q![&}!c!}&}#R#S&}#T#o&}T'mV{|(S}!O(S!O!P(S!Q![(S!c!}(S#R#S(S#T#o(ST(XWzT{|(S}!O(S!O!P(S!P!Q(q!Q![(S!c!}(S#R#S(S#T#o(ST(vVzT{|(S}!O(S!O!P(S!Q![(S!c!}(S#R#S(S#T#o(S~)bO!o~~)gX#Q~{|&}}!O&}!O!P&}!P!Q'j!Q![&}!`!a*S!c!}&}#R#S&}#T#o&}~*XO#Y~~*^W!vT{|&}}!O&}!O!P*v!P!Q'j!Q![,Q!c!}&}#R#S&}#T#o&}V*yW{|&}}!O&}!O!P+c!P!Q'j!Q![&}!c!}&}#R#S&}#T#o&}V+hWXQ{|&}}!O&}!O!P&}!P!Q'j!Q![&}!c!}&}#R#S&}#T#o&}~,V[v~{|&}}!O&}!O!P&}!P!Q'j!Q![,Q!c!g&}!g!h,{!h!}&}#R#S&}#T#X&}#X#Y,{#Y#o&}~-OW{|-h}!O-h!O!P&}!P!Q'j!Q![.T!c!}&}#R#S&}#T#o&}~-kW{|&}}!O&}!O!P&}!P!Q'j!Q![.T!c!}&}#R#S&}#T#o&}~.YWv~{|&}}!O&}!O!P&}!P!Q'j!Q![.T!c!}&}#R#S&}#T#o&}~.wX#O~z{/d{|(S}!O(S!O!P(S!P!Q0g!Q![(S!c!}(S#R#S(S#T#o(S~/iTQ~Oz/dz{/x{;'S/d;'S;=`0a<%lO/d~/{TO!P/d!P!Q0[!Q;'S/d;'S;=`0a<%lO/d~0aOQ~~0dP;=`<%l/d~0lO#R~~0qWu~{|&}}!O&}!O!P1Z!P!Q'j!Q![1v!c!}&}#R#S&}#T#o&}~1^W{|&}}!O&}!O!P&}!P!Q'j!Q![,Q!c!}&}#R#S&}#T#o&}~1{Wu~{|&}}!O&}!O!P&}!P!Q'j!Q![1v!c!}&}#R#S&}#T#o&}~2jWu~{|&}}!O&}!O!P,Q!P!Q'j!Q![2e!c!}&}#R#S&}#T#o&}~3XO!l~~3^O!q~~3cWn~{|3{}!O3{!O!P3{!Q![3{!_!`5Y!c!}3{#R#S3{#T#o3{~4OX{|3{}!O3{!O!P3{!P!Q4k!Q![3{!`!a5T!c!}3{#R#S3{#T#o3{~4nV{|3{}!O3{!O!P3{!Q![3{!c!}3{#R#S3{#T#o3{~5YO|~~5_O#S~V5dP!wP!_!`5gU5lO#UU~5qPo~!_!`5t~5yO#T~~6OO!n~~6TO!p~~6YYT~wx6x{|7a}!O6T!O!P7a!P!Q'j!Q![6T![!]8P!c!}6T#R#S:u#T#o6T~6}UT~wx6x}!O6x!Q![6x!c!}6x#R#S6x#T#o6x~7dX{|7a}!O7a!O!P7a!P!Q'j!Q![7a![!]8P!c!}7a#R#S&}#T#o7a~8Sdqr9btu9buv9bvw9bwx9bz{9b{|9b|}9b}!O9b!O!P9b!P!Q9b!Q![9b![!]9b!_!`9b!a!b9b!b!c9b!c!}9b#R#S9b#T#o9b#r#s9b~9gd}~qr9btu9buv9bvw9bwx9bz{9b{|9b|}9b}!O9b!O!P9b!P!Q9b!Q![9b![!]9b!_!`9b!a!b9b!b!c9b!c!}9b#R#S9b#T#o9b#r#s9b~:zXT~wx6x{|&}}!O:u!O!P&}!P!Q'j!Q![:u!c!}:u#R#S:u#T#o:u~;lO!U~~;qO!T~~;vOU~~;yP#p#q;|~<RO#X~~<WOV~~<ZP!P!Q<^~<aV{|<v}!O<v!O!P<v!Q![<v!c!}<v#R#S<v#T#o<v~<{W{~{|<v}!O<v!O!P<v!P!Q=e!Q![<v!c!}<v#R#S<v#T#o<v~=jV{~{|<v}!O<v!O!P<v!Q![<v!c!}<v#R#S<v#T#o<v",
  tokenizers: [
    scanString,
    scanIndString,
    0,
    1,
    2
  ],
  topRules: { Program: [0, 3] },
  specialized: [{
    term: 5,
    get: (y) => spec_Identifier[y] || -1
  }],
  tokenPrec: 2290
}), nixLanguage = /* @__PURE__ */ LRLanguage.define({
  name: "Nix",
  parser: /* @__PURE__ */ parser$3.configure({ props: [
    /* @__PURE__ */ indentNodeProp.add({
      Parenthesized: /* @__PURE__ */ delimitedIndent({ closing: ")" }),
      AttrSet: /* @__PURE__ */ delimitedIndent({ closing: "}" }),
      List: /* @__PURE__ */ delimitedIndent({ closing: "]" }),
      Let: /* @__PURE__ */ continuedIndent({ except: /^\s*in\b/ })
    }),
    /* @__PURE__ */ foldNodeProp.add({
      AttrSet: foldInside,
      List: foldInside,
      Let(y) {
        let G = y.getChild("let"), K = y.getChild("in");
        return !G || !K ? null : {
          from: G.to,
          to: K.from
        };
      }
    }),
    /* @__PURE__ */ styleTags({
      Identifier: tags.propertyName,
      Boolean: tags.bool,
      String: tags.string,
      IndentedString: tags.string,
      LineComment: tags.lineComment,
      BlockComment: tags.blockComment,
      Float: tags.float,
      Integer: tags.integer,
      Null: tags.null,
      URI: tags.url,
      SPath: tags.literal,
      Path: tags.literal,
      "( )": tags.paren,
      "{ }": tags.brace,
      "[ ]": tags.squareBracket,
      "if then else": tags.controlKeyword,
      "import with let in rec builtins inherit assert or": tags.keyword
    })
  ] }),
  languageData: {
    commentTokens: {
      line: "#",
      block: {
        open: "/*",
        close: "*/"
      }
    },
    closeBrackets: { brackets: [
      "(",
      "[",
      "{",
      "''",
      '"'
    ] },
    indentOnInput: /^\s*(in|\}|\)|\])$/
  }
}), snippets = [/* @__PURE__ */ snippetCompletion("let ${binds} in ${expression}", {
  label: "let",
  detail: "Let ... in statement",
  type: "keyword"
}), /* @__PURE__ */ snippetCompletion("with ${expression}; ${expression}", {
  label: "with",
  detail: "With statement",
  type: "keyword"
})];
function nix() {
  return new LanguageSupport(nixLanguage, nixLanguage.data.of({ autocomplete: ifNotIn([
    "LineComment",
    "BlockComment",
    "String",
    "IndentedString"
  ], completeFromList(snippets)) }));
}
var scriptText = 145, StartCloseScriptTag = 1, styleText = 146, StartCloseStyleTag = 2, textareaText = 147, StartCloseTextareaTag = 3, StartTag = 4, StartScriptTag = 5, StartStyleTag = 6, StartTextareaTag = 7, StartSelfClosingTag = 8, StartCloseTag = 9, MismatchedStartCloseTag = 11, missingCloseTag = 148, IncompleteCloseTag = 12, commentContent$1 = 149, LongExpression = 13, ShortExpression = 14, Element = 67, ScriptText = 110, StyleText = 113, TextareaText = 116, OpenTag = 118, selfClosers = {
  area: true,
  base: true,
  br: true,
  col: true,
  command: true,
  embed: true,
  frame: true,
  hr: true,
  img: true,
  input: true,
  keygen: true,
  link: true,
  meta: true,
  param: true,
  source: true,
  track: true,
  wbr: true,
  menuitem: true
}, implicitlyClosed = {
  dd: true,
  li: true,
  optgroup: true,
  option: true,
  p: true,
  rp: true,
  rt: true,
  tbody: true,
  td: true,
  tfoot: true,
  th: true,
  tr: true
}, closeOnOpen = {
  dd: {
    dd: true,
    dt: true
  },
  dt: {
    dd: true,
    dt: true
  },
  li: { li: true },
  option: {
    option: true,
    optgroup: true
  },
  optgroup: { optgroup: true },
  p: {
    address: true,
    article: true,
    aside: true,
    blockquote: true,
    dir: true,
    div: true,
    dl: true,
    fieldset: true,
    footer: true,
    form: true,
    h1: true,
    h2: true,
    h3: true,
    h4: true,
    h5: true,
    h6: true,
    header: true,
    hgroup: true,
    hr: true,
    menu: true,
    nav: true,
    ol: true,
    p: true,
    pre: true,
    section: true,
    table: true,
    ul: true
  },
  rp: {
    rp: true,
    rt: true
  },
  rt: {
    rp: true,
    rt: true
  },
  tbody: {
    tbody: true,
    tfoot: true
  },
  td: {
    td: true,
    th: true
  },
  tfoot: { tbody: true },
  th: {
    td: true,
    th: true
  },
  thead: {
    tbody: true,
    tfoot: true
  },
  tr: { tr: true }
};
function nameChar(y) {
  return y == 45 || y == 46 || y == 58 || y >= 65 && y <= 90 || y == 95 || y >= 97 && y <= 122 || y >= 161;
}
function isSpace(y) {
  return y == 9 || y == 10 || y == 13 || y == 32;
}
var cachedName = null, cachedInput = null, cachedPos = 0;
function tagNameAfter(y, G) {
  let K = y.pos + G;
  if (cachedPos == K && cachedInput == y) return cachedName;
  let J = y.peek(G);
  for (; isSpace(J); ) J = y.peek(++G);
  let Y = "";
  for (; nameChar(J); ) Y += String.fromCharCode(J), J = y.peek(++G);
  return cachedInput = y, cachedPos = K, cachedName = Y ? Y.toLowerCase() : J == question || J == bang ? void 0 : null;
}
var lessThan = 60, greaterThan$1 = 62, slash$1 = 47, question = 63, bang = 33;
function ElementContext(y, G) {
  this.name = y, this.parent = G, this.hash = G ? G.hash : 0;
  for (let G2 = 0; G2 < y.length; G2++) this.hash += (this.hash << 4) + y.charCodeAt(G2) + (y.charCodeAt(G2) << 8);
}
var startTagTerms = [
  StartTag,
  StartSelfClosingTag,
  StartScriptTag,
  StartStyleTag,
  StartTextareaTag
], elementContext = /* @__PURE__ */ new ContextTracker({
  start: null,
  shift(y, G, K, J) {
    return startTagTerms.indexOf(G) > -1 ? new ElementContext(tagNameAfter(J, 1) || "", y) : y;
  },
  reduce(y, G) {
    return G == Element && y ? y.parent : y;
  },
  reuse(y, G, K, J) {
    let Y = G.type.id;
    return Y == StartTag || Y == OpenTag ? new ElementContext(tagNameAfter(J, 1) || "", y) : y;
  },
  hash(y) {
    return y ? y.hash : 0;
  },
  strict: false
}), tagStart = /* @__PURE__ */ new ExternalTokenizer((y, G) => {
  if (y.next != lessThan) {
    y.next < 0 && G.context && y.acceptToken(missingCloseTag);
    return;
  }
  y.advance();
  let K = y.next == slash$1;
  K && y.advance();
  let J = tagNameAfter(y, 0);
  if (J === void 0) return;
  if (!J) return y.acceptToken(K ? IncompleteCloseTag : StartTag);
  let Y = G.context ? G.context.name : null;
  if (K) {
    if (J == Y) return y.acceptToken(StartCloseTag);
    if (Y && implicitlyClosed[Y]) return y.acceptToken(missingCloseTag, -2);
    for (let y2 = G.context; y2; y2 = y2.parent) if (y2.name == J) return;
    y.acceptToken(MismatchedStartCloseTag);
  } else {
    if (J == "script") return y.acceptToken(StartScriptTag);
    if (J == "style") return y.acceptToken(StartStyleTag);
    if (J == "textarea") return y.acceptToken(StartTextareaTag);
    if (selfClosers.hasOwnProperty(J)) return y.acceptToken(StartSelfClosingTag);
    Y && closeOnOpen[Y] && closeOnOpen[Y][J] ? y.acceptToken(missingCloseTag, -1) : y.acceptToken(StartTag);
  }
}, { contextual: true });
function contentTokenizer(y, G, K) {
  let J = 2 + y.length;
  return new ExternalTokenizer((Y) => {
    for (let X = 0, Z = 0, Q = 0; ; Q++) {
      if (Y.next < 0) {
        Q && Y.acceptToken(G);
        break;
      }
      if (X == 0 && Y.next == lessThan || X == 1 && Y.next == slash$1 || X >= 2 && X < J && Y.next == y.charCodeAt(X - 2)) X++, Z++;
      else if ((X == 2 || X == J) && isSpace(Y.next)) Z++;
      else if (X == J && Y.next == greaterThan$1) {
        Q > Z ? Y.acceptToken(G, -Z) : Y.acceptToken(K, -(Z - 2));
        break;
      } else if ((Y.next == 10 || Y.next == 13) && Q) {
        Y.acceptToken(G, 1);
        break;
      } else X = Z = 0;
      Y.advance();
    }
  });
}
var scriptTokens = /* @__PURE__ */ contentTokenizer("script", scriptText, StartCloseScriptTag), styleTokens = /* @__PURE__ */ contentTokenizer("style", styleText, StartCloseStyleTag), textareaTokens = /* @__PURE__ */ contentTokenizer("textarea", textareaText, StartCloseTextareaTag), space = [
  9,
  10,
  11,
  12,
  13,
  32,
  133,
  160,
  5760,
  8192,
  8193,
  8194,
  8195,
  8196,
  8197,
  8198,
  8199,
  8200,
  8201,
  8202,
  8232,
  8233,
  8239,
  8287,
  12288
], parenOpen = 40, parenClose = 41, squareOpen = 91, squareClose = 93, curlyOpen = 123, curlyClose = 125, comma = 44, colon = 58, hash = 35, at = 64, slash = 47, greaterThan = 62, dash = 45, quoteDouble = 34, quoteSingle = 39, backslash = 92, newline = 10, asterisk = 42, tick = 96, prefixes = [
  colon,
  hash,
  at,
  slash
], commentContent = /* @__PURE__ */ new ExternalTokenizer((y) => {
  for (let G = 0, K = 0; ; K++) {
    if (y.next < 0) {
      K && y.acceptToken(commentContent$1);
      break;
    }
    if (y.next == dash) G++;
    else if (y.next == greaterThan && G >= 2) {
      K > 3 && y.acceptToken(commentContent$1, -2);
      break;
    } else G = 0;
    y.advance();
  }
});
function createStringHandler(y) {
  let G = false, K = null, J = false;
  return () => G ? J ? (J = false, true) : y.next === backslash ? (J = true, true) : K === "double" && y.next === quoteDouble || K === "single" && y.next === quoteSingle || K === "template" && y.next === tick ? (G = false, K = null, true) : true : y.next === quoteDouble ? (G = true, K = "double", true) : y.next === quoteSingle ? (G = true, K = "single", true) : y.next === tick ? (G = true, K = "template", true) : false;
}
function createCommentHandler(y) {
  let G = false, K = false;
  return () => G ? (y.next === newline && (G = false), true) : K ? (y.next === asterisk && y.peek(1) === slash && (K = false), true) : y.next === slash && y.peek(1) === slash ? (G = true, true) : y.next === slash && y.peek(1) === asterisk ? (K = true, true) : false;
}
var longExpression = /* @__PURE__ */ new ExternalTokenizer((y) => {
  if (prefixes.includes(y.next)) return;
  let G = createCommentHandler(y), K = createStringHandler(y), J = [], Y = (y2) => {
    let G2 = J.lastIndexOf(y2);
    if (G2 !== -1) for (; J.length > G2; ) J.pop();
  };
  for (let X = 0; ; X++) {
    if (y.next < 0) {
      X > 0 && y.acceptToken(LongExpression);
      break;
    }
    if (G() || K()) {
      y.advance();
      continue;
    }
    if (J.length === 0 && (y.next === curlyClose || y.next === parenClose || y.next === squareClose)) {
      y.acceptToken(LongExpression);
      break;
    }
    switch (y.next) {
      case parenOpen:
        J.push("(");
        break;
      case parenClose:
        Y("(");
        break;
      case squareOpen:
        J.push("[");
        break;
      case squareClose:
        Y("[");
        break;
      case curlyOpen:
        J.push("{");
        break;
      case curlyClose:
        Y("{");
        break;
    }
    y.advance();
  }
}), shortExpression = /* @__PURE__ */ new ExternalTokenizer((y) => {
  if (prefixes.includes(y.peek(0))) return;
  let G = createCommentHandler(y), K = createStringHandler(y), J = [], Y = (y2) => {
    let G2 = J.lastIndexOf(y2);
    if (G2 !== -1) for (; J.length > G2; ) J.pop();
  };
  for (let X = 0; ; X++) {
    if (y.next < 0) {
      X > 0 && y.acceptToken(ShortExpression);
      break;
    }
    if (G() || K()) {
      y.advance();
      continue;
    }
    if (J.length === 0 && (y.next === curlyClose || y.next === parenClose || y.next === squareClose || y.next === comma)) {
      y.acceptToken(ShortExpression);
      break;
    }
    switch (y.next) {
      case parenOpen:
        J.push("(");
        break;
      case parenClose:
        Y("(");
        break;
      case squareOpen:
        J.push("[");
        break;
      case squareClose:
        Y("[");
        break;
      case curlyOpen:
        J.push("{");
        break;
      case curlyClose:
        Y("{");
        break;
    }
    if (X !== 0 && J.length === 0 && space.includes(y.next)) {
      y.acceptToken(ShortExpression);
      break;
    }
    y.advance();
  }
}), svelteHighlighting = /* @__PURE__ */ styleTags({
  "Text RawText": tags.content,
  "StartTag StartCloseTag SelfClosingEndTag EndTag": tags.angleBracket,
  TagName: tags.tagName,
  "MismatchedCloseTag/TagName": [tags.tagName, tags.invalid],
  AttributeName: tags.attributeName,
  UnquotedAttributeValue: tags.attributeValue,
  "DoubleQuote SingleQuote AttributeValueContent": tags.attributeValue,
  Is: tags.definitionOperator,
  "EntityReference CharacterReference": tags.character,
  Comment: tags.blockComment,
  ProcessingInst: tags.processingInstruction,
  DoctypeDecl: tags.documentMeta,
  "{ }": tags.bracket,
  "[ ]": tags.squareBracket,
  "( )": tags.paren,
  "| , :": tags.punctuation,
  "...": tags.derefOperator,
  ComponentName: tags.className,
  SvelteElementNamespace: tags.namespace,
  SvelteElementType: tags.tagName,
  StyleAttributeName: tags.propertyName,
  BlockType: tags.controlKeyword,
  BlockPrefix: tags.typeOperator,
  "UnknownBlock/BlockType": tags.invalid,
  UnknownBlockContent: tags.invalid,
  "if then catch": tags.controlKeyword,
  as: tags.definitionOperator,
  Variable: tags.variableName,
  Modifier: tags.modifier,
  DirectlyInterpolatedAttributeValue: tags.attributeValue,
  "DirectiveOn/DirectiveName": tags.controlKeyword,
  "DirectiveOn/DirectiveTarget": tags.typeName,
  "DirectiveUse/DirectiveName": tags.controlKeyword,
  "DirectiveUse/DirectiveTarget": /* @__PURE__ */ tags.function(tags.variableName),
  "DirectiveBind/DirectiveName": tags.controlKeyword,
  "DirectiveBind/DirectiveTarget": tags.variableName,
  "DirectiveLet/DirectiveName": tags.definitionKeyword,
  "DirectiveLet/DirectiveTarget": /* @__PURE__ */ tags.definition(tags.variableName),
  "DirectiveTransition/DirectiveName": tags.operatorKeyword,
  "DirectiveTransition/DirectiveTarget": /* @__PURE__ */ tags.function(tags.variableName),
  "DirectiveIn/DirectiveName": tags.operatorKeyword,
  "DirectiveIn/DirectiveTarget": /* @__PURE__ */ tags.function(tags.variableName),
  "DirectiveOut/DirectiveName": tags.operatorKeyword,
  "DirectiveOut/DirectiveTarget": /* @__PURE__ */ tags.function(tags.variableName),
  "DirectiveAnimate/DirectiveName": tags.operatorKeyword,
  "DirectiveAnimate/DirectiveTarget": /* @__PURE__ */ tags.function(tags.variableName),
  "DirectiveClass/DirectiveName": tags.attributeName,
  "DirectiveClass/DirectiveTarget": tags.variableName,
  "DirectiveStyle/DirectiveName": tags.attributeName,
  "DirectiveStyle/DirectiveTarget": tags.propertyName
}), spec_BlockPrefix = {
  __proto__: null,
  "#": 41,
  ":": 51,
  "/": 59,
  "@": 109
}, spec_BlockType = {
  __proto__: null,
  if: 44,
  else: 52,
  each: 64,
  await: 82,
  then: 90,
  catch: 94,
  key: 102,
  html: 110,
  debug: 114,
  const: 118
}, spec_identifier = {
  __proto__: null,
  if: 54,
  as: 66,
  then: 84,
  catch: 86
}, spec_AttributeName = {
  __proto__: null,
  on: 313,
  bind: 317,
  let: 319,
  class: 321,
  style: 323,
  use: 325,
  transition: 327,
  in: 329,
  out: 331,
  animate: 333
}, spec_TagName = {
  __proto__: null,
  svelte: 243
}, parser$2 = /* @__PURE__ */ LRParser.deserialize({
  version: 14,
  states: "DxQVO#|OOO!ZO#|O'#ClO#[O#|O'#CzO$]O#|O'#DTO%^O#|O'#D_O&_Q'[O'#DjO&mQ&jO'#DrO&rQ&jO'#EpO&wQ&jO'#EsO&|Q&jO'#EvO'XQ&jO'#E|O'^OXO'#DqO'iOYO'#DqO'tO[O'#DqO)TO#|O'#DqOOOW'#Dq'#DqO)[O&zO'#FOO&|Q&jO'#FQO&|Q&jO'#FROOOW'#Fj'#FjOOOW'#FT'#FTQVO#|OOOOOW'#FU'#FUO!ZO#|O,59WOOOW,59W,59WO)uQ'[O'#DjO#[O#|O,59fOOOW,59f,59fO)|Q'[O'#DjOOOW'#FV'#FVO$]O#|O,59oOOOW,59o,59oO*fQ'[O'#DjOOOW'#FW'#FWO%^O#|O,59yOOOW,59y,59yO*mQ'[O'#DjO+OQ&jO,5:UO+TQ,UO,5:VO+YQ,UO,59XO+hQ,UO,59}O,nQ7[O,5:^O,uQ7[O,5;[O,|Q7[O,5;_O-TO,UO'#ExOOQO'#F|'#F|O-YQ7[O,5;bO-dQ7[O,5;hOOOX'#F^'#F^O-kOXO'#EnO-vOXO,5:]OOOY'#F_'#F_O.OOYO'#EqO.ZOYO,5:]OOO['#F`'#F`O.cO[O'#EtO.nO[O,5:]O.vO#|O,5:]O&|Q&jO'#E{OOOW,5:],5:]OOO`'#Fa'#FaO.}O&zO,5;jOOOW,5;j,5;jO/VQ,UO,5;lO/[Q,UO,5;mOOOW-E9R-E9ROOOW-E9S-E9SOOOW1G.r1G.rO/aQ,UO,59`O/fQ,UO,59dOOOW1G/Q1G/QO/kQ,UO,59nOOOW-E9T-E9TOOOW1G/Z1G/ZO/pQ,UO,59tO/xQ,UO,59xOOOW-E9U-E9UOOOW1G/e1G/eO/}Q,UO,59|OOOW1G/p1G/pO0SQMhO1G/qO0[Q'[O1G.sO0aQ'|O1G/RO0fQ'|O1G/[O0kQ'[O1G/fO0pQ'[O1G/iO0uQ!LQO1G/lO0zQ'[O1G/nO1PQ$ISO'#DtOOOO'#Dz'#DzO1[O,UO'#DyOOOO'#EO'#EOO1aO,UO'#D}OOOO'#EQ'#EQO1fO,UO'#EPOOOO'#ES'#ESO1kO,UO'#EROOOO'#EU'#EUO1pO,UO'#ETOOOO'#EW'#EWO1uO,UO'#EVOOOO'#EY'#EYO1zO,UO'#EXOOOO'#E['#E[O2PO,UO'#EZOOOO'#E^'#E^O2UO,UO'#E]OOOO'#E`'#E`O2ZO,UO'#E_O2`Q7[O'#DxO3gQ7[O'#EjO4kQ7[O'#ElOOQO'#Fl'#FlOOQO'#FY'#FYO5rQ7[O1G/xOOOX1G/x1G/xOOQO'#Fm'#FmO5yQ7[O1G0vOOOY1G0v1G0vO6QQ7[O1G0yOOO[1G0y1G0yO6XO(CWO,5;dO6^Q7[O1G0|OOOW1G0|1G0|OOOW1G1S1G1SO6hQ7[O1G1SOOOX-E9[-E9[O6oQ&jO'#EoOOOW1G/w1G/wOOOY-E9]-E9]O6tQ&jO'#ErOOO[-E9^-E9^O6yQ&jO'#EuO7OQ,UO,5;gOOO`-E9_-E9_OOOW1G1U1G1UOOOW1G1W1G1WOOOW1G1X1G1XP)dQ'[O'#DjO7TQ$ISO1G.zO7]Q&jO1G/OO7bQ&jO1G/YP*TQ'[O'#DjO7gQ!LQO1G/`O7oQ!LQO1G/bO7wQ&jO1G/dO7|Q&jO1G/hOOOW7+%]7+%]O8RQ&jO7+%]O8WQ&jO7+$_O8]Q$ISO7+$mO8bQ$ISO7+$vO8mQ&jO7+%QO8rQ&jO7+%TO8wQ&jO7+%WO9PQ&jO7+%YOOQO'#Du'#DuOOQO,5:`,5:`O9UQ&jO,5:`O9ZQ'[O,5:bO9`O07`O,5:eO9eO07`O,5:iO9jO07`O,5:kO9oO07`O,5:mO9tO07`O,5:oO9yO07`O,5:qO:OO07`O,5:sO:TO07`O,5:uO:YO07`O,5:wO:_O07`O,5:yO:dQ?MpO'#FZO:iQ7[O,5:dO;pQ!0LbO,5:dO<OQ!0LbO,5;UO<^Q7[O,5;WO=eQ!0LbO,5;WOOQO-E9W-E9WOOOX7+%d7+%dOOOY7+&b7+&bOOO[7+&e7+&eOOQO1G1O1G1OOOOW7+&h7+&hOOOW7+&n7+&nO=sQ,UO,5;ZO=xQ,UO,5;^O=}Q,UO,5;aOOOW1G1R1G1ROOOW7+$f7+$fO>SQ'[O7+$fOOOW7+$j7+$jOOOW7+$t7+$tOOOW7+$z7+$zO>XQ&jO7+$zOOOW7+$|7+$|O>^Q&jO7+$|OOOW7+%O7+%OOOOW7+%S7+%SOOOW<<Hw<<HwOOOW<<Gy<<GyO>cQ'|O<<HXOOOW<<Hb<<HbO>hQ'|O<<HbOOOW<<Hl<<HlOOOW<<Ho<<HoO>mQ!LQO'#FXO>rQ&jO<<HrOOOW<<Hr<<HrOOOW<<Ht<<HtOOQO1G/z1G/zO>zQ&jO1G/|OOQO1G0P1G0POOQO1G0T1G0TOOQO1G0V1G0VOOQO1G0X1G0XOOQO1G0Z1G0ZOOQO1G0]1G0]OOQO1G0_1G0_OOQO1G0a1G0aOOQO1G0c1G0cOOQO1G0e1G0eOOQO,5;u,5;uOOQO-E9X-E9XO?PQ!0LbO1G0OO?_Q'[O'#DjOOQO'#Ed'#EdO?uO#@ItO'#EdO@_O&2DjO'#EdOOQO1G0O1G0OOOQO1G0p1G0pO@fQ!0LbO1G0rOOQO1G0r1G0rOOOW1G0u1G0uOOOW1G0x1G0xOOOW1G0{1G0{O@tQ&jO<<HQOOOW<<Hf<<HfOOOW<<Hh<<HhO@yQ&jOAN=sOAUQ&jOAN=|OOQO,5;s,5;sOOQO-E9V-E9VOOOWAN>^AN>^OOQO7+%h7+%hOOQO7+%j7+%jOOOO'#Fz'#FzOOOO'#F['#F[OAZO#@ItO'#EfOOQO,5;O,5;OOAbO&jO,5;OOOOO'#F]'#F]OAgO&2DjO'#EhOAnO&jO,5;OOOQO7+&^7+&^OOOWAN=lAN=lOOOWG23_G23_OAsQ'[OG23_OAxQ!LQOG23_OOOWG23hG23hOOOO-E9Y-E9YOOQO1G0j1G0jOOOO-E9Z-E9ZOBTQ&jOLD(yOOOWLD(yLD(yOBYQ'[OLD(yOB_Q&jOLD(yOBgQ&jO!$'LeOBlQ&jO!$'LeOOOW!$'Le!$'LeOBqQ'[O!$'LeOOOW!)9BP!)9BPOBvQ&jO!)9BPOB{Q&jO!)9BPOOOW!.K7k!.K7kOCQQ&jO!.K7kOOOW!4/-V!4/-V",
  stateData: "Cd~O$]OS~OSXOTUOUVOVWOWYOYbOZaO[cObTO!acO!bcO!ccO!dcO#scO#vdO$q`O~OSXOTUOUVOVWOWYOYbOZaO[cObiO!acO!bcO!ccO!dcO#scO$q`O~OSXOTUOUVOVWOWYOYbOZaO[cOblO!acO!bcO!ccO!dcO#scO$q`O~OSXOTUOUVOVWOWYOYbOZaO[cObpO!acO!bcO!ccO!dcO#scO$q`O~OSXOTUOUVOVWOWYOYbOZaO[cObtO!acO!bcO!ccO!dcO#scO$q`O~O]uOcvOdwO!WxO~O!gyO~O!gzO~O!g{O~O!g}O#k}O#m|O~O!g!PO~O$V!QOP#bP$Y#bP~O$W!TOQ#eP$Y#eP~O$X!WOR#hP$Y#hP~OSXOTUOUVOVWOWYOX![OYbOZaO[cObTO!acO!bcO!ccO!dcO#scO$q`O~O$Y!]O~P(PO$Z!^O$r!`O~O]uOcvOdwOi!fO!WxO~Om!gO~P)dOm!iO~P)dO]uOcvOdwOi!lO!WxO~Om!mO~P*TO]uOcvOdwOm!pO!WxO~Og!qO~Oe!rO~Of!sOp!tOy!uO!T!vO~O!X!wO!Z!xO!]!yO~Ob!zO!o#cO#_#bO$b!{O$d!}O$e#PO$f#RO$g#TO$h#VO$i#XO$j#ZO$k#]O$l#_O~O#a#gO~P+sO#a#jO~P+sO#a#lO~P+sO$c#mO~O#a#oO#q#pO~P+sO#a#pO~P+sO$V!QOP#bX$Y#bX~OP#sO$Y#tO~O$W!TOQ#eX$Y#eX~OQ#vO$Y#tO~O$X!WOR#hX$Y#hX~OR#xO$Y#tO~O$Y#tO~P(PO$Z!^O$r#{O~O#a#|O~O#a#}O~Oj$PO~Of$QO~Op$RO~O}$TO!P$UO~Oy$VO~O!T$WO~Og$XO!`$YO~O]$ZO~O^$[O~O^$]O~O]$^O~O]$_O~Ou$`O~O]$aO~Og$cO!k$eO$_$bO~O$c$fO~O$c$gO~O$c$hO~O$c$iO~O$c$jO~O$c$kO~O$c$lO~O$c$mO~O$c$nO~O$c$oO~O#T$pO#V$rOb!lX!o!lX#_!lX#a!lX$b!lX$d!lX$e!lX$f!lX$g!lX$h!lX$i!lX$j!lX$k!lX$l!lX#q!lX~O#V$sOb#^X!o#^X#_#^X#a#^X$b#^X$d#^X$e#^X$f#^X$g#^X$h#^X$i#^X$j#^X$k#^X$l#^X#q#^X~O#T$pO#V$uOb#`X!o#`X#_#`X#a#`X$b#`X$d#`X$e#`X$f#`X$g#`X$h#`X$i#`X$j#`X$k#`X$l#`X#q#`X~O#a$wO~P+sO#a$xO~P+sO#a$yO~P+sO#n$zO~O#a${O#q$|O~P+sO#a$|O~P+sO!g$}O~O!g%OO~O!g%PO~O#a%QO~Og%ROk%SO~Og%TO~Og%UO~Og%VOu%WO~Og%XOu%YO~Og%ZO~Og%[O~Og%]O~Og%^O~Oq%_O~Og%`Oz%aO{%aO~Og%bO~Og%cO~Og%fOt%dO~Og%gO~Og%hO~O]%iO~O!p%jO~O!p%kO~O!p%lO~O!p%mO~O!p%nO~O!p%oO~O!p%pO~O!p%qO~O!p%rO~O!p%sO~O#U%tO~O#T$pO#V%vOb!la!o!la#_!la#a!la$b!la$d!la$e!la$f!la$g!la$h!la$i!la$j!la$k!la$l!la#q!la~Ob%wO#X%yO#Z%zO#]%{O~Ob%wO#X%yO#Z%zO#]%|O~O#T$pO#V%}Ob#`a!o#`a#_#`a#a#`a$b#`a$d#`a$e#`a$f#`a$g#`a$h#`a$i#`a$j#`a$k#`a$l#`a#q#`a~Ob%wO#X%yO#Z%zO#]&OO~O#a&PO~O#a&QO~O#a&RO~O]&SO~Og&TO~Og&UO~O^&VO~O^&WO~Ou&XO~Og&ZOt%dO~Og&[O~Ob%wO#X%yO#Z%zO#]&]O~O]uO~Ob%wO!b&^O!c&^O!d&^O$m&_O~O#X&aO~P?dOb%wO!b&^O!c&^O!d&^O$o&cO~O#Z&aO~P?|Ob%wO#X%yO#Z%zO#]&fO~Og&gO~Og&hOr&iOt&jO~Og&kO~O#X#YX~P?dO#X&mO~O#Z#[X~P?|O#Z&mO~O]&oO~Og&pOr&qOu&rO~Os&sO~O]&tO~Og&uOr&vO~Og&wO~Os&xO~O]&yO~Og&zO~Os&{O~Og&|O~O!`$]#q$q#s#v!c!b#_!o!d#a~",
  goto: "1T$qPPPPPPPPPPPPPPPP$r%QPPPPPP%`PPP%fP$r%lPPPPPP%z$r&QPPP&`P&`P&d$r&jP&x$rPP$rP$rP'O$rPPPPP$r'kP'y(V'yP'y(Y(fPP(Y(r(Y)O(Y)[(Y)h(Y)t(Y*Q(Y*^(Y*j(Y*vPPP+SP+cP+fP'yP'yP+i+l+o+},Q,T,c,f,iP,wPP,}-TP$rP$r$rP-c-i-s-y.T.Z.q.{/R/X/_/e/kPPPPPPPP/qP0V0cPPPPPPPPPPPP0oP0wicOPQRS^egjnr!ZiPOPQRS^egjnr!ZXfPQgjQhPR!egiQOPQRS^egjnr!ZQkQR!hjiROPQRS^egjnr!ZTmRnQoRR!kniSOPQRS^egjnr!ZQsSR!orhcOPQRS^egjnr!ZY%x$r$s$u%v%}X&^%y%z&`&diZOPQRS^egjnr!Ze#dyz{!O!P#f#i#k#n#qR$d!ze#hyz{!O!P#f#i#k#n#qe!|yz{!O!P#f#i#k#n#qe#Oyz{!O!P#f#i#k#n#qe#Qyz{!O!P#f#i#k#n#qe#Syz{!O!P#f#i#k#n#qe#Uyz{!O!P#f#i#k#n#qe#Wyz{!O!P#f#i#k#n#qe#Yyz{!O!P#f#i#k#n#qe#[yz{!O!P#f#i#k#n#qe#^yz{!O!P#f#i#k#n#qe#`yz{!O!P#f#i#k#n#qQ%{$rQ%|$sQ&O$uQ&]%vR&f%}R&b%yR&e%zR!SZR#t!Si[OPQRS^egjnr!ZR!V[R#t!Vi]OPQRS^egjnr!ZR!Y]R#t!Yi^OPQRS^egjnr!ZX}Xab![Q!]^R#t!Zi_OPQRS^egjnr!ZQeOR!ceQgPQjQT!dgjQnRR!jnQrSQ!Z^T!nr!ZQ%e$`R&Y%eQ#fyQ#izQ#k{Q#n!OQ#q!PZ$v#f#i#k#n#qQ$q#aQ$t#cT%u$q$tQ&`%yR&l&`Q&d%zR&n&dQ!RZR#r!RQ!U[R#u!UQ!X]R#w!XQ!_`R#z!_SdOeWfPQgjSmRnXqS^r!Ze#eyz{!O!P#f#i#k#n#qe#ayz{!O!P#f#i#k#n#qS&_%y&`T&c%z&dQ!OXQ!aaQ!bbR#y![",
  nodeNames: "\u26A0 StartCloseTag StartCloseTag StartCloseTag StartTag StartTag StartTag StartTag StartTag StartCloseTag StartCloseTag StartCloseTag IncompleteCloseTag LongExpression ShortExpression Document IfBlock IfBlockOpen { BlockPrefix BlockPrefix BlockType BlockType } ElseBlock BlockPrefix BlockType if IfBlockClose BlockPrefix EachBlock EachBlockOpen BlockType as ( ) , Variable EachBlockClose AwaitBlock AwaitBlockOpen BlockType then catch ThenBlock BlockType CatchBlock BlockType AwaitBlockClose KeyBlock KeyBlockOpen BlockType KeyBlockClose RawHTMLBlock BlockPrefix BlockType DebugBlock BlockType ConstBlock BlockType Interpolation UnknownBlock UnknownBlockContent Text EntityReference CharacterReference InvalidEntity Element OpenTag TagName DirectlyInterpolatedAttribute DirectlyInterpolatedAttributeValue SpreadInterpolatedAttribute ... Directive DirectiveOn DirectiveName AttributeName DirectiveTarget DirectiveBind DirectiveName DirectiveLet DirectiveName DirectiveClass DirectiveName DirectiveStyle DirectiveName DirectiveUse DirectiveName DirectiveTransition DirectiveName DirectiveIn DirectiveName DirectiveOut DirectiveName DirectiveAnimate DirectiveName | Modifier Is AttributeValue DoubleQuote AttributeValueContent SingleQuote AttributeValueContent UnquotedAttributeValue StyleAttribute StyleAttributeName Attribute EndTag ScriptText CloseTag OpenTag StyleText CloseTag OpenTag TextareaText CloseTag OpenTag ComponentName SvelteElementName SvelteElementNamespace SvelteElementType CloseTag SelfClosingTag SelfClosingEndTag Comment ProcessingInst MismatchedCloseTag CloseTag DoctypeDecl",
  maxTerm: 172,
  context: elementContext,
  nodeProps: [
    [
      "closedBy",
      -10,
      1,
      2,
      3,
      5,
      6,
      7,
      8,
      9,
      10,
      11,
      "EndTag",
      4,
      "EndTag SelfClosingEndTag",
      17,
      "IfBlockClose",
      18,
      "}",
      31,
      "EachBlockClose",
      34,
      "(",
      40,
      "AwaitBlockClose",
      48,
      "AwaitBlockOpen",
      50,
      "KeyBlockClose",
      -4,
      68,
      112,
      115,
      118,
      "CloseTag",
      101,
      '"',
      103,
      "'"
    ],
    [
      "group",
      -10,
      12,
      60,
      64,
      65,
      66,
      67,
      126,
      127,
      128,
      129,
      "Entity",
      -4,
      16,
      30,
      39,
      49,
      "Block Entity",
      -4,
      17,
      31,
      40,
      50,
      "BlockOpen",
      -3,
      24,
      44,
      46,
      "BlockInline",
      -4,
      28,
      38,
      48,
      52,
      "BlockClose",
      -4,
      53,
      56,
      58,
      61,
      "BlockInline Entity",
      63,
      "Entity TextContent",
      -3,
      110,
      113,
      116,
      "TextContent Entity"
    ],
    [
      "openedBy",
      23,
      "{",
      28,
      "IfBlockOpen",
      35,
      ")",
      38,
      "EachBlockOpen",
      52,
      "KeyBlockOpen",
      101,
      '"',
      103,
      "'",
      109,
      "StartTag StartCloseTag",
      -4,
      111,
      114,
      117,
      123,
      "OpenTag",
      125,
      "StartTag"
    ]
  ],
  propSources: [svelteHighlighting],
  skippedNodes: [0],
  repeatNodeCount: 13,
  tokenData: "&8h$IRR!dOX%aXY/TYZ/TZ[%a[]1{]^/T^p%apq/Tqr2yrsEastF_tuHxuv2yvw!)[wx#,nxy#-lyz#0Vz|2y|}#2p}!O#5Z!O!P#Kk!P!Q$%S!Q![2y![!]$'{!]!^2y!^!_$)u!_!`%'{!`!a%({!a!b2y!b!cF_!c!}%){!}#R2y#R#S%AU#S#T&%m#T#o&'m#o#p&1P#p#q&1d#q#r&3[#r#s2y#s$f%a$f$g2y$g%WHx%W%o%AU%o%pHx%p&a%AU&a&bHx&b1p%AU1p4UHx4U4d%AU4d4eHx4e$IS%AU$IS$I`Hx$I`$Ib%AU$Ib$KhHx$Kh%#t%AU%#t&/xHx&/x&Et%AU&Et&FVHx&FV;'S%AU;'S;:j&5p;:j;=`&5v<%l?&rHx?&r?Ah%AU?Ah?BY&5|?BY?Mn%AU?MnO&5|$3X%ng!aP#]7[$mMh$o!LQ!``OX'VXZ(wZ['V[^(w^p'Vpq(wqr'Vrs(wsv'Vvw*}wx(wx!^'V!^!_)q!_!a(w!a#S'V#S#T(w#T#o'V#o#p*}#p#q'V#q#r-b#r;'S'V;'S;=`.}<%lO'V7m'`g!aP#]7[!``OX'VXZ(wZ['V[^(w^p'Vpq(wqr'Vrs(wsv'Vvw*}wx(wx!^'V!^!_)q!_!a(w!a#S'V#S#T(w#T#o'V#o#p*}#p#q'V#q#r-b#r;'S'V;'S;=`.}<%lO'Va)OZ!aP!``Ov(wvw)qw!^(w!^!_)q!_#o(w#o#p)q#p#q(w#q#r*Y#r;'S(w;'S;=`*w<%lO(w`)vS!``O#q)q#r;'S)q;'S;=`*S<%lO)q`*VP;=`<%l)qP*_U!aPOv*Yw!^*Y!_#o*Y#p;'S*Y;'S;=`*q<%lO*YP*tP;=`<%l*Ya*zP;=`<%l(w7l+Uc#]7[!``OX*}XZ)qZ[*}[^)q^p*}pq)qqr*}rs)qsw*}wx)qx!^*}!^!a)q!a#S*}#S#T)q#T#q*}#q#r,a#r;'S*};'S;=`-[<%lO*}7[,fY#]7[OX,aZ[,a^p,aqr,asw,ax!^,a!a#S,a#T;'S,a;'S;=`-U<%lO,a7[-XP;=`<%l,a7l-_P;=`<%l*}7]-id!aP#]7[OX-bXZ*YZ[-b[^*Y^p-bpq*Yqr-brs*Ysv-bvw,awx*Yx!^-b!_!a*Y!a#S-b#S#T*Y#T#o-b#o#p,a#p;'S-b;'S;=`.w<%lO-b7].zP;=`<%l-b7m/QP;=`<%l'V$@q/bb!aP$mMh$o!LQ!``$]EUOX(wXY0jYZ0jZ](w]^0j^p(wpq0jqv(wvw)qw!^(w!^!_)q!_#o(w#o#p)q#p#q(w#q#r*Y#r;'S(w;'S;=`*w<%lO(wEV0sb!aP!``$]EUOX(wXY0jYZ0jZ](w]^0j^p(wpq0jqv(wvw)qw!^(w!^!_)q!_#o(w#o#p)q#p#q(w#q#r*Y#r;'S(w;'S;=`*w<%lO(w#J{2WZ!aP$mMh$o!LQ!``Ov(wvw)qw!^(w!^!_)q!_#o(w#o#p)q#p#q(w#q#r*Y#r;'S(w;'S;=`*w<%lO(w$DR3^p!p&j#U,U!aP#]7[$mMh$o!LQ!``!oWOX'VXZ(wZ['V[^(w^p'Vpq(wqr5brs(wsv5bvw7uwx(wx!P5b!P!Q'V!Q![5b![!]'V!]!^5b!^!_:Q!_!a(w!a#S5b#S#T>y#T#o5b#o#p*}#p#q'V#q#rBu#r#s5b#s$f'V$f;'S5b;'S;=`EZ<%l?Ah5b?Ah?BY'V?BY?Mn5b?MnO'VHg5qp!p&j#U,U!aP#]7[!``!oWOX'VXZ(wZ['V[^(w^p'Vpq(wqr5brs(wsv5bvw7uwx(wx!P5b!P!Q'V!Q![5b![!]'V!]!^5b!^!_:Q!_!a(w!a#S5b#S#T>y#T#o5b#o#p*}#p#q'V#q#rBu#r#s5b#s$f'V$f;'S5b;'S;=`EZ<%l?Ah5b?Ah?BY'V?BY?Mn5b?MnO'VHf8Sn!p&j#U,U#]7[!``!oWOX*}XZ)qZ[*}[^)q^p*}pq)qqr7urs)qsw7uwx)qx!P7u!P!Q*}!Q![7u![!]*}!]!^7u!^!_:Q!_!a)q!a#S7u#S#T:Q#T#o7u#o#q*}#q#r<y#r#s7u#s$f*}$f;'S7u;'S;=`>s<%l?Ah7u?Ah?BY*}?BY?Mn7u?MnO*}2Y:]f!p&j#U,U!``!oWOq)qqr:Qrs)qsw:Qwx)qx!P:Q!P!Q)q!Q![:Q![!])q!]!_:Q!_!a)q!a#o:Q#o#q)q#q#r;q#r#s:Q#s$f)q$f;'S:Q;'S;=`<s<%l?Ah:Q?Ah?BY)q?BY?Mn:Q?MnO)q1x;zZ!p&j#U,U!oWqr;qsw;qx!P;q!Q![;q!]!_;q!a#o;q#q#s;q$f;'S;q;'S;=`<m<%l?Ah;q?BY?Mn;q1x<pP;=`<%l;q2Y<vP;=`<%l:QHU=Ug!p&j#U,U#]7[!oWOX,aZ[,a^p,aqr<ysw<yx!P<y!P!Q,a!Q![<y![!],a!]!^<y!^!_;q!a#S<y#S#T;q#T#o<y#o#q,a#q#s<y#s$f,a$f;'S<y;'S;=`>m<%l?Ah<y?Ah?BY,a?BY?Mn<y?MnO,aHU>pP;=`<%l<yHf>vP;=`<%l7u2Z?Wi!p&j#U,U!aP!``!oWOq(wqr>yrs(wsv>yvw:Qwx(wx!P>y!P!Q(w!Q![>y![!](w!]!^>y!^!_:Q!_!a(w!a#o>y#o#p)q#p#q(w#q#r@u#r#s>y#s$f(w$f;'S>y;'S;=`Bo<%l?Ah>y?Ah?BY(w?BY?Mn>y?MnO(w1yAQg!p&j#U,U!aP!oWOq*Yqr@urs*Ysv@uvw;qwx*Yx!P@u!P!Q*Y!Q![@u![!]*Y!]!^@u!^!_;q!_!a*Y!a#o@u#p#q*Y#q#s@u#s$f*Y$f;'S@u;'S;=`Bi<%l?Ah@u?Ah?BY*Y?BY?Mn@u?MnO*Y1yBlP;=`<%l@u2ZBrP;=`<%l>yHVCSo!p&j#U,U!aP#]7[!oWOX-bXZ*YZ[-b[^*Y^p-bpq*YqrBurs*YsvBuvw<ywx*Yx!PBu!P!Q-b!Q![Bu![!]-b!]!^Bu!^!_;q!_!a*Y!a#SBu#S#T@u#T#oBu#o#p,a#p#q-b#q#sBu#s$f-b$f;'SBu;'S;=`ET<%l?AhBu?Ah?BY-b?BY?MnBu?MnO-bHVEWP;=`<%lBuHgE^P;=`<%l5b$3ZElZ#X!5v!aP$o!LQ!``Ov(wvw)qw!^(w!^!_)q!_#o(w#o#p)q#p#q(w#q#r*Y#r;'S(w;'S;=`*w<%lO(w$DTFtpcQ!p&j#U,U!aP#]7[$mMh$o!LQ!``!oWOX'VXZ(wZ['V[^(w^p'Vpq(wqr5brs(wsv5bvw7uwx(wx!P5b!P!Q'V!Q![5b![!]'V!]!^5b!^!_:Q!_!a(w!a#S5b#S#T>y#T#o5b#o#p*}#p#q'V#q#rBu#r#s5b#s$f'V$f;'S5b;'S;=`EZ<%l?Ah5b?Ah?BY'V?BY?Mn5b?MnO'V$FZIcweS!p&j#U,U!aP#]7[up$mMh$o!LQ$_!b!``!oWOX'VXZ(wZ['V[^(w^p'Vpq(wqr5brs(wst5btuK|uv5bvw7uwx(wx!O5b!O!PN|!P!Q'V!Q![K|![!]'V!]!^5b!^!_:Q!_!a(w!a!c5b!c!}K|!}#R5b#R#SK|#S#T>y#T#oK|#o#p*}#p#q'V#q#rBu#r#s5b#s$f'V$f$g5b$g;'SK|;'S;=`!&h<%l?AhK|?Ah?BY!&n?BY?MnK|?MnO!&nJoLcweS!p&j#U,U!aP#]7[up$_!b!``!oWOX'VXZ(wZ['V[^(w^p'Vpq(wqr5brs(wst5btuK|uv5bvw7uwx(wx!O5b!O!PN|!P!Q'V!Q![K|![!]'V!]!^5b!^!_:Q!_!a(w!a!c5b!c!}K|!}#R5b#R#SK|#S#T>y#T#oK|#o#p*}#p#q'V#q#rBu#r#s5b#s$f'V$f$g5b$g;'SK|;'S;=`!&h<%l?AhK|?Ah?BY!&n?BY?MnK|?MnO!&nIX! _w!p&j#U,U!aP#]7[up!``!oWOX'VXZ(wZ['V[^(w^p'Vpq(wqr5brs(wst5btuN|uv5bvw7uwx(wx!O5b!O!PN|!P!Q'V!Q![N|![!]'V!]!^5b!^!_:Q!_!a(w!a!c5b!c!}N|!}#R5b#R#SN|#S#T>y#T#oN|#o#p*}#p#q'V#q#rBu#r#s5b#s$f'V$f$g5b$g;'SN|;'S;=`!#x<%l?AhN|?Ah?BY!$O?BY?MnN|?MnO!$OIX!#{P;=`<%lN|8_!$Zq!aP#]7[up!``OX'VXZ(wZ['V[^(w^p'Vpq(wqr'Vrs(wst'Vtu!$Ouv'Vvw*}wx(wx!O'V!O!P!$O!P!Q'V!Q![!$O![!^'V!^!_)q!_!a(w!a!c'V!c!}!$O!}#R'V#R#S!$O#S#T(w#T#o!$O#o#p*}#p#q'V#q#r-b#r$g'V$g;'S!$O;'S;=`!&b<%lO!$O8_!&eP;=`<%l!$OJo!&kP;=`<%lK|9u!&}qeS!aP#]7[up$_!b!``OX'VXZ(wZ['V[^(w^p'Vpq(wqr'Vrs(wst'Vtu!&nuv'Vvw*}wx(wx!O'V!O!P!$O!P!Q'V!Q![!&n![!^'V!^!_)q!_!a(w!a!c'V!c!}!&n!}#R'V#R#S!&n#S#T(w#T#o!&n#o#p*}#p#q'V#q#r-b#r$g'V$g;'S!&n;'S;=`!)U<%lO!&n9u!)XP;=`<%l!&n$DR!)ko!p&j#U,U#]7[!``!oW!d#JkOX!+lXZ!-UZ[!+l[^!-U^p!+lpq)qqr!3Qrs!-Ust!B^tw!3Qwx!-Ux!P!3Q!P!Q!+l!Q![!3Q![!]!+l!]!^7u!^!_!7m!_!a!-U!a#S!3Q#S#T!7m#T#o!3Q#o#q!+l#q#r!>U#r#s!3Q#s$f!+l$f;'S!3Q;'S;=`!BW<%l?Ah!3Q?Ah?BY!+l?BY?Mn!3Q?MnO!+l$3X!+se#]7[!``OX!+lXZ!-UZ[!+l[^!-U^p!+lpq)qqr!+lrs!-Ust*}tw!+lwx!-Ux!]!+l!]!^!/[!^!a!-U!a#S!+l#S#T!-U#T#q!+l#q#r!0p#r;'S!+l;'S;=`!2z<%lO!+l#J{!-ZZ!``Op!-Upq)qqs!-Ust)qt!]!-U!]!^!-|!^#q!-U#q#r!.a#r;'S!-U;'S;=`!/U<%lO!-U#J{!.TS!``!b#JkO#q)q#r;'S)q;'S;=`*S<%lO)q#Jk!.dVOp!.aqs!.at!]!.a!]!^!.y!^;'S!.a;'S;=`!/O<%lO!.a#Jk!/OO!b#Jk#Jk!/RP;=`<%l!.a#J{!/XP;=`<%l!-U$3X!/ec#]7[!``!b#JkOX*}XZ)qZ[*}[^)q^p*}pq)qqr*}rs)qsw*}wx)qx!^*}!^!a)q!a#S*}#S#T)q#T#q*}#q#r,a#r;'S*};'S;=`-[<%lO*}$2w!0ub#]7[OX!0pXZ!.aZ[!0p[^!.a^p!0pqr!0prs!.ast,atw!0pwx!.ax!]!0p!]!^!1}!^!a!.a!a#S!0p#S#T!.a#T;'S!0p;'S;=`!2t<%lO!0p$2w!2UY#]7[!b#JkOX,aZ[,a^p,aqr,asw,ax!^,a!a#S,a#T;'S,a;'S;=`-U<%lO,a$2w!2wP;=`<%l!0p$3X!2}P;=`<%l!+l$DR!3_o!p&j#U,U#]7[!``!oWOX!+lXZ!-UZ[!+l[^!-U^p!+lpq)qqr!3Qrs!-Ust7utw!3Qwx!-Ux!P!3Q!P!Q!+l!Q![!3Q![!]!+l!]!^!5`!^!_!7m!_!a!-U!a#S!3Q#S#T!7m#T#o!3Q#o#q!+l#q#r!>U#r#s!3Q#s$f!+l$f;'S!3Q;'S;=`!BW<%l?Ah!3Q?Ah?BY!+l?BY?Mn!3Q?MnO!+l$DR!5on!p&j#U,U#]7[!``!b#Jk!oWOX*}XZ)qZ[*}[^)q^p*}pq)qqr7urs)qsw7uwx)qx!P7u!P!Q*}!Q![7u![!]*}!]!^7u!^!_:Q!_!a)q!a#S7u#S#T:Q#T#o7u#o#q*}#q#r<y#r#s7u#s$f*}$f;'S7u;'S;=`>s<%l?Ah7u?Ah?BY*}?BY?Mn7u?MnO*}$-u!7xi!p&j#U,U!``!oWOp!-Upq)qqr!7mrs!-Ust:Qtw!7mwx!-Ux!P!7m!P!Q!-U!Q![!7m![!]!-U!]!^!9g!^!_!7m!_!a!-U!a#o!7m#o#q!-U#q#r!;Y#r#s!7m#s$f!-U$f;'S!7m;'S;=`!>O<%l?Ah!7m?Ah?BY!-U?BY?Mn!7m?MnO!-U$-u!9tf!p&j#U,U!``!b#Jk!oWOq)qqr:Qrs)qsw:Qwx)qx!P:Q!P!Q)q!Q![:Q![!])q!]!_:Q!_!a)q!a#o:Q#o#q)q#q#r;q#r#s:Q#s$f)q$f;'S:Q;'S;=`<s<%l?Ah:Q?Ah?BY)q?BY?Mn:Q?MnO)q$-e!;cg!p&j#U,U!oWOp!.aqr!;Yrs!.ast;qtw!;Ywx!.ax!P!;Y!P!Q!.a!Q![!;Y![!]!.a!]!^!<z!^!_!;Y!_!a!.a!a#o!;Y#o#q!.a#q#s!;Y#s$f!.a$f;'S!;Y;'S;=`!=x<%l?Ah!;Y?Ah?BY!.a?BY?Mn!;Y?MnO!.a$-e!=VZ!p&j#U,U!b#Jk!oWqr;qsw;qx!P;q!Q![;q!]!_;q!a#o;q#q#s;q$f;'S;q;'S;=`<m<%l?Ah;q?BY?Mn;q$-e!={P;=`<%l!;Y$-u!>RP;=`<%l!7m$Cq!>am!p&j#U,U#]7[!oWOX!0pXZ!.aZ[!0p[^!.a^p!0pqr!>Urs!.ast<ytw!>Uwx!.ax!P!>U!P!Q!0p!Q![!>U![!]!0p!]!^!@[!^!_!;Y!_!a!.a!a#S!>U#S#T!;Y#T#o!>U#o#q!0p#q#s!>U#s$f!0p$f;'S!>U;'S;=`!BQ<%l?Ah!>U?Ah?BY!0p?BY?Mn!>U?MnO!0p$Cq!@ig!p&j#U,U#]7[!b#Jk!oWOX,aZ[,a^p,aqr<ysw<yx!P<y!P!Q,a!Q![<y![!],a!]!^<y!^!_;q!a#S<y#S#T;q#T#o<y#o#q,a#q#s<y#s$f,a$f;'S<y;'S;=`>m<%l?Ah<y?Ah?BY,a?BY?Mn<y?MnO,a$Cq!BTP;=`<%l!>U$DR!BZP;=`<%l!3Q$DR!Bkn!p&j#U,U#]7[!``!oWOX!DiXZ!FOZ[!Di[^!FO^p!Dipq)qqr!Knrs!FOsw!Knwx!FOx!P!Kn!P!Q!Di!Q![!Kn![!]!Di!]!^7u!^!_#!W!_!a!FO!a#S!Kn#S#T#!W#T#o!Kn#o#q!Di#q#r#(i#r#s!Kn#s$f!Di$f;'S!Kn;'S;=`#,h<%l?Ah!Kn?Ah?BY!Di?BY?Mn!Kn?MnO!Di$3X!Dpd#]7[!``OX!DiXZ!FOZ[!Di[^!FO^p!Dipq)qqr!Dirs!FOsw!Diwx!FOx!]!Di!]!^!G{!^!a!FO!a#S!Di#S#T!FO#T#q!Di#q#r!Ia#r;'S!Di;'S;=`!Kh<%lO!Di#J{!FTX!``Op!FOpq)qq!]!FO!]!^!Fp!^#q!FO#q#r!GT#r;'S!FO;'S;=`!Gu<%lO!FO#J{!FwS!``!c#JkO#q)q#r;'S)q;'S;=`*S<%lO)q#Jk!GWUOp!GTq!]!GT!]!^!Gj!^;'S!GT;'S;=`!Go<%lO!GT#Jk!GoO!c#Jk#Jk!GrP;=`<%l!GT#J{!GxP;=`<%l!FO$3X!HUc#]7[!``!c#JkOX*}XZ)qZ[*}[^)q^p*}pq)qqr*}rs)qsw*}wx)qx!^*}!^!a)q!a#S*}#S#T)q#T#q*}#q#r,a#r;'S*};'S;=`-[<%lO*}$2w!Ifa#]7[OX!IaXZ!GTZ[!Ia[^!GT^p!Iaqr!Iars!GTsw!Iawx!GTx!]!Ia!]!^!Jk!^!a!GT!a#S!Ia#S#T!GT#T;'S!Ia;'S;=`!Kb<%lO!Ia$2w!JrY#]7[!c#JkOX,aZ[,a^p,aqr,asw,ax!^,a!a#S,a#T;'S,a;'S;=`-U<%lO,a$2w!KeP;=`<%l!Ia$3X!KkP;=`<%l!Di$DR!K{n!p&j#U,U#]7[!``!oWOX!DiXZ!FOZ[!Di[^!FO^p!Dipq)qqr!Knrs!FOsw!Knwx!FOx!P!Kn!P!Q!Di!Q![!Kn![!]!Di!]!^!My!^!_#!W!_!a!FO!a#S!Kn#S#T#!W#T#o!Kn#o#q!Di#q#r#(i#r#s!Kn#s$f!Di$f;'S!Kn;'S;=`#,h<%l?Ah!Kn?Ah?BY!Di?BY?Mn!Kn?MnO!Di$DR!NYn!p&j#U,U#]7[!``!c#Jk!oWOX*}XZ)qZ[*}[^)q^p*}pq)qqr7urs)qsw7uwx)qx!P7u!P!Q*}!Q![7u![!]*}!]!^7u!^!_:Q!_!a)q!a#S7u#S#T:Q#T#o7u#o#q*}#q#r<y#r#s7u#s$f*}$f;'S7u;'S;=`>s<%l?Ah7u?Ah?BY*}?BY?Mn7u?MnO*}$-u#!ch!p&j#U,U!``!oWOp!FOpq)qqr#!Wrs!FOsw#!Wwx!FOx!P#!W!P!Q!FO!Q![#!W![!]!FO!]!^##}!^!_#!W!_!a!FO!a#o#!W#o#q!FO#q#r#%p#r#s#!W#s$f!FO$f;'S#!W;'S;=`#(c<%l?Ah#!W?Ah?BY!FO?BY?Mn#!W?MnO!FO$-u#$[f!p&j#U,U!``!c#Jk!oWOq)qqr:Qrs)qsw:Qwx)qx!P:Q!P!Q)q!Q![:Q![!])q!]!_:Q!_!a)q!a#o:Q#o#q)q#q#r;q#r#s:Q#s$f)q$f;'S:Q;'S;=`<s<%l?Ah:Q?Ah?BY)q?BY?Mn:Q?MnO)q$-e#%yf!p&j#U,U!oWOp!GTqr#%prs!GTsw#%pwx!GTx!P#%p!P!Q!GT!Q![#%p![!]!GT!]!^#'_!^!_#%p!_!a!GT!a#o#%p#o#q!GT#q#s#%p#s$f!GT$f;'S#%p;'S;=`#(]<%l?Ah#%p?Ah?BY!GT?BY?Mn#%p?MnO!GT$-e#'jZ!p&j#U,U!c#Jk!oWqr;qsw;qx!P;q!Q![;q!]!_;q!a#o;q#q#s;q$f;'S;q;'S;=`<m<%l?Ah;q?BY?Mn;q$-e#(`P;=`<%l#%p$-u#(fP;=`<%l#!W$Cq#(tl!p&j#U,U#]7[!oWOX!IaXZ!GTZ[!Ia[^!GT^p!Iaqr#(irs!GTsw#(iwx!GTx!P#(i!P!Q!Ia!Q![#(i![!]!Ia!]!^#*l!^!_#%p!_!a!GT!a#S#(i#S#T#%p#T#o#(i#o#q!Ia#q#s#(i#s$f!Ia$f;'S#(i;'S;=`#,b<%l?Ah#(i?Ah?BY!Ia?BY?Mn#(i?MnO!Ia$Cq#*yg!p&j#U,U#]7[!c#Jk!oWOX,aZ[,a^p,aqr<ysw<yx!P<y!P!Q,a!Q![<y![!],a!]!^<y!^!_;q!a#S<y#S#T;q#T#o<y#o#q,a#q#s<y#s$f,a$f;'S<y;'S;=`>m<%l?Ah<y?Ah?BY,a?BY?Mn<y?MnO,a$Cq#,eP;=`<%l#(i$DR#,kP;=`<%l!Kn$3Z#,yZ#Z#4`!aP$mMh!``Ov(wvw)qw!^(w!^!_)q!_#o(w#o#p)q#p#q(w#q#r*Y#r;'S(w;'S;=`*w<%lO(w$Du#.Rprr!p&j#U,U!aP#]7[$mMh$o!LQ!``!oWOX'VXZ(wZ['V[^(w^p'Vpq(wqr5brs(wsv5bvw7uwx(wx!P5b!P!Q'V!Q![5b![!]'V!]!^5b!^!_:Q!_!a(w!a#S5b#S#T>y#T#o5b#o#p*}#p#q'V#q#rBu#r#s5b#s$f'V$f;'S5b;'S;=`EZ<%l?Ah5b?Ah?BY'V?BY?Mn5b?MnO'V$DT#0lpsQ!p&j#U,U!aP#]7[$mMh$o!LQ!``!oWOX'VXZ(wZ['V[^(w^p'Vpq(wqr5brs(wsv5bvw7uwx(wx!P5b!P!Q'V!Q![5b![!]'V!]!^5b!^!_:Q!_!a(w!a#S5b#S#T>y#T#o5b#o#p*}#p#q'V#q#rBu#r#s5b#s$f'V$f;'S5b;'S;=`EZ<%l?Ah5b?Ah?BY'V?BY?Mn5b?MnO'V$DT#3VptQ!p&j#U,U!aP#]7[$mMh$o!LQ!``!oWOX'VXZ(wZ['V[^(w^p'Vpq(wqr5brs(wsv5bvw7uwx(wx!P5b!P!Q'V!Q![5b![!]'V!]!^5b!^!_:Q!_!a(w!a#S5b#S#T>y#T#o5b#o#p*}#p#q'V#q#rBu#r#s5b#s$f'V$f;'S5b;'S;=`EZ<%l?Ah5b?Ah?BY'V?BY?Mn5b?MnO'V$DT#5nr!p&j#U,U!aP#]7[$mMh$o!LQ!``!oWOX'VXZ(wZ['V[^(w^p'Vpq(wqr5brs(wsv5bvw7uwx(wx}5b}!O#7x!O!P5b!P!Q'V!Q![5b![!]'V!]!^5b!^!_:Q!_!a(w!a#S5b#S#T>y#T#o5b#o#p*}#p#q'V#q#rBu#r#s5b#s$f'V$f;'S5b;'S;=`EZ<%l?Ah5b?Ah?BY'V?BY?Mn5b?MnO'VHi#8Xq!p&j#U,U!aP#]7[!``!oWOX'VXZ(wZ['V[^(w^p'Vpq(wqr#:`rs(wsv#:`vw#<uwx(wx!P#:`!P!Q'V!Q![#:`![!]'V!]!^#:`!^!_#?S!_!`(w!`!a#Jo!a#S#:`#S#T#DR#T#o#:`#o#p*}#p#q'V#q#r#HR#r#s#:`#s$f'V$f;'S#:`;'S;=`#Ji<%l?Ah#:`?Ah?BY'V?BY?Mn#:`?MnO'VHg#:qp!p&j#U,U!aP#]7[!``#_W!oWOX'VXZ(wZ['V[^(w^p'Vpq(wqr#:`rs(wsv#:`vw#<uwx(wx!P#:`!P!Q'V!Q![#:`![!]'V!]!^#:`!^!_#?S!_!a(w!a#S#:`#S#T#DR#T#o#:`#o#p*}#p#q'V#q#r#HR#r#s#:`#s$f'V$f;'S#:`;'S;=`#Ji<%l?Ah#:`?Ah?BY'V?BY?Mn#:`?MnO'VHf#=Un!p&j#U,U#]7[!``#_W!oWOX*}XZ)qZ[*}[^)q^p*}pq)qqr#<urs)qsw#<uwx)qx!P#<u!P!Q*}!Q![#<u![!]*}!]!^#<u!^!_#?S!_!a)q!a#S#<u#S#T#?S#T#o#<u#o#q*}#q#r#BP#r#s#<u#s$f*}$f;'S#<u;'S;=`#C{<%l?Ah#<u?Ah?BY*}?BY?Mn#<u?MnO*}2Y#?af!p&j#U,U!``#_W!oWOq)qqr#?Srs)qsw#?Swx)qx!P#?S!P!Q)q!Q![#?S![!])q!]!_#?S!_!a)q!a#o#?S#o#q)q#q#r#@u#r#s#?S#s$f)q$f;'S#?S;'S;=`#Ay<%l?Ah#?S?Ah?BY)q?BY?Mn#?S?MnO)q1x#AQZ!p&j#U,U#_W!oWqr#@usw#@ux!P#@u!Q![#@u!]!_#@u!a#o#@u#q#s#@u$f;'S#@u;'S;=`#As<%l?Ah#@u?BY?Mn#@u1x#AvP;=`<%l#@u2Y#A|P;=`<%l#?SHU#B^g!p&j#U,U#]7[#_W!oWOX,aZ[,a^p,aqr#BPsw#BPx!P#BP!P!Q,a!Q![#BP![!],a!]!^#BP!^!_#@u!a#S#BP#S#T#@u#T#o#BP#o#q,a#q#s#BP#s$f,a$f;'S#BP;'S;=`#Cu<%l?Ah#BP?Ah?BY,a?BY?Mn#BP?MnO,aHU#CxP;=`<%l#BPHf#DOP;=`<%l#<u2Z#Dbi!p&j#U,U!aP!``#_W!oWOq(wqr#DRrs(wsv#DRvw#?Swx(wx!P#DR!P!Q(w!Q![#DR![!](w!]!^#DR!^!_#?S!_!a(w!a#o#DR#o#p)q#p#q(w#q#r#FP#r#s#DR#s$f(w$f;'S#DR;'S;=`#G{<%l?Ah#DR?Ah?BY(w?BY?Mn#DR?MnO(w1y#F^g!p&j#U,U!aP#_W!oWOq*Yqr#FPrs*Ysv#FPvw#@uwx*Yx!P#FP!P!Q*Y!Q![#FP![!]*Y!]!^#FP!^!_#@u!_!a*Y!a#o#FP#p#q*Y#q#s#FP#s$f*Y$f;'S#FP;'S;=`#Gu<%l?Ah#FP?Ah?BY*Y?BY?Mn#FP?MnO*Y1y#GxP;=`<%l#FP2Z#HOP;=`<%l#DRHV#Hbo!p&j#U,U!aP#]7[#_W!oWOX-bXZ*YZ[-b[^*Y^p-bpq*Yqr#HRrs*Ysv#HRvw#BPwx*Yx!P#HR!P!Q-b!Q![#HR![!]-b!]!^#HR!^!_#@u!_!a*Y!a#S#HR#S#T#FP#T#o#HR#o#p,a#p#q-b#q#s#HR#s$f-b$f;'S#HR;'S;=`#Jc<%l?Ah#HR?Ah?BY-b?BY?Mn#HR?MnO-bHV#JfP;=`<%l#HRHg#JlP;=`<%l#:`c#JxZ!aP$rQ!``Ov(wvw)qw!^(w!^!_)q!_#o(w#o#p)q#p#q(w#q#r*Y#r;'S(w;'S;=`*w<%lO(w$Ee#LOq!p&j#U,U!aP#]7[$mMh$o!LQ!``!oWOX'VXZ(wZ['V[^(w^p'Vpq(wqr5brs(wsv5bvw7uwx(wx!O5b!O!P#NV!P!Q'V!Q![5b![!]'V!]!^5b!^!_:Q!_!a(w!a#S5b#S#T>y#T#o5b#o#p*}#p#q'V#q#rBu#r#s5b#s$f'V$f;'S5b;'S;=`EZ<%l?Ah5b?Ah?BY'V?BY?Mn5b?MnO'VIy#Nfq!p&j#U,U!aP#]7[!``!oWOX'VXZ(wZ['V[^(w^p'Vpq(wqr5brs(wsv5bvw7uwx(wx!O5b!O!P$!m!P!Q'V!Q![5b![!]'V!]!^5b!^!_:Q!_!a(w!a#S5b#S#T>y#T#o5b#o#p*}#p#q'V#q#rBu#r#s5b#s$f'V$f;'S5b;'S;=`EZ<%l?Ah5b?Ah?BY'V?BY?Mn5b?MnO'VIy$#Op!k!b!p&j#U,U!aP#]7[!``!oWOX'VXZ(wZ['V[^(w^p'Vpq(wqr5brs(wsv5bvw7uwx(wx!P5b!P!Q'V!Q![5b![!]'V!]!^5b!^!_:Q!_!a(w!a#S5b#S#T>y#T#o5b#o#p*}#p#q'V#q#rBu#r#s5b#s$f'V$f;'S5b;'S;=`EZ<%l?Ah5b?Ah?BY'V?BY?Mn5b?MnO'V$3g$%chcQ!aP#]7[$mMh$o!LQ!``OX'VXZ(wZ['V[^(w^p'Vpq(wqr'Vrs(wsv'Vvw*}wx(wx!^'V!^!_)q!_!`(w!`!a$&}!a#S'V#S#T(w#T#o'V#o#p*}#p#q'V#q#r-b#r;'S'V;'S;=`.}<%lO'Vm$'YZ!aP!``#qW#a[Ov(wvw)qw!^(w!^!_)q!_#o(w#o#p)q#p#q(w#q#r*Y#r;'S(w;'S;=`*w<%lO(w$3_$(^g$cScQ!aP#]7[$mMh$o!LQ!``OX'VXZ(wZ['V[^(w^p'Vpq(wqr'Vrs(wsv'Vvw*}wx(wx!^'V!^!_)q!_!a(w!a#S'V#S#T(w#T#o'V#o#p*}#p#q'V#q#r-b#r;'S'V;'S;=`.}<%lO'V$-u$*Ug!p&j#U,U$mMh$o!LQ!``!oWOq)qqr$+mrs)qsw:Qwx)qx!P:Q!P!Q)q!Q![:Q![!])q!]!_:Q!_!a)q!a!b$LZ!b#o:Q#o#q)q#q#r;q#r#s:Q#s$f)q$f;'S:Q;'S;=`<s<%l?Ah:Q?Ah?BY)q?BY?Mn:Q?MnO)q2Z$+xl!p&j#U,U!``!oWOq)qqr:Qrs)qsw:Qwx)qx}:Q}!O$-p!O!P:Q!P!Q)q!Q![:Q![!])q!]!_:Q!_!a)q!a!f:Q!f!g$1Y!g#W:Q#W#X$Ac#X#o:Q#o#q)q#q#r;q#r#s:Q#s$f)q$f;'S:Q;'S;=`<s<%l?Ah:Q?Ah?BY)q?BY?Mn:Q?MnO)q2Z$-{h!p&j#U,U!``!oWOq)qqr:Qrs)qsw:Qwx)qx}:Q}!O$/g!O!P:Q!P!Q)q!Q![:Q![!])q!]!_:Q!_!a)q!a#o:Q#o#q)q#q#r;q#r#s:Q#s$f)q$f;'S:Q;'S;=`<s<%l?Ah:Q?Ah?BY)q?BY?Mn:Q?MnO)q2Z$/tf!p&j#U,U!``$qP!oWOq)qqr:Qrs)qsw:Qwx)qx!P:Q!P!Q)q!Q![:Q![!])q!]!_:Q!_!a)q!a#o:Q#o#q)q#q#r;q#r#s:Q#s$f)q$f;'S:Q;'S;=`<s<%l?Ah:Q?Ah?BY)q?BY?Mn:Q?MnO)q2Z$1eh!p&j#U,U!``!oWOq)qqr:Qrs)qsw:Qwx)qx!P:Q!P!Q)q!Q![:Q![!])q!]!_:Q!_!a)q!a!q:Q!q!r$3P!r#o:Q#o#q)q#q#r;q#r#s:Q#s$f)q$f;'S:Q;'S;=`<s<%l?Ah:Q?Ah?BY)q?BY?Mn:Q?MnO)q2Z$3[h!p&j#U,U!``!oWOq)qqr:Qrs)qsw:Qwx)qx!P:Q!P!Q)q!Q![:Q![!])q!]!_:Q!_!a)q!a!e:Q!e!f$4v!f#o:Q#o#q)q#q#r;q#r#s:Q#s$f)q$f;'S:Q;'S;=`<s<%l?Ah:Q?Ah?BY)q?BY?Mn:Q?MnO)q2Z$5Rh!p&j#U,U!``!oWOq)qqr:Qrs)qsw:Qwx)qx!P:Q!P!Q)q!Q![:Q![!])q!]!_:Q!_!a)q!a!v:Q!v!w$6m!w#o:Q#o#q)q#q#r;q#r#s:Q#s$f)q$f;'S:Q;'S;=`<s<%l?Ah:Q?Ah?BY)q?BY?Mn:Q?MnO)q2Z$6xh!p&j#U,U!``!oWOq)qqr:Qrs)qsw:Qwx)qx!P:Q!P!Q)q!Q![:Q![!])q!]!_:Q!_!a)q!a!{:Q!{!|$8d!|#o:Q#o#q)q#q#r;q#r#s:Q#s$f)q$f;'S:Q;'S;=`<s<%l?Ah:Q?Ah?BY)q?BY?Mn:Q?MnO)q2Z$8oh!p&j#U,U!``!oWOq)qqr:Qrs)qsw:Qwx)qx!P:Q!P!Q)q!Q![:Q![!])q!]!_:Q!_!a)q!a!r:Q!r!s$:Z!s#o:Q#o#q)q#q#r;q#r#s:Q#s$f)q$f;'S:Q;'S;=`<s<%l?Ah:Q?Ah?BY)q?BY?Mn:Q?MnO)q2Z$:fh!p&j#U,U!``!oWOq)qqr:Qrs)qsw:Qwx)qx!P:Q!P!Q)q!Q![:Q![!])q!]!_:Q!_!a)q!a!g:Q!g!h$<Q!h#o:Q#o#q)q#q#r;q#r#s:Q#s$f)q$f;'S:Q;'S;=`<s<%l?Ah:Q?Ah?BY)q?BY?Mn:Q?MnO)q2Z$<]g!p&j#U,U!``!oWOq$=tqr$<Qrs$=tsw$<Qwx$=tx!P$<Q!P!Q$=t!Q![$<Q![!]$=t!]!_$<Q!_!`$=t!`!a$>`!a#o$<Q#o#q$=t#q#r$?h#r#s$<Q#s$f$=t$f;'S$<Q;'S;=`$A]<%l?Ah$<Q?Ah?BY$=t?BY?Mn$<Q?MnO$=ta$=yV!``O!`$=t!`!a$>`!a#q$=t#q#r$>s#r;'S$=t;'S;=`$?b<%lO$=ta$>gS!``#vPO#q)q#r;'S)q;'S;=`*S<%lO)qP$>vTO!`$>s!`!a$?V!a;'S$>s;'S;=`$?[<%lO$>sP$?[O#vPP$?_P;=`<%l$>sa$?eP;=`<%l$=t1y$?qf!p&j#U,U!oWOq$>sqr$?hrs$>ssw$?hwx$>sx!P$?h!P!Q$>s!Q![$?h![!]$>s!]!_$?h!_!`$>s!`!a$?V!a#o$?h#o#q$>s#q#s$?h#s$f$>s$f;'S$?h;'S;=`$AV<%l?Ah$?h?Ah?BY$>s?BY?Mn$?h?MnO$>s1y$AYP;=`<%l$?h2Z$A`P;=`<%l$<Q2Z$Anh!p&j#U,U!``!oWOq)qqr:Qrs)qsw:Qwx)qx!P:Q!P!Q)q!Q![:Q![!])q!]!_:Q!_!a)q!a#c:Q#c#d$CY#d#o:Q#o#q)q#q#r;q#r#s:Q#s$f)q$f;'S:Q;'S;=`<s<%l?Ah:Q?Ah?BY)q?BY?Mn:Q?MnO)q2Z$Ceh!p&j#U,U!``!oWOq)qqr:Qrs)qsw:Qwx)qx!P:Q!P!Q)q!Q![:Q![!])q!]!_:Q!_!a)q!a#V:Q#V#W$EP#W#o:Q#o#q)q#q#r;q#r#s:Q#s$f)q$f;'S:Q;'S;=`<s<%l?Ah:Q?Ah?BY)q?BY?Mn:Q?MnO)q2Z$E[h!p&j#U,U!``!oWOq)qqr:Qrs)qsw:Qwx)qx!P:Q!P!Q)q!Q![:Q![!])q!]!_:Q!_!a)q!a#h:Q#h#i$Fv#i#o:Q#o#q)q#q#r;q#r#s:Q#s$f)q$f;'S:Q;'S;=`<s<%l?Ah:Q?Ah?BY)q?BY?Mn:Q?MnO)q2Z$GRh!p&j#U,U!``!oWOq)qqr:Qrs)qsw:Qwx)qx!P:Q!P!Q)q!Q![:Q![!])q!]!_:Q!_!a)q!a#m:Q#m#n$Hm#n#o:Q#o#q)q#q#r;q#r#s:Q#s$f)q$f;'S:Q;'S;=`<s<%l?Ah:Q?Ah?BY)q?BY?Mn:Q?MnO)q2Z$Hxh!p&j#U,U!``!oWOq)qqr:Qrs)qsw:Qwx)qx!P:Q!P!Q)q!Q![:Q![!])q!]!_:Q!_!a)q!a#d:Q#d#e$Jd#e#o:Q#o#q)q#q#r;q#r#s:Q#s$f)q$f;'S:Q;'S;=`<s<%l?Ah:Q?Ah?BY)q?BY?Mn:Q?MnO)q2Z$Joh!p&j#U,U!``!oWOq)qqr:Qrs)qsw:Qwx)qx!P:Q!P!Q)q!Q![:Q![!])q!]!_:Q!_!a)q!a#X:Q#X#Y$<Q#Y#o:Q#o#q)q#q#r;q#r#s:Q#s$f)q$f;'S:Q;'S;=`<s<%l?Ah:Q?Ah?BY)q?BY?Mn:Q?MnO)q2Z$Lfg!p&j#U,U!``!oWOq$M}qr$LZrs$M}sw$LZwx$M}x!P$LZ!P!Q$M}!Q![$LZ![!]$M}!]!_$LZ!_!a$M}!a!b%!o!b#o$LZ#o#q$M}#q#r%$c#r#s$LZ#s$f$M}$f;'S$LZ;'S;=`%'u<%l?Ah$LZ?Ah?BY$M}?BY?Mn$LZ?MnO$M}a$NSV!``O!a$M}!a!b$Ni!b#q$M}#q#r% h#r;'S$M};'S;=`%!i<%lO$M}a$NnV!``O!`$M}!`!a% T!a#q$M}#q#r% h#r;'S$M};'S;=`%!i<%lO$M}a% [S!``#sPO#q)q#r;'S)q;'S;=`*S<%lO)qP% kTO!a% h!a!b% z!b;'S% h;'S;=`%!c<%lO% hP% }TO!`% h!`!a%!^!a;'S% h;'S;=`%!c<%lO% hP%!cO#sPP%!fP;=`<%l% ha%!lP;=`<%l$M}2Z%!zg!p&j#U,U!``!oWOq$M}qr$LZrs$M}sw$LZwx$M}x!P$LZ!P!Q$M}!Q![$LZ![!]$M}!]!_$LZ!_!`$M}!`!a% T!a#o$LZ#o#q$M}#q#r%$c#r#s$LZ#s$f$M}$f;'S$LZ;'S;=`%'u<%l?Ah$LZ?Ah?BY$M}?BY?Mn$LZ?MnO$M}1y%$lf!p&j#U,U!oWOq% hqr%$crs% hsw%$cwx% hx!P%$c!P!Q% h!Q![%$c![!]% h!]!_%$c!_!a% h!a!b%&Q!b#o%$c#o#q% h#q#s%$c#s$f% h$f;'S%$c;'S;=`%'o<%l?Ah%$c?Ah?BY% h?BY?Mn%$c?MnO% h1y%&Zf!p&j#U,U!oWOq% hqr%$crs% hsw%$cwx% hx!P%$c!P!Q% h!Q![%$c![!]% h!]!_%$c!_!`% h!`!a%!^!a#o%$c#o#q% h#q#s%$c#s$f% h$f;'S%$c;'S;=`%'o<%l?Ah%$c?Ah?BY% h?BY?Mn%$c?MnO% h1y%'rP;=`<%l%$c2Z%'xP;=`<%l$LZ#KT%(YZ#VW!aP$mMh$o!LQ!``Ov(wvw)qw!^(w!^!_)q!_#o(w#o#p)q#p#q(w#q#r*Y#r;'S(w;'S;=`*w<%lO(w#KX%)YZ!aP$mMh$o!LQ!``#a[Ov(wvw)qw!^(w!^!_)q!_#o(w#o#p)q#p#q(w#q#r*Y#r;'S(w;'S;=`*w<%lO(w$IR%*j!aeS#kQ!p&j#U,U#n#t!aP#]7[up$mMh$o!LQ$_!b!``!oWOX'VXZ(wZ['V[^(w^p'Vpq(wqr5brs(wst5btuK|uv5bvw7uwx(wx}5b}!O%.o!O!P%3S!P!Q'V!Q![%7r![!]'V!]!^5b!^!_:Q!_!a(w!a!c5b!c!}%<f!}#R5b#R#S%7r#S#T>y#T#o%<f#o#p*}#p#q'V#q#rBu#r#s5b#s$f'V$f$g5b$g$}K|$}%O%7r%O%WK|%W%o%7r%o%pK|%p&a%7r&a&bK|&b1p%7r1p4U%7r4U4d%7r4d4eK|4e$IS%7r$IS$I`K|$I`$Ib%7r$Ib$JeK|$Je$Jg%7r$Jg$KhK|$Kh%#t%7r%#t&/xK|&/x&Et%7r&Et&FVK|&FV;'S%7r;'S;:j%<`;:j;=`!&h<%l?&rK|?&r?Ah%7r?Ah?BY!&n?BY?Mn%7r?MnO!&nHi%/Q!^#kQ!p&j#U,U!aP#]7[!``!oWOX'VXZ(wZ['V[^(w^p'Vpq(wqr5brs(wsv5bvw7uwx(wx}5b}!O%.o!O!P%.o!P!Q'V!Q![%.o![!]'V!]!^5b!^!_:Q!_!a(w!a!c5b!c!}%.o!}#R5b#R#S%.o#S#T>y#T#o%.o#o#p*}#p#q'V#q#rBu#r#s5b#s$f'V$f$}5b$}%O%.o%O%W5b%W%o%.o%o%p5b%p&a%.o&a&b5b&b1p%.o1p4U%.o4U4d%.o4d4e5b4e$IS%.o$IS$I`5b$I`$Ib%.o$Ib$Je5b$Je$Jg%.o$Jg$Kh5b$Kh%#t%.o%#t&/x5b&/x&Et%.o&Et&FV5b&FV;'S%.o;'S;:j%2|;:j;=`EZ<%l?&r5b?&r?Ah%.o?Ah?BY'V?BY?Mn%.o?MnO'VHi%3PP;=`<%l%.oIZ%3g!a#kQ!p&j#U,U!aP#]7[up!``!oWOX'VXZ(wZ['V[^(w^p'Vpq(wqr5brs(wst5btuN|uv5bvw7uwx(wx}5b}!O%.o!O!P%3S!P!Q'V!Q![%3S![!]'V!]!^5b!^!_:Q!_!a(w!a!c5b!c!}%3S!}#R5b#R#S%3S#S#T>y#T#o%3S#o#p*}#p#q'V#q#rBu#r#s5b#s$f'V$f$g5b$g$}N|$}%O%3S%O%WN|%W%o%3S%o%pN|%p&a%3S&a&bN|&b1p%3S1p4U%3S4U4d%3S4d4eN|4e$IS%3S$IS$I`N|$I`$Ib%3S$Ib$JeN|$Je$Jg%3S$Jg$KhN|$Kh%#t%3S%#t&/xN|&/x&Et%3S&Et&FVN|&FV;'S%3S;'S;:j%7l;:j;=`!#x<%l?&rN|?&r?Ah%3S?Ah?BY!$O?BY?Mn%3S?MnO!$OIZ%7oP;=`<%l%3SJq%8Z!aeS#kQ!p&j#U,U!aP#]7[up$_!b!``!oWOX'VXZ(wZ['V[^(w^p'Vpq(wqr5brs(wst5btuK|uv5bvw7uwx(wx}5b}!O%.o!O!P%3S!P!Q'V!Q![%7r![!]'V!]!^5b!^!_:Q!_!a(w!a!c5b!c!}%7r!}#R5b#R#S%7r#S#T>y#T#o%7r#o#p*}#p#q'V#q#rBu#r#s5b#s$f'V$f$g5b$g$}K|$}%O%7r%O%WK|%W%o%7r%o%pK|%p&a%7r&a&bK|&b1p%7r1p4U%7r4U4d%7r4d4eK|4e$IS%7r$IS$I`K|$I`$Ib%7r$Ib$JeK|$Je$Jg%7r$Jg$KhK|$Kh%#t%7r%#t&/xK|&/x&Et%7r&Et&FVK|&FV;'S%7r;'S;:j%<`;:j;=`!&h<%l?&rK|?&r?Ah%7r?Ah?BY!&n?BY?Mn%7r?MnO!&nJq%<cP;=`<%l%7rMg%=P!aeS#kQ!p&j#U,U#n#t!aP#]7[up$_!b!``!oWOX'VXZ(wZ['V[^(w^p'Vpq(wqr5brs(wst5btuK|uv5bvw7uwx(wx}5b}!O%.o!O!P%3S!P!Q'V!Q![%7r![!]'V!]!^5b!^!_:Q!_!a(w!a!c5b!c!}%<f!}#R5b#R#S%7r#S#T>y#T#o%<f#o#p*}#p#q'V#q#rBu#r#s5b#s$f'V$f$g5b$g$}K|$}%O%7r%O%WK|%W%o%7r%o%pK|%p&a%7r&a&bK|&b1p%7r1p4U%7r4U4d%7r4d4eK|4e$IS%7r$IS$I`K|$I`$Ib%7r$Ib$JeK|$Je$Jg%7r$Jg$KhK|$Kh%#t%7r%#t&/xK|&/x&Et%7r&Et&FVK|&FV;'S%7r;'S;:j%<`;:j;=`!&h<%l?&rK|?&r?Ah%7r?Ah?BY!&n?BY?Mn%7r?MnO!&n$F]%Aq!aeS!p&j#U,U!gQ!aP#]7[up$mMh$o!LQ$_!b!``!oWOX'VXZ(wZ['V[^(w^p'Vpq(wqr5brs(wst5btuK|uv5bvw7uwx(wx}5b}!O%Ev!O!P%JZ!P!Q'V!Q![%Ny![!]'V!]!^5b!^!_:Q!_!a(w!a!c5b!c!}%Ny!}#R5b#R#S%Ny#S#T>y#T#o%Ny#o#p*}#p#q'V#q#rBu#r#s5b#s$f'V$f$g5b$g$}K|$}%O%Ny%O%WK|%W%o%Ny%o%pK|%p&a%Ny&a&bK|&b1p%Ny1p4U%Ny4U4d%Ny4d4eK|4e$IS%Ny$IS$I`K|$I`$Ib%Ny$Ib$JeK|$Je$Jg%Ny$Jg$KhK|$Kh%#t%Ny%#t&/xK|&/x&Et%Ny&Et&FVK|&FV;'S%Ny;'S;:j&%g;:j;=`!&h<%l?&rK|?&r?Ah%Ny?Ah?BY!&n?BY?Mn%Ny?MnO!&nHi%FX!^!p&j#U,U!gQ!aP#]7[!``!oWOX'VXZ(wZ['V[^(w^p'Vpq(wqr5brs(wsv5bvw7uwx(wx}5b}!O%Ev!O!P%Ev!P!Q'V!Q![%Ev![!]'V!]!^5b!^!_:Q!_!a(w!a!c5b!c!}%Ev!}#R5b#R#S%Ev#S#T>y#T#o%Ev#o#p*}#p#q'V#q#rBu#r#s5b#s$f'V$f$}5b$}%O%Ev%O%W5b%W%o%Ev%o%p5b%p&a%Ev&a&b5b&b1p%Ev1p4U%Ev4U4d%Ev4d4e5b4e$IS%Ev$IS$I`5b$I`$Ib%Ev$Ib$Je5b$Je$Jg%Ev$Jg$Kh5b$Kh%#t%Ev%#t&/x5b&/x&Et%Ev&Et&FV5b&FV;'S%Ev;'S;:j%JT;:j;=`EZ<%l?&r5b?&r?Ah%Ev?Ah?BY'V?BY?Mn%Ev?MnO'VHi%JWP;=`<%l%EvIZ%Jn!a!p&j#U,U!gQ!aP#]7[up!``!oWOX'VXZ(wZ['V[^(w^p'Vpq(wqr5brs(wst5btuN|uv5bvw7uwx(wx}5b}!O%Ev!O!P%JZ!P!Q'V!Q![%JZ![!]'V!]!^5b!^!_:Q!_!a(w!a!c5b!c!}%JZ!}#R5b#R#S%JZ#S#T>y#T#o%JZ#o#p*}#p#q'V#q#rBu#r#s5b#s$f'V$f$g5b$g$}N|$}%O%JZ%O%WN|%W%o%JZ%o%pN|%p&a%JZ&a&bN|&b1p%JZ1p4U%JZ4U4d%JZ4d4eN|4e$IS%JZ$IS$I`N|$I`$Ib%JZ$Ib$JeN|$Je$Jg%JZ$Jg$KhN|$Kh%#t%JZ%#t&/xN|&/x&Et%JZ&Et&FVN|&FV;'S%JZ;'S;:j%Ns;:j;=`!#x<%l?&rN|?&r?Ah%JZ?Ah?BY!$O?BY?Mn%JZ?MnO!$OIZ%NvP;=`<%l%JZJq& b!aeS!p&j#U,U!gQ!aP#]7[up$_!b!``!oWOX'VXZ(wZ['V[^(w^p'Vpq(wqr5brs(wst5btuK|uv5bvw7uwx(wx}5b}!O%Ev!O!P%JZ!P!Q'V!Q![%Ny![!]'V!]!^5b!^!_:Q!_!a(w!a!c5b!c!}%Ny!}#R5b#R#S%Ny#S#T>y#T#o%Ny#o#p*}#p#q'V#q#rBu#r#s5b#s$f'V$f$g5b$g$}K|$}%O%Ny%O%WK|%W%o%Ny%o%pK|%p&a%Ny&a&bK|&b1p%Ny1p4U%Ny4U4d%Ny4d4eK|4e$IS%Ny$IS$I`K|$I`$Ib%Ny$Ib$JeK|$Je$Jg%Ny$Jg$KhK|$Kh%#t%Ny%#t&/xK|&/x&Et%Ny&Et&FVK|&FV;'S%Ny;'S;:j&%g;:j;=`!&h<%l?&rK|?&r?Ah%Ny?Ah?BY!&n?BY?Mn%Ny?MnO!&nJq&%jP;=`<%l%Ny$-u&&Oi!p&j#U,U!aP$mMh$o!LQ!``!oWOq(wqr>yrs(wsv>yvw:Qwx(wx!P>y!P!Q(w!Q![>y![!](w!]!^>y!^!_:Q!_!a(w!a#o>y#o#p)q#p#q(w#q#r@u#r#s>y#s$f(w$f;'S>y;'S;=`Bo<%l?Ah>y?Ah?BY(w?BY?Mn>y?MnO(w$IR&([!aeS!p&j#U,U#n#t!gQ!aP#]7[up$mMh$o!LQ$_!b!``!oWOX'VXZ(wZ['V[^(w^p'Vpq(wqr5brs(wst5btuK|uv5bvw7uwx(wx}5b}!O%Ev!O!P%JZ!P!Q'V!Q![%Ny![!]'V!]!^5b!^!_:Q!_!a(w!a!c5b!c!}&,a!}#R5b#R#S%Ny#S#T>y#T#o&,a#o#p*}#p#q'V#q#rBu#r#s5b#s$f'V$f$g5b$g$}K|$}%O%Ny%O%WK|%W%o%Ny%o%pK|%p&a%Ny&a&bK|&b1p%Ny1p4U%Ny4U4d%Ny4d4eK|4e$IS%Ny$IS$I`K|$I`$Ib%Ny$Ib$JeK|$Je$Jg%Ny$Jg$KhK|$Kh%#t%Ny%#t&/xK|&/x&Et%Ny&Et&FVK|&FV;'S%Ny;'S;:j&%g;:j;=`!&h<%l?&rK|?&r?Ah%Ny?Ah?BY!&n?BY?Mn%Ny?MnO!&nMg&,z!aeS!p&j#U,U#n#t!gQ!aP#]7[up$_!b!``!oWOX'VXZ(wZ['V[^(w^p'Vpq(wqr5brs(wst5btuK|uv5bvw7uwx(wx}5b}!O%Ev!O!P%JZ!P!Q'V!Q![%Ny![!]'V!]!^5b!^!_:Q!_!a(w!a!c5b!c!}&,a!}#R5b#R#S%Ny#S#T>y#T#o&,a#o#p*}#p#q'V#q#rBu#r#s5b#s$f'V$f$g5b$g$}K|$}%O%Ny%O%WK|%W%o%Ny%o%pK|%p&a%Ny&a&bK|&b1p%Ny1p4U%Ny4U4d%Ny4d4eK|4e$IS%Ny$IS$I`K|$I`$Ib%Ny$Ib$JeK|$Je$Jg%Ny$Jg$KhK|$Kh%#t%Ny%#t&/xK|&/x&Et%Ny&Et&FVK|&FV;'S%Ny;'S;:j&%g;:j;=`!&h<%l?&rK|?&r?Ah%Ny?Ah?BY!&n?BY?Mn%Ny?MnO!&n$3a&1WSb$3P!``O#q)q#r;'S)q;'S;=`*S<%lO)q$3a&1sg#TW!aP#]7[$mMh$o!LQ!``OX'VXZ(wZ['V[^(w^p'Vpq(wqr'Vrs(wsv'Vvw*}wx(wx!^'V!^!_)q!_!a(w!a#S'V#S#T(w#T#o'V#o#p*}#p#q'V#q#r-b#r;'S'V;'S;=`.}<%lO'V$FX&3oog#f!p&j#U,U!aP#]7[$mMh$o!LQ!oWOX-bXZ*YZ[-b[^*Y^p-bpq*YqrBurs*YsvBuvw<ywx*Yx!PBu!P!Q-b!Q![Bu![!]-b!]!^Bu!^!_;q!_!a*Y!a#SBu#S#T@u#T#oBu#o#p,a#p#q-b#q#sBu#s$f-b$f;'SBu;'S;=`ET<%l?AhBu?Ah?BY-b?BY?MnBu?MnO-b$F]&5sP;=`<%l%AU$FZ&5yP;=`<%lHx$5a&6aqeS!aP#]7[up$mMh$o!LQ$_!b!``OX'VXZ(wZ['V[^(w^p'Vpq(wqr'Vrs(wst'Vtu!&nuv'Vvw*}wx(wx!O'V!O!P!$O!P!Q'V!Q![!&n![!^'V!^!_)q!_!a(w!a!c'V!c!}!&n!}#R'V#R#S!&n#S#T(w#T#o!&n#o#p*}#p#q'V#q#r-b#r$g'V$g;'S!&n;'S;=`!)U<%lO!&n",
  tokenizers: [
    scriptTokens,
    styleTokens,
    textareaTokens,
    tagStart,
    commentContent,
    longExpression,
    shortExpression,
    0,
    1,
    2,
    3,
    4,
    5,
    6,
    7,
    8,
    9,
    10,
    11,
    12
  ],
  topRules: { Document: [0, 15] },
  specialized: [
    {
      term: 19,
      get: (y) => spec_BlockPrefix[y] || -1
    },
    {
      term: 21,
      get: (y) => spec_BlockType[y] || -1
    },
    {
      term: 153,
      get: (y) => spec_identifier[y] || -1
    },
    {
      term: 77,
      get: (y) => spec_AttributeName[y] || -1
    },
    {
      term: 69,
      get: (y) => spec_TagName[y] || -1
    }
  ],
  tokenPrec: 1571
});
function getAttrs(y, G) {
  let K = /* @__PURE__ */ Object.create(null);
  for (let J of y.firstChild.getChildren("Attribute")) {
    let y2 = J.getChild("AttributeName"), Y = J.getChild("AttributeValue") || J.getChild("UnquotedAttributeValue");
    y2 && (K[G.read(y2.from, y2.to)] = Y ? Y.name == "AttributeValue" ? G.read(Y.from + 1, Y.to - 1) : G.read(Y.from, Y.to) : "");
  }
  return K;
}
function maybeNest(y, G, K) {
  let J;
  for (let Y of K) if (!Y.attrs || Y.attrs(J || (J = getAttrs(y.node.parent, G)))) return { parser: Y.parser };
  return null;
}
var expressionParser = /* @__PURE__ */ parser$1.configure({ top: "SingleExpression" });
function configureNesting(y) {
  let G = [], K = [], Y = [];
  for (let J of y) {
    let y2 = J.tag == "script" ? G : J.tag == "style" ? K : J.tag == "textarea" ? Y : null;
    if (!y2) throw RangeError("Only script, style, and textarea tags can host nested parsers");
    y2.push(J);
  }
  return parseMixed((y2, J) => {
    let X = y2.type.id;
    return X === LongExpression || X === ShortExpression ? { parser: expressionParser } : X === ScriptText ? maybeNest(y2, J, G) : X === StyleText ? maybeNest(y2, J, K) : X === TextareaText ? maybeNest(y2, J, Y) : null;
  });
}
var defaultNesting = [
  {
    tag: "script",
    attrs: (y) => y.type === "text/typescript" || y.lang === "ts",
    parser: typescriptLanguage.parser
  },
  {
    tag: "script",
    attrs(y) {
      return !y.type || /^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^module$|^$/i.test(y.type);
    },
    parser: javascriptLanguage.parser
  },
  {
    tag: "style",
    attrs(y) {
      return (!y.lang || y.lang === "css" || y.lang === "scss") && (!y.type || /^(text\/)?(x-)?(stylesheet|css|scss)$/i.test(y.type));
    },
    parser: cssLanguage.parser
  }
], svelteLanguage = /* @__PURE__ */ LRLanguage.define({
  parser: /* @__PURE__ */ parser$2.configure({
    wrap: /* @__PURE__ */ configureNesting(defaultNesting),
    props: [/* @__PURE__ */ indentNodeProp.add({
      Element: (y) => {
        let G = /^(\s*)(<\/)?/.exec(y.textAfter);
        return y.node.to <= y.pos + G[0].length ? y.continue() : y.lineIndent(y.node.from) + (G[2] ? 0 : y.unit);
      },
      Block: (y) => {
        let G = y.node, K = y.textAfter.trim();
        if (K.startsWith("{/")) {
          let J2 = G.name;
          return J2 === "IfBlock" && K.startsWith("{/if") || J2 === "EachBlock" && K.startsWith("{/each") || J2 === "AwaitBlock" && K.startsWith("{/await") || J2 === "KeyBlock" && K.startsWith("{/key") ? y.lineIndent(y.node.from) : null;
        }
        if (G.name === "IfBlock" || G.name === "EachBlock") {
          if (K.startsWith("{:else")) return y.lineIndent(G.from);
        } else if (G.name === "AwaitBlock" && (K.startsWith("{:then") || K.startsWith("{:catch"))) return y.lineIndent(G.from);
        let J = /^(\s*)(<\/)?/.exec(y.textAfter);
        return y.node.to <= y.pos + J[0].length ? y.continue() : y.lineIndent(y.node.from) + (J[2] ? 0 : y.unit);
      },
      "BlockOpen BlockClose BlockInline": (y) => y.column(y.node.from) + y.unit,
      "OpenTag CloseTag SelfClosingTag": (y) => y.column(y.node.from) + y.unit,
      Document: (y) => {
        if (y.pos + /\s*/.exec(y.textAfter)[0].length < y.node.to) return y.continue();
        let G = null, K;
        for (let K2 = y.node; ; ) {
          let y2 = K2.lastChild;
          if (!y2 || y2.name != "Element" || y2.to != K2.to) break;
          G = K2 = y2;
        }
        return G && !((K = G.lastChild) && (K.name === "CloseTag" || K.name === "SelfClosingTag")) ? y.lineIndent(G.from) + y.unit : null;
      }
    }), /* @__PURE__ */ foldNodeProp.add({
      Block: (y) => {
        let G = `${y.name}Open`, K = `${y.name}Close`, J = y.firstChild, Y = y.lastChild;
        return !J || J.name !== G ? null : {
          from: J.to,
          to: (Y == null ? void 0 : Y.name) === K ? Y.from : y.to
        };
      },
      Element: (y) => {
        let G = y.firstChild, K = y.lastChild;
        return !G || G.name != "OpenTag" ? null : {
          from: G.to,
          to: K.name === "CloseTag" ? K.from : y.to
        };
      }
    })]
  }),
  languageData: {
    commentTokens: { block: {
      open: "<!--",
      close: "-->"
    } },
    indentOnInput: /^\s*((<\/\w+\W)|(\{:(else|then|catch))|(\{\/(if|each|await|key)))$/,
    wordChars: "-._",
    autocomplete: htmlCompletionSource
  }
});
function svelte() {
  return new LanguageSupport(svelteLanguage, [
    javascript().support,
    css().support,
    autoCloseTags
  ]);
}
function elementName(y, G, K = y.length) {
  if (!G) return "";
  let J = G.firstChild, Y = J && (J.getChild("TagName") || J.getChild("ComponentName") || J.getChild("SvelteElementName"));
  return Y ? y.sliceString(Y.from, Math.min(Y.to, K)) : "";
}
var autoCloseTags = /* @__PURE__ */ EditorView.inputHandler.of((y, J, Y, X) => {
  if (y.composing || y.state.readOnly || J != Y || X != ">" && X != "/" || !svelteLanguage.isActiveAt(y.state, J, -1)) return false;
  let { state: Z } = y, Q = Z.changeByRange((J2) => {
    var _a, _b, _c;
    let { head: Y2 } = J2, Q2 = syntaxTree(Z).resolveInner(Y2, -1), $;
    if ((Q2.name === "TagName" || Q2.name === "ComponentName" || Q2.name === "SvelteElementName" || Q2.name === "StartTag") && (Q2 = Q2.parent), X === ">" && Q2.name === "OpenTag") {
      if (((_b = (_a = Q2.parent) == null ? void 0 : _a.lastChild) == null ? void 0 : _b.name) != "CloseTag" && ($ = elementName(Z.doc, Q2.parent, Y2))) {
        let K = y.state.doc.sliceString(Y2, Y2 + 1) === ">", J3 = `${K ? "" : ">"}</${$}>`;
        return {
          range: EditorSelection.cursor(Y2 + 1),
          changes: {
            from: Y2 + (K ? 1 : 0),
            insert: J3
          }
        };
      }
    } else if (X === "/" && Q2.name === "OpenTag") {
      let K = Q2.parent, J3 = K == null ? void 0 : K.parent;
      if (K.from == Y2 - 1 && ((_c = J3.lastChild) == null ? void 0 : _c.name) != "CloseTag" && ($ = elementName(Z.doc, J3, Y2))) {
        let K2 = y.state.doc.sliceString(Y2, Y2 + 1) === ">", J4 = `/${$}${K2 ? "" : ">"}`, X2 = Y2 + J4.length + (K2 ? 1 : 0);
        return {
          range: EditorSelection.cursor(X2),
          changes: {
            from: Y2,
            insert: J4
          }
        };
      }
    }
    return { range: J2 };
  });
  return Q.changes.empty ? false : (y.dispatch(Q, {
    userEvent: "input.type",
    scrollIntoView: true
  }), true);
}), keywords = {
  pragma: true,
  solidity: true,
  import: true,
  as: true,
  from: true,
  contract: true,
  constructor: true,
  is: true,
  function: true,
  modifier: true,
  pure: true,
  view: true,
  payable: true,
  constant: true,
  anonymous: true,
  indexed: true,
  returns: true,
  return: true,
  event: true,
  struct: true,
  mapping: true,
  interface: true,
  using: true,
  library: true,
  storage: true,
  memory: true,
  calldata: true,
  public: true,
  private: true,
  external: true,
  internal: true,
  emit: true,
  assembly: true,
  abstract: true,
  after: true,
  catch: true,
  final: true,
  in: true,
  inline: true,
  let: true,
  match: true,
  null: true,
  of: true,
  relocatable: true,
  static: true,
  try: true,
  typeof: true,
  var: true
}, keywordsSpecial = {
  pragma: true,
  returns: true,
  address: true,
  contract: true,
  function: true,
  struct: true
}, keywordsEtherUnit = {
  wei: true,
  szabo: true,
  finney: true,
  ether: true
}, keywordsTimeUnit = {
  seconds: true,
  minutes: true,
  hours: true,
  days: true,
  weeks: true
}, keywordsBlockAndTransactionProperties = {
  block: [
    "coinbase",
    "difficulty",
    "gaslimit",
    "number",
    "timestamp"
  ],
  msg: [
    "data",
    "sender",
    "sig",
    "value"
  ],
  tx: ["gasprice", "origin"]
}, keywordsMoreBlockAndTransactionProperties = {
  now: true,
  gasleft: true,
  blockhash: true
}, keywordsErrorHandling = {
  assert: true,
  require: true,
  revert: true,
  throw: true
}, keywordsMathematicalAndCryptographicFuctions = {
  addmod: true,
  mulmod: true,
  keccak256: true,
  sha256: true,
  ripemd160: true,
  ecrecover: true
}, keywordsContractRelated = {
  this: true,
  selfdestruct: true,
  super: true
}, keywordsTypeInformation = { type: true }, keywordsContractList = {}, keywordsControlStructures = {
  if: true,
  else: true,
  while: true,
  do: true,
  for: true,
  break: true,
  continue: true,
  switch: true,
  case: true,
  default: true
}, keywordsValueTypes = {
  bool: true,
  byte: true,
  string: true,
  enum: true,
  address: true
}, keywordsV0505NewReserve = {
  alias: true,
  apply: true,
  auto: true,
  copyof: true,
  define: true,
  immutable: true,
  implements: true,
  macro: true,
  mutable: true,
  override: true,
  partial: true,
  promise: true,
  reference: true,
  sealed: true,
  sizeof: true,
  supports: true,
  typedef: true,
  unchecked: true
}, keywordsAbiEncodeDecodeFunctions = { abi: [
  "decode",
  "encodePacked",
  "encodeWithSelector",
  "encodeWithSignature",
  "encode"
] }, keywordsMembersOfAddressType = [
  "transfer",
  "send",
  "balance",
  "call",
  "delegatecall",
  "staticcall"
], natSpecTags = [
  "title",
  "author",
  "notice",
  "dev",
  "param",
  "return"
], atoms = {
  delete: true,
  new: true,
  true: true,
  false: true
}, isOperatorChar = /[+\-*&^%:=<>!|/~]/, isNegativeChar = /[-]/, curPunc;
function tokenBase(y, G) {
  let K = y.next();
  if (K === '"' || K === "'" || K === "`") return G.tokenize = tokenString(K), G.tokenize(y, G);
  if (isVersion(y, G)) return "version";
  if (K === "." && keywordsMembersOfAddressType.some(function(G2) {
    return y.match(`${G2}`);
  })) return "addressFunction";
  if (typeof K == "string" && isNumber(K, y)) return "number";
  if (typeof K == "string" && /[[\]{}(),;:.]/.test(K)) return updateGarmmer(K, G);
  if (K === "/") {
    if (y.eat("*")) return G.tokenize = tokenComment, tokenComment(y, G);
    if (y.match(/\/{2}/)) {
      for (K = y.next(); K; ) {
        if (K === "@") {
          y.backUp(1), G.grammar = "doc";
          break;
        }
        K = y.next();
      }
      return "doc";
    }
    if (y.eat("/")) return y.skipToEnd(), "comment";
  }
  if (typeof K == "string" && isNegativeChar.test(K)) {
    let G2 = y.peek();
    return typeof G2 == "string" && isNumber(G2, y) ? "number" : "operator";
  }
  if (typeof K == "string" && isOperatorChar.test(K)) return y.eatWhile(isOperatorChar), "operator";
  y.eatWhile(/[\w$_\xa1-\uffff]/);
  let J = y.current();
  return G.grammar === "doc" ? natSpecTags.some(function(y2) {
    return J === `@${y2}`;
  }) ? "docReserve" : "doc" : (J === "solidity" && G.lastToken === "pragma" && (G.lastToken = G.lastToken + " " + J), Object.prototype.propertyIsEnumerable.call(keywords, J) ? ((J === "case" || J === "default") && (curPunc = "case"), Object.prototype.propertyIsEnumerable.call(keywordsSpecial, J) && (G.lastToken = J), "keyword") : Object.prototype.propertyIsEnumerable.call(keywordsEtherUnit, J) ? "etherUnit" : Object.prototype.propertyIsEnumerable.call(keywordsContractRelated, J) ? "contractRelated" : Object.prototype.propertyIsEnumerable.call(keywordsControlStructures, J) || Object.prototype.propertyIsEnumerable.call(keywordsTypeInformation, J) || Object.prototype.propertyIsEnumerable.call(keywordsV0505NewReserve, J) ? "keyword" : Object.prototype.propertyIsEnumerable.call(keywordsValueTypes, J) || Object.prototype.propertyIsEnumerable.call(keywordsTimeUnit, J) || isValidInteger(J) || isValidBytes(J) || isValidFixed(J) ? (G.lastToken += "variable", "keyword") : Object.prototype.propertyIsEnumerable.call(atoms, J) ? "atom" : Object.prototype.propertyIsEnumerable.call(keywordsErrorHandling, J) ? "errorHandling" : Object.prototype.propertyIsEnumerable.call(keywordsMathematicalAndCryptographicFuctions, J) ? "mathematicalAndCryptographic" : Object.prototype.propertyIsEnumerable.call(keywordsMoreBlockAndTransactionProperties, J) || Object.prototype.propertyIsEnumerable.call(keywordsBlockAndTransactionProperties, J) && keywordsBlockAndTransactionProperties[J].some(function(G2) {
    return y.match(`.${G2}`);
  }) ? "variable-2" : J === "abi" && keywordsAbiEncodeDecodeFunctions[J].some(function(G2) {
    return y.match(`.${G2}`);
  }) ? "abi" : updateHexLiterals(J, y) ?? ((G.lastToken === "functionName(" || G.lastToken === "returns(") && Object.prototype.propertyIsEnumerable.call(keywordsContractList, J) ? (G.lastToken += "variable", "variable") : G.lastToken === "function" ? (G.lastToken = "functionName", G.para ?? (G.para = (G.grammar = "function", "")), G.para += "functionName", "functionName") : G.lastToken === "functionName(variable" ? (G.lastToken = "functionName(", "parameterValue") : G.lastToken === "returns(variable" ? (G.lastToken = "returns(", "parameterValue") : (G.lastToken === "address" && J === "payable" && (G.lastToken = "address payable"), (G.lastToken === "contract" || G.lastToken === "struct") && (keywordsContractList[J] = true, G.lastToken = null), G.grammar === "function" ? "parameterValue" : "variable")));
}
function tokenString(y) {
  return function(G, K) {
    let J = false, Y, X = false;
    for (Y = G.next(); Y != null; ) {
      if (Y === y && !J) {
        X = true;
        break;
      }
      J = !J && y !== "`" && Y === "\\", Y = G.next();
    }
    return (X || !(J || y === "`")) && (K.tokenize = tokenBase), "string";
  };
}
function tokenComment(y, G) {
  let K = false, J = y.next();
  for (; J; ) {
    if (J === "/" && K) {
      G.tokenize = tokenBase;
      break;
    }
    K = J === "*", J = y.next();
  }
  return "comment";
}
function isVersion(y, G) {
  if (G.lastToken === "pragma solidity") return G.lastToken = null, !G.startOfLine && (y.match(/[\^{0}][0-9.]+/) || y.match(/[>=]+?[\s]*[0-9.]+[\s]*[<]?[\s]*[0-9.]+/));
}
function isNumber(y, G) {
  if (/[\d.]/.test(y)) return y === "." ? G.match(/^[0-9]+([eE][-+]?[0-9]+)?/) : y === "0" ? G.match(/^[xX][0-9a-fA-F]+/) || G.match(/^0[0-7]+/) : G.match(/^[0-9]*\.?[0-9]*([eE][-+]?[0-9]+)?/), true;
}
function isValidInteger(y) {
  if (y.match(/^[u]?int/)) {
    if (y.indexOf("t") + 1 === y.length) return true;
    let G = Number(y.substr(y.indexOf("t") + 1, y.length));
    return G % 8 == 0 && G <= 256;
  }
}
function isValidBytes(y) {
  if (y.match(/^bytes/)) {
    if (y.indexOf("s") + 1 === y.length) return true;
    let G = y.substr(y.indexOf("s") + 1, y.length);
    return Number(G) <= 32;
  }
}
function isValidFixed(y) {
  if (y.match(/^[u]?fixed([0-9]+x[0-9]+)?/)) {
    if (y.indexOf("d") + 1 === y.length) return true;
    let G = y.substr(y.indexOf("d") + 1, y.length).split("x").map(Number);
    return G[0] % 8 == 0 && G[0] <= 256 && G[1] <= 80;
  }
}
function updateHexLiterals(y, G) {
  if (y.match(/^hex/) && G.peek() === '"') {
    let y2 = false, K, J = "", Y = "";
    for (K = G.next(); K; ) {
      if (Y += K, K === '"' && y2) {
        if (J = Y.substring(1, Y.length - 1), J.match(/^[0-9a-fA-F]+$/)) return "number";
        G.backUp(Y.length);
        break;
      }
      y2 || (y2 = K === '"'), K = G.next();
    }
  }
}
function updateGarmmer(y, G) {
  return y === "," && G.para === "functionName(variable" && (G.para = "functionName("), G.para != null && G.para.startsWith("functionName") && (y === ")" ? G.para.endsWith("(") && (G.para = G.para.substr(0, G.para.length - 1), G.para === "functionName" && (G.grammar = "")) : y === "(" && (G.para += y)), y === "(" && G.lastToken === "functionName" ? G.lastToken += y : y === ")" && G.lastToken === "functionName(" ? G.lastToken = null : y === "(" && G.lastToken === "returns" ? G.lastToken += y : y === ")" && (G.lastToken === "returns(" || G.lastToken === "returns(variable") && (G.lastToken = null), y === "(" && G.lastToken === "address" && (G.lastToken += y), curPunc = y, null;
}
var Context = class {
  constructor(y, G, K, J, Y) {
    this.indented = y, this.column = G, this.type = K, this.align = J, this.prev = Y;
  }
};
function pushContext(y, G, K) {
  return y.context = new Context(y.indented, G, K, null, y.context), y.context;
}
function popContext(y) {
  if (!y.context.prev) return;
  let G = y.context.type;
  return (G === ")" || G === "]" || G === "}") && (y.indented = y.context.indented), y.context = y.context.prev;
}
var parser = {
  startState(y) {
    return {
      tokenize: null,
      context: new Context(0 - y, 0, "top", false, null),
      indented: 0,
      startOfLine: true,
      grammar: null,
      lastToken: null,
      para: null
    };
  },
  token(y, G) {
    let K = G.context;
    if (y.sol() && (K.align ?? (K.align = false), G.indented = y.indentation(), G.startOfLine = true, K.type === "case" && (K.type = "}"), G.grammar === "doc" && (G.grammar = null)), y.eatSpace()) return null;
    curPunc = null;
    let J = (G.tokenize || tokenBase)(y, G);
    return J === "comment" ? J : (K.align ?? (K.align = true), curPunc === "{" ? pushContext(G, y.column(), "}") : curPunc === "[" ? pushContext(G, y.column(), "]") : curPunc === "(" ? pushContext(G, y.column(), ")") : curPunc === "case" ? K.type = "case" : (curPunc === "}" && K.type === "}" || curPunc === K.type) && popContext(G), G.startOfLine = false, J);
  },
  indent(y, G, K) {
    if (y.tokenize !== tokenBase && y.tokenize != null) return null;
    let J = y.context, Y = G && G.charAt(0);
    if (J.type === "case" && /^(?:case|default)\b/.test(G)) return y.context.type = "}", J.indented;
    let X = Y === J.type;
    return J.align ? J.column + (X ? 0 : 1) : J.indented + (X ? 0 : K.unit);
  },
  electricChars: "{}):",
  closeBrackets: "()[]{}''\"\"``",
  fold: "brace",
  blockCommentStart: "/*",
  blockCommentEnd: "*/",
  lineComment: "//",
  tokenTable: {
    functionName: /* @__PURE__ */ Tag.define(),
    parameterValue: /* @__PURE__ */ Tag.define(),
    addressFunction: /* @__PURE__ */ Tag.define(),
    errorHandling: /* @__PURE__ */ Tag.define(),
    contractRelated: /* @__PURE__ */ Tag.define(),
    version: /* @__PURE__ */ Tag.define(),
    etherUnit: /* @__PURE__ */ Tag.define(),
    doc: /* @__PURE__ */ Tag.define(),
    mathematicalAndCryptographic: /* @__PURE__ */ Tag.define(),
    abi: /* @__PURE__ */ Tag.define()
  }
}, solidity = /* @__PURE__ */ new LanguageSupport(/* @__PURE__ */ StreamLanguage.define(parser)), langs = {
  1: () => StreamLanguage.define(troff),
  2: () => StreamLanguage.define(troff),
  3: () => StreamLanguage.define(troff),
  4: () => StreamLanguage.define(troff),
  "4th": () => StreamLanguage.define(forth),
  5: () => StreamLanguage.define(troff),
  6: () => StreamLanguage.define(troff),
  7: () => StreamLanguage.define(troff),
  8: () => StreamLanguage.define(troff),
  9: () => StreamLanguage.define(troff),
  apl: () => StreamLanguage.define(apl),
  asc: () => StreamLanguage.define(asciiArmor),
  asn: () => StreamLanguage.define(asn1({})),
  asn1: () => StreamLanguage.define(asn1({})),
  b: () => StreamLanguage.define(brainfuck),
  bash: () => StreamLanguage.define(shell),
  bf: () => StreamLanguage.define(brainfuck),
  BUILD: () => python(),
  bzl: () => python(),
  c: () => cpp(),
  "c++": () => cpp(),
  cc: () => cpp(),
  cfg: () => StreamLanguage.define(ttcnCfg),
  cjs: () => javascript(),
  cl: () => StreamLanguage.define(commonLisp),
  clj: () => StreamLanguage.define(clojure),
  cljc: () => StreamLanguage.define(clojure),
  cljs: () => StreamLanguage.define(clojure),
  cljx: () => StreamLanguage.define(clojure),
  cmake: () => StreamLanguage.define(cmake),
  "cmake.in": () => StreamLanguage.define(cmake),
  cob: () => StreamLanguage.define(cobol),
  coffee: () => StreamLanguage.define(coffeeScript),
  cpp: () => cpp(),
  cpy: () => StreamLanguage.define(cobol),
  cql: () => sql({ dialect: Cassandra }),
  cr: () => StreamLanguage.define(crystal),
  cs: () => StreamLanguage.define(csharp),
  css: () => css(),
  cts: () => javascript({ typescript: true }),
  cxx: () => cpp(),
  cyp: () => StreamLanguage.define(cypher),
  cypher: () => StreamLanguage.define(cypher),
  d: () => StreamLanguage.define(d),
  dart: () => StreamLanguage.define(dart),
  diff: () => StreamLanguage.define(diff),
  dtd: () => StreamLanguage.define(dtd),
  dyalog: () => StreamLanguage.define(apl),
  dyl: () => StreamLanguage.define(dylan),
  dylan: () => StreamLanguage.define(dylan),
  e: () => StreamLanguage.define(eiffel),
  ecl: () => StreamLanguage.define(ecl),
  edn: () => StreamLanguage.define(clojure),
  el: () => StreamLanguage.define(commonLisp),
  elm: () => StreamLanguage.define(elm),
  erl: () => StreamLanguage.define(erlang),
  f: () => StreamLanguage.define(fortran),
  f77: () => StreamLanguage.define(fortran),
  f90: () => StreamLanguage.define(fortran),
  f95: () => StreamLanguage.define(fortran),
  factor: () => StreamLanguage.define(factor),
  feature: () => StreamLanguage.define(gherkin),
  for: () => StreamLanguage.define(fortran),
  forth: () => StreamLanguage.define(forth),
  fs: () => StreamLanguage.define(fSharp),
  fth: () => StreamLanguage.define(forth),
  fun: () => StreamLanguage.define(sml),
  go: () => go(),
  gradle: () => StreamLanguage.define(groovy),
  groovy: () => StreamLanguage.define(groovy),
  gss: () => StreamLanguage.define(gss),
  h: () => cpp(),
  "h++": () => cpp(),
  handlebars: () => html(),
  hbs: () => html(),
  hh: () => cpp(),
  hpp: () => cpp(),
  hs: () => StreamLanguage.define(haskell),
  htm: () => html(),
  html: () => html(),
  hx: () => StreamLanguage.define(haxe),
  hxml: () => StreamLanguage.define(hxml),
  hxx: () => cpp(),
  in: () => StreamLanguage.define(properties),
  ini: () => StreamLanguage.define(properties),
  ino: () => cpp(),
  intr: () => StreamLanguage.define(dylan),
  j2: () => jinja(),
  jade: () => StreamLanguage.define(pug),
  java: () => java(),
  jinja: () => jinja(),
  jinja2: () => jinja(),
  jl: () => StreamLanguage.define(julia),
  js: () => javascript(),
  json: () => json(),
  jsonld: () => StreamLanguage.define(jsonld),
  jsx: () => javascript({ jsx: true }),
  ksh: () => StreamLanguage.define(shell),
  kt: () => StreamLanguage.define(kotlin),
  kts: () => StreamLanguage.define(kotlin),
  less: () => less(),
  liquid: () => liquid(),
  lisp: () => StreamLanguage.define(commonLisp),
  ls: () => StreamLanguage.define(liveScript),
  ltx: () => StreamLanguage.define(stex),
  lua: () => StreamLanguage.define(lua),
  m: () => StreamLanguage.define(octave),
  map: () => json(),
  markdown: () => markdown(),
  mbox: () => StreamLanguage.define(mbox),
  md: () => markdown(),
  mjs: () => javascript(),
  mkd: () => markdown(),
  ml: () => StreamLanguage.define(oCaml),
  mli: () => StreamLanguage.define(oCaml),
  mll: () => StreamLanguage.define(oCaml),
  mly: () => StreamLanguage.define(oCaml),
  mm: () => StreamLanguage.define(objectiveCpp),
  mo: () => StreamLanguage.define(modelica),
  mps: () => StreamLanguage.define(mumps),
  mrc: () => StreamLanguage.define(mirc),
  msc: () => StreamLanguage.define(mscgen),
  mscgen: () => StreamLanguage.define(mscgen),
  mscin: () => StreamLanguage.define(mscgen),
  msgenny: () => StreamLanguage.define(msgenny),
  mts: () => javascript({ typescript: true }),
  nb: () => StreamLanguage.define(mathematica),
  nix: () => nix(),
  nq: () => StreamLanguage.define(ntriples),
  nsh: () => StreamLanguage.define(nsis),
  nsi: () => StreamLanguage.define(nsis),
  nt: () => StreamLanguage.define(ntriples),
  nut: () => StreamLanguage.define(squirrel),
  oz: () => StreamLanguage.define(oz),
  p: () => StreamLanguage.define(pascal),
  pas: () => StreamLanguage.define(pascal),
  patch: () => StreamLanguage.define(diff),
  pgp: () => StreamLanguage.define(asciiArmor),
  php: () => php(),
  php3: () => php(),
  php4: () => php(),
  php5: () => php(),
  php7: () => php(),
  phtml: () => php(),
  pig: () => StreamLanguage.define(pig),
  pl: () => StreamLanguage.define(perl),
  pls: () => sql({ dialect: PLSQL }),
  pm: () => StreamLanguage.define(perl),
  pp: () => StreamLanguage.define(puppet),
  pro: () => StreamLanguage.define(idl),
  properties: () => StreamLanguage.define(properties),
  proto: () => StreamLanguage.define(protobuf),
  ps1: () => StreamLanguage.define(powerShell),
  psd1: () => StreamLanguage.define(powerShell),
  psm1: () => StreamLanguage.define(powerShell),
  pug: () => StreamLanguage.define(pug),
  pxd: () => StreamLanguage.define(cython),
  pxi: () => StreamLanguage.define(cython),
  py: () => python(),
  pyw: () => python(),
  pyx: () => StreamLanguage.define(cython),
  q: () => StreamLanguage.define(q),
  r: () => StreamLanguage.define(r),
  R: () => StreamLanguage.define(r),
  rb: () => StreamLanguage.define(ruby),
  rq: () => StreamLanguage.define(sparql),
  rs: () => rust(),
  s: () => StreamLanguage.define(gas),
  sas: () => StreamLanguage.define(sas),
  sass: () => sass({ indented: true }),
  scala: () => StreamLanguage.define(scala),
  scm: () => StreamLanguage.define(scheme),
  scss: () => sass(),
  sh: () => StreamLanguage.define(shell),
  sieve: () => StreamLanguage.define(sieve),
  sig: () => StreamLanguage.define(sml),
  siv: () => StreamLanguage.define(sieve),
  smackspec: () => StreamLanguage.define(sml),
  sml: () => StreamLanguage.define(sml),
  solidity: () => solidity,
  sparql: () => StreamLanguage.define(sparql),
  spec: () => StreamLanguage.define(rpmSpec),
  sql: () => sql({ dialect: StandardSQL }),
  ss: () => StreamLanguage.define(scheme),
  st: () => StreamLanguage.define(smalltalk),
  styl: () => StreamLanguage.define(stylus),
  sv: () => StreamLanguage.define(verilog),
  svelte: () => svelte(),
  svg: () => xml(),
  svh: () => StreamLanguage.define(verilog),
  swift: () => StreamLanguage.define(swift),
  tcl: () => StreamLanguage.define(tcl),
  tex: () => StreamLanguage.define(stex),
  text: () => StreamLanguage.define(stex),
  textile: () => StreamLanguage.define(textile),
  toml: () => StreamLanguage.define(toml),
  ts: () => javascript({ typescript: true }),
  tsx: () => javascript({
    jsx: true,
    typescript: true
  }),
  ttcn: () => StreamLanguage.define(ttcn),
  ttcn3: () => StreamLanguage.define(ttcn),
  ttcnpp: () => StreamLanguage.define(ttcn),
  ttl: () => StreamLanguage.define(turtle),
  v: () => StreamLanguage.define(verilog),
  vb: () => StreamLanguage.define(vb),
  vbs: () => StreamLanguage.define(vbScript),
  vhd: () => StreamLanguage.define(vhdl),
  vhdl: () => StreamLanguage.define(vhdl),
  vtl: () => StreamLanguage.define(velocity),
  vue: () => vue(),
  wast: () => wast(),
  wat: () => wast(),
  webidl: () => StreamLanguage.define(webIDL),
  wl: () => StreamLanguage.define(mathematica),
  wls: () => StreamLanguage.define(mathematica),
  xml: () => xml(),
  xq: () => StreamLanguage.define(xQuery),
  xqm: () => StreamLanguage.define(xQuery),
  xquery: () => StreamLanguage.define(xQuery),
  xqy: () => StreamLanguage.define(xQuery),
  xsd: () => xml(),
  xsl: () => xml(),
  xu: () => StreamLanguage.define(xu),
  xy: () => StreamLanguage.define(xQuery),
  yaml: () => yaml(),
  yml: () => yaml(),
  ys: () => StreamLanguage.define(yacas),
  z80: () => StreamLanguage.define(z80)
};
function loadLanguage(y) {
  return langs[y] ? langs[y]() : null;
}
export {
  loadLanguage as n,
  langs as t
};
