@drincs/pixi-vn-ink 1.2.2 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,69 +1,69 @@
1
- 'use strict';var zod=require('zod'),constants=require('@drincs/pixi-vn-json/constants'),characters=require('@drincs/pixi-vn/characters');var Y0=Object.create;var Sf=Object.defineProperty;var Z0=Object.getOwnPropertyDescriptor;var Q0=Object.getOwnPropertyNames;var eC=Object.getPrototypeOf,tC=Object.prototype.hasOwnProperty;var C=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports);var nC=(n,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Q0(e))!tC.call(n,i)&&i!==t&&Sf(n,i,{get:()=>e[i],enumerable:!(r=Z0(e,i))||r.enumerable});return n};var Ir=(n,e,t)=>(t=n!=null?Y0(eC(n)):{},nC(Sf(t,"default",{value:n,enumerable:true}),n));var Lr=C(J=>{Object.defineProperty(J,"__esModule",{value:true});J.regexpCode=J.getEsmExportName=J.getProperty=J.safeStringify=J.stringify=J.strConcat=J.addCodeArg=J.str=J._=J.nil=J._Code=J.Name=J.IDENTIFIER=J._CodeOrName=void 0;var jr=class{};J._CodeOrName=jr;J.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var dn=class extends jr{constructor(e){if(super(),!J.IDENTIFIER.test(e))throw new Error("CodeGen: name must be a valid identifier");this.str=e;}toString(){return this.str}emptyStr(){return false}get names(){return {[this.str]:1}}};J.Name=dn;var Xe=class extends jr{constructor(e){super(),this._items=typeof e=="string"?[e]:e;}toString(){return this.str}emptyStr(){if(this._items.length>1)return false;let e=this._items[0];return e===""||e==='""'}get str(){var e;return (e=this._str)!==null&&e!==void 0?e:this._str=this._items.reduce((t,r)=>`${t}${r}`,"")}get names(){var e;return (e=this._names)!==null&&e!==void 0?e:this._names=this._items.reduce((t,r)=>(r instanceof dn&&(t[r.str]=(t[r.str]||0)+1),t),{})}};J._Code=Xe;J.nil=new Xe("");function Lf(n,...e){let t=[n[0]],r=0;for(;r<e.length;)Iu(t,e[r]),t.push(n[++r]);return new Xe(t)}J._=Lf;var Nu=new Xe("+");function Bf(n,...e){let t=[qr(n[0])],r=0;for(;r<e.length;)t.push(Nu),Iu(t,e[r]),t.push(Nu,qr(n[++r]));return SC(t),new Xe(t)}J.str=Bf;function Iu(n,e){e instanceof Xe?n.push(...e._items):e instanceof dn?n.push(e):n.push(wC(e));}J.addCodeArg=Iu;function SC(n){let e=1;for(;e<n.length-1;){if(n[e]===Nu){let t=bC(n[e-1],n[e+1]);if(t!==void 0){n.splice(e-1,3,t);continue}n[e++]="+";}e++;}}function bC(n,e){if(e==='""')return n;if(n==='""')return e;if(typeof n=="string")return e instanceof dn||n[n.length-1]!=='"'?void 0:typeof e!="string"?`${n.slice(0,-1)}${e}"`:e[0]==='"'?n.slice(0,-1)+e.slice(1):void 0;if(typeof e=="string"&&e[0]==='"'&&!(n instanceof dn))return `"${n}${e.slice(1)}`}function DC(n,e){return e.emptyStr()?n:n.emptyStr()?e:Bf`${n}${e}`}J.strConcat=DC;function wC(n){return typeof n=="number"||typeof n=="boolean"||n===null?n:qr(Array.isArray(n)?n.join(","):n)}function AC(n){return new Xe(qr(n))}J.stringify=AC;function qr(n){return JSON.stringify(n).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}J.safeStringify=qr;function PC(n){return typeof n=="string"&&J.IDENTIFIER.test(n)?new Xe(`.${n}`):Lf`[${n}]`}J.getProperty=PC;function TC(n){if(typeof n=="string"&&J.IDENTIFIER.test(n))return new Xe(`${n}`);throw new Error(`CodeGen: invalid export name: ${n}, use explicit $id name mapping`)}J.getEsmExportName=TC;function OC(n){return new Xe(n.toString())}J.regexpCode=OC;});var $u=C(qe=>{Object.defineProperty(qe,"__esModule",{value:true});qe.ValueScope=qe.ValueScopeName=qe.Scope=qe.varKinds=qe.UsedValueState=void 0;var je=Lr(),ku=class extends Error{constructor(e){super(`CodeGen: "code" for ${e} not defined`),this.value=e.value;}},as;(function(n){n[n.Started=0]="Started",n[n.Completed=1]="Completed";})(as||(qe.UsedValueState=as={}));qe.varKinds={const:new je.Name("const"),let:new je.Name("let"),var:new je.Name("var")};var os=class{constructor({prefixes:e,parent:t}={}){this._names={},this._prefixes=e,this._parent=t;}toName(e){return e instanceof je.Name?e:this.name(e)}name(e){return new je.Name(this._newName(e))}_newName(e){let t=this._names[e]||this._nameGroup(e);return `${e}${t.index++}`}_nameGroup(e){var t,r;if(!((r=(t=this._parent)===null||t===void 0?void 0:t._prefixes)===null||r===void 0)&&r.has(e)||this._prefixes&&!this._prefixes.has(e))throw new Error(`CodeGen: prefix "${e}" is not allowed in this scope`);return this._names[e]={prefix:e,index:0}}};qe.Scope=os;var us=class extends je.Name{constructor(e,t){super(t),this.prefix=e;}setValue(e,{property:t,itemIndex:r}){this.value=e,this.scopePath=(0, je._)`.${new je.Name(t)}[${r}]`;}};qe.ValueScopeName=us;var xC=(0, je._)`\n`,Ru=class extends os{constructor(e){super(e),this._values={},this._scope=e.scope,this.opts={...e,_n:e.lines?xC:je.nil};}get(){return this._scope}name(e){return new us(e,this._newName(e))}value(e,t){var r;if(t.ref===void 0)throw new Error("CodeGen: ref must be passed in value");let i=this.toName(e),{prefix:a}=i,s=(r=t.key)!==null&&r!==void 0?r:t.ref,o=this._values[a];if(o){let c=o.get(s);if(c)return c}else o=this._values[a]=new Map;o.set(s,i);let u=this._scope[a]||(this._scope[a]=[]),l=u.length;return u[l]=t.ref,i.setValue(t,{property:a,itemIndex:l}),i}getValue(e,t){let r=this._values[e];if(r)return r.get(t)}scopeRefs(e,t=this._values){return this._reduceValues(t,r=>{if(r.scopePath===void 0)throw new Error(`CodeGen: name "${r}" has no value`);return (0, je._)`${e}${r.scopePath}`})}scopeCode(e=this._values,t,r){return this._reduceValues(e,i=>{if(i.value===void 0)throw new Error(`CodeGen: name "${i}" has no value`);return i.value.code},t,r)}_reduceValues(e,t,r={},i){let a=je.nil;for(let s in e){let o=e[s];if(!o)continue;let u=r[s]=r[s]||new Map;o.forEach(l=>{if(u.has(l))return;u.set(l,as.Started);let c=t(l);if(c){let h=this.opts.es5?qe.varKinds.var:qe.varKinds.const;a=(0, je._)`${a}${h} ${l} = ${c};${this.opts._n}`;}else if(c=i?.(l))a=(0, je._)`${a}${c}${this.opts._n}`;else throw new ku(l);u.set(l,as.Completed);});}return a}};qe.ValueScope=Ru;});var I=C($=>{Object.defineProperty($,"__esModule",{value:true});$.or=$.and=$.not=$.CodeGen=$.operators=$.varKinds=$.ValueScopeName=$.ValueScope=$.Scope=$.Name=$.regexpCode=$.stringify=$.getProperty=$.nil=$.strConcat=$.str=$._=void 0;var W=Lr(),lt=$u(),Wt=Lr();Object.defineProperty($,"_",{enumerable:true,get:function(){return Wt._}});Object.defineProperty($,"str",{enumerable:true,get:function(){return Wt.str}});Object.defineProperty($,"strConcat",{enumerable:true,get:function(){return Wt.strConcat}});Object.defineProperty($,"nil",{enumerable:true,get:function(){return Wt.nil}});Object.defineProperty($,"getProperty",{enumerable:true,get:function(){return Wt.getProperty}});Object.defineProperty($,"stringify",{enumerable:true,get:function(){return Wt.stringify}});Object.defineProperty($,"regexpCode",{enumerable:true,get:function(){return Wt.regexpCode}});Object.defineProperty($,"Name",{enumerable:true,get:function(){return Wt.Name}});var ds=$u();Object.defineProperty($,"Scope",{enumerable:true,get:function(){return ds.Scope}});Object.defineProperty($,"ValueScope",{enumerable:true,get:function(){return ds.ValueScope}});Object.defineProperty($,"ValueScopeName",{enumerable:true,get:function(){return ds.ValueScopeName}});Object.defineProperty($,"varKinds",{enumerable:true,get:function(){return ds.varKinds}});$.operators={GT:new W._Code(">"),GTE:new W._Code(">="),LT:new W._Code("<"),LTE:new W._Code("<="),EQ:new W._Code("==="),NEQ:new W._Code("!=="),NOT:new W._Code("!"),OR:new W._Code("||"),AND:new W._Code("&&"),ADD:new W._Code("+")};var Nt=class{optimizeNodes(){return this}optimizeNames(e,t){return this}},Vu=class extends Nt{constructor(e,t,r){super(),this.varKind=e,this.name=t,this.rhs=r;}render({es5:e,_n:t}){let r=e?lt.varKinds.var:this.varKind,i=this.rhs===void 0?"":` = ${this.rhs}`;return `${r} ${this.name}${i};`+t}optimizeNames(e,t){if(e[this.name.str])return this.rhs&&(this.rhs=Wn(this.rhs,e,t)),this}get names(){return this.rhs instanceof W._CodeOrName?this.rhs.names:{}}},ls=class extends Nt{constructor(e,t,r){super(),this.lhs=e,this.rhs=t,this.sideEffects=r;}render({_n:e}){return `${this.lhs} = ${this.rhs};`+e}optimizeNames(e,t){if(!(this.lhs instanceof W.Name&&!e[this.lhs.str]&&!this.sideEffects))return this.rhs=Wn(this.rhs,e,t),this}get names(){let e=this.lhs instanceof W.Name?{}:{...this.lhs.names};return hs(e,this.rhs)}},ju=class extends ls{constructor(e,t,r,i){super(e,r,i),this.op=t;}render({_n:e}){return `${this.lhs} ${this.op}= ${this.rhs};`+e}},qu=class extends Nt{constructor(e){super(),this.label=e,this.names={};}render({_n:e}){return `${this.label}:`+e}},Lu=class extends Nt{constructor(e){super(),this.label=e,this.names={};}render({_n:e}){return `break${this.label?` ${this.label}`:""};`+e}},Bu=class extends Nt{constructor(e){super(),this.error=e;}render({_n:e}){return `throw ${this.error};`+e}get names(){return this.error.names}},Wu=class extends Nt{constructor(e){super(),this.code=e;}render({_n:e}){return `${this.code};`+e}optimizeNodes(){return `${this.code}`?this:void 0}optimizeNames(e,t){return this.code=Wn(this.code,e,t),this}get names(){return this.code instanceof W._CodeOrName?this.code.names:{}}},Br=class extends Nt{constructor(e=[]){super(),this.nodes=e;}render(e){return this.nodes.reduce((t,r)=>t+r.render(e),"")}optimizeNodes(){let{nodes:e}=this,t=e.length;for(;t--;){let r=e[t].optimizeNodes();Array.isArray(r)?e.splice(t,1,...r):r?e[t]=r:e.splice(t,1);}return e.length>0?this:void 0}optimizeNames(e,t){let{nodes:r}=this,i=r.length;for(;i--;){let a=r[i];a.optimizeNames(e,t)||(FC(e,a.names),r.splice(i,1));}return r.length>0?this:void 0}get names(){return this.nodes.reduce((e,t)=>mn(e,t.names),{})}},It=class extends Br{render(e){return "{"+e._n+super.render(e)+"}"+e._n}},Mu=class extends Br{},Bn=class extends It{};Bn.kind="else";var fn=class n extends It{constructor(e,t){super(t),this.condition=e;}render(e){let t=`if(${this.condition})`+super.render(e);return this.else&&(t+="else "+this.else.render(e)),t}optimizeNodes(){super.optimizeNodes();let e=this.condition;if(e===true)return this.nodes;let t=this.else;if(t){let r=t.optimizeNodes();t=this.else=Array.isArray(r)?new Bn(r):r;}if(t)return e===false?t instanceof n?t:t.nodes:this.nodes.length?this:new n(Wf(e),t instanceof n?[t]:t.nodes);if(!(e===false||!this.nodes.length))return this}optimizeNames(e,t){var r;if(this.else=(r=this.else)===null||r===void 0?void 0:r.optimizeNames(e,t),!!(super.optimizeNames(e,t)||this.else))return this.condition=Wn(this.condition,e,t),this}get names(){let e=super.names;return hs(e,this.condition),this.else&&mn(e,this.else.names),e}};fn.kind="if";var pn=class extends It{};pn.kind="for";var Gu=class extends pn{constructor(e){super(),this.iteration=e;}render(e){return `for(${this.iteration})`+super.render(e)}optimizeNames(e,t){if(super.optimizeNames(e,t))return this.iteration=Wn(this.iteration,e,t),this}get names(){return mn(super.names,this.iteration.names)}},Ju=class extends pn{constructor(e,t,r,i){super(),this.varKind=e,this.name=t,this.from=r,this.to=i;}render(e){let t=e.es5?lt.varKinds.var:this.varKind,{name:r,from:i,to:a}=this;return `for(${t} ${r}=${i}; ${r}<${a}; ${r}++)`+super.render(e)}get names(){let e=hs(super.names,this.from);return hs(e,this.to)}},cs=class extends pn{constructor(e,t,r,i){super(),this.loop=e,this.varKind=t,this.name=r,this.iterable=i;}render(e){return `for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(e)}optimizeNames(e,t){if(super.optimizeNames(e,t))return this.iterable=Wn(this.iterable,e,t),this}get names(){return mn(super.names,this.iterable.names)}},Wr=class extends It{constructor(e,t,r){super(),this.name=e,this.args=t,this.async=r;}render(e){return `${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(e)}};Wr.kind="func";var Mr=class extends Br{render(e){return "return "+super.render(e)}};Mr.kind="return";var Hu=class extends It{render(e){let t="try"+super.render(e);return this.catch&&(t+=this.catch.render(e)),this.finally&&(t+=this.finally.render(e)),t}optimizeNodes(){var e,t;return super.optimizeNodes(),(e=this.catch)===null||e===void 0||e.optimizeNodes(),(t=this.finally)===null||t===void 0||t.optimizeNodes(),this}optimizeNames(e,t){var r,i;return super.optimizeNames(e,t),(r=this.catch)===null||r===void 0||r.optimizeNames(e,t),(i=this.finally)===null||i===void 0||i.optimizeNames(e,t),this}get names(){let e=super.names;return this.catch&&mn(e,this.catch.names),this.finally&&mn(e,this.finally.names),e}},Gr=class extends It{constructor(e){super(),this.error=e;}render(e){return `catch(${this.error})`+super.render(e)}};Gr.kind="catch";var Jr=class extends It{render(e){return "finally"+super.render(e)}};Jr.kind="finally";var Uu=class{constructor(e,t={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...t,_n:t.lines?`
2
- `:""},this._extScope=e,this._scope=new lt.Scope({parent:e}),this._nodes=[new Mu];}toString(){return this._root.render(this.opts)}name(e){return this._scope.name(e)}scopeName(e){return this._extScope.name(e)}scopeValue(e,t){let r=this._extScope.value(e,t);return (this._values[r.prefix]||(this._values[r.prefix]=new Set)).add(r),r}getScopeValue(e,t){return this._extScope.getValue(e,t)}scopeRefs(e){return this._extScope.scopeRefs(e,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(e,t,r,i){let a=this._scope.toName(t);return r!==void 0&&i&&(this._constants[a.str]=r),this._leafNode(new Vu(e,a,r)),a}const(e,t,r){return this._def(lt.varKinds.const,e,t,r)}let(e,t,r){return this._def(lt.varKinds.let,e,t,r)}var(e,t,r){return this._def(lt.varKinds.var,e,t,r)}assign(e,t,r){return this._leafNode(new ls(e,t,r))}add(e,t){return this._leafNode(new ju(e,$.operators.ADD,t))}code(e){return typeof e=="function"?e():e!==W.nil&&this._leafNode(new Wu(e)),this}object(...e){let t=["{"];for(let[r,i]of e)t.length>1&&t.push(","),t.push(r),(r!==i||this.opts.es5)&&(t.push(":"),(0, W.addCodeArg)(t,i));return t.push("}"),new W._Code(t)}if(e,t,r){if(this._blockNode(new fn(e)),t&&r)this.code(t).else().code(r).endIf();else if(t)this.code(t).endIf();else if(r)throw new Error('CodeGen: "else" body without "then" body');return this}elseIf(e){return this._elseNode(new fn(e))}else(){return this._elseNode(new Bn)}endIf(){return this._endBlockNode(fn,Bn)}_for(e,t){return this._blockNode(e),t&&this.code(t).endFor(),this}for(e,t){return this._for(new Gu(e),t)}forRange(e,t,r,i,a=this.opts.es5?lt.varKinds.var:lt.varKinds.let){let s=this._scope.toName(e);return this._for(new Ju(a,s,t,r),()=>i(s))}forOf(e,t,r,i=lt.varKinds.const){let a=this._scope.toName(e);if(this.opts.es5){let s=t instanceof W.Name?t:this.var("_arr",t);return this.forRange("_i",0,(0, W._)`${s}.length`,o=>{this.var(a,(0, W._)`${s}[${o}]`),r(a);})}return this._for(new cs("of",i,a,t),()=>r(a))}forIn(e,t,r,i=this.opts.es5?lt.varKinds.var:lt.varKinds.const){if(this.opts.ownProperties)return this.forOf(e,(0, W._)`Object.keys(${t})`,r);let a=this._scope.toName(e);return this._for(new cs("in",i,a,t),()=>r(a))}endFor(){return this._endBlockNode(pn)}label(e){return this._leafNode(new qu(e))}break(e){return this._leafNode(new Lu(e))}return(e){let t=new Mr;if(this._blockNode(t),this.code(e),t.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(Mr)}try(e,t,r){if(!t&&!r)throw new Error('CodeGen: "try" without "catch" and "finally"');let i=new Hu;if(this._blockNode(i),this.code(e),t){let a=this.name("e");this._currNode=i.catch=new Gr(a),t(a);}return r&&(this._currNode=i.finally=new Jr,this.code(r)),this._endBlockNode(Gr,Jr)}throw(e){return this._leafNode(new Bu(e))}block(e,t){return this._blockStarts.push(this._nodes.length),e&&this.code(e).endBlock(t),this}endBlock(e){let t=this._blockStarts.pop();if(t===void 0)throw new Error("CodeGen: not in self-balancing block");let r=this._nodes.length-t;if(r<0||e!==void 0&&r!==e)throw new Error(`CodeGen: wrong number of nodes: ${r} vs ${e} expected`);return this._nodes.length=t,this}func(e,t=W.nil,r,i){return this._blockNode(new Wr(e,t,r)),i&&this.code(i).endFunc(),this}endFunc(){return this._endBlockNode(Wr)}optimize(e=1){for(;e-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants);}_leafNode(e){return this._currNode.nodes.push(e),this}_blockNode(e){this._currNode.nodes.push(e),this._nodes.push(e);}_endBlockNode(e,t){let r=this._currNode;if(r instanceof e||t&&r instanceof t)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${t?`${e.kind}/${t.kind}`:e.kind}"`)}_elseNode(e){let t=this._currNode;if(!(t instanceof fn))throw new Error('CodeGen: "else" without "if"');return this._currNode=t.else=e,this}get _root(){return this._nodes[0]}get _currNode(){let e=this._nodes;return e[e.length-1]}set _currNode(e){let t=this._nodes;t[t.length-1]=e;}};$.CodeGen=Uu;function mn(n,e){for(let t in e)n[t]=(n[t]||0)+(e[t]||0);return n}function hs(n,e){return e instanceof W._CodeOrName?mn(n,e.names):n}function Wn(n,e,t){if(n instanceof W.Name)return r(n);if(!i(n))return n;return new W._Code(n._items.reduce((a,s)=>(s instanceof W.Name&&(s=r(s)),s instanceof W._Code?a.push(...s._items):a.push(s),a),[]));function r(a){let s=t[a.str];return s===void 0||e[a.str]!==1?a:(delete e[a.str],s)}function i(a){return a instanceof W._Code&&a._items.some(s=>s instanceof W.Name&&e[s.str]===1&&t[s.str]!==void 0)}}function FC(n,e){for(let t in e)n[t]=(n[t]||0)-(e[t]||0);}function Wf(n){return typeof n=="boolean"||typeof n=="number"||n===null?!n:(0, W._)`!${zu(n)}`}$.not=Wf;var NC=Mf($.operators.AND);function IC(...n){return n.reduce(NC)}$.and=IC;var kC=Mf($.operators.OR);function RC(...n){return n.reduce(kC)}$.or=RC;function Mf(n){return (e,t)=>e===W.nil?t:t===W.nil?e:(0, W._)`${zu(e)} ${n} ${zu(t)}`}function zu(n){return n instanceof W.Name?n:(0, W._)`(${n})`}});var q=C(j=>{Object.defineProperty(j,"__esModule",{value:true});j.checkStrictMode=j.getErrorPath=j.Type=j.useFunc=j.setEvaluated=j.evaluatedPropsToName=j.mergeEvaluated=j.eachItem=j.unescapeJsonPointer=j.escapeJsonPointer=j.escapeFragment=j.unescapeFragment=j.schemaRefOrVal=j.schemaHasRulesButRef=j.schemaHasRules=j.checkUnknownRules=j.alwaysValidSchema=j.toHash=void 0;var Y=I(),$C=Lr();function VC(n){let e={};for(let t of n)e[t]=true;return e}j.toHash=VC;function jC(n,e){return typeof e=="boolean"?e:Object.keys(e).length===0?true:(Hf(n,e),!Uf(e,n.self.RULES.all))}j.alwaysValidSchema=jC;function Hf(n,e=n.schema){let{opts:t,self:r}=n;if(!t.strictSchema||typeof e=="boolean")return;let i=r.RULES.keywords;for(let a in e)i[a]||Xf(n,`unknown keyword: "${a}"`);}j.checkUnknownRules=Hf;function Uf(n,e){if(typeof n=="boolean")return !n;for(let t in n)if(e[t])return true;return false}j.schemaHasRules=Uf;function qC(n,e){if(typeof n=="boolean")return !n;for(let t in n)if(t!=="$ref"&&e.all[t])return true;return false}j.schemaHasRulesButRef=qC;function LC({topSchemaRef:n,schemaPath:e},t,r,i){if(!i){if(typeof t=="number"||typeof t=="boolean")return t;if(typeof t=="string")return (0, Y._)`${t}`}return (0, Y._)`${n}${e}${(0, Y.getProperty)(r)}`}j.schemaRefOrVal=LC;function BC(n){return zf(decodeURIComponent(n))}j.unescapeFragment=BC;function WC(n){return encodeURIComponent(Xu(n))}j.escapeFragment=WC;function Xu(n){return typeof n=="number"?`${n}`:n.replace(/~/g,"~0").replace(/\//g,"~1")}j.escapeJsonPointer=Xu;function zf(n){return n.replace(/~1/g,"/").replace(/~0/g,"~")}j.unescapeJsonPointer=zf;function MC(n,e){if(Array.isArray(n))for(let t of n)e(t);else e(n);}j.eachItem=MC;function Gf({mergeNames:n,mergeToName:e,mergeValues:t,resultToName:r}){return (i,a,s,o)=>{let u=s===void 0?a:s instanceof Y.Name?(a instanceof Y.Name?n(i,a,s):e(i,a,s),s):a instanceof Y.Name?(e(i,s,a),a):t(a,s);return o===Y.Name&&!(u instanceof Y.Name)?r(i,u):u}}j.mergeEvaluated={props:Gf({mergeNames:(n,e,t)=>n.if((0, Y._)`${t} !== true && ${e} !== undefined`,()=>{n.if((0, Y._)`${e} === true`,()=>n.assign(t,true),()=>n.assign(t,(0, Y._)`${t} || {}`).code((0, Y._)`Object.assign(${t}, ${e})`));}),mergeToName:(n,e,t)=>n.if((0, Y._)`${t} !== true`,()=>{e===true?n.assign(t,true):(n.assign(t,(0, Y._)`${t} || {}`),Yu(n,t,e));}),mergeValues:(n,e)=>n===true?true:{...n,...e},resultToName:Kf}),items:Gf({mergeNames:(n,e,t)=>n.if((0, Y._)`${t} !== true && ${e} !== undefined`,()=>n.assign(t,(0, Y._)`${e} === true ? true : ${t} > ${e} ? ${t} : ${e}`)),mergeToName:(n,e,t)=>n.if((0, Y._)`${t} !== true`,()=>n.assign(t,e===true?true:(0, Y._)`${t} > ${e} ? ${t} : ${e}`)),mergeValues:(n,e)=>n===true?true:Math.max(n,e),resultToName:(n,e)=>n.var("items",e)})};function Kf(n,e){if(e===true)return n.var("props",true);let t=n.var("props",(0, Y._)`{}`);return e!==void 0&&Yu(n,t,e),t}j.evaluatedPropsToName=Kf;function Yu(n,e,t){Object.keys(t).forEach(r=>n.assign((0, Y._)`${e}${(0, Y.getProperty)(r)}`,true));}j.setEvaluated=Yu;var Jf={};function GC(n,e){return n.scopeValue("func",{ref:e,code:Jf[e.code]||(Jf[e.code]=new $C._Code(e.code))})}j.useFunc=GC;var Ku;(function(n){n[n.Num=0]="Num",n[n.Str=1]="Str";})(Ku||(j.Type=Ku={}));function JC(n,e,t){if(n instanceof Y.Name){let r=e===Ku.Num;return t?r?(0, Y._)`"[" + ${n} + "]"`:(0, Y._)`"['" + ${n} + "']"`:r?(0, Y._)`"/" + ${n}`:(0, Y._)`"/" + ${n}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return t?(0, Y.getProperty)(n).toString():"/"+Xu(n)}j.getErrorPath=JC;function Xf(n,e,t=n.opts.strictSchema){if(t){if(e=`strict mode: ${e}`,t===true)throw new Error(e);n.self.logger.warn(e);}}j.checkStrictMode=Xf;});var Ye=C(Zu=>{Object.defineProperty(Zu,"__esModule",{value:true});var De=I(),HC={data:new De.Name("data"),valCxt:new De.Name("valCxt"),instancePath:new De.Name("instancePath"),parentData:new De.Name("parentData"),parentDataProperty:new De.Name("parentDataProperty"),rootData:new De.Name("rootData"),dynamicAnchors:new De.Name("dynamicAnchors"),vErrors:new De.Name("vErrors"),errors:new De.Name("errors"),this:new De.Name("this"),self:new De.Name("self"),scope:new De.Name("scope"),json:new De.Name("json"),jsonPos:new De.Name("jsonPos"),jsonLen:new De.Name("jsonLen"),jsonPart:new De.Name("jsonPart")};Zu.default=HC;});var Hr=C(we=>{Object.defineProperty(we,"__esModule",{value:true});we.extendErrors=we.resetErrorsCount=we.reportExtraError=we.reportError=we.keyword$DataError=we.keywordError=void 0;var G=I(),fs=q(),ke=Ye();we.keywordError={message:({keyword:n})=>(0, G.str)`must pass "${n}" keyword validation`};we.keyword$DataError={message:({keyword:n,schemaType:e})=>e?(0, G.str)`"${n}" keyword must be ${e} ($data)`:(0, G.str)`"${n}" keyword is invalid ($data)`};function UC(n,e=we.keywordError,t,r){let{it:i}=n,{gen:a,compositeRule:s,allErrors:o}=i,u=Qf(n,e,t);r??(s||o)?Yf(a,u):Zf(i,(0, G._)`[${u}]`);}we.reportError=UC;function zC(n,e=we.keywordError,t){let{it:r}=n,{gen:i,compositeRule:a,allErrors:s}=r,o=Qf(n,e,t);Yf(i,o),a||s||Zf(r,ke.default.vErrors);}we.reportExtraError=zC;function KC(n,e){n.assign(ke.default.errors,e),n.if((0, G._)`${ke.default.vErrors} !== null`,()=>n.if(e,()=>n.assign((0, G._)`${ke.default.vErrors}.length`,e),()=>n.assign(ke.default.vErrors,null)));}we.resetErrorsCount=KC;function XC({gen:n,keyword:e,schemaValue:t,data:r,errsCount:i,it:a}){if(i===void 0)throw new Error("ajv implementation error");let s=n.name("err");n.forRange("i",i,ke.default.errors,o=>{n.const(s,(0, G._)`${ke.default.vErrors}[${o}]`),n.if((0, G._)`${s}.instancePath === undefined`,()=>n.assign((0, G._)`${s}.instancePath`,(0, G.strConcat)(ke.default.instancePath,a.errorPath))),n.assign((0, G._)`${s}.schemaPath`,(0, G.str)`${a.errSchemaPath}/${e}`),a.opts.verbose&&(n.assign((0, G._)`${s}.schema`,t),n.assign((0, G._)`${s}.data`,r));});}we.extendErrors=XC;function Yf(n,e){let t=n.const("err",e);n.if((0, G._)`${ke.default.vErrors} === null`,()=>n.assign(ke.default.vErrors,(0, G._)`[${t}]`),(0, G._)`${ke.default.vErrors}.push(${t})`),n.code((0, G._)`${ke.default.errors}++`);}function Zf(n,e){let{gen:t,validateName:r,schemaEnv:i}=n;i.$async?t.throw((0, G._)`new ${n.ValidationError}(${e})`):(t.assign((0, G._)`${r}.errors`,e),t.return(false));}var gn={keyword:new G.Name("keyword"),schemaPath:new G.Name("schemaPath"),params:new G.Name("params"),propertyName:new G.Name("propertyName"),message:new G.Name("message"),schema:new G.Name("schema"),parentSchema:new G.Name("parentSchema")};function Qf(n,e,t){let{createErrors:r}=n.it;return r===false?(0, G._)`{}`:YC(n,e,t)}function YC(n,e,t={}){let{gen:r,it:i}=n,a=[ZC(i,t),QC(n,t)];return ev(n,e,a),r.object(...a)}function ZC({errorPath:n},{instancePath:e}){let t=e?(0, G.str)`${n}${(0, fs.getErrorPath)(e,fs.Type.Str)}`:n;return [ke.default.instancePath,(0, G.strConcat)(ke.default.instancePath,t)]}function QC({keyword:n,it:{errSchemaPath:e}},{schemaPath:t,parentSchema:r}){let i=r?e:(0, G.str)`${e}/${n}`;return t&&(i=(0, G.str)`${i}${(0, fs.getErrorPath)(t,fs.Type.Str)}`),[gn.schemaPath,i]}function ev(n,{params:e,message:t},r){let{keyword:i,data:a,schemaValue:s,it:o}=n,{opts:u,propertyName:l,topSchemaRef:c,schemaPath:h}=o;r.push([gn.keyword,i],[gn.params,typeof e=="function"?e(n):e||(0, G._)`{}`]),u.messages&&r.push([gn.message,typeof t=="function"?t(n):t]),u.verbose&&r.push([gn.schema,s],[gn.parentSchema,(0, G._)`${c}${h}`],[ke.default.data,a]),l&&r.push([gn.propertyName,l]);}});var tp=C(Mn=>{Object.defineProperty(Mn,"__esModule",{value:true});Mn.boolOrEmptySchema=Mn.topBoolOrEmptySchema=void 0;var tv=Hr(),nv=I(),rv=Ye(),iv={message:"boolean schema is false"};function sv(n){let{gen:e,schema:t,validateName:r}=n;t===false?ep(n,false):typeof t=="object"&&t.$async===true?e.return(rv.default.data):(e.assign((0, nv._)`${r}.errors`,null),e.return(true));}Mn.topBoolOrEmptySchema=sv;function av(n,e){let{gen:t,schema:r}=n;r===false?(t.var(e,false),ep(n)):t.var(e,true);}Mn.boolOrEmptySchema=av;function ep(n,e){let{gen:t,data:r}=n,i={gen:t,keyword:"false schema",data:r,schema:false,schemaCode:false,schemaValue:false,params:{},it:n};(0, tv.reportError)(i,iv,void 0,e);}});var Qu=C(Gn=>{Object.defineProperty(Gn,"__esModule",{value:true});Gn.getRules=Gn.isJSONType=void 0;var ov=["string","number","integer","boolean","null","object","array"],uv=new Set(ov);function lv(n){return typeof n=="string"&&uv.has(n)}Gn.isJSONType=lv;function cv(){let n={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return {types:{...n,integer:true,boolean:true,null:true},rules:[{rules:[]},n.number,n.string,n.array,n.object],post:{rules:[]},all:{},keywords:{}}}Gn.getRules=cv;});var el=C(Mt=>{Object.defineProperty(Mt,"__esModule",{value:true});Mt.shouldUseRule=Mt.shouldUseGroup=Mt.schemaHasRulesForType=void 0;function hv({schema:n,self:e},t){let r=e.RULES.types[t];return r&&r!==true&&np(n,r)}Mt.schemaHasRulesForType=hv;function np(n,e){return e.rules.some(t=>rp(n,t))}Mt.shouldUseGroup=np;function rp(n,e){var t;return n[e.keyword]!==void 0||((t=e.definition.implements)===null||t===void 0?void 0:t.some(r=>n[r]!==void 0))}Mt.shouldUseRule=rp;});var Ur=C(Ae=>{Object.defineProperty(Ae,"__esModule",{value:true});Ae.reportTypeError=Ae.checkDataTypes=Ae.checkDataType=Ae.coerceAndCheckDataType=Ae.getJSONTypes=Ae.getSchemaTypes=Ae.DataType=void 0;var dv=Qu(),fv=el(),pv=Hr(),k=I(),ip=q(),Jn;(function(n){n[n.Correct=0]="Correct",n[n.Wrong=1]="Wrong";})(Jn||(Ae.DataType=Jn={}));function mv(n){let e=sp(n.type);if(e.includes("null")){if(n.nullable===false)throw new Error("type: null contradicts nullable: false")}else {if(!e.length&&n.nullable!==void 0)throw new Error('"nullable" cannot be used without "type"');n.nullable===true&&e.push("null");}return e}Ae.getSchemaTypes=mv;function sp(n){let e=Array.isArray(n)?n:n?[n]:[];if(e.every(dv.isJSONType))return e;throw new Error("type must be JSONType or JSONType[]: "+e.join(","))}Ae.getJSONTypes=sp;function gv(n,e){let{gen:t,data:r,opts:i}=n,a=yv(e,i.coerceTypes),s=e.length>0&&!(a.length===0&&e.length===1&&(0, fv.schemaHasRulesForType)(n,e[0]));if(s){let o=nl(e,r,i.strictNumbers,Jn.Wrong);t.if(o,()=>{a.length?Cv(n,e,a):rl(n);});}return s}Ae.coerceAndCheckDataType=gv;var ap=new Set(["string","number","integer","boolean","null"]);function yv(n,e){return e?n.filter(t=>ap.has(t)||e==="array"&&t==="array"):[]}function Cv(n,e,t){let{gen:r,data:i,opts:a}=n,s=r.let("dataType",(0, k._)`typeof ${i}`),o=r.let("coerced",(0, k._)`undefined`);a.coerceTypes==="array"&&r.if((0, k._)`${s} == 'object' && Array.isArray(${i}) && ${i}.length == 1`,()=>r.assign(i,(0, k._)`${i}[0]`).assign(s,(0, k._)`typeof ${i}`).if(nl(e,i,a.strictNumbers),()=>r.assign(o,i))),r.if((0, k._)`${o} !== undefined`);for(let l of t)(ap.has(l)||l==="array"&&a.coerceTypes==="array")&&u(l);r.else(),rl(n),r.endIf(),r.if((0, k._)`${o} !== undefined`,()=>{r.assign(i,o),vv(n,o);});function u(l){switch(l){case "string":r.elseIf((0, k._)`${s} == "number" || ${s} == "boolean"`).assign(o,(0, k._)`"" + ${i}`).elseIf((0, k._)`${i} === null`).assign(o,(0, k._)`""`);return;case "number":r.elseIf((0, k._)`${s} == "boolean" || ${i} === null
1
+ 'use strict';var zod=require('zod'),constants=require('@drincs/pixi-vn-json/constants'),characters=require('@drincs/pixi-vn/characters');var Y0=Object.create;var Sf=Object.defineProperty;var Z0=Object.getOwnPropertyDescriptor;var Q0=Object.getOwnPropertyNames;var eC=Object.getPrototypeOf,tC=Object.prototype.hasOwnProperty;var C=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports);var nC=(n,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Q0(e))!tC.call(n,i)&&i!==t&&Sf(n,i,{get:()=>e[i],enumerable:!(r=Z0(e,i))||r.enumerable});return n};var Ir=(n,e,t)=>(t=n!=null?Y0(eC(n)):{},nC(Sf(t,"default",{value:n,enumerable:true}),n));var Lr=C(J=>{Object.defineProperty(J,"__esModule",{value:true});J.regexpCode=J.getEsmExportName=J.getProperty=J.safeStringify=J.stringify=J.strConcat=J.addCodeArg=J.str=J._=J.nil=J._Code=J.Name=J.IDENTIFIER=J._CodeOrName=void 0;var jr=class{};J._CodeOrName=jr;J.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var dn=class extends jr{constructor(e){if(super(),!J.IDENTIFIER.test(e))throw new Error("CodeGen: name must be a valid identifier");this.str=e;}toString(){return this.str}emptyStr(){return false}get names(){return {[this.str]:1}}};J.Name=dn;var Xe=class extends jr{constructor(e){super(),this._items=typeof e=="string"?[e]:e;}toString(){return this.str}emptyStr(){if(this._items.length>1)return false;let e=this._items[0];return e===""||e==='""'}get str(){var e;return (e=this._str)!==null&&e!==void 0?e:this._str=this._items.reduce((t,r)=>`${t}${r}`,"")}get names(){var e;return (e=this._names)!==null&&e!==void 0?e:this._names=this._items.reduce((t,r)=>(r instanceof dn&&(t[r.str]=(t[r.str]||0)+1),t),{})}};J._Code=Xe;J.nil=new Xe("");function Lf(n,...e){let t=[n[0]],r=0;for(;r<e.length;)Iu(t,e[r]),t.push(n[++r]);return new Xe(t)}J._=Lf;var Nu=new Xe("+");function Bf(n,...e){let t=[qr(n[0])],r=0;for(;r<e.length;)t.push(Nu),Iu(t,e[r]),t.push(Nu,qr(n[++r]));return SC(t),new Xe(t)}J.str=Bf;function Iu(n,e){e instanceof Xe?n.push(...e._items):e instanceof dn?n.push(e):n.push(DC(e));}J.addCodeArg=Iu;function SC(n){let e=1;for(;e<n.length-1;){if(n[e]===Nu){let t=bC(n[e-1],n[e+1]);if(t!==void 0){n.splice(e-1,3,t);continue}n[e++]="+";}e++;}}function bC(n,e){if(e==='""')return n;if(n==='""')return e;if(typeof n=="string")return e instanceof dn||n[n.length-1]!=='"'?void 0:typeof e!="string"?`${n.slice(0,-1)}${e}"`:e[0]==='"'?n.slice(0,-1)+e.slice(1):void 0;if(typeof e=="string"&&e[0]==='"'&&!(n instanceof dn))return `"${n}${e.slice(1)}`}function wC(n,e){return e.emptyStr()?n:n.emptyStr()?e:Bf`${n}${e}`}J.strConcat=wC;function DC(n){return typeof n=="number"||typeof n=="boolean"||n===null?n:qr(Array.isArray(n)?n.join(","):n)}function AC(n){return new Xe(qr(n))}J.stringify=AC;function qr(n){return JSON.stringify(n).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}J.safeStringify=qr;function PC(n){return typeof n=="string"&&J.IDENTIFIER.test(n)?new Xe(`.${n}`):Lf`[${n}]`}J.getProperty=PC;function TC(n){if(typeof n=="string"&&J.IDENTIFIER.test(n))return new Xe(`${n}`);throw new Error(`CodeGen: invalid export name: ${n}, use explicit $id name mapping`)}J.getEsmExportName=TC;function xC(n){return new Xe(n.toString())}J.regexpCode=xC;});var $u=C(qe=>{Object.defineProperty(qe,"__esModule",{value:true});qe.ValueScope=qe.ValueScopeName=qe.Scope=qe.varKinds=qe.UsedValueState=void 0;var je=Lr(),ku=class extends Error{constructor(e){super(`CodeGen: "code" for ${e} not defined`),this.value=e.value;}},as;(function(n){n[n.Started=0]="Started",n[n.Completed=1]="Completed";})(as||(qe.UsedValueState=as={}));qe.varKinds={const:new je.Name("const"),let:new je.Name("let"),var:new je.Name("var")};var os=class{constructor({prefixes:e,parent:t}={}){this._names={},this._prefixes=e,this._parent=t;}toName(e){return e instanceof je.Name?e:this.name(e)}name(e){return new je.Name(this._newName(e))}_newName(e){let t=this._names[e]||this._nameGroup(e);return `${e}${t.index++}`}_nameGroup(e){var t,r;if(!((r=(t=this._parent)===null||t===void 0?void 0:t._prefixes)===null||r===void 0)&&r.has(e)||this._prefixes&&!this._prefixes.has(e))throw new Error(`CodeGen: prefix "${e}" is not allowed in this scope`);return this._names[e]={prefix:e,index:0}}};qe.Scope=os;var us=class extends je.Name{constructor(e,t){super(t),this.prefix=e;}setValue(e,{property:t,itemIndex:r}){this.value=e,this.scopePath=(0, je._)`.${new je.Name(t)}[${r}]`;}};qe.ValueScopeName=us;var OC=(0, je._)`\n`,Ru=class extends os{constructor(e){super(e),this._values={},this._scope=e.scope,this.opts={...e,_n:e.lines?OC:je.nil};}get(){return this._scope}name(e){return new us(e,this._newName(e))}value(e,t){var r;if(t.ref===void 0)throw new Error("CodeGen: ref must be passed in value");let i=this.toName(e),{prefix:a}=i,s=(r=t.key)!==null&&r!==void 0?r:t.ref,o=this._values[a];if(o){let c=o.get(s);if(c)return c}else o=this._values[a]=new Map;o.set(s,i);let u=this._scope[a]||(this._scope[a]=[]),l=u.length;return u[l]=t.ref,i.setValue(t,{property:a,itemIndex:l}),i}getValue(e,t){let r=this._values[e];if(r)return r.get(t)}scopeRefs(e,t=this._values){return this._reduceValues(t,r=>{if(r.scopePath===void 0)throw new Error(`CodeGen: name "${r}" has no value`);return (0, je._)`${e}${r.scopePath}`})}scopeCode(e=this._values,t,r){return this._reduceValues(e,i=>{if(i.value===void 0)throw new Error(`CodeGen: name "${i}" has no value`);return i.value.code},t,r)}_reduceValues(e,t,r={},i){let a=je.nil;for(let s in e){let o=e[s];if(!o)continue;let u=r[s]=r[s]||new Map;o.forEach(l=>{if(u.has(l))return;u.set(l,as.Started);let c=t(l);if(c){let h=this.opts.es5?qe.varKinds.var:qe.varKinds.const;a=(0, je._)`${a}${h} ${l} = ${c};${this.opts._n}`;}else if(c=i?.(l))a=(0, je._)`${a}${c}${this.opts._n}`;else throw new ku(l);u.set(l,as.Completed);});}return a}};qe.ValueScope=Ru;});var I=C($=>{Object.defineProperty($,"__esModule",{value:true});$.or=$.and=$.not=$.CodeGen=$.operators=$.varKinds=$.ValueScopeName=$.ValueScope=$.Scope=$.Name=$.regexpCode=$.stringify=$.getProperty=$.nil=$.strConcat=$.str=$._=void 0;var W=Lr(),lt=$u(),Wt=Lr();Object.defineProperty($,"_",{enumerable:true,get:function(){return Wt._}});Object.defineProperty($,"str",{enumerable:true,get:function(){return Wt.str}});Object.defineProperty($,"strConcat",{enumerable:true,get:function(){return Wt.strConcat}});Object.defineProperty($,"nil",{enumerable:true,get:function(){return Wt.nil}});Object.defineProperty($,"getProperty",{enumerable:true,get:function(){return Wt.getProperty}});Object.defineProperty($,"stringify",{enumerable:true,get:function(){return Wt.stringify}});Object.defineProperty($,"regexpCode",{enumerable:true,get:function(){return Wt.regexpCode}});Object.defineProperty($,"Name",{enumerable:true,get:function(){return Wt.Name}});var ds=$u();Object.defineProperty($,"Scope",{enumerable:true,get:function(){return ds.Scope}});Object.defineProperty($,"ValueScope",{enumerable:true,get:function(){return ds.ValueScope}});Object.defineProperty($,"ValueScopeName",{enumerable:true,get:function(){return ds.ValueScopeName}});Object.defineProperty($,"varKinds",{enumerable:true,get:function(){return ds.varKinds}});$.operators={GT:new W._Code(">"),GTE:new W._Code(">="),LT:new W._Code("<"),LTE:new W._Code("<="),EQ:new W._Code("==="),NEQ:new W._Code("!=="),NOT:new W._Code("!"),OR:new W._Code("||"),AND:new W._Code("&&"),ADD:new W._Code("+")};var Nt=class{optimizeNodes(){return this}optimizeNames(e,t){return this}},Vu=class extends Nt{constructor(e,t,r){super(),this.varKind=e,this.name=t,this.rhs=r;}render({es5:e,_n:t}){let r=e?lt.varKinds.var:this.varKind,i=this.rhs===void 0?"":` = ${this.rhs}`;return `${r} ${this.name}${i};`+t}optimizeNames(e,t){if(e[this.name.str])return this.rhs&&(this.rhs=Wn(this.rhs,e,t)),this}get names(){return this.rhs instanceof W._CodeOrName?this.rhs.names:{}}},ls=class extends Nt{constructor(e,t,r){super(),this.lhs=e,this.rhs=t,this.sideEffects=r;}render({_n:e}){return `${this.lhs} = ${this.rhs};`+e}optimizeNames(e,t){if(!(this.lhs instanceof W.Name&&!e[this.lhs.str]&&!this.sideEffects))return this.rhs=Wn(this.rhs,e,t),this}get names(){let e=this.lhs instanceof W.Name?{}:{...this.lhs.names};return hs(e,this.rhs)}},ju=class extends ls{constructor(e,t,r,i){super(e,r,i),this.op=t;}render({_n:e}){return `${this.lhs} ${this.op}= ${this.rhs};`+e}},qu=class extends Nt{constructor(e){super(),this.label=e,this.names={};}render({_n:e}){return `${this.label}:`+e}},Lu=class extends Nt{constructor(e){super(),this.label=e,this.names={};}render({_n:e}){return `break${this.label?` ${this.label}`:""};`+e}},Bu=class extends Nt{constructor(e){super(),this.error=e;}render({_n:e}){return `throw ${this.error};`+e}get names(){return this.error.names}},Wu=class extends Nt{constructor(e){super(),this.code=e;}render({_n:e}){return `${this.code};`+e}optimizeNodes(){return `${this.code}`?this:void 0}optimizeNames(e,t){return this.code=Wn(this.code,e,t),this}get names(){return this.code instanceof W._CodeOrName?this.code.names:{}}},Br=class extends Nt{constructor(e=[]){super(),this.nodes=e;}render(e){return this.nodes.reduce((t,r)=>t+r.render(e),"")}optimizeNodes(){let{nodes:e}=this,t=e.length;for(;t--;){let r=e[t].optimizeNodes();Array.isArray(r)?e.splice(t,1,...r):r?e[t]=r:e.splice(t,1);}return e.length>0?this:void 0}optimizeNames(e,t){let{nodes:r}=this,i=r.length;for(;i--;){let a=r[i];a.optimizeNames(e,t)||(FC(e,a.names),r.splice(i,1));}return r.length>0?this:void 0}get names(){return this.nodes.reduce((e,t)=>mn(e,t.names),{})}},It=class extends Br{render(e){return "{"+e._n+super.render(e)+"}"+e._n}},Mu=class extends Br{},Bn=class extends It{};Bn.kind="else";var fn=class n extends It{constructor(e,t){super(t),this.condition=e;}render(e){let t=`if(${this.condition})`+super.render(e);return this.else&&(t+="else "+this.else.render(e)),t}optimizeNodes(){super.optimizeNodes();let e=this.condition;if(e===true)return this.nodes;let t=this.else;if(t){let r=t.optimizeNodes();t=this.else=Array.isArray(r)?new Bn(r):r;}if(t)return e===false?t instanceof n?t:t.nodes:this.nodes.length?this:new n(Wf(e),t instanceof n?[t]:t.nodes);if(!(e===false||!this.nodes.length))return this}optimizeNames(e,t){var r;if(this.else=(r=this.else)===null||r===void 0?void 0:r.optimizeNames(e,t),!!(super.optimizeNames(e,t)||this.else))return this.condition=Wn(this.condition,e,t),this}get names(){let e=super.names;return hs(e,this.condition),this.else&&mn(e,this.else.names),e}};fn.kind="if";var pn=class extends It{};pn.kind="for";var Gu=class extends pn{constructor(e){super(),this.iteration=e;}render(e){return `for(${this.iteration})`+super.render(e)}optimizeNames(e,t){if(super.optimizeNames(e,t))return this.iteration=Wn(this.iteration,e,t),this}get names(){return mn(super.names,this.iteration.names)}},Ju=class extends pn{constructor(e,t,r,i){super(),this.varKind=e,this.name=t,this.from=r,this.to=i;}render(e){let t=e.es5?lt.varKinds.var:this.varKind,{name:r,from:i,to:a}=this;return `for(${t} ${r}=${i}; ${r}<${a}; ${r}++)`+super.render(e)}get names(){let e=hs(super.names,this.from);return hs(e,this.to)}},cs=class extends pn{constructor(e,t,r,i){super(),this.loop=e,this.varKind=t,this.name=r,this.iterable=i;}render(e){return `for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(e)}optimizeNames(e,t){if(super.optimizeNames(e,t))return this.iterable=Wn(this.iterable,e,t),this}get names(){return mn(super.names,this.iterable.names)}},Wr=class extends It{constructor(e,t,r){super(),this.name=e,this.args=t,this.async=r;}render(e){return `${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(e)}};Wr.kind="func";var Mr=class extends Br{render(e){return "return "+super.render(e)}};Mr.kind="return";var Hu=class extends It{render(e){let t="try"+super.render(e);return this.catch&&(t+=this.catch.render(e)),this.finally&&(t+=this.finally.render(e)),t}optimizeNodes(){var e,t;return super.optimizeNodes(),(e=this.catch)===null||e===void 0||e.optimizeNodes(),(t=this.finally)===null||t===void 0||t.optimizeNodes(),this}optimizeNames(e,t){var r,i;return super.optimizeNames(e,t),(r=this.catch)===null||r===void 0||r.optimizeNames(e,t),(i=this.finally)===null||i===void 0||i.optimizeNames(e,t),this}get names(){let e=super.names;return this.catch&&mn(e,this.catch.names),this.finally&&mn(e,this.finally.names),e}},Gr=class extends It{constructor(e){super(),this.error=e;}render(e){return `catch(${this.error})`+super.render(e)}};Gr.kind="catch";var Jr=class extends It{render(e){return "finally"+super.render(e)}};Jr.kind="finally";var Uu=class{constructor(e,t={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...t,_n:t.lines?`
2
+ `:""},this._extScope=e,this._scope=new lt.Scope({parent:e}),this._nodes=[new Mu];}toString(){return this._root.render(this.opts)}name(e){return this._scope.name(e)}scopeName(e){return this._extScope.name(e)}scopeValue(e,t){let r=this._extScope.value(e,t);return (this._values[r.prefix]||(this._values[r.prefix]=new Set)).add(r),r}getScopeValue(e,t){return this._extScope.getValue(e,t)}scopeRefs(e){return this._extScope.scopeRefs(e,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(e,t,r,i){let a=this._scope.toName(t);return r!==void 0&&i&&(this._constants[a.str]=r),this._leafNode(new Vu(e,a,r)),a}const(e,t,r){return this._def(lt.varKinds.const,e,t,r)}let(e,t,r){return this._def(lt.varKinds.let,e,t,r)}var(e,t,r){return this._def(lt.varKinds.var,e,t,r)}assign(e,t,r){return this._leafNode(new ls(e,t,r))}add(e,t){return this._leafNode(new ju(e,$.operators.ADD,t))}code(e){return typeof e=="function"?e():e!==W.nil&&this._leafNode(new Wu(e)),this}object(...e){let t=["{"];for(let[r,i]of e)t.length>1&&t.push(","),t.push(r),(r!==i||this.opts.es5)&&(t.push(":"),(0, W.addCodeArg)(t,i));return t.push("}"),new W._Code(t)}if(e,t,r){if(this._blockNode(new fn(e)),t&&r)this.code(t).else().code(r).endIf();else if(t)this.code(t).endIf();else if(r)throw new Error('CodeGen: "else" body without "then" body');return this}elseIf(e){return this._elseNode(new fn(e))}else(){return this._elseNode(new Bn)}endIf(){return this._endBlockNode(fn,Bn)}_for(e,t){return this._blockNode(e),t&&this.code(t).endFor(),this}for(e,t){return this._for(new Gu(e),t)}forRange(e,t,r,i,a=this.opts.es5?lt.varKinds.var:lt.varKinds.let){let s=this._scope.toName(e);return this._for(new Ju(a,s,t,r),()=>i(s))}forOf(e,t,r,i=lt.varKinds.const){let a=this._scope.toName(e);if(this.opts.es5){let s=t instanceof W.Name?t:this.var("_arr",t);return this.forRange("_i",0,(0, W._)`${s}.length`,o=>{this.var(a,(0, W._)`${s}[${o}]`),r(a);})}return this._for(new cs("of",i,a,t),()=>r(a))}forIn(e,t,r,i=this.opts.es5?lt.varKinds.var:lt.varKinds.const){if(this.opts.ownProperties)return this.forOf(e,(0, W._)`Object.keys(${t})`,r);let a=this._scope.toName(e);return this._for(new cs("in",i,a,t),()=>r(a))}endFor(){return this._endBlockNode(pn)}label(e){return this._leafNode(new qu(e))}break(e){return this._leafNode(new Lu(e))}return(e){let t=new Mr;if(this._blockNode(t),this.code(e),t.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(Mr)}try(e,t,r){if(!t&&!r)throw new Error('CodeGen: "try" without "catch" and "finally"');let i=new Hu;if(this._blockNode(i),this.code(e),t){let a=this.name("e");this._currNode=i.catch=new Gr(a),t(a);}return r&&(this._currNode=i.finally=new Jr,this.code(r)),this._endBlockNode(Gr,Jr)}throw(e){return this._leafNode(new Bu(e))}block(e,t){return this._blockStarts.push(this._nodes.length),e&&this.code(e).endBlock(t),this}endBlock(e){let t=this._blockStarts.pop();if(t===void 0)throw new Error("CodeGen: not in self-balancing block");let r=this._nodes.length-t;if(r<0||e!==void 0&&r!==e)throw new Error(`CodeGen: wrong number of nodes: ${r} vs ${e} expected`);return this._nodes.length=t,this}func(e,t=W.nil,r,i){return this._blockNode(new Wr(e,t,r)),i&&this.code(i).endFunc(),this}endFunc(){return this._endBlockNode(Wr)}optimize(e=1){for(;e-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants);}_leafNode(e){return this._currNode.nodes.push(e),this}_blockNode(e){this._currNode.nodes.push(e),this._nodes.push(e);}_endBlockNode(e,t){let r=this._currNode;if(r instanceof e||t&&r instanceof t)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${t?`${e.kind}/${t.kind}`:e.kind}"`)}_elseNode(e){let t=this._currNode;if(!(t instanceof fn))throw new Error('CodeGen: "else" without "if"');return this._currNode=t.else=e,this}get _root(){return this._nodes[0]}get _currNode(){let e=this._nodes;return e[e.length-1]}set _currNode(e){let t=this._nodes;t[t.length-1]=e;}};$.CodeGen=Uu;function mn(n,e){for(let t in e)n[t]=(n[t]||0)+(e[t]||0);return n}function hs(n,e){return e instanceof W._CodeOrName?mn(n,e.names):n}function Wn(n,e,t){if(n instanceof W.Name)return r(n);if(!i(n))return n;return new W._Code(n._items.reduce((a,s)=>(s instanceof W.Name&&(s=r(s)),s instanceof W._Code?a.push(...s._items):a.push(s),a),[]));function r(a){let s=t[a.str];return s===void 0||e[a.str]!==1?a:(delete e[a.str],s)}function i(a){return a instanceof W._Code&&a._items.some(s=>s instanceof W.Name&&e[s.str]===1&&t[s.str]!==void 0)}}function FC(n,e){for(let t in e)n[t]=(n[t]||0)-(e[t]||0);}function Wf(n){return typeof n=="boolean"||typeof n=="number"||n===null?!n:(0, W._)`!${zu(n)}`}$.not=Wf;var NC=Mf($.operators.AND);function IC(...n){return n.reduce(NC)}$.and=IC;var kC=Mf($.operators.OR);function RC(...n){return n.reduce(kC)}$.or=RC;function Mf(n){return (e,t)=>e===W.nil?t:t===W.nil?e:(0, W._)`${zu(e)} ${n} ${zu(t)}`}function zu(n){return n instanceof W.Name?n:(0, W._)`(${n})`}});var q=C(j=>{Object.defineProperty(j,"__esModule",{value:true});j.checkStrictMode=j.getErrorPath=j.Type=j.useFunc=j.setEvaluated=j.evaluatedPropsToName=j.mergeEvaluated=j.eachItem=j.unescapeJsonPointer=j.escapeJsonPointer=j.escapeFragment=j.unescapeFragment=j.schemaRefOrVal=j.schemaHasRulesButRef=j.schemaHasRules=j.checkUnknownRules=j.alwaysValidSchema=j.toHash=void 0;var Y=I(),$C=Lr();function VC(n){let e={};for(let t of n)e[t]=true;return e}j.toHash=VC;function jC(n,e){return typeof e=="boolean"?e:Object.keys(e).length===0?true:(Hf(n,e),!Uf(e,n.self.RULES.all))}j.alwaysValidSchema=jC;function Hf(n,e=n.schema){let{opts:t,self:r}=n;if(!t.strictSchema||typeof e=="boolean")return;let i=r.RULES.keywords;for(let a in e)i[a]||Xf(n,`unknown keyword: "${a}"`);}j.checkUnknownRules=Hf;function Uf(n,e){if(typeof n=="boolean")return !n;for(let t in n)if(e[t])return true;return false}j.schemaHasRules=Uf;function qC(n,e){if(typeof n=="boolean")return !n;for(let t in n)if(t!=="$ref"&&e.all[t])return true;return false}j.schemaHasRulesButRef=qC;function LC({topSchemaRef:n,schemaPath:e},t,r,i){if(!i){if(typeof t=="number"||typeof t=="boolean")return t;if(typeof t=="string")return (0, Y._)`${t}`}return (0, Y._)`${n}${e}${(0, Y.getProperty)(r)}`}j.schemaRefOrVal=LC;function BC(n){return zf(decodeURIComponent(n))}j.unescapeFragment=BC;function WC(n){return encodeURIComponent(Xu(n))}j.escapeFragment=WC;function Xu(n){return typeof n=="number"?`${n}`:n.replace(/~/g,"~0").replace(/\//g,"~1")}j.escapeJsonPointer=Xu;function zf(n){return n.replace(/~1/g,"/").replace(/~0/g,"~")}j.unescapeJsonPointer=zf;function MC(n,e){if(Array.isArray(n))for(let t of n)e(t);else e(n);}j.eachItem=MC;function Gf({mergeNames:n,mergeToName:e,mergeValues:t,resultToName:r}){return (i,a,s,o)=>{let u=s===void 0?a:s instanceof Y.Name?(a instanceof Y.Name?n(i,a,s):e(i,a,s),s):a instanceof Y.Name?(e(i,s,a),a):t(a,s);return o===Y.Name&&!(u instanceof Y.Name)?r(i,u):u}}j.mergeEvaluated={props:Gf({mergeNames:(n,e,t)=>n.if((0, Y._)`${t} !== true && ${e} !== undefined`,()=>{n.if((0, Y._)`${e} === true`,()=>n.assign(t,true),()=>n.assign(t,(0, Y._)`${t} || {}`).code((0, Y._)`Object.assign(${t}, ${e})`));}),mergeToName:(n,e,t)=>n.if((0, Y._)`${t} !== true`,()=>{e===true?n.assign(t,true):(n.assign(t,(0, Y._)`${t} || {}`),Yu(n,t,e));}),mergeValues:(n,e)=>n===true?true:{...n,...e},resultToName:Kf}),items:Gf({mergeNames:(n,e,t)=>n.if((0, Y._)`${t} !== true && ${e} !== undefined`,()=>n.assign(t,(0, Y._)`${e} === true ? true : ${t} > ${e} ? ${t} : ${e}`)),mergeToName:(n,e,t)=>n.if((0, Y._)`${t} !== true`,()=>n.assign(t,e===true?true:(0, Y._)`${t} > ${e} ? ${t} : ${e}`)),mergeValues:(n,e)=>n===true?true:Math.max(n,e),resultToName:(n,e)=>n.var("items",e)})};function Kf(n,e){if(e===true)return n.var("props",true);let t=n.var("props",(0, Y._)`{}`);return e!==void 0&&Yu(n,t,e),t}j.evaluatedPropsToName=Kf;function Yu(n,e,t){Object.keys(t).forEach(r=>n.assign((0, Y._)`${e}${(0, Y.getProperty)(r)}`,true));}j.setEvaluated=Yu;var Jf={};function GC(n,e){return n.scopeValue("func",{ref:e,code:Jf[e.code]||(Jf[e.code]=new $C._Code(e.code))})}j.useFunc=GC;var Ku;(function(n){n[n.Num=0]="Num",n[n.Str=1]="Str";})(Ku||(j.Type=Ku={}));function JC(n,e,t){if(n instanceof Y.Name){let r=e===Ku.Num;return t?r?(0, Y._)`"[" + ${n} + "]"`:(0, Y._)`"['" + ${n} + "']"`:r?(0, Y._)`"/" + ${n}`:(0, Y._)`"/" + ${n}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return t?(0, Y.getProperty)(n).toString():"/"+Xu(n)}j.getErrorPath=JC;function Xf(n,e,t=n.opts.strictSchema){if(t){if(e=`strict mode: ${e}`,t===true)throw new Error(e);n.self.logger.warn(e);}}j.checkStrictMode=Xf;});var Ye=C(Zu=>{Object.defineProperty(Zu,"__esModule",{value:true});var we=I(),HC={data:new we.Name("data"),valCxt:new we.Name("valCxt"),instancePath:new we.Name("instancePath"),parentData:new we.Name("parentData"),parentDataProperty:new we.Name("parentDataProperty"),rootData:new we.Name("rootData"),dynamicAnchors:new we.Name("dynamicAnchors"),vErrors:new we.Name("vErrors"),errors:new we.Name("errors"),this:new we.Name("this"),self:new we.Name("self"),scope:new we.Name("scope"),json:new we.Name("json"),jsonPos:new we.Name("jsonPos"),jsonLen:new we.Name("jsonLen"),jsonPart:new we.Name("jsonPart")};Zu.default=HC;});var Hr=C(De=>{Object.defineProperty(De,"__esModule",{value:true});De.extendErrors=De.resetErrorsCount=De.reportExtraError=De.reportError=De.keyword$DataError=De.keywordError=void 0;var G=I(),fs=q(),ke=Ye();De.keywordError={message:({keyword:n})=>(0, G.str)`must pass "${n}" keyword validation`};De.keyword$DataError={message:({keyword:n,schemaType:e})=>e?(0, G.str)`"${n}" keyword must be ${e} ($data)`:(0, G.str)`"${n}" keyword is invalid ($data)`};function UC(n,e=De.keywordError,t,r){let{it:i}=n,{gen:a,compositeRule:s,allErrors:o}=i,u=Qf(n,e,t);r??(s||o)?Yf(a,u):Zf(i,(0, G._)`[${u}]`);}De.reportError=UC;function zC(n,e=De.keywordError,t){let{it:r}=n,{gen:i,compositeRule:a,allErrors:s}=r,o=Qf(n,e,t);Yf(i,o),a||s||Zf(r,ke.default.vErrors);}De.reportExtraError=zC;function KC(n,e){n.assign(ke.default.errors,e),n.if((0, G._)`${ke.default.vErrors} !== null`,()=>n.if(e,()=>n.assign((0, G._)`${ke.default.vErrors}.length`,e),()=>n.assign(ke.default.vErrors,null)));}De.resetErrorsCount=KC;function XC({gen:n,keyword:e,schemaValue:t,data:r,errsCount:i,it:a}){if(i===void 0)throw new Error("ajv implementation error");let s=n.name("err");n.forRange("i",i,ke.default.errors,o=>{n.const(s,(0, G._)`${ke.default.vErrors}[${o}]`),n.if((0, G._)`${s}.instancePath === undefined`,()=>n.assign((0, G._)`${s}.instancePath`,(0, G.strConcat)(ke.default.instancePath,a.errorPath))),n.assign((0, G._)`${s}.schemaPath`,(0, G.str)`${a.errSchemaPath}/${e}`),a.opts.verbose&&(n.assign((0, G._)`${s}.schema`,t),n.assign((0, G._)`${s}.data`,r));});}De.extendErrors=XC;function Yf(n,e){let t=n.const("err",e);n.if((0, G._)`${ke.default.vErrors} === null`,()=>n.assign(ke.default.vErrors,(0, G._)`[${t}]`),(0, G._)`${ke.default.vErrors}.push(${t})`),n.code((0, G._)`${ke.default.errors}++`);}function Zf(n,e){let{gen:t,validateName:r,schemaEnv:i}=n;i.$async?t.throw((0, G._)`new ${n.ValidationError}(${e})`):(t.assign((0, G._)`${r}.errors`,e),t.return(false));}var gn={keyword:new G.Name("keyword"),schemaPath:new G.Name("schemaPath"),params:new G.Name("params"),propertyName:new G.Name("propertyName"),message:new G.Name("message"),schema:new G.Name("schema"),parentSchema:new G.Name("parentSchema")};function Qf(n,e,t){let{createErrors:r}=n.it;return r===false?(0, G._)`{}`:YC(n,e,t)}function YC(n,e,t={}){let{gen:r,it:i}=n,a=[ZC(i,t),QC(n,t)];return ev(n,e,a),r.object(...a)}function ZC({errorPath:n},{instancePath:e}){let t=e?(0, G.str)`${n}${(0, fs.getErrorPath)(e,fs.Type.Str)}`:n;return [ke.default.instancePath,(0, G.strConcat)(ke.default.instancePath,t)]}function QC({keyword:n,it:{errSchemaPath:e}},{schemaPath:t,parentSchema:r}){let i=r?e:(0, G.str)`${e}/${n}`;return t&&(i=(0, G.str)`${i}${(0, fs.getErrorPath)(t,fs.Type.Str)}`),[gn.schemaPath,i]}function ev(n,{params:e,message:t},r){let{keyword:i,data:a,schemaValue:s,it:o}=n,{opts:u,propertyName:l,topSchemaRef:c,schemaPath:h}=o;r.push([gn.keyword,i],[gn.params,typeof e=="function"?e(n):e||(0, G._)`{}`]),u.messages&&r.push([gn.message,typeof t=="function"?t(n):t]),u.verbose&&r.push([gn.schema,s],[gn.parentSchema,(0, G._)`${c}${h}`],[ke.default.data,a]),l&&r.push([gn.propertyName,l]);}});var tp=C(Mn=>{Object.defineProperty(Mn,"__esModule",{value:true});Mn.boolOrEmptySchema=Mn.topBoolOrEmptySchema=void 0;var tv=Hr(),nv=I(),rv=Ye(),iv={message:"boolean schema is false"};function sv(n){let{gen:e,schema:t,validateName:r}=n;t===false?ep(n,false):typeof t=="object"&&t.$async===true?e.return(rv.default.data):(e.assign((0, nv._)`${r}.errors`,null),e.return(true));}Mn.topBoolOrEmptySchema=sv;function av(n,e){let{gen:t,schema:r}=n;r===false?(t.var(e,false),ep(n)):t.var(e,true);}Mn.boolOrEmptySchema=av;function ep(n,e){let{gen:t,data:r}=n,i={gen:t,keyword:"false schema",data:r,schema:false,schemaCode:false,schemaValue:false,params:{},it:n};(0, tv.reportError)(i,iv,void 0,e);}});var Qu=C(Gn=>{Object.defineProperty(Gn,"__esModule",{value:true});Gn.getRules=Gn.isJSONType=void 0;var ov=["string","number","integer","boolean","null","object","array"],uv=new Set(ov);function lv(n){return typeof n=="string"&&uv.has(n)}Gn.isJSONType=lv;function cv(){let n={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return {types:{...n,integer:true,boolean:true,null:true},rules:[{rules:[]},n.number,n.string,n.array,n.object],post:{rules:[]},all:{},keywords:{}}}Gn.getRules=cv;});var el=C(Mt=>{Object.defineProperty(Mt,"__esModule",{value:true});Mt.shouldUseRule=Mt.shouldUseGroup=Mt.schemaHasRulesForType=void 0;function hv({schema:n,self:e},t){let r=e.RULES.types[t];return r&&r!==true&&np(n,r)}Mt.schemaHasRulesForType=hv;function np(n,e){return e.rules.some(t=>rp(n,t))}Mt.shouldUseGroup=np;function rp(n,e){var t;return n[e.keyword]!==void 0||((t=e.definition.implements)===null||t===void 0?void 0:t.some(r=>n[r]!==void 0))}Mt.shouldUseRule=rp;});var Ur=C(Ae=>{Object.defineProperty(Ae,"__esModule",{value:true});Ae.reportTypeError=Ae.checkDataTypes=Ae.checkDataType=Ae.coerceAndCheckDataType=Ae.getJSONTypes=Ae.getSchemaTypes=Ae.DataType=void 0;var dv=Qu(),fv=el(),pv=Hr(),k=I(),ip=q(),Jn;(function(n){n[n.Correct=0]="Correct",n[n.Wrong=1]="Wrong";})(Jn||(Ae.DataType=Jn={}));function mv(n){let e=sp(n.type);if(e.includes("null")){if(n.nullable===false)throw new Error("type: null contradicts nullable: false")}else {if(!e.length&&n.nullable!==void 0)throw new Error('"nullable" cannot be used without "type"');n.nullable===true&&e.push("null");}return e}Ae.getSchemaTypes=mv;function sp(n){let e=Array.isArray(n)?n:n?[n]:[];if(e.every(dv.isJSONType))return e;throw new Error("type must be JSONType or JSONType[]: "+e.join(","))}Ae.getJSONTypes=sp;function gv(n,e){let{gen:t,data:r,opts:i}=n,a=yv(e,i.coerceTypes),s=e.length>0&&!(a.length===0&&e.length===1&&(0, fv.schemaHasRulesForType)(n,e[0]));if(s){let o=nl(e,r,i.strictNumbers,Jn.Wrong);t.if(o,()=>{a.length?Cv(n,e,a):rl(n);});}return s}Ae.coerceAndCheckDataType=gv;var ap=new Set(["string","number","integer","boolean","null"]);function yv(n,e){return e?n.filter(t=>ap.has(t)||e==="array"&&t==="array"):[]}function Cv(n,e,t){let{gen:r,data:i,opts:a}=n,s=r.let("dataType",(0, k._)`typeof ${i}`),o=r.let("coerced",(0, k._)`undefined`);a.coerceTypes==="array"&&r.if((0, k._)`${s} == 'object' && Array.isArray(${i}) && ${i}.length == 1`,()=>r.assign(i,(0, k._)`${i}[0]`).assign(s,(0, k._)`typeof ${i}`).if(nl(e,i,a.strictNumbers),()=>r.assign(o,i))),r.if((0, k._)`${o} !== undefined`);for(let l of t)(ap.has(l)||l==="array"&&a.coerceTypes==="array")&&u(l);r.else(),rl(n),r.endIf(),r.if((0, k._)`${o} !== undefined`,()=>{r.assign(i,o),vv(n,o);});function u(l){switch(l){case "string":r.elseIf((0, k._)`${s} == "number" || ${s} == "boolean"`).assign(o,(0, k._)`"" + ${i}`).elseIf((0, k._)`${i} === null`).assign(o,(0, k._)`""`);return;case "number":r.elseIf((0, k._)`${s} == "boolean" || ${i} === null
3
3
  || (${s} == "string" && ${i} && ${i} == +${i})`).assign(o,(0, k._)`+${i}`);return;case "integer":r.elseIf((0, k._)`${s} === "boolean" || ${i} === null
4
4
  || (${s} === "string" && ${i} && ${i} == +${i} && !(${i} % 1))`).assign(o,(0, k._)`+${i}`);return;case "boolean":r.elseIf((0, k._)`${i} === "false" || ${i} === 0 || ${i} === null`).assign(o,false).elseIf((0, k._)`${i} === "true" || ${i} === 1`).assign(o,true);return;case "null":r.elseIf((0, k._)`${i} === "" || ${i} === 0 || ${i} === false`),r.assign(o,null);return;case "array":r.elseIf((0, k._)`${s} === "string" || ${s} === "number"
5
- || ${s} === "boolean" || ${i} === null`).assign(o,(0, k._)`[${i}]`);}}}function vv({gen:n,parentData:e,parentDataProperty:t},r){n.if((0, k._)`${e} !== undefined`,()=>n.assign((0, k._)`${e}[${t}]`,r));}function tl(n,e,t,r=Jn.Correct){let i=r===Jn.Correct?k.operators.EQ:k.operators.NEQ,a;switch(n){case "null":return (0, k._)`${e} ${i} null`;case "array":a=(0, k._)`Array.isArray(${e})`;break;case "object":a=(0, k._)`${e} && typeof ${e} == "object" && !Array.isArray(${e})`;break;case "integer":a=s((0, k._)`!(${e} % 1) && !isNaN(${e})`);break;case "number":a=s();break;default:return (0, k._)`typeof ${e} ${i} ${n}`}return r===Jn.Correct?a:(0, k.not)(a);function s(o=k.nil){return (0, k.and)((0, k._)`typeof ${e} == "number"`,o,t?(0, k._)`isFinite(${e})`:k.nil)}}Ae.checkDataType=tl;function nl(n,e,t,r){if(n.length===1)return tl(n[0],e,t,r);let i,a=(0, ip.toHash)(n);if(a.array&&a.object){let s=(0, k._)`typeof ${e} != "object"`;i=a.null?s:(0, k._)`!${e} || ${s}`,delete a.null,delete a.array,delete a.object;}else i=k.nil;a.number&&delete a.integer;for(let s in a)i=(0, k.and)(i,tl(s,e,t,r));return i}Ae.checkDataTypes=nl;var Ev={message:({schema:n})=>`must be ${n}`,params:({schema:n,schemaValue:e})=>typeof n=="string"?(0, k._)`{type: ${n}}`:(0, k._)`{type: ${e}}`};function rl(n){let e=_v(n);(0, pv.reportError)(e,Ev);}Ae.reportTypeError=rl;function _v(n){let{gen:e,data:t,schema:r}=n,i=(0, ip.schemaRefOrVal)(n,r,"type");return {gen:e,keyword:"type",data:t,schema:r.type,schemaCode:i,schemaValue:i,parentSchema:r,params:{},it:n}}});var up=C(ps=>{Object.defineProperty(ps,"__esModule",{value:true});ps.assignDefaults=void 0;var Hn=I(),Sv=q();function bv(n,e){let{properties:t,items:r}=n.schema;if(e==="object"&&t)for(let i in t)op(n,i,t[i].default);else e==="array"&&Array.isArray(r)&&r.forEach((i,a)=>op(n,a,i.default));}ps.assignDefaults=bv;function op(n,e,t){let{gen:r,compositeRule:i,data:a,opts:s}=n;if(t===void 0)return;let o=(0, Hn._)`${a}${(0, Hn.getProperty)(e)}`;if(i){(0, Sv.checkStrictMode)(n,`default is ignored for: ${o}`);return}let u=(0, Hn._)`${o} === undefined`;s.useDefaults==="empty"&&(u=(0, Hn._)`${u} || ${o} === null || ${o} === ""`),r.if(u,(0, Hn._)`${o} = ${(0, Hn.stringify)(t)}`);}});var Ze=C(K=>{Object.defineProperty(K,"__esModule",{value:true});K.validateUnion=K.validateArray=K.usePattern=K.callValidateCode=K.schemaProperties=K.allSchemaProperties=K.noPropertyInData=K.propertyInData=K.isOwnProperty=K.hasPropFunc=K.reportMissingProp=K.checkMissingProp=K.checkReportMissingProp=void 0;var re=I(),il=q(),Gt=Ye(),Dv=q();function wv(n,e){let{gen:t,data:r,it:i}=n;t.if(al(t,r,e,i.opts.ownProperties),()=>{n.setParams({missingProperty:(0, re._)`${e}`},true),n.error();});}K.checkReportMissingProp=wv;function Av({gen:n,data:e,it:{opts:t}},r,i){return (0, re.or)(...r.map(a=>(0, re.and)(al(n,e,a,t.ownProperties),(0, re._)`${i} = ${a}`)))}K.checkMissingProp=Av;function Pv(n,e){n.setParams({missingProperty:e},true),n.error();}K.reportMissingProp=Pv;function lp(n){return n.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0, re._)`Object.prototype.hasOwnProperty`})}K.hasPropFunc=lp;function sl(n,e,t){return (0, re._)`${lp(n)}.call(${e}, ${t})`}K.isOwnProperty=sl;function Tv(n,e,t,r){let i=(0, re._)`${e}${(0, re.getProperty)(t)} !== undefined`;return r?(0, re._)`${i} && ${sl(n,e,t)}`:i}K.propertyInData=Tv;function al(n,e,t,r){let i=(0, re._)`${e}${(0, re.getProperty)(t)} === undefined`;return r?(0, re.or)(i,(0, re.not)(sl(n,e,t))):i}K.noPropertyInData=al;function cp(n){return n?Object.keys(n).filter(e=>e!=="__proto__"):[]}K.allSchemaProperties=cp;function Ov(n,e){return cp(e).filter(t=>!(0, il.alwaysValidSchema)(n,e[t]))}K.schemaProperties=Ov;function xv({schemaCode:n,data:e,it:{gen:t,topSchemaRef:r,schemaPath:i,errorPath:a},it:s},o,u,l){let c=l?(0, re._)`${n}, ${e}, ${r}${i}`:e,h=[[Gt.default.instancePath,(0, re.strConcat)(Gt.default.instancePath,a)],[Gt.default.parentData,s.parentData],[Gt.default.parentDataProperty,s.parentDataProperty],[Gt.default.rootData,Gt.default.rootData]];s.opts.dynamicRef&&h.push([Gt.default.dynamicAnchors,Gt.default.dynamicAnchors]);let f=(0, re._)`${c}, ${t.object(...h)}`;return u!==re.nil?(0, re._)`${o}.call(${u}, ${f})`:(0, re._)`${o}(${f})`}K.callValidateCode=xv;var Fv=(0, re._)`new RegExp`;function Nv({gen:n,it:{opts:e}},t){let r=e.unicodeRegExp?"u":"",{regExp:i}=e.code,a=i(t,r);return n.scopeValue("pattern",{key:a.toString(),ref:a,code:(0, re._)`${i.code==="new RegExp"?Fv:(0, Dv.useFunc)(n,i)}(${t}, ${r})`})}K.usePattern=Nv;function Iv(n){let{gen:e,data:t,keyword:r,it:i}=n,a=e.name("valid");if(i.allErrors){let o=e.let("valid",true);return s(()=>e.assign(o,false)),o}return e.var(a,true),s(()=>e.break()),a;function s(o){let u=e.const("len",(0, re._)`${t}.length`);e.forRange("i",0,u,l=>{n.subschema({keyword:r,dataProp:l,dataPropType:il.Type.Num},a),e.if((0, re.not)(a),o);});}}K.validateArray=Iv;function kv(n){let{gen:e,schema:t,keyword:r,it:i}=n;if(!Array.isArray(t))throw new Error("ajv implementation error");if(t.some(u=>(0, il.alwaysValidSchema)(i,u))&&!i.opts.unevaluated)return;let s=e.let("valid",false),o=e.name("_valid");e.block(()=>t.forEach((u,l)=>{let c=n.subschema({keyword:r,schemaProp:l,compositeRule:true},o);e.assign(s,(0, re._)`${s} || ${o}`),n.mergeValidEvaluated(c,o)||e.if((0, re.not)(s));})),n.result(s,()=>n.reset(),()=>n.error(true));}K.validateUnion=kv;});var fp=C(gt=>{Object.defineProperty(gt,"__esModule",{value:true});gt.validateKeywordUsage=gt.validSchemaType=gt.funcKeywordCode=gt.macroKeywordCode=void 0;var Re=I(),yn=Ye(),Rv=Ze(),$v=Hr();function Vv(n,e){let{gen:t,keyword:r,schema:i,parentSchema:a,it:s}=n,o=e.macro.call(s.self,i,a,s),u=dp(t,r,o);s.opts.validateSchema!==false&&s.self.validateSchema(o,true);let l=t.name("valid");n.subschema({schema:o,schemaPath:Re.nil,errSchemaPath:`${s.errSchemaPath}/${r}`,topSchemaRef:u,compositeRule:true},l),n.pass(l,()=>n.error(true));}gt.macroKeywordCode=Vv;function jv(n,e){var t;let{gen:r,keyword:i,schema:a,parentSchema:s,$data:o,it:u}=n;Lv(u,e);let l=!o&&e.compile?e.compile.call(u.self,a,s,u):e.validate,c=dp(r,i,l),h=r.let("valid");n.block$data(h,f),n.ok((t=e.valid)!==null&&t!==void 0?t:h);function f(){if(e.errors===false)g(),e.modifying&&hp(n),v(()=>n.error());else {let E=e.async?p():m();e.modifying&&hp(n),v(()=>qv(n,E));}}function p(){let E=r.let("ruleErrs",null);return r.try(()=>g((0, Re._)`await `),b=>r.assign(h,false).if((0, Re._)`${b} instanceof ${u.ValidationError}`,()=>r.assign(E,(0, Re._)`${b}.errors`),()=>r.throw(b))),E}function m(){let E=(0, Re._)`${c}.errors`;return r.assign(E,null),g(Re.nil),E}function g(E=e.async?(0, Re._)`await `:Re.nil){let b=u.opts.passContext?yn.default.this:yn.default.self,d=!("compile"in e&&!o||e.schema===false);r.assign(h,(0, Re._)`${E}${(0, Rv.callValidateCode)(n,c,b,d)}`,e.modifying);}function v(E){var b;r.if((0, Re.not)((b=e.valid)!==null&&b!==void 0?b:h),E);}}gt.funcKeywordCode=jv;function hp(n){let{gen:e,data:t,it:r}=n;e.if(r.parentData,()=>e.assign(t,(0, Re._)`${r.parentData}[${r.parentDataProperty}]`));}function qv(n,e){let{gen:t}=n;t.if((0, Re._)`Array.isArray(${e})`,()=>{t.assign(yn.default.vErrors,(0, Re._)`${yn.default.vErrors} === null ? ${e} : ${yn.default.vErrors}.concat(${e})`).assign(yn.default.errors,(0, Re._)`${yn.default.vErrors}.length`),(0, $v.extendErrors)(n);},()=>n.error());}function Lv({schemaEnv:n},e){if(e.async&&!n.$async)throw new Error("async keyword in sync schema")}function dp(n,e,t){if(t===void 0)throw new Error(`keyword "${e}" failed to compile`);return n.scopeValue("keyword",typeof t=="function"?{ref:t}:{ref:t,code:(0, Re.stringify)(t)})}function Bv(n,e,t=false){return !e.length||e.some(r=>r==="array"?Array.isArray(n):r==="object"?n&&typeof n=="object"&&!Array.isArray(n):typeof n==r||t&&typeof n>"u")}gt.validSchemaType=Bv;function Wv({schema:n,opts:e,self:t,errSchemaPath:r},i,a){if(Array.isArray(i.keyword)?!i.keyword.includes(a):i.keyword!==a)throw new Error("ajv implementation error");let s=i.dependencies;if(s?.some(o=>!Object.prototype.hasOwnProperty.call(n,o)))throw new Error(`parent schema must have dependencies of ${a}: ${s.join(",")}`);if(i.validateSchema&&!i.validateSchema(n[a])){let u=`keyword "${a}" value is invalid at path "${r}": `+t.errorsText(i.validateSchema.errors);if(e.validateSchema==="log")t.logger.error(u);else throw new Error(u)}}gt.validateKeywordUsage=Wv;});var mp=C(Jt=>{Object.defineProperty(Jt,"__esModule",{value:true});Jt.extendSubschemaMode=Jt.extendSubschemaData=Jt.getSubschema=void 0;var yt=I(),pp=q();function Mv(n,{keyword:e,schemaProp:t,schema:r,schemaPath:i,errSchemaPath:a,topSchemaRef:s}){if(e!==void 0&&r!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(e!==void 0){let o=n.schema[e];return t===void 0?{schema:o,schemaPath:(0, yt._)`${n.schemaPath}${(0, yt.getProperty)(e)}`,errSchemaPath:`${n.errSchemaPath}/${e}`}:{schema:o[t],schemaPath:(0, yt._)`${n.schemaPath}${(0, yt.getProperty)(e)}${(0, yt.getProperty)(t)}`,errSchemaPath:`${n.errSchemaPath}/${e}/${(0, pp.escapeFragment)(t)}`}}if(r!==void 0){if(i===void 0||a===void 0||s===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return {schema:r,schemaPath:i,topSchemaRef:s,errSchemaPath:a}}throw new Error('either "keyword" or "schema" must be passed')}Jt.getSubschema=Mv;function Gv(n,e,{dataProp:t,dataPropType:r,data:i,dataTypes:a,propertyName:s}){if(i!==void 0&&t!==void 0)throw new Error('both "data" and "dataProp" passed, only one allowed');let{gen:o}=e;if(t!==void 0){let{errorPath:l,dataPathArr:c,opts:h}=e,f=o.let("data",(0, yt._)`${e.data}${(0, yt.getProperty)(t)}`,true);u(f),n.errorPath=(0, yt.str)`${l}${(0, pp.getErrorPath)(t,r,h.jsPropertySyntax)}`,n.parentDataProperty=(0, yt._)`${t}`,n.dataPathArr=[...c,n.parentDataProperty];}if(i!==void 0){let l=i instanceof yt.Name?i:o.let("data",i,true);u(l),s!==void 0&&(n.propertyName=s);}a&&(n.dataTypes=a);function u(l){n.data=l,n.dataLevel=e.dataLevel+1,n.dataTypes=[],e.definedProperties=new Set,n.parentData=e.data,n.dataNames=[...e.dataNames,l];}}Jt.extendSubschemaData=Gv;function Jv(n,{jtdDiscriminator:e,jtdMetadata:t,compositeRule:r,createErrors:i,allErrors:a}){r!==void 0&&(n.compositeRule=r),i!==void 0&&(n.createErrors=i),a!==void 0&&(n.allErrors=a),n.jtdDiscriminator=e,n.jtdMetadata=t;}Jt.extendSubschemaMode=Jv;});var ol=C((cF,gp)=>{gp.exports=function n(e,t){if(e===t)return true;if(e&&t&&typeof e=="object"&&typeof t=="object"){if(e.constructor!==t.constructor)return false;var r,i,a;if(Array.isArray(e)){if(r=e.length,r!=t.length)return false;for(i=r;i--!==0;)if(!n(e[i],t[i]))return false;return true}if(e.constructor===RegExp)return e.source===t.source&&e.flags===t.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===t.toString();if(a=Object.keys(e),r=a.length,r!==Object.keys(t).length)return false;for(i=r;i--!==0;)if(!Object.prototype.hasOwnProperty.call(t,a[i]))return false;for(i=r;i--!==0;){var s=a[i];if(!n(e[s],t[s]))return false}return true}return e!==e&&t!==t};});var Cp=C((hF,yp)=>{var Ht=yp.exports=function(n,e,t){typeof e=="function"&&(t=e,e={}),t=e.cb||t;var r=typeof t=="function"?t:t.pre||function(){},i=t.post||function(){};ms(e,r,i,n,"",n);};Ht.keywords={additionalItems:true,items:true,contains:true,additionalProperties:true,propertyNames:true,not:true,if:true,then:true,else:true};Ht.arrayKeywords={items:true,allOf:true,anyOf:true,oneOf:true};Ht.propsKeywords={$defs:true,definitions:true,properties:true,patternProperties:true,dependencies:true};Ht.skipKeywords={default:true,enum:true,const:true,required:true,maximum:true,minimum:true,exclusiveMaximum:true,exclusiveMinimum:true,multipleOf:true,maxLength:true,minLength:true,pattern:true,format:true,maxItems:true,minItems:true,uniqueItems:true,maxProperties:true,minProperties:true};function ms(n,e,t,r,i,a,s,o,u,l){if(r&&typeof r=="object"&&!Array.isArray(r)){e(r,i,a,s,o,u,l);for(var c in r){var h=r[c];if(Array.isArray(h)){if(c in Ht.arrayKeywords)for(var f=0;f<h.length;f++)ms(n,e,t,h[f],i+"/"+c+"/"+f,a,i,c,r,f);}else if(c in Ht.propsKeywords){if(h&&typeof h=="object")for(var p in h)ms(n,e,t,h[p],i+"/"+c+"/"+Hv(p),a,i,c,r,p);}else (c in Ht.keywords||n.allKeys&&!(c in Ht.skipKeywords))&&ms(n,e,t,h,i+"/"+c,a,i,c,r);}t(r,i,a,s,o,u,l);}}function Hv(n){return n.replace(/~/g,"~0").replace(/\//g,"~1")}});var zr=C(Le=>{Object.defineProperty(Le,"__esModule",{value:true});Le.getSchemaRefs=Le.resolveUrl=Le.normalizeId=Le._getFullPath=Le.getFullPath=Le.inlineRef=void 0;var Uv=q(),zv=ol(),Kv=Cp(),Xv=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function Yv(n,e=true){return typeof n=="boolean"?true:e===true?!ul(n):e?vp(n)<=e:false}Le.inlineRef=Yv;var Zv=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function ul(n){for(let e in n){if(Zv.has(e))return true;let t=n[e];if(Array.isArray(t)&&t.some(ul)||typeof t=="object"&&ul(t))return true}return false}function vp(n){let e=0;for(let t in n){if(t==="$ref")return 1/0;if(e++,!Xv.has(t)&&(typeof n[t]=="object"&&(0, Uv.eachItem)(n[t],r=>e+=vp(r)),e===1/0))return 1/0}return e}function Ep(n,e="",t){t!==false&&(e=Un(e));let r=n.parse(e);return _p(n,r)}Le.getFullPath=Ep;function _p(n,e){return n.serialize(e).split("#")[0]+"#"}Le._getFullPath=_p;var Qv=/#\/?$/;function Un(n){return n?n.replace(Qv,""):""}Le.normalizeId=Un;function eE(n,e,t){return t=Un(t),n.resolve(e,t)}Le.resolveUrl=eE;var tE=/^[a-z_][-a-z0-9._]*$/i;function nE(n,e){if(typeof n=="boolean")return {};let{schemaId:t,uriResolver:r}=this.opts,i=Un(n[t]||e),a={"":i},s=Ep(r,i,false),o={},u=new Set;return Kv(n,{allKeys:true},(h,f,p,m)=>{if(m===void 0)return;let g=s+f,v=a[m];typeof h[t]=="string"&&(v=E.call(this,h[t])),b.call(this,h.$anchor),b.call(this,h.$dynamicAnchor),a[f]=v;function E(d){let _=this.opts.uriResolver.resolve;if(d=Un(v?_(v,d):d),u.has(d))throw c(d);u.add(d);let y=this.refs[d];return typeof y=="string"&&(y=this.refs[y]),typeof y=="object"?l(h,y.schema,d):d!==Un(g)&&(d[0]==="#"?(l(h,o[d],d),o[d]=h):this.refs[d]=g),d}function b(d){if(typeof d=="string"){if(!tE.test(d))throw new Error(`invalid anchor "${d}"`);E.call(this,`#${d}`);}}}),o;function l(h,f,p){if(f!==void 0&&!zv(h,f))throw c(p)}function c(h){return new Error(`reference "${h}" resolves to more than one schema`)}}Le.getSchemaRefs=nE;});var zn=C(Ut=>{Object.defineProperty(Ut,"__esModule",{value:true});Ut.getData=Ut.KeywordCxt=Ut.validateFunctionCode=void 0;var Ap=tp(),Sp=Ur(),cl=el(),gs=Ur(),rE=up(),Xr=fp(),ll=mp(),P=I(),x=Ye(),iE=zr(),kt=q(),Kr=Hr();function sE(n){if(Op(n)&&(xp(n),Tp(n))){uE(n);return}Pp(n,()=>(0, Ap.topBoolOrEmptySchema)(n));}Ut.validateFunctionCode=sE;function Pp({gen:n,validateName:e,schema:t,schemaEnv:r,opts:i},a){i.code.es5?n.func(e,(0, P._)`${x.default.data}, ${x.default.valCxt}`,r.$async,()=>{n.code((0, P._)`"use strict"; ${bp(t,i)}`),oE(n,i),n.code(a);}):n.func(e,(0, P._)`${x.default.data}, ${aE(i)}`,r.$async,()=>n.code(bp(t,i)).code(a));}function aE(n){return (0, P._)`{${x.default.instancePath}="", ${x.default.parentData}, ${x.default.parentDataProperty}, ${x.default.rootData}=${x.default.data}${n.dynamicRef?(0, P._)`, ${x.default.dynamicAnchors}={}`:P.nil}}={}`}function oE(n,e){n.if(x.default.valCxt,()=>{n.var(x.default.instancePath,(0, P._)`${x.default.valCxt}.${x.default.instancePath}`),n.var(x.default.parentData,(0, P._)`${x.default.valCxt}.${x.default.parentData}`),n.var(x.default.parentDataProperty,(0, P._)`${x.default.valCxt}.${x.default.parentDataProperty}`),n.var(x.default.rootData,(0, P._)`${x.default.valCxt}.${x.default.rootData}`),e.dynamicRef&&n.var(x.default.dynamicAnchors,(0, P._)`${x.default.valCxt}.${x.default.dynamicAnchors}`);},()=>{n.var(x.default.instancePath,(0, P._)`""`),n.var(x.default.parentData,(0, P._)`undefined`),n.var(x.default.parentDataProperty,(0, P._)`undefined`),n.var(x.default.rootData,x.default.data),e.dynamicRef&&n.var(x.default.dynamicAnchors,(0, P._)`{}`);});}function uE(n){let{schema:e,opts:t,gen:r}=n;Pp(n,()=>{t.$comment&&e.$comment&&Np(n),fE(n),r.let(x.default.vErrors,null),r.let(x.default.errors,0),t.unevaluated&&lE(n),Fp(n),gE(n);});}function lE(n){let{gen:e,validateName:t}=n;n.evaluated=e.const("evaluated",(0, P._)`${t}.evaluated`),e.if((0, P._)`${n.evaluated}.dynamicProps`,()=>e.assign((0, P._)`${n.evaluated}.props`,(0, P._)`undefined`)),e.if((0, P._)`${n.evaluated}.dynamicItems`,()=>e.assign((0, P._)`${n.evaluated}.items`,(0, P._)`undefined`));}function bp(n,e){let t=typeof n=="object"&&n[e.schemaId];return t&&(e.code.source||e.code.process)?(0, P._)`/*# sourceURL=${t} */`:P.nil}function cE(n,e){if(Op(n)&&(xp(n),Tp(n))){hE(n,e);return}(0, Ap.boolOrEmptySchema)(n,e);}function Tp({schema:n,self:e}){if(typeof n=="boolean")return !n;for(let t in n)if(e.RULES.all[t])return true;return false}function Op(n){return typeof n.schema!="boolean"}function hE(n,e){let{schema:t,gen:r,opts:i}=n;i.$comment&&t.$comment&&Np(n),pE(n),mE(n);let a=r.const("_errs",x.default.errors);Fp(n,a),r.var(e,(0, P._)`${a} === ${x.default.errors}`);}function xp(n){(0, kt.checkUnknownRules)(n),dE(n);}function Fp(n,e){if(n.opts.jtd)return Dp(n,[],false,e);let t=(0, Sp.getSchemaTypes)(n.schema),r=(0, Sp.coerceAndCheckDataType)(n,t);Dp(n,t,!r,e);}function dE(n){let{schema:e,errSchemaPath:t,opts:r,self:i}=n;e.$ref&&r.ignoreKeywordsWithRef&&(0, kt.schemaHasRulesButRef)(e,i.RULES)&&i.logger.warn(`$ref: keywords ignored in schema at path "${t}"`);}function fE(n){let{schema:e,opts:t}=n;e.default!==void 0&&t.useDefaults&&t.strictSchema&&(0, kt.checkStrictMode)(n,"default is ignored in the schema root");}function pE(n){let e=n.schema[n.opts.schemaId];e&&(n.baseId=(0, iE.resolveUrl)(n.opts.uriResolver,n.baseId,e));}function mE(n){if(n.schema.$async&&!n.schemaEnv.$async)throw new Error("async schema in sync schema")}function Np({gen:n,schemaEnv:e,schema:t,errSchemaPath:r,opts:i}){let a=t.$comment;if(i.$comment===true)n.code((0, P._)`${x.default.self}.logger.log(${a})`);else if(typeof i.$comment=="function"){let s=(0, P.str)`${r}/$comment`,o=n.scopeValue("root",{ref:e.root});n.code((0, P._)`${x.default.self}.opts.$comment(${a}, ${s}, ${o}.schema)`);}}function gE(n){let{gen:e,schemaEnv:t,validateName:r,ValidationError:i,opts:a}=n;t.$async?e.if((0, P._)`${x.default.errors} === 0`,()=>e.return(x.default.data),()=>e.throw((0, P._)`new ${i}(${x.default.vErrors})`)):(e.assign((0, P._)`${r}.errors`,x.default.vErrors),a.unevaluated&&yE(n),e.return((0, P._)`${x.default.errors} === 0`));}function yE({gen:n,evaluated:e,props:t,items:r}){t instanceof P.Name&&n.assign((0, P._)`${e}.props`,t),r instanceof P.Name&&n.assign((0, P._)`${e}.items`,r);}function Dp(n,e,t,r){let{gen:i,schema:a,data:s,allErrors:o,opts:u,self:l}=n,{RULES:c}=l;if(a.$ref&&(u.ignoreKeywordsWithRef||!(0, kt.schemaHasRulesButRef)(a,c))){i.block(()=>kp(n,"$ref",c.all.$ref.definition));return}u.jtd||CE(n,e),i.block(()=>{for(let f of c.rules)h(f);h(c.post);});function h(f){(0, cl.shouldUseGroup)(a,f)&&(f.type?(i.if((0, gs.checkDataType)(f.type,s,u.strictNumbers)),wp(n,f),e.length===1&&e[0]===f.type&&t&&(i.else(),(0, gs.reportTypeError)(n)),i.endIf()):wp(n,f),o||i.if((0, P._)`${x.default.errors} === ${r||0}`));}}function wp(n,e){let{gen:t,schema:r,opts:{useDefaults:i}}=n;i&&(0, rE.assignDefaults)(n,e.type),t.block(()=>{for(let a of e.rules)(0, cl.shouldUseRule)(r,a)&&kp(n,a.keyword,a.definition,e.type);});}function CE(n,e){n.schemaEnv.meta||!n.opts.strictTypes||(vE(n,e),n.opts.allowUnionTypes||EE(n,e),_E(n,n.dataTypes));}function vE(n,e){if(e.length){if(!n.dataTypes.length){n.dataTypes=e;return}e.forEach(t=>{Ip(n.dataTypes,t)||hl(n,`type "${t}" not allowed by context "${n.dataTypes.join(",")}"`);}),bE(n,e);}}function EE(n,e){e.length>1&&!(e.length===2&&e.includes("null"))&&hl(n,"use allowUnionTypes to allow union type keyword");}function _E(n,e){let t=n.self.RULES.all;for(let r in t){let i=t[r];if(typeof i=="object"&&(0, cl.shouldUseRule)(n.schema,i)){let{type:a}=i.definition;a.length&&!a.some(s=>SE(e,s))&&hl(n,`missing type "${a.join(",")}" for keyword "${r}"`);}}}function SE(n,e){return n.includes(e)||e==="number"&&n.includes("integer")}function Ip(n,e){return n.includes(e)||e==="integer"&&n.includes("number")}function bE(n,e){let t=[];for(let r of n.dataTypes)Ip(e,r)?t.push(r):e.includes("integer")&&r==="number"&&t.push("integer");n.dataTypes=t;}function hl(n,e){let t=n.schemaEnv.baseId+n.errSchemaPath;e+=` at "${t}" (strictTypes)`,(0, kt.checkStrictMode)(n,e,n.opts.strictTypes);}var ys=class{constructor(e,t,r){if((0, Xr.validateKeywordUsage)(e,t,r),this.gen=e.gen,this.allErrors=e.allErrors,this.keyword=r,this.data=e.data,this.schema=e.schema[r],this.$data=t.$data&&e.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0, kt.schemaRefOrVal)(e,this.schema,r,this.$data),this.schemaType=t.schemaType,this.parentSchema=e.schema,this.params={},this.it=e,this.def=t,this.$data)this.schemaCode=e.gen.const("vSchema",Rp(this.$data,e));else if(this.schemaCode=this.schemaValue,!(0, Xr.validSchemaType)(this.schema,t.schemaType,t.allowUndefined))throw new Error(`${r} value must be ${JSON.stringify(t.schemaType)}`);("code"in t?t.trackErrors:t.errors!==false)&&(this.errsCount=e.gen.const("_errs",x.default.errors));}result(e,t,r){this.failResult((0, P.not)(e),t,r);}failResult(e,t,r){this.gen.if(e),r?r():this.error(),t?(this.gen.else(),t(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else();}pass(e,t){this.failResult((0, P.not)(e),void 0,t);}fail(e){if(e===void 0){this.error(),this.allErrors||this.gen.if(false);return}this.gen.if(e),this.error(),this.allErrors?this.gen.endIf():this.gen.else();}fail$data(e){if(!this.$data)return this.fail(e);let{schemaCode:t}=this;this.fail((0, P._)`${t} !== undefined && (${(0, P.or)(this.invalid$data(),e)})`);}error(e,t,r){if(t){this.setParams(t),this._error(e,r),this.setParams({});return}this._error(e,r);}_error(e,t){(e?Kr.reportExtraError:Kr.reportError)(this,this.def.error,t);}$dataError(){(0, Kr.reportError)(this,this.def.$dataError||Kr.keyword$DataError);}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0, Kr.resetErrorsCount)(this.gen,this.errsCount);}ok(e){this.allErrors||this.gen.if(e);}setParams(e,t){t?Object.assign(this.params,e):this.params=e;}block$data(e,t,r=P.nil){this.gen.block(()=>{this.check$data(e,r),t();});}check$data(e=P.nil,t=P.nil){if(!this.$data)return;let{gen:r,schemaCode:i,schemaType:a,def:s}=this;r.if((0, P.or)((0, P._)`${i} === undefined`,t)),e!==P.nil&&r.assign(e,true),(a.length||s.validateSchema)&&(r.elseIf(this.invalid$data()),this.$dataError(),e!==P.nil&&r.assign(e,false)),r.else();}invalid$data(){let{gen:e,schemaCode:t,schemaType:r,def:i,it:a}=this;return (0, P.or)(s(),o());function s(){if(r.length){if(!(t instanceof P.Name))throw new Error("ajv implementation error");let u=Array.isArray(r)?r:[r];return (0, P._)`${(0, gs.checkDataTypes)(u,t,a.opts.strictNumbers,gs.DataType.Wrong)}`}return P.nil}function o(){if(i.validateSchema){let u=e.scopeValue("validate$data",{ref:i.validateSchema});return (0, P._)`!${u}(${t})`}return P.nil}}subschema(e,t){let r=(0, ll.getSubschema)(this.it,e);(0, ll.extendSubschemaData)(r,this.it,e),(0, ll.extendSubschemaMode)(r,e);let i={...this.it,...r,items:void 0,props:void 0};return cE(i,t),i}mergeEvaluated(e,t){let{it:r,gen:i}=this;r.opts.unevaluated&&(r.props!==true&&e.props!==void 0&&(r.props=kt.mergeEvaluated.props(i,e.props,r.props,t)),r.items!==true&&e.items!==void 0&&(r.items=kt.mergeEvaluated.items(i,e.items,r.items,t)));}mergeValidEvaluated(e,t){let{it:r,gen:i}=this;if(r.opts.unevaluated&&(r.props!==true||r.items!==true))return i.if(t,()=>this.mergeEvaluated(e,P.Name)),true}};Ut.KeywordCxt=ys;function kp(n,e,t,r){let i=new ys(n,t,e);"code"in t?t.code(i,r):i.$data&&t.validate?(0, Xr.funcKeywordCode)(i,t):"macro"in t?(0, Xr.macroKeywordCode)(i,t):(t.compile||t.validate)&&(0, Xr.funcKeywordCode)(i,t);}var DE=/^\/(?:[^~]|~0|~1)*$/,wE=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function Rp(n,{dataLevel:e,dataNames:t,dataPathArr:r}){let i,a;if(n==="")return x.default.rootData;if(n[0]==="/"){if(!DE.test(n))throw new Error(`Invalid JSON-pointer: ${n}`);i=n,a=x.default.rootData;}else {let l=wE.exec(n);if(!l)throw new Error(`Invalid JSON-pointer: ${n}`);let c=+l[1];if(i=l[2],i==="#"){if(c>=e)throw new Error(u("property/index",c));return r[e-c]}if(c>e)throw new Error(u("data",c));if(a=t[e-c],!i)return a}let s=a,o=i.split("/");for(let l of o)l&&(a=(0, P._)`${a}${(0, P.getProperty)((0, kt.unescapeJsonPointer)(l))}`,s=(0, P._)`${s} && ${a}`);return s;function u(l,c){return `Cannot access ${l} ${c} levels up, current level is ${e}`}}Ut.getData=Rp;});var Yr=C(fl=>{Object.defineProperty(fl,"__esModule",{value:true});var dl=class extends Error{constructor(e){super("validation failed"),this.errors=e,this.ajv=this.validation=true;}};fl.default=dl;});var Kn=C(gl=>{Object.defineProperty(gl,"__esModule",{value:true});var pl=zr(),ml=class extends Error{constructor(e,t,r,i){super(i||`can't resolve reference ${r} from id ${t}`),this.missingRef=(0, pl.resolveUrl)(e,t,r),this.missingSchema=(0, pl.normalizeId)((0, pl.getFullPath)(e,this.missingRef));}};gl.default=ml;});var Zr=C(Qe=>{Object.defineProperty(Qe,"__esModule",{value:true});Qe.resolveSchema=Qe.getCompilingSchema=Qe.resolveRef=Qe.compileSchema=Qe.SchemaEnv=void 0;var ct=I(),AE=Yr(),Cn=Ye(),ht=zr(),$p=q(),PE=zn(),Xn=class{constructor(e){var t;this.refs={},this.dynamicAnchors={};let r;typeof e.schema=="object"&&(r=e.schema),this.schema=e.schema,this.schemaId=e.schemaId,this.root=e.root||this,this.baseId=(t=e.baseId)!==null&&t!==void 0?t:(0, ht.normalizeId)(r?.[e.schemaId||"$id"]),this.schemaPath=e.schemaPath,this.localRefs=e.localRefs,this.meta=e.meta,this.$async=r?.$async,this.refs={};}};Qe.SchemaEnv=Xn;function Cl(n){let e=Vp.call(this,n);if(e)return e;let t=(0, ht.getFullPath)(this.opts.uriResolver,n.root.baseId),{es5:r,lines:i}=this.opts.code,{ownProperties:a}=this.opts,s=new ct.CodeGen(this.scope,{es5:r,lines:i,ownProperties:a}),o;n.$async&&(o=s.scopeValue("Error",{ref:AE.default,code:(0, ct._)`require("ajv/dist/runtime/validation_error").default`}));let u=s.scopeName("validate");n.validateName=u;let l={gen:s,allErrors:this.opts.allErrors,data:Cn.default.data,parentData:Cn.default.parentData,parentDataProperty:Cn.default.parentDataProperty,dataNames:[Cn.default.data],dataPathArr:[ct.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:s.scopeValue("schema",this.opts.code.source===true?{ref:n.schema,code:(0, ct.stringify)(n.schema)}:{ref:n.schema}),validateName:u,ValidationError:o,schema:n.schema,schemaEnv:n,rootId:t,baseId:n.baseId||t,schemaPath:ct.nil,errSchemaPath:n.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0, ct._)`""`,opts:this.opts,self:this},c;try{this._compilations.add(n),(0,PE.validateFunctionCode)(l),s.optimize(this.opts.code.optimize);let h=s.toString();c=`${s.scopeRefs(Cn.default.scope)}return ${h}`,this.opts.code.process&&(c=this.opts.code.process(c,n));let p=new Function(`${Cn.default.self}`,`${Cn.default.scope}`,c)(this,this.scope.get());if(this.scope.value(u,{ref:p}),p.errors=null,p.schema=n.schema,p.schemaEnv=n,n.$async&&(p.$async=!0),this.opts.code.source===!0&&(p.source={validateName:u,validateCode:h,scopeValues:s._values}),this.opts.unevaluated){let{props:m,items:g}=l;p.evaluated={props:m instanceof ct.Name?void 0:m,items:g instanceof ct.Name?void 0:g,dynamicProps:m instanceof ct.Name,dynamicItems:g instanceof ct.Name},p.source&&(p.source.evaluated=(0,ct.stringify)(p.evaluated));}return n.validate=p,n}catch(h){throw delete n.validate,delete n.validateName,c&&this.logger.error("Error compiling schema, function code:",c),h}finally{this._compilations.delete(n);}}Qe.compileSchema=Cl;function TE(n,e,t){var r;t=(0, ht.resolveUrl)(this.opts.uriResolver,e,t);let i=n.refs[t];if(i)return i;let a=FE.call(this,n,t);if(a===void 0){let s=(r=n.localRefs)===null||r===void 0?void 0:r[t],{schemaId:o}=this.opts;s&&(a=new Xn({schema:s,schemaId:o,root:n,baseId:e}));}if(a!==void 0)return n.refs[t]=OE.call(this,a)}Qe.resolveRef=TE;function OE(n){return (0, ht.inlineRef)(n.schema,this.opts.inlineRefs)?n.schema:n.validate?n:Cl.call(this,n)}function Vp(n){for(let e of this._compilations)if(xE(e,n))return e}Qe.getCompilingSchema=Vp;function xE(n,e){return n.schema===e.schema&&n.root===e.root&&n.baseId===e.baseId}function FE(n,e){let t;for(;typeof(t=this.refs[e])=="string";)e=t;return t||this.schemas[e]||Cs.call(this,n,e)}function Cs(n,e){let t=this.opts.uriResolver.parse(e),r=(0, ht._getFullPath)(this.opts.uriResolver,t),i=(0, ht.getFullPath)(this.opts.uriResolver,n.baseId,void 0);if(Object.keys(n.schema).length>0&&r===i)return yl.call(this,t,n);let a=(0, ht.normalizeId)(r),s=this.refs[a]||this.schemas[a];if(typeof s=="string"){let o=Cs.call(this,n,s);return typeof o?.schema!="object"?void 0:yl.call(this,t,o)}if(typeof s?.schema=="object"){if(s.validate||Cl.call(this,s),a===(0, ht.normalizeId)(e)){let{schema:o}=s,{schemaId:u}=this.opts,l=o[u];return l&&(i=(0, ht.resolveUrl)(this.opts.uriResolver,i,l)),new Xn({schema:o,schemaId:u,root:n,baseId:i})}return yl.call(this,t,s)}}Qe.resolveSchema=Cs;var NE=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function yl(n,{baseId:e,schema:t,root:r}){var i;if(((i=n.fragment)===null||i===void 0?void 0:i[0])!=="/")return;for(let o of n.fragment.slice(1).split("/")){if(typeof t=="boolean")return;let u=t[(0, $p.unescapeFragment)(o)];if(u===void 0)return;t=u;let l=typeof t=="object"&&t[this.opts.schemaId];!NE.has(o)&&l&&(e=(0, ht.resolveUrl)(this.opts.uriResolver,e,l));}let a;if(typeof t!="boolean"&&t.$ref&&!(0, $p.schemaHasRulesButRef)(t,this.RULES)){let o=(0, ht.resolveUrl)(this.opts.uriResolver,e,t.$ref);a=Cs.call(this,r,o);}let{schemaId:s}=this.opts;if(a=a||new Xn({schema:t,schemaId:s,root:r,baseId:e}),a.schema!==a.root.schema)return a}});var jp=C((yF,IE)=>{IE.exports={$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON AnySchema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:false};});var Dl=C((CF,Jp)=>{var kE=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),El=RegExp.prototype.test.bind(/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/u),RE=RegExp.prototype.test.bind(/^\d*$/u),vn=RegExp.prototype.test.bind(/^[\da-f]{2}$/iu),_l=RegExp.prototype.test.bind(/^[\da-z\-._~]$/iu),Lp=RegExp.prototype.test.bind(/^[A-Za-z0-9\-._~!$&'()*+,;=:@/]$/u),Sl=RegExp.prototype.test.bind(/^[A-Za-z0-9\-._~!$&'()*+,;=:@/?]$/u),$E=RegExp.prototype.test.bind(/^[A-Za-z0-9\-._~!$&'()*+,;=:]$/u),Be=new Array(256);{let n="0123456789ABCDEF";for(let e=0;e<256;e++)Be[e]="%"+n[e>>4]+n[e&15];}function Pe(n){return n<2048?Be[192|n>>6]+Be[128|n&63]:n<65536?Be[224|n>>12]+Be[128|n>>6&63]+Be[128|n&63]:Be[240|n>>18]+Be[128|n>>12&63]+Be[128|n>>6&63]+Be[128|n&63]}function VE(n){let e="",t=0,r=0;for(r=0;r<n.length;r++)if(t=n[r].charCodeAt(0),t!==48){if(!(t>=48&&t<=57||t>=65&&t<=70||t>=97&&t<=102))return "";e+=n[r];break}for(r+=1;r<n.length;r++){if(t=n[r].charCodeAt(0),!(t>=48&&t<=57||t>=65&&t<=70||t>=97&&t<=102))return "";e+=n[r];}return e}var jE=RegExp.prototype.test.bind(/^[\dA-Fa-f]{1,4}$/),qE=RegExp.prototype.test.bind(/^[vV][\dA-Fa-f]+\.[A-Za-z\d\-._~!$&'()*+,;=:]+$/),LE=RegExp.prototype.test.bind(/^[A-Za-z\d\-._~]$/),BE=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function WE(n){if(n.length===0)return false;for(let e=0;e<n.length;e++)if(!LE(n[e])){if(n[e]==="%"&&e+2<n.length&&vn(n.slice(e+1,e+3))){e+=2;continue}return false}return true}function qp(n){let e=-1,t=0,r=-1,i=0;for(let o=0;o<n.length;o++)n[o]==="0"?(r===-1&&(r=o),i++,i>t&&(t=i,e=r)):(r=-1,i=0);if(t<2)return n.join(":");let a=n.slice(0,e).join(":"),s=n.slice(e+t).join(":");return a+"::"+s}function ME(n){let e=n.indexOf("::");if(e!==-1&&n.indexOf("::",e+1)!==-1)return;let t=e===-1?n.split(":"):n.slice(0,e).split(":"),r=e===-1?[]:n.slice(e+2).split(":");e!==-1&&(t.length===1&&t[0]===""&&(t.length=0),r.length===1&&r[0]===""&&(r.length=0));let i=t.concat(r),a=0;for(let o=0;o<i.length;o++){let u=i[o];if(u==="")return;if(u.indexOf(".")!==-1){if(o!==i.length-1||e!==-1&&r.length===0||!El(u))return;a+=2;continue}if(!jE(u))return;i[o]=parseInt(u,16).toString(16),a++;}if(e===-1)return a!==8?void 0:qp(i);if(a>=8)return;let s=i.slice(0,t.length);for(let o=a;o<8;o++)s.push("0");for(let o=t.length;o<i.length;o++)s.push(i[o]);return qp(s)}function vl(n){let e=n[0]==="["&&n[n.length-1]==="]";if((n[0]==="["||n[n.length-1]==="]")&&!e)return {host:n,isIPV6:false,error:true};let r=e?n.slice(1,-1):n;if(e&&qE(r))return r=r.toLowerCase(),{host:`[${r}]`,escapedHost:r,isIPV6:false,isIPVFuture:true};if(GE(r,":")<2)return {host:n,isIPV6:false,error:e};let i="",a=r.indexOf("%");if(a!==-1){let o=r.slice(a,a+3).toLowerCase()==="%25"?3:1;if(i=r.slice(a+o),!WE(i))return {host:n,isIPV6:false,error:true};r=r.slice(0,a);}let s=ME(r);return s===void 0?{host:n,isIPV6:false,error:true}:{host:s+(i?"%"+i:""),escapedHost:s+(i?"%25"+i:""),isIPV6:true}}function GE(n,e){let t=0;for(let r=0;r<n.length;r++)n[r]===e&&t++;return t}function JE(n){let e=n,t=[],r=-1,i=0;for(;i=e.length;){if(i===1){if(e===".")break;if(e==="/"){t.push("/");break}else {t.push(e);break}}else if(i===2){if(e[0]==="."){if(e[1]===".")break;if(e[1]==="/"){e=e.slice(2);continue}}else if(e[0]==="/"&&(e[1]==="."||e[1]==="/")){t.push("/");break}}else if(i===3&&e==="/.."){t.length!==0&&t.pop(),t.push("/");break}if(e[0]==="."){if(e[1]==="."){if(e[2]==="/"){e=e.slice(3);continue}}else if(e[1]==="/"){e=e.slice(2);continue}}else if(e[0]==="/"&&e[1]==="."){if(e[2]==="/"){e=e.slice(2);continue}else if(e[2]==="."&&e[3]==="/"){e=e.slice(3),t.length!==0&&t.pop();continue}}if((r=e.indexOf("/",1))===-1){t.push(e);break}else t.push(e.slice(0,r)),e=e.slice(r);}return t.join("")}var HE={"@":"%40","/":"%2F","?":"%3F","#":"%23",":":"%3A"},UE=/[@/?#:]/g,zE=/[@/?#]/g;function Bp(n,e){let t=e?zE:UE;return t.lastIndex=0,n.replace(t,r=>HE[r])}function Wp(n,e=false){if(n.indexOf("%")===-1)return n;let t="";for(let r=0;r<n.length;r++){if(n[r]==="%"&&r+2<n.length){let i=n.slice(r+1,r+3);if(vn(i)){let a=i.toUpperCase(),s=String.fromCharCode(parseInt(a,16));e&&_l(s)?t+=s:t+="%"+a,r+=2;continue}}t+=n[r];}return t}function KE(n){let e="";for(let t=0;t<n.length;t++){let r=n[t];if(r==="%"&&t+2<n.length){let i=n.slice(t+1,t+3);if(vn(i)){let a=i.toUpperCase(),s=String.fromCharCode(parseInt(a,16));s!=="."&&_l(s)?e+=s:e+="%"+a,t+=2;continue}}if(Lp(r))e+=r;else {let i=n.charCodeAt(t);if(i<128)e+=Gp(i)?r:Be[i];else if(i<55296||i>57343)e+=Pe(i);else if(i<=56319&&t+1<n.length){let a=n.charCodeAt(t+1);a>=56320&&a<=57343?(e+=Pe(65536+(i-55296<<10)+(a-56320)),t++):e+=Pe(65533);}else e+=Pe(65533);}}return e}function XE(n,e=false){let t="",r=e&&n[0]!=="/";for(let i=0;i<n.length;i++){let a=n[i];if(a==="%"&&i+2<n.length){let s=n.slice(i+1,i+3);if(vn(s)){t+="%"+s.toUpperCase(),i+=2;continue}}if(a==="/"&&(r=false),Lp(a)&&(a!==":"||!r))t+=a;else {let s=n.charCodeAt(i);if(s<128)t+=Be[s];else if(s<55296||s>57343)t+=Pe(s);else if(s<=56319&&i+1<n.length){let o=n.charCodeAt(i+1);o>=56320&&o<=57343?(t+=Pe(65536+(s-55296<<10)+(o-56320)),i++):t+=Pe(65533);}else t+=Pe(65533);}}return t}function bl(n,e){let t="";for(let r=0;r<n.length;r++){let i=n[r];if(i==="%"&&r+2<n.length){let a=n.slice(r+1,r+3);if(vn(a)){t+="%"+a.toUpperCase(),r+=2;continue}}if(e(i))t+=i;else {let a=n.charCodeAt(r);if(a<128)t+=Be[a];else if(a<55296||a>57343)t+=Pe(a);else if(a<=56319&&r+1<n.length){let s=n.charCodeAt(r+1);s>=56320&&s<=57343?(t+=Pe(65536+(a-55296<<10)+(s-56320)),r++):t+=Pe(65533);}else t+=Pe(65533);}}return t}function Mp(n){return bl(n,$E)}function YE(n){return bl(n,Sl)}function ZE(n){return bl(n,Sl)}function Gp(n){return n>=48&&n<=57||n>=65&&n<=90||n>=97&&n<=122||n===42||n===43||n===45||n===46||n===47||n===64||n===95}function QE(n){let e="";for(let t=0;t<n.length;t++){let r=n[t];if(r==="%"&&t+2<n.length){let i=n.slice(t+1,t+3);if(vn(i)){let a=i.toUpperCase(),s=String.fromCharCode(parseInt(a,16));_l(s)?e+=s:e+="%"+a,t+=2;continue}}if(Sl(r))e+=r;else {let i=n.charCodeAt(t);if(i<128)e+=Gp(i)?r:Be[i];else if(i<55296||i>57343)e+=Pe(i);else if(i<=56319&&t+1<n.length){let a=n.charCodeAt(t+1);a>=56320&&a<=57343?(e+=Pe(65536+(i-55296<<10)+(a-56320)),t++):e+=Pe(65533);}else e+=Pe(65533);}}return e}function e_(n){let e="";for(let t=0;t<n.length;t++){if(n[t]==="%"&&t+2<n.length){let r=n.slice(t+1,t+3);if(vn(r)){e+="%"+r.toUpperCase(),t+=2;continue}}e+=escape(n[t]);}return e}function t_(n){let e=[];if(n.userinfo!==void 0&&(e.push(Mp(n.userinfo)),e.push("@")),n.host!==void 0){let t=n.host;if(!El(t)){let r=vl(t);r.isIPV6!==true&&r.isIPVFuture!==true&&(t=Wp(t,true),r=vl(t)),r.isIPV6===true||r.isIPVFuture===true?t=`[${r.escapedHost}]`:t=Bp(t,false);}e.push(t);}if(typeof n.port=="number"||typeof n.port=="string"){let t=String(n.port);if(!RE(t))throw new TypeError("URI port is malformed.");e.push(":"),e.push(t);}return e.length?e.join(""):void 0}Jp.exports={nonSimpleDomain:BE,recomposeAuthority:t_,reescapeHostDelimiters:Bp,normalizePercentEncoding:Wp,normalizePathEncoding:KE,serializePathEncoding:XE,normalizeQueryFragmentEncoding:QE,encodeUserinfo:Mp,encodeQuery:YE,encodeFragment:ZE,escapePreservingEscapes:e_,removeDotSegments:JE,isIPv4:El,isUUID:kE,normalizeIPv6:vl,stringArrayToHexStripped:VE};});var Xp=C((vF,Kp)=>{var{isUUID:n_}=Dl(),r_=/^([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-./:;=@]|%[\da-f]{2})+)$/iu,i_=["http","https","ws","wss","urn","urn:uuid"];function s_(n){return i_.indexOf(n)!==-1}function wl(n){return n.secure===true?true:n.secure===false?false:n.scheme?n.scheme.length===3&&(n.scheme[0]==="w"||n.scheme[0]==="W")&&(n.scheme[1]==="s"||n.scheme[1]==="S")&&(n.scheme[2]==="s"||n.scheme[2]==="S"):false}function Hp(n){return n.host||(n.error=n.error||"HTTP URIs must have a host."),n}function Up(n){let e=String(n.scheme).toLowerCase()==="https";return (n.port===(e?443:80)||n.port==="")&&(n.port=void 0),n.path||(n.path="/"),n}function a_(n){return n.secure=wl(n),n.resourceName=(n.path||"/")+(n.query?"?"+n.query:""),n.path=void 0,n.query=void 0,n}function o_(n){if((n.port===(wl(n)?443:80)||n.port==="")&&(n.port=void 0),typeof n.secure=="boolean"&&(n.scheme=n.secure?"wss":"ws",n.secure=void 0),n.resourceName){let e=n.resourceName.indexOf("?"),t=e===-1?n.resourceName:n.resourceName.slice(0,e);n.path=t&&t!=="/"?t:void 0,n.query=e===-1?void 0:n.resourceName.slice(e+1),n.resourceName=void 0;}return n.fragment=void 0,n}function u_(n,e){if(!n.path)return n.error="URN can not be parsed",n;let t=n.path.match(r_);if(t&&t[0]===n.path){let r=e.scheme||n.scheme||"urn";n.nid=t[1].toLowerCase(),n.nss=t[2];let i=`${r}:${e.nid||n.nid}`,a=Al(i);n.path=void 0,a&&(n=a.parse(n,e));}else n.error=n.error||"URN can not be parsed.";return n}function l_(n,e){if(n.nid===void 0)throw new Error("URN without nid cannot be serialized");let t=e.scheme||n.scheme||"urn",r=n.nid.toLowerCase(),i=`${t}:${e.nid||r}`,a=Al(i);a&&(n=a.serialize(n,e));let s=n,o=n.nss;return s.path=`${r||e.nid}:${o}`,e.skipEscape=true,s}function c_(n,e){let t=n;return t.uuid=t.nss,t.nss=void 0,!e.tolerant&&(!t.uuid||!n_(t.uuid))&&(t.error=t.error||"UUID is not valid."),t}function h_(n){let e=n;return e.nss=(n.uuid||"").toLowerCase(),e}var zp={scheme:"http",domainHost:true,parse:Hp,serialize:Up},d_={scheme:"https",domainHost:zp.domainHost,parse:Hp,serialize:Up},vs={scheme:"ws",domainHost:true,parse:a_,serialize:o_},f_={scheme:"wss",domainHost:vs.domainHost,parse:vs.parse,serialize:vs.serialize},p_={scheme:"urn",parse:u_,serialize:l_,skipNormalize:true},m_={scheme:"urn:uuid",parse:c_,serialize:h_,skipNormalize:true},Es={http:zp,https:d_,ws:vs,wss:f_,urn:p_,"urn:uuid":m_};Object.setPrototypeOf(Es,null);function Al(n){return n&&(Es[n]||Es[n.toLowerCase()])||void 0}Kp.exports={wsIsSecure:wl,SCHEMES:Es,isValidSchemeName:s_,getSchemeHandler:Al};});var lm=C((EF,bs)=>{var{normalizeIPv6:tm,removeDotSegments:ei,recomposeAuthority:g_,normalizePercentEncoding:Pl,normalizePathEncoding:y_,serializePathEncoding:Yp,normalizeQueryFragmentEncoding:Zp,encodeQuery:C_,encodeFragment:v_,reescapeHostDelimiters:E_,isIPv4:nm,nonSimpleDomain:__}=Dl(),{SCHEMES:rm,getSchemeHandler:Tl}=Xp(),im=/^[A-Za-z][A-Za-z0-9+.-]*$/u,sm="URI scheme is malformed.";function Qp(n){let e=unescape(String(n));if(!im.test(e))throw new TypeError(sm);return e}function S_(n,e){return typeof n=="string"?n=x_(n,e):typeof n=="object"&&(n=Ss(En(n,e),e)),n}function b_(n,e,t){let r=t?Object.assign({scheme:"null"},t):{scheme:"null"},{parsed:i,malformedAuthorityOrPort:a,malformedPercentEncoding:s,malformedSchemeSpecific:o,malformedHost:u,malformedScheme:l}=_s(n,r),{parsed:c,malformedAuthorityOrPort:h,malformedPercentEncoding:f,malformedSchemeSpecific:p,malformedHost:m,malformedScheme:g}=_s(e,r);if(a||h||s||f||o||p||u||m||l||g)throw new Error(i.error||c.error||"URI is malformed.");let v=am(i,c,r,true),E=Tl(t&&t.scheme||v.scheme),b=v.host,d=b!==void 0&&b!==""&&(nm(b)||tm(b).isIPV6);om(v,t||{},E,d);let _=b&&b.indexOf("%")!==-1&&!/\P{ASCII}/u.test(b);if(v.error&&!_)throw new Error(v.error);return r.skipEscape=true,En(v,r)}function am(n,e,t,r){let i={};return r||(n=Ss(En(n,t),t),e=Ss(En(e,t),t)),t=t||{},!t.tolerant&&e.scheme?(i.scheme=e.scheme,i.userinfo=e.userinfo,i.host=e.host,i.port=e.port,i.path=ei(e.path||""),i.query=e.query):(e.userinfo!==void 0||e.host!==void 0||e.port!==void 0?(i.userinfo=e.userinfo,i.host=e.host,i.port=e.port,i.path=ei(e.path||""),i.query=e.query):(e.path?(e.path[0]==="/"?i.path=ei(e.path):((n.userinfo!==void 0||n.host!==void 0||n.port!==void 0)&&!n.path?i.path="/"+e.path:n.path?i.path=n.path.slice(0,n.path.lastIndexOf("/")+1)+e.path:i.path=e.path,i.path=ei(i.path)),i.query=e.query):(i.path=n.path,e.query!==void 0?i.query=e.query:i.query=n.query),i.userinfo=n.userinfo,i.host=n.host,i.port=n.port),i.scheme=n.scheme),i.fragment=e.fragment,i}function D_(n,e,t){let r=em(n,t),i=em(e,t);return r!==void 0&&i!==void 0&&r===i}function En(n,e){let t={host:n.host,scheme:n.scheme,userinfo:n.userinfo,port:n.port,path:n.path,query:n.query,nid:n.nid,nss:n.nss,uuid:n.uuid,fragment:n.fragment,reference:n.reference,resourceName:n.resourceName,secure:n.secure,error:""},r=Object.assign({},e),i=[];t.scheme&&(t.scheme=Qp(t.scheme));let a=Tl(r.scheme||t.scheme);a&&a.serialize&&a.serialize(t,r);let s=t.userinfo!==void 0||t.host!==void 0||t.port!==void 0,o=!r.skipEscape&&t.scheme===void 0&&!s;t.path!==void 0&&(r.skipEscape?t.path=Pl(t.path):t.path=Yp(t.path,o)),r.reference!=="suffix"&&t.scheme&&(t.scheme=Qp(t.scheme),i.push(t.scheme,":"));let u=g_(t);if(u!==void 0&&(r.reference!=="suffix"&&i.push("//"),i.push(u),t.path&&t.path[0]!=="/"&&i.push("/")),t.path!==void 0){let l=t.path;!r.absolutePath&&(!a||!a.absolutePath)&&(l=ei(l)),o&&(l=Yp(l,true)),u===void 0&&l[0]==="/"&&l[1]==="/"&&(l="/%2F"+l.slice(2)),i.push(l);}return t.query!==void 0&&i.push("?",C_(t.query)),t.fragment!==void 0&&i.push("#",v_(t.fragment)),i.join("")}var w_=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u,A_=/^(?:[^#/:?]+:)?\/\/([^/?#]*)/,P_=/^(?:[^#/:?]+:)?([/\\\t\n\r]*)/;function T_(n,e){if(e[2]!==void 0&&n.path&&n.path[0]!=="/")return 'URI path must start with "/" when authority is present.';if(typeof n.port=="number"&&(n.port<0||n.port>65535))return "URI port is malformed."}function Qr(n){if(n===void 0)return false;let e=n.indexOf("%");for(;e!==-1;){if(e+2>=n.length||!/^[\da-f]{2}$/iu.test(n.slice(e+1,e+3)))return true;e=n.indexOf("%",e+3);}return false}function Ol(n){return n[0]==="["&&n[n.length-1]==="]"}function O_(n){let e=n[4];return Qr(n[3])||e!==void 0&&!Ol(e)&&Qr(e)||Qr(n[6])||Qr(n[7])||Qr(n[8])}function om(n,e,t,r){if(!e.unicodeSupport&&(!t||!t.unicodeSupport)&&n.host&&!Ol(n.host)&&(e.domainHost||t&&t.domainHost)&&r===false&&__(n.host))try{n.host=new URL("http://"+n.host).hostname;}catch(i){return n.error=n.error||"Host's domain name can not be converted to ASCII: "+i,true}return false}function _s(n,e){let t=Object.assign({},e),r={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},i=false,a=false,s=false,o=false,u=false,l=false,c=false;t.reference==="suffix"&&(t.scheme?n=t.scheme+":"+n:n="//"+n);let h=n.match(A_);h!==null&&h[1].indexOf("\\")!==-1&&(r.error="URI authority must not contain a literal backslash.",i=true);let f=n.match(P_);if(f!==null){let m=f[1],g=m.replace(/[\t\n\r]/g,"");g.length>=2&&(g.slice(0,2)!=="//"?(r.error=r.error||"URI authority must not contain a literal backslash.",i=true):m.length!==g.length&&(r.error=r.error||"URI authority introducer must not contain whitespace.",i=true));}let p=n.match(w_);if(p){if(r.scheme=p[1],r.userinfo=p[3],r.host=p[4],r.port=parseInt(p[5],10),r.path=p[6]||"",r.query=p[7],r.fragment=p[8],r.scheme!==void 0){let v=unescape(r.scheme);im.test(v)?r.scheme=v.toLowerCase():(r.error=r.error||sm,l=true);}a=O_(p),a&&(r.error=r.error||"URI contains malformed percent-encoding."),isNaN(r.port)&&(r.port=p[5]);let m=T_(r,p);if(m!==void 0&&(r.error=r.error||m,i=true),r.host)if(nm(r.host)===false){let E=Ol(r.host),b=r.host.indexOf("[")!==-1||r.host.indexOf("]")!==-1,d=tm(r.host);c=d.isIPV6||d.isIPVFuture===true,u=b&&(!E||d.error===true),r.host=c?d.host:d.host.toLowerCase(),u&&(r.error=r.error||"URI host is malformed.",i=true);}else c=true;r.scheme===void 0&&r.userinfo===void 0&&r.host===void 0&&r.port===void 0&&r.query===void 0&&!r.path?r.reference="same-document":r.scheme===void 0?r.reference="relative":r.fragment===void 0?r.reference="absolute":r.reference="uri",t.reference&&t.reference!=="suffix"&&t.reference!==r.reference&&(r.error=r.error||"URI is not a "+t.reference+" reference.");let g=Tl(t.scheme||r.scheme);if(u||(o=om(r,t,g,c)),n.indexOf("%")!==-1&&r.host!==void 0&&!u){let v=c?r.host:Pl(r.host,true);c||(v=Pl(v.toLowerCase())),r.host=E_(v,c);}(!g||g&&!g.skipNormalize)&&(r.path&&(r.path=y_(r.path)),r.query&&(r.query=Zp(r.query)),r.fragment&&(r.fragment=Zp(r.fragment))),g&&g.parse&&(g.parse(r,t),g===rm.urn&&r.nid===void 0&&(s=true));}else r.error=r.error||"URI can not be parsed.";return {parsed:r,malformedAuthorityOrPort:i,malformedPercentEncoding:a,malformedSchemeSpecific:s,malformedHost:o,malformedScheme:l}}function Ss(n,e){return _s(n,e).parsed}function x_(n,e){return um(n,e).normalized}function um(n,e){let{parsed:t,malformedAuthorityOrPort:r,malformedPercentEncoding:i,malformedSchemeSpecific:a,malformedHost:s,malformedScheme:o}=_s(n,e);return {normalized:r||i||a||s||o?n:En(t,e),malformedAuthorityOrPort:r,malformedPercentEncoding:i,malformedSchemeSpecific:a,malformedHost:s,malformedScheme:o}}function em(n,e){if(typeof n!="string"&&typeof n!="object")return;let t;try{t=typeof n=="string"?n:En(n,e);}catch{return}let{normalized:r,malformedAuthorityOrPort:i,malformedPercentEncoding:a,malformedSchemeSpecific:s,malformedHost:o,malformedScheme:u}=um(t,e);return i||a||s||o||u?void 0:r}var xl={SCHEMES:rm,normalize:S_,resolve:b_,resolveComponent:am,equal:D_,serialize:En,parse:Ss};bs.exports=xl;bs.exports.default=xl;bs.exports.fastUri=xl;});var hm=C(Fl=>{Object.defineProperty(Fl,"__esModule",{value:true});var cm=lm();cm.code='require("ajv/dist/runtime/uri").default';Fl.default=cm;});var kl=C(Ee=>{Object.defineProperty(Ee,"__esModule",{value:true});Ee.CodeGen=Ee.Name=Ee.nil=Ee.stringify=Ee.str=Ee._=Ee.KeywordCxt=void 0;var F_=zn();Object.defineProperty(Ee,"KeywordCxt",{enumerable:true,get:function(){return F_.KeywordCxt}});var Yn=I();Object.defineProperty(Ee,"_",{enumerable:true,get:function(){return Yn._}});Object.defineProperty(Ee,"str",{enumerable:true,get:function(){return Yn.str}});Object.defineProperty(Ee,"stringify",{enumerable:true,get:function(){return Yn.stringify}});Object.defineProperty(Ee,"nil",{enumerable:true,get:function(){return Yn.nil}});Object.defineProperty(Ee,"Name",{enumerable:true,get:function(){return Yn.Name}});Object.defineProperty(Ee,"CodeGen",{enumerable:true,get:function(){return Yn.CodeGen}});var N_=Yr(),gm=Kn(),I_=Qu(),ti=Zr(),k_=I(),ni=zr(),Ds=Ur(),Il=q(),dm=jp(),R_=hm(),ym=(n,e)=>new RegExp(n,e);ym.code="new RegExp";var $_=["removeAdditional","useDefaults","coerceTypes"],V_=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),j_={errorDataPath:"",format:"`validateFormats: false` can be used instead.",nullable:'"nullable" keyword is supported by default.',jsonPointers:"Deprecated jsPropertySyntax can be used instead.",extendRefs:"Deprecated ignoreKeywordsWithRef can be used instead.",missingRefs:"Pass empty schema with $id that should be ignored to ajv.addSchema.",processCode:"Use option `code: {process: (code, schemaEnv: object) => string}`",sourceCode:"Use option `code: {source: true}`",strictDefaults:"It is default now, see option `strict`.",strictKeywords:"It is default now, see option `strict`.",uniqueItems:'"uniqueItems" keyword is always validated.',unknownFormats:"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",cache:"Map is used as cache, schema object as key.",serialize:"Map is used as cache, schema object as key.",ajvErrors:"It is default now."},q_={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},fm=200;function L_(n){var e,t,r,i,a,s,o,u,l,c,h,f,p,m,g,v,E,b,d,_,y,S,w,A,F;let Z=n.strict,be=(e=n.code)===null||e===void 0?void 0:e.optimize,Fr=be===true||be===void 0?1:be||0,Nr=(r=(t=n.code)===null||t===void 0?void 0:t.regExp)!==null&&r!==void 0?r:ym,Vn=(i=n.uriResolver)!==null&&i!==void 0?i:R_.default;return {strictSchema:(s=(a=n.strictSchema)!==null&&a!==void 0?a:Z)!==null&&s!==void 0?s:true,strictNumbers:(u=(o=n.strictNumbers)!==null&&o!==void 0?o:Z)!==null&&u!==void 0?u:true,strictTypes:(c=(l=n.strictTypes)!==null&&l!==void 0?l:Z)!==null&&c!==void 0?c:"log",strictTuples:(f=(h=n.strictTuples)!==null&&h!==void 0?h:Z)!==null&&f!==void 0?f:"log",strictRequired:(m=(p=n.strictRequired)!==null&&p!==void 0?p:Z)!==null&&m!==void 0?m:false,code:n.code?{...n.code,optimize:Fr,regExp:Nr}:{optimize:Fr,regExp:Nr},loopRequired:(g=n.loopRequired)!==null&&g!==void 0?g:fm,loopEnum:(v=n.loopEnum)!==null&&v!==void 0?v:fm,meta:(E=n.meta)!==null&&E!==void 0?E:true,messages:(b=n.messages)!==null&&b!==void 0?b:true,inlineRefs:(d=n.inlineRefs)!==null&&d!==void 0?d:true,schemaId:(_=n.schemaId)!==null&&_!==void 0?_:"$id",addUsedSchema:(y=n.addUsedSchema)!==null&&y!==void 0?y:true,validateSchema:(S=n.validateSchema)!==null&&S!==void 0?S:true,validateFormats:(w=n.validateFormats)!==null&&w!==void 0?w:true,unicodeRegExp:(A=n.unicodeRegExp)!==null&&A!==void 0?A:true,int32range:(F=n.int32range)!==null&&F!==void 0?F:true,uriResolver:Vn}}var ri=class{constructor(e={}){this.schemas={},this.refs={},this.formats=Object.create(null),this._compilations=new Set,this._loading={},this._cache=new Map,e=this.opts={...e,...L_(e)};let{es5:t,lines:r}=this.opts.code;this.scope=new k_.ValueScope({scope:{},prefixes:V_,es5:t,lines:r}),this.logger=H_(e.logger);let i=e.validateFormats;e.validateFormats=false,this.RULES=(0, I_.getRules)(),pm.call(this,j_,e,"NOT SUPPORTED"),pm.call(this,q_,e,"DEPRECATED","warn"),this._metaOpts=G_.call(this),e.formats&&W_.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),e.keywords&&M_.call(this,e.keywords),typeof e.meta=="object"&&this.addMetaSchema(e.meta),B_.call(this),e.validateFormats=i;}_addVocabularies(){this.addKeyword("$async");}_addDefaultMetaSchema(){let{$data:e,meta:t,schemaId:r}=this.opts,i=dm;r==="id"&&(i={...dm},i.id=i.$id,delete i.$id),t&&e&&this.addMetaSchema(i,i[r],false);}defaultMeta(){let{meta:e,schemaId:t}=this.opts;return this.opts.defaultMeta=typeof e=="object"?e[t]||e:void 0}validate(e,t){let r;if(typeof e=="string"){if(r=this.getSchema(e),!r)throw new Error(`no schema with key or ref "${e}"`)}else r=this.compile(e);let i=r(t);return "$async"in r||(this.errors=r.errors),i}compile(e,t){let r=this._addSchema(e,t);return r.validate||this._compileSchemaEnv(r)}compileAsync(e,t){if(typeof this.opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");let{loadSchema:r}=this.opts;return i.call(this,e,t);async function i(c,h){await a.call(this,c.$schema);let f=this._addSchema(c,h);return f.validate||s.call(this,f)}async function a(c){c&&!this.getSchema(c)&&await i.call(this,{$ref:c},true);}async function s(c){try{return this._compileSchemaEnv(c)}catch(h){if(!(h instanceof gm.default))throw h;return o.call(this,h),await u.call(this,h.missingSchema),s.call(this,c)}}function o({missingSchema:c,missingRef:h}){if(this.refs[c])throw new Error(`AnySchema ${c} is loaded but ${h} cannot be resolved`)}async function u(c){let h=await l.call(this,c);this.refs[c]||await a.call(this,h.$schema),this.refs[c]||this.addSchema(h,c,t);}async function l(c){let h=this._loading[c];if(h)return h;try{return await(this._loading[c]=r(c))}finally{delete this._loading[c];}}}addSchema(e,t,r,i=this.opts.validateSchema){if(Array.isArray(e)){for(let s of e)this.addSchema(s,void 0,r,i);return this}let a;if(typeof e=="object"){let{schemaId:s}=this.opts;if(a=e[s],a!==void 0&&typeof a!="string")throw new Error(`schema ${s} must be string`)}return t=(0, ni.normalizeId)(t||a),this._checkUnique(t),this.schemas[t]=this._addSchema(e,r,t,i,true),this}addMetaSchema(e,t,r=this.opts.validateSchema){return this.addSchema(e,t,true,r),this}validateSchema(e,t){if(typeof e=="boolean")return true;let r;if(r=e.$schema,r!==void 0&&typeof r!="string")throw new Error("$schema must be a string");if(r=r||this.opts.defaultMeta||this.defaultMeta(),!r)return this.logger.warn("meta-schema not available"),this.errors=null,true;let i=this.validate(r,e);if(!i&&t){let a="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(a);else throw new Error(a)}return i}getSchema(e){let t;for(;typeof(t=mm.call(this,e))=="string";)e=t;if(t===void 0){let{schemaId:r}=this.opts,i=new ti.SchemaEnv({schema:{},schemaId:r});if(t=ti.resolveSchema.call(this,i,e),!t)return;this.refs[e]=t;}return t.validate||this._compileSchemaEnv(t)}removeSchema(e){if(e instanceof RegExp)return this._removeAllSchemas(this.schemas,e),this._removeAllSchemas(this.refs,e),this;switch(typeof e){case "undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case "string":{let t=mm.call(this,e);return typeof t=="object"&&this._cache.delete(t.schema),delete this.schemas[e],delete this.refs[e],this}case "object":{let t=e;this._cache.delete(t);let r=e[this.opts.schemaId];return r&&(r=(0, ni.normalizeId)(r),delete this.schemas[r],delete this.refs[r]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(e){for(let t of e)this.addKeyword(t);return this}addKeyword(e,t){let r;if(typeof e=="string")r=e,typeof t=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),t.keyword=r);else if(typeof e=="object"&&t===void 0){if(t=e,r=t.keyword,Array.isArray(r)&&!r.length)throw new Error("addKeywords: keyword must be string or non-empty array")}else throw new Error("invalid addKeywords parameters");if(z_.call(this,r,t),!t)return (0, Il.eachItem)(r,a=>Nl.call(this,a)),this;X_.call(this,t);let i={...t,type:(0, Ds.getJSONTypes)(t.type),schemaType:(0, Ds.getJSONTypes)(t.schemaType)};return (0, Il.eachItem)(r,i.type.length===0?a=>Nl.call(this,a,i):a=>i.type.forEach(s=>Nl.call(this,a,i,s))),this}getKeyword(e){let t=this.RULES.all[e];return typeof t=="object"?t.definition:!!t}removeKeyword(e){let{RULES:t}=this;delete t.keywords[e],delete t.all[e];for(let r of t.rules){let i=r.rules.findIndex(a=>a.keyword===e);i>=0&&r.rules.splice(i,1);}return this}addFormat(e,t){return typeof t=="string"&&(t=new RegExp(t)),this.formats[e]=t,this}errorsText(e=this.errors,{separator:t=", ",dataVar:r="data"}={}){return !e||e.length===0?"No errors":e.map(i=>`${r}${i.instancePath} ${i.message}`).reduce((i,a)=>i+t+a)}$dataMetaSchema(e,t){let r=this.RULES.all;e=JSON.parse(JSON.stringify(e));for(let i of t){let a=i.split("/").slice(1),s=e;for(let o of a)s=s[o];for(let o in r){let u=r[o];if(typeof u!="object")continue;let{$data:l}=u.definition,c=s[o];l&&c&&(s[o]=Cm(c));}}return e}_removeAllSchemas(e,t){for(let r in e){let i=e[r];(!t||t.test(r))&&(typeof i=="string"?delete e[r]:i&&!i.meta&&(this._cache.delete(i.schema),delete e[r]));}}_addSchema(e,t,r,i=this.opts.validateSchema,a=this.opts.addUsedSchema){let s,{schemaId:o}=this.opts;if(typeof e=="object")s=e[o];else {if(this.opts.jtd)throw new Error("schema must be object");if(typeof e!="boolean")throw new Error("schema must be object or boolean")}let u=this._cache.get(e);if(u!==void 0)return u;r=(0, ni.normalizeId)(s||r);let l=ni.getSchemaRefs.call(this,e,r);return u=new ti.SchemaEnv({schema:e,schemaId:o,meta:t,baseId:r,localRefs:l}),this._cache.set(u.schema,u),a&&!r.startsWith("#")&&(r&&this._checkUnique(r),this.refs[r]=u),i&&this.validateSchema(e,true),u}_checkUnique(e){if(this.schemas[e]||this.refs[e])throw new Error(`schema with key or id "${e}" already exists`)}_compileSchemaEnv(e){if(e.meta?this._compileMetaSchema(e):ti.compileSchema.call(this,e),!e.validate)throw new Error("ajv implementation error");return e.validate}_compileMetaSchema(e){let t=this.opts;this.opts=this._metaOpts;try{ti.compileSchema.call(this,e);}finally{this.opts=t;}}};ri.ValidationError=N_.default;ri.MissingRefError=gm.default;Ee.default=ri;function pm(n,e,t,r="error"){for(let i in n){let a=i;a in e&&this.logger[r](`${t}: option ${i}. ${n[a]}`);}}function mm(n){return n=(0, ni.normalizeId)(n),this.schemas[n]||this.refs[n]}function B_(){let n=this.opts.schemas;if(n)if(Array.isArray(n))this.addSchema(n);else for(let e in n)this.addSchema(n[e],e);}function W_(){for(let n in this.opts.formats){let e=this.opts.formats[n];e&&this.addFormat(n,e);}}function M_(n){if(Array.isArray(n)){this.addVocabulary(n);return}this.logger.warn("keywords option as map is deprecated, pass array");for(let e in n){let t=n[e];t.keyword||(t.keyword=e),this.addKeyword(t);}}function G_(){let n={...this.opts};for(let e of $_)delete n[e];return n}var J_={log(){},warn(){},error(){}};function H_(n){if(n===false)return J_;if(n===void 0)return console;if(n.log&&n.warn&&n.error)return n;throw new Error("logger must implement log, warn and error methods")}var U_=/^[a-z_$][a-z0-9_$:-]*$/i;function z_(n,e){let{RULES:t}=this;if((0, Il.eachItem)(n,r=>{if(t.keywords[r])throw new Error(`Keyword ${r} is already defined`);if(!U_.test(r))throw new Error(`Keyword ${r} has invalid name`)}),!!e&&e.$data&&!("code"in e||"validate"in e))throw new Error('$data keyword must have "code" or "validate" function')}function Nl(n,e,t){var r;let i=e?.post;if(t&&i)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:a}=this,s=i?a.post:a.rules.find(({type:u})=>u===t);if(s||(s={type:t,rules:[]},a.rules.push(s)),a.keywords[n]=true,!e)return;let o={keyword:n,definition:{...e,type:(0, Ds.getJSONTypes)(e.type),schemaType:(0, Ds.getJSONTypes)(e.schemaType)}};e.before?K_.call(this,s,o,e.before):s.rules.push(o),a.all[n]=o,(r=e.implements)===null||r===void 0||r.forEach(u=>this.addKeyword(u));}function K_(n,e,t){let r=n.rules.findIndex(i=>i.keyword===t);r>=0?n.rules.splice(r,0,e):(n.rules.push(e),this.logger.warn(`rule ${t} is not defined`));}function X_(n){let{metaSchema:e}=n;e!==void 0&&(n.$data&&this.opts.$data&&(e=Cm(e)),n.validateSchema=this.compile(e,true));}var Y_={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function Cm(n){return {anyOf:[n,Y_]}}});var vm=C(Rl=>{Object.defineProperty(Rl,"__esModule",{value:true});var Z_={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};Rl.default=Z_;});var Ps=C(_n=>{Object.defineProperty(_n,"__esModule",{value:true});_n.callRef=_n.getValidate=void 0;var Q_=Kn(),Em=Ze(),We=I(),Zn=Ye(),_m=Zr(),ws=q(),eS={keyword:"$ref",schemaType:"string",code(n){let{gen:e,schema:t,it:r}=n,{baseId:i,schemaEnv:a,validateName:s,opts:o,self:u}=r,{root:l}=a;if((t==="#"||t==="#/")&&i===l.baseId)return h();let c=_m.resolveRef.call(u,l,i,t);if(c===void 0)throw new Q_.default(r.opts.uriResolver,i,t);if(c instanceof _m.SchemaEnv)return f(c);return p(c);function h(){if(a===l)return As(n,s,a,a.$async);let m=e.scopeValue("root",{ref:l});return As(n,(0, We._)`${m}.validate`,l,l.$async)}function f(m){let g=Sm(n,m);As(n,g,m,m.$async);}function p(m){let g=e.scopeValue("schema",o.code.source===true?{ref:m,code:(0, We.stringify)(m)}:{ref:m}),v=e.name("valid"),E=n.subschema({schema:m,dataTypes:[],schemaPath:We.nil,topSchemaRef:g,errSchemaPath:t},v);n.mergeEvaluated(E),n.ok(v);}}};function Sm(n,e){let{gen:t}=n;return e.validate?t.scopeValue("validate",{ref:e.validate}):(0, We._)`${t.scopeValue("wrapper",{ref:e})}.validate`}_n.getValidate=Sm;function As(n,e,t,r){let{gen:i,it:a}=n,{allErrors:s,schemaEnv:o,opts:u}=a,l=u.passContext?Zn.default.this:We.nil;r?c():h();function c(){if(!o.$async)throw new Error("async schema referenced by sync schema");let m=i.let("valid");i.try(()=>{i.code((0, We._)`await ${(0, Em.callValidateCode)(n,e,l)}`),p(e),s||i.assign(m,true);},g=>{i.if((0, We._)`!(${g} instanceof ${a.ValidationError})`,()=>i.throw(g)),f(g),s||i.assign(m,false);}),n.ok(m);}function h(){n.result((0, Em.callValidateCode)(n,e,l),()=>p(e),()=>f(e));}function f(m){let g=(0, We._)`${m}.errors`;i.assign(Zn.default.vErrors,(0, We._)`${Zn.default.vErrors} === null ? ${g} : ${Zn.default.vErrors}.concat(${g})`),i.assign(Zn.default.errors,(0, We._)`${Zn.default.vErrors}.length`);}function p(m){var g;if(!a.opts.unevaluated)return;let v=(g=t?.validate)===null||g===void 0?void 0:g.evaluated;if(a.props!==true)if(v&&!v.dynamicProps)v.props!==void 0&&(a.props=ws.mergeEvaluated.props(i,v.props,a.props));else {let E=i.var("props",(0, We._)`${m}.evaluated.props`);a.props=ws.mergeEvaluated.props(i,E,a.props,We.Name);}if(a.items!==true)if(v&&!v.dynamicItems)v.items!==void 0&&(a.items=ws.mergeEvaluated.items(i,v.items,a.items));else {let E=i.var("items",(0, We._)`${m}.evaluated.items`);a.items=ws.mergeEvaluated.items(i,E,a.items,We.Name);}}}_n.callRef=As;_n.default=eS;});var Vl=C($l=>{Object.defineProperty($l,"__esModule",{value:true});var tS=vm(),nS=Ps(),rS=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",tS.default,nS.default];$l.default=rS;});var bm=C(jl=>{Object.defineProperty(jl,"__esModule",{value:true});var Ts=I(),zt=Ts.operators,Os={maximum:{okStr:"<=",ok:zt.LTE,fail:zt.GT},minimum:{okStr:">=",ok:zt.GTE,fail:zt.LT},exclusiveMaximum:{okStr:"<",ok:zt.LT,fail:zt.GTE},exclusiveMinimum:{okStr:">",ok:zt.GT,fail:zt.LTE}},iS={message:({keyword:n,schemaCode:e})=>(0, Ts.str)`must be ${Os[n].okStr} ${e}`,params:({keyword:n,schemaCode:e})=>(0, Ts._)`{comparison: ${Os[n].okStr}, limit: ${e}}`},sS={keyword:Object.keys(Os),type:"number",schemaType:"number",$data:true,error:iS,code(n){let{keyword:e,data:t,schemaCode:r}=n;n.fail$data((0, Ts._)`${t} ${Os[e].fail} ${r} || isNaN(${t})`);}};jl.default=sS;});var Dm=C(ql=>{Object.defineProperty(ql,"__esModule",{value:true});var ii=I(),aS={message:({schemaCode:n})=>(0, ii.str)`must be multiple of ${n}`,params:({schemaCode:n})=>(0, ii._)`{multipleOf: ${n}}`},oS={keyword:"multipleOf",type:"number",schemaType:"number",$data:true,error:aS,code(n){let{gen:e,data:t,schemaCode:r,it:i}=n,a=i.opts.multipleOfPrecision,s=e.let("res"),o=a?(0, ii._)`Math.abs(Math.round(${s}) - ${s}) > 1e-${a}`:(0, ii._)`${s} !== parseInt(${s})`;n.fail$data((0, ii._)`(${r} === 0 || (${s} = ${t}/${r}, ${o}))`);}};ql.default=oS;});var Am=C(Ll=>{Object.defineProperty(Ll,"__esModule",{value:true});function wm(n){let e=n.length,t=0,r=0,i;for(;r<e;)t++,i=n.charCodeAt(r++),i>=55296&&i<=56319&&r<e&&(i=n.charCodeAt(r),(i&64512)===56320&&r++);return t}Ll.default=wm;wm.code='require("ajv/dist/runtime/ucs2length").default';});var Pm=C(Bl=>{Object.defineProperty(Bl,"__esModule",{value:true});var Sn=I(),uS=q(),lS=Am(),cS={message({keyword:n,schemaCode:e}){let t=n==="maxLength"?"more":"fewer";return (0, Sn.str)`must NOT have ${t} than ${e} characters`},params:({schemaCode:n})=>(0, Sn._)`{limit: ${n}}`},hS={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:true,error:cS,code(n){let{keyword:e,data:t,schemaCode:r,it:i}=n,a=e==="maxLength"?Sn.operators.GT:Sn.operators.LT,s=i.opts.unicode===false?(0, Sn._)`${t}.length`:(0, Sn._)`${(0, uS.useFunc)(n.gen,lS.default)}(${t})`;n.fail$data((0, Sn._)`${s} ${a} ${r}`);}};Bl.default=hS;});var Tm=C(Wl=>{Object.defineProperty(Wl,"__esModule",{value:true});var dS=Ze(),fS=q(),Qn=I(),pS={message:({schemaCode:n})=>(0, Qn.str)`must match pattern "${n}"`,params:({schemaCode:n})=>(0, Qn._)`{pattern: ${n}}`},mS={keyword:"pattern",type:"string",schemaType:"string",$data:true,error:pS,code(n){let{gen:e,data:t,$data:r,schema:i,schemaCode:a,it:s}=n,o=s.opts.unicodeRegExp?"u":"";if(r){let{regExp:u}=s.opts.code,l=u.code==="new RegExp"?(0, Qn._)`new RegExp`:(0, fS.useFunc)(e,u),c=e.let("valid");e.try(()=>e.assign(c,(0, Qn._)`${l}(${a}, ${o}).test(${t})`),()=>e.assign(c,false)),n.fail$data((0, Qn._)`!${c}`);}else {let u=(0, dS.usePattern)(n,i);n.fail$data((0, Qn._)`!${u}.test(${t})`);}}};Wl.default=mS;});var Om=C(Ml=>{Object.defineProperty(Ml,"__esModule",{value:true});var si=I(),gS={message({keyword:n,schemaCode:e}){let t=n==="maxProperties"?"more":"fewer";return (0, si.str)`must NOT have ${t} than ${e} properties`},params:({schemaCode:n})=>(0, si._)`{limit: ${n}}`},yS={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:true,error:gS,code(n){let{keyword:e,data:t,schemaCode:r}=n,i=e==="maxProperties"?si.operators.GT:si.operators.LT;n.fail$data((0, si._)`Object.keys(${t}).length ${i} ${r}`);}};Ml.default=yS;});var xm=C(Gl=>{Object.defineProperty(Gl,"__esModule",{value:true});var ai=Ze(),oi=I(),CS=q(),vS={message:({params:{missingProperty:n}})=>(0, oi.str)`must have required property '${n}'`,params:({params:{missingProperty:n}})=>(0, oi._)`{missingProperty: ${n}}`},ES={keyword:"required",type:"object",schemaType:"array",$data:true,error:vS,code(n){let{gen:e,schema:t,schemaCode:r,data:i,$data:a,it:s}=n,{opts:o}=s;if(!a&&t.length===0)return;let u=t.length>=o.loopRequired;if(s.allErrors?l():c(),o.strictRequired){let p=n.parentSchema.properties,{definedProperties:m}=n.it;for(let g of t)if(p?.[g]===void 0&&!m.has(g)){let v=s.schemaEnv.baseId+s.errSchemaPath,E=`required property "${g}" is not defined at "${v}" (strictRequired)`;(0, CS.checkStrictMode)(s,E,s.opts.strictRequired);}}function l(){if(u||a)n.block$data(oi.nil,h);else for(let p of t)(0, ai.checkReportMissingProp)(n,p);}function c(){let p=e.let("missing");if(u||a){let m=e.let("valid",true);n.block$data(m,()=>f(p,m)),n.ok(m);}else e.if((0, ai.checkMissingProp)(n,t,p)),(0, ai.reportMissingProp)(n,p),e.else();}function h(){e.forOf("prop",r,p=>{n.setParams({missingProperty:p}),e.if((0, ai.noPropertyInData)(e,i,p,o.ownProperties),()=>n.error());});}function f(p,m){n.setParams({missingProperty:p}),e.forOf(p,r,()=>{e.assign(m,(0, ai.propertyInData)(e,i,p,o.ownProperties)),e.if((0, oi.not)(m),()=>{n.error(),e.break();});},oi.nil);}}};Gl.default=ES;});var Fm=C(Jl=>{Object.defineProperty(Jl,"__esModule",{value:true});var ui=I(),_S={message({keyword:n,schemaCode:e}){let t=n==="maxItems"?"more":"fewer";return (0, ui.str)`must NOT have ${t} than ${e} items`},params:({schemaCode:n})=>(0, ui._)`{limit: ${n}}`},SS={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:true,error:_S,code(n){let{keyword:e,data:t,schemaCode:r}=n,i=e==="maxItems"?ui.operators.GT:ui.operators.LT;n.fail$data((0, ui._)`${t}.length ${i} ${r}`);}};Jl.default=SS;});var xs=C(Hl=>{Object.defineProperty(Hl,"__esModule",{value:true});var Nm=ol();Nm.code='require("ajv/dist/runtime/equal").default';Hl.default=Nm;});var Im=C(zl=>{Object.defineProperty(zl,"__esModule",{value:true});var Ul=Ur(),_e=I(),bS=q(),DS=xs(),wS={message:({params:{i:n,j:e}})=>(0, _e.str)`must NOT have duplicate items (items ## ${e} and ${n} are identical)`,params:({params:{i:n,j:e}})=>(0, _e._)`{i: ${n}, j: ${e}}`},AS={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:true,error:wS,code(n){let{gen:e,data:t,$data:r,schema:i,parentSchema:a,schemaCode:s,it:o}=n;if(!r&&!i)return;let u=e.let("valid"),l=a.items?(0, Ul.getSchemaTypes)(a.items):[];n.block$data(u,c,(0, _e._)`${s} === false`),n.ok(u);function c(){let m=e.let("i",(0, _e._)`${t}.length`),g=e.let("j");n.setParams({i:m,j:g}),e.assign(u,true),e.if((0, _e._)`${m} > 1`,()=>(h()?f:p)(m,g));}function h(){return l.length>0&&!l.some(m=>m==="object"||m==="array")}function f(m,g){let v=e.name("item"),E=(0, Ul.checkDataTypes)(l,v,o.opts.strictNumbers,Ul.DataType.Wrong),b=e.const("indices",(0, _e._)`{}`);e.for((0, _e._)`;${m}--;`,()=>{e.let(v,(0, _e._)`${t}[${m}]`),e.if(E,(0, _e._)`continue`),l.length>1&&e.if((0, _e._)`typeof ${v} == "string"`,(0, _e._)`${v} += "_"`),e.if((0, _e._)`typeof ${b}[${v}] == "number"`,()=>{e.assign(g,(0, _e._)`${b}[${v}]`),n.error(),e.assign(u,false).break();}).code((0, _e._)`${b}[${v}] = ${m}`);});}function p(m,g){let v=(0, bS.useFunc)(e,DS.default),E=e.name("outer");e.label(E).for((0, _e._)`;${m}--;`,()=>e.for((0, _e._)`${g} = ${m}; ${g}--;`,()=>e.if((0, _e._)`${v}(${t}[${m}], ${t}[${g}])`,()=>{n.error(),e.assign(u,false).break(E);})));}}};zl.default=AS;});var km=C(Xl=>{Object.defineProperty(Xl,"__esModule",{value:true});var Kl=I(),PS=q(),TS=xs(),OS={message:"must be equal to constant",params:({schemaCode:n})=>(0, Kl._)`{allowedValue: ${n}}`},xS={keyword:"const",$data:true,error:OS,code(n){let{gen:e,data:t,$data:r,schemaCode:i,schema:a}=n;r||a&&typeof a=="object"?n.fail$data((0, Kl._)`!${(0, PS.useFunc)(e,TS.default)}(${t}, ${i})`):n.fail((0, Kl._)`${a} !== ${t}`);}};Xl.default=xS;});var Rm=C(Yl=>{Object.defineProperty(Yl,"__esModule",{value:true});var li=I(),FS=q(),NS=xs(),IS={message:"must be equal to one of the allowed values",params:({schemaCode:n})=>(0, li._)`{allowedValues: ${n}}`},kS={keyword:"enum",schemaType:"array",$data:true,error:IS,code(n){let{gen:e,data:t,$data:r,schema:i,schemaCode:a,it:s}=n;if(!r&&i.length===0)throw new Error("enum must have non-empty array");let o=i.length>=s.opts.loopEnum,u,l=()=>u??(u=(0, FS.useFunc)(e,NS.default)),c;if(o||r)c=e.let("valid"),n.block$data(c,h);else {if(!Array.isArray(i))throw new Error("ajv implementation error");let p=e.const("vSchema",a);c=(0, li.or)(...i.map((m,g)=>f(p,g)));}n.pass(c);function h(){e.assign(c,false),e.forOf("v",a,p=>e.if((0, li._)`${l()}(${t}, ${p})`,()=>e.assign(c,true).break()));}function f(p,m){let g=i[m];return typeof g=="object"&&g!==null?(0, li._)`${l()}(${t}, ${p}[${m}])`:(0, li._)`${t} === ${g}`}}};Yl.default=kS;});var Ql=C(Zl=>{Object.defineProperty(Zl,"__esModule",{value:true});var RS=bm(),$S=Dm(),VS=Pm(),jS=Tm(),qS=Om(),LS=xm(),BS=Fm(),WS=Im(),MS=km(),GS=Rm(),JS=[RS.default,$S.default,VS.default,jS.default,qS.default,LS.default,BS.default,WS.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},MS.default,GS.default];Zl.default=JS;});var tc=C(ci=>{Object.defineProperty(ci,"__esModule",{value:true});ci.validateAdditionalItems=void 0;var bn=I(),ec=q(),HS={message:({params:{len:n}})=>(0, bn.str)`must NOT have more than ${n} items`,params:({params:{len:n}})=>(0, bn._)`{limit: ${n}}`},US={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:HS,code(n){let{parentSchema:e,it:t}=n,{items:r}=e;if(!Array.isArray(r)){(0, ec.checkStrictMode)(t,'"additionalItems" is ignored when "items" is not an array of schemas');return}$m(n,r);}};function $m(n,e){let{gen:t,schema:r,data:i,keyword:a,it:s}=n;s.items=true;let o=t.const("len",(0, bn._)`${i}.length`);if(r===false)n.setParams({len:e.length}),n.pass((0, bn._)`${o} <= ${e.length}`);else if(typeof r=="object"&&!(0, ec.alwaysValidSchema)(s,r)){let l=t.var("valid",(0, bn._)`${o} <= ${e.length}`);t.if((0, bn.not)(l),()=>u(l)),n.ok(l);}function u(l){t.forRange("i",e.length,o,c=>{n.subschema({keyword:a,dataProp:c,dataPropType:ec.Type.Num},l),s.allErrors||t.if((0, bn.not)(l),()=>t.break());});}}ci.validateAdditionalItems=$m;ci.default=US;});var nc=C(hi=>{Object.defineProperty(hi,"__esModule",{value:true});hi.validateTuple=void 0;var Vm=I(),Fs=q(),zS=Ze(),KS={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(n){let{schema:e,it:t}=n;if(Array.isArray(e))return jm(n,"additionalItems",e);t.items=true,!(0, Fs.alwaysValidSchema)(t,e)&&n.ok((0, zS.validateArray)(n));}};function jm(n,e,t=n.schema){let{gen:r,parentSchema:i,data:a,keyword:s,it:o}=n;c(i),o.opts.unevaluated&&t.length&&o.items!==true&&(o.items=Fs.mergeEvaluated.items(r,t.length,o.items));let u=r.name("valid"),l=r.const("len",(0, Vm._)`${a}.length`);t.forEach((h,f)=>{(0, Fs.alwaysValidSchema)(o,h)||(r.if((0, Vm._)`${l} > ${f}`,()=>n.subschema({keyword:s,schemaProp:f,dataProp:f},u)),n.ok(u));});function c(h){let{opts:f,errSchemaPath:p}=o,m=t.length,g=m===h.minItems&&(m===h.maxItems||h[e]===false);if(f.strictTuples&&!g){let v=`"${s}" is ${m}-tuple, but minItems or maxItems/${e} are not specified or different at path "${p}"`;(0, Fs.checkStrictMode)(o,v,f.strictTuples);}}}hi.validateTuple=jm;hi.default=KS;});var qm=C(rc=>{Object.defineProperty(rc,"__esModule",{value:true});var XS=nc(),YS={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:n=>(0, XS.validateTuple)(n,"items")};rc.default=YS;});var Bm=C(ic=>{Object.defineProperty(ic,"__esModule",{value:true});var Lm=I(),ZS=q(),QS=Ze(),eb=tc(),tb={message:({params:{len:n}})=>(0, Lm.str)`must NOT have more than ${n} items`,params:({params:{len:n}})=>(0, Lm._)`{limit: ${n}}`},nb={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:tb,code(n){let{schema:e,parentSchema:t,it:r}=n,{prefixItems:i}=t;r.items=true,!(0, ZS.alwaysValidSchema)(r,e)&&(i?(0, eb.validateAdditionalItems)(n,i):n.ok((0, QS.validateArray)(n)));}};ic.default=nb;});var Wm=C(sc=>{Object.defineProperty(sc,"__esModule",{value:true});var et=I(),Ns=q(),rb={message:({params:{min:n,max:e}})=>e===void 0?(0, et.str)`must contain at least ${n} valid item(s)`:(0, et.str)`must contain at least ${n} and no more than ${e} valid item(s)`,params:({params:{min:n,max:e}})=>e===void 0?(0, et._)`{minContains: ${n}}`:(0, et._)`{minContains: ${n}, maxContains: ${e}}`},ib={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:true,error:rb,code(n){let{gen:e,schema:t,parentSchema:r,data:i,it:a}=n,s,o,{minContains:u,maxContains:l}=r;a.opts.next?(s=u===void 0?1:u,o=l):s=1;let c=e.const("len",(0, et._)`${i}.length`);if(n.setParams({min:s,max:o}),o===void 0&&s===0){(0, Ns.checkStrictMode)(a,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(o!==void 0&&s>o){(0, Ns.checkStrictMode)(a,'"minContains" > "maxContains" is always invalid'),n.fail();return}if((0, Ns.alwaysValidSchema)(a,t)){let g=(0, et._)`${c} >= ${s}`;o!==void 0&&(g=(0, et._)`${g} && ${c} <= ${o}`),n.pass(g);return}a.items=true;let h=e.name("valid");o===void 0&&s===1?p(h,()=>e.if(h,()=>e.break())):s===0?(e.let(h,true),o!==void 0&&e.if((0, et._)`${i}.length > 0`,f)):(e.let(h,false),f()),n.result(h,()=>n.reset());function f(){let g=e.name("_valid"),v=e.let("count",0);p(g,()=>e.if(g,()=>m(v)));}function p(g,v){e.forRange("i",0,c,E=>{n.subschema({keyword:"contains",dataProp:E,dataPropType:Ns.Type.Num,compositeRule:true},g),v();});}function m(g){e.code((0, et._)`${g}++`),o===void 0?e.if((0, et._)`${g} >= ${s}`,()=>e.assign(h,true).break()):(e.if((0, et._)`${g} > ${o}`,()=>e.assign(h,false).break()),s===1?e.assign(h,true):e.if((0, et._)`${g} >= ${s}`,()=>e.assign(h,true)));}}};sc.default=ib;});var Is=C(Ct=>{Object.defineProperty(Ct,"__esModule",{value:true});Ct.validateSchemaDeps=Ct.validatePropertyDeps=Ct.error=void 0;var ac=I(),sb=q(),di=Ze();Ct.error={message:({params:{property:n,depsCount:e,deps:t}})=>{let r=e===1?"property":"properties";return (0, ac.str)`must have ${r} ${t} when property ${n} is present`},params:({params:{property:n,depsCount:e,deps:t,missingProperty:r}})=>(0, ac._)`{property: ${n},
5
+ || ${s} === "boolean" || ${i} === null`).assign(o,(0, k._)`[${i}]`);}}}function vv({gen:n,parentData:e,parentDataProperty:t},r){n.if((0, k._)`${e} !== undefined`,()=>n.assign((0, k._)`${e}[${t}]`,r));}function tl(n,e,t,r=Jn.Correct){let i=r===Jn.Correct?k.operators.EQ:k.operators.NEQ,a;switch(n){case "null":return (0, k._)`${e} ${i} null`;case "array":a=(0, k._)`Array.isArray(${e})`;break;case "object":a=(0, k._)`${e} && typeof ${e} == "object" && !Array.isArray(${e})`;break;case "integer":a=s((0, k._)`!(${e} % 1) && !isNaN(${e})`);break;case "number":a=s();break;default:return (0, k._)`typeof ${e} ${i} ${n}`}return r===Jn.Correct?a:(0, k.not)(a);function s(o=k.nil){return (0, k.and)((0, k._)`typeof ${e} == "number"`,o,t?(0, k._)`isFinite(${e})`:k.nil)}}Ae.checkDataType=tl;function nl(n,e,t,r){if(n.length===1)return tl(n[0],e,t,r);let i,a=(0, ip.toHash)(n);if(a.array&&a.object){let s=(0, k._)`typeof ${e} != "object"`;i=a.null?s:(0, k._)`!${e} || ${s}`,delete a.null,delete a.array,delete a.object;}else i=k.nil;a.number&&delete a.integer;for(let s in a)i=(0, k.and)(i,tl(s,e,t,r));return i}Ae.checkDataTypes=nl;var Ev={message:({schema:n})=>`must be ${n}`,params:({schema:n,schemaValue:e})=>typeof n=="string"?(0, k._)`{type: ${n}}`:(0, k._)`{type: ${e}}`};function rl(n){let e=_v(n);(0, pv.reportError)(e,Ev);}Ae.reportTypeError=rl;function _v(n){let{gen:e,data:t,schema:r}=n,i=(0, ip.schemaRefOrVal)(n,r,"type");return {gen:e,keyword:"type",data:t,schema:r.type,schemaCode:i,schemaValue:i,parentSchema:r,params:{},it:n}}});var up=C(ps=>{Object.defineProperty(ps,"__esModule",{value:true});ps.assignDefaults=void 0;var Hn=I(),Sv=q();function bv(n,e){let{properties:t,items:r}=n.schema;if(e==="object"&&t)for(let i in t)op(n,i,t[i].default);else e==="array"&&Array.isArray(r)&&r.forEach((i,a)=>op(n,a,i.default));}ps.assignDefaults=bv;function op(n,e,t){let{gen:r,compositeRule:i,data:a,opts:s}=n;if(t===void 0)return;let o=(0, Hn._)`${a}${(0, Hn.getProperty)(e)}`;if(i){(0, Sv.checkStrictMode)(n,`default is ignored for: ${o}`);return}let u=(0, Hn._)`${o} === undefined`;s.useDefaults==="empty"&&(u=(0, Hn._)`${u} || ${o} === null || ${o} === ""`),r.if(u,(0, Hn._)`${o} = ${(0, Hn.stringify)(t)}`);}});var Ze=C(K=>{Object.defineProperty(K,"__esModule",{value:true});K.validateUnion=K.validateArray=K.usePattern=K.callValidateCode=K.schemaProperties=K.allSchemaProperties=K.noPropertyInData=K.propertyInData=K.isOwnProperty=K.hasPropFunc=K.reportMissingProp=K.checkMissingProp=K.checkReportMissingProp=void 0;var re=I(),il=q(),Gt=Ye(),wv=q();function Dv(n,e){let{gen:t,data:r,it:i}=n;t.if(al(t,r,e,i.opts.ownProperties),()=>{n.setParams({missingProperty:(0, re._)`${e}`},true),n.error();});}K.checkReportMissingProp=Dv;function Av({gen:n,data:e,it:{opts:t}},r,i){return (0, re.or)(...r.map(a=>(0, re.and)(al(n,e,a,t.ownProperties),(0, re._)`${i} = ${a}`)))}K.checkMissingProp=Av;function Pv(n,e){n.setParams({missingProperty:e},true),n.error();}K.reportMissingProp=Pv;function lp(n){return n.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0, re._)`Object.prototype.hasOwnProperty`})}K.hasPropFunc=lp;function sl(n,e,t){return (0, re._)`${lp(n)}.call(${e}, ${t})`}K.isOwnProperty=sl;function Tv(n,e,t,r){let i=(0, re._)`${e}${(0, re.getProperty)(t)} !== undefined`;return r?(0, re._)`${i} && ${sl(n,e,t)}`:i}K.propertyInData=Tv;function al(n,e,t,r){let i=(0, re._)`${e}${(0, re.getProperty)(t)} === undefined`;return r?(0, re.or)(i,(0, re.not)(sl(n,e,t))):i}K.noPropertyInData=al;function cp(n){return n?Object.keys(n).filter(e=>e!=="__proto__"):[]}K.allSchemaProperties=cp;function xv(n,e){return cp(e).filter(t=>!(0, il.alwaysValidSchema)(n,e[t]))}K.schemaProperties=xv;function Ov({schemaCode:n,data:e,it:{gen:t,topSchemaRef:r,schemaPath:i,errorPath:a},it:s},o,u,l){let c=l?(0, re._)`${n}, ${e}, ${r}${i}`:e,h=[[Gt.default.instancePath,(0, re.strConcat)(Gt.default.instancePath,a)],[Gt.default.parentData,s.parentData],[Gt.default.parentDataProperty,s.parentDataProperty],[Gt.default.rootData,Gt.default.rootData]];s.opts.dynamicRef&&h.push([Gt.default.dynamicAnchors,Gt.default.dynamicAnchors]);let f=(0, re._)`${c}, ${t.object(...h)}`;return u!==re.nil?(0, re._)`${o}.call(${u}, ${f})`:(0, re._)`${o}(${f})`}K.callValidateCode=Ov;var Fv=(0, re._)`new RegExp`;function Nv({gen:n,it:{opts:e}},t){let r=e.unicodeRegExp?"u":"",{regExp:i}=e.code,a=i(t,r);return n.scopeValue("pattern",{key:a.toString(),ref:a,code:(0, re._)`${i.code==="new RegExp"?Fv:(0, wv.useFunc)(n,i)}(${t}, ${r})`})}K.usePattern=Nv;function Iv(n){let{gen:e,data:t,keyword:r,it:i}=n,a=e.name("valid");if(i.allErrors){let o=e.let("valid",true);return s(()=>e.assign(o,false)),o}return e.var(a,true),s(()=>e.break()),a;function s(o){let u=e.const("len",(0, re._)`${t}.length`);e.forRange("i",0,u,l=>{n.subschema({keyword:r,dataProp:l,dataPropType:il.Type.Num},a),e.if((0, re.not)(a),o);});}}K.validateArray=Iv;function kv(n){let{gen:e,schema:t,keyword:r,it:i}=n;if(!Array.isArray(t))throw new Error("ajv implementation error");if(t.some(u=>(0, il.alwaysValidSchema)(i,u))&&!i.opts.unevaluated)return;let s=e.let("valid",false),o=e.name("_valid");e.block(()=>t.forEach((u,l)=>{let c=n.subschema({keyword:r,schemaProp:l,compositeRule:true},o);e.assign(s,(0, re._)`${s} || ${o}`),n.mergeValidEvaluated(c,o)||e.if((0, re.not)(s));})),n.result(s,()=>n.reset(),()=>n.error(true));}K.validateUnion=kv;});var fp=C(gt=>{Object.defineProperty(gt,"__esModule",{value:true});gt.validateKeywordUsage=gt.validSchemaType=gt.funcKeywordCode=gt.macroKeywordCode=void 0;var Re=I(),yn=Ye(),Rv=Ze(),$v=Hr();function Vv(n,e){let{gen:t,keyword:r,schema:i,parentSchema:a,it:s}=n,o=e.macro.call(s.self,i,a,s),u=dp(t,r,o);s.opts.validateSchema!==false&&s.self.validateSchema(o,true);let l=t.name("valid");n.subschema({schema:o,schemaPath:Re.nil,errSchemaPath:`${s.errSchemaPath}/${r}`,topSchemaRef:u,compositeRule:true},l),n.pass(l,()=>n.error(true));}gt.macroKeywordCode=Vv;function jv(n,e){var t;let{gen:r,keyword:i,schema:a,parentSchema:s,$data:o,it:u}=n;Lv(u,e);let l=!o&&e.compile?e.compile.call(u.self,a,s,u):e.validate,c=dp(r,i,l),h=r.let("valid");n.block$data(h,f),n.ok((t=e.valid)!==null&&t!==void 0?t:h);function f(){if(e.errors===false)g(),e.modifying&&hp(n),v(()=>n.error());else {let E=e.async?p():m();e.modifying&&hp(n),v(()=>qv(n,E));}}function p(){let E=r.let("ruleErrs",null);return r.try(()=>g((0, Re._)`await `),b=>r.assign(h,false).if((0, Re._)`${b} instanceof ${u.ValidationError}`,()=>r.assign(E,(0, Re._)`${b}.errors`),()=>r.throw(b))),E}function m(){let E=(0, Re._)`${c}.errors`;return r.assign(E,null),g(Re.nil),E}function g(E=e.async?(0, Re._)`await `:Re.nil){let b=u.opts.passContext?yn.default.this:yn.default.self,d=!("compile"in e&&!o||e.schema===false);r.assign(h,(0, Re._)`${E}${(0, Rv.callValidateCode)(n,c,b,d)}`,e.modifying);}function v(E){var b;r.if((0, Re.not)((b=e.valid)!==null&&b!==void 0?b:h),E);}}gt.funcKeywordCode=jv;function hp(n){let{gen:e,data:t,it:r}=n;e.if(r.parentData,()=>e.assign(t,(0, Re._)`${r.parentData}[${r.parentDataProperty}]`));}function qv(n,e){let{gen:t}=n;t.if((0, Re._)`Array.isArray(${e})`,()=>{t.assign(yn.default.vErrors,(0, Re._)`${yn.default.vErrors} === null ? ${e} : ${yn.default.vErrors}.concat(${e})`).assign(yn.default.errors,(0, Re._)`${yn.default.vErrors}.length`),(0, $v.extendErrors)(n);},()=>n.error());}function Lv({schemaEnv:n},e){if(e.async&&!n.$async)throw new Error("async keyword in sync schema")}function dp(n,e,t){if(t===void 0)throw new Error(`keyword "${e}" failed to compile`);return n.scopeValue("keyword",typeof t=="function"?{ref:t}:{ref:t,code:(0, Re.stringify)(t)})}function Bv(n,e,t=false){return !e.length||e.some(r=>r==="array"?Array.isArray(n):r==="object"?n&&typeof n=="object"&&!Array.isArray(n):typeof n==r||t&&typeof n>"u")}gt.validSchemaType=Bv;function Wv({schema:n,opts:e,self:t,errSchemaPath:r},i,a){if(Array.isArray(i.keyword)?!i.keyword.includes(a):i.keyword!==a)throw new Error("ajv implementation error");let s=i.dependencies;if(s?.some(o=>!Object.prototype.hasOwnProperty.call(n,o)))throw new Error(`parent schema must have dependencies of ${a}: ${s.join(",")}`);if(i.validateSchema&&!i.validateSchema(n[a])){let u=`keyword "${a}" value is invalid at path "${r}": `+t.errorsText(i.validateSchema.errors);if(e.validateSchema==="log")t.logger.error(u);else throw new Error(u)}}gt.validateKeywordUsage=Wv;});var mp=C(Jt=>{Object.defineProperty(Jt,"__esModule",{value:true});Jt.extendSubschemaMode=Jt.extendSubschemaData=Jt.getSubschema=void 0;var yt=I(),pp=q();function Mv(n,{keyword:e,schemaProp:t,schema:r,schemaPath:i,errSchemaPath:a,topSchemaRef:s}){if(e!==void 0&&r!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(e!==void 0){let o=n.schema[e];return t===void 0?{schema:o,schemaPath:(0, yt._)`${n.schemaPath}${(0, yt.getProperty)(e)}`,errSchemaPath:`${n.errSchemaPath}/${e}`}:{schema:o[t],schemaPath:(0, yt._)`${n.schemaPath}${(0, yt.getProperty)(e)}${(0, yt.getProperty)(t)}`,errSchemaPath:`${n.errSchemaPath}/${e}/${(0, pp.escapeFragment)(t)}`}}if(r!==void 0){if(i===void 0||a===void 0||s===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return {schema:r,schemaPath:i,topSchemaRef:s,errSchemaPath:a}}throw new Error('either "keyword" or "schema" must be passed')}Jt.getSubschema=Mv;function Gv(n,e,{dataProp:t,dataPropType:r,data:i,dataTypes:a,propertyName:s}){if(i!==void 0&&t!==void 0)throw new Error('both "data" and "dataProp" passed, only one allowed');let{gen:o}=e;if(t!==void 0){let{errorPath:l,dataPathArr:c,opts:h}=e,f=o.let("data",(0, yt._)`${e.data}${(0, yt.getProperty)(t)}`,true);u(f),n.errorPath=(0, yt.str)`${l}${(0, pp.getErrorPath)(t,r,h.jsPropertySyntax)}`,n.parentDataProperty=(0, yt._)`${t}`,n.dataPathArr=[...c,n.parentDataProperty];}if(i!==void 0){let l=i instanceof yt.Name?i:o.let("data",i,true);u(l),s!==void 0&&(n.propertyName=s);}a&&(n.dataTypes=a);function u(l){n.data=l,n.dataLevel=e.dataLevel+1,n.dataTypes=[],e.definedProperties=new Set,n.parentData=e.data,n.dataNames=[...e.dataNames,l];}}Jt.extendSubschemaData=Gv;function Jv(n,{jtdDiscriminator:e,jtdMetadata:t,compositeRule:r,createErrors:i,allErrors:a}){r!==void 0&&(n.compositeRule=r),i!==void 0&&(n.createErrors=i),a!==void 0&&(n.allErrors=a),n.jtdDiscriminator=e,n.jtdMetadata=t;}Jt.extendSubschemaMode=Jv;});var ol=C((cF,gp)=>{gp.exports=function n(e,t){if(e===t)return true;if(e&&t&&typeof e=="object"&&typeof t=="object"){if(e.constructor!==t.constructor)return false;var r,i,a;if(Array.isArray(e)){if(r=e.length,r!=t.length)return false;for(i=r;i--!==0;)if(!n(e[i],t[i]))return false;return true}if(e.constructor===RegExp)return e.source===t.source&&e.flags===t.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===t.toString();if(a=Object.keys(e),r=a.length,r!==Object.keys(t).length)return false;for(i=r;i--!==0;)if(!Object.prototype.hasOwnProperty.call(t,a[i]))return false;for(i=r;i--!==0;){var s=a[i];if(!n(e[s],t[s]))return false}return true}return e!==e&&t!==t};});var Cp=C((hF,yp)=>{var Ht=yp.exports=function(n,e,t){typeof e=="function"&&(t=e,e={}),t=e.cb||t;var r=typeof t=="function"?t:t.pre||function(){},i=t.post||function(){};ms(e,r,i,n,"",n);};Ht.keywords={additionalItems:true,items:true,contains:true,additionalProperties:true,propertyNames:true,not:true,if:true,then:true,else:true};Ht.arrayKeywords={items:true,allOf:true,anyOf:true,oneOf:true};Ht.propsKeywords={$defs:true,definitions:true,properties:true,patternProperties:true,dependencies:true};Ht.skipKeywords={default:true,enum:true,const:true,required:true,maximum:true,minimum:true,exclusiveMaximum:true,exclusiveMinimum:true,multipleOf:true,maxLength:true,minLength:true,pattern:true,format:true,maxItems:true,minItems:true,uniqueItems:true,maxProperties:true,minProperties:true};function ms(n,e,t,r,i,a,s,o,u,l){if(r&&typeof r=="object"&&!Array.isArray(r)){e(r,i,a,s,o,u,l);for(var c in r){var h=r[c];if(Array.isArray(h)){if(c in Ht.arrayKeywords)for(var f=0;f<h.length;f++)ms(n,e,t,h[f],i+"/"+c+"/"+f,a,i,c,r,f);}else if(c in Ht.propsKeywords){if(h&&typeof h=="object")for(var p in h)ms(n,e,t,h[p],i+"/"+c+"/"+Hv(p),a,i,c,r,p);}else (c in Ht.keywords||n.allKeys&&!(c in Ht.skipKeywords))&&ms(n,e,t,h,i+"/"+c,a,i,c,r);}t(r,i,a,s,o,u,l);}}function Hv(n){return n.replace(/~/g,"~0").replace(/\//g,"~1")}});var zr=C(Le=>{Object.defineProperty(Le,"__esModule",{value:true});Le.getSchemaRefs=Le.resolveUrl=Le.normalizeId=Le._getFullPath=Le.getFullPath=Le.inlineRef=void 0;var Uv=q(),zv=ol(),Kv=Cp(),Xv=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function Yv(n,e=true){return typeof n=="boolean"?true:e===true?!ul(n):e?vp(n)<=e:false}Le.inlineRef=Yv;var Zv=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function ul(n){for(let e in n){if(Zv.has(e))return true;let t=n[e];if(Array.isArray(t)&&t.some(ul)||typeof t=="object"&&ul(t))return true}return false}function vp(n){let e=0;for(let t in n){if(t==="$ref")return 1/0;if(e++,!Xv.has(t)&&(typeof n[t]=="object"&&(0, Uv.eachItem)(n[t],r=>e+=vp(r)),e===1/0))return 1/0}return e}function Ep(n,e="",t){t!==false&&(e=Un(e));let r=n.parse(e);return _p(n,r)}Le.getFullPath=Ep;function _p(n,e){return n.serialize(e).split("#")[0]+"#"}Le._getFullPath=_p;var Qv=/#\/?$/;function Un(n){return n?n.replace(Qv,""):""}Le.normalizeId=Un;function eE(n,e,t){return t=Un(t),n.resolve(e,t)}Le.resolveUrl=eE;var tE=/^[a-z_][-a-z0-9._]*$/i;function nE(n,e){if(typeof n=="boolean")return {};let{schemaId:t,uriResolver:r}=this.opts,i=Un(n[t]||e),a={"":i},s=Ep(r,i,false),o={},u=new Set;return Kv(n,{allKeys:true},(h,f,p,m)=>{if(m===void 0)return;let g=s+f,v=a[m];typeof h[t]=="string"&&(v=E.call(this,h[t])),b.call(this,h.$anchor),b.call(this,h.$dynamicAnchor),a[f]=v;function E(d){let _=this.opts.uriResolver.resolve;if(d=Un(v?_(v,d):d),u.has(d))throw c(d);u.add(d);let y=this.refs[d];return typeof y=="string"&&(y=this.refs[y]),typeof y=="object"?l(h,y.schema,d):d!==Un(g)&&(d[0]==="#"?(l(h,o[d],d),o[d]=h):this.refs[d]=g),d}function b(d){if(typeof d=="string"){if(!tE.test(d))throw new Error(`invalid anchor "${d}"`);E.call(this,`#${d}`);}}}),o;function l(h,f,p){if(f!==void 0&&!zv(h,f))throw c(p)}function c(h){return new Error(`reference "${h}" resolves to more than one schema`)}}Le.getSchemaRefs=nE;});var zn=C(Ut=>{Object.defineProperty(Ut,"__esModule",{value:true});Ut.getData=Ut.KeywordCxt=Ut.validateFunctionCode=void 0;var Ap=tp(),Sp=Ur(),cl=el(),gs=Ur(),rE=up(),Xr=fp(),ll=mp(),P=I(),O=Ye(),iE=zr(),kt=q(),Kr=Hr();function sE(n){if(xp(n)&&(Op(n),Tp(n))){uE(n);return}Pp(n,()=>(0, Ap.topBoolOrEmptySchema)(n));}Ut.validateFunctionCode=sE;function Pp({gen:n,validateName:e,schema:t,schemaEnv:r,opts:i},a){i.code.es5?n.func(e,(0, P._)`${O.default.data}, ${O.default.valCxt}`,r.$async,()=>{n.code((0, P._)`"use strict"; ${bp(t,i)}`),oE(n,i),n.code(a);}):n.func(e,(0, P._)`${O.default.data}, ${aE(i)}`,r.$async,()=>n.code(bp(t,i)).code(a));}function aE(n){return (0, P._)`{${O.default.instancePath}="", ${O.default.parentData}, ${O.default.parentDataProperty}, ${O.default.rootData}=${O.default.data}${n.dynamicRef?(0, P._)`, ${O.default.dynamicAnchors}={}`:P.nil}}={}`}function oE(n,e){n.if(O.default.valCxt,()=>{n.var(O.default.instancePath,(0, P._)`${O.default.valCxt}.${O.default.instancePath}`),n.var(O.default.parentData,(0, P._)`${O.default.valCxt}.${O.default.parentData}`),n.var(O.default.parentDataProperty,(0, P._)`${O.default.valCxt}.${O.default.parentDataProperty}`),n.var(O.default.rootData,(0, P._)`${O.default.valCxt}.${O.default.rootData}`),e.dynamicRef&&n.var(O.default.dynamicAnchors,(0, P._)`${O.default.valCxt}.${O.default.dynamicAnchors}`);},()=>{n.var(O.default.instancePath,(0, P._)`""`),n.var(O.default.parentData,(0, P._)`undefined`),n.var(O.default.parentDataProperty,(0, P._)`undefined`),n.var(O.default.rootData,O.default.data),e.dynamicRef&&n.var(O.default.dynamicAnchors,(0, P._)`{}`);});}function uE(n){let{schema:e,opts:t,gen:r}=n;Pp(n,()=>{t.$comment&&e.$comment&&Np(n),fE(n),r.let(O.default.vErrors,null),r.let(O.default.errors,0),t.unevaluated&&lE(n),Fp(n),gE(n);});}function lE(n){let{gen:e,validateName:t}=n;n.evaluated=e.const("evaluated",(0, P._)`${t}.evaluated`),e.if((0, P._)`${n.evaluated}.dynamicProps`,()=>e.assign((0, P._)`${n.evaluated}.props`,(0, P._)`undefined`)),e.if((0, P._)`${n.evaluated}.dynamicItems`,()=>e.assign((0, P._)`${n.evaluated}.items`,(0, P._)`undefined`));}function bp(n,e){let t=typeof n=="object"&&n[e.schemaId];return t&&(e.code.source||e.code.process)?(0, P._)`/*# sourceURL=${t} */`:P.nil}function cE(n,e){if(xp(n)&&(Op(n),Tp(n))){hE(n,e);return}(0, Ap.boolOrEmptySchema)(n,e);}function Tp({schema:n,self:e}){if(typeof n=="boolean")return !n;for(let t in n)if(e.RULES.all[t])return true;return false}function xp(n){return typeof n.schema!="boolean"}function hE(n,e){let{schema:t,gen:r,opts:i}=n;i.$comment&&t.$comment&&Np(n),pE(n),mE(n);let a=r.const("_errs",O.default.errors);Fp(n,a),r.var(e,(0, P._)`${a} === ${O.default.errors}`);}function Op(n){(0, kt.checkUnknownRules)(n),dE(n);}function Fp(n,e){if(n.opts.jtd)return wp(n,[],false,e);let t=(0, Sp.getSchemaTypes)(n.schema),r=(0, Sp.coerceAndCheckDataType)(n,t);wp(n,t,!r,e);}function dE(n){let{schema:e,errSchemaPath:t,opts:r,self:i}=n;e.$ref&&r.ignoreKeywordsWithRef&&(0, kt.schemaHasRulesButRef)(e,i.RULES)&&i.logger.warn(`$ref: keywords ignored in schema at path "${t}"`);}function fE(n){let{schema:e,opts:t}=n;e.default!==void 0&&t.useDefaults&&t.strictSchema&&(0, kt.checkStrictMode)(n,"default is ignored in the schema root");}function pE(n){let e=n.schema[n.opts.schemaId];e&&(n.baseId=(0, iE.resolveUrl)(n.opts.uriResolver,n.baseId,e));}function mE(n){if(n.schema.$async&&!n.schemaEnv.$async)throw new Error("async schema in sync schema")}function Np({gen:n,schemaEnv:e,schema:t,errSchemaPath:r,opts:i}){let a=t.$comment;if(i.$comment===true)n.code((0, P._)`${O.default.self}.logger.log(${a})`);else if(typeof i.$comment=="function"){let s=(0, P.str)`${r}/$comment`,o=n.scopeValue("root",{ref:e.root});n.code((0, P._)`${O.default.self}.opts.$comment(${a}, ${s}, ${o}.schema)`);}}function gE(n){let{gen:e,schemaEnv:t,validateName:r,ValidationError:i,opts:a}=n;t.$async?e.if((0, P._)`${O.default.errors} === 0`,()=>e.return(O.default.data),()=>e.throw((0, P._)`new ${i}(${O.default.vErrors})`)):(e.assign((0, P._)`${r}.errors`,O.default.vErrors),a.unevaluated&&yE(n),e.return((0, P._)`${O.default.errors} === 0`));}function yE({gen:n,evaluated:e,props:t,items:r}){t instanceof P.Name&&n.assign((0, P._)`${e}.props`,t),r instanceof P.Name&&n.assign((0, P._)`${e}.items`,r);}function wp(n,e,t,r){let{gen:i,schema:a,data:s,allErrors:o,opts:u,self:l}=n,{RULES:c}=l;if(a.$ref&&(u.ignoreKeywordsWithRef||!(0, kt.schemaHasRulesButRef)(a,c))){i.block(()=>kp(n,"$ref",c.all.$ref.definition));return}u.jtd||CE(n,e),i.block(()=>{for(let f of c.rules)h(f);h(c.post);});function h(f){(0, cl.shouldUseGroup)(a,f)&&(f.type?(i.if((0, gs.checkDataType)(f.type,s,u.strictNumbers)),Dp(n,f),e.length===1&&e[0]===f.type&&t&&(i.else(),(0, gs.reportTypeError)(n)),i.endIf()):Dp(n,f),o||i.if((0, P._)`${O.default.errors} === ${r||0}`));}}function Dp(n,e){let{gen:t,schema:r,opts:{useDefaults:i}}=n;i&&(0, rE.assignDefaults)(n,e.type),t.block(()=>{for(let a of e.rules)(0, cl.shouldUseRule)(r,a)&&kp(n,a.keyword,a.definition,e.type);});}function CE(n,e){n.schemaEnv.meta||!n.opts.strictTypes||(vE(n,e),n.opts.allowUnionTypes||EE(n,e),_E(n,n.dataTypes));}function vE(n,e){if(e.length){if(!n.dataTypes.length){n.dataTypes=e;return}e.forEach(t=>{Ip(n.dataTypes,t)||hl(n,`type "${t}" not allowed by context "${n.dataTypes.join(",")}"`);}),bE(n,e);}}function EE(n,e){e.length>1&&!(e.length===2&&e.includes("null"))&&hl(n,"use allowUnionTypes to allow union type keyword");}function _E(n,e){let t=n.self.RULES.all;for(let r in t){let i=t[r];if(typeof i=="object"&&(0, cl.shouldUseRule)(n.schema,i)){let{type:a}=i.definition;a.length&&!a.some(s=>SE(e,s))&&hl(n,`missing type "${a.join(",")}" for keyword "${r}"`);}}}function SE(n,e){return n.includes(e)||e==="number"&&n.includes("integer")}function Ip(n,e){return n.includes(e)||e==="integer"&&n.includes("number")}function bE(n,e){let t=[];for(let r of n.dataTypes)Ip(e,r)?t.push(r):e.includes("integer")&&r==="number"&&t.push("integer");n.dataTypes=t;}function hl(n,e){let t=n.schemaEnv.baseId+n.errSchemaPath;e+=` at "${t}" (strictTypes)`,(0, kt.checkStrictMode)(n,e,n.opts.strictTypes);}var ys=class{constructor(e,t,r){if((0, Xr.validateKeywordUsage)(e,t,r),this.gen=e.gen,this.allErrors=e.allErrors,this.keyword=r,this.data=e.data,this.schema=e.schema[r],this.$data=t.$data&&e.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0, kt.schemaRefOrVal)(e,this.schema,r,this.$data),this.schemaType=t.schemaType,this.parentSchema=e.schema,this.params={},this.it=e,this.def=t,this.$data)this.schemaCode=e.gen.const("vSchema",Rp(this.$data,e));else if(this.schemaCode=this.schemaValue,!(0, Xr.validSchemaType)(this.schema,t.schemaType,t.allowUndefined))throw new Error(`${r} value must be ${JSON.stringify(t.schemaType)}`);("code"in t?t.trackErrors:t.errors!==false)&&(this.errsCount=e.gen.const("_errs",O.default.errors));}result(e,t,r){this.failResult((0, P.not)(e),t,r);}failResult(e,t,r){this.gen.if(e),r?r():this.error(),t?(this.gen.else(),t(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else();}pass(e,t){this.failResult((0, P.not)(e),void 0,t);}fail(e){if(e===void 0){this.error(),this.allErrors||this.gen.if(false);return}this.gen.if(e),this.error(),this.allErrors?this.gen.endIf():this.gen.else();}fail$data(e){if(!this.$data)return this.fail(e);let{schemaCode:t}=this;this.fail((0, P._)`${t} !== undefined && (${(0, P.or)(this.invalid$data(),e)})`);}error(e,t,r){if(t){this.setParams(t),this._error(e,r),this.setParams({});return}this._error(e,r);}_error(e,t){(e?Kr.reportExtraError:Kr.reportError)(this,this.def.error,t);}$dataError(){(0, Kr.reportError)(this,this.def.$dataError||Kr.keyword$DataError);}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0, Kr.resetErrorsCount)(this.gen,this.errsCount);}ok(e){this.allErrors||this.gen.if(e);}setParams(e,t){t?Object.assign(this.params,e):this.params=e;}block$data(e,t,r=P.nil){this.gen.block(()=>{this.check$data(e,r),t();});}check$data(e=P.nil,t=P.nil){if(!this.$data)return;let{gen:r,schemaCode:i,schemaType:a,def:s}=this;r.if((0, P.or)((0, P._)`${i} === undefined`,t)),e!==P.nil&&r.assign(e,true),(a.length||s.validateSchema)&&(r.elseIf(this.invalid$data()),this.$dataError(),e!==P.nil&&r.assign(e,false)),r.else();}invalid$data(){let{gen:e,schemaCode:t,schemaType:r,def:i,it:a}=this;return (0, P.or)(s(),o());function s(){if(r.length){if(!(t instanceof P.Name))throw new Error("ajv implementation error");let u=Array.isArray(r)?r:[r];return (0, P._)`${(0, gs.checkDataTypes)(u,t,a.opts.strictNumbers,gs.DataType.Wrong)}`}return P.nil}function o(){if(i.validateSchema){let u=e.scopeValue("validate$data",{ref:i.validateSchema});return (0, P._)`!${u}(${t})`}return P.nil}}subschema(e,t){let r=(0, ll.getSubschema)(this.it,e);(0, ll.extendSubschemaData)(r,this.it,e),(0, ll.extendSubschemaMode)(r,e);let i={...this.it,...r,items:void 0,props:void 0};return cE(i,t),i}mergeEvaluated(e,t){let{it:r,gen:i}=this;r.opts.unevaluated&&(r.props!==true&&e.props!==void 0&&(r.props=kt.mergeEvaluated.props(i,e.props,r.props,t)),r.items!==true&&e.items!==void 0&&(r.items=kt.mergeEvaluated.items(i,e.items,r.items,t)));}mergeValidEvaluated(e,t){let{it:r,gen:i}=this;if(r.opts.unevaluated&&(r.props!==true||r.items!==true))return i.if(t,()=>this.mergeEvaluated(e,P.Name)),true}};Ut.KeywordCxt=ys;function kp(n,e,t,r){let i=new ys(n,t,e);"code"in t?t.code(i,r):i.$data&&t.validate?(0, Xr.funcKeywordCode)(i,t):"macro"in t?(0, Xr.macroKeywordCode)(i,t):(t.compile||t.validate)&&(0, Xr.funcKeywordCode)(i,t);}var wE=/^\/(?:[^~]|~0|~1)*$/,DE=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function Rp(n,{dataLevel:e,dataNames:t,dataPathArr:r}){let i,a;if(n==="")return O.default.rootData;if(n[0]==="/"){if(!wE.test(n))throw new Error(`Invalid JSON-pointer: ${n}`);i=n,a=O.default.rootData;}else {let l=DE.exec(n);if(!l)throw new Error(`Invalid JSON-pointer: ${n}`);let c=+l[1];if(i=l[2],i==="#"){if(c>=e)throw new Error(u("property/index",c));return r[e-c]}if(c>e)throw new Error(u("data",c));if(a=t[e-c],!i)return a}let s=a,o=i.split("/");for(let l of o)l&&(a=(0, P._)`${a}${(0, P.getProperty)((0, kt.unescapeJsonPointer)(l))}`,s=(0, P._)`${s} && ${a}`);return s;function u(l,c){return `Cannot access ${l} ${c} levels up, current level is ${e}`}}Ut.getData=Rp;});var Yr=C(fl=>{Object.defineProperty(fl,"__esModule",{value:true});var dl=class extends Error{constructor(e){super("validation failed"),this.errors=e,this.ajv=this.validation=true;}};fl.default=dl;});var Kn=C(gl=>{Object.defineProperty(gl,"__esModule",{value:true});var pl=zr(),ml=class extends Error{constructor(e,t,r,i){super(i||`can't resolve reference ${r} from id ${t}`),this.missingRef=(0, pl.resolveUrl)(e,t,r),this.missingSchema=(0, pl.normalizeId)((0, pl.getFullPath)(e,this.missingRef));}};gl.default=ml;});var Zr=C(Qe=>{Object.defineProperty(Qe,"__esModule",{value:true});Qe.resolveSchema=Qe.getCompilingSchema=Qe.resolveRef=Qe.compileSchema=Qe.SchemaEnv=void 0;var ct=I(),AE=Yr(),Cn=Ye(),ht=zr(),$p=q(),PE=zn(),Xn=class{constructor(e){var t;this.refs={},this.dynamicAnchors={};let r;typeof e.schema=="object"&&(r=e.schema),this.schema=e.schema,this.schemaId=e.schemaId,this.root=e.root||this,this.baseId=(t=e.baseId)!==null&&t!==void 0?t:(0, ht.normalizeId)(r?.[e.schemaId||"$id"]),this.schemaPath=e.schemaPath,this.localRefs=e.localRefs,this.meta=e.meta,this.$async=r?.$async,this.refs={};}};Qe.SchemaEnv=Xn;function Cl(n){let e=Vp.call(this,n);if(e)return e;let t=(0, ht.getFullPath)(this.opts.uriResolver,n.root.baseId),{es5:r,lines:i}=this.opts.code,{ownProperties:a}=this.opts,s=new ct.CodeGen(this.scope,{es5:r,lines:i,ownProperties:a}),o;n.$async&&(o=s.scopeValue("Error",{ref:AE.default,code:(0, ct._)`require("ajv/dist/runtime/validation_error").default`}));let u=s.scopeName("validate");n.validateName=u;let l={gen:s,allErrors:this.opts.allErrors,data:Cn.default.data,parentData:Cn.default.parentData,parentDataProperty:Cn.default.parentDataProperty,dataNames:[Cn.default.data],dataPathArr:[ct.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:s.scopeValue("schema",this.opts.code.source===true?{ref:n.schema,code:(0, ct.stringify)(n.schema)}:{ref:n.schema}),validateName:u,ValidationError:o,schema:n.schema,schemaEnv:n,rootId:t,baseId:n.baseId||t,schemaPath:ct.nil,errSchemaPath:n.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0, ct._)`""`,opts:this.opts,self:this},c;try{this._compilations.add(n),(0,PE.validateFunctionCode)(l),s.optimize(this.opts.code.optimize);let h=s.toString();c=`${s.scopeRefs(Cn.default.scope)}return ${h}`,this.opts.code.process&&(c=this.opts.code.process(c,n));let p=new Function(`${Cn.default.self}`,`${Cn.default.scope}`,c)(this,this.scope.get());if(this.scope.value(u,{ref:p}),p.errors=null,p.schema=n.schema,p.schemaEnv=n,n.$async&&(p.$async=!0),this.opts.code.source===!0&&(p.source={validateName:u,validateCode:h,scopeValues:s._values}),this.opts.unevaluated){let{props:m,items:g}=l;p.evaluated={props:m instanceof ct.Name?void 0:m,items:g instanceof ct.Name?void 0:g,dynamicProps:m instanceof ct.Name,dynamicItems:g instanceof ct.Name},p.source&&(p.source.evaluated=(0,ct.stringify)(p.evaluated));}return n.validate=p,n}catch(h){throw delete n.validate,delete n.validateName,c&&this.logger.error("Error compiling schema, function code:",c),h}finally{this._compilations.delete(n);}}Qe.compileSchema=Cl;function TE(n,e,t){var r;t=(0, ht.resolveUrl)(this.opts.uriResolver,e,t);let i=n.refs[t];if(i)return i;let a=FE.call(this,n,t);if(a===void 0){let s=(r=n.localRefs)===null||r===void 0?void 0:r[t],{schemaId:o}=this.opts;s&&(a=new Xn({schema:s,schemaId:o,root:n,baseId:e}));}if(a!==void 0)return n.refs[t]=xE.call(this,a)}Qe.resolveRef=TE;function xE(n){return (0, ht.inlineRef)(n.schema,this.opts.inlineRefs)?n.schema:n.validate?n:Cl.call(this,n)}function Vp(n){for(let e of this._compilations)if(OE(e,n))return e}Qe.getCompilingSchema=Vp;function OE(n,e){return n.schema===e.schema&&n.root===e.root&&n.baseId===e.baseId}function FE(n,e){let t;for(;typeof(t=this.refs[e])=="string";)e=t;return t||this.schemas[e]||Cs.call(this,n,e)}function Cs(n,e){let t=this.opts.uriResolver.parse(e),r=(0, ht._getFullPath)(this.opts.uriResolver,t),i=(0, ht.getFullPath)(this.opts.uriResolver,n.baseId,void 0);if(Object.keys(n.schema).length>0&&r===i)return yl.call(this,t,n);let a=(0, ht.normalizeId)(r),s=this.refs[a]||this.schemas[a];if(typeof s=="string"){let o=Cs.call(this,n,s);return typeof o?.schema!="object"?void 0:yl.call(this,t,o)}if(typeof s?.schema=="object"){if(s.validate||Cl.call(this,s),a===(0, ht.normalizeId)(e)){let{schema:o}=s,{schemaId:u}=this.opts,l=o[u];return l&&(i=(0, ht.resolveUrl)(this.opts.uriResolver,i,l)),new Xn({schema:o,schemaId:u,root:n,baseId:i})}return yl.call(this,t,s)}}Qe.resolveSchema=Cs;var NE=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function yl(n,{baseId:e,schema:t,root:r}){var i;if(((i=n.fragment)===null||i===void 0?void 0:i[0])!=="/")return;for(let o of n.fragment.slice(1).split("/")){if(typeof t=="boolean")return;let u=t[(0, $p.unescapeFragment)(o)];if(u===void 0)return;t=u;let l=typeof t=="object"&&t[this.opts.schemaId];!NE.has(o)&&l&&(e=(0, ht.resolveUrl)(this.opts.uriResolver,e,l));}let a;if(typeof t!="boolean"&&t.$ref&&!(0, $p.schemaHasRulesButRef)(t,this.RULES)){let o=(0, ht.resolveUrl)(this.opts.uriResolver,e,t.$ref);a=Cs.call(this,r,o);}let{schemaId:s}=this.opts;if(a=a||new Xn({schema:t,schemaId:s,root:r,baseId:e}),a.schema!==a.root.schema)return a}});var jp=C((yF,IE)=>{IE.exports={$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON AnySchema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:false};});var wl=C((CF,Jp)=>{var kE=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),El=RegExp.prototype.test.bind(/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/u),RE=RegExp.prototype.test.bind(/^\d*$/u),vn=RegExp.prototype.test.bind(/^[\da-f]{2}$/iu),_l=RegExp.prototype.test.bind(/^[\da-z\-._~]$/iu),Lp=RegExp.prototype.test.bind(/^[A-Za-z0-9\-._~!$&'()*+,;=:@/]$/u),Sl=RegExp.prototype.test.bind(/^[A-Za-z0-9\-._~!$&'()*+,;=:@/?]$/u),$E=RegExp.prototype.test.bind(/^[A-Za-z0-9\-._~!$&'()*+,;=:]$/u),Be=new Array(256);{let n="0123456789ABCDEF";for(let e=0;e<256;e++)Be[e]="%"+n[e>>4]+n[e&15];}function Pe(n){return n<2048?Be[192|n>>6]+Be[128|n&63]:n<65536?Be[224|n>>12]+Be[128|n>>6&63]+Be[128|n&63]:Be[240|n>>18]+Be[128|n>>12&63]+Be[128|n>>6&63]+Be[128|n&63]}function VE(n){let e="",t=0,r=0;for(r=0;r<n.length;r++)if(t=n[r].charCodeAt(0),t!==48){if(!(t>=48&&t<=57||t>=65&&t<=70||t>=97&&t<=102))return "";e+=n[r];break}for(r+=1;r<n.length;r++){if(t=n[r].charCodeAt(0),!(t>=48&&t<=57||t>=65&&t<=70||t>=97&&t<=102))return "";e+=n[r];}return e}var jE=RegExp.prototype.test.bind(/^[\dA-Fa-f]{1,4}$/),qE=RegExp.prototype.test.bind(/^[vV][\dA-Fa-f]+\.[A-Za-z\d\-._~!$&'()*+,;=:]+$/),LE=RegExp.prototype.test.bind(/^[A-Za-z\d\-._~]$/),BE=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function WE(n){if(n.length===0)return false;for(let e=0;e<n.length;e++)if(!LE(n[e])){if(n[e]==="%"&&e+2<n.length&&vn(n.slice(e+1,e+3))){e+=2;continue}return false}return true}function qp(n){let e=-1,t=0,r=-1,i=0;for(let o=0;o<n.length;o++)n[o]==="0"?(r===-1&&(r=o),i++,i>t&&(t=i,e=r)):(r=-1,i=0);if(t<2)return n.join(":");let a=n.slice(0,e).join(":"),s=n.slice(e+t).join(":");return a+"::"+s}function ME(n){let e=n.indexOf("::");if(e!==-1&&n.indexOf("::",e+1)!==-1)return;let t=e===-1?n.split(":"):n.slice(0,e).split(":"),r=e===-1?[]:n.slice(e+2).split(":");e!==-1&&(t.length===1&&t[0]===""&&(t.length=0),r.length===1&&r[0]===""&&(r.length=0));let i=t.concat(r),a=0;for(let o=0;o<i.length;o++){let u=i[o];if(u==="")return;if(u.indexOf(".")!==-1){if(o!==i.length-1||e!==-1&&r.length===0||!El(u))return;a+=2;continue}if(!jE(u))return;i[o]=parseInt(u,16).toString(16),a++;}if(e===-1)return a!==8?void 0:qp(i);if(a>=8)return;let s=i.slice(0,t.length);for(let o=a;o<8;o++)s.push("0");for(let o=t.length;o<i.length;o++)s.push(i[o]);return qp(s)}function vl(n){let e=n[0]==="["&&n[n.length-1]==="]";if((n[0]==="["||n[n.length-1]==="]")&&!e)return {host:n,isIPV6:false,error:true};let r=e?n.slice(1,-1):n;if(e&&qE(r))return r=r.toLowerCase(),{host:`[${r}]`,escapedHost:r,isIPV6:false,isIPVFuture:true};if(GE(r,":")<2)return {host:n,isIPV6:false,error:e};let i="",a=r.indexOf("%");if(a!==-1){let o=r.slice(a,a+3).toLowerCase()==="%25"?3:1;if(i=r.slice(a+o),!WE(i))return {host:n,isIPV6:false,error:true};r=r.slice(0,a);}let s=ME(r);return s===void 0?{host:n,isIPV6:false,error:true}:{host:s+(i?"%"+i:""),escapedHost:s+(i?"%25"+i:""),isIPV6:true}}function GE(n,e){let t=0;for(let r=0;r<n.length;r++)n[r]===e&&t++;return t}function JE(n){let e=n,t=[],r=-1,i=0;for(;i=e.length;){if(i===1){if(e===".")break;if(e==="/"){t.push("/");break}else {t.push(e);break}}else if(i===2){if(e[0]==="."){if(e[1]===".")break;if(e[1]==="/"){e=e.slice(2);continue}}else if(e[0]==="/"&&(e[1]==="."||e[1]==="/")){t.push("/");break}}else if(i===3&&e==="/.."){t.length!==0&&t.pop(),t.push("/");break}if(e[0]==="."){if(e[1]==="."){if(e[2]==="/"){e=e.slice(3);continue}}else if(e[1]==="/"){e=e.slice(2);continue}}else if(e[0]==="/"&&e[1]==="."){if(e[2]==="/"){e=e.slice(2);continue}else if(e[2]==="."&&e[3]==="/"){e=e.slice(3),t.length!==0&&t.pop();continue}}if((r=e.indexOf("/",1))===-1){t.push(e);break}else t.push(e.slice(0,r)),e=e.slice(r);}return t.join("")}var HE={"@":"%40","/":"%2F","?":"%3F","#":"%23",":":"%3A"},UE=/[@/?#:]/g,zE=/[@/?#]/g;function Bp(n,e){let t=e?zE:UE;return t.lastIndex=0,n.replace(t,r=>HE[r])}function Wp(n,e=false){if(n.indexOf("%")===-1)return n;let t="";for(let r=0;r<n.length;r++){if(n[r]==="%"&&r+2<n.length){let i=n.slice(r+1,r+3);if(vn(i)){let a=i.toUpperCase(),s=String.fromCharCode(parseInt(a,16));e&&_l(s)?t+=s:t+="%"+a,r+=2;continue}}t+=n[r];}return t}function KE(n){let e="";for(let t=0;t<n.length;t++){let r=n[t];if(r==="%"&&t+2<n.length){let i=n.slice(t+1,t+3);if(vn(i)){let a=i.toUpperCase(),s=String.fromCharCode(parseInt(a,16));s!=="."&&_l(s)?e+=s:e+="%"+a,t+=2;continue}}if(Lp(r))e+=r;else {let i=n.charCodeAt(t);if(i<128)e+=Gp(i)?r:Be[i];else if(i<55296||i>57343)e+=Pe(i);else if(i<=56319&&t+1<n.length){let a=n.charCodeAt(t+1);a>=56320&&a<=57343?(e+=Pe(65536+(i-55296<<10)+(a-56320)),t++):e+=Pe(65533);}else e+=Pe(65533);}}return e}function XE(n,e=false){let t="",r=e&&n[0]!=="/";for(let i=0;i<n.length;i++){let a=n[i];if(a==="%"&&i+2<n.length){let s=n.slice(i+1,i+3);if(vn(s)){t+="%"+s.toUpperCase(),i+=2;continue}}if(a==="/"&&(r=false),Lp(a)&&(a!==":"||!r))t+=a;else {let s=n.charCodeAt(i);if(s<128)t+=Be[s];else if(s<55296||s>57343)t+=Pe(s);else if(s<=56319&&i+1<n.length){let o=n.charCodeAt(i+1);o>=56320&&o<=57343?(t+=Pe(65536+(s-55296<<10)+(o-56320)),i++):t+=Pe(65533);}else t+=Pe(65533);}}return t}function bl(n,e){let t="";for(let r=0;r<n.length;r++){let i=n[r];if(i==="%"&&r+2<n.length){let a=n.slice(r+1,r+3);if(vn(a)){t+="%"+a.toUpperCase(),r+=2;continue}}if(e(i))t+=i;else {let a=n.charCodeAt(r);if(a<128)t+=Be[a];else if(a<55296||a>57343)t+=Pe(a);else if(a<=56319&&r+1<n.length){let s=n.charCodeAt(r+1);s>=56320&&s<=57343?(t+=Pe(65536+(a-55296<<10)+(s-56320)),r++):t+=Pe(65533);}else t+=Pe(65533);}}return t}function Mp(n){return bl(n,$E)}function YE(n){return bl(n,Sl)}function ZE(n){return bl(n,Sl)}function Gp(n){return n>=48&&n<=57||n>=65&&n<=90||n>=97&&n<=122||n===42||n===43||n===45||n===46||n===47||n===64||n===95}function QE(n){let e="";for(let t=0;t<n.length;t++){let r=n[t];if(r==="%"&&t+2<n.length){let i=n.slice(t+1,t+3);if(vn(i)){let a=i.toUpperCase(),s=String.fromCharCode(parseInt(a,16));_l(s)?e+=s:e+="%"+a,t+=2;continue}}if(Sl(r))e+=r;else {let i=n.charCodeAt(t);if(i<128)e+=Gp(i)?r:Be[i];else if(i<55296||i>57343)e+=Pe(i);else if(i<=56319&&t+1<n.length){let a=n.charCodeAt(t+1);a>=56320&&a<=57343?(e+=Pe(65536+(i-55296<<10)+(a-56320)),t++):e+=Pe(65533);}else e+=Pe(65533);}}return e}function e_(n){let e="";for(let t=0;t<n.length;t++){if(n[t]==="%"&&t+2<n.length){let r=n.slice(t+1,t+3);if(vn(r)){e+="%"+r.toUpperCase(),t+=2;continue}}e+=escape(n[t]);}return e}function t_(n){let e=[];if(n.userinfo!==void 0&&(e.push(Mp(n.userinfo)),e.push("@")),n.host!==void 0){let t=n.host;if(!El(t)){let r=vl(t);r.isIPV6!==true&&r.isIPVFuture!==true&&(t=Wp(t,true),r=vl(t)),r.isIPV6===true||r.isIPVFuture===true?t=`[${r.escapedHost}]`:t=Bp(t,false);}e.push(t);}if(typeof n.port=="number"||typeof n.port=="string"){let t=String(n.port);if(!RE(t))throw new TypeError("URI port is malformed.");e.push(":"),e.push(t);}return e.length?e.join(""):void 0}Jp.exports={nonSimpleDomain:BE,recomposeAuthority:t_,reescapeHostDelimiters:Bp,normalizePercentEncoding:Wp,normalizePathEncoding:KE,serializePathEncoding:XE,normalizeQueryFragmentEncoding:QE,encodeUserinfo:Mp,encodeQuery:YE,encodeFragment:ZE,escapePreservingEscapes:e_,removeDotSegments:JE,isIPv4:El,isUUID:kE,normalizeIPv6:vl,stringArrayToHexStripped:VE};});var Xp=C((vF,Kp)=>{var{isUUID:n_}=wl(),r_=/^([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-./:;=@]|%[\da-f]{2})+)$/iu,i_=["http","https","ws","wss","urn","urn:uuid"];function s_(n){return i_.indexOf(n)!==-1}function Dl(n){return n.secure===true?true:n.secure===false?false:n.scheme?n.scheme.length===3&&(n.scheme[0]==="w"||n.scheme[0]==="W")&&(n.scheme[1]==="s"||n.scheme[1]==="S")&&(n.scheme[2]==="s"||n.scheme[2]==="S"):false}function Hp(n){return n.host||(n.error=n.error||"HTTP URIs must have a host."),n}function Up(n){let e=String(n.scheme).toLowerCase()==="https";return (n.port===(e?443:80)||n.port==="")&&(n.port=void 0),n.path||(n.path="/"),n}function a_(n){return n.secure=Dl(n),n.resourceName=(n.path||"/")+(n.query?"?"+n.query:""),n.path=void 0,n.query=void 0,n}function o_(n){if((n.port===(Dl(n)?443:80)||n.port==="")&&(n.port=void 0),typeof n.secure=="boolean"&&(n.scheme=n.secure?"wss":"ws",n.secure=void 0),n.resourceName){let e=n.resourceName.indexOf("?"),t=e===-1?n.resourceName:n.resourceName.slice(0,e);n.path=t&&t!=="/"?t:void 0,n.query=e===-1?void 0:n.resourceName.slice(e+1),n.resourceName=void 0;}return n.fragment=void 0,n}function u_(n,e){if(!n.path)return n.error="URN can not be parsed",n;let t=n.path.match(r_);if(t&&t[0]===n.path){let r=e.scheme||n.scheme||"urn";n.nid=t[1].toLowerCase(),n.nss=t[2];let i=`${r}:${e.nid||n.nid}`,a=Al(i);n.path=void 0,a&&(n=a.parse(n,e));}else n.error=n.error||"URN can not be parsed.";return n}function l_(n,e){if(n.nid===void 0)throw new Error("URN without nid cannot be serialized");let t=e.scheme||n.scheme||"urn",r=n.nid.toLowerCase(),i=`${t}:${e.nid||r}`,a=Al(i);a&&(n=a.serialize(n,e));let s=n,o=n.nss;return s.path=`${r||e.nid}:${o}`,e.skipEscape=true,s}function c_(n,e){let t=n;return t.uuid=t.nss,t.nss=void 0,!e.tolerant&&(!t.uuid||!n_(t.uuid))&&(t.error=t.error||"UUID is not valid."),t}function h_(n){let e=n;return e.nss=(n.uuid||"").toLowerCase(),e}var zp={scheme:"http",domainHost:true,parse:Hp,serialize:Up},d_={scheme:"https",domainHost:zp.domainHost,parse:Hp,serialize:Up},vs={scheme:"ws",domainHost:true,parse:a_,serialize:o_},f_={scheme:"wss",domainHost:vs.domainHost,parse:vs.parse,serialize:vs.serialize},p_={scheme:"urn",parse:u_,serialize:l_,skipNormalize:true},m_={scheme:"urn:uuid",parse:c_,serialize:h_,skipNormalize:true},Es={http:zp,https:d_,ws:vs,wss:f_,urn:p_,"urn:uuid":m_};Object.setPrototypeOf(Es,null);function Al(n){return n&&(Es[n]||Es[n.toLowerCase()])||void 0}Kp.exports={wsIsSecure:Dl,SCHEMES:Es,isValidSchemeName:s_,getSchemeHandler:Al};});var lm=C((EF,bs)=>{var{normalizeIPv6:tm,removeDotSegments:ei,recomposeAuthority:g_,normalizePercentEncoding:Pl,normalizePathEncoding:y_,serializePathEncoding:Yp,normalizeQueryFragmentEncoding:Zp,encodeQuery:C_,encodeFragment:v_,reescapeHostDelimiters:E_,isIPv4:nm,nonSimpleDomain:__}=wl(),{SCHEMES:rm,getSchemeHandler:Tl}=Xp(),im=/^[A-Za-z][A-Za-z0-9+.-]*$/u,sm="URI scheme is malformed.";function Qp(n){let e=unescape(String(n));if(!im.test(e))throw new TypeError(sm);return e}function S_(n,e){return typeof n=="string"?n=O_(n,e):typeof n=="object"&&(n=Ss(En(n,e),e)),n}function b_(n,e,t){let r=t?Object.assign({scheme:"null"},t):{scheme:"null"},{parsed:i,malformedAuthorityOrPort:a,malformedPercentEncoding:s,malformedSchemeSpecific:o,malformedHost:u,malformedScheme:l}=_s(n,r),{parsed:c,malformedAuthorityOrPort:h,malformedPercentEncoding:f,malformedSchemeSpecific:p,malformedHost:m,malformedScheme:g}=_s(e,r);if(a||h||s||f||o||p||u||m||l||g)throw new Error(i.error||c.error||"URI is malformed.");let v=am(i,c,r,true),E=Tl(t&&t.scheme||v.scheme),b=v.host,d=b!==void 0&&b!==""&&(nm(b)||tm(b).isIPV6);om(v,t||{},E,d);let _=b&&b.indexOf("%")!==-1&&!/\P{ASCII}/u.test(b);if(v.error&&!_)throw new Error(v.error);return r.skipEscape=true,En(v,r)}function am(n,e,t,r){let i={};return r||(n=Ss(En(n,t),t),e=Ss(En(e,t),t)),t=t||{},!t.tolerant&&e.scheme?(i.scheme=e.scheme,i.userinfo=e.userinfo,i.host=e.host,i.port=e.port,i.path=ei(e.path||""),i.query=e.query):(e.userinfo!==void 0||e.host!==void 0||e.port!==void 0?(i.userinfo=e.userinfo,i.host=e.host,i.port=e.port,i.path=ei(e.path||""),i.query=e.query):(e.path?(e.path[0]==="/"?i.path=ei(e.path):((n.userinfo!==void 0||n.host!==void 0||n.port!==void 0)&&!n.path?i.path="/"+e.path:n.path?i.path=n.path.slice(0,n.path.lastIndexOf("/")+1)+e.path:i.path=e.path,i.path=ei(i.path)),i.query=e.query):(i.path=n.path,e.query!==void 0?i.query=e.query:i.query=n.query),i.userinfo=n.userinfo,i.host=n.host,i.port=n.port),i.scheme=n.scheme),i.fragment=e.fragment,i}function w_(n,e,t){let r=em(n,t),i=em(e,t);return r!==void 0&&i!==void 0&&r===i}function En(n,e){let t={host:n.host,scheme:n.scheme,userinfo:n.userinfo,port:n.port,path:n.path,query:n.query,nid:n.nid,nss:n.nss,uuid:n.uuid,fragment:n.fragment,reference:n.reference,resourceName:n.resourceName,secure:n.secure,error:""},r=Object.assign({},e),i=[];t.scheme&&(t.scheme=Qp(t.scheme));let a=Tl(r.scheme||t.scheme);a&&a.serialize&&a.serialize(t,r);let s=t.userinfo!==void 0||t.host!==void 0||t.port!==void 0,o=!r.skipEscape&&t.scheme===void 0&&!s;t.path!==void 0&&(r.skipEscape?t.path=Pl(t.path):t.path=Yp(t.path,o)),r.reference!=="suffix"&&t.scheme&&(t.scheme=Qp(t.scheme),i.push(t.scheme,":"));let u=g_(t);if(u!==void 0&&(r.reference!=="suffix"&&i.push("//"),i.push(u),t.path&&t.path[0]!=="/"&&i.push("/")),t.path!==void 0){let l=t.path;!r.absolutePath&&(!a||!a.absolutePath)&&(l=ei(l)),o&&(l=Yp(l,true)),u===void 0&&l[0]==="/"&&l[1]==="/"&&(l="/%2F"+l.slice(2)),i.push(l);}return t.query!==void 0&&i.push("?",C_(t.query)),t.fragment!==void 0&&i.push("#",v_(t.fragment)),i.join("")}var D_=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u,A_=/^(?:[^#/:?]+:)?\/\/([^/?#]*)/,P_=/^(?:[^#/:?]+:)?([/\\\t\n\r]*)/;function T_(n,e){if(e[2]!==void 0&&n.path&&n.path[0]!=="/")return 'URI path must start with "/" when authority is present.';if(typeof n.port=="number"&&(n.port<0||n.port>65535))return "URI port is malformed."}function Qr(n){if(n===void 0)return false;let e=n.indexOf("%");for(;e!==-1;){if(e+2>=n.length||!/^[\da-f]{2}$/iu.test(n.slice(e+1,e+3)))return true;e=n.indexOf("%",e+3);}return false}function xl(n){return n[0]==="["&&n[n.length-1]==="]"}function x_(n){let e=n[4];return Qr(n[3])||e!==void 0&&!xl(e)&&Qr(e)||Qr(n[6])||Qr(n[7])||Qr(n[8])}function om(n,e,t,r){if(!e.unicodeSupport&&(!t||!t.unicodeSupport)&&n.host&&!xl(n.host)&&(e.domainHost||t&&t.domainHost)&&r===false&&__(n.host))try{n.host=new URL("http://"+n.host).hostname;}catch(i){return n.error=n.error||"Host's domain name can not be converted to ASCII: "+i,true}return false}function _s(n,e){let t=Object.assign({},e),r={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},i=false,a=false,s=false,o=false,u=false,l=false,c=false;t.reference==="suffix"&&(t.scheme?n=t.scheme+":"+n:n="//"+n);let h=n.match(A_);h!==null&&h[1].indexOf("\\")!==-1&&(r.error="URI authority must not contain a literal backslash.",i=true);let f=n.match(P_);if(f!==null){let m=f[1],g=m.replace(/[\t\n\r]/g,"");g.length>=2&&(g.slice(0,2)!=="//"?(r.error=r.error||"URI authority must not contain a literal backslash.",i=true):m.length!==g.length&&(r.error=r.error||"URI authority introducer must not contain whitespace.",i=true));}let p=n.match(D_);if(p){if(r.scheme=p[1],r.userinfo=p[3],r.host=p[4],r.port=parseInt(p[5],10),r.path=p[6]||"",r.query=p[7],r.fragment=p[8],r.scheme!==void 0){let v=unescape(r.scheme);im.test(v)?r.scheme=v.toLowerCase():(r.error=r.error||sm,l=true);}a=x_(p),a&&(r.error=r.error||"URI contains malformed percent-encoding."),isNaN(r.port)&&(r.port=p[5]);let m=T_(r,p);if(m!==void 0&&(r.error=r.error||m,i=true),r.host)if(nm(r.host)===false){let E=xl(r.host),b=r.host.indexOf("[")!==-1||r.host.indexOf("]")!==-1,d=tm(r.host);c=d.isIPV6||d.isIPVFuture===true,u=b&&(!E||d.error===true),r.host=c?d.host:d.host.toLowerCase(),u&&(r.error=r.error||"URI host is malformed.",i=true);}else c=true;r.scheme===void 0&&r.userinfo===void 0&&r.host===void 0&&r.port===void 0&&r.query===void 0&&!r.path?r.reference="same-document":r.scheme===void 0?r.reference="relative":r.fragment===void 0?r.reference="absolute":r.reference="uri",t.reference&&t.reference!=="suffix"&&t.reference!==r.reference&&(r.error=r.error||"URI is not a "+t.reference+" reference.");let g=Tl(t.scheme||r.scheme);if(u||(o=om(r,t,g,c)),n.indexOf("%")!==-1&&r.host!==void 0&&!u){let v=c?r.host:Pl(r.host,true);c||(v=Pl(v.toLowerCase())),r.host=E_(v,c);}(!g||g&&!g.skipNormalize)&&(r.path&&(r.path=y_(r.path)),r.query&&(r.query=Zp(r.query)),r.fragment&&(r.fragment=Zp(r.fragment))),g&&g.parse&&(g.parse(r,t),g===rm.urn&&r.nid===void 0&&(s=true));}else r.error=r.error||"URI can not be parsed.";return {parsed:r,malformedAuthorityOrPort:i,malformedPercentEncoding:a,malformedSchemeSpecific:s,malformedHost:o,malformedScheme:l}}function Ss(n,e){return _s(n,e).parsed}function O_(n,e){return um(n,e).normalized}function um(n,e){let{parsed:t,malformedAuthorityOrPort:r,malformedPercentEncoding:i,malformedSchemeSpecific:a,malformedHost:s,malformedScheme:o}=_s(n,e);return {normalized:r||i||a||s||o?n:En(t,e),malformedAuthorityOrPort:r,malformedPercentEncoding:i,malformedSchemeSpecific:a,malformedHost:s,malformedScheme:o}}function em(n,e){if(typeof n!="string"&&typeof n!="object")return;let t;try{t=typeof n=="string"?n:En(n,e);}catch{return}let{normalized:r,malformedAuthorityOrPort:i,malformedPercentEncoding:a,malformedSchemeSpecific:s,malformedHost:o,malformedScheme:u}=um(t,e);return i||a||s||o||u?void 0:r}var Ol={SCHEMES:rm,normalize:S_,resolve:b_,resolveComponent:am,equal:w_,serialize:En,parse:Ss};bs.exports=Ol;bs.exports.default=Ol;bs.exports.fastUri=Ol;});var hm=C(Fl=>{Object.defineProperty(Fl,"__esModule",{value:true});var cm=lm();cm.code='require("ajv/dist/runtime/uri").default';Fl.default=cm;});var kl=C(Ee=>{Object.defineProperty(Ee,"__esModule",{value:true});Ee.CodeGen=Ee.Name=Ee.nil=Ee.stringify=Ee.str=Ee._=Ee.KeywordCxt=void 0;var F_=zn();Object.defineProperty(Ee,"KeywordCxt",{enumerable:true,get:function(){return F_.KeywordCxt}});var Yn=I();Object.defineProperty(Ee,"_",{enumerable:true,get:function(){return Yn._}});Object.defineProperty(Ee,"str",{enumerable:true,get:function(){return Yn.str}});Object.defineProperty(Ee,"stringify",{enumerable:true,get:function(){return Yn.stringify}});Object.defineProperty(Ee,"nil",{enumerable:true,get:function(){return Yn.nil}});Object.defineProperty(Ee,"Name",{enumerable:true,get:function(){return Yn.Name}});Object.defineProperty(Ee,"CodeGen",{enumerable:true,get:function(){return Yn.CodeGen}});var N_=Yr(),gm=Kn(),I_=Qu(),ti=Zr(),k_=I(),ni=zr(),ws=Ur(),Il=q(),dm=jp(),R_=hm(),ym=(n,e)=>new RegExp(n,e);ym.code="new RegExp";var $_=["removeAdditional","useDefaults","coerceTypes"],V_=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),j_={errorDataPath:"",format:"`validateFormats: false` can be used instead.",nullable:'"nullable" keyword is supported by default.',jsonPointers:"Deprecated jsPropertySyntax can be used instead.",extendRefs:"Deprecated ignoreKeywordsWithRef can be used instead.",missingRefs:"Pass empty schema with $id that should be ignored to ajv.addSchema.",processCode:"Use option `code: {process: (code, schemaEnv: object) => string}`",sourceCode:"Use option `code: {source: true}`",strictDefaults:"It is default now, see option `strict`.",strictKeywords:"It is default now, see option `strict`.",uniqueItems:'"uniqueItems" keyword is always validated.',unknownFormats:"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",cache:"Map is used as cache, schema object as key.",serialize:"Map is used as cache, schema object as key.",ajvErrors:"It is default now."},q_={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},fm=200;function L_(n){var e,t,r,i,a,s,o,u,l,c,h,f,p,m,g,v,E,b,d,_,y,S,D,A,F;let Z=n.strict,be=(e=n.code)===null||e===void 0?void 0:e.optimize,Fr=be===true||be===void 0?1:be||0,Nr=(r=(t=n.code)===null||t===void 0?void 0:t.regExp)!==null&&r!==void 0?r:ym,Vn=(i=n.uriResolver)!==null&&i!==void 0?i:R_.default;return {strictSchema:(s=(a=n.strictSchema)!==null&&a!==void 0?a:Z)!==null&&s!==void 0?s:true,strictNumbers:(u=(o=n.strictNumbers)!==null&&o!==void 0?o:Z)!==null&&u!==void 0?u:true,strictTypes:(c=(l=n.strictTypes)!==null&&l!==void 0?l:Z)!==null&&c!==void 0?c:"log",strictTuples:(f=(h=n.strictTuples)!==null&&h!==void 0?h:Z)!==null&&f!==void 0?f:"log",strictRequired:(m=(p=n.strictRequired)!==null&&p!==void 0?p:Z)!==null&&m!==void 0?m:false,code:n.code?{...n.code,optimize:Fr,regExp:Nr}:{optimize:Fr,regExp:Nr},loopRequired:(g=n.loopRequired)!==null&&g!==void 0?g:fm,loopEnum:(v=n.loopEnum)!==null&&v!==void 0?v:fm,meta:(E=n.meta)!==null&&E!==void 0?E:true,messages:(b=n.messages)!==null&&b!==void 0?b:true,inlineRefs:(d=n.inlineRefs)!==null&&d!==void 0?d:true,schemaId:(_=n.schemaId)!==null&&_!==void 0?_:"$id",addUsedSchema:(y=n.addUsedSchema)!==null&&y!==void 0?y:true,validateSchema:(S=n.validateSchema)!==null&&S!==void 0?S:true,validateFormats:(D=n.validateFormats)!==null&&D!==void 0?D:true,unicodeRegExp:(A=n.unicodeRegExp)!==null&&A!==void 0?A:true,int32range:(F=n.int32range)!==null&&F!==void 0?F:true,uriResolver:Vn}}var ri=class{constructor(e={}){this.schemas={},this.refs={},this.formats=Object.create(null),this._compilations=new Set,this._loading={},this._cache=new Map,e=this.opts={...e,...L_(e)};let{es5:t,lines:r}=this.opts.code;this.scope=new k_.ValueScope({scope:{},prefixes:V_,es5:t,lines:r}),this.logger=H_(e.logger);let i=e.validateFormats;e.validateFormats=false,this.RULES=(0, I_.getRules)(),pm.call(this,j_,e,"NOT SUPPORTED"),pm.call(this,q_,e,"DEPRECATED","warn"),this._metaOpts=G_.call(this),e.formats&&W_.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),e.keywords&&M_.call(this,e.keywords),typeof e.meta=="object"&&this.addMetaSchema(e.meta),B_.call(this),e.validateFormats=i;}_addVocabularies(){this.addKeyword("$async");}_addDefaultMetaSchema(){let{$data:e,meta:t,schemaId:r}=this.opts,i=dm;r==="id"&&(i={...dm},i.id=i.$id,delete i.$id),t&&e&&this.addMetaSchema(i,i[r],false);}defaultMeta(){let{meta:e,schemaId:t}=this.opts;return this.opts.defaultMeta=typeof e=="object"?e[t]||e:void 0}validate(e,t){let r;if(typeof e=="string"){if(r=this.getSchema(e),!r)throw new Error(`no schema with key or ref "${e}"`)}else r=this.compile(e);let i=r(t);return "$async"in r||(this.errors=r.errors),i}compile(e,t){let r=this._addSchema(e,t);return r.validate||this._compileSchemaEnv(r)}compileAsync(e,t){if(typeof this.opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");let{loadSchema:r}=this.opts;return i.call(this,e,t);async function i(c,h){await a.call(this,c.$schema);let f=this._addSchema(c,h);return f.validate||s.call(this,f)}async function a(c){c&&!this.getSchema(c)&&await i.call(this,{$ref:c},true);}async function s(c){try{return this._compileSchemaEnv(c)}catch(h){if(!(h instanceof gm.default))throw h;return o.call(this,h),await u.call(this,h.missingSchema),s.call(this,c)}}function o({missingSchema:c,missingRef:h}){if(this.refs[c])throw new Error(`AnySchema ${c} is loaded but ${h} cannot be resolved`)}async function u(c){let h=await l.call(this,c);this.refs[c]||await a.call(this,h.$schema),this.refs[c]||this.addSchema(h,c,t);}async function l(c){let h=this._loading[c];if(h)return h;try{return await(this._loading[c]=r(c))}finally{delete this._loading[c];}}}addSchema(e,t,r,i=this.opts.validateSchema){if(Array.isArray(e)){for(let s of e)this.addSchema(s,void 0,r,i);return this}let a;if(typeof e=="object"){let{schemaId:s}=this.opts;if(a=e[s],a!==void 0&&typeof a!="string")throw new Error(`schema ${s} must be string`)}return t=(0, ni.normalizeId)(t||a),this._checkUnique(t),this.schemas[t]=this._addSchema(e,r,t,i,true),this}addMetaSchema(e,t,r=this.opts.validateSchema){return this.addSchema(e,t,true,r),this}validateSchema(e,t){if(typeof e=="boolean")return true;let r;if(r=e.$schema,r!==void 0&&typeof r!="string")throw new Error("$schema must be a string");if(r=r||this.opts.defaultMeta||this.defaultMeta(),!r)return this.logger.warn("meta-schema not available"),this.errors=null,true;let i=this.validate(r,e);if(!i&&t){let a="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(a);else throw new Error(a)}return i}getSchema(e){let t;for(;typeof(t=mm.call(this,e))=="string";)e=t;if(t===void 0){let{schemaId:r}=this.opts,i=new ti.SchemaEnv({schema:{},schemaId:r});if(t=ti.resolveSchema.call(this,i,e),!t)return;this.refs[e]=t;}return t.validate||this._compileSchemaEnv(t)}removeSchema(e){if(e instanceof RegExp)return this._removeAllSchemas(this.schemas,e),this._removeAllSchemas(this.refs,e),this;switch(typeof e){case "undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case "string":{let t=mm.call(this,e);return typeof t=="object"&&this._cache.delete(t.schema),delete this.schemas[e],delete this.refs[e],this}case "object":{let t=e;this._cache.delete(t);let r=e[this.opts.schemaId];return r&&(r=(0, ni.normalizeId)(r),delete this.schemas[r],delete this.refs[r]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(e){for(let t of e)this.addKeyword(t);return this}addKeyword(e,t){let r;if(typeof e=="string")r=e,typeof t=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),t.keyword=r);else if(typeof e=="object"&&t===void 0){if(t=e,r=t.keyword,Array.isArray(r)&&!r.length)throw new Error("addKeywords: keyword must be string or non-empty array")}else throw new Error("invalid addKeywords parameters");if(z_.call(this,r,t),!t)return (0, Il.eachItem)(r,a=>Nl.call(this,a)),this;X_.call(this,t);let i={...t,type:(0, ws.getJSONTypes)(t.type),schemaType:(0, ws.getJSONTypes)(t.schemaType)};return (0, Il.eachItem)(r,i.type.length===0?a=>Nl.call(this,a,i):a=>i.type.forEach(s=>Nl.call(this,a,i,s))),this}getKeyword(e){let t=this.RULES.all[e];return typeof t=="object"?t.definition:!!t}removeKeyword(e){let{RULES:t}=this;delete t.keywords[e],delete t.all[e];for(let r of t.rules){let i=r.rules.findIndex(a=>a.keyword===e);i>=0&&r.rules.splice(i,1);}return this}addFormat(e,t){return typeof t=="string"&&(t=new RegExp(t)),this.formats[e]=t,this}errorsText(e=this.errors,{separator:t=", ",dataVar:r="data"}={}){return !e||e.length===0?"No errors":e.map(i=>`${r}${i.instancePath} ${i.message}`).reduce((i,a)=>i+t+a)}$dataMetaSchema(e,t){let r=this.RULES.all;e=JSON.parse(JSON.stringify(e));for(let i of t){let a=i.split("/").slice(1),s=e;for(let o of a)s=s[o];for(let o in r){let u=r[o];if(typeof u!="object")continue;let{$data:l}=u.definition,c=s[o];l&&c&&(s[o]=Cm(c));}}return e}_removeAllSchemas(e,t){for(let r in e){let i=e[r];(!t||t.test(r))&&(typeof i=="string"?delete e[r]:i&&!i.meta&&(this._cache.delete(i.schema),delete e[r]));}}_addSchema(e,t,r,i=this.opts.validateSchema,a=this.opts.addUsedSchema){let s,{schemaId:o}=this.opts;if(typeof e=="object")s=e[o];else {if(this.opts.jtd)throw new Error("schema must be object");if(typeof e!="boolean")throw new Error("schema must be object or boolean")}let u=this._cache.get(e);if(u!==void 0)return u;r=(0, ni.normalizeId)(s||r);let l=ni.getSchemaRefs.call(this,e,r);return u=new ti.SchemaEnv({schema:e,schemaId:o,meta:t,baseId:r,localRefs:l}),this._cache.set(u.schema,u),a&&!r.startsWith("#")&&(r&&this._checkUnique(r),this.refs[r]=u),i&&this.validateSchema(e,true),u}_checkUnique(e){if(this.schemas[e]||this.refs[e])throw new Error(`schema with key or id "${e}" already exists`)}_compileSchemaEnv(e){if(e.meta?this._compileMetaSchema(e):ti.compileSchema.call(this,e),!e.validate)throw new Error("ajv implementation error");return e.validate}_compileMetaSchema(e){let t=this.opts;this.opts=this._metaOpts;try{ti.compileSchema.call(this,e);}finally{this.opts=t;}}};ri.ValidationError=N_.default;ri.MissingRefError=gm.default;Ee.default=ri;function pm(n,e,t,r="error"){for(let i in n){let a=i;a in e&&this.logger[r](`${t}: option ${i}. ${n[a]}`);}}function mm(n){return n=(0, ni.normalizeId)(n),this.schemas[n]||this.refs[n]}function B_(){let n=this.opts.schemas;if(n)if(Array.isArray(n))this.addSchema(n);else for(let e in n)this.addSchema(n[e],e);}function W_(){for(let n in this.opts.formats){let e=this.opts.formats[n];e&&this.addFormat(n,e);}}function M_(n){if(Array.isArray(n)){this.addVocabulary(n);return}this.logger.warn("keywords option as map is deprecated, pass array");for(let e in n){let t=n[e];t.keyword||(t.keyword=e),this.addKeyword(t);}}function G_(){let n={...this.opts};for(let e of $_)delete n[e];return n}var J_={log(){},warn(){},error(){}};function H_(n){if(n===false)return J_;if(n===void 0)return console;if(n.log&&n.warn&&n.error)return n;throw new Error("logger must implement log, warn and error methods")}var U_=/^[a-z_$][a-z0-9_$:-]*$/i;function z_(n,e){let{RULES:t}=this;if((0, Il.eachItem)(n,r=>{if(t.keywords[r])throw new Error(`Keyword ${r} is already defined`);if(!U_.test(r))throw new Error(`Keyword ${r} has invalid name`)}),!!e&&e.$data&&!("code"in e||"validate"in e))throw new Error('$data keyword must have "code" or "validate" function')}function Nl(n,e,t){var r;let i=e?.post;if(t&&i)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:a}=this,s=i?a.post:a.rules.find(({type:u})=>u===t);if(s||(s={type:t,rules:[]},a.rules.push(s)),a.keywords[n]=true,!e)return;let o={keyword:n,definition:{...e,type:(0, ws.getJSONTypes)(e.type),schemaType:(0, ws.getJSONTypes)(e.schemaType)}};e.before?K_.call(this,s,o,e.before):s.rules.push(o),a.all[n]=o,(r=e.implements)===null||r===void 0||r.forEach(u=>this.addKeyword(u));}function K_(n,e,t){let r=n.rules.findIndex(i=>i.keyword===t);r>=0?n.rules.splice(r,0,e):(n.rules.push(e),this.logger.warn(`rule ${t} is not defined`));}function X_(n){let{metaSchema:e}=n;e!==void 0&&(n.$data&&this.opts.$data&&(e=Cm(e)),n.validateSchema=this.compile(e,true));}var Y_={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function Cm(n){return {anyOf:[n,Y_]}}});var vm=C(Rl=>{Object.defineProperty(Rl,"__esModule",{value:true});var Z_={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};Rl.default=Z_;});var Ps=C(_n=>{Object.defineProperty(_n,"__esModule",{value:true});_n.callRef=_n.getValidate=void 0;var Q_=Kn(),Em=Ze(),We=I(),Zn=Ye(),_m=Zr(),Ds=q(),eS={keyword:"$ref",schemaType:"string",code(n){let{gen:e,schema:t,it:r}=n,{baseId:i,schemaEnv:a,validateName:s,opts:o,self:u}=r,{root:l}=a;if((t==="#"||t==="#/")&&i===l.baseId)return h();let c=_m.resolveRef.call(u,l,i,t);if(c===void 0)throw new Q_.default(r.opts.uriResolver,i,t);if(c instanceof _m.SchemaEnv)return f(c);return p(c);function h(){if(a===l)return As(n,s,a,a.$async);let m=e.scopeValue("root",{ref:l});return As(n,(0, We._)`${m}.validate`,l,l.$async)}function f(m){let g=Sm(n,m);As(n,g,m,m.$async);}function p(m){let g=e.scopeValue("schema",o.code.source===true?{ref:m,code:(0, We.stringify)(m)}:{ref:m}),v=e.name("valid"),E=n.subschema({schema:m,dataTypes:[],schemaPath:We.nil,topSchemaRef:g,errSchemaPath:t},v);n.mergeEvaluated(E),n.ok(v);}}};function Sm(n,e){let{gen:t}=n;return e.validate?t.scopeValue("validate",{ref:e.validate}):(0, We._)`${t.scopeValue("wrapper",{ref:e})}.validate`}_n.getValidate=Sm;function As(n,e,t,r){let{gen:i,it:a}=n,{allErrors:s,schemaEnv:o,opts:u}=a,l=u.passContext?Zn.default.this:We.nil;r?c():h();function c(){if(!o.$async)throw new Error("async schema referenced by sync schema");let m=i.let("valid");i.try(()=>{i.code((0, We._)`await ${(0, Em.callValidateCode)(n,e,l)}`),p(e),s||i.assign(m,true);},g=>{i.if((0, We._)`!(${g} instanceof ${a.ValidationError})`,()=>i.throw(g)),f(g),s||i.assign(m,false);}),n.ok(m);}function h(){n.result((0, Em.callValidateCode)(n,e,l),()=>p(e),()=>f(e));}function f(m){let g=(0, We._)`${m}.errors`;i.assign(Zn.default.vErrors,(0, We._)`${Zn.default.vErrors} === null ? ${g} : ${Zn.default.vErrors}.concat(${g})`),i.assign(Zn.default.errors,(0, We._)`${Zn.default.vErrors}.length`);}function p(m){var g;if(!a.opts.unevaluated)return;let v=(g=t?.validate)===null||g===void 0?void 0:g.evaluated;if(a.props!==true)if(v&&!v.dynamicProps)v.props!==void 0&&(a.props=Ds.mergeEvaluated.props(i,v.props,a.props));else {let E=i.var("props",(0, We._)`${m}.evaluated.props`);a.props=Ds.mergeEvaluated.props(i,E,a.props,We.Name);}if(a.items!==true)if(v&&!v.dynamicItems)v.items!==void 0&&(a.items=Ds.mergeEvaluated.items(i,v.items,a.items));else {let E=i.var("items",(0, We._)`${m}.evaluated.items`);a.items=Ds.mergeEvaluated.items(i,E,a.items,We.Name);}}}_n.callRef=As;_n.default=eS;});var Vl=C($l=>{Object.defineProperty($l,"__esModule",{value:true});var tS=vm(),nS=Ps(),rS=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",tS.default,nS.default];$l.default=rS;});var bm=C(jl=>{Object.defineProperty(jl,"__esModule",{value:true});var Ts=I(),zt=Ts.operators,xs={maximum:{okStr:"<=",ok:zt.LTE,fail:zt.GT},minimum:{okStr:">=",ok:zt.GTE,fail:zt.LT},exclusiveMaximum:{okStr:"<",ok:zt.LT,fail:zt.GTE},exclusiveMinimum:{okStr:">",ok:zt.GT,fail:zt.LTE}},iS={message:({keyword:n,schemaCode:e})=>(0, Ts.str)`must be ${xs[n].okStr} ${e}`,params:({keyword:n,schemaCode:e})=>(0, Ts._)`{comparison: ${xs[n].okStr}, limit: ${e}}`},sS={keyword:Object.keys(xs),type:"number",schemaType:"number",$data:true,error:iS,code(n){let{keyword:e,data:t,schemaCode:r}=n;n.fail$data((0, Ts._)`${t} ${xs[e].fail} ${r} || isNaN(${t})`);}};jl.default=sS;});var wm=C(ql=>{Object.defineProperty(ql,"__esModule",{value:true});var ii=I(),aS={message:({schemaCode:n})=>(0, ii.str)`must be multiple of ${n}`,params:({schemaCode:n})=>(0, ii._)`{multipleOf: ${n}}`},oS={keyword:"multipleOf",type:"number",schemaType:"number",$data:true,error:aS,code(n){let{gen:e,data:t,schemaCode:r,it:i}=n,a=i.opts.multipleOfPrecision,s=e.let("res"),o=a?(0, ii._)`Math.abs(Math.round(${s}) - ${s}) > 1e-${a}`:(0, ii._)`${s} !== parseInt(${s})`;n.fail$data((0, ii._)`(${r} === 0 || (${s} = ${t}/${r}, ${o}))`);}};ql.default=oS;});var Am=C(Ll=>{Object.defineProperty(Ll,"__esModule",{value:true});function Dm(n){let e=n.length,t=0,r=0,i;for(;r<e;)t++,i=n.charCodeAt(r++),i>=55296&&i<=56319&&r<e&&(i=n.charCodeAt(r),(i&64512)===56320&&r++);return t}Ll.default=Dm;Dm.code='require("ajv/dist/runtime/ucs2length").default';});var Pm=C(Bl=>{Object.defineProperty(Bl,"__esModule",{value:true});var Sn=I(),uS=q(),lS=Am(),cS={message({keyword:n,schemaCode:e}){let t=n==="maxLength"?"more":"fewer";return (0, Sn.str)`must NOT have ${t} than ${e} characters`},params:({schemaCode:n})=>(0, Sn._)`{limit: ${n}}`},hS={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:true,error:cS,code(n){let{keyword:e,data:t,schemaCode:r,it:i}=n,a=e==="maxLength"?Sn.operators.GT:Sn.operators.LT,s=i.opts.unicode===false?(0, Sn._)`${t}.length`:(0, Sn._)`${(0, uS.useFunc)(n.gen,lS.default)}(${t})`;n.fail$data((0, Sn._)`${s} ${a} ${r}`);}};Bl.default=hS;});var Tm=C(Wl=>{Object.defineProperty(Wl,"__esModule",{value:true});var dS=Ze(),fS=q(),Qn=I(),pS={message:({schemaCode:n})=>(0, Qn.str)`must match pattern "${n}"`,params:({schemaCode:n})=>(0, Qn._)`{pattern: ${n}}`},mS={keyword:"pattern",type:"string",schemaType:"string",$data:true,error:pS,code(n){let{gen:e,data:t,$data:r,schema:i,schemaCode:a,it:s}=n,o=s.opts.unicodeRegExp?"u":"";if(r){let{regExp:u}=s.opts.code,l=u.code==="new RegExp"?(0, Qn._)`new RegExp`:(0, fS.useFunc)(e,u),c=e.let("valid");e.try(()=>e.assign(c,(0, Qn._)`${l}(${a}, ${o}).test(${t})`),()=>e.assign(c,false)),n.fail$data((0, Qn._)`!${c}`);}else {let u=(0, dS.usePattern)(n,i);n.fail$data((0, Qn._)`!${u}.test(${t})`);}}};Wl.default=mS;});var xm=C(Ml=>{Object.defineProperty(Ml,"__esModule",{value:true});var si=I(),gS={message({keyword:n,schemaCode:e}){let t=n==="maxProperties"?"more":"fewer";return (0, si.str)`must NOT have ${t} than ${e} properties`},params:({schemaCode:n})=>(0, si._)`{limit: ${n}}`},yS={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:true,error:gS,code(n){let{keyword:e,data:t,schemaCode:r}=n,i=e==="maxProperties"?si.operators.GT:si.operators.LT;n.fail$data((0, si._)`Object.keys(${t}).length ${i} ${r}`);}};Ml.default=yS;});var Om=C(Gl=>{Object.defineProperty(Gl,"__esModule",{value:true});var ai=Ze(),oi=I(),CS=q(),vS={message:({params:{missingProperty:n}})=>(0, oi.str)`must have required property '${n}'`,params:({params:{missingProperty:n}})=>(0, oi._)`{missingProperty: ${n}}`},ES={keyword:"required",type:"object",schemaType:"array",$data:true,error:vS,code(n){let{gen:e,schema:t,schemaCode:r,data:i,$data:a,it:s}=n,{opts:o}=s;if(!a&&t.length===0)return;let u=t.length>=o.loopRequired;if(s.allErrors?l():c(),o.strictRequired){let p=n.parentSchema.properties,{definedProperties:m}=n.it;for(let g of t)if(p?.[g]===void 0&&!m.has(g)){let v=s.schemaEnv.baseId+s.errSchemaPath,E=`required property "${g}" is not defined at "${v}" (strictRequired)`;(0, CS.checkStrictMode)(s,E,s.opts.strictRequired);}}function l(){if(u||a)n.block$data(oi.nil,h);else for(let p of t)(0, ai.checkReportMissingProp)(n,p);}function c(){let p=e.let("missing");if(u||a){let m=e.let("valid",true);n.block$data(m,()=>f(p,m)),n.ok(m);}else e.if((0, ai.checkMissingProp)(n,t,p)),(0, ai.reportMissingProp)(n,p),e.else();}function h(){e.forOf("prop",r,p=>{n.setParams({missingProperty:p}),e.if((0, ai.noPropertyInData)(e,i,p,o.ownProperties),()=>n.error());});}function f(p,m){n.setParams({missingProperty:p}),e.forOf(p,r,()=>{e.assign(m,(0, ai.propertyInData)(e,i,p,o.ownProperties)),e.if((0, oi.not)(m),()=>{n.error(),e.break();});},oi.nil);}}};Gl.default=ES;});var Fm=C(Jl=>{Object.defineProperty(Jl,"__esModule",{value:true});var ui=I(),_S={message({keyword:n,schemaCode:e}){let t=n==="maxItems"?"more":"fewer";return (0, ui.str)`must NOT have ${t} than ${e} items`},params:({schemaCode:n})=>(0, ui._)`{limit: ${n}}`},SS={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:true,error:_S,code(n){let{keyword:e,data:t,schemaCode:r}=n,i=e==="maxItems"?ui.operators.GT:ui.operators.LT;n.fail$data((0, ui._)`${t}.length ${i} ${r}`);}};Jl.default=SS;});var Os=C(Hl=>{Object.defineProperty(Hl,"__esModule",{value:true});var Nm=ol();Nm.code='require("ajv/dist/runtime/equal").default';Hl.default=Nm;});var Im=C(zl=>{Object.defineProperty(zl,"__esModule",{value:true});var Ul=Ur(),_e=I(),bS=q(),wS=Os(),DS={message:({params:{i:n,j:e}})=>(0, _e.str)`must NOT have duplicate items (items ## ${e} and ${n} are identical)`,params:({params:{i:n,j:e}})=>(0, _e._)`{i: ${n}, j: ${e}}`},AS={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:true,error:DS,code(n){let{gen:e,data:t,$data:r,schema:i,parentSchema:a,schemaCode:s,it:o}=n;if(!r&&!i)return;let u=e.let("valid"),l=a.items?(0, Ul.getSchemaTypes)(a.items):[];n.block$data(u,c,(0, _e._)`${s} === false`),n.ok(u);function c(){let m=e.let("i",(0, _e._)`${t}.length`),g=e.let("j");n.setParams({i:m,j:g}),e.assign(u,true),e.if((0, _e._)`${m} > 1`,()=>(h()?f:p)(m,g));}function h(){return l.length>0&&!l.some(m=>m==="object"||m==="array")}function f(m,g){let v=e.name("item"),E=(0, Ul.checkDataTypes)(l,v,o.opts.strictNumbers,Ul.DataType.Wrong),b=e.const("indices",(0, _e._)`{}`);e.for((0, _e._)`;${m}--;`,()=>{e.let(v,(0, _e._)`${t}[${m}]`),e.if(E,(0, _e._)`continue`),l.length>1&&e.if((0, _e._)`typeof ${v} == "string"`,(0, _e._)`${v} += "_"`),e.if((0, _e._)`typeof ${b}[${v}] == "number"`,()=>{e.assign(g,(0, _e._)`${b}[${v}]`),n.error(),e.assign(u,false).break();}).code((0, _e._)`${b}[${v}] = ${m}`);});}function p(m,g){let v=(0, bS.useFunc)(e,wS.default),E=e.name("outer");e.label(E).for((0, _e._)`;${m}--;`,()=>e.for((0, _e._)`${g} = ${m}; ${g}--;`,()=>e.if((0, _e._)`${v}(${t}[${m}], ${t}[${g}])`,()=>{n.error(),e.assign(u,false).break(E);})));}}};zl.default=AS;});var km=C(Xl=>{Object.defineProperty(Xl,"__esModule",{value:true});var Kl=I(),PS=q(),TS=Os(),xS={message:"must be equal to constant",params:({schemaCode:n})=>(0, Kl._)`{allowedValue: ${n}}`},OS={keyword:"const",$data:true,error:xS,code(n){let{gen:e,data:t,$data:r,schemaCode:i,schema:a}=n;r||a&&typeof a=="object"?n.fail$data((0, Kl._)`!${(0, PS.useFunc)(e,TS.default)}(${t}, ${i})`):n.fail((0, Kl._)`${a} !== ${t}`);}};Xl.default=OS;});var Rm=C(Yl=>{Object.defineProperty(Yl,"__esModule",{value:true});var li=I(),FS=q(),NS=Os(),IS={message:"must be equal to one of the allowed values",params:({schemaCode:n})=>(0, li._)`{allowedValues: ${n}}`},kS={keyword:"enum",schemaType:"array",$data:true,error:IS,code(n){let{gen:e,data:t,$data:r,schema:i,schemaCode:a,it:s}=n;if(!r&&i.length===0)throw new Error("enum must have non-empty array");let o=i.length>=s.opts.loopEnum,u,l=()=>u??(u=(0, FS.useFunc)(e,NS.default)),c;if(o||r)c=e.let("valid"),n.block$data(c,h);else {if(!Array.isArray(i))throw new Error("ajv implementation error");let p=e.const("vSchema",a);c=(0, li.or)(...i.map((m,g)=>f(p,g)));}n.pass(c);function h(){e.assign(c,false),e.forOf("v",a,p=>e.if((0, li._)`${l()}(${t}, ${p})`,()=>e.assign(c,true).break()));}function f(p,m){let g=i[m];return typeof g=="object"&&g!==null?(0, li._)`${l()}(${t}, ${p}[${m}])`:(0, li._)`${t} === ${g}`}}};Yl.default=kS;});var Ql=C(Zl=>{Object.defineProperty(Zl,"__esModule",{value:true});var RS=bm(),$S=wm(),VS=Pm(),jS=Tm(),qS=xm(),LS=Om(),BS=Fm(),WS=Im(),MS=km(),GS=Rm(),JS=[RS.default,$S.default,VS.default,jS.default,qS.default,LS.default,BS.default,WS.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},MS.default,GS.default];Zl.default=JS;});var tc=C(ci=>{Object.defineProperty(ci,"__esModule",{value:true});ci.validateAdditionalItems=void 0;var bn=I(),ec=q(),HS={message:({params:{len:n}})=>(0, bn.str)`must NOT have more than ${n} items`,params:({params:{len:n}})=>(0, bn._)`{limit: ${n}}`},US={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:HS,code(n){let{parentSchema:e,it:t}=n,{items:r}=e;if(!Array.isArray(r)){(0, ec.checkStrictMode)(t,'"additionalItems" is ignored when "items" is not an array of schemas');return}$m(n,r);}};function $m(n,e){let{gen:t,schema:r,data:i,keyword:a,it:s}=n;s.items=true;let o=t.const("len",(0, bn._)`${i}.length`);if(r===false)n.setParams({len:e.length}),n.pass((0, bn._)`${o} <= ${e.length}`);else if(typeof r=="object"&&!(0, ec.alwaysValidSchema)(s,r)){let l=t.var("valid",(0, bn._)`${o} <= ${e.length}`);t.if((0, bn.not)(l),()=>u(l)),n.ok(l);}function u(l){t.forRange("i",e.length,o,c=>{n.subschema({keyword:a,dataProp:c,dataPropType:ec.Type.Num},l),s.allErrors||t.if((0, bn.not)(l),()=>t.break());});}}ci.validateAdditionalItems=$m;ci.default=US;});var nc=C(hi=>{Object.defineProperty(hi,"__esModule",{value:true});hi.validateTuple=void 0;var Vm=I(),Fs=q(),zS=Ze(),KS={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(n){let{schema:e,it:t}=n;if(Array.isArray(e))return jm(n,"additionalItems",e);t.items=true,!(0, Fs.alwaysValidSchema)(t,e)&&n.ok((0, zS.validateArray)(n));}};function jm(n,e,t=n.schema){let{gen:r,parentSchema:i,data:a,keyword:s,it:o}=n;c(i),o.opts.unevaluated&&t.length&&o.items!==true&&(o.items=Fs.mergeEvaluated.items(r,t.length,o.items));let u=r.name("valid"),l=r.const("len",(0, Vm._)`${a}.length`);t.forEach((h,f)=>{(0, Fs.alwaysValidSchema)(o,h)||(r.if((0, Vm._)`${l} > ${f}`,()=>n.subschema({keyword:s,schemaProp:f,dataProp:f},u)),n.ok(u));});function c(h){let{opts:f,errSchemaPath:p}=o,m=t.length,g=m===h.minItems&&(m===h.maxItems||h[e]===false);if(f.strictTuples&&!g){let v=`"${s}" is ${m}-tuple, but minItems or maxItems/${e} are not specified or different at path "${p}"`;(0, Fs.checkStrictMode)(o,v,f.strictTuples);}}}hi.validateTuple=jm;hi.default=KS;});var qm=C(rc=>{Object.defineProperty(rc,"__esModule",{value:true});var XS=nc(),YS={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:n=>(0, XS.validateTuple)(n,"items")};rc.default=YS;});var Bm=C(ic=>{Object.defineProperty(ic,"__esModule",{value:true});var Lm=I(),ZS=q(),QS=Ze(),eb=tc(),tb={message:({params:{len:n}})=>(0, Lm.str)`must NOT have more than ${n} items`,params:({params:{len:n}})=>(0, Lm._)`{limit: ${n}}`},nb={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:tb,code(n){let{schema:e,parentSchema:t,it:r}=n,{prefixItems:i}=t;r.items=true,!(0, ZS.alwaysValidSchema)(r,e)&&(i?(0, eb.validateAdditionalItems)(n,i):n.ok((0, QS.validateArray)(n)));}};ic.default=nb;});var Wm=C(sc=>{Object.defineProperty(sc,"__esModule",{value:true});var et=I(),Ns=q(),rb={message:({params:{min:n,max:e}})=>e===void 0?(0, et.str)`must contain at least ${n} valid item(s)`:(0, et.str)`must contain at least ${n} and no more than ${e} valid item(s)`,params:({params:{min:n,max:e}})=>e===void 0?(0, et._)`{minContains: ${n}}`:(0, et._)`{minContains: ${n}, maxContains: ${e}}`},ib={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:true,error:rb,code(n){let{gen:e,schema:t,parentSchema:r,data:i,it:a}=n,s,o,{minContains:u,maxContains:l}=r;a.opts.next?(s=u===void 0?1:u,o=l):s=1;let c=e.const("len",(0, et._)`${i}.length`);if(n.setParams({min:s,max:o}),o===void 0&&s===0){(0, Ns.checkStrictMode)(a,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(o!==void 0&&s>o){(0, Ns.checkStrictMode)(a,'"minContains" > "maxContains" is always invalid'),n.fail();return}if((0, Ns.alwaysValidSchema)(a,t)){let g=(0, et._)`${c} >= ${s}`;o!==void 0&&(g=(0, et._)`${g} && ${c} <= ${o}`),n.pass(g);return}a.items=true;let h=e.name("valid");o===void 0&&s===1?p(h,()=>e.if(h,()=>e.break())):s===0?(e.let(h,true),o!==void 0&&e.if((0, et._)`${i}.length > 0`,f)):(e.let(h,false),f()),n.result(h,()=>n.reset());function f(){let g=e.name("_valid"),v=e.let("count",0);p(g,()=>e.if(g,()=>m(v)));}function p(g,v){e.forRange("i",0,c,E=>{n.subschema({keyword:"contains",dataProp:E,dataPropType:Ns.Type.Num,compositeRule:true},g),v();});}function m(g){e.code((0, et._)`${g}++`),o===void 0?e.if((0, et._)`${g} >= ${s}`,()=>e.assign(h,true).break()):(e.if((0, et._)`${g} > ${o}`,()=>e.assign(h,false).break()),s===1?e.assign(h,true):e.if((0, et._)`${g} >= ${s}`,()=>e.assign(h,true)));}}};sc.default=ib;});var Is=C(Ct=>{Object.defineProperty(Ct,"__esModule",{value:true});Ct.validateSchemaDeps=Ct.validatePropertyDeps=Ct.error=void 0;var ac=I(),sb=q(),di=Ze();Ct.error={message:({params:{property:n,depsCount:e,deps:t}})=>{let r=e===1?"property":"properties";return (0, ac.str)`must have ${r} ${t} when property ${n} is present`},params:({params:{property:n,depsCount:e,deps:t,missingProperty:r}})=>(0, ac._)`{property: ${n},
6
6
  missingProperty: ${r},
7
7
  depsCount: ${e},
8
- deps: ${t}}`};var ab={keyword:"dependencies",type:"object",schemaType:"object",error:Ct.error,code(n){let[e,t]=ob(n);Mm(n,e),Gm(n,t);}};function ob({schema:n}){let e={},t={};for(let r in n){if(r==="__proto__")continue;let i=Array.isArray(n[r])?e:t;i[r]=n[r];}return [e,t]}function Mm(n,e=n.schema){let{gen:t,data:r,it:i}=n;if(Object.keys(e).length===0)return;let a=t.let("missing");for(let s in e){let o=e[s];if(o.length===0)continue;let u=(0, di.propertyInData)(t,r,s,i.opts.ownProperties);n.setParams({property:s,depsCount:o.length,deps:o.join(", ")}),i.allErrors?t.if(u,()=>{for(let l of o)(0, di.checkReportMissingProp)(n,l);}):(t.if((0, ac._)`${u} && (${(0, di.checkMissingProp)(n,o,a)})`),(0, di.reportMissingProp)(n,a),t.else());}}Ct.validatePropertyDeps=Mm;function Gm(n,e=n.schema){let{gen:t,data:r,keyword:i,it:a}=n,s=t.name("valid");for(let o in e)(0, sb.alwaysValidSchema)(a,e[o])||(t.if((0, di.propertyInData)(t,r,o,a.opts.ownProperties),()=>{let u=n.subschema({keyword:i,schemaProp:o},s);n.mergeValidEvaluated(u,s);},()=>t.var(s,true)),n.ok(s));}Ct.validateSchemaDeps=Gm;Ct.default=ab;});var Hm=C(oc=>{Object.defineProperty(oc,"__esModule",{value:true});var Jm=I(),ub=q(),lb={message:"property name must be valid",params:({params:n})=>(0, Jm._)`{propertyName: ${n.propertyName}}`},cb={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:lb,code(n){let{gen:e,schema:t,data:r,it:i}=n;if((0, ub.alwaysValidSchema)(i,t))return;let a=e.name("valid");e.forIn("key",r,s=>{n.setParams({propertyName:s}),n.subschema({keyword:"propertyNames",data:s,dataTypes:["string"],propertyName:s,compositeRule:true},a),e.if((0, Jm.not)(a),()=>{n.error(true),i.allErrors||e.break();});}),n.ok(a);}};oc.default=cb;});var lc=C(uc=>{Object.defineProperty(uc,"__esModule",{value:true});var ks=Ze(),dt=I(),hb=Ye(),Rs=q(),db={message:"must NOT have additional properties",params:({params:n})=>(0, dt._)`{additionalProperty: ${n.additionalProperty}}`},fb={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:true,trackErrors:true,error:db,code(n){let{gen:e,schema:t,parentSchema:r,data:i,errsCount:a,it:s}=n;if(!a)throw new Error("ajv implementation error");let{allErrors:o,opts:u}=s;if(s.props=true,u.removeAdditional!=="all"&&(0, Rs.alwaysValidSchema)(s,t))return;let l=(0, ks.allSchemaProperties)(r.properties),c=(0, ks.allSchemaProperties)(r.patternProperties);h(),n.ok((0, dt._)`${a} === ${hb.default.errors}`);function h(){e.forIn("key",i,v=>{!l.length&&!c.length?m(v):e.if(f(v),()=>m(v));});}function f(v){let E;if(l.length>8){let b=(0, Rs.schemaRefOrVal)(s,r.properties,"properties");E=(0, ks.isOwnProperty)(e,b,v);}else l.length?E=(0, dt.or)(...l.map(b=>(0, dt._)`${v} === ${b}`)):E=dt.nil;return c.length&&(E=(0, dt.or)(E,...c.map(b=>(0, dt._)`${(0, ks.usePattern)(n,b)}.test(${v})`))),(0, dt.not)(E)}function p(v){e.code((0, dt._)`delete ${i}[${v}]`);}function m(v){if(u.removeAdditional==="all"||u.removeAdditional&&t===false){p(v);return}if(t===false){n.setParams({additionalProperty:v}),n.error(),o||e.break();return}if(typeof t=="object"&&!(0, Rs.alwaysValidSchema)(s,t)){let E=e.name("valid");u.removeAdditional==="failing"?(g(v,E,false),e.if((0, dt.not)(E),()=>{n.reset(),p(v);})):(g(v,E),o||e.if((0, dt.not)(E),()=>e.break()));}}function g(v,E,b){let d={keyword:"additionalProperties",dataProp:v,dataPropType:Rs.Type.Str};b===false&&Object.assign(d,{compositeRule:true,createErrors:false,allErrors:false}),n.subschema(d,E);}}};uc.default=fb;});var Km=C(hc=>{Object.defineProperty(hc,"__esModule",{value:true});var pb=zn(),Um=Ze(),cc=q(),zm=lc(),mb={keyword:"properties",type:"object",schemaType:"object",code(n){let{gen:e,schema:t,parentSchema:r,data:i,it:a}=n;a.opts.removeAdditional==="all"&&r.additionalProperties===void 0&&zm.default.code(new pb.KeywordCxt(a,zm.default,"additionalProperties"));let s=(0, Um.allSchemaProperties)(t);for(let h of s)a.definedProperties.add(h);a.opts.unevaluated&&s.length&&a.props!==true&&(a.props=cc.mergeEvaluated.props(e,(0, cc.toHash)(s),a.props));let o=s.filter(h=>!(0, cc.alwaysValidSchema)(a,t[h]));if(o.length===0)return;let u=e.name("valid");for(let h of o)l(h)?c(h):(e.if((0, Um.propertyInData)(e,i,h,a.opts.ownProperties)),c(h),a.allErrors||e.else().var(u,true),e.endIf()),n.it.definedProperties.add(h),n.ok(u);function l(h){return a.opts.useDefaults&&!a.compositeRule&&t[h].default!==void 0}function c(h){n.subschema({keyword:"properties",schemaProp:h,dataProp:h},u);}}};hc.default=mb;});var Qm=C(dc=>{Object.defineProperty(dc,"__esModule",{value:true});var Xm=Ze(),$s=I(),Ym=q(),Zm=q(),gb={keyword:"patternProperties",type:"object",schemaType:"object",code(n){let{gen:e,schema:t,data:r,parentSchema:i,it:a}=n,{opts:s}=a,o=(0, Xm.allSchemaProperties)(t),u=o.filter(g=>(0, Ym.alwaysValidSchema)(a,t[g]));if(o.length===0||u.length===o.length&&(!a.opts.unevaluated||a.props===true))return;let l=s.strictSchema&&!s.allowMatchingProperties&&i.properties,c=e.name("valid");a.props!==true&&!(a.props instanceof $s.Name)&&(a.props=(0, Zm.evaluatedPropsToName)(e,a.props));let{props:h}=a;f();function f(){for(let g of o)l&&p(g),a.allErrors?m(g):(e.var(c,true),m(g),e.if(c));}function p(g){for(let v in l)new RegExp(g).test(v)&&(0, Ym.checkStrictMode)(a,`property ${v} matches pattern ${g} (use allowMatchingProperties)`);}function m(g){e.forIn("key",r,v=>{e.if((0, $s._)`${(0, Xm.usePattern)(n,g)}.test(${v})`,()=>{let E=u.includes(g);E||n.subschema({keyword:"patternProperties",schemaProp:g,dataProp:v,dataPropType:Zm.Type.Str},c),a.opts.unevaluated&&h!==true?e.assign((0, $s._)`${h}[${v}]`,true):!E&&!a.allErrors&&e.if((0, $s.not)(c),()=>e.break());});});}}};dc.default=gb;});var eg=C(fc=>{Object.defineProperty(fc,"__esModule",{value:true});var yb=q(),Cb={keyword:"not",schemaType:["object","boolean"],trackErrors:true,code(n){let{gen:e,schema:t,it:r}=n;if((0, yb.alwaysValidSchema)(r,t)){n.fail();return}let i=e.name("valid");n.subschema({keyword:"not",compositeRule:true,createErrors:false,allErrors:false},i),n.failResult(i,()=>n.reset(),()=>n.error());},error:{message:"must NOT be valid"}};fc.default=Cb;});var tg=C(pc=>{Object.defineProperty(pc,"__esModule",{value:true});var vb=Ze(),Eb={keyword:"anyOf",schemaType:"array",trackErrors:true,code:vb.validateUnion,error:{message:"must match a schema in anyOf"}};pc.default=Eb;});var ng=C(mc=>{Object.defineProperty(mc,"__esModule",{value:true});var Vs=I(),_b=q(),Sb={message:"must match exactly one schema in oneOf",params:({params:n})=>(0, Vs._)`{passingSchemas: ${n.passing}}`},bb={keyword:"oneOf",schemaType:"array",trackErrors:true,error:Sb,code(n){let{gen:e,schema:t,parentSchema:r,it:i}=n;if(!Array.isArray(t))throw new Error("ajv implementation error");if(i.opts.discriminator&&r.discriminator)return;let a=t,s=e.let("valid",false),o=e.let("passing",null),u=e.name("_valid");n.setParams({passing:o}),e.block(l),n.result(s,()=>n.reset(),()=>n.error(true));function l(){a.forEach((c,h)=>{let f;(0, _b.alwaysValidSchema)(i,c)?e.var(u,true):f=n.subschema({keyword:"oneOf",schemaProp:h,compositeRule:true},u),h>0&&e.if((0, Vs._)`${u} && ${s}`).assign(s,false).assign(o,(0, Vs._)`[${o}, ${h}]`).else(),e.if(u,()=>{e.assign(s,true),e.assign(o,h),f&&n.mergeEvaluated(f,Vs.Name);});});}}};mc.default=bb;});var rg=C(gc=>{Object.defineProperty(gc,"__esModule",{value:true});var Db=q(),wb={keyword:"allOf",schemaType:"array",code(n){let{gen:e,schema:t,it:r}=n;if(!Array.isArray(t))throw new Error("ajv implementation error");let i=e.name("valid");t.forEach((a,s)=>{if((0, Db.alwaysValidSchema)(r,a))return;let o=n.subschema({keyword:"allOf",schemaProp:s},i);n.ok(i),n.mergeEvaluated(o);});}};gc.default=wb;});var ag=C(yc=>{Object.defineProperty(yc,"__esModule",{value:true});var js=I(),sg=q(),Ab={message:({params:n})=>(0, js.str)`must match "${n.ifClause}" schema`,params:({params:n})=>(0, js._)`{failingKeyword: ${n.ifClause}}`},Pb={keyword:"if",schemaType:["object","boolean"],trackErrors:true,error:Ab,code(n){let{gen:e,parentSchema:t,it:r}=n;t.then===void 0&&t.else===void 0&&(0, sg.checkStrictMode)(r,'"if" without "then" and "else" is ignored');let i=ig(r,"then"),a=ig(r,"else");if(!i&&!a)return;let s=e.let("valid",true),o=e.name("_valid");if(u(),n.reset(),i&&a){let c=e.let("ifClause");n.setParams({ifClause:c}),e.if(o,l("then",c),l("else",c));}else i?e.if(o,l("then")):e.if((0, js.not)(o),l("else"));n.pass(s,()=>n.error(true));function u(){let c=n.subschema({keyword:"if",compositeRule:true,createErrors:false,allErrors:false},o);n.mergeEvaluated(c);}function l(c,h){return ()=>{let f=n.subschema({keyword:c},o);e.assign(s,o),n.mergeValidEvaluated(f,s),h?e.assign(h,(0, js._)`${c}`):n.setParams({ifClause:c});}}}};function ig(n,e){let t=n.schema[e];return t!==void 0&&!(0, sg.alwaysValidSchema)(n,t)}yc.default=Pb;});var og=C(Cc=>{Object.defineProperty(Cc,"__esModule",{value:true});var Tb=q(),Ob={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:n,parentSchema:e,it:t}){e.if===void 0&&(0, Tb.checkStrictMode)(t,`"${n}" without "if" is ignored`);}};Cc.default=Ob;});var Ec=C(vc=>{Object.defineProperty(vc,"__esModule",{value:true});var xb=tc(),Fb=qm(),Nb=nc(),Ib=Bm(),kb=Wm(),Rb=Is(),$b=Hm(),Vb=lc(),jb=Km(),qb=Qm(),Lb=eg(),Bb=tg(),Wb=ng(),Mb=rg(),Gb=ag(),Jb=og();function Hb(n=false){let e=[Lb.default,Bb.default,Wb.default,Mb.default,Gb.default,Jb.default,$b.default,Vb.default,Rb.default,jb.default,qb.default];return n?e.push(Fb.default,Ib.default):e.push(xb.default,Nb.default),e.push(kb.default),e}vc.default=Hb;});var ug=C(_c=>{Object.defineProperty(_c,"__esModule",{value:true});var he=I(),Ub={message:({schemaCode:n})=>(0, he.str)`must match format "${n}"`,params:({schemaCode:n})=>(0, he._)`{format: ${n}}`},zb={keyword:"format",type:["number","string"],schemaType:"string",$data:true,error:Ub,code(n,e){let{gen:t,data:r,$data:i,schema:a,schemaCode:s,it:o}=n,{opts:u,errSchemaPath:l,schemaEnv:c,self:h}=o;if(!u.validateFormats)return;i?f():p();function f(){let m=t.scopeValue("formats",{ref:h.formats,code:u.code.formats}),g=t.const("fDef",(0, he._)`${m}[${s}]`),v=t.let("fType"),E=t.let("format");t.if((0, he._)`typeof ${g} == "object" && !(${g} instanceof RegExp)`,()=>t.assign(v,(0, he._)`${g}.type || "string"`).assign(E,(0, he._)`${g}.validate`),()=>t.assign(v,(0, he._)`"string"`).assign(E,g)),n.fail$data((0, he.or)(b(),d()));function b(){return u.strictSchema===false?he.nil:(0, he._)`${s} && !${E}`}function d(){let _=c.$async?(0, he._)`(${g}.async ? await ${E}(${r}) : ${E}(${r}))`:(0, he._)`${E}(${r})`,y=(0, he._)`(typeof ${E} == "function" ? ${_} : ${E}.test(${r}))`;return (0, he._)`${E} && ${E} !== true && ${v} === ${e} && !${y}`}}function p(){let m=h.formats[a];if(!m){b();return}if(m===true)return;let[g,v,E]=d(m);g===e&&n.pass(_());function b(){if(u.strictSchema===false){h.logger.warn(y());return}throw new Error(y());function y(){return `unknown format "${a}" ignored in schema at path "${l}"`}}function d(y){let S=y instanceof RegExp?(0, he.regexpCode)(y):u.code.formats?(0, he._)`${u.code.formats}${(0, he.getProperty)(a)}`:void 0,w=t.scopeValue("formats",{key:a,ref:y,code:S});return typeof y=="object"&&!(y instanceof RegExp)?[y.type||"string",y.validate,(0, he._)`${w}.validate`]:["string",y,w]}function _(){if(typeof m=="object"&&!(m instanceof RegExp)&&m.async){if(!c.$async)throw new Error("async format in sync schema");return (0, he._)`await ${E}(${r})`}return typeof v=="function"?(0, he._)`${E}(${r})`:(0, he._)`${E}.test(${r})`}}}};_c.default=zb;});var bc=C(Sc=>{Object.defineProperty(Sc,"__esModule",{value:true});var Kb=ug(),Xb=[Kb.default];Sc.default=Xb;});var Dc=C(er=>{Object.defineProperty(er,"__esModule",{value:true});er.contentVocabulary=er.metadataVocabulary=void 0;er.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];er.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"];});var cg=C(wc=>{Object.defineProperty(wc,"__esModule",{value:true});var Yb=Vl(),Zb=Ql(),Qb=Ec(),eD=bc(),lg=Dc(),tD=[Yb.default,Zb.default,(0, Qb.default)(),eD.default,lg.metadataVocabulary,lg.contentVocabulary];wc.default=tD;});var dg=C(qs=>{Object.defineProperty(qs,"__esModule",{value:true});qs.DiscrError=void 0;var hg;(function(n){n.Tag="tag",n.Mapping="mapping";})(hg||(qs.DiscrError=hg={}));});var Tc=C(Pc=>{Object.defineProperty(Pc,"__esModule",{value:true});var tr=I(),Ac=dg(),fg=Zr(),nD=Kn(),rD=q(),iD={message:({params:{discrError:n,tagName:e}})=>n===Ac.DiscrError.Tag?`tag "${e}" must be string`:`value of tag "${e}" must be in oneOf`,params:({params:{discrError:n,tag:e,tagName:t}})=>(0, tr._)`{error: ${n}, tag: ${t}, tagValue: ${e}}`},sD={keyword:"discriminator",type:"object",schemaType:"object",error:iD,code(n){let{gen:e,data:t,schema:r,parentSchema:i,it:a}=n,{oneOf:s}=i;if(!a.opts.discriminator)throw new Error("discriminator: requires discriminator option");let o=r.propertyName;if(typeof o!="string")throw new Error("discriminator: requires propertyName");if(r.mapping)throw new Error("discriminator: mapping is not supported");if(!s)throw new Error("discriminator: requires oneOf keyword");let u=e.let("valid",false),l=e.const("tag",(0, tr._)`${t}${(0, tr.getProperty)(o)}`);e.if((0, tr._)`typeof ${l} == "string"`,()=>c(),()=>n.error(false,{discrError:Ac.DiscrError.Tag,tag:l,tagName:o})),n.ok(u);function c(){let p=f();e.if(false);for(let m in p)e.elseIf((0, tr._)`${l} === ${m}`),e.assign(u,h(p[m]));e.else(),n.error(false,{discrError:Ac.DiscrError.Mapping,tag:l,tagName:o}),e.endIf();}function h(p){let m=e.name("valid"),g=n.subschema({keyword:"oneOf",schemaProp:p},m);return n.mergeEvaluated(g,tr.Name),m}function f(){var p;let m={},g=E(i),v=true;for(let _=0;_<s.length;_++){let y=s[_];if(y?.$ref&&!(0, rD.schemaHasRulesButRef)(y,a.self.RULES)){let w=y.$ref;if(y=fg.resolveRef.call(a.self,a.schemaEnv.root,a.baseId,w),y instanceof fg.SchemaEnv&&(y=y.schema),y===void 0)throw new nD.default(a.opts.uriResolver,a.baseId,w)}let S=(p=y?.properties)===null||p===void 0?void 0:p[o];if(typeof S!="object")throw new Error(`discriminator: oneOf subschemas (or referenced schemas) must have "properties/${o}"`);v=v&&(g||E(y)),b(S,_);}if(!v)throw new Error(`discriminator: "${o}" must be required`);return m;function E({required:_}){return Array.isArray(_)&&_.includes(o)}function b(_,y){if(_.const)d(_.const,y);else if(_.enum)for(let S of _.enum)d(S,y);else throw new Error(`discriminator: "properties/${o}" must have "const" or "enum"`)}function d(_,y){if(typeof _!="string"||_ in m)throw new Error(`discriminator: "${o}" values must be unique strings`);m[_]=y;}}}};Pc.default=sD;});var pg=C((uN,aD)=>{aD.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:true,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:true,readOnly:{type:"boolean",default:false},examples:{type:"array",items:true},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:true},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:false},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:true,enum:{type:"array",items:true,minItems:1,uniqueItems:true},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:true}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:true};});var gg=C((ie,Oc)=>{Object.defineProperty(ie,"__esModule",{value:true});ie.MissingRefError=ie.ValidationError=ie.CodeGen=ie.Name=ie.nil=ie.stringify=ie.str=ie._=ie.KeywordCxt=ie.Ajv=void 0;var oD=kl(),uD=cg(),lD=Tc(),mg=pg(),cD=["/properties"],Ls="http://json-schema.org/draft-07/schema",nr=class extends oD.default{_addVocabularies(){super._addVocabularies(),uD.default.forEach(e=>this.addVocabulary(e)),this.opts.discriminator&&this.addKeyword(lD.default);}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let e=this.opts.$data?this.$dataMetaSchema(mg,cD):mg;this.addMetaSchema(e,Ls,false),this.refs["http://json-schema.org/schema"]=Ls;}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(Ls)?Ls:void 0)}};ie.Ajv=nr;Oc.exports=ie=nr;Oc.exports.Ajv=nr;Object.defineProperty(ie,"__esModule",{value:true});ie.default=nr;var hD=zn();Object.defineProperty(ie,"KeywordCxt",{enumerable:true,get:function(){return hD.KeywordCxt}});var rr=I();Object.defineProperty(ie,"_",{enumerable:true,get:function(){return rr._}});Object.defineProperty(ie,"str",{enumerable:true,get:function(){return rr.str}});Object.defineProperty(ie,"stringify",{enumerable:true,get:function(){return rr.stringify}});Object.defineProperty(ie,"nil",{enumerable:true,get:function(){return rr.nil}});Object.defineProperty(ie,"Name",{enumerable:true,get:function(){return rr.Name}});Object.defineProperty(ie,"CodeGen",{enumerable:true,get:function(){return rr.CodeGen}});var dD=Yr();Object.defineProperty(ie,"ValidationError",{enumerable:true,get:function(){return dD.default}});var fD=Kn();Object.defineProperty(ie,"MissingRefError",{enumerable:true,get:function(){return fD.default}});});var Fc=C(fi=>{Object.defineProperty(fi,"__esModule",{value:true});fi.dynamicAnchor=void 0;var xc=I(),pD=Ye(),yg=Zr(),mD=Ps(),gD={keyword:"$dynamicAnchor",schemaType:"string",code:n=>Cg(n,n.schema)};function Cg(n,e){let{gen:t,it:r}=n;r.schemaEnv.root.dynamicAnchors[e]=true;let i=(0, xc._)`${pD.default.dynamicAnchors}${(0, xc.getProperty)(e)}`,a=r.errSchemaPath==="#"?r.validateName:yD(n);t.if((0, xc._)`!${i}`,()=>t.assign(i,a));}fi.dynamicAnchor=Cg;function yD(n){let{schemaEnv:e,schema:t,self:r}=n.it,{root:i,baseId:a,localRefs:s,meta:o}=e.root,{schemaId:u}=r.opts,l=new yg.SchemaEnv({schema:t,schemaId:u,root:i,baseId:a,localRefs:s,meta:o});return yg.compileSchema.call(r,l),(0, mD.getValidate)(n,l)}fi.default=gD;});var Nc=C(pi=>{Object.defineProperty(pi,"__esModule",{value:true});pi.dynamicRef=void 0;var vg=I(),CD=Ye(),Eg=Ps(),vD={keyword:"$dynamicRef",schemaType:"string",code:n=>_g(n,n.schema)};function _g(n,e){let{gen:t,keyword:r,it:i}=n;if(e[0]!=="#")throw new Error(`"${r}" only supports hash fragment reference`);let a=e.slice(1);if(i.allErrors)s();else {let u=t.let("valid",false);s(u),n.ok(u);}function s(u){if(i.schemaEnv.root.dynamicAnchors[a]){let l=t.let("_v",(0, vg._)`${CD.default.dynamicAnchors}${(0, vg.getProperty)(a)}`);t.if(l,o(l,u),o(i.validateName,u));}else o(i.validateName,u)();}function o(u,l){return l?()=>t.block(()=>{(0, Eg.callRef)(n,u),t.let(l,true);}):()=>(0, Eg.callRef)(n,u)}}pi.dynamicRef=_g;pi.default=vD;});var Sg=C(Ic=>{Object.defineProperty(Ic,"__esModule",{value:true});var ED=Fc(),_D=q(),SD={keyword:"$recursiveAnchor",schemaType:"boolean",code(n){n.schema?(0, ED.dynamicAnchor)(n,""):(0, _D.checkStrictMode)(n.it,"$recursiveAnchor: false is ignored");}};Ic.default=SD;});var bg=C(kc=>{Object.defineProperty(kc,"__esModule",{value:true});var bD=Nc(),DD={keyword:"$recursiveRef",schemaType:"string",code:n=>(0, bD.dynamicRef)(n,n.schema)};kc.default=DD;});var Dg=C(Rc=>{Object.defineProperty(Rc,"__esModule",{value:true});var wD=Fc(),AD=Nc(),PD=Sg(),TD=bg(),OD=[wD.default,AD.default,PD.default,TD.default];Rc.default=OD;});var Ag=C($c=>{Object.defineProperty($c,"__esModule",{value:true});var wg=Is(),xD={keyword:"dependentRequired",type:"object",schemaType:"object",error:wg.error,code:n=>(0, wg.validatePropertyDeps)(n)};$c.default=xD;});var Pg=C(Vc=>{Object.defineProperty(Vc,"__esModule",{value:true});var FD=Is(),ND={keyword:"dependentSchemas",type:"object",schemaType:"object",code:n=>(0, FD.validateSchemaDeps)(n)};Vc.default=ND;});var Tg=C(jc=>{Object.defineProperty(jc,"__esModule",{value:true});var ID=q(),kD={keyword:["maxContains","minContains"],type:"array",schemaType:"number",code({keyword:n,parentSchema:e,it:t}){e.contains===void 0&&(0, ID.checkStrictMode)(t,`"${n}" without "contains" is ignored`);}};jc.default=kD;});var Og=C(qc=>{Object.defineProperty(qc,"__esModule",{value:true});var RD=Ag(),$D=Pg(),VD=Tg(),jD=[RD.default,$D.default,VD.default];qc.default=jD;});var Fg=C(Lc=>{Object.defineProperty(Lc,"__esModule",{value:true});var Kt=I(),xg=q(),qD=Ye(),LD={message:"must NOT have unevaluated properties",params:({params:n})=>(0, Kt._)`{unevaluatedProperty: ${n.unevaluatedProperty}}`},BD={keyword:"unevaluatedProperties",type:"object",schemaType:["boolean","object"],trackErrors:true,error:LD,code(n){let{gen:e,schema:t,data:r,errsCount:i,it:a}=n;if(!i)throw new Error("ajv implementation error");let{allErrors:s,props:o}=a;o instanceof Kt.Name?e.if((0, Kt._)`${o} !== true`,()=>e.forIn("key",r,h=>e.if(l(o,h),()=>u(h)))):o!==true&&e.forIn("key",r,h=>o===void 0?u(h):e.if(c(o,h),()=>u(h))),a.props=true,n.ok((0, Kt._)`${i} === ${qD.default.errors}`);function u(h){if(t===false){n.setParams({unevaluatedProperty:h}),n.error(),s||e.break();return}if(!(0, xg.alwaysValidSchema)(a,t)){let f=e.name("valid");n.subschema({keyword:"unevaluatedProperties",dataProp:h,dataPropType:xg.Type.Str},f),s||e.if((0, Kt.not)(f),()=>e.break());}}function l(h,f){return (0, Kt._)`!${h} || !${h}[${f}]`}function c(h,f){let p=[];for(let m in h)h[m]===true&&p.push((0, Kt._)`${f} !== ${m}`);return (0, Kt.and)(...p)}}};Lc.default=BD;});var Ig=C(Bc=>{Object.defineProperty(Bc,"__esModule",{value:true});var Dn=I(),Ng=q(),WD={message:({params:{len:n}})=>(0, Dn.str)`must NOT have more than ${n} items`,params:({params:{len:n}})=>(0, Dn._)`{limit: ${n}}`},MD={keyword:"unevaluatedItems",type:"array",schemaType:["boolean","object"],error:WD,code(n){let{gen:e,schema:t,data:r,it:i}=n,a=i.items||0;if(a===true)return;let s=e.const("len",(0, Dn._)`${r}.length`);if(t===false)n.setParams({len:a}),n.fail((0, Dn._)`${s} > ${a}`);else if(typeof t=="object"&&!(0, Ng.alwaysValidSchema)(i,t)){let u=e.var("valid",(0, Dn._)`${s} <= ${a}`);e.if((0, Dn.not)(u),()=>o(u,a)),n.ok(u);}i.items=true;function o(u,l){e.forRange("i",l,s,c=>{n.subschema({keyword:"unevaluatedItems",dataProp:c,dataPropType:Ng.Type.Num},u),i.allErrors||e.if((0, Dn.not)(u),()=>e.break());});}}};Bc.default=MD;});var kg=C(Wc=>{Object.defineProperty(Wc,"__esModule",{value:true});var GD=Fg(),JD=Ig(),HD=[GD.default,JD.default];Wc.default=HD;});var $g=C(Mc=>{Object.defineProperty(Mc,"__esModule",{value:true});var UD=Vl(),zD=Ql(),KD=Ec(),XD=Dg(),YD=Og(),ZD=kg(),QD=bc(),Rg=Dc(),ew=[XD.default,UD.default,zD.default,(0, KD.default)(true),QD.default,Rg.metadataVocabulary,Rg.contentVocabulary,YD.default,ZD.default];Mc.default=ew;});var Vg=C((SN,tw)=>{tw.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/schema",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/core":true,"https://json-schema.org/draft/2020-12/vocab/applicator":true,"https://json-schema.org/draft/2020-12/vocab/unevaluated":true,"https://json-schema.org/draft/2020-12/vocab/validation":true,"https://json-schema.org/draft/2020-12/vocab/meta-data":true,"https://json-schema.org/draft/2020-12/vocab/format-annotation":true,"https://json-schema.org/draft/2020-12/vocab/content":true},$dynamicAnchor:"meta",title:"Core and Validation specifications meta-schema",allOf:[{$ref:"meta/core"},{$ref:"meta/applicator"},{$ref:"meta/unevaluated"},{$ref:"meta/validation"},{$ref:"meta/meta-data"},{$ref:"meta/format-annotation"},{$ref:"meta/content"}],type:["object","boolean"],$comment:"This meta-schema also defines keywords that have appeared in previous drafts in order to prevent incompatible extensions as they remain in common use.",properties:{definitions:{$comment:'"definitions" has been replaced by "$defs".',type:"object",additionalProperties:{$dynamicRef:"#meta"},deprecated:true,default:{}},dependencies:{$comment:'"dependencies" has been split and replaced by "dependentSchemas" and "dependentRequired" in order to serve their differing semantics.',type:"object",additionalProperties:{anyOf:[{$dynamicRef:"#meta"},{$ref:"meta/validation#/$defs/stringArray"}]},deprecated:true,default:{}},$recursiveAnchor:{$comment:'"$recursiveAnchor" has been replaced by "$dynamicAnchor".',$ref:"meta/core#/$defs/anchorString",deprecated:true},$recursiveRef:{$comment:'"$recursiveRef" has been replaced by "$dynamicRef".',$ref:"meta/core#/$defs/uriReferenceString",deprecated:true}}};});var jg=C((bN,nw)=>{nw.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/applicator",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/applicator":true},$dynamicAnchor:"meta",title:"Applicator vocabulary meta-schema",type:["object","boolean"],properties:{prefixItems:{$ref:"#/$defs/schemaArray"},items:{$dynamicRef:"#meta"},contains:{$dynamicRef:"#meta"},additionalProperties:{$dynamicRef:"#meta"},properties:{type:"object",additionalProperties:{$dynamicRef:"#meta"},default:{}},patternProperties:{type:"object",additionalProperties:{$dynamicRef:"#meta"},propertyNames:{format:"regex"},default:{}},dependentSchemas:{type:"object",additionalProperties:{$dynamicRef:"#meta"},default:{}},propertyNames:{$dynamicRef:"#meta"},if:{$dynamicRef:"#meta"},then:{$dynamicRef:"#meta"},else:{$dynamicRef:"#meta"},allOf:{$ref:"#/$defs/schemaArray"},anyOf:{$ref:"#/$defs/schemaArray"},oneOf:{$ref:"#/$defs/schemaArray"},not:{$dynamicRef:"#meta"}},$defs:{schemaArray:{type:"array",minItems:1,items:{$dynamicRef:"#meta"}}}};});var qg=C((DN,rw)=>{rw.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/unevaluated",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/unevaluated":true},$dynamicAnchor:"meta",title:"Unevaluated applicator vocabulary meta-schema",type:["object","boolean"],properties:{unevaluatedItems:{$dynamicRef:"#meta"},unevaluatedProperties:{$dynamicRef:"#meta"}}};});var Lg=C((wN,iw)=>{iw.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/content",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/content":true},$dynamicAnchor:"meta",title:"Content vocabulary meta-schema",type:["object","boolean"],properties:{contentEncoding:{type:"string"},contentMediaType:{type:"string"},contentSchema:{$dynamicRef:"#meta"}}};});var Bg=C((AN,sw)=>{sw.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/core",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/core":true},$dynamicAnchor:"meta",title:"Core vocabulary meta-schema",type:["object","boolean"],properties:{$id:{$ref:"#/$defs/uriReferenceString",$comment:"Non-empty fragments not allowed.",pattern:"^[^#]*#?$"},$schema:{$ref:"#/$defs/uriString"},$ref:{$ref:"#/$defs/uriReferenceString"},$anchor:{$ref:"#/$defs/anchorString"},$dynamicRef:{$ref:"#/$defs/uriReferenceString"},$dynamicAnchor:{$ref:"#/$defs/anchorString"},$vocabulary:{type:"object",propertyNames:{$ref:"#/$defs/uriString"},additionalProperties:{type:"boolean"}},$comment:{type:"string"},$defs:{type:"object",additionalProperties:{$dynamicRef:"#meta"}}},$defs:{anchorString:{type:"string",pattern:"^[A-Za-z_][-A-Za-z0-9._]*$"},uriString:{type:"string",format:"uri"},uriReferenceString:{type:"string",format:"uri-reference"}}};});var Wg=C((PN,aw)=>{aw.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/format-annotation",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/format-annotation":true},$dynamicAnchor:"meta",title:"Format vocabulary meta-schema for annotation results",type:["object","boolean"],properties:{format:{type:"string"}}};});var Mg=C((TN,ow)=>{ow.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/meta-data",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/meta-data":true},$dynamicAnchor:"meta",title:"Meta-data vocabulary meta-schema",type:["object","boolean"],properties:{title:{type:"string"},description:{type:"string"},default:true,deprecated:{type:"boolean",default:false},readOnly:{type:"boolean",default:false},writeOnly:{type:"boolean",default:false},examples:{type:"array",items:true}}};});var Gg=C((ON,uw)=>{uw.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/validation",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/validation":true},$dynamicAnchor:"meta",title:"Validation vocabulary meta-schema",type:["object","boolean"],properties:{type:{anyOf:[{$ref:"#/$defs/simpleTypes"},{type:"array",items:{$ref:"#/$defs/simpleTypes"},minItems:1,uniqueItems:true}]},const:true,enum:{type:"array",items:true},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/$defs/nonNegativeInteger"},minLength:{$ref:"#/$defs/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},maxItems:{$ref:"#/$defs/nonNegativeInteger"},minItems:{$ref:"#/$defs/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:false},maxContains:{$ref:"#/$defs/nonNegativeInteger"},minContains:{$ref:"#/$defs/nonNegativeInteger",default:1},maxProperties:{$ref:"#/$defs/nonNegativeInteger"},minProperties:{$ref:"#/$defs/nonNegativeIntegerDefault0"},required:{$ref:"#/$defs/stringArray"},dependentRequired:{type:"object",additionalProperties:{$ref:"#/$defs/stringArray"}}},$defs:{nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{$ref:"#/$defs/nonNegativeInteger",default:0},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:true,default:[]}}};});var Jg=C(Gc=>{Object.defineProperty(Gc,"__esModule",{value:true});var lw=Vg(),cw=jg(),hw=qg(),dw=Lg(),fw=Bg(),pw=Wg(),mw=Mg(),gw=Gg(),yw=["/properties"];function Cw(n){return [lw,cw,hw,dw,fw,e(this,pw),mw,e(this,gw)].forEach(t=>this.addMetaSchema(t,void 0,false)),this;function e(t,r){return n?t.$dataMetaSchema(r,yw):r}}Gc.default=Cw;});var Hg=C((se,Hc)=>{Object.defineProperty(se,"__esModule",{value:true});se.MissingRefError=se.ValidationError=se.CodeGen=se.Name=se.nil=se.stringify=se.str=se._=se.KeywordCxt=se.Ajv2020=void 0;var vw=kl(),Ew=$g(),_w=Tc(),Sw=Jg(),Jc="https://json-schema.org/draft/2020-12/schema",ir=class extends vw.default{constructor(e={}){super({...e,dynamicRef:true,next:true,unevaluated:true});}_addVocabularies(){super._addVocabularies(),Ew.default.forEach(e=>this.addVocabulary(e)),this.opts.discriminator&&this.addKeyword(_w.default);}_addDefaultMetaSchema(){super._addDefaultMetaSchema();let{$data:e,meta:t}=this.opts;t&&(Sw.default.call(this,e),this.refs["http://json-schema.org/schema"]=Jc);}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(Jc)?Jc:void 0)}};se.Ajv2020=ir;Hc.exports=se=ir;Hc.exports.Ajv2020=ir;Object.defineProperty(se,"__esModule",{value:true});se.default=ir;var bw=zn();Object.defineProperty(se,"KeywordCxt",{enumerable:true,get:function(){return bw.KeywordCxt}});var sr=I();Object.defineProperty(se,"_",{enumerable:true,get:function(){return sr._}});Object.defineProperty(se,"str",{enumerable:true,get:function(){return sr.str}});Object.defineProperty(se,"stringify",{enumerable:true,get:function(){return sr.stringify}});Object.defineProperty(se,"nil",{enumerable:true,get:function(){return sr.nil}});Object.defineProperty(se,"Name",{enumerable:true,get:function(){return sr.Name}});Object.defineProperty(se,"CodeGen",{enumerable:true,get:function(){return sr.CodeGen}});var Dw=Yr();Object.defineProperty(se,"ValidationError",{enumerable:true,get:function(){return Dw.default}});var ww=Kn();Object.defineProperty(se,"MissingRefError",{enumerable:true,get:function(){return ww.default}});});var zc=C(Bs=>{Object.defineProperty(Bs,"__esModule",{value:true});Bs.CompilerOptions=void 0;var Uc=class{constructor(e=null,t=[],r=false,i=null,a=null){this.sourceFilename=e,this.pluginNames=t,this.countAllVisits=r,this.errorHandler=i,this.fileHandler=a;}};Bs.CompilerOptions=Uc;});var Ug=C(Ws=>{Object.defineProperty(Ws,"__esModule",{value:true});Ws.DebugSourceRange=void 0;var Kc=class{constructor(e,t,r){this.length=e,this.debugMetadata=t,this.text=r;}};Ws.DebugSourceRange=Kc;});var ar=C(Ms=>{Object.defineProperty(Ms,"__esModule",{value:true});Ms.ErrorType=void 0;var zg;(function(n){n[n.Author=0]="Author",n[n.Warning=1]="Warning",n[n.Error=2]="Error";})(zg||(Ms.ErrorType=zg={}));});var Kg=C(Gs=>{Object.defineProperty(Gs,"__esModule",{value:true});Gs.Argument=void 0;var Xc=class{constructor(e=null,t=null,r=null){this.identifier=e,this.isByReference=t,this.isDivertTarget=r;}get typeName(){return "Argument"}};Gs.Argument=Xc;});var X=C(ge=>{Object.defineProperty(ge,"__esModule",{value:true});ge.filterUndef=ge.isEquatable=ge.nullIfUndefined=ge.asINamedContentOrNull=ge.asBooleanOrThrows=ge.asNumberOrThrows=ge.asOrThrows=ge.asOrNull=void 0;function Aw(n,e){return n instanceof e?Xg(n):null}ge.asOrNull=Aw;function Pw(n,e){if(n instanceof e)return Xg(n);throw new Error(`${n} is not of type ${e}`)}ge.asOrThrows=Pw;function Tw(n){if(typeof n=="number")return n;throw new Error(`${n} is not a number`)}ge.asNumberOrThrows=Tw;function Ow(n){if(typeof n=="boolean")return n;throw new Error(`${n} is not a boolean`)}ge.asBooleanOrThrows=Ow;function xw(n){return n.hasValidName&&n.name?n:null}ge.asINamedContentOrNull=xw;function Fw(n){return typeof n>"u"?null:n}ge.nullIfUndefined=Fw;function Nw(n){return typeof n=="object"&&typeof n.Equals=="function"}ge.isEquatable=Nw;function Xg(n,e){return n}function Iw(n){return n!=null}ge.filterUndef=Iw;});var oe=C(Js=>{Object.defineProperty(Js,"__esModule",{value:true});Js.ParsedObject=void 0;var Yg=X(),Yc=class{constructor(){this._alreadyHadError=false,this._alreadyHadWarning=false,this._debugMetadata=null,this._runtimeObject=null,this.content=[],this.parent=null,this.GetType=()=>this.typeName,this.AddContent=e=>{this.content===null&&(this.content=[]);let t=Array.isArray(e)?e:[e];for(let r of t)r.hasOwnProperty("parent")&&(r.parent=this),this.content.push(r);if(!Array.isArray(e))return e},this.InsertContent=(e,t)=>(this.content===null&&(this.content=[]),t.parent=this,this.content.splice(e,0,t),t),this.Find=e=>(t=null)=>{let r=(0, Yg.asOrNull)(this,e);if(r!==null&&(t===null||t(r)===true))return r;if(this.content===null)return null;for(let i of this.content){let a=i.Find&&i.Find(e)(t);if(a)return a}return null},this.FindAll=e=>(t,r)=>{let i=Array.isArray(r)?r:[],a=(0, Yg.asOrNull)(this,e);if(a!==null&&(!t||t(a)===true)&&i.push(a),this.content===null)return [];for(let s of this.content)s.FindAll&&s.FindAll(e)(t,i);return i},this.Warning=(e,t=null)=>{this.Error(e,t,true);};}get debugMetadata(){return this._debugMetadata===null&&this.parent?this.parent.debugMetadata:this._debugMetadata}set debugMetadata(e){this._debugMetadata=e;}get hasOwnDebugMetadata(){return !!this.debugMetadata}get typeName(){return "ParsedObject"}get story(){let e=this;for(;e.parent;)e=e.parent;return e}get runtimeObject(){return this._runtimeObject||(this._runtimeObject=this.GenerateRuntimeObject(),this._runtimeObject&&(this._runtimeObject.debugMetadata=this.debugMetadata)),this._runtimeObject}set runtimeObject(e){this._runtimeObject=e;}get runtimePath(){if(!this.runtimeObject.path)throw new Error;return this.runtimeObject.path}get containerForCounting(){return this.runtimeObject}get ancestry(){let e=[],t=this.parent;for(;t;)e.push(t),t=t.parent;return e=e.reverse(),e}ResolveReferences(e){if(this.content!==null)for(let t of this.content)t.ResolveReferences(e);}Error(e,t=null,r=false){if(t===null&&(t=this),!(t._alreadyHadError&&!r||t._alreadyHadWarning&&r)){if(this.parent)this.parent.Error(e,t,r);else throw new Error(`No parent object to send error to: ${e}`);r?t._alreadyHadWarning=true:t._alreadyHadError=true;}}};Js.ParsedObject=Yc;});var Us=C(Hs=>{Object.defineProperty(Hs,"__esModule",{value:true});Hs.AuthorWarning=void 0;var kw=oe(),Zc=class extends kw.ParsedObject{constructor(e){super(),this.warningMessage=e,this.GenerateRuntimeObject=()=>(this.Warning(this.warningMessage),null);}get typeName(){return "AuthorWarning"}};Hs.AuthorWarning=Zc;});var Me=C(mi=>{Object.defineProperty(mi,"__esModule",{value:true});mi.Path=void 0;var or=class n{constructor(){if(this._components=[],this._componentsString=null,this._isRelative=false,typeof arguments[0]=="string"){let e=arguments[0];this.componentsString=e;}else if(arguments[0]instanceof n.Component&&arguments[1]instanceof n){let e=arguments[0],t=arguments[1];this._components.push(e),this._components=this._components.concat(t._components);}else if(arguments[0]instanceof Array){let e=arguments[0],t=!!arguments[1];this._components=this._components.concat(e),this._isRelative=t;}}get isRelative(){return this._isRelative}get componentCount(){return this._components.length}get head(){return this._components.length>0?this._components[0]:null}get tail(){if(this._components.length>=2){let e=this._components.slice(1,this._components.length);return new n(e)}else return n.self}get length(){return this._components.length}get lastComponent(){let e=this._components.length-1;return e>=0?this._components[e]:null}get containsNamedComponent(){for(let e=0,t=this._components.length;e<t;e++)if(!this._components[e].isIndex)return true;return false}static get self(){let e=new n;return e._isRelative=true,e}GetComponent(e){return this._components[e]}PathByAppendingPath(e){let t=new n,r=0;for(let i=0;i<e._components.length&&e._components[i].isParent;++i)r++;for(let i=0;i<this._components.length-r;++i)t._components.push(this._components[i]);for(let i=r;i<e._components.length;++i)t._components.push(e._components[i]);return t}get componentsString(){return this._componentsString==null&&(this._componentsString=this._components.join("."),this.isRelative&&(this._componentsString="."+this._componentsString)),this._componentsString}set componentsString(e){if(this._components.length=0,this._componentsString=e,this._componentsString==null||this._componentsString=="")return;this._componentsString[0]=="."&&(this._isRelative=true,this._componentsString=this._componentsString.substring(1));let t=this._componentsString.split(".");for(let r of t)/^(\-|\+)?([0-9]+|Infinity)$/.test(r)?this._components.push(new n.Component(parseInt(r))):this._components.push(new n.Component(r));}toString(){return this.componentsString}Equals(e){if(e==null||e._components.length!=this._components.length||e.isRelative!=this.isRelative)return false;for(let t=0,r=e._components.length;t<r;t++)if(!e._components[t].Equals(this._components[t]))return false;return true}PathByAppendingComponent(e){let t=new n;return t._components.push(...this._components),t._components.push(e),t}};mi.Path=or;or.parentId="^";(function(n){class e{constructor(r){this.index=-1,this.name=null,typeof r=="string"?this.name=r:this.index=r;}get isIndex(){return this.index>=0}get isParent(){return this.name==n.parentId}static ToParent(){return new e(n.parentId)}toString(){return this.isIndex?this.index.toString():this.name}Equals(r){return r!=null&&r.isIndex==this.isIndex?this.isIndex?this.index==r.index:this.name==r.name:false}}n.Component=e;})(or||(mi.Path=or={}));});var gi=C(zs=>{Object.defineProperty(zs,"__esModule",{value:true});zs.Debug=void 0;var Zg;(function(n){function e(r,i,a){t(r instanceof i,a);}n.AssertType=e;function t(r,i){if(!r)throw typeof i<"u"&&console.warn(i),console.trace&&console.trace(),new Error("")}n.Assert=t;})(Zg||(zs.Debug=Zg={}));});var Te=C(ur=>{Object.defineProperty(ur,"__esModule",{value:true});ur.throwNullException=ur.NullException=void 0;var Ks=class extends Error{};ur.NullException=Ks;function Rw(n){throw new Ks(`${n} is null or undefined`)}ur.throwNullException=Rw;});var Ge=C(Ys=>{Object.defineProperty(Ys,"__esModule",{value:true});Ys.InkObject=void 0;var lr=Me(),yi=de(),Qc=gi(),cr=X(),Xs=Te(),eh=class{constructor(){this.parent=null,this._debugMetadata=null,this._path=null;}get debugMetadata(){return this._debugMetadata===null&&this.parent?this.parent.debugMetadata:this._debugMetadata}set debugMetadata(e){this._debugMetadata=e;}get ownDebugMetadata(){return this._debugMetadata}DebugLineNumberOfPath(e){if(e===null)return null;let t=this.rootContentContainer;if(t){let r=t.ContentAtPath(e).obj;if(r){let i=r.debugMetadata;if(i!==null)return i.startLineNumber}}return null}get path(){if(this._path==null)if(this.parent==null)this._path=new lr.Path;else {let e=[],t=this,r=(0, cr.asOrNull)(t.parent,yi.Container);for(;r!==null;){let i=(0, cr.asINamedContentOrNull)(t);if(i!=null&&i.hasValidName){if(i.name===null)return (0, Xs.throwNullException)("namedChild.name");e.unshift(new lr.Path.Component(i.name));}else e.unshift(new lr.Path.Component(r.content.indexOf(t)));t=r,r=(0, cr.asOrNull)(r.parent,yi.Container);}this._path=new lr.Path(e);}return this._path}ResolvePath(e){if(e===null)return (0, Xs.throwNullException)("path");if(e.isRelative){let t=(0, cr.asOrNull)(this,yi.Container);return t===null&&(Qc.Debug.Assert(this.parent!==null,"Can't resolve relative path because we don't have a parent"),t=(0, cr.asOrNull)(this.parent,yi.Container),Qc.Debug.Assert(t!==null,"Expected parent to be a container"),Qc.Debug.Assert(e.GetComponent(0).isParent),e=e.tail),t===null?(0, Xs.throwNullException)("nearestContainer"):t.ContentAtPath(e)}else {let t=this.rootContentContainer;return t===null?(0, Xs.throwNullException)("contentContainer"):t.ContentAtPath(e)}}ConvertPathToRelative(e){let t=this.path,r=Math.min(e.length,t.length),i=-1;for(let u=0;u<r;++u){let l=t.GetComponent(u),c=e.GetComponent(u);if(l.Equals(c))i=u;else break}if(i==-1)return e;let a=t.componentCount-1-i,s=[];for(let u=0;u<a;++u)s.push(lr.Path.Component.ToParent());for(let u=i+1;u<e.componentCount;++u)s.push(e.GetComponent(u));return new lr.Path(s,true)}CompactPathString(e){let t=null,r=null;return e.isRelative?(r=e.componentsString,t=this.path.PathByAppendingPath(e).componentsString):(r=this.ConvertPathToRelative(e).componentsString,t=e.componentsString),r.length<t.length?r:t}get rootContentContainer(){let e=this;for(;e.parent;)e=e.parent;return (0, cr.asOrNull)(e,yi.Container)}Copy(){throw Error("Not Implemented: Doesn't support copying")}SetChild(e,t,r){e[t]&&(e[t]=null),e[t]=r,e[t]&&(e[t].parent=this);}Equals(e){return e===this}};Ys.InkObject=eh;});var wn=C(Zs=>{Object.defineProperty(Zs,"__esModule",{value:true});Zs.StringBuilder=void 0;var th=class{constructor(e){e=typeof e<"u"?e.toString():"",this.string=e;}get Length(){return this.string.length}Append(e){e!==null&&(this.string+=e);}AppendLine(e){typeof e<"u"&&this.Append(e),this.string+=`
9
- `;}AppendFormat(e,...t){this.string+=e.replace(/{(\d+)}/g,(r,i)=>typeof t[i]<"u"?t[i]:r);}toString(){return this.string}Clear(){this.string="";}};Zs.StringBuilder=th;});var He=C(hr=>{Object.defineProperty(hr,"__esModule",{value:true});hr.InkList=hr.InkListItem=void 0;var vt=Te(),$w=wn(),Je=class n{constructor(){if(this.originName=null,this.itemName=null,typeof arguments[1]<"u"){let e=arguments[0],t=arguments[1];this.originName=e,this.itemName=t;}else if(arguments[0]){let t=arguments[0].toString().split(".");this.originName=t[0],this.itemName=t[1];}}static get Null(){return new n(null,null)}get isNull(){return this.originName==null&&this.itemName==null}get fullName(){return (this.originName!==null?this.originName:"?")+"."+this.itemName}toString(){return this.fullName}Equals(e){if(e instanceof n){let t=e;return t.itemName==this.itemName&&t.originName==this.originName}return false}copy(){return new n(this.originName,this.itemName)}serialized(){return JSON.stringify({originName:this.originName,itemName:this.itemName})}static fromSerializedKey(e){let t=JSON.parse(e);if(!n.isLikeInkListItem(t))return n.Null;let r=t;return new n(r.originName,r.itemName)}static isLikeInkListItem(e){return !(typeof e!="object"||!e.hasOwnProperty("originName")||!e.hasOwnProperty("itemName")||typeof e.originName!="string"&&typeof e.originName!==null||typeof e.itemName!="string"&&typeof e.itemName!==null)}};hr.InkListItem=Je;var nh=class n extends Map{constructor(){if(super(arguments[0]instanceof n?arguments[0]:[]),this.origins=null,this._originNames=[],arguments[0]instanceof n){let e=arguments[0],t=e.originNames;t!==null&&(this._originNames=t.slice()),e.origins!==null&&(this.origins=e.origins.slice());}else if(typeof arguments[0]=="string"){let e=arguments[0],t=arguments[1];if(this.SetInitialOriginName(e),t.listDefinitions===null)return (0, vt.throwNullException)("originStory.listDefinitions");let r=t.listDefinitions.TryListGetDefinition(e,null);if(r.exists){if(r.result===null)return (0, vt.throwNullException)("def.result");this.origins=[r.result];}else throw new Error("InkList origin could not be found in story when constructing new list: "+e)}else if(typeof arguments[0]=="object"&&arguments[0].hasOwnProperty("Key")&&arguments[0].hasOwnProperty("Value")){let e=arguments[0];this.Add(e.Key,e.Value);}}static FromString(e,t){var r;if(e==null||e=="")return new n;let i=(r=t.listDefinitions)===null||r===void 0?void 0:r.FindSingleItemListWithName(e);if(i)return i.value===null?(0, vt.throwNullException)("listValue.value"):new n(i.value);throw new Error("Could not find the InkListItem from the string '"+e+"' to create an InkList because it doesn't exist in the original list definition in ink.")}AddItem(e,t=null){if(e instanceof Je){let r=e;if(r.originName==null){this.AddItem(r.itemName);return}if(this.origins===null)return (0, vt.throwNullException)("this.origins");for(let i of this.origins)if(i.name==r.originName){let a=i.TryGetValueForItem(r,0);if(a.exists){this.Add(r,a.result);return}else throw new Error("Could not add the item "+r+" to this list because it doesn't exist in the original list definition in ink.")}throw new Error("Failed to add item to list because the item was from a new list definition that wasn't previously known to this list. Only items from previously known lists can be used, so that the int value can be found.")}else if(e!==null){let r=e,i=null;if(this.origins===null)return (0, vt.throwNullException)("this.origins");for(let a of this.origins){if(r===null)return (0, vt.throwNullException)("itemName");if(a.ContainsItemWithName(r)){if(i!=null)throw new Error("Could not add the item "+r+" to this list because it could come from either "+a.name+" or "+i.name);i=a;}}if(i==null){if(t==null)throw new Error("Could not add the item "+r+" to this list because it isn't known to any list definitions previously associated with this list.");{let a=n.FromString(r,t).orderedItems[0];this.Add(a.Key,a.Value);}}else {let a=new Je(i.name,r),s=i.ValueForItem(a);this.Add(a,s);}}}ContainsItemNamed(e){for(let[t]of this)if(Je.fromSerializedKey(t).itemName==e)return true;return false}ContainsKey(e){return this.has(e.serialized())}Add(e,t){let r=e.serialized();if(this.has(r))throw new Error(`The Map already contains an entry for ${e}`);this.set(r,t);}Remove(e){return this.delete(e.serialized())}get Count(){return this.size}get originOfMaxItem(){if(this.origins==null)return null;let e=this.maxItem.Key.originName,t=null;return this.origins.every(r=>r.name==e?(t=r,false):true),t}get originNames(){if(this.Count>0){this._originNames==null&&this.Count>0?this._originNames=[]:(this._originNames||(this._originNames=[]),this._originNames.length=0);for(let[e]of this){let t=Je.fromSerializedKey(e);if(t.originName===null)return (0, vt.throwNullException)("item.originName");this._originNames.push(t.originName);}}return this._originNames}SetInitialOriginName(e){this._originNames=[e];}SetInitialOriginNames(e){e==null?this._originNames=null:this._originNames=e.slice();}get maxItem(){let e={Key:Je.Null,Value:0};for(let[t,r]of this){let i=Je.fromSerializedKey(t);(e.Key.isNull||r>e.Value)&&(e={Key:i,Value:r});}return e}get minItem(){let e={Key:Je.Null,Value:0};for(let[t,r]of this){let i=Je.fromSerializedKey(t);(e.Key.isNull||r<e.Value)&&(e={Key:i,Value:r});}return e}get inverse(){let e=new n;if(this.origins!=null)for(let t of this.origins)for(let[r,i]of t.items){let a=Je.fromSerializedKey(r);this.ContainsKey(a)||e.Add(a,i);}return e}get all(){let e=new n;if(this.origins!=null)for(let t of this.origins)for(let[r,i]of t.items){let a=Je.fromSerializedKey(r);e.set(a.serialized(),i);}return e}Union(e){let t=new n(this);for(let[r,i]of e)t.set(r,i);return t}Intersect(e){let t=new n;for(let[r,i]of this)e.has(r)&&t.set(r,i);return t}HasIntersection(e){for(let[t]of this)if(e.has(t))return true;return false}Without(e){let t=new n(this);for(let[r]of e)t.delete(r);return t}Contains(e){if(typeof e=="string")return this.ContainsItemNamed(e);let t=e;if(t.size==0||this.size==0)return false;for(let[r]of t)if(!this.has(r))return false;return true}GreaterThan(e){return this.Count==0?false:e.Count==0?true:this.minItem.Value>e.maxItem.Value}GreaterThanOrEquals(e){return this.Count==0?false:e.Count==0?true:this.minItem.Value>=e.minItem.Value&&this.maxItem.Value>=e.maxItem.Value}LessThan(e){return e.Count==0?false:this.Count==0?true:this.maxItem.Value<e.minItem.Value}LessThanOrEquals(e){return e.Count==0?false:this.Count==0?true:this.maxItem.Value<=e.maxItem.Value&&this.minItem.Value<=e.minItem.Value}MaxAsList(){return this.Count>0?new n(this.maxItem):new n}MinAsList(){return this.Count>0?new n(this.minItem):new n}ListWithSubRange(e,t){if(this.Count==0)return new n;let r=this.orderedItems,i=0,a=Number.MAX_SAFE_INTEGER;Number.isInteger(e)?i=e:e instanceof n&&e.Count>0&&(i=e.minItem.Value),Number.isInteger(t)?a=t:t instanceof n&&t.Count>0&&(a=t.maxItem.Value);let s=new n;s.SetInitialOriginNames(this.originNames);for(let o of r)o.Value>=i&&o.Value<=a&&s.Add(o.Key,o.Value);return s}Equals(e){if(!(e instanceof n)||e.Count!=this.Count)return false;for(let[t]of this)if(!e.has(t))return false;return true}get orderedItems(){let e=new Array;for(let[t,r]of this){let i=Je.fromSerializedKey(t);e.push({Key:i,Value:r});}return e.sort((t,r)=>t.Key.originName===null?(0, vt.throwNullException)("x.Key.originName"):r.Key.originName===null?(0, vt.throwNullException)("y.Key.originName"):t.Value==r.Value?t.Key.originName.localeCompare(r.Key.originName):t.Value<r.Value?-1:t.Value>r.Value?1:0),e}get singleItem(){for(let e of this.orderedItems)return e.Key;return null}toString(){let e=this.orderedItems,t=new $w.StringBuilder;for(let r=0;r<e.length;r++){r>0&&t.Append(", ");let i=e[r].Key;if(i.itemName===null)return (0, vt.throwNullException)("item.itemName");t.Append(i.itemName);}return t.toString()}valueOf(){return NaN}};hr.InkList=nh;});var Ci=C(Qs=>{Object.defineProperty(Qs,"__esModule",{value:true});Qs.StoryException=void 0;var rh=class extends Error{constructor(e){super(e),this.useEndLineNumber=false,this.message=e,this.name="StoryException";}};Qs.StoryException=rh;});var dr=C(Xt=>{Object.defineProperty(Xt,"__esModule",{value:true});Xt.tryParseFloat=Xt.tryParseInt=Xt.tryGetValueFromMap=void 0;function Vw(n,e,t){if(n===null)return {result:t,exists:false};let r=n.get(e);return typeof r>"u"?{result:t,exists:false}:{result:r,exists:true}}Xt.tryGetValueFromMap=Vw;function jw(n,e=0){let t=parseInt(n);return Number.isNaN(t)?{result:e,exists:false}:{result:t,exists:true}}Xt.tryParseInt=jw;function qw(n,e=0){let t=parseFloat(n);return Number.isNaN(t)?{result:e,exists:false}:{result:t,exists:true}}Xt.tryParseFloat=qw;});var ue=C(le=>{Object.defineProperty(le,"__esModule",{value:true});le.ValueType=le.ListValue=le.VariablePointerValue=le.DivertTargetValue=le.StringValue=le.FloatValue=le.IntValue=le.BoolValue=le.Value=le.AbstractValue=void 0;var Qg=Ge(),ey=Me(),An=He(),Lw=Ci(),vi=X(),ty=dr(),tt=Te(),ea=class n extends Qg.InkObject{static Create(e,t){if(t){if(t===ae.Int&&Number.isInteger(Number(e)))return new _t(Number(e));if(t===ae.Float&&!isNaN(e))return new St(Number(e))}if(typeof e=="boolean")return new fr(!!e);if(typeof e=="string")return new Rt(String(e));if(Number.isInteger(Number(e)))return new _t(Number(e));if(isNaN(e)){if(e instanceof ey.Path)return new ta((0, vi.asOrThrows)(e,ey.Path));if(e instanceof An.InkList)return new na((0, vi.asOrThrows)(e,An.InkList))}else return new St(Number(e));return null}Copy(){return (0, vi.asOrThrows)(n.Create(this.valueObject),Qg.InkObject)}BadCastException(e){return new Lw.StoryException("Can't cast "+this.valueObject+" from "+this.valueType+" to "+e)}};le.AbstractValue=ea;var Et=class extends ea{constructor(e){super(),this.value=e;}get valueObject(){return this.value}toString(){return this.value===null?(0, tt.throwNullException)("Value.value"):this.value.toString()}};le.Value=Et;var fr=class extends Et{constructor(e){super(e||false);}get isTruthy(){return !!this.value}get valueType(){return ae.Bool}Cast(e){if(this.value===null)return (0, tt.throwNullException)("Value.value");if(e==this.valueType)return this;if(e==ae.Int)return new _t(this.value?1:0);if(e==ae.Float)return new St(this.value?1:0);if(e==ae.String)return new Rt(this.value?"true":"false");throw this.BadCastException(e)}toString(){return this.value?"true":"false"}};le.BoolValue=fr;var _t=class extends Et{constructor(e){super(e||0);}get isTruthy(){return this.value!=0}get valueType(){return ae.Int}Cast(e){if(this.value===null)return (0, tt.throwNullException)("Value.value");if(e==this.valueType)return this;if(e==ae.Bool)return new fr(this.value!==0);if(e==ae.Float)return new St(this.value);if(e==ae.String)return new Rt(""+this.value);throw this.BadCastException(e)}};le.IntValue=_t;var St=class extends Et{constructor(e){super(e||0);}get isTruthy(){return this.value!=0}get valueType(){return ae.Float}Cast(e){if(this.value===null)return (0, tt.throwNullException)("Value.value");if(e==this.valueType)return this;if(e==ae.Bool)return new fr(this.value!==0);if(e==ae.Int)return new _t(this.value);if(e==ae.String)return new Rt(""+this.value);throw this.BadCastException(e)}};le.FloatValue=St;var Rt=class extends Et{constructor(e){if(super(e||""),this._isNewline=this.value==`
10
- `,this._isInlineWhitespace=true,this.value===null)return (0, tt.throwNullException)("Value.value");this.value.length>0&&this.value.split("").every(t=>t!=" "&&t!=" "?(this._isInlineWhitespace=false,false):true);}get valueType(){return ae.String}get isTruthy(){return this.value===null?(0, tt.throwNullException)("Value.value"):this.value.length>0}get isNewline(){return this._isNewline}get isInlineWhitespace(){return this._isInlineWhitespace}get isNonWhitespace(){return !this.isNewline&&!this.isInlineWhitespace}Cast(e){if(e==this.valueType)return this;if(e==ae.Int){let t=(0, ty.tryParseInt)(this.value);if(t.exists)return new _t(t.result);throw this.BadCastException(e)}if(e==ae.Float){let t=(0, ty.tryParseFloat)(this.value);if(t.exists)return new St(t.result);throw this.BadCastException(e)}throw this.BadCastException(e)}};le.StringValue=Rt;var ta=class extends Et{constructor(e=null){super(e);}get valueType(){return ae.DivertTarget}get targetPath(){return this.value===null?(0, tt.throwNullException)("Value.value"):this.value}set targetPath(e){this.value=e;}get isTruthy(){throw new Error("Shouldn't be checking the truthiness of a divert target")}Cast(e){if(e==this.valueType)return this;throw this.BadCastException(e)}toString(){return "DivertTargetValue("+this.targetPath+")"}};le.DivertTargetValue=ta;var ih=class n extends Et{constructor(e,t=-1){super(e),this._contextIndex=t;}get contextIndex(){return this._contextIndex}set contextIndex(e){this._contextIndex=e;}get variableName(){return this.value===null?(0, tt.throwNullException)("Value.value"):this.value}set variableName(e){this.value=e;}get valueType(){return ae.VariablePointer}get isTruthy(){throw new Error("Shouldn't be checking the truthiness of a variable pointer")}Cast(e){if(e==this.valueType)return this;throw this.BadCastException(e)}toString(){return "VariablePointerValue("+this.variableName+")"}Copy(){return new n(this.variableName,this.contextIndex)}};le.VariablePointerValue=ih;var na=class n extends Et{get isTruthy(){return this.value===null?(0, tt.throwNullException)("this.value"):this.value.Count>0}get valueType(){return ae.List}Cast(e){if(this.value===null)return (0, tt.throwNullException)("Value.value");if(e==ae.Int){let t=this.value.maxItem;return t.Key.isNull?new _t(0):new _t(t.Value)}else if(e==ae.Float){let t=this.value.maxItem;return t.Key.isNull?new St(0):new St(t.Value)}else if(e==ae.String){let t=this.value.maxItem;return t.Key.isNull?new Rt(""):new Rt(t.Key.toString())}if(e==this.valueType)return this;throw this.BadCastException(e)}constructor(e,t){super(null),!e&&!t?this.value=new An.InkList:e instanceof An.InkList?this.value=new An.InkList(e):e instanceof An.InkListItem&&typeof t=="number"&&(this.value=new An.InkList({Key:e,Value:t}));}static RetainListOriginsForAssignment(e,t){let r=(0, vi.asOrNull)(e,n),i=(0, vi.asOrNull)(t,n);if(i&&i.value===null)return (0, tt.throwNullException)("newList.value");if(r&&r.value===null)return (0, tt.throwNullException)("oldList.value");r&&i&&i.value.Count==0&&i.value.SetInitialOriginNames(r.value.originNames);}};le.ListValue=na;var ae;(function(n){n[n.Bool=-1]="Bool",n[n.Int=0]="Int",n[n.Float=1]="Float",n[n.List=2]="List",n[n.String=3]="String",n[n.DivertTarget=4]="DivertTarget",n[n.VariablePointer=5]="VariablePointer";})(ae||(le.ValueType=ae={}));});var ny=C(ra=>{Object.defineProperty(ra,"__esModule",{value:true});ra.SearchResult=void 0;var Bw=de(),sh=class n{constructor(){this.obj=null,this.approximate=false;}get correctObj(){return this.approximate?null:this.obj}get container(){return this.obj instanceof Bw.Container?this.obj:null}copy(){let e=new n;return e.obj=this.obj,e.approximate=this.approximate,e}};ra.SearchResult=sh;});var de=C(_i=>{Object.defineProperty(_i,"__esModule",{value:true});_i.Container=void 0;var Ww=ue(),ry=Te(),Mw=wn(),pr=Ge(),Gw=ny(),iy=Me(),sy=gi(),Jw=dr(),Yt=X(),Ei=class n extends pr.InkObject{constructor(){super(...arguments),this.name=null,this._content=[],this.namedContent=new Map,this.visitsShouldBeCounted=false,this.turnIndexShouldBeCounted=false,this.countingAtStartOnly=false,this._pathToFirstLeafContent=null;}get hasValidName(){return this.name!=null&&this.name.length>0}get content(){return this._content}set content(e){this.AddContent(e);}get namedOnlyContent(){let e=new Map;for(let[t,r]of this.namedContent){let i=(0, Yt.asOrThrows)(r,pr.InkObject);e.set(t,i);}for(let t of this.content){let r=(0, Yt.asINamedContentOrNull)(t);r!=null&&r.hasValidName&&e.delete(r.name);}return e.size==0&&(e=null),e}set namedOnlyContent(e){let t=this.namedOnlyContent;if(t!=null)for(let[r]of t)this.namedContent.delete(r);if(e!=null)for(let[,r]of e){let i=(0, Yt.asINamedContentOrNull)(r);i!=null&&this.AddToNamedContentOnly(i);}}get countFlags(){let e=0;return this.visitsShouldBeCounted&&(e|=n.CountFlags.Visits),this.turnIndexShouldBeCounted&&(e|=n.CountFlags.Turns),this.countingAtStartOnly&&(e|=n.CountFlags.CountStartOnly),e==n.CountFlags.CountStartOnly&&(e=0),e}set countFlags(e){let t=e;(t&n.CountFlags.Visits)>0&&(this.visitsShouldBeCounted=true),(t&n.CountFlags.Turns)>0&&(this.turnIndexShouldBeCounted=true),(t&n.CountFlags.CountStartOnly)>0&&(this.countingAtStartOnly=true);}get pathToFirstLeafContent(){return this._pathToFirstLeafContent==null&&(this._pathToFirstLeafContent=this.path.PathByAppendingPath(this.internalPathToFirstLeafContent)),this._pathToFirstLeafContent}get internalPathToFirstLeafContent(){let e=[],t=this;for(;t instanceof n;)t.content.length>0&&(e.push(new iy.Path.Component(0)),t=t.content[0]);return new iy.Path(e)}AddContent(e){if(e instanceof Array){let t=e;for(let r of t)this.AddContent(r);}else {let t=e;if(this._content.push(t),t.parent)throw new Error("content is already in "+t.parent);t.parent=this,this.TryAddNamedContent(t);}}TryAddNamedContent(e){let t=(0, Yt.asINamedContentOrNull)(e);t!=null&&t.hasValidName&&this.AddToNamedContentOnly(t);}AddToNamedContentOnly(e){sy.Debug.AssertType(e,pr.InkObject,"Can only add Runtime.Objects to a Runtime.Container");let t=(0, Yt.asOrThrows)(e,pr.InkObject);if(t.parent=this,e.name===null)return (0, ry.throwNullException)("namedContentObj.name");this.namedContent.set(e.name,e);}ContentAtPath(e,t=0,r=-1){r==-1&&(r=e.length);let i=new Gw.SearchResult;i.approximate=false;let a=this,s=this;for(let o=t;o<r;++o){let u=e.GetComponent(o);if(a==null){i.approximate=true;break}let l=a.ContentWithPathComponent(u);if(l==null){i.approximate=true;break}let c=(0, Yt.asOrNull)(l,n);if(o<r-1&&c==null){i.approximate=true;break}s=l,a=c;}return i.obj=s,i}InsertContent(e,t){if(this.content.splice(t,0,e),e.parent)throw new Error("content is already in "+e.parent);e.parent=this,this.TryAddNamedContent(e);}AddContentsOfContainer(e){this.content.push(...e.content);for(let t of e.content)t.parent=this,this.TryAddNamedContent(t);}ContentWithPathComponent(e){if(e.isIndex)return e.index>=0&&e.index<this.content.length?this.content[e.index]:null;if(e.isParent)return this.parent;{if(e.name===null)return (0, ry.throwNullException)("component.name");let t=(0, Jw.tryGetValueFromMap)(this.namedContent,e.name,null);return t.exists?(0, Yt.asOrThrows)(t.result,pr.InkObject):null}}BuildStringOfHierarchy(){let e;if(arguments.length==0)return e=new Mw.StringBuilder,this.BuildStringOfHierarchy(e,0,null),e.toString();e=arguments[0];let t=arguments[1],r=arguments[2];function i(){for(let o=0;o<4*t;++o)e.Append(" ");}i(),e.Append("["),this.hasValidName&&e.AppendFormat(" ({0})",this.name),this==r&&e.Append(" <---"),e.AppendLine(),t++;for(let s=0;s<this.content.length;++s){let o=this.content[s];o instanceof n?o.BuildStringOfHierarchy(e,t,r):(i(),o instanceof Ww.StringValue?(e.Append('"'),e.Append(o.toString().replace(`
11
- `,"\\n")),e.Append('"')):e.Append(o.toString())),s!=this.content.length-1&&e.Append(","),!(o instanceof n)&&o==r&&e.Append(" <---"),e.AppendLine();}let a=new Map;for(let[s,o]of this.namedContent)this.content.indexOf((0, Yt.asOrThrows)(o,pr.InkObject))>=0||a.set(s,o);if(a.size>0){i(),e.AppendLine("-- named: --");for(let[,s]of a)sy.Debug.AssertType(s,n,"Can only print out named Containers"),s.BuildStringOfHierarchy(e,t,r),e.AppendLine();}t--,i(),e.Append("]");}};_i.Container=Ei;(function(n){(function(t){t[t.Start=0]="Start",t[t.Visits=1]="Visits",t[t.Turns=2]="Turns",t[t.CountStartOnly=4]="CountStartOnly";})(n.CountFlags||(n.CountFlags={}));})(Ei||(_i.Container=Ei={}));});var Oe=C(bi=>{Object.defineProperty(bi,"__esModule",{value:true});bi.ControlCommand=void 0;var Hw=Ge(),Si=class n extends Hw.InkObject{get commandType(){return this._commandType}constructor(e=n.CommandType.NotSet){super(),this._commandType=e;}Copy(){return new n(this.commandType)}static EvalStart(){return new n(n.CommandType.EvalStart)}static EvalOutput(){return new n(n.CommandType.EvalOutput)}static EvalEnd(){return new n(n.CommandType.EvalEnd)}static Duplicate(){return new n(n.CommandType.Duplicate)}static PopEvaluatedValue(){return new n(n.CommandType.PopEvaluatedValue)}static PopFunction(){return new n(n.CommandType.PopFunction)}static PopTunnel(){return new n(n.CommandType.PopTunnel)}static BeginString(){return new n(n.CommandType.BeginString)}static EndString(){return new n(n.CommandType.EndString)}static NoOp(){return new n(n.CommandType.NoOp)}static ChoiceCount(){return new n(n.CommandType.ChoiceCount)}static Turns(){return new n(n.CommandType.Turns)}static TurnsSince(){return new n(n.CommandType.TurnsSince)}static ReadCount(){return new n(n.CommandType.ReadCount)}static Random(){return new n(n.CommandType.Random)}static SeedRandom(){return new n(n.CommandType.SeedRandom)}static VisitIndex(){return new n(n.CommandType.VisitIndex)}static SequenceShuffleIndex(){return new n(n.CommandType.SequenceShuffleIndex)}static StartThread(){return new n(n.CommandType.StartThread)}static Done(){return new n(n.CommandType.Done)}static End(){return new n(n.CommandType.End)}static ListFromInt(){return new n(n.CommandType.ListFromInt)}static ListRange(){return new n(n.CommandType.ListRange)}static ListRandom(){return new n(n.CommandType.ListRandom)}static BeginTag(){return new n(n.CommandType.BeginTag)}static EndTag(){return new n(n.CommandType.EndTag)}toString(){return "ControlCommand "+this.commandType.toString()}};bi.ControlCommand=Si;(function(n){(function(t){t[t.NotSet=-1]="NotSet",t[t.EvalStart=0]="EvalStart",t[t.EvalOutput=1]="EvalOutput",t[t.EvalEnd=2]="EvalEnd",t[t.Duplicate=3]="Duplicate",t[t.PopEvaluatedValue=4]="PopEvaluatedValue",t[t.PopFunction=5]="PopFunction",t[t.PopTunnel=6]="PopTunnel",t[t.BeginString=7]="BeginString",t[t.EndString=8]="EndString",t[t.NoOp=9]="NoOp",t[t.ChoiceCount=10]="ChoiceCount",t[t.Turns=11]="Turns",t[t.TurnsSince=12]="TurnsSince",t[t.ReadCount=13]="ReadCount",t[t.Random=14]="Random",t[t.SeedRandom=15]="SeedRandom",t[t.VisitIndex=16]="VisitIndex",t[t.SequenceShuffleIndex=17]="SequenceShuffleIndex",t[t.StartThread=18]="StartThread",t[t.Done=19]="Done",t[t.End=20]="End",t[t.ListFromInt=21]="ListFromInt",t[t.ListRange=22]="ListRange",t[t.ListRandom=23]="ListRandom",t[t.BeginTag=24]="BeginTag",t[t.EndTag=25]="EndTag",t[t.TOTAL_VALUES=26]="TOTAL_VALUES";})(n.CommandType||(n.CommandType={}));})(Si||(bi.ControlCommand=Si={}));});var nt=C(ia=>{Object.defineProperty(ia,"__esModule",{value:true});ia.Expression=void 0;var ay=de(),ah=Oe(),Uw=oe(),oh=class extends Uw.ParsedObject{constructor(){super(...arguments),this._prototypeRuntimeConstantExpression=null,this.outputWhenComplete=false,this.GenerateRuntimeObject=()=>{let e=new ay.Container;return e.AddContent(ah.ControlCommand.EvalStart()),this.GenerateIntoContainer(e),this.outputWhenComplete&&e.AddContent(ah.ControlCommand.EvalOutput()),e.AddContent(ah.ControlCommand.EvalEnd()),e},this.GenerateConstantIntoContainer=e=>{this._prototypeRuntimeConstantExpression===null&&(this._prototypeRuntimeConstantExpression=new ay.Container,this.GenerateIntoContainer(this._prototypeRuntimeConstantExpression));for(let t of this._prototypeRuntimeConstantExpression.content){let r=t.Copy();r&&e.AddContent(r);}},this.toString=()=>"No string value in JavaScript.";}get typeName(){return "Expression"}Equals(e){return false}};ia.Expression=oh;});var Pn=C(sa=>{Object.defineProperty(sa,"__esModule",{value:true});sa.Void=void 0;var zw=Ge(),uh=class extends zw.InkObject{toString(){return "Void"}};sa.Void=uh;});var bt=C(oa=>{Object.defineProperty(oa,"__esModule",{value:true});oa.NativeFunctionCall=void 0;var T=ue(),Di=Ci(),Kw=Pn(),aa=He(),Xw=Ge(),rt=X(),Ue=Te(),M=class n extends Xw.InkObject{static CallWithName(e){return new n(e)}static CallExistsWithName(e){return this.GenerateNativeFunctionsIfNecessary(),this._nativeFunctions.get(e)}get name(){return this._name===null?(0, Ue.throwNullException)("NativeFunctionCall._name"):this._name}set name(e){this._name=e,this._isPrototype||(n._nativeFunctions===null?(0, Ue.throwNullException)("NativeFunctionCall._nativeFunctions"):this._prototype=n._nativeFunctions.get(this._name)||null);}get numberOfParameters(){return this._prototype?this._prototype.numberOfParameters:this._numberOfParameters}set numberOfParameters(e){this._numberOfParameters=e;}Call(e){if(this._prototype)return this._prototype.Call(e);if(this.numberOfParameters!=e.length)throw new Error("Unexpected number of parameters");let t=false;for(let a of e){if(a instanceof Kw.Void)throw new Di.StoryException("Attempting to perform "+this.name+' on a void value. Did you forget to "return" a value from a function you called here?');a instanceof T.ListValue&&(t=true);}if(e.length==2&&t)return this.CallBinaryListOperation(e);let r=this.CoerceValuesToSingleType(e),i=r[0].valueType;return i==T.ValueType.Int?this.CallType(r):i==T.ValueType.Float?this.CallType(r):i==T.ValueType.String?this.CallType(r):i==T.ValueType.DivertTarget?this.CallType(r):i==T.ValueType.List?this.CallType(r):null}CallType(e){let t=(0, rt.asOrThrows)(e[0],T.Value),r=t.valueType,i=t,a=e.length;if(a==2||a==1){if(this._operationFuncs===null)return (0, Ue.throwNullException)("NativeFunctionCall._operationFuncs");let s=this._operationFuncs.get(r);if(!s){let o=T.ValueType[r];throw new Di.StoryException("Cannot perform operation "+this.name+" on "+o)}if(a==2){let u=(0, rt.asOrThrows)(e[1],T.Value),l=s;if(i.value===null||u.value===null)return (0, Ue.throwNullException)("NativeFunctionCall.Call BinaryOp values");let c=l(i.value,u.value);return T.Value.Create(c)}else {let o=s;if(i.value===null)return (0, Ue.throwNullException)("NativeFunctionCall.Call UnaryOp value");let u=o(i.value);return this.name===n.Int?T.Value.Create(u,T.ValueType.Int):this.name===n.Float?T.Value.Create(u,T.ValueType.Float):T.Value.Create(u,t.valueType)}}else throw new Error("Unexpected number of parameters to NativeFunctionCall: "+e.length)}CallBinaryListOperation(e){if((this.name=="+"||this.name=="-")&&e[0]instanceof T.ListValue&&e[1]instanceof T.IntValue)return this.CallListIncrementOperation(e);let t=(0, rt.asOrThrows)(e[0],T.Value),r=(0, rt.asOrThrows)(e[1],T.Value);if((this.name=="&&"||this.name=="||")&&(t.valueType!=T.ValueType.List||r.valueType!=T.ValueType.List)){if(this._operationFuncs===null)return (0, Ue.throwNullException)("NativeFunctionCall._operationFuncs");let i=this._operationFuncs.get(T.ValueType.Int);if(i===null)return (0, Ue.throwNullException)("NativeFunctionCall.CallBinaryListOperation op");let a=(0, rt.asBooleanOrThrows)(i(t.isTruthy?1:0,r.isTruthy?1:0));return new T.BoolValue(a)}if(t.valueType==T.ValueType.List&&r.valueType==T.ValueType.List)return this.CallType([t,r]);throw new Di.StoryException("Can not call use "+this.name+" operation on "+T.ValueType[t.valueType]+" and "+T.ValueType[r.valueType])}CallListIncrementOperation(e){let t=(0, rt.asOrThrows)(e[0],T.ListValue),r=(0, rt.asOrThrows)(e[1],T.IntValue),i=new aa.InkList;if(t.value===null)return (0, Ue.throwNullException)("NativeFunctionCall.CallListIncrementOperation listVal.value");for(let[a,s]of t.value){let o=aa.InkListItem.fromSerializedKey(a);if(this._operationFuncs===null)return (0, Ue.throwNullException)("NativeFunctionCall._operationFuncs");let u=this._operationFuncs.get(T.ValueType.Int);if(r.value===null)return (0, Ue.throwNullException)("NativeFunctionCall.CallListIncrementOperation intVal.value");let l=u(s,r.value),c=null;if(t.value.origins===null)return (0, Ue.throwNullException)("NativeFunctionCall.CallListIncrementOperation listVal.value.origins");for(let h of t.value.origins)if(h.name==o.originName){c=h;break}if(c!=null){let h=c.TryGetItemWithValue(l,aa.InkListItem.Null);h.exists&&i.Add(h.result,l);}}return new T.ListValue(i)}CoerceValuesToSingleType(e){let t=T.ValueType.Int,r=null;for(let a of e){let s=(0, rt.asOrThrows)(a,T.Value);s.valueType>t&&(t=s.valueType),s.valueType==T.ValueType.List&&(r=(0, rt.asOrNull)(s,T.ListValue));}let i=[];if(T.ValueType[t]==T.ValueType[T.ValueType.List])for(let a of e){let s=(0, rt.asOrThrows)(a,T.Value);if(s.valueType==T.ValueType.List)i.push(s);else if(s.valueType==T.ValueType.Int){let o=parseInt(s.valueObject);if(r=(0, rt.asOrThrows)(r,T.ListValue),r.value===null)return (0, Ue.throwNullException)("NativeFunctionCall.CoerceValuesToSingleType specialCaseList.value");let u=r.value.originOfMaxItem;if(u===null)return (0, Ue.throwNullException)("NativeFunctionCall.CoerceValuesToSingleType list");let l=u.TryGetItemWithValue(o,aa.InkListItem.Null);if(l.exists){let c=new T.ListValue(l.result,o);i.push(c);}else throw new Di.StoryException("Could not find List item with the value "+o+" in "+u.name)}else {let o=T.ValueType[s.valueType];throw new Di.StoryException("Cannot mix Lists and "+o+" values in this operation")}}else for(let a of e){let o=(0, rt.asOrThrows)(a,T.Value).Cast(t);i.push(o);}return i}constructor(){if(super(),this._name=null,this._numberOfParameters=0,this._prototype=null,this._isPrototype=false,this._operationFuncs=null,arguments.length===0)n.GenerateNativeFunctionsIfNecessary();else if(arguments.length===1){let e=arguments[0];n.GenerateNativeFunctionsIfNecessary(),this.name=e;}else if(arguments.length===2){let e=arguments[0],t=arguments[1];this._isPrototype=true,this.name=e,this.numberOfParameters=t;}}static Identity(e){return e}static GenerateNativeFunctionsIfNecessary(){if(this._nativeFunctions==null){this._nativeFunctions=new Map,this.AddIntBinaryOp(this.Add,(r,i)=>r+i),this.AddIntBinaryOp(this.Subtract,(r,i)=>r-i),this.AddIntBinaryOp(this.Multiply,(r,i)=>r*i),this.AddIntBinaryOp(this.Divide,(r,i)=>Math.floor(r/i)),this.AddIntBinaryOp(this.Mod,(r,i)=>r%i),this.AddIntUnaryOp(this.Negate,r=>-r),this.AddIntBinaryOp(this.Equal,(r,i)=>r==i),this.AddIntBinaryOp(this.Greater,(r,i)=>r>i),this.AddIntBinaryOp(this.Less,(r,i)=>r<i),this.AddIntBinaryOp(this.GreaterThanOrEquals,(r,i)=>r>=i),this.AddIntBinaryOp(this.LessThanOrEquals,(r,i)=>r<=i),this.AddIntBinaryOp(this.NotEquals,(r,i)=>r!=i),this.AddIntUnaryOp(this.Not,r=>r==0),this.AddIntBinaryOp(this.And,(r,i)=>r!=0&&i!=0),this.AddIntBinaryOp(this.Or,(r,i)=>r!=0||i!=0),this.AddIntBinaryOp(this.Max,(r,i)=>Math.max(r,i)),this.AddIntBinaryOp(this.Min,(r,i)=>Math.min(r,i)),this.AddIntBinaryOp(this.Pow,(r,i)=>Math.pow(r,i)),this.AddIntUnaryOp(this.Floor,n.Identity),this.AddIntUnaryOp(this.Ceiling,n.Identity),this.AddIntUnaryOp(this.Int,n.Identity),this.AddIntUnaryOp(this.Float,r=>r),this.AddFloatBinaryOp(this.Add,(r,i)=>r+i),this.AddFloatBinaryOp(this.Subtract,(r,i)=>r-i),this.AddFloatBinaryOp(this.Multiply,(r,i)=>r*i),this.AddFloatBinaryOp(this.Divide,(r,i)=>r/i),this.AddFloatBinaryOp(this.Mod,(r,i)=>r%i),this.AddFloatUnaryOp(this.Negate,r=>-r),this.AddFloatBinaryOp(this.Equal,(r,i)=>r==i),this.AddFloatBinaryOp(this.Greater,(r,i)=>r>i),this.AddFloatBinaryOp(this.Less,(r,i)=>r<i),this.AddFloatBinaryOp(this.GreaterThanOrEquals,(r,i)=>r>=i),this.AddFloatBinaryOp(this.LessThanOrEquals,(r,i)=>r<=i),this.AddFloatBinaryOp(this.NotEquals,(r,i)=>r!=i),this.AddFloatUnaryOp(this.Not,r=>r==0),this.AddFloatBinaryOp(this.And,(r,i)=>r!=0&&i!=0),this.AddFloatBinaryOp(this.Or,(r,i)=>r!=0||i!=0),this.AddFloatBinaryOp(this.Max,(r,i)=>Math.max(r,i)),this.AddFloatBinaryOp(this.Min,(r,i)=>Math.min(r,i)),this.AddFloatBinaryOp(this.Pow,(r,i)=>Math.pow(r,i)),this.AddFloatUnaryOp(this.Floor,r=>Math.floor(r)),this.AddFloatUnaryOp(this.Ceiling,r=>Math.ceil(r)),this.AddFloatUnaryOp(this.Int,r=>Math.floor(r)),this.AddFloatUnaryOp(this.Float,n.Identity),this.AddStringBinaryOp(this.Add,(r,i)=>r+i),this.AddStringBinaryOp(this.Equal,(r,i)=>r===i),this.AddStringBinaryOp(this.NotEquals,(r,i)=>r!==i),this.AddStringBinaryOp(this.Has,(r,i)=>r.includes(i)),this.AddStringBinaryOp(this.Hasnt,(r,i)=>!r.includes(i)),this.AddListBinaryOp(this.Add,(r,i)=>r.Union(i)),this.AddListBinaryOp(this.Subtract,(r,i)=>r.Without(i)),this.AddListBinaryOp(this.Has,(r,i)=>r.Contains(i)),this.AddListBinaryOp(this.Hasnt,(r,i)=>!r.Contains(i)),this.AddListBinaryOp(this.Intersect,(r,i)=>r.Intersect(i)),this.AddListBinaryOp(this.Equal,(r,i)=>r.Equals(i)),this.AddListBinaryOp(this.Greater,(r,i)=>r.GreaterThan(i)),this.AddListBinaryOp(this.Less,(r,i)=>r.LessThan(i)),this.AddListBinaryOp(this.GreaterThanOrEquals,(r,i)=>r.GreaterThanOrEquals(i)),this.AddListBinaryOp(this.LessThanOrEquals,(r,i)=>r.LessThanOrEquals(i)),this.AddListBinaryOp(this.NotEquals,(r,i)=>!r.Equals(i)),this.AddListBinaryOp(this.And,(r,i)=>r.Count>0&&i.Count>0),this.AddListBinaryOp(this.Or,(r,i)=>r.Count>0||i.Count>0),this.AddListUnaryOp(this.Not,r=>r.Count==0?1:0),this.AddListUnaryOp(this.Invert,r=>r.inverse),this.AddListUnaryOp(this.All,r=>r.all),this.AddListUnaryOp(this.ListMin,r=>r.MinAsList()),this.AddListUnaryOp(this.ListMax,r=>r.MaxAsList()),this.AddListUnaryOp(this.Count,r=>r.Count),this.AddListUnaryOp(this.ValueOfList,r=>r.maxItem.Value);let e=(r,i)=>r.Equals(i),t=(r,i)=>!r.Equals(i);this.AddOpToNativeFunc(this.Equal,2,T.ValueType.DivertTarget,e),this.AddOpToNativeFunc(this.NotEquals,2,T.ValueType.DivertTarget,t);}}AddOpFuncForType(e,t){this._operationFuncs==null&&(this._operationFuncs=new Map),this._operationFuncs.set(e,t);}static AddOpToNativeFunc(e,t,r,i){if(this._nativeFunctions===null)return (0, Ue.throwNullException)("NativeFunctionCall._nativeFunctions");let a=this._nativeFunctions.get(e);a||(a=new n(e,t),this._nativeFunctions.set(e,a)),a.AddOpFuncForType(r,i);}static AddIntBinaryOp(e,t){this.AddOpToNativeFunc(e,2,T.ValueType.Int,t);}static AddIntUnaryOp(e,t){this.AddOpToNativeFunc(e,1,T.ValueType.Int,t);}static AddFloatBinaryOp(e,t){this.AddOpToNativeFunc(e,2,T.ValueType.Float,t);}static AddFloatUnaryOp(e,t){this.AddOpToNativeFunc(e,1,T.ValueType.Float,t);}static AddStringBinaryOp(e,t){this.AddOpToNativeFunc(e,2,T.ValueType.String,t);}static AddListBinaryOp(e,t){this.AddOpToNativeFunc(e,2,T.ValueType.List,t);}static AddListUnaryOp(e,t){this.AddOpToNativeFunc(e,1,T.ValueType.List,t);}toString(){return 'Native "'+this.name+'"'}};oa.NativeFunctionCall=M;M.Add="+";M.Subtract="-";M.Divide="/";M.Multiply="*";M.Mod="%";M.Negate="_";M.Equal="==";M.Greater=">";M.Less="<";M.GreaterThanOrEquals=">=";M.LessThanOrEquals="<=";M.NotEquals="!=";M.Not="!";M.And="&&";M.Or="||";M.Min="MIN";M.Max="MAX";M.Pow="POW";M.Floor="FLOOR";M.Ceiling="CEILING";M.Int="INT";M.Float="FLOAT";M.Has="?";M.Hasnt="!?";M.Intersect="^";M.ListMin="LIST_MIN";M.ListMax="LIST_MAX";M.All="LIST_ALL";M.Count="LIST_COUNT";M.ValueOfList="LIST_VALUE";M.Invert="LIST_INVERT";M._nativeFunctions=null;});var la=C(ua=>{Object.defineProperty(ua,"__esModule",{value:true});ua.NumberExpression=void 0;var Yw=nt(),lh=ue(),Zw=X(),ch=class n extends Yw.Expression{constructor(e,t){if(super(),this.isInt=()=>this.subtype=="int",this.isFloat=()=>this.subtype=="float",this.isBool=()=>this.subtype=="bool",this.GenerateIntoContainer=r=>{this.isInt()?r.AddContent(new lh.IntValue(this.value)):this.isFloat()?r.AddContent(new lh.FloatValue(this.value)):this.isBool()&&r.AddContent(new lh.BoolValue(this.value));},this.toString=()=>String(this.value),typeof e=="number"&&!Number.isNaN(e)||typeof e=="boolean")this.value=e,this.subtype=t;else throw new Error("Unexpected object type in NumberExpression.")}get typeName(){return "Number"}Equals(e){let t=(0, Zw.asOrNull)(e,n);return t?t.subtype==this.subtype&&t.value==this.value:false}};ua.NumberExpression=ch;});var hh=C(ca=>{Object.defineProperty(ca,"__esModule",{value:true});ca.UnaryExpression=void 0;var Qw=nt(),eA=bt(),mr=la(),tA=X(),wi=class extends Qw.Expression{get nativeNameForOp(){return this.op==="-"?"_":this.op==="not"?"!":this.op}constructor(e,t){super(),this.op=t,this.GenerateIntoContainer=r=>{this.innerExpression.GenerateIntoContainer(r),r.AddContent(eA.NativeFunctionCall.CallWithName(this.nativeNameForOp));},this.toString=()=>this.nativeNameForOp+this.innerExpression,this.innerExpression=this.AddContent(e);}get typeName(){return "UnaryExpression"}};ca.UnaryExpression=wi;wi.WithInner=(n,e)=>{let t=(0, tA.asOrNull)(n,mr.NumberExpression);if(t){if(e==="-"){if(t.isInt())return new mr.NumberExpression(-t.value,"int");if(t.isFloat())return new mr.NumberExpression(-t.value,"float")}else if(e=="!"||e=="not"){if(t.isInt())return new mr.NumberExpression(t.value==0,"bool");if(t.isFloat())return new mr.NumberExpression(t.value==0,"bool");if(t.isBool())return new mr.NumberExpression(!t.value,"bool")}throw new Error("Unexpected operation or number type")}return new wi(n,e)};});var fh=C(ha=>{Object.defineProperty(ha,"__esModule",{value:true});ha.BinaryExpression=void 0;var nA=nt(),rA=bt(),iA=hh(),sA=X(),dh=class extends nA.Expression{constructor(e,t,r){super(),this.opName=r,this.GenerateIntoContainer=i=>{this.leftExpression.GenerateIntoContainer(i),this.rightExpression.GenerateIntoContainer(i),this.opName=this.NativeNameForOp(this.opName),i.AddContent(rA.NativeFunctionCall.CallWithName(this.opName));},this.NativeNameForOp=i=>i==="and"?"&&":i==="or"?"||":i==="mod"?"%":i==="has"?"?":i==="hasnt"?"!?":i,this.toString=()=>`(${this.leftExpression} ${this.opName} ${this.rightExpression})`,this.leftExpression=this.AddContent(e),this.rightExpression=this.AddContent(t),this.opName=r;}get typeName(){return "BinaryExpression"}ResolveReferences(e){if(super.ResolveReferences(e),this.NativeNameForOp(this.opName)==="?"){let t=(0, sA.asOrNull)(this.leftExpression,iA.UnaryExpression);t!==null&&(t.op==="not"||t.op==="!")&&this.Error(`Using 'not' or '!' here negates '${t.innerExpression}' rather than the result of the '?' or 'has' operator. You need to add parentheses around the (A ? B) expression.`);}}};ha.BinaryExpression=dh;});var Pi=C(da=>{Object.defineProperty(da,"__esModule",{value:true});da.CharacterSet=void 0;var Ai=class{constructor(e){this.set=new Set,this.Add=t=>this.set.add(t),this.AddRange=(t,r)=>{for(let i=t.charCodeAt(0);i<=r.charCodeAt(0);++i)this.Add(String.fromCharCode(i));return this},this.AddCharacters=t=>{if(typeof t=="string"||Array.isArray(t))for(let r of t)this.Add(r);else for(let r of t.set)this.Add(r);return this},e&&this.AddCharacters(e);}};da.CharacterSet=Ai;Ai.FromRange=(n,e)=>new Ai().AddRange(n,e);});var uy=C(fa=>{Object.defineProperty(fa,"__esModule",{value:true});fa.CharacterRange=void 0;var oy=Pi(),Ti=class{constructor(e,t,r=[]){if(this._start=e,this._end=t,this._correspondingCharSet=new oy.CharacterSet,this._excludes=new Set,this.ToCharacterSet=()=>{if(this._correspondingCharSet.set.size===0)for(let i=this.start.charCodeAt(0),a;i<=this.end.charCodeAt(0);i+=1)a=String.fromCharCode(i),this._excludes.has(a)||this._correspondingCharSet.AddCharacters(a);return this._correspondingCharSet},r instanceof oy.CharacterSet)this._excludes=r.set;else for(let i of r)this._excludes.add(i);}get start(){return this._start}get end(){return this._end}};fa.CharacterRange=Ti;Ti.Define=(n,e,t=[])=>new Ti(n,e,t);});var ma=C(pa=>{Object.defineProperty(pa,"__esModule",{value:true});pa.ChoicePoint=void 0;var aA=Ge(),oA=Me(),ph=Te(),mh=class extends aA.InkObject{constructor(e=true){super(),this._pathOnChoice=null,this.hasCondition=false,this.hasStartContent=false,this.hasChoiceOnlyContent=false,this.isInvisibleDefault=false,this.onceOnly=true,this.onceOnly=e;}get pathOnChoice(){if(this._pathOnChoice!=null&&this._pathOnChoice.isRelative){let e=this.choiceTarget;e&&(this._pathOnChoice=e.path);}return this._pathOnChoice}set pathOnChoice(e){this._pathOnChoice=e;}get choiceTarget(){return this._pathOnChoice===null?(0, ph.throwNullException)("ChoicePoint._pathOnChoice"):this.ResolvePath(this._pathOnChoice).container}get pathStringOnChoice(){return this.pathOnChoice===null?(0, ph.throwNullException)("ChoicePoint.pathOnChoice"):this.CompactPathString(this.pathOnChoice)}set pathStringOnChoice(e){this.pathOnChoice=new oA.Path(e);}get flags(){let e=0;return this.hasCondition&&(e|=1),this.hasStartContent&&(e|=2),this.hasChoiceOnlyContent&&(e|=4),this.isInvisibleDefault&&(e|=8),this.onceOnly&&(e|=16),e}set flags(e){this.hasCondition=(e&1)>0,this.hasStartContent=(e&2)>0,this.hasChoiceOnlyContent=(e&4)>0,this.isInvisibleDefault=(e&8)>0,this.onceOnly=(e&16)>0;}toString(){if(this.pathOnChoice===null)return (0, ph.throwNullException)("ChoicePoint.pathOnChoice");let t=this.pathOnChoice.toString();return "Choice: -> "+t}};pa.ChoicePoint=mh;});var Tn=C(ga=>{Object.defineProperty(ga,"__esModule",{value:true});ga.PushPopType=void 0;var ly;(function(n){n[n.Tunnel=0]="Tunnel",n[n.Function=1]="Function",n[n.FunctionEvaluationFromGame=2]="FunctionEvaluationFromGame";})(ly||(ga.PushPopType=ly={}));});var Oi=C(ya=>{Object.defineProperty(ya,"__esModule",{value:true});ya.Pointer=void 0;var uA=Me(),gh=class n{constructor(){this.container=null,this.index=-1,arguments.length===2&&(this.container=arguments[0],this.index=arguments[1]);}Resolve(){return this.index<0?this.container:this.container==null?null:this.container.content.length==0?this.container:this.index>=this.container.content.length?null:this.container.content[this.index]}get isNull(){return this.container==null}get path(){return this.isNull?null:this.index>=0?this.container.path.PathByAppendingComponent(new uA.Path.Component(this.index)):this.container.path}toString(){return this.container?"Ink Pointer -> "+this.container.path.toString()+" -- index "+this.index:"Ink Pointer (null)"}copy(){return new n(this.container,this.index)}static StartOf(e){return new n(e,0)}static get Null(){return new n(null,-1)}};ya.Pointer=gh;});var Dt=C(va=>{Object.defineProperty(va,"__esModule",{value:true});va.Divert=void 0;var lA=Me(),cA=Tn(),hA=wn(),dA=Ge(),yh=Oi(),cy=de(),Ca=Te(),Ch=class n extends dA.InkObject{get targetPath(){if(this._targetPath!=null&&this._targetPath.isRelative){let e=this.targetPointer.Resolve();e&&(this._targetPath=e.path);}return this._targetPath}set targetPath(e){this._targetPath=e,this._targetPointer=yh.Pointer.Null;}get targetPointer(){if(this._targetPointer.isNull){let e=this.ResolvePath(this._targetPath).obj;if(this._targetPath===null)return (0, Ca.throwNullException)("this._targetPath");if(this._targetPath.lastComponent===null)return (0, Ca.throwNullException)("this._targetPath.lastComponent");if(this._targetPath.lastComponent.isIndex){if(e===null)return (0, Ca.throwNullException)("targetObj");this._targetPointer.container=e.parent instanceof cy.Container?e.parent:null,this._targetPointer.index=this._targetPath.lastComponent.index;}else this._targetPointer=yh.Pointer.StartOf(e instanceof cy.Container?e:null);}return this._targetPointer.copy()}get targetPathString(){return this.targetPath==null?null:this.CompactPathString(this.targetPath)}set targetPathString(e){e==null?this.targetPath=null:this.targetPath=new lA.Path(e);}get hasVariableTarget(){return this.variableDivertName!=null}constructor(e){super(),this._targetPath=null,this._targetPointer=yh.Pointer.Null,this.variableDivertName=null,this.pushesToStack=false,this.stackPushType=0,this.isExternal=false,this.externalArgs=0,this.isConditional=false,this.pushesToStack=false,typeof e<"u"&&(this.pushesToStack=true,this.stackPushType=e);}Equals(e){let t=e;return t instanceof n&&this.hasVariableTarget==t.hasVariableTarget?this.hasVariableTarget?this.variableDivertName==t.variableDivertName:this.targetPath===null?(0, Ca.throwNullException)("this.targetPath"):this.targetPath.Equals(t.targetPath):false}toString(){if(this.hasVariableTarget)return "Divert(variable: "+this.variableDivertName+")";if(this.targetPath==null)return "Divert(null)";{let e=new hA.StringBuilder,t=this.targetPath.toString();return e.Append("Divert"),this.isConditional&&e.Append("?"),this.pushesToStack&&(this.stackPushType==cA.PushPopType.Function?e.Append(" function"):e.Append(" tunnel")),e.Append(" -> "),e.Append(this.targetPathString),e.Append(" ("),e.Append(t),e.Append(")"),e.toString()}}};va.Divert=Ch;});var $t=C(Ea=>{Object.defineProperty(Ea,"__esModule",{value:true});Ea.SymbolType=void 0;var hy;(function(n){n[n.Knot=0]="Knot",n[n.List=1]="List",n[n.ListItem=2]="ListItem",n[n.Var=3]="Var",n[n.SubFlowAndWeave=4]="SubFlowAndWeave",n[n.Arg=5]="Arg",n[n.Temp=6]="Temp";})(hy||(Ea.SymbolType=hy={}));});var Zt=C(_a=>{Object.defineProperty(_a,"__esModule",{value:true});_a.VariableAssignment=void 0;var fA=Ge(),vh=class extends fA.InkObject{constructor(e,t){super(),this.variableName=e||null,this.isNewDeclaration=!!t,this.isGlobal=false;}toString(){return "VarAssign to "+this.variableName}};_a.VariableAssignment=vh;});var gr=C(ba=>{Object.defineProperty(ba,"__esModule",{value:true});ba.Choice=void 0;var pA=ma(),Sa=de(),Qt=Oe(),Eh=Dt(),dy=ue(),mA=oe(),gA=$t(),fy=Zt(),_h=class extends mA.ParsedObject{get runtimeChoice(){if(!this._runtimeChoice)throw new Error;return this._runtimeChoice}get name(){var e;return ((e=this.identifier)===null||e===void 0?void 0:e.name)||null}get condition(){return this._condition}set condition(e){this._condition=e,e&&this.AddContent(e);}get runtimeContainer(){return this._innerContentContainer}get innerContentContainer(){return this._innerContentContainer}get containerForCounting(){return this._innerContentContainer}get runtimePath(){if(!this.innerContentContainer||!this.innerContentContainer.path)throw new Error;return this.innerContentContainer.path}constructor(e,t,r){super(),this._condition=null,this._innerContentContainer=null,this._outerContainer=null,this._runtimeChoice=null,this._returnToR1=null,this._returnToR2=null,this._r1Label=null,this._r2Label=null,this._divertToStartContentOuter=null,this._divertToStartContentInner=null,this._startContentRuntimeContainer=null,this.isInvisibleDefault=false,this.hasWeaveStyleInlineBrackets=false,this.GenerateRuntimeObject=()=>{if(this._outerContainer=new Sa.Container,this._runtimeChoice=new pA.ChoicePoint(this.onceOnly),this._runtimeChoice.isInvisibleDefault=this.isInvisibleDefault,(this.startContent||this.choiceOnlyContent||this.condition)&&this._outerContainer.AddContent(Qt.ControlCommand.EvalStart()),this.startContent){this._returnToR1=new dy.DivertTargetValue,this._outerContainer.AddContent(this._returnToR1);let i=new fy.VariableAssignment("$r",true);this._outerContainer.AddContent(i),this._outerContainer.AddContent(Qt.ControlCommand.BeginString()),this._divertToStartContentOuter=new Eh.Divert,this._outerContainer.AddContent(this._divertToStartContentOuter),this._startContentRuntimeContainer=this.startContent.GenerateRuntimeObject(),this._startContentRuntimeContainer.name="s";let a=new Eh.Divert;a.variableDivertName="$r",this._startContentRuntimeContainer.AddContent(a),this._outerContainer.AddToNamedContentOnly(this._startContentRuntimeContainer),this._r1Label=new Sa.Container,this._r1Label.name="$r1",this._outerContainer.AddContent(this._r1Label),this._outerContainer.AddContent(Qt.ControlCommand.EndString()),this._runtimeChoice.hasStartContent=true;}if(this.choiceOnlyContent){this._outerContainer.AddContent(Qt.ControlCommand.BeginString());let i=this.choiceOnlyContent.GenerateRuntimeObject();this._outerContainer.AddContentsOfContainer(i),this._outerContainer.AddContent(Qt.ControlCommand.EndString()),this._runtimeChoice.hasChoiceOnlyContent=true;}if(this.condition&&(this.condition.GenerateIntoContainer(this._outerContainer),this._runtimeChoice.hasCondition=true),(this.startContent||this.choiceOnlyContent||this.condition)&&this._outerContainer.AddContent(Qt.ControlCommand.EvalEnd()),this._outerContainer.AddContent(this._runtimeChoice),this._innerContentContainer=new Sa.Container,this.startContent){this._returnToR2=new dy.DivertTargetValue,this._innerContentContainer.AddContent(Qt.ControlCommand.EvalStart()),this._innerContentContainer.AddContent(this._returnToR2),this._innerContentContainer.AddContent(Qt.ControlCommand.EvalEnd());let i=new fy.VariableAssignment("$r",true);this._innerContentContainer.AddContent(i),this._divertToStartContentInner=new Eh.Divert,this._innerContentContainer.AddContent(this._divertToStartContentInner),this._r2Label=new Sa.Container,this._r2Label.name="$r2",this._innerContentContainer.AddContent(this._r2Label);}if(this.innerContent){let i=this.innerContent.GenerateRuntimeObject();this._innerContentContainer.AddContentsOfContainer(i);}return this.story.countAllVisits&&(this._innerContentContainer.visitsShouldBeCounted=true),this._innerContentContainer.countingAtStartOnly=true,this._outerContainer},this.toString=()=>this.choiceOnlyContent!==null?`* ${this.startContent}[${this.choiceOnlyContent}]...`:`* ${this.startContent}...`,this.startContent=e,this.choiceOnlyContent=t,this.innerContent=r,this.indentationDepth=1,e&&this.AddContent(this.startContent),t&&this.AddContent(this.choiceOnlyContent),r&&this.AddContent(this.innerContent),this.onceOnly=true;}get typeName(){return "Choice"}ResolveReferences(e){var t;if(this._innerContentContainer&&(this.runtimeChoice.pathOnChoice=this._innerContentContainer.path,this.onceOnly&&(this._innerContentContainer.visitsShouldBeCounted=true)),this._returnToR1){if(!this._r1Label)throw new Error;this._returnToR1.targetPath=this._r1Label.path;}if(this._returnToR2){if(!this._r2Label)throw new Error;this._returnToR2.targetPath=this._r2Label.path;}if(this._divertToStartContentOuter){if(!this._startContentRuntimeContainer)throw new Error;this._divertToStartContentOuter.targetPath=this._startContentRuntimeContainer.path;}if(this._divertToStartContentInner){if(!this._startContentRuntimeContainer)throw new Error;this._divertToStartContentInner.targetPath=this._startContentRuntimeContainer.path;}super.ResolveReferences(e),this.identifier&&(((t=this.identifier)===null||t===void 0?void 0:t.name)||"").length>0&&e.CheckForNamingCollisions(this,this.identifier,gA.SymbolType.SubFlowAndWeave);}};ba.Choice=_h;});var py=C(wa=>{Object.defineProperty(wa,"__esModule",{value:true});wa.StringParserElement=void 0;var Da=class n{constructor(){this.characterIndex=0,this.characterInLineIndex=0,this.lineIndex=0,this.reportedErrorInScope=false,this.uniqueId=0,this.customFlags=0,this.CopyFrom=e=>{n._uniqueIdCounter++,this.uniqueId=n._uniqueIdCounter,this.characterIndex=e.characterIndex,this.characterInLineIndex=e.characterInLineIndex,this.lineIndex=e.lineIndex,this.customFlags=e.customFlags,this.reportedErrorInScope=false;},this.SquashFrom=e=>{this.characterIndex=e.characterIndex,this.characterInLineIndex=e.characterInLineIndex,this.lineIndex=e.lineIndex,this.reportedErrorInScope=e.reportedErrorInScope,this.customFlags=e.customFlags;};}};wa.StringParserElement=Da;Da._uniqueIdCounter=1e3;});var gy=C(Aa=>{Object.defineProperty(Aa,"__esModule",{value:true});Aa.StringParserState=void 0;var my=py(),Sh=class{get currentElement(){return this._stack[this._numElements-1]}get lineIndex(){return this.currentElement.lineIndex}set lineIndex(e){this.currentElement.lineIndex=e;}get characterIndex(){return this.currentElement.characterIndex}set characterIndex(e){this.currentElement.characterIndex=e;}get characterInLineIndex(){return this.currentElement.characterInLineIndex}set characterInLineIndex(e){this.currentElement.characterInLineIndex=e;}get customFlags(){return this.currentElement.customFlags}set customFlags(e){this.currentElement.customFlags=e;}get errorReportedAlreadyInScope(){return this.currentElement.reportedErrorInScope}get stackHeight(){return this._numElements}constructor(){this._stack=[],this._numElements=0,this.StringParserState=()=>{this._stack=new Array(200);for(let r=0;r<200;++r)this._stack[r]=new my.StringParserElement;this._numElements=1;},this.Push=()=>{if(this._numElements>=this._stack.length&&this._numElements>0)throw new Error("Stack overflow in parser state.");let t=this._stack[this._numElements-1],r=this._stack[this._numElements];return this._numElements++,r.CopyFrom(t),r.uniqueId},this.Pop=t=>{if(this._numElements==1)throw new Error("Attempting to remove final stack element is illegal! Mismatched Begin/Succceed/Fail?");if(this.currentElement.uniqueId!=t)throw new Error("Mismatched rule IDs while Poping - do you have mismatched Begin/Succeed/Fail?");this._numElements-=1;},this.Peek=t=>{if(this.currentElement.uniqueId!=t)throw new Error("Mismatched rule IDs while Peeking - do you have mismatched Begin/Succeed/Fail?");return this._stack[this._numElements-1]},this.PeekPenultimate=()=>this._numElements>=2?this._stack[this._numElements-2]:null,this.Squash=()=>{if(this._numElements<2)throw new Error("Attempting to remove final stack element is illegal! Mismatched Begin/Succceed/Fail?");let t=this._stack[this._numElements-2],r=this._stack[this._numElements-1];t.SquashFrom(r),this._numElements-=1;},this.NoteErrorReported=()=>{for(let t of this._stack)t.reportedErrorInScope=true;};let e=200;for(let t=0;t<e;t++)this._stack[t]=new my.StringParserElement;this._numElements=1;}};Aa.StringParserState=Sh;});var Dh=C(On=>{Object.defineProperty(On,"__esModule",{value:true});On.StringParser=On.ParseSuccess=void 0;var bh=Pi(),yA=gy();On.ParseSuccess=Symbol("ParseSuccessStruct");var xi=class n{constructor(e){this.ParseRule=null,this.errorHandler=null,this.hadError=false,this.BeginRule=()=>this.state.Push(),this.FailRule=r=>(this.state.Pop(r),null),this.CancelRule=r=>{this.state.Pop(r);},this.SucceedRule=(r,i=null)=>{let a=this.state.Peek(r),s=this.state.PeekPenultimate();this.RuleDidSucceed&&this.RuleDidSucceed(i,s,a),this.state.Squash();let o=i;return o===null&&(o=n.ParseSuccess),o},this.Expect=(r,i=null,a=null)=>{let s=this.ParseObject(r);if(s===null){i===null&&(i=r.name);let o,u=this.LineRemainder();u===null||u.length===0?o="end of line":o=`'${u}'`,this.Error(`Expected ${i} but saw ${o}`),a!==null&&(s=a());}return s},this.Error=(r,i=false)=>{this.ErrorOnLine(r,this.lineIndex+1,i);},this.ErrorWithParsedObject=(r,i,a=false)=>{this.ErrorOnLine(r,i.debugMetadata?i.debugMetadata.startLineNumber:-1,a);},this.ErrorOnLine=(r,i,a)=>{if(!this.state.errorReportedAlreadyInScope){let s=a?"Warning":"Error";if(this.errorHandler)this.errorHandler(r,this.index,i-1,a);else throw new Error(`${s} on line ${i}: ${r}`);this.state.NoteErrorReported();}a||(this.hadError=true);},this.Warning=r=>this.Error(r,true),this.LineRemainder=()=>this.Peek(()=>this.ParseUntilCharactersFromString(`
8
+ deps: ${t}}`};var ab={keyword:"dependencies",type:"object",schemaType:"object",error:Ct.error,code(n){let[e,t]=ob(n);Mm(n,e),Gm(n,t);}};function ob({schema:n}){let e={},t={};for(let r in n){if(r==="__proto__")continue;let i=Array.isArray(n[r])?e:t;i[r]=n[r];}return [e,t]}function Mm(n,e=n.schema){let{gen:t,data:r,it:i}=n;if(Object.keys(e).length===0)return;let a=t.let("missing");for(let s in e){let o=e[s];if(o.length===0)continue;let u=(0, di.propertyInData)(t,r,s,i.opts.ownProperties);n.setParams({property:s,depsCount:o.length,deps:o.join(", ")}),i.allErrors?t.if(u,()=>{for(let l of o)(0, di.checkReportMissingProp)(n,l);}):(t.if((0, ac._)`${u} && (${(0, di.checkMissingProp)(n,o,a)})`),(0, di.reportMissingProp)(n,a),t.else());}}Ct.validatePropertyDeps=Mm;function Gm(n,e=n.schema){let{gen:t,data:r,keyword:i,it:a}=n,s=t.name("valid");for(let o in e)(0, sb.alwaysValidSchema)(a,e[o])||(t.if((0, di.propertyInData)(t,r,o,a.opts.ownProperties),()=>{let u=n.subschema({keyword:i,schemaProp:o},s);n.mergeValidEvaluated(u,s);},()=>t.var(s,true)),n.ok(s));}Ct.validateSchemaDeps=Gm;Ct.default=ab;});var Hm=C(oc=>{Object.defineProperty(oc,"__esModule",{value:true});var Jm=I(),ub=q(),lb={message:"property name must be valid",params:({params:n})=>(0, Jm._)`{propertyName: ${n.propertyName}}`},cb={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:lb,code(n){let{gen:e,schema:t,data:r,it:i}=n;if((0, ub.alwaysValidSchema)(i,t))return;let a=e.name("valid");e.forIn("key",r,s=>{n.setParams({propertyName:s}),n.subschema({keyword:"propertyNames",data:s,dataTypes:["string"],propertyName:s,compositeRule:true},a),e.if((0, Jm.not)(a),()=>{n.error(true),i.allErrors||e.break();});}),n.ok(a);}};oc.default=cb;});var lc=C(uc=>{Object.defineProperty(uc,"__esModule",{value:true});var ks=Ze(),dt=I(),hb=Ye(),Rs=q(),db={message:"must NOT have additional properties",params:({params:n})=>(0, dt._)`{additionalProperty: ${n.additionalProperty}}`},fb={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:true,trackErrors:true,error:db,code(n){let{gen:e,schema:t,parentSchema:r,data:i,errsCount:a,it:s}=n;if(!a)throw new Error("ajv implementation error");let{allErrors:o,opts:u}=s;if(s.props=true,u.removeAdditional!=="all"&&(0, Rs.alwaysValidSchema)(s,t))return;let l=(0, ks.allSchemaProperties)(r.properties),c=(0, ks.allSchemaProperties)(r.patternProperties);h(),n.ok((0, dt._)`${a} === ${hb.default.errors}`);function h(){e.forIn("key",i,v=>{!l.length&&!c.length?m(v):e.if(f(v),()=>m(v));});}function f(v){let E;if(l.length>8){let b=(0, Rs.schemaRefOrVal)(s,r.properties,"properties");E=(0, ks.isOwnProperty)(e,b,v);}else l.length?E=(0, dt.or)(...l.map(b=>(0, dt._)`${v} === ${b}`)):E=dt.nil;return c.length&&(E=(0, dt.or)(E,...c.map(b=>(0, dt._)`${(0, ks.usePattern)(n,b)}.test(${v})`))),(0, dt.not)(E)}function p(v){e.code((0, dt._)`delete ${i}[${v}]`);}function m(v){if(u.removeAdditional==="all"||u.removeAdditional&&t===false){p(v);return}if(t===false){n.setParams({additionalProperty:v}),n.error(),o||e.break();return}if(typeof t=="object"&&!(0, Rs.alwaysValidSchema)(s,t)){let E=e.name("valid");u.removeAdditional==="failing"?(g(v,E,false),e.if((0, dt.not)(E),()=>{n.reset(),p(v);})):(g(v,E),o||e.if((0, dt.not)(E),()=>e.break()));}}function g(v,E,b){let d={keyword:"additionalProperties",dataProp:v,dataPropType:Rs.Type.Str};b===false&&Object.assign(d,{compositeRule:true,createErrors:false,allErrors:false}),n.subschema(d,E);}}};uc.default=fb;});var Km=C(hc=>{Object.defineProperty(hc,"__esModule",{value:true});var pb=zn(),Um=Ze(),cc=q(),zm=lc(),mb={keyword:"properties",type:"object",schemaType:"object",code(n){let{gen:e,schema:t,parentSchema:r,data:i,it:a}=n;a.opts.removeAdditional==="all"&&r.additionalProperties===void 0&&zm.default.code(new pb.KeywordCxt(a,zm.default,"additionalProperties"));let s=(0, Um.allSchemaProperties)(t);for(let h of s)a.definedProperties.add(h);a.opts.unevaluated&&s.length&&a.props!==true&&(a.props=cc.mergeEvaluated.props(e,(0, cc.toHash)(s),a.props));let o=s.filter(h=>!(0, cc.alwaysValidSchema)(a,t[h]));if(o.length===0)return;let u=e.name("valid");for(let h of o)l(h)?c(h):(e.if((0, Um.propertyInData)(e,i,h,a.opts.ownProperties)),c(h),a.allErrors||e.else().var(u,true),e.endIf()),n.it.definedProperties.add(h),n.ok(u);function l(h){return a.opts.useDefaults&&!a.compositeRule&&t[h].default!==void 0}function c(h){n.subschema({keyword:"properties",schemaProp:h,dataProp:h},u);}}};hc.default=mb;});var Qm=C(dc=>{Object.defineProperty(dc,"__esModule",{value:true});var Xm=Ze(),$s=I(),Ym=q(),Zm=q(),gb={keyword:"patternProperties",type:"object",schemaType:"object",code(n){let{gen:e,schema:t,data:r,parentSchema:i,it:a}=n,{opts:s}=a,o=(0, Xm.allSchemaProperties)(t),u=o.filter(g=>(0, Ym.alwaysValidSchema)(a,t[g]));if(o.length===0||u.length===o.length&&(!a.opts.unevaluated||a.props===true))return;let l=s.strictSchema&&!s.allowMatchingProperties&&i.properties,c=e.name("valid");a.props!==true&&!(a.props instanceof $s.Name)&&(a.props=(0, Zm.evaluatedPropsToName)(e,a.props));let{props:h}=a;f();function f(){for(let g of o)l&&p(g),a.allErrors?m(g):(e.var(c,true),m(g),e.if(c));}function p(g){for(let v in l)new RegExp(g).test(v)&&(0, Ym.checkStrictMode)(a,`property ${v} matches pattern ${g} (use allowMatchingProperties)`);}function m(g){e.forIn("key",r,v=>{e.if((0, $s._)`${(0, Xm.usePattern)(n,g)}.test(${v})`,()=>{let E=u.includes(g);E||n.subschema({keyword:"patternProperties",schemaProp:g,dataProp:v,dataPropType:Zm.Type.Str},c),a.opts.unevaluated&&h!==true?e.assign((0, $s._)`${h}[${v}]`,true):!E&&!a.allErrors&&e.if((0, $s.not)(c),()=>e.break());});});}}};dc.default=gb;});var eg=C(fc=>{Object.defineProperty(fc,"__esModule",{value:true});var yb=q(),Cb={keyword:"not",schemaType:["object","boolean"],trackErrors:true,code(n){let{gen:e,schema:t,it:r}=n;if((0, yb.alwaysValidSchema)(r,t)){n.fail();return}let i=e.name("valid");n.subschema({keyword:"not",compositeRule:true,createErrors:false,allErrors:false},i),n.failResult(i,()=>n.reset(),()=>n.error());},error:{message:"must NOT be valid"}};fc.default=Cb;});var tg=C(pc=>{Object.defineProperty(pc,"__esModule",{value:true});var vb=Ze(),Eb={keyword:"anyOf",schemaType:"array",trackErrors:true,code:vb.validateUnion,error:{message:"must match a schema in anyOf"}};pc.default=Eb;});var ng=C(mc=>{Object.defineProperty(mc,"__esModule",{value:true});var Vs=I(),_b=q(),Sb={message:"must match exactly one schema in oneOf",params:({params:n})=>(0, Vs._)`{passingSchemas: ${n.passing}}`},bb={keyword:"oneOf",schemaType:"array",trackErrors:true,error:Sb,code(n){let{gen:e,schema:t,parentSchema:r,it:i}=n;if(!Array.isArray(t))throw new Error("ajv implementation error");if(i.opts.discriminator&&r.discriminator)return;let a=t,s=e.let("valid",false),o=e.let("passing",null),u=e.name("_valid");n.setParams({passing:o}),e.block(l),n.result(s,()=>n.reset(),()=>n.error(true));function l(){a.forEach((c,h)=>{let f;(0, _b.alwaysValidSchema)(i,c)?e.var(u,true):f=n.subschema({keyword:"oneOf",schemaProp:h,compositeRule:true},u),h>0&&e.if((0, Vs._)`${u} && ${s}`).assign(s,false).assign(o,(0, Vs._)`[${o}, ${h}]`).else(),e.if(u,()=>{e.assign(s,true),e.assign(o,h),f&&n.mergeEvaluated(f,Vs.Name);});});}}};mc.default=bb;});var rg=C(gc=>{Object.defineProperty(gc,"__esModule",{value:true});var wb=q(),Db={keyword:"allOf",schemaType:"array",code(n){let{gen:e,schema:t,it:r}=n;if(!Array.isArray(t))throw new Error("ajv implementation error");let i=e.name("valid");t.forEach((a,s)=>{if((0, wb.alwaysValidSchema)(r,a))return;let o=n.subschema({keyword:"allOf",schemaProp:s},i);n.ok(i),n.mergeEvaluated(o);});}};gc.default=Db;});var ag=C(yc=>{Object.defineProperty(yc,"__esModule",{value:true});var js=I(),sg=q(),Ab={message:({params:n})=>(0, js.str)`must match "${n.ifClause}" schema`,params:({params:n})=>(0, js._)`{failingKeyword: ${n.ifClause}}`},Pb={keyword:"if",schemaType:["object","boolean"],trackErrors:true,error:Ab,code(n){let{gen:e,parentSchema:t,it:r}=n;t.then===void 0&&t.else===void 0&&(0, sg.checkStrictMode)(r,'"if" without "then" and "else" is ignored');let i=ig(r,"then"),a=ig(r,"else");if(!i&&!a)return;let s=e.let("valid",true),o=e.name("_valid");if(u(),n.reset(),i&&a){let c=e.let("ifClause");n.setParams({ifClause:c}),e.if(o,l("then",c),l("else",c));}else i?e.if(o,l("then")):e.if((0, js.not)(o),l("else"));n.pass(s,()=>n.error(true));function u(){let c=n.subschema({keyword:"if",compositeRule:true,createErrors:false,allErrors:false},o);n.mergeEvaluated(c);}function l(c,h){return ()=>{let f=n.subschema({keyword:c},o);e.assign(s,o),n.mergeValidEvaluated(f,s),h?e.assign(h,(0, js._)`${c}`):n.setParams({ifClause:c});}}}};function ig(n,e){let t=n.schema[e];return t!==void 0&&!(0, sg.alwaysValidSchema)(n,t)}yc.default=Pb;});var og=C(Cc=>{Object.defineProperty(Cc,"__esModule",{value:true});var Tb=q(),xb={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:n,parentSchema:e,it:t}){e.if===void 0&&(0, Tb.checkStrictMode)(t,`"${n}" without "if" is ignored`);}};Cc.default=xb;});var Ec=C(vc=>{Object.defineProperty(vc,"__esModule",{value:true});var Ob=tc(),Fb=qm(),Nb=nc(),Ib=Bm(),kb=Wm(),Rb=Is(),$b=Hm(),Vb=lc(),jb=Km(),qb=Qm(),Lb=eg(),Bb=tg(),Wb=ng(),Mb=rg(),Gb=ag(),Jb=og();function Hb(n=false){let e=[Lb.default,Bb.default,Wb.default,Mb.default,Gb.default,Jb.default,$b.default,Vb.default,Rb.default,jb.default,qb.default];return n?e.push(Fb.default,Ib.default):e.push(Ob.default,Nb.default),e.push(kb.default),e}vc.default=Hb;});var ug=C(_c=>{Object.defineProperty(_c,"__esModule",{value:true});var he=I(),Ub={message:({schemaCode:n})=>(0, he.str)`must match format "${n}"`,params:({schemaCode:n})=>(0, he._)`{format: ${n}}`},zb={keyword:"format",type:["number","string"],schemaType:"string",$data:true,error:Ub,code(n,e){let{gen:t,data:r,$data:i,schema:a,schemaCode:s,it:o}=n,{opts:u,errSchemaPath:l,schemaEnv:c,self:h}=o;if(!u.validateFormats)return;i?f():p();function f(){let m=t.scopeValue("formats",{ref:h.formats,code:u.code.formats}),g=t.const("fDef",(0, he._)`${m}[${s}]`),v=t.let("fType"),E=t.let("format");t.if((0, he._)`typeof ${g} == "object" && !(${g} instanceof RegExp)`,()=>t.assign(v,(0, he._)`${g}.type || "string"`).assign(E,(0, he._)`${g}.validate`),()=>t.assign(v,(0, he._)`"string"`).assign(E,g)),n.fail$data((0, he.or)(b(),d()));function b(){return u.strictSchema===false?he.nil:(0, he._)`${s} && !${E}`}function d(){let _=c.$async?(0, he._)`(${g}.async ? await ${E}(${r}) : ${E}(${r}))`:(0, he._)`${E}(${r})`,y=(0, he._)`(typeof ${E} == "function" ? ${_} : ${E}.test(${r}))`;return (0, he._)`${E} && ${E} !== true && ${v} === ${e} && !${y}`}}function p(){let m=h.formats[a];if(!m){b();return}if(m===true)return;let[g,v,E]=d(m);g===e&&n.pass(_());function b(){if(u.strictSchema===false){h.logger.warn(y());return}throw new Error(y());function y(){return `unknown format "${a}" ignored in schema at path "${l}"`}}function d(y){let S=y instanceof RegExp?(0, he.regexpCode)(y):u.code.formats?(0, he._)`${u.code.formats}${(0, he.getProperty)(a)}`:void 0,D=t.scopeValue("formats",{key:a,ref:y,code:S});return typeof y=="object"&&!(y instanceof RegExp)?[y.type||"string",y.validate,(0, he._)`${D}.validate`]:["string",y,D]}function _(){if(typeof m=="object"&&!(m instanceof RegExp)&&m.async){if(!c.$async)throw new Error("async format in sync schema");return (0, he._)`await ${E}(${r})`}return typeof v=="function"?(0, he._)`${E}(${r})`:(0, he._)`${E}.test(${r})`}}}};_c.default=zb;});var bc=C(Sc=>{Object.defineProperty(Sc,"__esModule",{value:true});var Kb=ug(),Xb=[Kb.default];Sc.default=Xb;});var wc=C(er=>{Object.defineProperty(er,"__esModule",{value:true});er.contentVocabulary=er.metadataVocabulary=void 0;er.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];er.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"];});var cg=C(Dc=>{Object.defineProperty(Dc,"__esModule",{value:true});var Yb=Vl(),Zb=Ql(),Qb=Ec(),ew=bc(),lg=wc(),tw=[Yb.default,Zb.default,(0, Qb.default)(),ew.default,lg.metadataVocabulary,lg.contentVocabulary];Dc.default=tw;});var dg=C(qs=>{Object.defineProperty(qs,"__esModule",{value:true});qs.DiscrError=void 0;var hg;(function(n){n.Tag="tag",n.Mapping="mapping";})(hg||(qs.DiscrError=hg={}));});var Tc=C(Pc=>{Object.defineProperty(Pc,"__esModule",{value:true});var tr=I(),Ac=dg(),fg=Zr(),nw=Kn(),rw=q(),iw={message:({params:{discrError:n,tagName:e}})=>n===Ac.DiscrError.Tag?`tag "${e}" must be string`:`value of tag "${e}" must be in oneOf`,params:({params:{discrError:n,tag:e,tagName:t}})=>(0, tr._)`{error: ${n}, tag: ${t}, tagValue: ${e}}`},sw={keyword:"discriminator",type:"object",schemaType:"object",error:iw,code(n){let{gen:e,data:t,schema:r,parentSchema:i,it:a}=n,{oneOf:s}=i;if(!a.opts.discriminator)throw new Error("discriminator: requires discriminator option");let o=r.propertyName;if(typeof o!="string")throw new Error("discriminator: requires propertyName");if(r.mapping)throw new Error("discriminator: mapping is not supported");if(!s)throw new Error("discriminator: requires oneOf keyword");let u=e.let("valid",false),l=e.const("tag",(0, tr._)`${t}${(0, tr.getProperty)(o)}`);e.if((0, tr._)`typeof ${l} == "string"`,()=>c(),()=>n.error(false,{discrError:Ac.DiscrError.Tag,tag:l,tagName:o})),n.ok(u);function c(){let p=f();e.if(false);for(let m in p)e.elseIf((0, tr._)`${l} === ${m}`),e.assign(u,h(p[m]));e.else(),n.error(false,{discrError:Ac.DiscrError.Mapping,tag:l,tagName:o}),e.endIf();}function h(p){let m=e.name("valid"),g=n.subschema({keyword:"oneOf",schemaProp:p},m);return n.mergeEvaluated(g,tr.Name),m}function f(){var p;let m={},g=E(i),v=true;for(let _=0;_<s.length;_++){let y=s[_];if(y?.$ref&&!(0, rw.schemaHasRulesButRef)(y,a.self.RULES)){let D=y.$ref;if(y=fg.resolveRef.call(a.self,a.schemaEnv.root,a.baseId,D),y instanceof fg.SchemaEnv&&(y=y.schema),y===void 0)throw new nw.default(a.opts.uriResolver,a.baseId,D)}let S=(p=y?.properties)===null||p===void 0?void 0:p[o];if(typeof S!="object")throw new Error(`discriminator: oneOf subschemas (or referenced schemas) must have "properties/${o}"`);v=v&&(g||E(y)),b(S,_);}if(!v)throw new Error(`discriminator: "${o}" must be required`);return m;function E({required:_}){return Array.isArray(_)&&_.includes(o)}function b(_,y){if(_.const)d(_.const,y);else if(_.enum)for(let S of _.enum)d(S,y);else throw new Error(`discriminator: "properties/${o}" must have "const" or "enum"`)}function d(_,y){if(typeof _!="string"||_ in m)throw new Error(`discriminator: "${o}" values must be unique strings`);m[_]=y;}}}};Pc.default=sw;});var pg=C((uN,aw)=>{aw.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:true,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:true,readOnly:{type:"boolean",default:false},examples:{type:"array",items:true},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:true},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:false},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:true,enum:{type:"array",items:true,minItems:1,uniqueItems:true},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:true}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:true};});var gg=C((ie,xc)=>{Object.defineProperty(ie,"__esModule",{value:true});ie.MissingRefError=ie.ValidationError=ie.CodeGen=ie.Name=ie.nil=ie.stringify=ie.str=ie._=ie.KeywordCxt=ie.Ajv=void 0;var ow=kl(),uw=cg(),lw=Tc(),mg=pg(),cw=["/properties"],Ls="http://json-schema.org/draft-07/schema",nr=class extends ow.default{_addVocabularies(){super._addVocabularies(),uw.default.forEach(e=>this.addVocabulary(e)),this.opts.discriminator&&this.addKeyword(lw.default);}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let e=this.opts.$data?this.$dataMetaSchema(mg,cw):mg;this.addMetaSchema(e,Ls,false),this.refs["http://json-schema.org/schema"]=Ls;}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(Ls)?Ls:void 0)}};ie.Ajv=nr;xc.exports=ie=nr;xc.exports.Ajv=nr;Object.defineProperty(ie,"__esModule",{value:true});ie.default=nr;var hw=zn();Object.defineProperty(ie,"KeywordCxt",{enumerable:true,get:function(){return hw.KeywordCxt}});var rr=I();Object.defineProperty(ie,"_",{enumerable:true,get:function(){return rr._}});Object.defineProperty(ie,"str",{enumerable:true,get:function(){return rr.str}});Object.defineProperty(ie,"stringify",{enumerable:true,get:function(){return rr.stringify}});Object.defineProperty(ie,"nil",{enumerable:true,get:function(){return rr.nil}});Object.defineProperty(ie,"Name",{enumerable:true,get:function(){return rr.Name}});Object.defineProperty(ie,"CodeGen",{enumerable:true,get:function(){return rr.CodeGen}});var dw=Yr();Object.defineProperty(ie,"ValidationError",{enumerable:true,get:function(){return dw.default}});var fw=Kn();Object.defineProperty(ie,"MissingRefError",{enumerable:true,get:function(){return fw.default}});});var Fc=C(fi=>{Object.defineProperty(fi,"__esModule",{value:true});fi.dynamicAnchor=void 0;var Oc=I(),pw=Ye(),yg=Zr(),mw=Ps(),gw={keyword:"$dynamicAnchor",schemaType:"string",code:n=>Cg(n,n.schema)};function Cg(n,e){let{gen:t,it:r}=n;r.schemaEnv.root.dynamicAnchors[e]=true;let i=(0, Oc._)`${pw.default.dynamicAnchors}${(0, Oc.getProperty)(e)}`,a=r.errSchemaPath==="#"?r.validateName:yw(n);t.if((0, Oc._)`!${i}`,()=>t.assign(i,a));}fi.dynamicAnchor=Cg;function yw(n){let{schemaEnv:e,schema:t,self:r}=n.it,{root:i,baseId:a,localRefs:s,meta:o}=e.root,{schemaId:u}=r.opts,l=new yg.SchemaEnv({schema:t,schemaId:u,root:i,baseId:a,localRefs:s,meta:o});return yg.compileSchema.call(r,l),(0, mw.getValidate)(n,l)}fi.default=gw;});var Nc=C(pi=>{Object.defineProperty(pi,"__esModule",{value:true});pi.dynamicRef=void 0;var vg=I(),Cw=Ye(),Eg=Ps(),vw={keyword:"$dynamicRef",schemaType:"string",code:n=>_g(n,n.schema)};function _g(n,e){let{gen:t,keyword:r,it:i}=n;if(e[0]!=="#")throw new Error(`"${r}" only supports hash fragment reference`);let a=e.slice(1);if(i.allErrors)s();else {let u=t.let("valid",false);s(u),n.ok(u);}function s(u){if(i.schemaEnv.root.dynamicAnchors[a]){let l=t.let("_v",(0, vg._)`${Cw.default.dynamicAnchors}${(0, vg.getProperty)(a)}`);t.if(l,o(l,u),o(i.validateName,u));}else o(i.validateName,u)();}function o(u,l){return l?()=>t.block(()=>{(0, Eg.callRef)(n,u),t.let(l,true);}):()=>(0, Eg.callRef)(n,u)}}pi.dynamicRef=_g;pi.default=vw;});var Sg=C(Ic=>{Object.defineProperty(Ic,"__esModule",{value:true});var Ew=Fc(),_w=q(),Sw={keyword:"$recursiveAnchor",schemaType:"boolean",code(n){n.schema?(0, Ew.dynamicAnchor)(n,""):(0, _w.checkStrictMode)(n.it,"$recursiveAnchor: false is ignored");}};Ic.default=Sw;});var bg=C(kc=>{Object.defineProperty(kc,"__esModule",{value:true});var bw=Nc(),ww={keyword:"$recursiveRef",schemaType:"string",code:n=>(0, bw.dynamicRef)(n,n.schema)};kc.default=ww;});var wg=C(Rc=>{Object.defineProperty(Rc,"__esModule",{value:true});var Dw=Fc(),Aw=Nc(),Pw=Sg(),Tw=bg(),xw=[Dw.default,Aw.default,Pw.default,Tw.default];Rc.default=xw;});var Ag=C($c=>{Object.defineProperty($c,"__esModule",{value:true});var Dg=Is(),Ow={keyword:"dependentRequired",type:"object",schemaType:"object",error:Dg.error,code:n=>(0, Dg.validatePropertyDeps)(n)};$c.default=Ow;});var Pg=C(Vc=>{Object.defineProperty(Vc,"__esModule",{value:true});var Fw=Is(),Nw={keyword:"dependentSchemas",type:"object",schemaType:"object",code:n=>(0, Fw.validateSchemaDeps)(n)};Vc.default=Nw;});var Tg=C(jc=>{Object.defineProperty(jc,"__esModule",{value:true});var Iw=q(),kw={keyword:["maxContains","minContains"],type:"array",schemaType:"number",code({keyword:n,parentSchema:e,it:t}){e.contains===void 0&&(0, Iw.checkStrictMode)(t,`"${n}" without "contains" is ignored`);}};jc.default=kw;});var xg=C(qc=>{Object.defineProperty(qc,"__esModule",{value:true});var Rw=Ag(),$w=Pg(),Vw=Tg(),jw=[Rw.default,$w.default,Vw.default];qc.default=jw;});var Fg=C(Lc=>{Object.defineProperty(Lc,"__esModule",{value:true});var Kt=I(),Og=q(),qw=Ye(),Lw={message:"must NOT have unevaluated properties",params:({params:n})=>(0, Kt._)`{unevaluatedProperty: ${n.unevaluatedProperty}}`},Bw={keyword:"unevaluatedProperties",type:"object",schemaType:["boolean","object"],trackErrors:true,error:Lw,code(n){let{gen:e,schema:t,data:r,errsCount:i,it:a}=n;if(!i)throw new Error("ajv implementation error");let{allErrors:s,props:o}=a;o instanceof Kt.Name?e.if((0, Kt._)`${o} !== true`,()=>e.forIn("key",r,h=>e.if(l(o,h),()=>u(h)))):o!==true&&e.forIn("key",r,h=>o===void 0?u(h):e.if(c(o,h),()=>u(h))),a.props=true,n.ok((0, Kt._)`${i} === ${qw.default.errors}`);function u(h){if(t===false){n.setParams({unevaluatedProperty:h}),n.error(),s||e.break();return}if(!(0, Og.alwaysValidSchema)(a,t)){let f=e.name("valid");n.subschema({keyword:"unevaluatedProperties",dataProp:h,dataPropType:Og.Type.Str},f),s||e.if((0, Kt.not)(f),()=>e.break());}}function l(h,f){return (0, Kt._)`!${h} || !${h}[${f}]`}function c(h,f){let p=[];for(let m in h)h[m]===true&&p.push((0, Kt._)`${f} !== ${m}`);return (0, Kt.and)(...p)}}};Lc.default=Bw;});var Ig=C(Bc=>{Object.defineProperty(Bc,"__esModule",{value:true});var wn=I(),Ng=q(),Ww={message:({params:{len:n}})=>(0, wn.str)`must NOT have more than ${n} items`,params:({params:{len:n}})=>(0, wn._)`{limit: ${n}}`},Mw={keyword:"unevaluatedItems",type:"array",schemaType:["boolean","object"],error:Ww,code(n){let{gen:e,schema:t,data:r,it:i}=n,a=i.items||0;if(a===true)return;let s=e.const("len",(0, wn._)`${r}.length`);if(t===false)n.setParams({len:a}),n.fail((0, wn._)`${s} > ${a}`);else if(typeof t=="object"&&!(0, Ng.alwaysValidSchema)(i,t)){let u=e.var("valid",(0, wn._)`${s} <= ${a}`);e.if((0, wn.not)(u),()=>o(u,a)),n.ok(u);}i.items=true;function o(u,l){e.forRange("i",l,s,c=>{n.subschema({keyword:"unevaluatedItems",dataProp:c,dataPropType:Ng.Type.Num},u),i.allErrors||e.if((0, wn.not)(u),()=>e.break());});}}};Bc.default=Mw;});var kg=C(Wc=>{Object.defineProperty(Wc,"__esModule",{value:true});var Gw=Fg(),Jw=Ig(),Hw=[Gw.default,Jw.default];Wc.default=Hw;});var $g=C(Mc=>{Object.defineProperty(Mc,"__esModule",{value:true});var Uw=Vl(),zw=Ql(),Kw=Ec(),Xw=wg(),Yw=xg(),Zw=kg(),Qw=bc(),Rg=wc(),eD=[Xw.default,Uw.default,zw.default,(0, Kw.default)(true),Qw.default,Rg.metadataVocabulary,Rg.contentVocabulary,Yw.default,Zw.default];Mc.default=eD;});var Vg=C((SN,tD)=>{tD.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/schema",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/core":true,"https://json-schema.org/draft/2020-12/vocab/applicator":true,"https://json-schema.org/draft/2020-12/vocab/unevaluated":true,"https://json-schema.org/draft/2020-12/vocab/validation":true,"https://json-schema.org/draft/2020-12/vocab/meta-data":true,"https://json-schema.org/draft/2020-12/vocab/format-annotation":true,"https://json-schema.org/draft/2020-12/vocab/content":true},$dynamicAnchor:"meta",title:"Core and Validation specifications meta-schema",allOf:[{$ref:"meta/core"},{$ref:"meta/applicator"},{$ref:"meta/unevaluated"},{$ref:"meta/validation"},{$ref:"meta/meta-data"},{$ref:"meta/format-annotation"},{$ref:"meta/content"}],type:["object","boolean"],$comment:"This meta-schema also defines keywords that have appeared in previous drafts in order to prevent incompatible extensions as they remain in common use.",properties:{definitions:{$comment:'"definitions" has been replaced by "$defs".',type:"object",additionalProperties:{$dynamicRef:"#meta"},deprecated:true,default:{}},dependencies:{$comment:'"dependencies" has been split and replaced by "dependentSchemas" and "dependentRequired" in order to serve their differing semantics.',type:"object",additionalProperties:{anyOf:[{$dynamicRef:"#meta"},{$ref:"meta/validation#/$defs/stringArray"}]},deprecated:true,default:{}},$recursiveAnchor:{$comment:'"$recursiveAnchor" has been replaced by "$dynamicAnchor".',$ref:"meta/core#/$defs/anchorString",deprecated:true},$recursiveRef:{$comment:'"$recursiveRef" has been replaced by "$dynamicRef".',$ref:"meta/core#/$defs/uriReferenceString",deprecated:true}}};});var jg=C((bN,nD)=>{nD.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/applicator",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/applicator":true},$dynamicAnchor:"meta",title:"Applicator vocabulary meta-schema",type:["object","boolean"],properties:{prefixItems:{$ref:"#/$defs/schemaArray"},items:{$dynamicRef:"#meta"},contains:{$dynamicRef:"#meta"},additionalProperties:{$dynamicRef:"#meta"},properties:{type:"object",additionalProperties:{$dynamicRef:"#meta"},default:{}},patternProperties:{type:"object",additionalProperties:{$dynamicRef:"#meta"},propertyNames:{format:"regex"},default:{}},dependentSchemas:{type:"object",additionalProperties:{$dynamicRef:"#meta"},default:{}},propertyNames:{$dynamicRef:"#meta"},if:{$dynamicRef:"#meta"},then:{$dynamicRef:"#meta"},else:{$dynamicRef:"#meta"},allOf:{$ref:"#/$defs/schemaArray"},anyOf:{$ref:"#/$defs/schemaArray"},oneOf:{$ref:"#/$defs/schemaArray"},not:{$dynamicRef:"#meta"}},$defs:{schemaArray:{type:"array",minItems:1,items:{$dynamicRef:"#meta"}}}};});var qg=C((wN,rD)=>{rD.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/unevaluated",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/unevaluated":true},$dynamicAnchor:"meta",title:"Unevaluated applicator vocabulary meta-schema",type:["object","boolean"],properties:{unevaluatedItems:{$dynamicRef:"#meta"},unevaluatedProperties:{$dynamicRef:"#meta"}}};});var Lg=C((DN,iD)=>{iD.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/content",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/content":true},$dynamicAnchor:"meta",title:"Content vocabulary meta-schema",type:["object","boolean"],properties:{contentEncoding:{type:"string"},contentMediaType:{type:"string"},contentSchema:{$dynamicRef:"#meta"}}};});var Bg=C((AN,sD)=>{sD.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/core",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/core":true},$dynamicAnchor:"meta",title:"Core vocabulary meta-schema",type:["object","boolean"],properties:{$id:{$ref:"#/$defs/uriReferenceString",$comment:"Non-empty fragments not allowed.",pattern:"^[^#]*#?$"},$schema:{$ref:"#/$defs/uriString"},$ref:{$ref:"#/$defs/uriReferenceString"},$anchor:{$ref:"#/$defs/anchorString"},$dynamicRef:{$ref:"#/$defs/uriReferenceString"},$dynamicAnchor:{$ref:"#/$defs/anchorString"},$vocabulary:{type:"object",propertyNames:{$ref:"#/$defs/uriString"},additionalProperties:{type:"boolean"}},$comment:{type:"string"},$defs:{type:"object",additionalProperties:{$dynamicRef:"#meta"}}},$defs:{anchorString:{type:"string",pattern:"^[A-Za-z_][-A-Za-z0-9._]*$"},uriString:{type:"string",format:"uri"},uriReferenceString:{type:"string",format:"uri-reference"}}};});var Wg=C((PN,aD)=>{aD.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/format-annotation",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/format-annotation":true},$dynamicAnchor:"meta",title:"Format vocabulary meta-schema for annotation results",type:["object","boolean"],properties:{format:{type:"string"}}};});var Mg=C((TN,oD)=>{oD.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/meta-data",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/meta-data":true},$dynamicAnchor:"meta",title:"Meta-data vocabulary meta-schema",type:["object","boolean"],properties:{title:{type:"string"},description:{type:"string"},default:true,deprecated:{type:"boolean",default:false},readOnly:{type:"boolean",default:false},writeOnly:{type:"boolean",default:false},examples:{type:"array",items:true}}};});var Gg=C((xN,uD)=>{uD.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/validation",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/validation":true},$dynamicAnchor:"meta",title:"Validation vocabulary meta-schema",type:["object","boolean"],properties:{type:{anyOf:[{$ref:"#/$defs/simpleTypes"},{type:"array",items:{$ref:"#/$defs/simpleTypes"},minItems:1,uniqueItems:true}]},const:true,enum:{type:"array",items:true},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/$defs/nonNegativeInteger"},minLength:{$ref:"#/$defs/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},maxItems:{$ref:"#/$defs/nonNegativeInteger"},minItems:{$ref:"#/$defs/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:false},maxContains:{$ref:"#/$defs/nonNegativeInteger"},minContains:{$ref:"#/$defs/nonNegativeInteger",default:1},maxProperties:{$ref:"#/$defs/nonNegativeInteger"},minProperties:{$ref:"#/$defs/nonNegativeIntegerDefault0"},required:{$ref:"#/$defs/stringArray"},dependentRequired:{type:"object",additionalProperties:{$ref:"#/$defs/stringArray"}}},$defs:{nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{$ref:"#/$defs/nonNegativeInteger",default:0},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:true,default:[]}}};});var Jg=C(Gc=>{Object.defineProperty(Gc,"__esModule",{value:true});var lD=Vg(),cD=jg(),hD=qg(),dD=Lg(),fD=Bg(),pD=Wg(),mD=Mg(),gD=Gg(),yD=["/properties"];function CD(n){return [lD,cD,hD,dD,fD,e(this,pD),mD,e(this,gD)].forEach(t=>this.addMetaSchema(t,void 0,false)),this;function e(t,r){return n?t.$dataMetaSchema(r,yD):r}}Gc.default=CD;});var Hg=C((se,Hc)=>{Object.defineProperty(se,"__esModule",{value:true});se.MissingRefError=se.ValidationError=se.CodeGen=se.Name=se.nil=se.stringify=se.str=se._=se.KeywordCxt=se.Ajv2020=void 0;var vD=kl(),ED=$g(),_D=Tc(),SD=Jg(),Jc="https://json-schema.org/draft/2020-12/schema",ir=class extends vD.default{constructor(e={}){super({...e,dynamicRef:true,next:true,unevaluated:true});}_addVocabularies(){super._addVocabularies(),ED.default.forEach(e=>this.addVocabulary(e)),this.opts.discriminator&&this.addKeyword(_D.default);}_addDefaultMetaSchema(){super._addDefaultMetaSchema();let{$data:e,meta:t}=this.opts;t&&(SD.default.call(this,e),this.refs["http://json-schema.org/schema"]=Jc);}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(Jc)?Jc:void 0)}};se.Ajv2020=ir;Hc.exports=se=ir;Hc.exports.Ajv2020=ir;Object.defineProperty(se,"__esModule",{value:true});se.default=ir;var bD=zn();Object.defineProperty(se,"KeywordCxt",{enumerable:true,get:function(){return bD.KeywordCxt}});var sr=I();Object.defineProperty(se,"_",{enumerable:true,get:function(){return sr._}});Object.defineProperty(se,"str",{enumerable:true,get:function(){return sr.str}});Object.defineProperty(se,"stringify",{enumerable:true,get:function(){return sr.stringify}});Object.defineProperty(se,"nil",{enumerable:true,get:function(){return sr.nil}});Object.defineProperty(se,"Name",{enumerable:true,get:function(){return sr.Name}});Object.defineProperty(se,"CodeGen",{enumerable:true,get:function(){return sr.CodeGen}});var wD=Yr();Object.defineProperty(se,"ValidationError",{enumerable:true,get:function(){return wD.default}});var DD=Kn();Object.defineProperty(se,"MissingRefError",{enumerable:true,get:function(){return DD.default}});});var zc=C(Bs=>{Object.defineProperty(Bs,"__esModule",{value:true});Bs.CompilerOptions=void 0;var Uc=class{constructor(e=null,t=[],r=false,i=null,a=null){this.sourceFilename=e,this.pluginNames=t,this.countAllVisits=r,this.errorHandler=i,this.fileHandler=a;}};Bs.CompilerOptions=Uc;});var Ug=C(Ws=>{Object.defineProperty(Ws,"__esModule",{value:true});Ws.DebugSourceRange=void 0;var Kc=class{constructor(e,t,r){this.length=e,this.debugMetadata=t,this.text=r;}};Ws.DebugSourceRange=Kc;});var ar=C(Ms=>{Object.defineProperty(Ms,"__esModule",{value:true});Ms.ErrorType=void 0;var zg;(function(n){n[n.Author=0]="Author",n[n.Warning=1]="Warning",n[n.Error=2]="Error";})(zg||(Ms.ErrorType=zg={}));});var Kg=C(Gs=>{Object.defineProperty(Gs,"__esModule",{value:true});Gs.Argument=void 0;var Xc=class{constructor(e=null,t=null,r=null){this.identifier=e,this.isByReference=t,this.isDivertTarget=r;}get typeName(){return "Argument"}};Gs.Argument=Xc;});var X=C(ge=>{Object.defineProperty(ge,"__esModule",{value:true});ge.filterUndef=ge.isEquatable=ge.nullIfUndefined=ge.asINamedContentOrNull=ge.asBooleanOrThrows=ge.asNumberOrThrows=ge.asOrThrows=ge.asOrNull=void 0;function AD(n,e){return n instanceof e?Xg(n):null}ge.asOrNull=AD;function PD(n,e){if(n instanceof e)return Xg(n);throw new Error(`${n} is not of type ${e}`)}ge.asOrThrows=PD;function TD(n){if(typeof n=="number")return n;throw new Error(`${n} is not a number`)}ge.asNumberOrThrows=TD;function xD(n){if(typeof n=="boolean")return n;throw new Error(`${n} is not a boolean`)}ge.asBooleanOrThrows=xD;function OD(n){return n.hasValidName&&n.name?n:null}ge.asINamedContentOrNull=OD;function FD(n){return typeof n>"u"?null:n}ge.nullIfUndefined=FD;function ND(n){return typeof n=="object"&&typeof n.Equals=="function"}ge.isEquatable=ND;function Xg(n,e){return n}function ID(n){return n!=null}ge.filterUndef=ID;});var oe=C(Js=>{Object.defineProperty(Js,"__esModule",{value:true});Js.ParsedObject=void 0;var Yg=X(),Yc=class{constructor(){this._alreadyHadError=false,this._alreadyHadWarning=false,this._debugMetadata=null,this._runtimeObject=null,this.content=[],this.parent=null,this.GetType=()=>this.typeName,this.AddContent=e=>{this.content===null&&(this.content=[]);let t=Array.isArray(e)?e:[e];for(let r of t)r.hasOwnProperty("parent")&&(r.parent=this),this.content.push(r);if(!Array.isArray(e))return e},this.InsertContent=(e,t)=>(this.content===null&&(this.content=[]),t.parent=this,this.content.splice(e,0,t),t),this.Find=e=>(t=null)=>{let r=(0, Yg.asOrNull)(this,e);if(r!==null&&(t===null||t(r)===true))return r;if(this.content===null)return null;for(let i of this.content){let a=i.Find&&i.Find(e)(t);if(a)return a}return null},this.FindAll=e=>(t,r)=>{let i=Array.isArray(r)?r:[],a=(0, Yg.asOrNull)(this,e);if(a!==null&&(!t||t(a)===true)&&i.push(a),this.content===null)return [];for(let s of this.content)s.FindAll&&s.FindAll(e)(t,i);return i},this.Warning=(e,t=null)=>{this.Error(e,t,true);};}get debugMetadata(){return this._debugMetadata===null&&this.parent?this.parent.debugMetadata:this._debugMetadata}set debugMetadata(e){this._debugMetadata=e;}get hasOwnDebugMetadata(){return !!this.debugMetadata}get typeName(){return "ParsedObject"}get story(){let e=this;for(;e.parent;)e=e.parent;return e}get runtimeObject(){return this._runtimeObject||(this._runtimeObject=this.GenerateRuntimeObject(),this._runtimeObject&&(this._runtimeObject.debugMetadata=this.debugMetadata)),this._runtimeObject}set runtimeObject(e){this._runtimeObject=e;}get runtimePath(){if(!this.runtimeObject.path)throw new Error;return this.runtimeObject.path}get containerForCounting(){return this.runtimeObject}get ancestry(){let e=[],t=this.parent;for(;t;)e.push(t),t=t.parent;return e=e.reverse(),e}ResolveReferences(e){if(this.content!==null)for(let t of this.content)t.ResolveReferences(e);}Error(e,t=null,r=false){if(t===null&&(t=this),!(t._alreadyHadError&&!r||t._alreadyHadWarning&&r)){if(this.parent)this.parent.Error(e,t,r);else throw new Error(`No parent object to send error to: ${e}`);r?t._alreadyHadWarning=true:t._alreadyHadError=true;}}};Js.ParsedObject=Yc;});var Us=C(Hs=>{Object.defineProperty(Hs,"__esModule",{value:true});Hs.AuthorWarning=void 0;var kD=oe(),Zc=class extends kD.ParsedObject{constructor(e){super(),this.warningMessage=e,this.GenerateRuntimeObject=()=>(this.Warning(this.warningMessage),null);}get typeName(){return "AuthorWarning"}};Hs.AuthorWarning=Zc;});var Me=C(mi=>{Object.defineProperty(mi,"__esModule",{value:true});mi.Path=void 0;var or=class n{constructor(){if(this._components=[],this._componentsString=null,this._isRelative=false,typeof arguments[0]=="string"){let e=arguments[0];this.componentsString=e;}else if(arguments[0]instanceof n.Component&&arguments[1]instanceof n){let e=arguments[0],t=arguments[1];this._components.push(e),this._components=this._components.concat(t._components);}else if(arguments[0]instanceof Array){let e=arguments[0],t=!!arguments[1];this._components=this._components.concat(e),this._isRelative=t;}}get isRelative(){return this._isRelative}get componentCount(){return this._components.length}get head(){return this._components.length>0?this._components[0]:null}get tail(){if(this._components.length>=2){let e=this._components.slice(1,this._components.length);return new n(e)}else return n.self}get length(){return this._components.length}get lastComponent(){let e=this._components.length-1;return e>=0?this._components[e]:null}get containsNamedComponent(){for(let e=0,t=this._components.length;e<t;e++)if(!this._components[e].isIndex)return true;return false}static get self(){let e=new n;return e._isRelative=true,e}GetComponent(e){return this._components[e]}PathByAppendingPath(e){let t=new n,r=0;for(let i=0;i<e._components.length&&e._components[i].isParent;++i)r++;for(let i=0;i<this._components.length-r;++i)t._components.push(this._components[i]);for(let i=r;i<e._components.length;++i)t._components.push(e._components[i]);return t}get componentsString(){return this._componentsString==null&&(this._componentsString=this._components.join("."),this.isRelative&&(this._componentsString="."+this._componentsString)),this._componentsString}set componentsString(e){if(this._components.length=0,this._componentsString=e,this._componentsString==null||this._componentsString=="")return;this._componentsString[0]=="."&&(this._isRelative=true,this._componentsString=this._componentsString.substring(1));let t=this._componentsString.split(".");for(let r of t)/^(\-|\+)?([0-9]+|Infinity)$/.test(r)?this._components.push(new n.Component(parseInt(r))):this._components.push(new n.Component(r));}toString(){return this.componentsString}Equals(e){if(e==null||e._components.length!=this._components.length||e.isRelative!=this.isRelative)return false;for(let t=0,r=e._components.length;t<r;t++)if(!e._components[t].Equals(this._components[t]))return false;return true}PathByAppendingComponent(e){let t=new n;return t._components.push(...this._components),t._components.push(e),t}};mi.Path=or;or.parentId="^";(function(n){class e{constructor(r){this.index=-1,this.name=null,typeof r=="string"?this.name=r:this.index=r;}get isIndex(){return this.index>=0}get isParent(){return this.name==n.parentId}static ToParent(){return new e(n.parentId)}toString(){return this.isIndex?this.index.toString():this.name}Equals(r){return r!=null&&r.isIndex==this.isIndex?this.isIndex?this.index==r.index:this.name==r.name:false}}n.Component=e;})(or||(mi.Path=or={}));});var gi=C(zs=>{Object.defineProperty(zs,"__esModule",{value:true});zs.Debug=void 0;var Zg;(function(n){function e(r,i,a){t(r instanceof i,a);}n.AssertType=e;function t(r,i){if(!r)throw typeof i<"u"&&console.warn(i),console.trace&&console.trace(),new Error("")}n.Assert=t;})(Zg||(zs.Debug=Zg={}));});var Te=C(ur=>{Object.defineProperty(ur,"__esModule",{value:true});ur.throwNullException=ur.NullException=void 0;var Ks=class extends Error{};ur.NullException=Ks;function RD(n){throw new Ks(`${n} is null or undefined`)}ur.throwNullException=RD;});var Ge=C(Ys=>{Object.defineProperty(Ys,"__esModule",{value:true});Ys.InkObject=void 0;var lr=Me(),yi=de(),Qc=gi(),cr=X(),Xs=Te(),eh=class{constructor(){this.parent=null,this._debugMetadata=null,this._path=null;}get debugMetadata(){return this._debugMetadata===null&&this.parent?this.parent.debugMetadata:this._debugMetadata}set debugMetadata(e){this._debugMetadata=e;}get ownDebugMetadata(){return this._debugMetadata}DebugLineNumberOfPath(e){if(e===null)return null;let t=this.rootContentContainer;if(t){let r=t.ContentAtPath(e).obj;if(r){let i=r.debugMetadata;if(i!==null)return i.startLineNumber}}return null}get path(){if(this._path==null)if(this.parent==null)this._path=new lr.Path;else {let e=[],t=this,r=(0, cr.asOrNull)(t.parent,yi.Container);for(;r!==null;){let i=(0, cr.asINamedContentOrNull)(t);if(i!=null&&i.hasValidName){if(i.name===null)return (0, Xs.throwNullException)("namedChild.name");e.unshift(new lr.Path.Component(i.name));}else e.unshift(new lr.Path.Component(r.content.indexOf(t)));t=r,r=(0, cr.asOrNull)(r.parent,yi.Container);}this._path=new lr.Path(e);}return this._path}ResolvePath(e){if(e===null)return (0, Xs.throwNullException)("path");if(e.isRelative){let t=(0, cr.asOrNull)(this,yi.Container);return t===null&&(Qc.Debug.Assert(this.parent!==null,"Can't resolve relative path because we don't have a parent"),t=(0, cr.asOrNull)(this.parent,yi.Container),Qc.Debug.Assert(t!==null,"Expected parent to be a container"),Qc.Debug.Assert(e.GetComponent(0).isParent),e=e.tail),t===null?(0, Xs.throwNullException)("nearestContainer"):t.ContentAtPath(e)}else {let t=this.rootContentContainer;return t===null?(0, Xs.throwNullException)("contentContainer"):t.ContentAtPath(e)}}ConvertPathToRelative(e){let t=this.path,r=Math.min(e.length,t.length),i=-1;for(let u=0;u<r;++u){let l=t.GetComponent(u),c=e.GetComponent(u);if(l.Equals(c))i=u;else break}if(i==-1)return e;let a=t.componentCount-1-i,s=[];for(let u=0;u<a;++u)s.push(lr.Path.Component.ToParent());for(let u=i+1;u<e.componentCount;++u)s.push(e.GetComponent(u));return new lr.Path(s,true)}CompactPathString(e){let t=null,r=null;return e.isRelative?(r=e.componentsString,t=this.path.PathByAppendingPath(e).componentsString):(r=this.ConvertPathToRelative(e).componentsString,t=e.componentsString),r.length<t.length?r:t}get rootContentContainer(){let e=this;for(;e.parent;)e=e.parent;return (0, cr.asOrNull)(e,yi.Container)}Copy(){throw Error("Not Implemented: Doesn't support copying")}SetChild(e,t,r){e[t]&&(e[t]=null),e[t]=r,e[t]&&(e[t].parent=this);}Equals(e){return e===this}};Ys.InkObject=eh;});var Dn=C(Zs=>{Object.defineProperty(Zs,"__esModule",{value:true});Zs.StringBuilder=void 0;var th=class{constructor(e){e=typeof e<"u"?e.toString():"",this.string=e;}get Length(){return this.string.length}Append(e){e!==null&&(this.string+=e);}AppendLine(e){typeof e<"u"&&this.Append(e),this.string+=`
9
+ `;}AppendFormat(e,...t){this.string+=e.replace(/{(\d+)}/g,(r,i)=>typeof t[i]<"u"?t[i]:r);}toString(){return this.string}Clear(){this.string="";}};Zs.StringBuilder=th;});var He=C(hr=>{Object.defineProperty(hr,"__esModule",{value:true});hr.InkList=hr.InkListItem=void 0;var vt=Te(),$D=Dn(),Je=class n{constructor(){if(this.originName=null,this.itemName=null,typeof arguments[1]<"u"){let e=arguments[0],t=arguments[1];this.originName=e,this.itemName=t;}else if(arguments[0]){let t=arguments[0].toString().split(".");this.originName=t[0],this.itemName=t[1];}}static get Null(){return new n(null,null)}get isNull(){return this.originName==null&&this.itemName==null}get fullName(){return (this.originName!==null?this.originName:"?")+"."+this.itemName}toString(){return this.fullName}Equals(e){if(e instanceof n){let t=e;return t.itemName==this.itemName&&t.originName==this.originName}return false}copy(){return new n(this.originName,this.itemName)}serialized(){return JSON.stringify({originName:this.originName,itemName:this.itemName})}static fromSerializedKey(e){let t=JSON.parse(e);if(!n.isLikeInkListItem(t))return n.Null;let r=t;return new n(r.originName,r.itemName)}static isLikeInkListItem(e){return !(typeof e!="object"||!e.hasOwnProperty("originName")||!e.hasOwnProperty("itemName")||typeof e.originName!="string"&&typeof e.originName!==null||typeof e.itemName!="string"&&typeof e.itemName!==null)}};hr.InkListItem=Je;var nh=class n extends Map{constructor(){if(super(arguments[0]instanceof n?arguments[0]:[]),this.origins=null,this._originNames=[],arguments[0]instanceof n){let e=arguments[0],t=e.originNames;t!==null&&(this._originNames=t.slice()),e.origins!==null&&(this.origins=e.origins.slice());}else if(typeof arguments[0]=="string"){let e=arguments[0],t=arguments[1];if(this.SetInitialOriginName(e),t.listDefinitions===null)return (0, vt.throwNullException)("originStory.listDefinitions");let r=t.listDefinitions.TryListGetDefinition(e,null);if(r.exists){if(r.result===null)return (0, vt.throwNullException)("def.result");this.origins=[r.result];}else throw new Error("InkList origin could not be found in story when constructing new list: "+e)}else if(typeof arguments[0]=="object"&&arguments[0].hasOwnProperty("Key")&&arguments[0].hasOwnProperty("Value")){let e=arguments[0];this.Add(e.Key,e.Value);}}static FromString(e,t){var r;if(e==null||e=="")return new n;let i=(r=t.listDefinitions)===null||r===void 0?void 0:r.FindSingleItemListWithName(e);if(i)return i.value===null?(0, vt.throwNullException)("listValue.value"):new n(i.value);throw new Error("Could not find the InkListItem from the string '"+e+"' to create an InkList because it doesn't exist in the original list definition in ink.")}AddItem(e,t=null){if(e instanceof Je){let r=e;if(r.originName==null){this.AddItem(r.itemName);return}if(this.origins===null)return (0, vt.throwNullException)("this.origins");for(let i of this.origins)if(i.name==r.originName){let a=i.TryGetValueForItem(r,0);if(a.exists){this.Add(r,a.result);return}else throw new Error("Could not add the item "+r+" to this list because it doesn't exist in the original list definition in ink.")}throw new Error("Failed to add item to list because the item was from a new list definition that wasn't previously known to this list. Only items from previously known lists can be used, so that the int value can be found.")}else if(e!==null){let r=e,i=null;if(this.origins===null)return (0, vt.throwNullException)("this.origins");for(let a of this.origins){if(r===null)return (0, vt.throwNullException)("itemName");if(a.ContainsItemWithName(r)){if(i!=null)throw new Error("Could not add the item "+r+" to this list because it could come from either "+a.name+" or "+i.name);i=a;}}if(i==null){if(t==null)throw new Error("Could not add the item "+r+" to this list because it isn't known to any list definitions previously associated with this list.");{let a=n.FromString(r,t).orderedItems[0];this.Add(a.Key,a.Value);}}else {let a=new Je(i.name,r),s=i.ValueForItem(a);this.Add(a,s);}}}ContainsItemNamed(e){for(let[t]of this)if(Je.fromSerializedKey(t).itemName==e)return true;return false}ContainsKey(e){return this.has(e.serialized())}Add(e,t){let r=e.serialized();if(this.has(r))throw new Error(`The Map already contains an entry for ${e}`);this.set(r,t);}Remove(e){return this.delete(e.serialized())}get Count(){return this.size}get originOfMaxItem(){if(this.origins==null)return null;let e=this.maxItem.Key.originName,t=null;return this.origins.every(r=>r.name==e?(t=r,false):true),t}get originNames(){if(this.Count>0){this._originNames==null&&this.Count>0?this._originNames=[]:(this._originNames||(this._originNames=[]),this._originNames.length=0);for(let[e]of this){let t=Je.fromSerializedKey(e);if(t.originName===null)return (0, vt.throwNullException)("item.originName");this._originNames.push(t.originName);}}return this._originNames}SetInitialOriginName(e){this._originNames=[e];}SetInitialOriginNames(e){e==null?this._originNames=null:this._originNames=e.slice();}get maxItem(){let e={Key:Je.Null,Value:0};for(let[t,r]of this){let i=Je.fromSerializedKey(t);(e.Key.isNull||r>e.Value)&&(e={Key:i,Value:r});}return e}get minItem(){let e={Key:Je.Null,Value:0};for(let[t,r]of this){let i=Je.fromSerializedKey(t);(e.Key.isNull||r<e.Value)&&(e={Key:i,Value:r});}return e}get inverse(){let e=new n;if(this.origins!=null)for(let t of this.origins)for(let[r,i]of t.items){let a=Je.fromSerializedKey(r);this.ContainsKey(a)||e.Add(a,i);}return e}get all(){let e=new n;if(this.origins!=null)for(let t of this.origins)for(let[r,i]of t.items){let a=Je.fromSerializedKey(r);e.set(a.serialized(),i);}return e}Union(e){let t=new n(this);for(let[r,i]of e)t.set(r,i);return t}Intersect(e){let t=new n;for(let[r,i]of this)e.has(r)&&t.set(r,i);return t}HasIntersection(e){for(let[t]of this)if(e.has(t))return true;return false}Without(e){let t=new n(this);for(let[r]of e)t.delete(r);return t}Contains(e){if(typeof e=="string")return this.ContainsItemNamed(e);let t=e;if(t.size==0||this.size==0)return false;for(let[r]of t)if(!this.has(r))return false;return true}GreaterThan(e){return this.Count==0?false:e.Count==0?true:this.minItem.Value>e.maxItem.Value}GreaterThanOrEquals(e){return this.Count==0?false:e.Count==0?true:this.minItem.Value>=e.minItem.Value&&this.maxItem.Value>=e.maxItem.Value}LessThan(e){return e.Count==0?false:this.Count==0?true:this.maxItem.Value<e.minItem.Value}LessThanOrEquals(e){return e.Count==0?false:this.Count==0?true:this.maxItem.Value<=e.maxItem.Value&&this.minItem.Value<=e.minItem.Value}MaxAsList(){return this.Count>0?new n(this.maxItem):new n}MinAsList(){return this.Count>0?new n(this.minItem):new n}ListWithSubRange(e,t){if(this.Count==0)return new n;let r=this.orderedItems,i=0,a=Number.MAX_SAFE_INTEGER;Number.isInteger(e)?i=e:e instanceof n&&e.Count>0&&(i=e.minItem.Value),Number.isInteger(t)?a=t:t instanceof n&&t.Count>0&&(a=t.maxItem.Value);let s=new n;s.SetInitialOriginNames(this.originNames);for(let o of r)o.Value>=i&&o.Value<=a&&s.Add(o.Key,o.Value);return s}Equals(e){if(!(e instanceof n)||e.Count!=this.Count)return false;for(let[t]of this)if(!e.has(t))return false;return true}get orderedItems(){let e=new Array;for(let[t,r]of this){let i=Je.fromSerializedKey(t);e.push({Key:i,Value:r});}return e.sort((t,r)=>t.Key.originName===null?(0, vt.throwNullException)("x.Key.originName"):r.Key.originName===null?(0, vt.throwNullException)("y.Key.originName"):t.Value==r.Value?t.Key.originName.localeCompare(r.Key.originName):t.Value<r.Value?-1:t.Value>r.Value?1:0),e}get singleItem(){for(let e of this.orderedItems)return e.Key;return null}toString(){let e=this.orderedItems,t=new $D.StringBuilder;for(let r=0;r<e.length;r++){r>0&&t.Append(", ");let i=e[r].Key;if(i.itemName===null)return (0, vt.throwNullException)("item.itemName");t.Append(i.itemName);}return t.toString()}valueOf(){return NaN}};hr.InkList=nh;});var Ci=C(Qs=>{Object.defineProperty(Qs,"__esModule",{value:true});Qs.StoryException=void 0;var rh=class extends Error{constructor(e){super(e),this.useEndLineNumber=false,this.message=e,this.name="StoryException";}};Qs.StoryException=rh;});var dr=C(Xt=>{Object.defineProperty(Xt,"__esModule",{value:true});Xt.tryParseFloat=Xt.tryParseInt=Xt.tryGetValueFromMap=void 0;function VD(n,e,t){if(n===null)return {result:t,exists:false};let r=n.get(e);return typeof r>"u"?{result:t,exists:false}:{result:r,exists:true}}Xt.tryGetValueFromMap=VD;function jD(n,e=0){let t=parseInt(n);return Number.isNaN(t)?{result:e,exists:false}:{result:t,exists:true}}Xt.tryParseInt=jD;function qD(n,e=0){let t=parseFloat(n);return Number.isNaN(t)?{result:e,exists:false}:{result:t,exists:true}}Xt.tryParseFloat=qD;});var ue=C(le=>{Object.defineProperty(le,"__esModule",{value:true});le.ValueType=le.ListValue=le.VariablePointerValue=le.DivertTargetValue=le.StringValue=le.FloatValue=le.IntValue=le.BoolValue=le.Value=le.AbstractValue=void 0;var Qg=Ge(),ey=Me(),An=He(),LD=Ci(),vi=X(),ty=dr(),tt=Te(),ea=class n extends Qg.InkObject{static Create(e,t){if(t){if(t===ae.Int&&Number.isInteger(Number(e)))return new _t(Number(e));if(t===ae.Float&&!isNaN(e))return new St(Number(e))}if(typeof e=="boolean")return new fr(!!e);if(typeof e=="string")return new Rt(String(e));if(Number.isInteger(Number(e)))return new _t(Number(e));if(isNaN(e)){if(e instanceof ey.Path)return new ta((0, vi.asOrThrows)(e,ey.Path));if(e instanceof An.InkList)return new na((0, vi.asOrThrows)(e,An.InkList))}else return new St(Number(e));return null}Copy(){return (0, vi.asOrThrows)(n.Create(this.valueObject),Qg.InkObject)}BadCastException(e){return new LD.StoryException("Can't cast "+this.valueObject+" from "+this.valueType+" to "+e)}};le.AbstractValue=ea;var Et=class extends ea{constructor(e){super(),this.value=e;}get valueObject(){return this.value}toString(){return this.value===null?(0, tt.throwNullException)("Value.value"):this.value.toString()}};le.Value=Et;var fr=class extends Et{constructor(e){super(e||false);}get isTruthy(){return !!this.value}get valueType(){return ae.Bool}Cast(e){if(this.value===null)return (0, tt.throwNullException)("Value.value");if(e==this.valueType)return this;if(e==ae.Int)return new _t(this.value?1:0);if(e==ae.Float)return new St(this.value?1:0);if(e==ae.String)return new Rt(this.value?"true":"false");throw this.BadCastException(e)}toString(){return this.value?"true":"false"}};le.BoolValue=fr;var _t=class extends Et{constructor(e){super(e||0);}get isTruthy(){return this.value!=0}get valueType(){return ae.Int}Cast(e){if(this.value===null)return (0, tt.throwNullException)("Value.value");if(e==this.valueType)return this;if(e==ae.Bool)return new fr(this.value!==0);if(e==ae.Float)return new St(this.value);if(e==ae.String)return new Rt(""+this.value);throw this.BadCastException(e)}};le.IntValue=_t;var St=class extends Et{constructor(e){super(e||0);}get isTruthy(){return this.value!=0}get valueType(){return ae.Float}Cast(e){if(this.value===null)return (0, tt.throwNullException)("Value.value");if(e==this.valueType)return this;if(e==ae.Bool)return new fr(this.value!==0);if(e==ae.Int)return new _t(this.value);if(e==ae.String)return new Rt(""+this.value);throw this.BadCastException(e)}};le.FloatValue=St;var Rt=class extends Et{constructor(e){if(super(e||""),this._isNewline=this.value==`
10
+ `,this._isInlineWhitespace=true,this.value===null)return (0, tt.throwNullException)("Value.value");this.value.length>0&&this.value.split("").every(t=>t!=" "&&t!=" "?(this._isInlineWhitespace=false,false):true);}get valueType(){return ae.String}get isTruthy(){return this.value===null?(0, tt.throwNullException)("Value.value"):this.value.length>0}get isNewline(){return this._isNewline}get isInlineWhitespace(){return this._isInlineWhitespace}get isNonWhitespace(){return !this.isNewline&&!this.isInlineWhitespace}Cast(e){if(e==this.valueType)return this;if(e==ae.Int){let t=(0, ty.tryParseInt)(this.value);if(t.exists)return new _t(t.result);throw this.BadCastException(e)}if(e==ae.Float){let t=(0, ty.tryParseFloat)(this.value);if(t.exists)return new St(t.result);throw this.BadCastException(e)}throw this.BadCastException(e)}};le.StringValue=Rt;var ta=class extends Et{constructor(e=null){super(e);}get valueType(){return ae.DivertTarget}get targetPath(){return this.value===null?(0, tt.throwNullException)("Value.value"):this.value}set targetPath(e){this.value=e;}get isTruthy(){throw new Error("Shouldn't be checking the truthiness of a divert target")}Cast(e){if(e==this.valueType)return this;throw this.BadCastException(e)}toString(){return "DivertTargetValue("+this.targetPath+")"}};le.DivertTargetValue=ta;var ih=class n extends Et{constructor(e,t=-1){super(e),this._contextIndex=t;}get contextIndex(){return this._contextIndex}set contextIndex(e){this._contextIndex=e;}get variableName(){return this.value===null?(0, tt.throwNullException)("Value.value"):this.value}set variableName(e){this.value=e;}get valueType(){return ae.VariablePointer}get isTruthy(){throw new Error("Shouldn't be checking the truthiness of a variable pointer")}Cast(e){if(e==this.valueType)return this;throw this.BadCastException(e)}toString(){return "VariablePointerValue("+this.variableName+")"}Copy(){return new n(this.variableName,this.contextIndex)}};le.VariablePointerValue=ih;var na=class n extends Et{get isTruthy(){return this.value===null?(0, tt.throwNullException)("this.value"):this.value.Count>0}get valueType(){return ae.List}Cast(e){if(this.value===null)return (0, tt.throwNullException)("Value.value");if(e==ae.Int){let t=this.value.maxItem;return t.Key.isNull?new _t(0):new _t(t.Value)}else if(e==ae.Float){let t=this.value.maxItem;return t.Key.isNull?new St(0):new St(t.Value)}else if(e==ae.String){let t=this.value.maxItem;return t.Key.isNull?new Rt(""):new Rt(t.Key.toString())}if(e==this.valueType)return this;throw this.BadCastException(e)}constructor(e,t){super(null),!e&&!t?this.value=new An.InkList:e instanceof An.InkList?this.value=new An.InkList(e):e instanceof An.InkListItem&&typeof t=="number"&&(this.value=new An.InkList({Key:e,Value:t}));}static RetainListOriginsForAssignment(e,t){let r=(0, vi.asOrNull)(e,n),i=(0, vi.asOrNull)(t,n);if(i&&i.value===null)return (0, tt.throwNullException)("newList.value");if(r&&r.value===null)return (0, tt.throwNullException)("oldList.value");r&&i&&i.value.Count==0&&i.value.SetInitialOriginNames(r.value.originNames);}};le.ListValue=na;var ae;(function(n){n[n.Bool=-1]="Bool",n[n.Int=0]="Int",n[n.Float=1]="Float",n[n.List=2]="List",n[n.String=3]="String",n[n.DivertTarget=4]="DivertTarget",n[n.VariablePointer=5]="VariablePointer";})(ae||(le.ValueType=ae={}));});var ny=C(ra=>{Object.defineProperty(ra,"__esModule",{value:true});ra.SearchResult=void 0;var BD=de(),sh=class n{constructor(){this.obj=null,this.approximate=false;}get correctObj(){return this.approximate?null:this.obj}get container(){return this.obj instanceof BD.Container?this.obj:null}copy(){let e=new n;return e.obj=this.obj,e.approximate=this.approximate,e}};ra.SearchResult=sh;});var de=C(_i=>{Object.defineProperty(_i,"__esModule",{value:true});_i.Container=void 0;var WD=ue(),ry=Te(),MD=Dn(),pr=Ge(),GD=ny(),iy=Me(),sy=gi(),JD=dr(),Yt=X(),Ei=class n extends pr.InkObject{constructor(){super(...arguments),this.name=null,this._content=[],this.namedContent=new Map,this.visitsShouldBeCounted=false,this.turnIndexShouldBeCounted=false,this.countingAtStartOnly=false,this._pathToFirstLeafContent=null;}get hasValidName(){return this.name!=null&&this.name.length>0}get content(){return this._content}set content(e){this.AddContent(e);}get namedOnlyContent(){let e=new Map;for(let[t,r]of this.namedContent){let i=(0, Yt.asOrThrows)(r,pr.InkObject);e.set(t,i);}for(let t of this.content){let r=(0, Yt.asINamedContentOrNull)(t);r!=null&&r.hasValidName&&e.delete(r.name);}return e.size==0&&(e=null),e}set namedOnlyContent(e){let t=this.namedOnlyContent;if(t!=null)for(let[r]of t)this.namedContent.delete(r);if(e!=null)for(let[,r]of e){let i=(0, Yt.asINamedContentOrNull)(r);i!=null&&this.AddToNamedContentOnly(i);}}get countFlags(){let e=0;return this.visitsShouldBeCounted&&(e|=n.CountFlags.Visits),this.turnIndexShouldBeCounted&&(e|=n.CountFlags.Turns),this.countingAtStartOnly&&(e|=n.CountFlags.CountStartOnly),e==n.CountFlags.CountStartOnly&&(e=0),e}set countFlags(e){let t=e;(t&n.CountFlags.Visits)>0&&(this.visitsShouldBeCounted=true),(t&n.CountFlags.Turns)>0&&(this.turnIndexShouldBeCounted=true),(t&n.CountFlags.CountStartOnly)>0&&(this.countingAtStartOnly=true);}get pathToFirstLeafContent(){return this._pathToFirstLeafContent==null&&(this._pathToFirstLeafContent=this.path.PathByAppendingPath(this.internalPathToFirstLeafContent)),this._pathToFirstLeafContent}get internalPathToFirstLeafContent(){let e=[],t=this;for(;t instanceof n;)t.content.length>0&&(e.push(new iy.Path.Component(0)),t=t.content[0]);return new iy.Path(e)}AddContent(e){if(e instanceof Array){let t=e;for(let r of t)this.AddContent(r);}else {let t=e;if(this._content.push(t),t.parent)throw new Error("content is already in "+t.parent);t.parent=this,this.TryAddNamedContent(t);}}TryAddNamedContent(e){let t=(0, Yt.asINamedContentOrNull)(e);t!=null&&t.hasValidName&&this.AddToNamedContentOnly(t);}AddToNamedContentOnly(e){sy.Debug.AssertType(e,pr.InkObject,"Can only add Runtime.Objects to a Runtime.Container");let t=(0, Yt.asOrThrows)(e,pr.InkObject);if(t.parent=this,e.name===null)return (0, ry.throwNullException)("namedContentObj.name");this.namedContent.set(e.name,e);}ContentAtPath(e,t=0,r=-1){r==-1&&(r=e.length);let i=new GD.SearchResult;i.approximate=false;let a=this,s=this;for(let o=t;o<r;++o){let u=e.GetComponent(o);if(a==null){i.approximate=true;break}let l=a.ContentWithPathComponent(u);if(l==null){i.approximate=true;break}let c=(0, Yt.asOrNull)(l,n);if(o<r-1&&c==null){i.approximate=true;break}s=l,a=c;}return i.obj=s,i}InsertContent(e,t){if(this.content.splice(t,0,e),e.parent)throw new Error("content is already in "+e.parent);e.parent=this,this.TryAddNamedContent(e);}AddContentsOfContainer(e){this.content.push(...e.content);for(let t of e.content)t.parent=this,this.TryAddNamedContent(t);}ContentWithPathComponent(e){if(e.isIndex)return e.index>=0&&e.index<this.content.length?this.content[e.index]:null;if(e.isParent)return this.parent;{if(e.name===null)return (0, ry.throwNullException)("component.name");let t=(0, JD.tryGetValueFromMap)(this.namedContent,e.name,null);return t.exists?(0, Yt.asOrThrows)(t.result,pr.InkObject):null}}BuildStringOfHierarchy(){let e;if(arguments.length==0)return e=new MD.StringBuilder,this.BuildStringOfHierarchy(e,0,null),e.toString();e=arguments[0];let t=arguments[1],r=arguments[2];function i(){for(let o=0;o<4*t;++o)e.Append(" ");}i(),e.Append("["),this.hasValidName&&e.AppendFormat(" ({0})",this.name),this==r&&e.Append(" <---"),e.AppendLine(),t++;for(let s=0;s<this.content.length;++s){let o=this.content[s];o instanceof n?o.BuildStringOfHierarchy(e,t,r):(i(),o instanceof WD.StringValue?(e.Append('"'),e.Append(o.toString().replace(`
11
+ `,"\\n")),e.Append('"')):e.Append(o.toString())),s!=this.content.length-1&&e.Append(","),!(o instanceof n)&&o==r&&e.Append(" <---"),e.AppendLine();}let a=new Map;for(let[s,o]of this.namedContent)this.content.indexOf((0, Yt.asOrThrows)(o,pr.InkObject))>=0||a.set(s,o);if(a.size>0){i(),e.AppendLine("-- named: --");for(let[,s]of a)sy.Debug.AssertType(s,n,"Can only print out named Containers"),s.BuildStringOfHierarchy(e,t,r),e.AppendLine();}t--,i(),e.Append("]");}};_i.Container=Ei;(function(n){(function(t){t[t.Start=0]="Start",t[t.Visits=1]="Visits",t[t.Turns=2]="Turns",t[t.CountStartOnly=4]="CountStartOnly";})(n.CountFlags||(n.CountFlags={}));})(Ei||(_i.Container=Ei={}));});var xe=C(bi=>{Object.defineProperty(bi,"__esModule",{value:true});bi.ControlCommand=void 0;var HD=Ge(),Si=class n extends HD.InkObject{get commandType(){return this._commandType}constructor(e=n.CommandType.NotSet){super(),this._commandType=e;}Copy(){return new n(this.commandType)}static EvalStart(){return new n(n.CommandType.EvalStart)}static EvalOutput(){return new n(n.CommandType.EvalOutput)}static EvalEnd(){return new n(n.CommandType.EvalEnd)}static Duplicate(){return new n(n.CommandType.Duplicate)}static PopEvaluatedValue(){return new n(n.CommandType.PopEvaluatedValue)}static PopFunction(){return new n(n.CommandType.PopFunction)}static PopTunnel(){return new n(n.CommandType.PopTunnel)}static BeginString(){return new n(n.CommandType.BeginString)}static EndString(){return new n(n.CommandType.EndString)}static NoOp(){return new n(n.CommandType.NoOp)}static ChoiceCount(){return new n(n.CommandType.ChoiceCount)}static Turns(){return new n(n.CommandType.Turns)}static TurnsSince(){return new n(n.CommandType.TurnsSince)}static ReadCount(){return new n(n.CommandType.ReadCount)}static Random(){return new n(n.CommandType.Random)}static SeedRandom(){return new n(n.CommandType.SeedRandom)}static VisitIndex(){return new n(n.CommandType.VisitIndex)}static SequenceShuffleIndex(){return new n(n.CommandType.SequenceShuffleIndex)}static StartThread(){return new n(n.CommandType.StartThread)}static Done(){return new n(n.CommandType.Done)}static End(){return new n(n.CommandType.End)}static ListFromInt(){return new n(n.CommandType.ListFromInt)}static ListRange(){return new n(n.CommandType.ListRange)}static ListRandom(){return new n(n.CommandType.ListRandom)}static BeginTag(){return new n(n.CommandType.BeginTag)}static EndTag(){return new n(n.CommandType.EndTag)}toString(){return "ControlCommand "+this.commandType.toString()}};bi.ControlCommand=Si;(function(n){(function(t){t[t.NotSet=-1]="NotSet",t[t.EvalStart=0]="EvalStart",t[t.EvalOutput=1]="EvalOutput",t[t.EvalEnd=2]="EvalEnd",t[t.Duplicate=3]="Duplicate",t[t.PopEvaluatedValue=4]="PopEvaluatedValue",t[t.PopFunction=5]="PopFunction",t[t.PopTunnel=6]="PopTunnel",t[t.BeginString=7]="BeginString",t[t.EndString=8]="EndString",t[t.NoOp=9]="NoOp",t[t.ChoiceCount=10]="ChoiceCount",t[t.Turns=11]="Turns",t[t.TurnsSince=12]="TurnsSince",t[t.ReadCount=13]="ReadCount",t[t.Random=14]="Random",t[t.SeedRandom=15]="SeedRandom",t[t.VisitIndex=16]="VisitIndex",t[t.SequenceShuffleIndex=17]="SequenceShuffleIndex",t[t.StartThread=18]="StartThread",t[t.Done=19]="Done",t[t.End=20]="End",t[t.ListFromInt=21]="ListFromInt",t[t.ListRange=22]="ListRange",t[t.ListRandom=23]="ListRandom",t[t.BeginTag=24]="BeginTag",t[t.EndTag=25]="EndTag",t[t.TOTAL_VALUES=26]="TOTAL_VALUES";})(n.CommandType||(n.CommandType={}));})(Si||(bi.ControlCommand=Si={}));});var nt=C(ia=>{Object.defineProperty(ia,"__esModule",{value:true});ia.Expression=void 0;var ay=de(),ah=xe(),UD=oe(),oh=class extends UD.ParsedObject{constructor(){super(...arguments),this._prototypeRuntimeConstantExpression=null,this.outputWhenComplete=false,this.GenerateRuntimeObject=()=>{let e=new ay.Container;return e.AddContent(ah.ControlCommand.EvalStart()),this.GenerateIntoContainer(e),this.outputWhenComplete&&e.AddContent(ah.ControlCommand.EvalOutput()),e.AddContent(ah.ControlCommand.EvalEnd()),e},this.GenerateConstantIntoContainer=e=>{this._prototypeRuntimeConstantExpression===null&&(this._prototypeRuntimeConstantExpression=new ay.Container,this.GenerateIntoContainer(this._prototypeRuntimeConstantExpression));for(let t of this._prototypeRuntimeConstantExpression.content){let r=t.Copy();r&&e.AddContent(r);}},this.toString=()=>"No string value in JavaScript.";}get typeName(){return "Expression"}Equals(e){return false}};ia.Expression=oh;});var Pn=C(sa=>{Object.defineProperty(sa,"__esModule",{value:true});sa.Void=void 0;var zD=Ge(),uh=class extends zD.InkObject{toString(){return "Void"}};sa.Void=uh;});var bt=C(oa=>{Object.defineProperty(oa,"__esModule",{value:true});oa.NativeFunctionCall=void 0;var T=ue(),wi=Ci(),KD=Pn(),aa=He(),XD=Ge(),rt=X(),Ue=Te(),M=class n extends XD.InkObject{static CallWithName(e){return new n(e)}static CallExistsWithName(e){return this.GenerateNativeFunctionsIfNecessary(),this._nativeFunctions.get(e)}get name(){return this._name===null?(0, Ue.throwNullException)("NativeFunctionCall._name"):this._name}set name(e){this._name=e,this._isPrototype||(n._nativeFunctions===null?(0, Ue.throwNullException)("NativeFunctionCall._nativeFunctions"):this._prototype=n._nativeFunctions.get(this._name)||null);}get numberOfParameters(){return this._prototype?this._prototype.numberOfParameters:this._numberOfParameters}set numberOfParameters(e){this._numberOfParameters=e;}Call(e){if(this._prototype)return this._prototype.Call(e);if(this.numberOfParameters!=e.length)throw new Error("Unexpected number of parameters");let t=false;for(let a of e){if(a instanceof KD.Void)throw new wi.StoryException("Attempting to perform "+this.name+' on a void value. Did you forget to "return" a value from a function you called here?');a instanceof T.ListValue&&(t=true);}if(e.length==2&&t)return this.CallBinaryListOperation(e);let r=this.CoerceValuesToSingleType(e),i=r[0].valueType;return i==T.ValueType.Int?this.CallType(r):i==T.ValueType.Float?this.CallType(r):i==T.ValueType.String?this.CallType(r):i==T.ValueType.DivertTarget?this.CallType(r):i==T.ValueType.List?this.CallType(r):null}CallType(e){let t=(0, rt.asOrThrows)(e[0],T.Value),r=t.valueType,i=t,a=e.length;if(a==2||a==1){if(this._operationFuncs===null)return (0, Ue.throwNullException)("NativeFunctionCall._operationFuncs");let s=this._operationFuncs.get(r);if(!s){let o=T.ValueType[r];throw new wi.StoryException("Cannot perform operation "+this.name+" on "+o)}if(a==2){let u=(0, rt.asOrThrows)(e[1],T.Value),l=s;if(i.value===null||u.value===null)return (0, Ue.throwNullException)("NativeFunctionCall.Call BinaryOp values");let c=l(i.value,u.value);return T.Value.Create(c)}else {let o=s;if(i.value===null)return (0, Ue.throwNullException)("NativeFunctionCall.Call UnaryOp value");let u=o(i.value);return this.name===n.Int?T.Value.Create(u,T.ValueType.Int):this.name===n.Float?T.Value.Create(u,T.ValueType.Float):T.Value.Create(u,t.valueType)}}else throw new Error("Unexpected number of parameters to NativeFunctionCall: "+e.length)}CallBinaryListOperation(e){if((this.name=="+"||this.name=="-")&&e[0]instanceof T.ListValue&&e[1]instanceof T.IntValue)return this.CallListIncrementOperation(e);let t=(0, rt.asOrThrows)(e[0],T.Value),r=(0, rt.asOrThrows)(e[1],T.Value);if((this.name=="&&"||this.name=="||")&&(t.valueType!=T.ValueType.List||r.valueType!=T.ValueType.List)){if(this._operationFuncs===null)return (0, Ue.throwNullException)("NativeFunctionCall._operationFuncs");let i=this._operationFuncs.get(T.ValueType.Int);if(i===null)return (0, Ue.throwNullException)("NativeFunctionCall.CallBinaryListOperation op");let a=(0, rt.asBooleanOrThrows)(i(t.isTruthy?1:0,r.isTruthy?1:0));return new T.BoolValue(a)}if(t.valueType==T.ValueType.List&&r.valueType==T.ValueType.List)return this.CallType([t,r]);throw new wi.StoryException("Can not call use "+this.name+" operation on "+T.ValueType[t.valueType]+" and "+T.ValueType[r.valueType])}CallListIncrementOperation(e){let t=(0, rt.asOrThrows)(e[0],T.ListValue),r=(0, rt.asOrThrows)(e[1],T.IntValue),i=new aa.InkList;if(t.value===null)return (0, Ue.throwNullException)("NativeFunctionCall.CallListIncrementOperation listVal.value");for(let[a,s]of t.value){let o=aa.InkListItem.fromSerializedKey(a);if(this._operationFuncs===null)return (0, Ue.throwNullException)("NativeFunctionCall._operationFuncs");let u=this._operationFuncs.get(T.ValueType.Int);if(r.value===null)return (0, Ue.throwNullException)("NativeFunctionCall.CallListIncrementOperation intVal.value");let l=u(s,r.value),c=null;if(t.value.origins===null)return (0, Ue.throwNullException)("NativeFunctionCall.CallListIncrementOperation listVal.value.origins");for(let h of t.value.origins)if(h.name==o.originName){c=h;break}if(c!=null){let h=c.TryGetItemWithValue(l,aa.InkListItem.Null);h.exists&&i.Add(h.result,l);}}return new T.ListValue(i)}CoerceValuesToSingleType(e){let t=T.ValueType.Int,r=null;for(let a of e){let s=(0, rt.asOrThrows)(a,T.Value);s.valueType>t&&(t=s.valueType),s.valueType==T.ValueType.List&&(r=(0, rt.asOrNull)(s,T.ListValue));}let i=[];if(T.ValueType[t]==T.ValueType[T.ValueType.List])for(let a of e){let s=(0, rt.asOrThrows)(a,T.Value);if(s.valueType==T.ValueType.List)i.push(s);else if(s.valueType==T.ValueType.Int){let o=parseInt(s.valueObject);if(r=(0, rt.asOrThrows)(r,T.ListValue),r.value===null)return (0, Ue.throwNullException)("NativeFunctionCall.CoerceValuesToSingleType specialCaseList.value");let u=r.value.originOfMaxItem;if(u===null)return (0, Ue.throwNullException)("NativeFunctionCall.CoerceValuesToSingleType list");let l=u.TryGetItemWithValue(o,aa.InkListItem.Null);if(l.exists){let c=new T.ListValue(l.result,o);i.push(c);}else throw new wi.StoryException("Could not find List item with the value "+o+" in "+u.name)}else {let o=T.ValueType[s.valueType];throw new wi.StoryException("Cannot mix Lists and "+o+" values in this operation")}}else for(let a of e){let o=(0, rt.asOrThrows)(a,T.Value).Cast(t);i.push(o);}return i}constructor(){if(super(),this._name=null,this._numberOfParameters=0,this._prototype=null,this._isPrototype=false,this._operationFuncs=null,arguments.length===0)n.GenerateNativeFunctionsIfNecessary();else if(arguments.length===1){let e=arguments[0];n.GenerateNativeFunctionsIfNecessary(),this.name=e;}else if(arguments.length===2){let e=arguments[0],t=arguments[1];this._isPrototype=true,this.name=e,this.numberOfParameters=t;}}static Identity(e){return e}static GenerateNativeFunctionsIfNecessary(){if(this._nativeFunctions==null){this._nativeFunctions=new Map,this.AddIntBinaryOp(this.Add,(r,i)=>r+i),this.AddIntBinaryOp(this.Subtract,(r,i)=>r-i),this.AddIntBinaryOp(this.Multiply,(r,i)=>r*i),this.AddIntBinaryOp(this.Divide,(r,i)=>Math.floor(r/i)),this.AddIntBinaryOp(this.Mod,(r,i)=>r%i),this.AddIntUnaryOp(this.Negate,r=>-r),this.AddIntBinaryOp(this.Equal,(r,i)=>r==i),this.AddIntBinaryOp(this.Greater,(r,i)=>r>i),this.AddIntBinaryOp(this.Less,(r,i)=>r<i),this.AddIntBinaryOp(this.GreaterThanOrEquals,(r,i)=>r>=i),this.AddIntBinaryOp(this.LessThanOrEquals,(r,i)=>r<=i),this.AddIntBinaryOp(this.NotEquals,(r,i)=>r!=i),this.AddIntUnaryOp(this.Not,r=>r==0),this.AddIntBinaryOp(this.And,(r,i)=>r!=0&&i!=0),this.AddIntBinaryOp(this.Or,(r,i)=>r!=0||i!=0),this.AddIntBinaryOp(this.Max,(r,i)=>Math.max(r,i)),this.AddIntBinaryOp(this.Min,(r,i)=>Math.min(r,i)),this.AddIntBinaryOp(this.Pow,(r,i)=>Math.pow(r,i)),this.AddIntUnaryOp(this.Floor,n.Identity),this.AddIntUnaryOp(this.Ceiling,n.Identity),this.AddIntUnaryOp(this.Int,n.Identity),this.AddIntUnaryOp(this.Float,r=>r),this.AddFloatBinaryOp(this.Add,(r,i)=>r+i),this.AddFloatBinaryOp(this.Subtract,(r,i)=>r-i),this.AddFloatBinaryOp(this.Multiply,(r,i)=>r*i),this.AddFloatBinaryOp(this.Divide,(r,i)=>r/i),this.AddFloatBinaryOp(this.Mod,(r,i)=>r%i),this.AddFloatUnaryOp(this.Negate,r=>-r),this.AddFloatBinaryOp(this.Equal,(r,i)=>r==i),this.AddFloatBinaryOp(this.Greater,(r,i)=>r>i),this.AddFloatBinaryOp(this.Less,(r,i)=>r<i),this.AddFloatBinaryOp(this.GreaterThanOrEquals,(r,i)=>r>=i),this.AddFloatBinaryOp(this.LessThanOrEquals,(r,i)=>r<=i),this.AddFloatBinaryOp(this.NotEquals,(r,i)=>r!=i),this.AddFloatUnaryOp(this.Not,r=>r==0),this.AddFloatBinaryOp(this.And,(r,i)=>r!=0&&i!=0),this.AddFloatBinaryOp(this.Or,(r,i)=>r!=0||i!=0),this.AddFloatBinaryOp(this.Max,(r,i)=>Math.max(r,i)),this.AddFloatBinaryOp(this.Min,(r,i)=>Math.min(r,i)),this.AddFloatBinaryOp(this.Pow,(r,i)=>Math.pow(r,i)),this.AddFloatUnaryOp(this.Floor,r=>Math.floor(r)),this.AddFloatUnaryOp(this.Ceiling,r=>Math.ceil(r)),this.AddFloatUnaryOp(this.Int,r=>Math.floor(r)),this.AddFloatUnaryOp(this.Float,n.Identity),this.AddStringBinaryOp(this.Add,(r,i)=>r+i),this.AddStringBinaryOp(this.Equal,(r,i)=>r===i),this.AddStringBinaryOp(this.NotEquals,(r,i)=>r!==i),this.AddStringBinaryOp(this.Has,(r,i)=>r.includes(i)),this.AddStringBinaryOp(this.Hasnt,(r,i)=>!r.includes(i)),this.AddListBinaryOp(this.Add,(r,i)=>r.Union(i)),this.AddListBinaryOp(this.Subtract,(r,i)=>r.Without(i)),this.AddListBinaryOp(this.Has,(r,i)=>r.Contains(i)),this.AddListBinaryOp(this.Hasnt,(r,i)=>!r.Contains(i)),this.AddListBinaryOp(this.Intersect,(r,i)=>r.Intersect(i)),this.AddListBinaryOp(this.Equal,(r,i)=>r.Equals(i)),this.AddListBinaryOp(this.Greater,(r,i)=>r.GreaterThan(i)),this.AddListBinaryOp(this.Less,(r,i)=>r.LessThan(i)),this.AddListBinaryOp(this.GreaterThanOrEquals,(r,i)=>r.GreaterThanOrEquals(i)),this.AddListBinaryOp(this.LessThanOrEquals,(r,i)=>r.LessThanOrEquals(i)),this.AddListBinaryOp(this.NotEquals,(r,i)=>!r.Equals(i)),this.AddListBinaryOp(this.And,(r,i)=>r.Count>0&&i.Count>0),this.AddListBinaryOp(this.Or,(r,i)=>r.Count>0||i.Count>0),this.AddListUnaryOp(this.Not,r=>r.Count==0?1:0),this.AddListUnaryOp(this.Invert,r=>r.inverse),this.AddListUnaryOp(this.All,r=>r.all),this.AddListUnaryOp(this.ListMin,r=>r.MinAsList()),this.AddListUnaryOp(this.ListMax,r=>r.MaxAsList()),this.AddListUnaryOp(this.Count,r=>r.Count),this.AddListUnaryOp(this.ValueOfList,r=>r.maxItem.Value);let e=(r,i)=>r.Equals(i),t=(r,i)=>!r.Equals(i);this.AddOpToNativeFunc(this.Equal,2,T.ValueType.DivertTarget,e),this.AddOpToNativeFunc(this.NotEquals,2,T.ValueType.DivertTarget,t);}}AddOpFuncForType(e,t){this._operationFuncs==null&&(this._operationFuncs=new Map),this._operationFuncs.set(e,t);}static AddOpToNativeFunc(e,t,r,i){if(this._nativeFunctions===null)return (0, Ue.throwNullException)("NativeFunctionCall._nativeFunctions");let a=this._nativeFunctions.get(e);a||(a=new n(e,t),this._nativeFunctions.set(e,a)),a.AddOpFuncForType(r,i);}static AddIntBinaryOp(e,t){this.AddOpToNativeFunc(e,2,T.ValueType.Int,t);}static AddIntUnaryOp(e,t){this.AddOpToNativeFunc(e,1,T.ValueType.Int,t);}static AddFloatBinaryOp(e,t){this.AddOpToNativeFunc(e,2,T.ValueType.Float,t);}static AddFloatUnaryOp(e,t){this.AddOpToNativeFunc(e,1,T.ValueType.Float,t);}static AddStringBinaryOp(e,t){this.AddOpToNativeFunc(e,2,T.ValueType.String,t);}static AddListBinaryOp(e,t){this.AddOpToNativeFunc(e,2,T.ValueType.List,t);}static AddListUnaryOp(e,t){this.AddOpToNativeFunc(e,1,T.ValueType.List,t);}toString(){return 'Native "'+this.name+'"'}};oa.NativeFunctionCall=M;M.Add="+";M.Subtract="-";M.Divide="/";M.Multiply="*";M.Mod="%";M.Negate="_";M.Equal="==";M.Greater=">";M.Less="<";M.GreaterThanOrEquals=">=";M.LessThanOrEquals="<=";M.NotEquals="!=";M.Not="!";M.And="&&";M.Or="||";M.Min="MIN";M.Max="MAX";M.Pow="POW";M.Floor="FLOOR";M.Ceiling="CEILING";M.Int="INT";M.Float="FLOAT";M.Has="?";M.Hasnt="!?";M.Intersect="^";M.ListMin="LIST_MIN";M.ListMax="LIST_MAX";M.All="LIST_ALL";M.Count="LIST_COUNT";M.ValueOfList="LIST_VALUE";M.Invert="LIST_INVERT";M._nativeFunctions=null;});var la=C(ua=>{Object.defineProperty(ua,"__esModule",{value:true});ua.NumberExpression=void 0;var YD=nt(),lh=ue(),ZD=X(),ch=class n extends YD.Expression{constructor(e,t){if(super(),this.isInt=()=>this.subtype=="int",this.isFloat=()=>this.subtype=="float",this.isBool=()=>this.subtype=="bool",this.GenerateIntoContainer=r=>{this.isInt()?r.AddContent(new lh.IntValue(this.value)):this.isFloat()?r.AddContent(new lh.FloatValue(this.value)):this.isBool()&&r.AddContent(new lh.BoolValue(this.value));},this.toString=()=>String(this.value),typeof e=="number"&&!Number.isNaN(e)||typeof e=="boolean")this.value=e,this.subtype=t;else throw new Error("Unexpected object type in NumberExpression.")}get typeName(){return "Number"}Equals(e){let t=(0, ZD.asOrNull)(e,n);return t?t.subtype==this.subtype&&t.value==this.value:false}};ua.NumberExpression=ch;});var hh=C(ca=>{Object.defineProperty(ca,"__esModule",{value:true});ca.UnaryExpression=void 0;var QD=nt(),eA=bt(),mr=la(),tA=X(),Di=class extends QD.Expression{get nativeNameForOp(){return this.op==="-"?"_":this.op==="not"?"!":this.op}constructor(e,t){super(),this.op=t,this.GenerateIntoContainer=r=>{this.innerExpression.GenerateIntoContainer(r),r.AddContent(eA.NativeFunctionCall.CallWithName(this.nativeNameForOp));},this.toString=()=>this.nativeNameForOp+this.innerExpression,this.innerExpression=this.AddContent(e);}get typeName(){return "UnaryExpression"}};ca.UnaryExpression=Di;Di.WithInner=(n,e)=>{let t=(0, tA.asOrNull)(n,mr.NumberExpression);if(t){if(e==="-"){if(t.isInt())return new mr.NumberExpression(-t.value,"int");if(t.isFloat())return new mr.NumberExpression(-t.value,"float")}else if(e=="!"||e=="not"){if(t.isInt())return new mr.NumberExpression(t.value==0,"bool");if(t.isFloat())return new mr.NumberExpression(t.value==0,"bool");if(t.isBool())return new mr.NumberExpression(!t.value,"bool")}throw new Error("Unexpected operation or number type")}return new Di(n,e)};});var fh=C(ha=>{Object.defineProperty(ha,"__esModule",{value:true});ha.BinaryExpression=void 0;var nA=nt(),rA=bt(),iA=hh(),sA=X(),dh=class extends nA.Expression{constructor(e,t,r){super(),this.opName=r,this.GenerateIntoContainer=i=>{this.leftExpression.GenerateIntoContainer(i),this.rightExpression.GenerateIntoContainer(i),this.opName=this.NativeNameForOp(this.opName),i.AddContent(rA.NativeFunctionCall.CallWithName(this.opName));},this.NativeNameForOp=i=>i==="and"?"&&":i==="or"?"||":i==="mod"?"%":i==="has"?"?":i==="hasnt"?"!?":i,this.toString=()=>`(${this.leftExpression} ${this.opName} ${this.rightExpression})`,this.leftExpression=this.AddContent(e),this.rightExpression=this.AddContent(t),this.opName=r;}get typeName(){return "BinaryExpression"}ResolveReferences(e){if(super.ResolveReferences(e),this.NativeNameForOp(this.opName)==="?"){let t=(0, sA.asOrNull)(this.leftExpression,iA.UnaryExpression);t!==null&&(t.op==="not"||t.op==="!")&&this.Error(`Using 'not' or '!' here negates '${t.innerExpression}' rather than the result of the '?' or 'has' operator. You need to add parentheses around the (A ? B) expression.`);}}};ha.BinaryExpression=dh;});var Pi=C(da=>{Object.defineProperty(da,"__esModule",{value:true});da.CharacterSet=void 0;var Ai=class{constructor(e){this.set=new Set,this.Add=t=>this.set.add(t),this.AddRange=(t,r)=>{for(let i=t.charCodeAt(0);i<=r.charCodeAt(0);++i)this.Add(String.fromCharCode(i));return this},this.AddCharacters=t=>{if(typeof t=="string"||Array.isArray(t))for(let r of t)this.Add(r);else for(let r of t.set)this.Add(r);return this},e&&this.AddCharacters(e);}};da.CharacterSet=Ai;Ai.FromRange=(n,e)=>new Ai().AddRange(n,e);});var uy=C(fa=>{Object.defineProperty(fa,"__esModule",{value:true});fa.CharacterRange=void 0;var oy=Pi(),Ti=class{constructor(e,t,r=[]){if(this._start=e,this._end=t,this._correspondingCharSet=new oy.CharacterSet,this._excludes=new Set,this.ToCharacterSet=()=>{if(this._correspondingCharSet.set.size===0)for(let i=this.start.charCodeAt(0),a;i<=this.end.charCodeAt(0);i+=1)a=String.fromCharCode(i),this._excludes.has(a)||this._correspondingCharSet.AddCharacters(a);return this._correspondingCharSet},r instanceof oy.CharacterSet)this._excludes=r.set;else for(let i of r)this._excludes.add(i);}get start(){return this._start}get end(){return this._end}};fa.CharacterRange=Ti;Ti.Define=(n,e,t=[])=>new Ti(n,e,t);});var ma=C(pa=>{Object.defineProperty(pa,"__esModule",{value:true});pa.ChoicePoint=void 0;var aA=Ge(),oA=Me(),ph=Te(),mh=class extends aA.InkObject{constructor(e=true){super(),this._pathOnChoice=null,this.hasCondition=false,this.hasStartContent=false,this.hasChoiceOnlyContent=false,this.isInvisibleDefault=false,this.onceOnly=true,this.onceOnly=e;}get pathOnChoice(){if(this._pathOnChoice!=null&&this._pathOnChoice.isRelative){let e=this.choiceTarget;e&&(this._pathOnChoice=e.path);}return this._pathOnChoice}set pathOnChoice(e){this._pathOnChoice=e;}get choiceTarget(){return this._pathOnChoice===null?(0, ph.throwNullException)("ChoicePoint._pathOnChoice"):this.ResolvePath(this._pathOnChoice).container}get pathStringOnChoice(){return this.pathOnChoice===null?(0, ph.throwNullException)("ChoicePoint.pathOnChoice"):this.CompactPathString(this.pathOnChoice)}set pathStringOnChoice(e){this.pathOnChoice=new oA.Path(e);}get flags(){let e=0;return this.hasCondition&&(e|=1),this.hasStartContent&&(e|=2),this.hasChoiceOnlyContent&&(e|=4),this.isInvisibleDefault&&(e|=8),this.onceOnly&&(e|=16),e}set flags(e){this.hasCondition=(e&1)>0,this.hasStartContent=(e&2)>0,this.hasChoiceOnlyContent=(e&4)>0,this.isInvisibleDefault=(e&8)>0,this.onceOnly=(e&16)>0;}toString(){if(this.pathOnChoice===null)return (0, ph.throwNullException)("ChoicePoint.pathOnChoice");let t=this.pathOnChoice.toString();return "Choice: -> "+t}};pa.ChoicePoint=mh;});var Tn=C(ga=>{Object.defineProperty(ga,"__esModule",{value:true});ga.PushPopType=void 0;var ly;(function(n){n[n.Tunnel=0]="Tunnel",n[n.Function=1]="Function",n[n.FunctionEvaluationFromGame=2]="FunctionEvaluationFromGame";})(ly||(ga.PushPopType=ly={}));});var xi=C(ya=>{Object.defineProperty(ya,"__esModule",{value:true});ya.Pointer=void 0;var uA=Me(),gh=class n{constructor(){this.container=null,this.index=-1,arguments.length===2&&(this.container=arguments[0],this.index=arguments[1]);}Resolve(){return this.index<0?this.container:this.container==null?null:this.container.content.length==0?this.container:this.index>=this.container.content.length?null:this.container.content[this.index]}get isNull(){return this.container==null}get path(){return this.isNull?null:this.index>=0?this.container.path.PathByAppendingComponent(new uA.Path.Component(this.index)):this.container.path}toString(){return this.container?"Ink Pointer -> "+this.container.path.toString()+" -- index "+this.index:"Ink Pointer (null)"}copy(){return new n(this.container,this.index)}static StartOf(e){return new n(e,0)}static get Null(){return new n(null,-1)}};ya.Pointer=gh;});var wt=C(va=>{Object.defineProperty(va,"__esModule",{value:true});va.Divert=void 0;var lA=Me(),cA=Tn(),hA=Dn(),dA=Ge(),yh=xi(),cy=de(),Ca=Te(),Ch=class n extends dA.InkObject{get targetPath(){if(this._targetPath!=null&&this._targetPath.isRelative){let e=this.targetPointer.Resolve();e&&(this._targetPath=e.path);}return this._targetPath}set targetPath(e){this._targetPath=e,this._targetPointer=yh.Pointer.Null;}get targetPointer(){if(this._targetPointer.isNull){let e=this.ResolvePath(this._targetPath).obj;if(this._targetPath===null)return (0, Ca.throwNullException)("this._targetPath");if(this._targetPath.lastComponent===null)return (0, Ca.throwNullException)("this._targetPath.lastComponent");if(this._targetPath.lastComponent.isIndex){if(e===null)return (0, Ca.throwNullException)("targetObj");this._targetPointer.container=e.parent instanceof cy.Container?e.parent:null,this._targetPointer.index=this._targetPath.lastComponent.index;}else this._targetPointer=yh.Pointer.StartOf(e instanceof cy.Container?e:null);}return this._targetPointer.copy()}get targetPathString(){return this.targetPath==null?null:this.CompactPathString(this.targetPath)}set targetPathString(e){e==null?this.targetPath=null:this.targetPath=new lA.Path(e);}get hasVariableTarget(){return this.variableDivertName!=null}constructor(e){super(),this._targetPath=null,this._targetPointer=yh.Pointer.Null,this.variableDivertName=null,this.pushesToStack=false,this.stackPushType=0,this.isExternal=false,this.externalArgs=0,this.isConditional=false,this.pushesToStack=false,typeof e<"u"&&(this.pushesToStack=true,this.stackPushType=e);}Equals(e){let t=e;return t instanceof n&&this.hasVariableTarget==t.hasVariableTarget?this.hasVariableTarget?this.variableDivertName==t.variableDivertName:this.targetPath===null?(0, Ca.throwNullException)("this.targetPath"):this.targetPath.Equals(t.targetPath):false}toString(){if(this.hasVariableTarget)return "Divert(variable: "+this.variableDivertName+")";if(this.targetPath==null)return "Divert(null)";{let e=new hA.StringBuilder,t=this.targetPath.toString();return e.Append("Divert"),this.isConditional&&e.Append("?"),this.pushesToStack&&(this.stackPushType==cA.PushPopType.Function?e.Append(" function"):e.Append(" tunnel")),e.Append(" -> "),e.Append(this.targetPathString),e.Append(" ("),e.Append(t),e.Append(")"),e.toString()}}};va.Divert=Ch;});var $t=C(Ea=>{Object.defineProperty(Ea,"__esModule",{value:true});Ea.SymbolType=void 0;var hy;(function(n){n[n.Knot=0]="Knot",n[n.List=1]="List",n[n.ListItem=2]="ListItem",n[n.Var=3]="Var",n[n.SubFlowAndWeave=4]="SubFlowAndWeave",n[n.Arg=5]="Arg",n[n.Temp=6]="Temp";})(hy||(Ea.SymbolType=hy={}));});var Zt=C(_a=>{Object.defineProperty(_a,"__esModule",{value:true});_a.VariableAssignment=void 0;var fA=Ge(),vh=class extends fA.InkObject{constructor(e,t){super(),this.variableName=e||null,this.isNewDeclaration=!!t,this.isGlobal=false;}toString(){return "VarAssign to "+this.variableName}};_a.VariableAssignment=vh;});var gr=C(ba=>{Object.defineProperty(ba,"__esModule",{value:true});ba.Choice=void 0;var pA=ma(),Sa=de(),Qt=xe(),Eh=wt(),dy=ue(),mA=oe(),gA=$t(),fy=Zt(),_h=class extends mA.ParsedObject{get runtimeChoice(){if(!this._runtimeChoice)throw new Error;return this._runtimeChoice}get name(){var e;return ((e=this.identifier)===null||e===void 0?void 0:e.name)||null}get condition(){return this._condition}set condition(e){this._condition=e,e&&this.AddContent(e);}get runtimeContainer(){return this._innerContentContainer}get innerContentContainer(){return this._innerContentContainer}get containerForCounting(){return this._innerContentContainer}get runtimePath(){if(!this.innerContentContainer||!this.innerContentContainer.path)throw new Error;return this.innerContentContainer.path}constructor(e,t,r){super(),this._condition=null,this._innerContentContainer=null,this._outerContainer=null,this._runtimeChoice=null,this._returnToR1=null,this._returnToR2=null,this._r1Label=null,this._r2Label=null,this._divertToStartContentOuter=null,this._divertToStartContentInner=null,this._startContentRuntimeContainer=null,this.isInvisibleDefault=false,this.hasWeaveStyleInlineBrackets=false,this.GenerateRuntimeObject=()=>{if(this._outerContainer=new Sa.Container,this._runtimeChoice=new pA.ChoicePoint(this.onceOnly),this._runtimeChoice.isInvisibleDefault=this.isInvisibleDefault,(this.startContent||this.choiceOnlyContent||this.condition)&&this._outerContainer.AddContent(Qt.ControlCommand.EvalStart()),this.startContent){this._returnToR1=new dy.DivertTargetValue,this._outerContainer.AddContent(this._returnToR1);let i=new fy.VariableAssignment("$r",true);this._outerContainer.AddContent(i),this._outerContainer.AddContent(Qt.ControlCommand.BeginString()),this._divertToStartContentOuter=new Eh.Divert,this._outerContainer.AddContent(this._divertToStartContentOuter),this._startContentRuntimeContainer=this.startContent.GenerateRuntimeObject(),this._startContentRuntimeContainer.name="s";let a=new Eh.Divert;a.variableDivertName="$r",this._startContentRuntimeContainer.AddContent(a),this._outerContainer.AddToNamedContentOnly(this._startContentRuntimeContainer),this._r1Label=new Sa.Container,this._r1Label.name="$r1",this._outerContainer.AddContent(this._r1Label),this._outerContainer.AddContent(Qt.ControlCommand.EndString()),this._runtimeChoice.hasStartContent=true;}if(this.choiceOnlyContent){this._outerContainer.AddContent(Qt.ControlCommand.BeginString());let i=this.choiceOnlyContent.GenerateRuntimeObject();this._outerContainer.AddContentsOfContainer(i),this._outerContainer.AddContent(Qt.ControlCommand.EndString()),this._runtimeChoice.hasChoiceOnlyContent=true;}if(this.condition&&(this.condition.GenerateIntoContainer(this._outerContainer),this._runtimeChoice.hasCondition=true),(this.startContent||this.choiceOnlyContent||this.condition)&&this._outerContainer.AddContent(Qt.ControlCommand.EvalEnd()),this._outerContainer.AddContent(this._runtimeChoice),this._innerContentContainer=new Sa.Container,this.startContent){this._returnToR2=new dy.DivertTargetValue,this._innerContentContainer.AddContent(Qt.ControlCommand.EvalStart()),this._innerContentContainer.AddContent(this._returnToR2),this._innerContentContainer.AddContent(Qt.ControlCommand.EvalEnd());let i=new fy.VariableAssignment("$r",true);this._innerContentContainer.AddContent(i),this._divertToStartContentInner=new Eh.Divert,this._innerContentContainer.AddContent(this._divertToStartContentInner),this._r2Label=new Sa.Container,this._r2Label.name="$r2",this._innerContentContainer.AddContent(this._r2Label);}if(this.innerContent){let i=this.innerContent.GenerateRuntimeObject();this._innerContentContainer.AddContentsOfContainer(i);}return this.story.countAllVisits&&(this._innerContentContainer.visitsShouldBeCounted=true),this._innerContentContainer.countingAtStartOnly=true,this._outerContainer},this.toString=()=>this.choiceOnlyContent!==null?`* ${this.startContent}[${this.choiceOnlyContent}]...`:`* ${this.startContent}...`,this.startContent=e,this.choiceOnlyContent=t,this.innerContent=r,this.indentationDepth=1,e&&this.AddContent(this.startContent),t&&this.AddContent(this.choiceOnlyContent),r&&this.AddContent(this.innerContent),this.onceOnly=true;}get typeName(){return "Choice"}ResolveReferences(e){var t;if(this._innerContentContainer&&(this.runtimeChoice.pathOnChoice=this._innerContentContainer.path,this.onceOnly&&(this._innerContentContainer.visitsShouldBeCounted=true)),this._returnToR1){if(!this._r1Label)throw new Error;this._returnToR1.targetPath=this._r1Label.path;}if(this._returnToR2){if(!this._r2Label)throw new Error;this._returnToR2.targetPath=this._r2Label.path;}if(this._divertToStartContentOuter){if(!this._startContentRuntimeContainer)throw new Error;this._divertToStartContentOuter.targetPath=this._startContentRuntimeContainer.path;}if(this._divertToStartContentInner){if(!this._startContentRuntimeContainer)throw new Error;this._divertToStartContentInner.targetPath=this._startContentRuntimeContainer.path;}super.ResolveReferences(e),this.identifier&&(((t=this.identifier)===null||t===void 0?void 0:t.name)||"").length>0&&e.CheckForNamingCollisions(this,this.identifier,gA.SymbolType.SubFlowAndWeave);}};ba.Choice=_h;});var py=C(Da=>{Object.defineProperty(Da,"__esModule",{value:true});Da.StringParserElement=void 0;var wa=class n{constructor(){this.characterIndex=0,this.characterInLineIndex=0,this.lineIndex=0,this.reportedErrorInScope=false,this.uniqueId=0,this.customFlags=0,this.CopyFrom=e=>{n._uniqueIdCounter++,this.uniqueId=n._uniqueIdCounter,this.characterIndex=e.characterIndex,this.characterInLineIndex=e.characterInLineIndex,this.lineIndex=e.lineIndex,this.customFlags=e.customFlags,this.reportedErrorInScope=false;},this.SquashFrom=e=>{this.characterIndex=e.characterIndex,this.characterInLineIndex=e.characterInLineIndex,this.lineIndex=e.lineIndex,this.reportedErrorInScope=e.reportedErrorInScope,this.customFlags=e.customFlags;};}};Da.StringParserElement=wa;wa._uniqueIdCounter=1e3;});var gy=C(Aa=>{Object.defineProperty(Aa,"__esModule",{value:true});Aa.StringParserState=void 0;var my=py(),Sh=class{get currentElement(){return this._stack[this._numElements-1]}get lineIndex(){return this.currentElement.lineIndex}set lineIndex(e){this.currentElement.lineIndex=e;}get characterIndex(){return this.currentElement.characterIndex}set characterIndex(e){this.currentElement.characterIndex=e;}get characterInLineIndex(){return this.currentElement.characterInLineIndex}set characterInLineIndex(e){this.currentElement.characterInLineIndex=e;}get customFlags(){return this.currentElement.customFlags}set customFlags(e){this.currentElement.customFlags=e;}get errorReportedAlreadyInScope(){return this.currentElement.reportedErrorInScope}get stackHeight(){return this._numElements}constructor(){this._stack=[],this._numElements=0,this.StringParserState=()=>{this._stack=new Array(200);for(let r=0;r<200;++r)this._stack[r]=new my.StringParserElement;this._numElements=1;},this.Push=()=>{if(this._numElements>=this._stack.length&&this._numElements>0)throw new Error("Stack overflow in parser state.");let t=this._stack[this._numElements-1],r=this._stack[this._numElements];return this._numElements++,r.CopyFrom(t),r.uniqueId},this.Pop=t=>{if(this._numElements==1)throw new Error("Attempting to remove final stack element is illegal! Mismatched Begin/Succceed/Fail?");if(this.currentElement.uniqueId!=t)throw new Error("Mismatched rule IDs while Poping - do you have mismatched Begin/Succeed/Fail?");this._numElements-=1;},this.Peek=t=>{if(this.currentElement.uniqueId!=t)throw new Error("Mismatched rule IDs while Peeking - do you have mismatched Begin/Succeed/Fail?");return this._stack[this._numElements-1]},this.PeekPenultimate=()=>this._numElements>=2?this._stack[this._numElements-2]:null,this.Squash=()=>{if(this._numElements<2)throw new Error("Attempting to remove final stack element is illegal! Mismatched Begin/Succceed/Fail?");let t=this._stack[this._numElements-2],r=this._stack[this._numElements-1];t.SquashFrom(r),this._numElements-=1;},this.NoteErrorReported=()=>{for(let t of this._stack)t.reportedErrorInScope=true;};let e=200;for(let t=0;t<e;t++)this._stack[t]=new my.StringParserElement;this._numElements=1;}};Aa.StringParserState=Sh;});var wh=C(xn=>{Object.defineProperty(xn,"__esModule",{value:true});xn.StringParser=xn.ParseSuccess=void 0;var bh=Pi(),yA=gy();xn.ParseSuccess=Symbol("ParseSuccessStruct");var Oi=class n{constructor(e){this.ParseRule=null,this.errorHandler=null,this.hadError=false,this.BeginRule=()=>this.state.Push(),this.FailRule=r=>(this.state.Pop(r),null),this.CancelRule=r=>{this.state.Pop(r);},this.SucceedRule=(r,i=null)=>{let a=this.state.Peek(r),s=this.state.PeekPenultimate();this.RuleDidSucceed&&this.RuleDidSucceed(i,s,a),this.state.Squash();let o=i;return o===null&&(o=n.ParseSuccess),o},this.Expect=(r,i=null,a=null)=>{let s=this.ParseObject(r);if(s===null){i===null&&(i=r.name);let o,u=this.LineRemainder();u===null||u.length===0?o="end of line":o=`'${u}'`,this.Error(`Expected ${i} but saw ${o}`),a!==null&&(s=a());}return s},this.Error=(r,i=false)=>{this.ErrorOnLine(r,this.lineIndex+1,i);},this.ErrorWithParsedObject=(r,i,a=false)=>{this.ErrorOnLine(r,i.debugMetadata?i.debugMetadata.startLineNumber:-1,a);},this.ErrorOnLine=(r,i,a)=>{if(!this.state.errorReportedAlreadyInScope){let s=a?"Warning":"Error";if(this.errorHandler)this.errorHandler(r,this.index,i-1,a);else throw new Error(`${s} on line ${i}: ${r}`);this.state.NoteErrorReported();}a||(this.hadError=true);},this.Warning=r=>this.Error(r,true),this.LineRemainder=()=>this.Peek(()=>this.ParseUntilCharactersFromString(`
12
12
  \r`)),this.SetFlag=(r,i)=>{i?this.state.customFlags|=r:this.state.customFlags&=~r;},this.GetFlag=r=>!!(this.state.customFlags&r),this.ParseObject=r=>{let i=this.BeginRule(),a=this.state.stackHeight,s=r();if(a!==this.state.stackHeight)throw new Error("Mismatched Begin/Fail/Succeed rules");return s===null?this.FailRule(i):(this.SucceedRule(i,s),s)},this.Parse=r=>{let i=this.BeginRule(),a=r();return a===null?(this.FailRule(i),null):(this.SucceedRule(i,a),a)},this.OneOf=r=>{for(let i of r){let a=this.ParseObject(i);if(a!==null)return a}return null},this.OneOrMore=r=>{let i=[],a=null;do a=this.ParseObject(r),a!==null&&i.push(a);while(a!==null);return i.length>0?i:null},this.Optional=r=>()=>{let i=this.ParseObject(r);return i===null?n.ParseSuccess:i},this.Exclude=r=>()=>this.ParseObject(r)&&n.ParseSuccess,this.OptionalExclude=r=>()=>(this.ParseObject(r),n.ParseSuccess),this.String=r=>()=>this.ParseString(r),this.TryAddResultToList=(r,i,a=true)=>{if(r!==n.ParseSuccess){if(a&&Array.isArray(r)){let s=r;if(s!==null){for(let o of s)i.push(o);return}}i.push(r);}},this.Interleave=(r,i,a=null,s=true)=>{let o=this.BeginRule(),u=[],l=this.ParseObject(r);if(l===null)return this.FailRule(o);this.TryAddResultToList(l,u,s);let c=null,h=null;do{if(a!==null&&this.Peek(a)!==null||(c=this.ParseObject(i),c===null))break;if(this.TryAddResultToList(c,u,s),h=null,c!==null){if(h=this.ParseObject(r),h===null)break;this.TryAddResultToList(h,u,s);}}while((c!==null||h!==null)&&!(c===n.ParseSuccess&&h==n.ParseSuccess)&&this.remainingLength>0);return u.length===0?this.FailRule(o):this.SucceedRule(o,u)},this.ParseString=r=>{if(r.length>this.remainingLength)return null;let i=this.BeginRule(),a=this.index,s=this.characterInLineIndex,o=this.lineIndex,u=true;for(let l=0;l<r.length;l+=1){let c=r[l];if(this._chars[a]!==c){u=false;break}c===`
13
13
  `&&(o++,s=-1),a++,s++;}return this.index=a,this.characterInLineIndex=s,this.lineIndex=o,u?this.SucceedRule(i,r):this.FailRule(i)},this.ParseSingleCharacter=()=>{if(this.remainingLength>0){let r=this._chars[this.index];return r===`
14
14
  `&&(this.lineIndex+=1,this.characterInLineIndex=-1),this.index+=1,this.characterInLineIndex+=1,r}return "0"},this.ParseUntilCharactersFromString=(r,i=-1)=>this.ParseCharactersFromString(r,false,i),this.ParseUntilCharactersFromCharSet=(r,i=-1)=>this.ParseCharactersFromCharSet(r,false,i),this.ParseCharactersFromString=(r,i=-1,a=-1)=>{let s=new bh.CharacterSet(r);return typeof i=="number"?this.ParseCharactersFromCharSet(s,true,i):this.ParseCharactersFromCharSet(s,i,a)},this.ParseCharactersFromCharSet=(r,i=true,a=-1)=>{a===-1&&(a=Number.MAX_SAFE_INTEGER);let s=this.index,o=this.index,u=this.characterInLineIndex,l=this.lineIndex,c=0;for(;o<this._chars.length&&r.set.has(this._chars[o])===i&&c<a;)this._chars[o]===`
15
15
  `&&(l+=1,u=-1),o+=1,u+=1,c+=1;return this.index=o,this.characterInLineIndex=u,this.lineIndex=l,this.index>s?this._chars.slice(s,this.index).join(""):null},this.Peek=r=>{let i=this.BeginRule(),a=r();return this.CancelRule(i),a},this.ParseInt=()=>{let r=this.index,i=this.characterInLineIndex,a=this.ParseString("-")!==null;this.ParseCharactersFromString(" ");let s=this.ParseCharactersFromCharSet(n.numbersCharacterSet);if(s===null)return this.index=r,this.characterInLineIndex=i,null;let o;return Number.isNaN(Number(s))?(this.Error("Failed to read integer value: "+s+". Perhaps it's out of the range of acceptable numbers ink supports? ("+Number.MIN_SAFE_INTEGER+" to "+Number.MAX_SAFE_INTEGER+")"),null):(o=Number(s),a?-o:o)},this.ParseFloat=()=>{let r=this.index,i=this.characterInLineIndex,a=this.ParseInt();if(a!==null&&this.ParseString(".")!==null){let s=this.ParseCharactersFromCharSet(n.numbersCharacterSet);return +`${a}.${s}`}return this.index=r,this.characterInLineIndex=i,null},this.ParseNewline=()=>{let r=this.BeginRule();return this.ParseString("\r"),this.ParseString(`
16
16
  `)===null?this.FailRule(r):this.SucceedRule(r,`
17
17
  `)};let t=this.PreProcessInputString(e);this.state=new yA.StringParserState,e?this._chars=t.split(""):this._chars=[],this.inputString=t;}get currentCharacter(){return this.index>=0&&this.remainingLength>0?this._chars[this.index]:"0"}PreProcessInputString(e){return e}get endOfInput(){return this.index>=this._chars.length}get remainingString(){return this._chars.slice(this.index,this.index+this.remainingLength).join("")}get remainingLength(){return this._chars.length-this.index}get lineIndex(){return this.state.lineIndex}set lineIndex(e){this.state.lineIndex=e;}set characterInLineIndex(e){this.state.characterInLineIndex=e;}get characterInLineIndex(){return this.state.characterInLineIndex}get index(){return this.state.characterIndex}set index(e){this.state.characterIndex=e;}ParseUntil(e,t=null,r=null){let i=this.BeginRule(),a=new bh.CharacterSet;t!==null&&(a.set=new Set([...a.set.values(),...t.set.values()])),r!==null&&(a.set=new Set([...a.set.values(),...r.set.values()]));let s="",o=null;do{let u=this.ParseUntilCharactersFromCharSet(a);if(u&&(s+=u),o=this.Peek(e),o!==null)break;{if(this.endOfInput)break;let l=this.currentCharacter;if(t!==null&&t.set.has(l)){s+=l,l===`
18
- `&&(this.lineIndex+=1,this.characterInLineIndex=-1),this.index+=1,this.characterInLineIndex+=1;continue}else break}}while(true);return s.length>0?this.SucceedRule(i,String(s)):this.FailRule(i)}};On.StringParser=xi;xi.ParseSuccess=On.ParseSuccess;xi.numbersCharacterSet=new bh.CharacterSet("0123456789");});var yy=C(Pa=>{Object.defineProperty(Pa,"__esModule",{value:true});Pa.CommentEliminator=void 0;var wh=Pi(),CA=Dh(),Ah=class extends CA.StringParser{constructor(){super(...arguments),this._commentOrNewlineStartCharacter=new wh.CharacterSet(`/\r
19
- `),this._commentBlockEndCharacter=new wh.CharacterSet("*"),this._newlineCharacters=new wh.CharacterSet(`
18
+ `&&(this.lineIndex+=1,this.characterInLineIndex=-1),this.index+=1,this.characterInLineIndex+=1;continue}else break}}while(true);return s.length>0?this.SucceedRule(i,String(s)):this.FailRule(i)}};xn.StringParser=Oi;Oi.ParseSuccess=xn.ParseSuccess;Oi.numbersCharacterSet=new bh.CharacterSet("0123456789");});var yy=C(Pa=>{Object.defineProperty(Pa,"__esModule",{value:true});Pa.CommentEliminator=void 0;var Dh=Pi(),CA=wh(),Ah=class extends CA.StringParser{constructor(){super(...arguments),this._commentOrNewlineStartCharacter=new Dh.CharacterSet(`/\r
19
+ `),this._commentBlockEndCharacter=new Dh.CharacterSet("*"),this._newlineCharacters=new Dh.CharacterSet(`
20
20
  \r`),this.Process=()=>{let e=this.Interleave(this.Optional(this.CommentsAndNewlines),this.Optional(this.MainInk));return e!==null?e.join(""):""},this.MainInk=()=>this.ParseUntil(this.CommentsAndNewlines,this._commentOrNewlineStartCharacter,null),this.CommentsAndNewlines=()=>{let e=this.Interleave(this.Optional(this.ParseNewline),this.Optional(this.ParseSingleComment));return e!==null?e.join(""):null},this.ParseSingleComment=()=>this.OneOf([this.EndOfLineComment,this.BlockComment]),this.EndOfLineComment=()=>this.ParseString("//")===null?null:(this.ParseUntilCharactersFromCharSet(this._newlineCharacters),""),this.BlockComment=()=>{if(this.ParseString("/*")===null)return null;let e=this.lineIndex,t=this.ParseUntil(this.String("*/"),this._commentBlockEndCharacter,null);return this.endOfInput||this.ParseString("*/"),t!=null?`
21
- `.repeat(this.lineIndex-e):null};}PreProcessInputString(e){return e}};Pa.CommentEliminator=Ah;});var Oa=C(Ta=>{Object.defineProperty(Ta,"__esModule",{value:true});Ta.Conditional=void 0;var vA=de(),Cy=Oe(),EA=oe(),Ph=class extends EA.ParsedObject{constructor(e,t){super(),this.initialCondition=e,this.branches=t,this._reJoinTarget=null,this.GenerateRuntimeObject=()=>{let r=new vA.Container;this.initialCondition&&r.AddContent(this.initialCondition.runtimeObject);for(let i of this.branches){let a=i.runtimeObject;r.AddContent(a);}return this.initialCondition!==null&&this.branches[0].ownExpression!==null&&!this.branches[this.branches.length-1].isElse&&r.AddContent(Cy.ControlCommand.PopEvaluatedValue()),this._reJoinTarget=Cy.ControlCommand.NoOp(),r.AddContent(this._reJoinTarget),r},this.initialCondition&&this.AddContent(this.initialCondition),this.branches!==null&&this.AddContent(this.branches);}get typeName(){return "Conditional"}ResolveReferences(e){let t=this._reJoinTarget.path;for(let r of this.branches){if(!r.returnDivert)throw new Error;r.returnDivert.targetPath=t;}super.ResolveReferences(e);}};Ta.Conditional=Ph;});var en=C(xa=>{Object.defineProperty(xa,"__esModule",{value:true});xa.Text=void 0;var _A=oe(),SA=ue(),Th=class extends _A.ParsedObject{constructor(e){super(),this.text=e,this.GenerateRuntimeObject=()=>new SA.StringValue(this.text),this.toString=()=>this.text;}get typeName(){return "Text"}};xa.Text=Th;});var Na=C(Fa=>{Object.defineProperty(Fa,"__esModule",{value:true});Fa.ConstantDeclaration=void 0;var bA=oe(),DA=$t(),Oh=class extends bA.ParsedObject{get constantName(){var e;return (e=this.constantIdentifier)===null||e===void 0?void 0:e.name}get expression(){if(!this._expression)throw new Error;return this._expression}constructor(e,t){super(),this._expression=null,this.GenerateRuntimeObject=()=>null,this.constantIdentifier=e,t&&(this._expression=this.AddContent(t));}get typeName(){return "CONST"}ResolveReferences(e){super.ResolveReferences(e),e.CheckForNamingCollisions(this,this.constantIdentifier,DA.SymbolType.Var);}};Fa.ConstantDeclaration=Oh;});var yr=C(Ia=>{Object.defineProperty(Ia,"__esModule",{value:true});Ia.FlowLevel=void 0;var vy;(function(n){n[n.Story=0]="Story",n[n.Knot=1]="Knot",n[n.Stitch=2]="Stitch",n[n.WeavePoint=3]="WeavePoint";})(vy||(Ia.FlowLevel=vy={}));});var Fi=C(ka=>{Object.defineProperty(ka,"__esModule",{value:true});ka.Gather=void 0;var wA=de(),AA=oe(),PA=$t(),xh=class extends AA.ParsedObject{get name(){var e;return ((e=this.identifier)===null||e===void 0?void 0:e.name)||null}get runtimeContainer(){return this.runtimeObject}constructor(e,t){super(),this.indentationDepth=t,this.GenerateRuntimeObject=()=>{let r=new wA.Container;if(r.name=this.name,this.story.countAllVisits&&(r.visitsShouldBeCounted=true),r.countingAtStartOnly=true,this.content)for(let i of this.content)r.AddContent(i.runtimeObject);return r},this.toString=()=>{var r,i;return `- ${!((r=this.identifier)===null||r===void 0)&&r.name?"("+((i=this.identifier)===null||i===void 0?void 0:i.name)+")":"gather"}`},e&&(this.identifier=e);}get typeName(){return "Gather"}ResolveReferences(e){super.ResolveReferences(e),this.identifier&&(this.identifier.name||"").length>0&&e.CheckForNamingCollisions(this,this.identifier,PA.SymbolType.SubFlowAndWeave);}};ka.Gather=xh;});var xn=C($a=>{Object.defineProperty($a,"__esModule",{value:true});$a.Path=void 0;var Ra=X(),Ey=wt(),Cr=yr(),TA=Fn(),Fh=class{get baseTargetLevel(){return this.baseLevelIsAmbiguous?Cr.FlowLevel.Story:this._baseTargetLevel}get baseLevelIsAmbiguous(){return !this._baseTargetLevel}get firstComponent(){return this.components==null||!this.components.length?null:this.components[0].name}get numberOfComponents(){return this.components?this.components.length:0}get dotSeparatedComponents(){return this._dotSeparatedComponents==null&&(this._dotSeparatedComponents=(this.components?this.components:[]).map(e=>e.name).filter(Ra.filterUndef).join(".")),this._dotSeparatedComponents}constructor(e,t){this._dotSeparatedComponents=null,this.toString=()=>this.components===null||this.components.length===0?this.baseTargetLevel===Cr.FlowLevel.WeavePoint?"-> <next gather point>":"<invalid Path>":`-> ${this.dotSeparatedComponents}`,this.ResolveFromContext=r=>{if(this.components==null||this.components.length==0)return null;let i=this.ResolveBaseTarget(r);return i===null?null:this.components.length>1?this.ResolveTailComponents(i):i},this.ResolveBaseTarget=r=>{let i=this.firstComponent,a=r;for(;a;){let s=a===r,o=this.GetChildFromContext(a,i,null,s);if(o)return o;a=a.parent;}return null},this.ResolveTailComponents=r=>{let i=r;if(!this.components)return null;for(let a=1;a<this.components.length;++a){let s=this.components[a].name,o,u=(0, Ra.asOrNull)(i,Ey.FlowBase);if(u!==null?o=u.flowLevel+1:o=Cr.FlowLevel.WeavePoint,i=this.GetChildFromContext(i,s,o),i===null)break}return i},this.GetChildFromContext=(r,i,a,s=false)=>{let o=a===null,u=(0, Ra.asOrNull)(r,TA.Weave);if(i&&u!==null&&(o||a===Cr.FlowLevel.WeavePoint))return u.WeavePointNamed(i);let l=(0, Ra.asOrNull)(r,Ey.FlowBase);if(i&&l!==null){let c=s||l.flowLevel===Cr.FlowLevel.Knot;return l.ContentWithNameAtLevel(i,a,c)}return null},Object.values(Cr.FlowLevel).includes(e)?(this._baseTargetLevel=e,this.components=t||[]):Array.isArray(e)?(this._baseTargetLevel=null,this.components=e||[]):(this._baseTargetLevel=null,this.components=[e]);}get typeName(){return "Path"}};$a.Path=Fh;});var kh=C(Va=>{Object.defineProperty(Va,"__esModule",{value:true});Va.ReturnType=void 0;var OA=oe(),xA=de(),Nh=Oe(),FA=Pn(),Ih=class extends OA.ParsedObject{constructor(e=null){super(),this.returnedExpression=null,this.GenerateRuntimeObject=()=>{let t=new xA.Container;return this.returnedExpression?t.AddContent(this.returnedExpression.runtimeObject):(t.AddContent(Nh.ControlCommand.EvalStart()),t.AddContent(new FA.Void),t.AddContent(Nh.ControlCommand.EvalEnd())),t.AddContent(Nh.ControlCommand.PopFunction()),t},e&&(this.returnedExpression=this.AddContent(e));}get typeName(){return "ReturnType"}};Va.ReturnType=Ih;});var Ni=C(ja=>{Object.defineProperty(ja,"__esModule",{value:true});ja.ClosestFlowBase=void 0;function NA(n){let e=n.parent;for(;e;){if(e.hasOwnProperty("iamFlowbase")&&e.iamFlowbase())return e;e=e.parent;}return null}ja.ClosestFlowBase=NA;});var La=C(qa=>{Object.defineProperty(qa,"__esModule",{value:true});qa.Identifier=void 0;var Rh=class n{constructor(e){this.debugMetadata=null,this.toString=()=>this.name||"undefined identifer",this.name=e;}get typeName(){return "Identifier"}static Done(){return new n("DONE")}};qa.Identifier=Rh;});var wt=C(Ba=>{Object.defineProperty(Ba,"__esModule",{value:true});Ba.FlowBase=void 0;var IA=gr(),$h=Er(),kA=vr(),At=yr(),RA=Fi(),$A=oe(),VA=xn(),jA=kh(),qA=de(),LA=Dt(),BA=Zt(),Vh=$t(),WA=Fn(),MA=Ni(),GA=La(),_y=X(),jh=class n extends $A.ParsedObject{get hasParameters(){return this.args!==null&&this.args.length>0}get subFlowsByName(){return this._subFlowsByName}get typeName(){return this.isFunction?"Function":String(this.flowLevel)}get name(){var e;return ((e=this.identifier)===null||e===void 0?void 0:e.name)||null}constructor(e,t=null,r=null,i=false,a=false){super(),this.isFunction=i,this._rootWeave=null,this._subFlowsByName=new Map,this._startingSubFlowDivert=null,this._startingSubFlowRuntime=null,this._firstChildFlow=null,this.variableDeclarations=new Map,this.identifier=null,this.args=null,this.iamFlowbase=()=>true,this.SplitWeaveAndSubFlowContent=(s,o)=>{var u,l;let c=[],h=[];this._subFlowsByName=new Map;for(let p of s){let m=(0, _y.asOrNull)(p,n);m?(this._firstChildFlow===null&&(this._firstChildFlow=m),h.push(p),!((u=m.identifier)===null||u===void 0)&&u.name&&this._subFlowsByName.set((l=m.identifier)===null||l===void 0?void 0:l.name,m)):c.push(p);}o&&c.push(new RA.Gather(null,1),new $h.Divert(new VA.Path(GA.Identifier.Done())));let f=[];return c.length>0&&(this._rootWeave=new WA.Weave(c,0),f.push(this._rootWeave)),h.length>0&&f.push(...h),f},this.ResolveVariableWithName=(s,o)=>{var u;let l={},c=o===null?this:(0, MA.ClosestFlowBase)(o);if(c){if(c.args!==null){for(let h of c.args)if(((u=h.identifier)===null||u===void 0?void 0:u.name)===s)return l.found=true,l.isArgument=true,l.ownerFlow=c,l}if(c!==this.story&&c.variableDeclarations.has(s))return l.found=true,l.ownerFlow=c,l.isTemporary=true,l}return this.story.variableDeclarations.has(s)?(l.found=true,l.ownerFlow=this.story,l.isGlobal=true,l):(l.found=false,l)},this.AddNewVariableDeclaration=s=>{let o=s.variableName;if(this.variableDeclarations.has(o)){let u=this.variableDeclarations.get(o),l="";u.debugMetadata&&(l=` (${u.debugMetadata})`),this.Error(`found declaration variable '${o}' that was already declared${l}`,s,false);return}this.variableDeclarations.set(s.variableName,s);},this.ResolveWeavePointNaming=()=>{this._rootWeave&&this._rootWeave.ResolveWeavePointNaming();for(let[,s]of this._subFlowsByName)s.hasOwnProperty("ResolveWeavePointNaming")&&s.ResolveWeavePointNaming();},this.GenerateRuntimeObject=()=>{var s;let o=null;this.isFunction?this.CheckForDisallowedFunctionFlowControl():(this.flowLevel===At.FlowLevel.Knot||this.flowLevel===At.FlowLevel.Stitch)&&(o=this.Find(jA.ReturnType)(),o!==null&&this.Error(`Return statements can only be used in knots that are declared as functions: == function ${this.identifier} ==`,o));let u=new qA.Container;u.name=(s=this.identifier)===null||s===void 0?void 0:s.name,this.story.countAllVisits&&(u.visitsShouldBeCounted=true),this.GenerateArgumentVariableAssignments(u);let l=0;for(;this.content!==null&&l<this.content.length;){let c=this.content[l];if(c instanceof n){let h=c,f=h.runtimeObject;l===0&&!h.hasParameters&&this.flowLevel===At.FlowLevel.Knot&&(this._startingSubFlowDivert=new LA.Divert,u.AddContent(this._startingSubFlowDivert),this._startingSubFlowRuntime=f);let p=f,m=u.namedContent.get(p.name)||null;if(m){let g=`${this.GetType()} already contains flow named '${p.name}' (at ${m.debugMetadata})`;this.Error(g,h);}u.AddToNamedContentOnly(p);}else c&&u.AddContent(c.runtimeObject);l+=1;}return this.flowLevel!==At.FlowLevel.Story&&!this.isFunction&&this._rootWeave!==null&&o===null&&this._rootWeave.ValidateTermination(this.WarningInTermination),u},this.GenerateArgumentVariableAssignments=s=>{var o;if(!(this.args===null||this.args.length===0))for(let u=this.args.length-1;u>=0;--u){let l=((o=this.args[u].identifier)===null||o===void 0?void 0:o.name)||null,c=new BA.VariableAssignment(l,true);s.AddContent(c);}},this.ContentWithNameAtLevel=(s,o=null,u=false)=>{var l;if((o===this.flowLevel||o===null)&&s===((l=this.identifier)===null||l===void 0?void 0:l.name))return this;if(o===At.FlowLevel.WeavePoint||o===null){let h=null;if(this._rootWeave&&(h=this._rootWeave.WeavePointNamed(s),h))return h;if(o===At.FlowLevel.WeavePoint)return u?this.DeepSearchForAnyLevelContent(s):null}if(o!==null&&o<this.flowLevel)return null;let c=this._subFlowsByName.get(s)||null;return c&&(o===null||o===c.flowLevel)?c:u?this.DeepSearchForAnyLevelContent(s):null},this.DeepSearchForAnyLevelContent=s=>{let o=this.ContentWithNameAtLevel(s,At.FlowLevel.WeavePoint,false);if(o)return o;for(let[,u]of this._subFlowsByName){let l=u.ContentWithNameAtLevel(s,null,true);if(l)return l}return null},this.CheckForDisallowedFunctionFlowControl=()=>{this.flowLevel!==At.FlowLevel.Knot&&this.Error("Functions cannot be stitches - i.e. they should be defined as '== function myFunc ==' rather than internal to another knot.");for(let[u,l]of this._subFlowsByName)this.Error(`Functions may not contain stitches, but saw '${u}' within the function '${this.identifier}'`,l);if(!this._rootWeave)throw new Error;let s=this._rootWeave.FindAll($h.Divert)();for(let u of s)!u.isFunctionCall&&!(u.parent instanceof kA.DivertTarget)&&this.Error(`Functions may not contain diverts, but saw '${u}'`,u);let o=this._rootWeave.FindAll(IA.Choice)();for(let u of o)this.Error(`Functions may not contain choices, but saw '${u}'`,u);},this.WarningInTermination=s=>{let o="Apparent loose end exists where the flow runs out. Do you need a '-> DONE' statement, choice or divert?";s.parent===this._rootWeave&&this._firstChildFlow&&(o=`${o} Note that if you intend to enter '${this._firstChildFlow.identifier}' next, you need to divert to it explicitly.`);let u=(0, _y.asOrNull)(s,$h.Divert);u&&u.isTunnel&&(o+=` When final tunnel to '${u.target} ->' returns it won't have anywhere to go.`),this.Warning(o,s);},this.toString=()=>`${this.typeName} '${this.identifier}'`,this.identifier=e,this.args=r,t===null&&(t=[]),this.PreProcessTopLevelObjects(t),t=this.SplitWeaveAndSubFlowContent(t,this.GetType()=="Story"&&!a),this.AddContent(t);}PreProcessTopLevelObjects(e){}ResolveReferences(e){var t,r;if(this._startingSubFlowDivert){if(!this._startingSubFlowRuntime)throw new Error;this._startingSubFlowDivert.targetPath=this._startingSubFlowRuntime.path;}if(super.ResolveReferences(e),this.args!==null){for(let i of this.args)e.CheckForNamingCollisions(this,i.identifier,Vh.SymbolType.Arg,"argument");for(let i=0;i<this.args.length;i+=1)for(let a=i+1;a<this.args.length;a+=1)((t=this.args[i].identifier)===null||t===void 0?void 0:t.name)==((r=this.args[a].identifier)===null||r===void 0?void 0:r.name)&&this.Error(`Multiple arguments with the same name: '${this.args[i].identifier}'`);}if(this.flowLevel!==At.FlowLevel.Story){let i=this.flowLevel===At.FlowLevel.Knot?Vh.SymbolType.Knot:Vh.SymbolType.SubFlowAndWeave;e.CheckForNamingCollisions(this,this.identifier,i);}}};Ba.FlowBase=jh;});var Ma=C(Wa=>{Object.defineProperty(Wa,"__esModule",{value:true});Wa.ContentList=void 0;var JA=de(),HA=oe(),UA=en(),zA=X(),qh=class extends HA.ParsedObject{get runtimeContainer(){return this.runtimeObject}constructor(e,...t){super(),this.dontFlatten=false,this.TrimTrailingWhitespace=()=>{for(let r=this.content.length-1;r>=0;--r){let i=(0, zA.asOrNull)(this.content[r],UA.Text);if(i===null)break;if(i.text=i.text.replace(new RegExp(/[ \t]/g),""),i.text.length===0)this.content.splice(r,1);else break}},this.GenerateRuntimeObject=()=>{let r=new JA.Container;if(this.content!==null)for(let i of this.content){let a=i.runtimeObject;a&&r.AddContent(a);}return this.dontFlatten&&this.story.DontFlattenContainer(r),r},this.toString=()=>`ContentList(${this.content.join(", ")})`,e&&this.AddContent(e),t&&this.AddContent(t);}get typeName(){return "ContentList"}};Wa.ContentList=qh;});var _r=C(Ga=>{Object.defineProperty(Ga,"__esModule",{value:true});Ga.VariableReference=void 0;var KA=Ge(),XA=Me(),Lh=class extends KA.InkObject{get containerForCount(){return this.pathForCount===null?null:this.ResolvePath(this.pathForCount).container}get pathStringForCount(){return this.pathForCount===null?null:this.CompactPathString(this.pathForCount)}set pathStringForCount(e){e===null?this.pathForCount=null:this.pathForCount=new XA.Path(e);}constructor(e=null){super(),this.pathForCount=null,this.name=e;}toString(){return this.name!=null?"var("+this.name+")":"read_count("+this.pathStringForCount+")"}};Ga.VariableReference=Lh;});var Sr=C(Ja=>{Object.defineProperty(Ja,"__esModule",{value:true});Ja.VariableReference=void 0;var YA=Ma(),ZA=nt(),Sy=wt(),QA=xn(),eP=_r(),tP=Fn(),nP=La(),by=X(),Bh=class extends ZA.Expression{get name(){return this.path.join(".")}get path(){return this.pathIdentifiers.map(e=>e.name).filter(by.filterUndef)}get identifier(){if(!this.pathIdentifiers||this.pathIdentifiers.length==0)return null;let e=this.path.join(".");return new nP.Identifier(e)}get runtimeVarRef(){return this._runtimeVarRef}constructor(e){super(),this.pathIdentifiers=e,this._runtimeVarRef=null,this.isConstantReference=false,this.isListItemReference=false,this.GenerateIntoContainer=t=>{let r=this.story.constants.get(this.name);if(r){r.GenerateConstantIntoContainer(t),this.isConstantReference=true;return}if(this._runtimeVarRef=new eP.VariableReference(this.name),this.path.length===1||this.path.length===2){let i="",a="";this.path.length===1?i=this.path[0]:(a=this.path[0],i=this.path[1]),this.story.ResolveListItem(a,i,this)&&(this.isListItemReference=true);}t.AddContent(this._runtimeVarRef);},this.toString=()=>`{${this.path.join(".")}}`;}get typeName(){return "ref"}ResolveReferences(e){if(super.ResolveReferences(e),this.isConstantReference||this.isListItemReference)return;let t=new QA.Path(this.pathIdentifiers),r=t.ResolveFromContext(this);if(r){if(!r.containerForCounting)throw new Error;if(r.containerForCounting.visitsShouldBeCounted=true,this._runtimeVarRef===null)return;this._runtimeVarRef.pathForCount=r.runtimePath,this._runtimeVarRef.name=null;let i=(0, by.asOrNull)(r,Sy.FlowBase);i&&i.isFunction&&(this.parent instanceof tP.Weave||this.parent instanceof YA.ContentList||this.parent instanceof Sy.FlowBase)&&this.Warning(`'${i.identifier}' being used as read count rather than being called as function. Perhaps you intended to write ${i.identifier}()`);return}if(this.path.length>1){let i=`Could not find target for read count: ${t}`;this.path.length<=2&&(i+=`, or couldn't find list item with the name ${this.path.join(",")}`),this.Error(i);return}e.ResolveVariableWithName(this.name,this).found||this.Error(`Unresolved variable: ${this.name}`,this);}};Ja.VariableReference=Bh;});var Ii=C(Ka=>{Object.defineProperty(Ka,"__esModule",{value:true});Ka.FunctionCall=void 0;var Pt=Oe(),rP=Er(),iP=vr(),sP=nt(),aP=He(),oP=ue(),Ua=bt(),Dy=la(),uP=xn(),lP=ue(),cP=Sr(),Ha=X(),za=class n extends sP.Expression{get proxyDivert(){return this._proxyDivert}get name(){return this._proxyDivert.target.firstComponent||""}get args(){return this._proxyDivert.args}get runtimeDivert(){return this._proxyDivert.runtimeDivert}get isChoiceCount(){return this.name==="CHOICE_COUNT"}get isTurns(){return this.name==="TURNS"}get isTurnsSince(){return this.name==="TURNS_SINCE"}get isRandom(){return this.name==="RANDOM"}get isSeedRandom(){return this.name==="SEED_RANDOM"}get isListRange(){return this.name==="LIST_RANGE"}get isListRandom(){return this.name==="LIST_RANDOM"}get isReadCount(){return this.name==="READ_COUNT"}constructor(e,t){super(),this._divertTargetToCount=null,this._variableReferenceToCount=null,this.shouldPopReturnedValue=false,this.GenerateIntoContainer=r=>{let i=this.story.ResolveList(this.name),a=false;if(this.isChoiceCount)this.args.length>0&&this.Error("The CHOICE_COUNT() function shouldn't take any arguments"),r.AddContent(Pt.ControlCommand.ChoiceCount());else if(this.isTurns)this.args.length>0&&this.Error("The TURNS() function shouldn't take any arguments"),r.AddContent(Pt.ControlCommand.Turns());else if(this.isTurnsSince||this.isReadCount){let s=(0, Ha.asOrNull)(this.args[0],iP.DivertTarget),o=(0, Ha.asOrNull)(this.args[0],cP.VariableReference);if(this.args.length!==1||s===null&&o===null){this.Error(`The ${this.name}() function should take one argument: a divert target to the target knot, stitch, gather or choice you want to check. e.g. TURNS_SINCE(-> myKnot)`);return}s?(this._divertTargetToCount=s,this.AddContent(this._divertTargetToCount),this._divertTargetToCount.GenerateIntoContainer(r)):o&&(this._variableReferenceToCount=o,this.AddContent(this._variableReferenceToCount),this._variableReferenceToCount.GenerateIntoContainer(r)),this.isTurnsSince?r.AddContent(Pt.ControlCommand.TurnsSince()):r.AddContent(Pt.ControlCommand.ReadCount());}else if(this.isRandom){this.args.length!==2&&this.Error("RANDOM should take 2 parameters: a minimum and a maximum integer");for(let s=0;s<this.args.length;s+=1){let o=(0, Ha.asOrNull)(this.args[s],Dy.NumberExpression);if(o&&!o.isInt()){let u=s===0?"minimum":"maximum";this.Error(`RANDOM's ${u} parameter should be an integer`);}this.args[s].GenerateIntoContainer(r);}r.AddContent(Pt.ControlCommand.Random());}else if(this.isSeedRandom){this.args.length!==1&&this.Error("SEED_RANDOM should take 1 parameter - an integer seed");let s=(0, Ha.asOrNull)(this.args[0],Dy.NumberExpression);s&&!s.isInt()&&this.Error("SEED_RANDOM's parameter should be an integer seed"),this.args[0].GenerateIntoContainer(r),r.AddContent(Pt.ControlCommand.SeedRandom());}else if(this.isListRange){this.args.length!==3&&this.Error("LIST_RANGE should take 3 parameters - a list, a min and a max");for(let s=0;s<this.args.length;s+=1)this.args[s].GenerateIntoContainer(r);r.AddContent(Pt.ControlCommand.ListRange());}else if(this.isListRandom)this.args.length!==1&&this.Error("LIST_RANDOM should take 1 parameter - a list"),this.args[0].GenerateIntoContainer(r),r.AddContent(Pt.ControlCommand.ListRandom());else if(Ua.NativeFunctionCall.CallExistsWithName(this.name)){let s=Ua.NativeFunctionCall.CallWithName(this.name);if(s.numberOfParameters!==this.args.length){let o=`${n.name} should take ${s.numberOfParameters} parameter`;s.numberOfParameters>1&&(o+="s"),this.Error(o);}for(let o=0;o<this.args.length;o+=1)this.args[o].GenerateIntoContainer(r);r.AddContent(Ua.NativeFunctionCall.CallWithName(this.name));}else if(i!==null)if(this.args.length>1&&this.Error("Can currently only construct a list from one integer (or an empty list from a given list definition)"),this.args.length===1)r.AddContent(new lP.StringValue(this.name)),this.args[0].GenerateIntoContainer(r),r.AddContent(Pt.ControlCommand.ListFromInt());else {let s=new aP.InkList;s.SetInitialOriginName(this.name),r.AddContent(new oP.ListValue(s));}else r.AddContent(this._proxyDivert.runtimeObject),a=true;a||this.content.splice(this.content.indexOf(this._proxyDivert),1),this.shouldPopReturnedValue&&r.AddContent(Pt.ControlCommand.PopEvaluatedValue());},this.toString=()=>{let r=this.args.join(", ");return `${this.name}(${r})`},this._proxyDivert=new rP.Divert(new uP.Path(e),t),this._proxyDivert.isFunctionCall=true,this.AddContent(this._proxyDivert);}get typeName(){return "FunctionCall"}ResolveReferences(e){if(super.ResolveReferences(e),!this.content.includes(this._proxyDivert)&&this.args!==null)for(let t of this.args)t.ResolveReferences(e);if(this._divertTargetToCount){let t=this._divertTargetToCount.divert,r=t.runtimeDivert.variableDivertName!=null;if(r){this.Error(`When getting the TURNS_SINCE() of a variable target, remove the '->' - i.e. it should just be TURNS_SINCE(${t.runtimeDivert.variableDivertName})`);return}let i=t.targetContent;if(i===null)r||this.Error(`Failed to find target for TURNS_SINCE: '${t.target}'`);else {if(!i.containerForCounting)throw new Error;i.containerForCounting.turnIndexShouldBeCounted=true;}}else if(this._variableReferenceToCount){let t=this._variableReferenceToCount.runtimeVarRef;if(!t)throw new Error;t.pathForCount!==null&&this.Error(`Should be '${n.name}'(-> '${this._variableReferenceToCount.name}). Usage without the '->' only makes sense for variable targets.`);}}};Ka.FunctionCall=za;za.IsBuiltIn=n=>Ua.NativeFunctionCall.CallExistsWithName(n)?true:n==="CHOICE_COUNT"||n==="TURNS_SINCE"||n==="TURNS"||n==="RANDOM"||n==="SEED_RANDOM"||n==="LIST_VALUE"||n==="LIST_RANDOM"||n==="READ_COUNT";});var Mh=C(Xa=>{Object.defineProperty(Xa,"__esModule",{value:true});Xa.MultipleConditionExpression=void 0;var hP=nt(),dP=bt(),Wh=class extends hP.Expression{get subExpressions(){return this.content}constructor(e){super(),this.GenerateIntoContainer=t=>{let r=true;for(let i of this.subExpressions)i.GenerateIntoContainer(t),r||t.AddContent(dP.NativeFunctionCall.CallWithName("&&")),r=false;},this.AddContent(e);}get typeName(){return "MultipleConditionExpression"}};Xa.MultipleConditionExpression=Wh;});var vr=C(Ya=>{Object.defineProperty(Ya,"__esModule",{value:true});Ya.DivertTarget=void 0;var fP=fh(),pP=gr(),mP=Oa(),gP=Uh(),yP=ue(),Gh=nt(),CP=wt(),wy=Ii(),vP=Mh(),Ay=Sr(),Jh=X(),Hh=class n extends Gh.Expression{get runtimeDivert(){if(!this._runtimeDivert)throw new Error;return this._runtimeDivert}get runtimeDivertTargetValue(){if(!this._runtimeDivertTargetValue)throw new Error;return this._runtimeDivertTargetValue}constructor(e){super(),this._runtimeDivert=null,this._runtimeDivertTargetValue=null,this.GenerateIntoContainer=t=>{this.divert.GenerateRuntimeObject(),this._runtimeDivert=this.divert.runtimeDivert,this._runtimeDivertTargetValue=new yP.DivertTargetValue,t.AddContent(this.runtimeDivertTargetValue);},this.Equals=t=>{let r=(0, Jh.asOrNull)(t,n);if(!r||!this.divert.target||!r.divert.target)return false;let i=this.divert.target.dotSeparatedComponents,a=r.divert.target.dotSeparatedComponents;return i===a},this.divert=this.AddContent(e);}get typeName(){return "DivertTarget"}ResolveReferences(e){if(super.ResolveReferences(e),this.divert.isDone||this.divert.isEnd){this.Error("Can't use -> DONE or -> END as variable divert targets",this);return}let t=this;for(;t&&t instanceof Gh.Expression;){let i=false,a=false,s=t.parent;if(s instanceof fP.BinaryExpression){let o=s;o.opName!=="=="&&o.opName!=="!="?i=true:(o.leftExpression instanceof n||o.leftExpression instanceof Ay.VariableReference)&&(o.rightExpression instanceof n||o.rightExpression instanceof Ay.VariableReference)||(i=true),a=true;}else if(s instanceof wy.FunctionCall){let o=s;!o.isTurnsSince&&!o.isReadCount&&(i=true),a=true;}else (s instanceof Gh.Expression||s instanceof vP.MultipleConditionExpression||s instanceof pP.Choice&&s.condition===t||s instanceof mP.Conditional||s instanceof gP.ConditionalSingleBranch)&&(i=true,a=true);if(i&&this.Error(`Can't use a divert target like that. Did you intend to call '${this.divert.target}' as a function: likeThis(), or check the read count: likeThis, with no arrows?`,this),a)break;t=s;}if(this.runtimeDivert.hasVariableTarget){if(!this.divert.target)throw new Error;this.Error(`Since '${this.divert.target.dotSeparatedComponents}' is a variable, it shouldn't be preceded by '->' here.`);}this.runtimeDivert.targetPath&&(this.runtimeDivertTargetValue.targetPath=this.runtimeDivert.targetPath);let r=this.divert.targetContent;if(r!==null){let i=r.containerForCounting;if(i!==null){let s=(0, Jh.asOrNull)(this.parent,wy.FunctionCall);s&&s.isTurnsSince||(i.visitsShouldBeCounted=true),i.turnIndexShouldBeCounted=true;}let a=(0, Jh.asOrNull)(r,CP.FlowBase);if(a!=null&&a.args!==null)for(let s of a.args)s.isByReference&&this.Error(`Can't store a divert target to a knot or function that has by-reference arguments ('${a.identifier}' has 'ref ${s.identifier}').`);}}};Ya.DivertTarget=Hh;});var Er=C(Za=>{Object.defineProperty(Za,"__esModule",{value:true});Za.Divert=void 0;var EP=de(),ki=Oe(),_P=Dt(),zh=vr(),Kh=wt(),SP=Ii(),bP=oe(),Py=xn(),DP=Me(),Ty=Tn(),wP=ue(),Oy=Sr(),AP=Ni(),Ri=X(),Xh=class extends bP.ParsedObject{get runtimeDivert(){if(!this._runtimeDivert)throw new Error;return this._runtimeDivert}set runtimeDivert(e){this._runtimeDivert=e;}get isEnd(){return !!(this.target&&this.target.dotSeparatedComponents==="END")}get isDone(){return !!(this.target&&this.target.dotSeparatedComponents==="DONE")}constructor(e,t){super(),this.args=[],this.target=null,this.targetContent=null,this._runtimeDivert=null,this.isFunctionCall=false,this.isEmpty=false,this.isTunnel=false,this.isThread=false,this.GenerateRuntimeObject=()=>{if(this.isEnd)return ki.ControlCommand.End();if(this.isDone)return ki.ControlCommand.Done();this.runtimeDivert=new _P.Divert,this.ResolveTargetContent(),this.CheckArgumentValidity();let r=this.args!==null&&this.args.length>0;if(r||this.isFunctionCall||this.isTunnel||this.isThread){let i=new EP.Container;if(r){this.isFunctionCall||i.AddContent(ki.ControlCommand.EvalStart());let a=null;this.targetContent&&(a=this.targetContent.args);for(let s=0;s<this.args.length;++s){let o=this.args[s],u=null;if(a&&s<a.length&&(u=a[s]),u&&u.isByReference){let l=(0, Ri.asOrNull)(o,Oy.VariableReference);if(!l){this.Error(`Expected variable name to pass by reference to 'ref ${u.identifier}' but saw ${o}`);break}let c=new Py.Path(l.pathIdentifiers);if(c.ResolveFromContext(this)){this.Error(`can't pass a read count by reference. '${c.dotSeparatedComponents}' is a knot/stitch/label, but '${this.target.dotSeparatedComponents}' requires the name of a VAR to be passed.`);break}let f=new wP.VariablePointerValue(l.name);i.AddContent(f);}else o.GenerateIntoContainer(i);}this.isFunctionCall||i.AddContent(ki.ControlCommand.EvalEnd());}return this.isThread?i.AddContent(ki.ControlCommand.StartThread()):(this.isFunctionCall||this.isTunnel)&&(this.runtimeDivert.pushesToStack=true,this.runtimeDivert.stackPushType=this.isFunctionCall?Ty.PushPopType.Function:Ty.PushPopType.Tunnel),i.AddContent(this.runtimeDivert),i}return this.runtimeDivert},this.PathAsVariableName=()=>this.target?this.target.firstComponent:null,this.ResolveTargetContent=()=>{if(!(this.isEmpty||this.isEnd)&&this.targetContent===null){let r=this.PathAsVariableName();if(r!==null){let i=(0, Ri.asOrNull)((0, AP.ClosestFlowBase)(this),Kh.FlowBase);if(i){let a=i.ResolveVariableWithName(r,this);if(a.found){if(a.isArgument&&a.ownerFlow&&a.ownerFlow.args){let s=a.ownerFlow.args.find(o=>{var u;return ((u=o.identifier)===null||u===void 0?void 0:u.name)==r});s&&!s.isDivertTarget&&this.Error(`Since '${s.identifier}' is used as a variable divert target (on ${this.debugMetadata}), it should be marked as: -> ${s.identifier}`,a.ownerFlow);}this.runtimeDivert.variableDivertName=r;return}}}if(!this.target)throw new Error;this.targetContent=this.target.ResolveFromContext(this);}},this.CheckArgumentValidity=()=>{if(this.isEmpty)return;let r=0;if(this.args!==null&&this.args.length>0&&(r=this.args.length),this.targetContent===null)return;let i=(0, Ri.asOrNull)(this.targetContent,Kh.FlowBase);if(r===0&&(i===null||!i.hasParameters))return;if(i===null&&r>0){this.Error("target needs to be a knot or stitch in order to pass arguments");return}else if(i!==null&&(i.args===null||!i.args&&r>0)){this.Error(`target (${i.name}) doesn't take parameters`);return}else if(this.parent instanceof zh.DivertTarget){r>0&&this.Error("can't store arguments in a divert target variable");return}let a=i.args.length;if(a!==r){let s;r===0?s="but there weren't any passed to it":r<a?s=`but only got ${r}`:s=`but got ${r}`,this.Error(`to '${i.identifier}' requires ${a} arguments, ${s}`);return}for(let s=0;s<a;++s){let o=i.args[s],u=this.args[s];if(o.isDivertTarget){let l=(0, Ri.asOrNull)(u,Oy.VariableReference);if(!(u instanceof zh.DivertTarget)&&l===null)this.Error(`Target '${i.identifier}' expects a divert target for the parameter named -> ${o.identifier} but saw ${u}`,u);else if(l){let c=new Py.Path(l.pathIdentifiers);c.ResolveFromContext(l)&&this.Error(`Passing read count of '${c.dotSeparatedComponents}' instead of a divert target. You probably meant '${c}'`);}}}if(i===null){this.Error("Can't call as a function or with arguments unless it's a knot or stitch");return}},this.CheckExternalArgumentValidity=r=>{let i=this.target?this.target.firstComponent:null,a=r.externals.get(i);if(!a)throw new Error("external not found");let s=a.argumentNames.length,o=0;this.args&&(o=this.args.length),o!==s&&this.Error(`incorrect number of arguments sent to external function '${i}'. Expected ${s} but got ${o}`);},this.toString=()=>{let r="";if(this.target!==null)r+=this.target.toString();else return "-> <empty divert>";return this.isTunnel&&(r+=" ->"),this.isFunctionCall&&(r+=" ()"),r},e&&(this.target=e),t&&(this.args=t,this.AddContent(t));}get typeName(){return "Divert"}ResolveReferences(e){if(this.isEmpty||this.isEnd||this.isDone)return;if(!this.runtimeDivert)throw new Error;this.targetContent&&(this.runtimeDivert.targetPath=this.targetContent.runtimePath),super.ResolveReferences(e);let t=(0, Ri.asOrNull)(this.targetContent,Kh.FlowBase);t&&(!t.isFunction&&this.isFunctionCall?super.Error(`${t.identifier} hasn't been marked as a function, but it's being called as one. Do you need to declare the knot as '== function ${t.identifier} =='?`):t.isFunction&&!this.isFunctionCall&&!(this.parent instanceof zh.DivertTarget)&&super.Error(t.identifier+" can't be diverted to. It can only be called as a function since it's been marked as such: '"+t.identifier+"(...)'"));let r=this.targetContent!==null,i=false,a=false;if(this.target){if(this.target.numberOfComponents===1){if(!this.target.firstComponent)throw new Error;if(i=SP.FunctionCall.IsBuiltIn(this.target.firstComponent),a=e.IsExternal(this.target.firstComponent),i||a){this.isFunctionCall||super.Error(`${this.target.firstComponent} must be called as a function: ~ ${this.target.firstComponent}()`),a&&(this.runtimeDivert.isExternal=true,this.args!==null&&(this.runtimeDivert.externalArgs=this.args.length),this.runtimeDivert.pushesToStack=false,this.runtimeDivert.targetPath=new DP.Path(this.target.firstComponent),this.CheckExternalArgumentValidity(e));return}}}else throw new Error;this.runtimeDivert.variableDivertName==null&&!r&&!i&&!a&&this.Error(`target not found: '${this.target}'`);}Error(e,t=null,r=false){if(t!==this&&t){super.Error(e,t);return}this.isFunctionCall?super.Error(`Function call ${e}`,t,r):super.Error(`Divert ${e}`,t,r);}};Za.Divert=Xh;});var xy=C(Qa=>{Object.defineProperty(Qa,"__esModule",{value:true});Qa.GatherPointToResolve=void 0;var Yh=class{constructor(e,t){this.divert=e,this.targetRuntimeObj=t;}};Qa.GatherPointToResolve=Yh;});var Fy=C(eo=>{Object.defineProperty(eo,"__esModule",{value:true});eo.SequenceDivertToResolve=void 0;var Zh=class{constructor(e,t){this.divert=e,this.targetContent=t;}};eo.SequenceDivertToResolve=Zh;});var Qh=C(to=>{Object.defineProperty(to,"__esModule",{value:true});to.SequenceType=void 0;var Ny;(function(n){n[n.Stopping=1]="Stopping",n[n.Cycle=2]="Cycle",n[n.Shuffle=4]="Shuffle",n[n.Once=8]="Once";})(Ny||(to.SequenceType=Ny={}));});var nd=C(io=>{Object.defineProperty(io,"__esModule",{value:true});io.Sequence=void 0;var Iy=de(),ft=Oe(),ed=Dt(),$i=ue(),no=bt(),PP=oe(),TP=Fy(),ro=Qh(),OP=Fn(),td=class extends PP.ParsedObject{constructor(e,t){super(),this.sequenceType=t,this._sequenceDivertsToResolve=[],this.GenerateRuntimeObject=()=>{let r=new Iy.Container;r.visitsShouldBeCounted=true,r.countingAtStartOnly=true,this._sequenceDivertsToResolve=[],r.AddContent(ft.ControlCommand.EvalStart()),r.AddContent(ft.ControlCommand.VisitIndex());let i=(this.sequenceType&ro.SequenceType.Once)>0,a=(this.sequenceType&ro.SequenceType.Cycle)>0,s=(this.sequenceType&ro.SequenceType.Stopping)>0,o=(this.sequenceType&ro.SequenceType.Shuffle)>0,u=this.sequenceElements.length;if(i&&(u+=1),s||i?(r.AddContent(new $i.IntValue(u-1)),r.AddContent(no.NativeFunctionCall.CallWithName("MIN"))):a&&(r.AddContent(new $i.IntValue(this.sequenceElements.length)),r.AddContent(no.NativeFunctionCall.CallWithName("%"))),o){let c=ft.ControlCommand.NoOp();if(i||s){let f=s?this.sequenceElements.length-1:this.sequenceElements.length;r.AddContent(ft.ControlCommand.Duplicate()),r.AddContent(new $i.IntValue(f)),r.AddContent(no.NativeFunctionCall.CallWithName("=="));let p=new ed.Divert;p.isConditional=true,r.AddContent(p),this.AddDivertToResolve(p,c);}let h=this.sequenceElements.length;s&&(h-=1),r.AddContent(new $i.IntValue(h)),r.AddContent(ft.ControlCommand.SequenceShuffleIndex()),(i||s)&&r.AddContent(c);}r.AddContent(ft.ControlCommand.EvalEnd());let l=ft.ControlCommand.NoOp();for(let c=0;c<u;c+=1){r.AddContent(ft.ControlCommand.EvalStart()),r.AddContent(ft.ControlCommand.Duplicate()),r.AddContent(new $i.IntValue(c)),r.AddContent(no.NativeFunctionCall.CallWithName("==")),r.AddContent(ft.ControlCommand.EvalEnd());let h=new ed.Divert;h.isConditional=true,r.AddContent(h);let f;c<this.sequenceElements.length?f=this.sequenceElements[c].runtimeObject:f=new Iy.Container,f.name=`s${c}`,f.InsertContent(ft.ControlCommand.PopEvaluatedValue(),0);let p=new ed.Divert;f.AddContent(p),r.AddToNamedContentOnly(f),this.AddDivertToResolve(h,f),this.AddDivertToResolve(p,l);}return r.AddContent(l),r},this.AddDivertToResolve=(r,i)=>{this._sequenceDivertsToResolve.push(new TP.SequenceDivertToResolve(r,i));},this.sequenceType=t,this.sequenceElements=[];for(let r of e){let i=r.content,a=null;i===null||i.length===0?a=r:a=new OP.Weave(i),this.sequenceElements.push(a),this.AddContent(a);}}get typeName(){return "Sequence"}ResolveReferences(e){super.ResolveReferences(e);for(let t of this._sequenceDivertsToResolve)t.divert.targetPath=t.targetContent.path;}};io.Sequence=td;});var id=C(so=>{Object.defineProperty(so,"__esModule",{value:true});so.TunnelOnwards=void 0;var xP=de(),Vi=Oe(),FP=Dt(),NP=ue(),IP=oe(),kP=Pn(),RP=X(),$P=_r(),rd=class extends IP.ParsedObject{constructor(){super(...arguments),this._overrideDivertTarget=null,this._divertAfter=null,this.GenerateRuntimeObject=()=>{let e=new xP.Container;if(e.AddContent(Vi.ControlCommand.EvalStart()),this.divertAfter){let t=this.divertAfter.GenerateRuntimeObject(),r=t;if(r){let a=this.divertAfter.args;if(a!==null&&a.length>0){let s=-1,o=-1;for(let u=0;u<r.content.length;u+=1){let l=r.content[u];l&&(s==-1&&l.commandType===Vi.ControlCommand.CommandType.EvalStart?s=u:l.commandType===Vi.ControlCommand.CommandType.EvalEnd&&(o=u));}for(let u=s+1;u<o;u+=1){let l=r.content[u];l.parent=null,e.AddContent(r.content[u]);}}}let i=(0, RP.asOrNull)(t,FP.Divert);if(i!=null&&i.hasVariableTarget){let a=new $P.VariableReference(i.variableDivertName);e.AddContent(a);}else this._overrideDivertTarget=new NP.DivertTargetValue,e.AddContent(this._overrideDivertTarget);}else e.AddContent(new kP.Void);return e.AddContent(Vi.ControlCommand.EvalEnd()),e.AddContent(Vi.ControlCommand.PopTunnel()),e},this.toString=()=>` -> ${this._divertAfter}`;}get divertAfter(){return this._divertAfter}set divertAfter(e){this._divertAfter=e,this._divertAfter&&this.AddContent(this._divertAfter);}get typeName(){return "TunnelOnwards"}ResolveReferences(e){super.ResolveReferences(e),this.divertAfter&&this.divertAfter.targetContent&&(this._overrideDivertTarget.targetPath=this.divertAfter.targetContent.runtimePath);}};so.TunnelOnwards=rd;});var od=C(ao=>{Object.defineProperty(ao,"__esModule",{value:true});ao.ListDefinition=void 0;var sd=He(),ad=class{constructor(e,t){this._name=e||"",this._items=null,this._itemNameToValues=t||new Map;}get name(){return this._name}get items(){if(this._items==null){this._items=new Map;for(let[e,t]of this._itemNameToValues){let r=new sd.InkListItem(this.name,e);this._items.set(r.serialized(),t);}}return this._items}ValueForItem(e){if(!e.itemName)return 0;let t=this._itemNameToValues.get(e.itemName);return typeof t<"u"?t:0}ContainsItem(e){return !e.itemName||e.originName!=this.name?false:this._itemNameToValues.has(e.itemName)}ContainsItemWithName(e){return this._itemNameToValues.has(e)}TryGetItemWithValue(e,t){for(let[r,i]of this._itemNameToValues)if(i==e)return t=new sd.InkListItem(this.name,r),{result:t,exists:true};return t=sd.InkListItem.Null,{result:t,exists:false}}TryGetValueForItem(e,t){if(!e.itemName)return {result:0,exists:false};let r=this._itemNameToValues.get(e.itemName);return r?{result:r,exists:true}:{result:0,exists:false}}};ao.ListDefinition=ad;});var uo=C(oo=>{Object.defineProperty(oo,"__esModule",{value:true});oo.ListDefinition=void 0;var VP=He(),jP=He(),qP=od(),LP=ue(),BP=oe(),WP=$t(),ud=class extends BP.ParsedObject{get typeName(){return "ListDefinition"}get runtimeListDefinition(){var e;let t=new Map;for(let r of this.itemDefinitions)t.has(r.name)?this.Error(`List '${this.identifier}' contains duplicate items called '${r.name}'`):t.set(r.name,r.seriesValue);return new qP.ListDefinition(((e=this.identifier)===null||e===void 0?void 0:e.name)||"",t)}constructor(e){super(),this.itemDefinitions=e,this.identifier=null,this.variableAssignment=null,this._elementsByName=null,this.ItemNamed=r=>{if(this._elementsByName===null){this._elementsByName=new Map;for(let a of this.itemDefinitions)this._elementsByName.set(a.name,a);}return this._elementsByName.get(r)||null},this.GenerateRuntimeObject=()=>{var r,i;let a=new VP.InkList;for(let s of this.itemDefinitions)if(s.inInitialList){let o=new jP.InkListItem(((r=this.identifier)===null||r===void 0?void 0:r.name)||null,s.name||null);a.Add(o,s.seriesValue);}return a.SetInitialOriginName(((i=this.identifier)===null||i===void 0?void 0:i.name)||""),new LP.ListValue(a)};let t=1;for(let r of this.itemDefinitions)r.explicitValue!==null&&(t=r.explicitValue),r.seriesValue=t,t+=1;this.AddContent(e);}ResolveReferences(e){super.ResolveReferences(e),e.CheckForNamingCollisions(this,this.identifier,WP.SymbolType.List);}};oo.ListDefinition=ud;});var cd=C(lo=>{Object.defineProperty(lo,"__esModule",{value:true});lo.VariableAssignment=void 0;var MP=de(),GP=Ni(),JP=uo(),HP=oe(),ky=$t(),UP=Zt(),zP=Sr(),KP=X(),ld=class extends HP.ParsedObject{get variableName(){return this.variableIdentifier.name}get typeName(){return this.isNewTemporaryDeclaration?"temp":this.isGlobalDeclaration?this.listDefinition!==null?"LIST":"VAR":"variable assignment"}get isDeclaration(){return this.isGlobalDeclaration||this.isNewTemporaryDeclaration}constructor({assignedExpression:e,isGlobalDeclaration:t,isTemporaryNewDeclaration:r,listDef:i,variableIdentifier:a}){super(),this._runtimeAssignment=null,this.expression=null,this.listDefinition=null,this.GenerateRuntimeObject=()=>{let s=null;if(this.isGlobalDeclaration?s=this.story:this.isNewTemporaryDeclaration&&(s=(0, GP.ClosestFlowBase)(this)),s&&s.AddNewVariableDeclaration(this),this.isGlobalDeclaration)return null;let o=new MP.Container;return this.expression?o.AddContent(this.expression.runtimeObject):this.listDefinition&&o.AddContent(this.listDefinition.runtimeObject),this._runtimeAssignment=new UP.VariableAssignment(this.variableName,this.isNewTemporaryDeclaration),o.AddContent(this._runtimeAssignment),o},this.toString=()=>`${this.isGlobalDeclaration?"VAR":this.isNewTemporaryDeclaration?"~ temp":""} ${this.variableName}`,this.variableIdentifier=a,this.isGlobalDeclaration=!!t,this.isNewTemporaryDeclaration=!!r,i instanceof JP.ListDefinition?(this.listDefinition=this.AddContent(i),this.listDefinition.variableAssignment=this,this.isGlobalDeclaration=true):e&&(this.expression=this.AddContent(e));}ResolveReferences(e){if(super.ResolveReferences(e),this.isDeclaration&&this.listDefinition===null&&e.CheckForNamingCollisions(this,this.variableIdentifier,this.isGlobalDeclaration?ky.SymbolType.Var:ky.SymbolType.Temp),this.isGlobalDeclaration){let t=(0, KP.asOrNull)(this.expression,zP.VariableReference);t&&!t.isConstantReference&&!t.isListItemReference&&this.Error("global variable assignments cannot refer to other variables, only literal values, constants and list items");}if(!this.isNewTemporaryDeclaration){let t=e.ResolveVariableWithName(this.variableName,this);t.found||(this.variableName in this.story.constants?this.Error(`Can't re-assign to a constant (do you need to use VAR when declaring '${this.variableName}'?)`,this):this.Error(`Variable could not be found to assign to: '${this.variableName}'`,this)),this._runtimeAssignment&&(this._runtimeAssignment.isGlobal=t.isGlobal);}}};lo.VariableAssignment=ld;});var Fn=C(fo=>{Object.defineProperty(fo,"__esModule",{value:true});fo.Weave=void 0;var Ry=Us(),it=gr(),co=Oa(),XP=Na(),YP=de(),ho=Er(),ZP=Dt(),QP=vr(),eT=wt(),Tt=Fi(),tT=xy(),nT=oe(),hd=nd(),rT=en(),iT=id(),sT=cd(),st=X(),dd=class n extends nT.ParsedObject{get rootContainer(){return this._rootContainer||(this._rootContainer=this.GenerateRuntimeObject()),this._rootContainer}get namedWeavePoints(){return this._namedWeavePoints}get lastParsedSignificantObject(){if(this.content.length===0)return null;let e=null;for(let r=this.content.length-1;r>=0;--r){e=this.content[r];let i=(0, st.asOrNull)(e,rT.Text);if(!(i&&i.text===`
22
- `)&&!this.IsGlobalDeclaration(e))break}let t=(0, st.asOrNull)(e,n);return t&&(e=t.lastParsedSignificantObject),e}constructor(e,t=-1){super(),this.previousWeavePoint=null,this.addContentToPreviousWeavePoint=false,this.hasSeenChoiceInSection=false,this.currentContainer=null,this._unnamedGatherCount=0,this._choiceCount=0,this._rootContainer=null,this._namedWeavePoints=new Map,this.looseEnds=[],this.gatherPointsToResolve=[],this.ResolveWeavePointNaming=()=>{var r,i,a;let s=[...this.FindAll(Tt.Gather)(o=>!(o.name===null||o.name===void 0)),...this.FindAll(it.Choice)(o=>!(o.name===null||o.name===void 0))];this._namedWeavePoints=new Map;for(let o of s){let u=this.namedWeavePoints.get(((r=o.identifier)===null||r===void 0?void 0:r.name)||"");if(u){let l=u instanceof Tt.Gather?"gather":"choice",c=u;this.Error(`A ${l} with the same label name '${o.name}' already exists in this context on line ${c.debugMetadata?c.debugMetadata.startLineNumber:"NO DEBUG METADATA AVAILABLE"}`,o);}!((i=o.identifier)===null||i===void 0)&&i.name&&this.namedWeavePoints.set((a=o.identifier)===null||a===void 0?void 0:a.name,o);}},this.ConstructWeaveHierarchyFromIndentation=()=>{let r=0;for(;r<this.content.length;){let i=this.content[r];if(i instanceof it.Choice||i instanceof Tt.Gather){let s=i.indentationDepth-1;if(s>this.baseIndentIndex){let o=r;for(;r<this.content.length;){let h=(0, st.asOrNull)(this.content[r],it.Choice)||(0, st.asOrNull)(this.content[r],Tt.Gather);if(h!==null&&h.indentationDepth-1<=this.baseIndentIndex)break;r+=1;}let u=r-o,l=this.content.slice(o,o+u);this.content.splice(o,u);let c=new n(l,s);this.InsertContent(o,c),r=o;}}r+=1;}},this.DetermineBaseIndentationFromContent=r=>{for(let i of r)if(i instanceof it.Choice||i instanceof Tt.Gather)return i.indentationDepth-1;return 0},this.GenerateRuntimeObject=()=>{this._rootContainer=new YP.Container,this.currentContainer=this._rootContainer,this.looseEnds=[],this.gatherPointsToResolve=[];for(let r of this.content)if(r instanceof it.Choice||r instanceof Tt.Gather)this.AddRuntimeForWeavePoint(r);else if(r instanceof n){let i=r;this.AddRuntimeForNestedWeave(i),this.gatherPointsToResolve.splice(0,0,...i.gatherPointsToResolve);}else this.AddGeneralRuntimeContent(r.runtimeObject);return this.PassLooseEndsToAncestors(),this._rootContainer},this.AddRuntimeForGather=r=>{let i=!this.hasSeenChoiceInSection;this.hasSeenChoiceInSection=false;let a=r.runtimeContainer;if(r.name||(a.name=`g-${this._unnamedGatherCount}`,this._unnamedGatherCount+=1),i){if(!this.currentContainer)throw new Error;this.currentContainer.AddContent(a);}else this.rootContainer.AddToNamedContentOnly(a);for(let s of this.looseEnds){let o=s;if(o instanceof Tt.Gather&&o.indentationDepth==r.indentationDepth)continue;let u=null;if(o instanceof ho.Divert)u=o.runtimeObject;else {u=new ZP.Divert;let l=o;if(!l.runtimeContainer)throw new Error;l.runtimeContainer.AddContent(u);}this.gatherPointsToResolve.push(new tT.GatherPointToResolve(u,a));}this.looseEnds=[],this.currentContainer=a;},this.AddRuntimeForWeavePoint=r=>{if(r instanceof Tt.Gather)this.AddRuntimeForGather(r);else if(r instanceof it.Choice){if(!this.currentContainer)throw new Error;this.previousWeavePoint instanceof Tt.Gather&&this.looseEnds.splice(this.looseEnds.indexOf(this.previousWeavePoint),1);let i=r;if(this.currentContainer.AddContent(i.runtimeObject),!i.innerContentContainer)throw new Error;i.innerContentContainer.name=`c-${this._choiceCount}`,this.currentContainer.AddToNamedContentOnly(i.innerContentContainer),this._choiceCount+=1,this.hasSeenChoiceInSection=true;}this.addContentToPreviousWeavePoint=false,this.WeavePointHasLooseEnd(r)&&(this.looseEnds.push(r),(0, st.asOrNull)(r,it.Choice)&&(this.addContentToPreviousWeavePoint=true)),this.previousWeavePoint=r;},this.AddRuntimeForNestedWeave=r=>{this.AddGeneralRuntimeContent(r.rootContainer),this.previousWeavePoint!==null&&(this.looseEnds.splice(this.looseEnds.indexOf(this.previousWeavePoint),1),this.addContentToPreviousWeavePoint=false);},this.AddGeneralRuntimeContent=r=>{if(r!==null)if(this.addContentToPreviousWeavePoint){if(!this.previousWeavePoint||!this.previousWeavePoint.runtimeContainer)throw new Error;this.previousWeavePoint.runtimeContainer.AddContent(r);}else {if(!this.currentContainer)throw new Error;this.currentContainer.AddContent(r);}},this.PassLooseEndsToAncestors=()=>{if(this.looseEnds.length===0)return;let r=null,i=null,a=false;for(let s=this.parent;s!==null;s=s.parent){let o=(0, st.asOrNull)(s,n);o&&(!a&&r===null&&(r=o),a&&i===null&&(i=o)),(s instanceof hd.Sequence||s instanceof co.Conditional)&&(a=true);}if(!(r===null&&i===null))for(let s=this.looseEnds.length-1;s>=0;s-=1){let o=this.looseEnds[s],u=false;if(a){if(o instanceof it.Choice&&r!==null)r.ReceiveLooseEnd(o),u=true;else if(!(o instanceof it.Choice)){let l=r||i;l!==null&&(l.ReceiveLooseEnd(o),u=true);}}else r?.hasOwnProperty("ReceiveLooseEnd")&&r.ReceiveLooseEnd(o),u=true;u&&this.looseEnds.splice(s,1);}},this.ReceiveLooseEnd=r=>{this.looseEnds.push(r);},this.WeavePointNamed=r=>{if(!this.namedWeavePoints)return null;let i=this.namedWeavePoints.get(r);return i||null},this.IsGlobalDeclaration=r=>{let i=(0, st.asOrNull)(r,sT.VariableAssignment);return !!(i&&i.isGlobalDeclaration&&i.isDeclaration||(0, st.asOrNull)(r,XP.ConstantDeclaration))},this.ContentThatFollowsWeavePoint=r=>{let i=[],a=r;if(a.content!==null)for(let u of a.content)this.IsGlobalDeclaration(u)||i.push(u);let s=(0, st.asOrNull)(a.parent,n);if(s===null)throw new Error("Expected weave point parent to be weave?");let o=s.content.indexOf(a);for(let u=o+1;u<s.content.length;u+=1){let l=s.content[u];if(!this.IsGlobalDeclaration(l)){if(l instanceof it.Choice||l instanceof Tt.Gather||l instanceof n)break;i.push(l);}}return i},this.ValidateTermination=r=>{if(this.lastParsedSignificantObject instanceof Ry.AuthorWarning)return;if(this.looseEnds!==null&&this.looseEnds.length>0)for(let a of this.looseEnds){let s=this.ContentThatFollowsWeavePoint(a);this.ValidateFlowOfObjectsTerminates(s,a,r);}else {for(let a of this.content)if(a instanceof it.Choice||a instanceof ho.Divert)return;this.ValidateFlowOfObjectsTerminates(this.content,this,r);}},this.BadNestedTerminationHandler=r=>{let i=null;for(let s=r.parent;s!==null;s=s.parent)if(s instanceof hd.Sequence||s instanceof co.Conditional){i=(0, st.asOrNull)(s,co.Conditional);break}let a="Choices nested in conditionals or sequences need to explicitly divert afterwards.";i!==null&&i.FindAll(it.Choice)().length===1&&(a=`Choices with conditions should be written: '* {condition} choice'. Otherwise, ${a.toLowerCase()}`),this.Error(a,r);},this.ValidateFlowOfObjectsTerminates=(r,i,a)=>{let s=false,o=i;for(let u of r){if(u.Find(ho.Divert)(c=>!c.isThread&&!c.isTunnel&&!c.isFunctionCall&&!(c.parent instanceof QP.DivertTarget))!==null&&(s=true),u.Find(iT.TunnelOnwards)()!=null){s=true;break}o=u;}if(!s){if(o instanceof Ry.AuthorWarning)return;a(o);}},this.WeavePointHasLooseEnd=r=>{if(r.content===null)return true;for(let i=r.content.length-1;i>=0;--i){let a=(0, st.asOrNull)(r.content[i],ho.Divert);if(a&&!(a.isThread||a.isTunnel||a.isFunctionCall))return false}return true},this.CheckForWeavePointNamingCollisions=()=>{if(!this.namedWeavePoints)return;let r=[];for(let i of this.ancestry){let a=(0, st.asOrNull)(i,eT.FlowBase);if(a)r.push(a);else break}for(let[i,a]of this.namedWeavePoints)for(let s of r){let o=s.ContentWithNameAtLevel(i);if(o&&o!==a){let u=`${a.GetType()} '${i}' has the same label name as a ${o.GetType()} (on ${o.debugMetadata})`;this.Error(u,a);}}},t==-1?this.baseIndentIndex=this.DetermineBaseIndentationFromContent(e):this.baseIndentIndex=t,this.AddContent(e),this.ConstructWeaveHierarchyFromIndentation();}get typeName(){return "Weave"}ResolveReferences(e){if(super.ResolveReferences(e),this.looseEnds!==null&&this.looseEnds.length>0){let t=false;for(let r=this.parent;r!==null;r=r.parent)if(r instanceof hd.Sequence||r instanceof co.Conditional){t=true;break}t&&this.ValidateTermination(this.BadNestedTerminationHandler);}for(let t of this.gatherPointsToResolve)t.divert.targetPath=t.targetRuntimeObj.path;this.CheckForWeavePointNamingCollisions();}};fo.Weave=dd;});var Uh=C(mo=>{Object.defineProperty(mo,"__esModule",{value:true});mo.ConditionalSingleBranch=void 0;var $y=de(),po=Oe(),Vy=Dt(),aT=oe(),oT=bt(),uT=ue(),lT=en(),cT=Fn(),hT=X(),fd=class extends aT.ParsedObject{get ownExpression(){return this._ownExpression}set ownExpression(e){this._ownExpression=e,this._ownExpression&&this.AddContent(this._ownExpression);}constructor(e){super(),this._contentContainer=null,this._conditionalDivert=null,this._ownExpression=null,this._innerWeave=null,this.isTrueBranch=false,this.matchingEquality=false,this.isElse=false,this.isInline=false,this.returnDivert=null,this.GenerateRuntimeObject=()=>{if(this._innerWeave)for(let i of this._innerWeave.content){let a=(0, hT.asOrNull)(i,lT.Text);a&&a.text.startsWith("else:")&&this.Warning("Saw the text 'else:' which is being treated as content. Did you mean '- else:'?",a);}let t=new $y.Container,r=this.matchingEquality&&!this.isElse;if(r&&t.AddContent(po.ControlCommand.Duplicate()),this._conditionalDivert=new Vy.Divert,this._conditionalDivert.isConditional=!this.isElse,!this.isTrueBranch&&!this.isElse){let i=this.ownExpression!==null;i&&t.AddContent(po.ControlCommand.EvalStart()),this.ownExpression&&this.ownExpression.GenerateIntoContainer(t),this.matchingEquality&&t.AddContent(oT.NativeFunctionCall.CallWithName("==")),i&&t.AddContent(po.ControlCommand.EvalEnd());}return t.AddContent(this._conditionalDivert),this._contentContainer=this.GenerateRuntimeForContent(),this._contentContainer.name="b",this.isInline||this._contentContainer.InsertContent(new uT.StringValue(`
23
- `),0),(r||this.isElse&&this.matchingEquality)&&this._contentContainer.InsertContent(po.ControlCommand.PopEvaluatedValue(),0),t.AddToNamedContentOnly(this._contentContainer),this.returnDivert=new Vy.Divert,this._contentContainer.AddContent(this.returnDivert),t},this.GenerateRuntimeForContent=()=>this._innerWeave===null?new $y.Container:this._innerWeave.rootContainer,e&&(this._innerWeave=new cT.Weave(e),this.AddContent(this._innerWeave));}get typeName(){return "ConditionalSingleBranch"}ResolveReferences(e){if(!this._conditionalDivert||!this._contentContainer)throw new Error;this._conditionalDivert.targetPath=this._contentContainer.path,super.ResolveReferences(e);}};mo.ConditionalSingleBranch=fd;});var qy=C(go=>{Object.defineProperty(go,"__esModule",{value:true});go.CustomFlags=void 0;var jy;(function(n){n[n.ParsingString=1]="ParsingString",n[n.TagActive=2]="TagActive";})(jy||(go.CustomFlags=jy={}));});var Ly=C(yo=>{Object.defineProperty(yo,"__esModule",{value:true});yo.DebugMetadata=void 0;var pd=class n{constructor(){this.startLineNumber=0,this.endLineNumber=0,this.startCharacterNumber=0,this.endCharacterNumber=0,this.fileName=null,this.sourceName=null;}Merge(e){let t=new n;return t.fileName=this.fileName,t.sourceName=this.sourceName,this.startLineNumber<e.startLineNumber?(t.startLineNumber=this.startLineNumber,t.startCharacterNumber=this.startCharacterNumber):this.startLineNumber>e.startLineNumber?(t.startLineNumber=e.startLineNumber,t.startCharacterNumber=e.startCharacterNumber):(t.startLineNumber=this.startLineNumber,t.startCharacterNumber=Math.min(this.startCharacterNumber,e.startCharacterNumber)),this.endLineNumber>e.endLineNumber?(t.endLineNumber=this.endLineNumber,t.endCharacterNumber=this.endCharacterNumber):this.endLineNumber<e.endLineNumber?(t.endLineNumber=e.endLineNumber,t.endCharacterNumber=e.endCharacterNumber):(t.endLineNumber=this.endLineNumber,t.endCharacterNumber=Math.max(this.endCharacterNumber,e.endCharacterNumber)),t}toString(){return this.fileName!==null?`line ${this.startLineNumber} of ${this.fileName}"`:"line "+this.startLineNumber}};yo.DebugMetadata=pd;});var By=C(Co=>{Object.defineProperty(Co,"__esModule",{value:true});Co.ExternalDeclaration=void 0;var dT=oe(),md=class extends dT.ParsedObject{get name(){var e;return ((e=this.identifier)===null||e===void 0?void 0:e.name)||null}constructor(e,t){super(),this.identifier=e,this.argumentNames=t,this.GenerateRuntimeObject=()=>(this.story.AddExternal(this),null);}get typeName(){return "EXTERNAL"}toString(){var e;return `EXTERNAL ${(e=this.identifier)===null||e===void 0?void 0:e.name}`}};Co.ExternalDeclaration=md;});var Wy=C(vo=>{Object.defineProperty(vo,"__esModule",{value:true});vo.FlowDecl=void 0;var gd=class{constructor(e,t,r){this.name=e,this.args=t,this.isFunction=r;}};vo.FlowDecl=gd;});var Cd=C(Eo=>{Object.defineProperty(Eo,"__esModule",{value:true});Eo.Wrap=void 0;var fT=oe(),yd=class extends fT.ParsedObject{constructor(e){super(),this._objToWrap=e,this.GenerateRuntimeObject=()=>this._objToWrap;}};Eo.Wrap=yd;});var My=C(_o=>{Object.defineProperty(_o,"__esModule",{value:true});_o.Glue=void 0;var pT=Cd(),vd=class extends pT.Wrap{constructor(e){super(e);}get typeName(){return "Glue"}};_o.Glue=vd;});var bo=C(So=>{Object.defineProperty(So,"__esModule",{value:true});So.Glue=void 0;var mT=Ge(),Ed=class extends mT.InkObject{toString(){return "Glue"}};So.Glue=Ed;});var Jy=C(Do=>{Object.defineProperty(Do,"__esModule",{value:true});Do.IncDecExpression=void 0;var gT=Ma(),Gy=nt(),yT=wt(),CT=bt(),vT=ue(),ET=Zt(),_T=_r(),ST=Fn(),_d=class extends Gy.Expression{constructor(e,t,r){super(),this.varIdentifier=e,this._runtimeAssignment=null,this.expression=null,this.GenerateIntoContainer=i=>{var a,s;i.AddContent(new _T.VariableReference(((a=this.varIdentifier)===null||a===void 0?void 0:a.name)||null)),this.expression?this.expression.GenerateIntoContainer(i):i.AddContent(new vT.IntValue(1)),i.AddContent(CT.NativeFunctionCall.CallWithName(this.isInc?"+":"-")),this._runtimeAssignment=new ET.VariableAssignment(((s=this.varIdentifier)===null||s===void 0?void 0:s.name)||null,false),i.AddContent(this._runtimeAssignment);},this.toString=()=>{var i,a;return this.expression?`${(i=this.varIdentifier)===null||i===void 0?void 0:i.name}${this.isInc?" += ":" -= "}${this.expression}`:`${(a=this.varIdentifier)===null||a===void 0?void 0:a.name}`+(this.isInc?"++":"--")},t instanceof Gy.Expression?(this.expression=t,this.AddContent(this.expression),this.isInc=!!r):this.isInc=t;}get typeName(){return "IncDecExpression"}ResolveReferences(e){var t;super.ResolveReferences(e);let r=e.ResolveVariableWithName(((t=this.varIdentifier)===null||t===void 0?void 0:t.name)||"",this);if(r.found||this.Error(`variable for ${this.incrementDecrementWord} could not be found: '${this.varIdentifier}' after searching: {this.descriptionOfScope}`),!this._runtimeAssignment)throw new Error;this._runtimeAssignment.isGlobal=r.isGlobal,!(this.parent instanceof ST.Weave)&&!(this.parent instanceof yT.FlowBase)&&!(this.parent instanceof gT.ContentList)&&this.Error(`Can't use ${this.incrementDecrementWord} as sub-expression`);}get incrementDecrementWord(){return this.isInc?"increment":"decrement"}};Do.IncDecExpression=_d;});var bd=C(wo=>{Object.defineProperty(wo,"__esModule",{value:true});wo.IncludedFile=void 0;var bT=oe(),Sd=class extends bT.ParsedObject{constructor(e){super(),this.includedStory=e,this.GenerateRuntimeObject=()=>null;}get typeName(){return "IncludedFile"}};wo.IncludedFile=Sd;});var Hy=C(Ao=>{Object.defineProperty(Ao,"__esModule",{value:true});Ao.InfixOperator=void 0;var Dd=class{constructor(e,t,r){this.type=e,this.precedence=t,this.requireWhitespace=r,this.toString=()=>this.type;}};Ao.InfixOperator=Dd;});var Ad=C(Po=>{Object.defineProperty(Po,"__esModule",{value:true});Po.Knot=void 0;var DT=wt(),Uy=yr(),wd=class extends DT.FlowBase{get flowLevel(){return Uy.FlowLevel.Knot}constructor(e,t,r,i){super(e,t,r,i);}get typeName(){return this.isFunction?"Function":"Knot"}ResolveReferences(e){super.ResolveReferences(e);let t=this.story;for(let r in this.subFlowsByName){let i=t.ContentWithNameAtLevel(r,Uy.FlowLevel.Knot,false);if(i){let a=this.subFlowsByName.get(r),s=`Stitch '${a?a.name:"NO STITCH FOUND"}' has the same name as a knot (on ${i.debugMetadata})`;this.Error(s,a);}}}};Po.Knot=wd;});var zy=C(To=>{Object.defineProperty(To,"__esModule",{value:true});To.List=void 0;var wT=nt(),AT=He(),PT=He(),TT=ue(),Pd=class extends wT.Expression{constructor(e){super(),this.itemIdentifierList=e,this.GenerateIntoContainer=t=>{var r,i;let a=new AT.InkList;if(this.itemIdentifierList!=null)for(let s of this.itemIdentifierList){let o=((r=s?.name)===null||r===void 0?void 0:r.split("."))||[],u=null,l="";o.length>1?(u=o[0],l=o[1]):l=o[0];let c=this.story.ResolveListItem(u,l,this);if(c===null)u===null?this.Error(`Could not find list definition that contains item '${s}'`):this.Error(`Could not find list item ${s}`);else {if(c.parent==null){this.Error(`Could not find list definition for item ${s}`);return}u||(u=((i=c.parent.identifier)===null||i===void 0?void 0:i.name)||null);let h=new PT.InkListItem(u,c.name||null);a.has(h.serialized())?this.Warning(`Duplicate of item '${s}' in list.`):a.Add(h,c.seriesValue);}}t.AddContent(new TT.ListValue(a));};}get typeName(){return "List"}};To.List=Pd;});var Od=C(Oo=>{Object.defineProperty(Oo,"__esModule",{value:true});Oo.ListElementDefinition=void 0;var OT=oe(),xT=$t(),Td=class extends OT.ParsedObject{get fullName(){var e;let t=this.parent;if(t===null)throw new Error("Can't get full name without a parent list.");return `${(e=t.identifier)===null||e===void 0?void 0:e.name}.${this.name}`}get typeName(){return "ListElement"}get name(){var e;return ((e=this.indentifier)===null||e===void 0?void 0:e.name)||null}constructor(e,t,r=null){super(),this.indentifier=e,this.inInitialList=t,this.explicitValue=r,this.seriesValue=0,this.parent=null,this.GenerateRuntimeObject=()=>{throw new Error("Not implemented.")},this.toString=()=>this.fullName,this.parent=this.parent;}ResolveReferences(e){super.ResolveReferences(e),e.CheckForNamingCollisions(this,this.indentifier,xT.SymbolType.ListItem);}};Oo.ListElementDefinition=Td;});var xd=C(xo=>{Object.defineProperty(xo,"__esModule",{value:true});xo.StatementLevel=void 0;var Ky;(function(n){n[n.InnerBlock=0]="InnerBlock",n[n.Stitch=1]="Stitch",n[n.Knot=2]="Knot",n[n.Top=3]="Top";})(Ky||(xo.StatementLevel=Ky={}));});var Nd=C(Fo=>{Object.defineProperty(Fo,"__esModule",{value:true});Fo.Stitch=void 0;var FT=wt(),NT=yr(),Fd=class extends FT.FlowBase{get flowLevel(){return NT.FlowLevel.Stitch}constructor(e,t,r,i){super(e,t,r,i),this.baseToString=this.toString,this.toString=()=>`${this.parent!==null?this.parent+" > ":""}${this.baseToString()}`;}get typeName(){return "Stitch"}};Fo.Stitch=Fd;});var Io=C(No=>{Object.defineProperty(No,"__esModule",{value:true});No.Tag=void 0;var IT=Ge(),Id=class extends IT.InkObject{constructor(e){super(),this.text=e.toString()||"";}toString(){return "# "+this.text}};No.Tag=Id;});var Rd=C(ko=>{Object.defineProperty(ko,"__esModule",{value:true});ko.Choice=void 0;var kT=Me(),RT=Te(),$T=Ge(),kd=class n extends $T.InkObject{constructor(){super(...arguments),this.text="",this.index=0,this.threadAtGeneration=null,this.sourcePath="",this.targetPath=null,this.isInvisibleDefault=false,this.tags=null,this.originalThreadIndex=0;}get pathStringOnChoice(){return this.targetPath===null?(0, RT.throwNullException)("Choice.targetPath"):this.targetPath.toString()}set pathStringOnChoice(e){this.targetPath=new kT.Path(e);}Clone(){let e=new n;return e.text=this.text,e.sourcePath=this.sourcePath,e.index=this.index,e.targetPath=this.targetPath,e.originalThreadIndex=this.originalThreadIndex,e.isInvisibleDefault=this.isInvisibleDefault,this.threadAtGeneration!==null&&(e.threadAtGeneration=this.threadAtGeneration.Copy()),e}};ko.Choice=kd;});var Vd=C(Ro=>{Object.defineProperty(Ro,"__esModule",{value:true});Ro.ListDefinitionsOrigin=void 0;var VT=He(),jT=ue(),qT=Te(),$d=class{constructor(e){this._lists=new Map,this._allUnambiguousListValueCache=new Map;for(let t of e){this._lists.set(t.name,t);for(let[r,i]of t.items){let a=VT.InkListItem.fromSerializedKey(r),s=new jT.ListValue(a,i);if(!a.itemName)throw new Error("item.itemName is null or undefined.");this._allUnambiguousListValueCache.set(a.itemName,s),this._allUnambiguousListValueCache.set(a.fullName,s);}}}get lists(){let e=[];for(let[,t]of this._lists)e.push(t);return e}TryListGetDefinition(e,t){if(e===null)return {result:t,exists:false};let r=this._lists.get(e);return r?{result:r,exists:true}:{result:t,exists:false}}FindSingleItemListWithName(e){if(e===null)return (0, qT.throwNullException)("name");let t=this._allUnambiguousListValueCache.get(e);return typeof t<"u"?t:null}};Ro.ListDefinitionsOrigin=$d;});var Dr=C(qo=>{Object.defineProperty(qo,"__esModule",{value:true});qo.JsonSerialisation=void 0;var $o=de(),ze=ue(),Xy=bo(),U=Oe(),br=Tn(),Yy=Dt(),Zy=ma(),jd=_r(),Qy=Zt(),qd=bt(),e0=Pn(),t0=Io(),LT=Me(),n0=Rd(),BT=od(),WT=Vd(),Vo=He(),fe=X(),Nn=Te(),jo=class n{static JArrayToRuntimeObjList(e,t=false){let r=e.length;t&&r--;let i=[];for(let a=0;a<r;a++){let s=e[a],o=this.JTokenToRuntimeObject(s);if(o===null)return (0, Nn.throwNullException)("runtimeObj");i.push(o);}return i}static WriteDictionaryRuntimeObjs(e,t){e.WriteObjectStart();for(let[r,i]of t)e.WritePropertyStart(r),this.WriteRuntimeObject(e,i),e.WritePropertyEnd();e.WriteObjectEnd();}static WriteListRuntimeObjs(e,t){e.WriteArrayStart();for(let r of t)this.WriteRuntimeObject(e,r);e.WriteArrayEnd();}static WriteIntDictionary(e,t){e.WriteObjectStart();for(let[r,i]of t)e.WriteIntProperty(r,i);e.WriteObjectEnd();}static WriteRuntimeObject(e,t){let r=(0, fe.asOrNull)(t,$o.Container);if(r){this.WriteRuntimeContainer(e,r);return}let i=(0, fe.asOrNull)(t,Yy.Divert);if(i){let y="->";i.isExternal?y="x()":i.pushesToStack&&(i.stackPushType==br.PushPopType.Function?y="f()":i.stackPushType==br.PushPopType.Tunnel&&(y="->t->"));let S;i.hasVariableTarget?S=i.variableDivertName:S=i.targetPathString,e.WriteObjectStart(),e.WriteProperty(y,S),i.hasVariableTarget&&e.WriteProperty("var",true),i.isConditional&&e.WriteProperty("c",true),i.externalArgs>0&&e.WriteIntProperty("exArgs",i.externalArgs),e.WriteObjectEnd();return}let a=(0, fe.asOrNull)(t,Zy.ChoicePoint);if(a){e.WriteObjectStart(),e.WriteProperty("*",a.pathStringOnChoice),e.WriteIntProperty("flg",a.flags),e.WriteObjectEnd();return}let s=(0, fe.asOrNull)(t,ze.BoolValue);if(s){e.WriteBool(s.value);return}let o=(0, fe.asOrNull)(t,ze.IntValue);if(o){e.WriteInt(o.value);return}let u=(0, fe.asOrNull)(t,ze.FloatValue);if(u){e.WriteFloat(u.value);return}let l=(0, fe.asOrNull)(t,ze.StringValue);if(l){l.isNewline?e.Write(`
21
+ `.repeat(this.lineIndex-e):null};}PreProcessInputString(e){return e}};Pa.CommentEliminator=Ah;});var xa=C(Ta=>{Object.defineProperty(Ta,"__esModule",{value:true});Ta.Conditional=void 0;var vA=de(),Cy=xe(),EA=oe(),Ph=class extends EA.ParsedObject{constructor(e,t){super(),this.initialCondition=e,this.branches=t,this._reJoinTarget=null,this.GenerateRuntimeObject=()=>{let r=new vA.Container;this.initialCondition&&r.AddContent(this.initialCondition.runtimeObject);for(let i of this.branches){let a=i.runtimeObject;r.AddContent(a);}return this.initialCondition!==null&&this.branches[0].ownExpression!==null&&!this.branches[this.branches.length-1].isElse&&r.AddContent(Cy.ControlCommand.PopEvaluatedValue()),this._reJoinTarget=Cy.ControlCommand.NoOp(),r.AddContent(this._reJoinTarget),r},this.initialCondition&&this.AddContent(this.initialCondition),this.branches!==null&&this.AddContent(this.branches);}get typeName(){return "Conditional"}ResolveReferences(e){let t=this._reJoinTarget.path;for(let r of this.branches){if(!r.returnDivert)throw new Error;r.returnDivert.targetPath=t;}super.ResolveReferences(e);}};Ta.Conditional=Ph;});var en=C(Oa=>{Object.defineProperty(Oa,"__esModule",{value:true});Oa.Text=void 0;var _A=oe(),SA=ue(),Th=class extends _A.ParsedObject{constructor(e){super(),this.text=e,this.GenerateRuntimeObject=()=>new SA.StringValue(this.text),this.toString=()=>this.text;}get typeName(){return "Text"}};Oa.Text=Th;});var Na=C(Fa=>{Object.defineProperty(Fa,"__esModule",{value:true});Fa.ConstantDeclaration=void 0;var bA=oe(),wA=$t(),xh=class extends bA.ParsedObject{get constantName(){var e;return (e=this.constantIdentifier)===null||e===void 0?void 0:e.name}get expression(){if(!this._expression)throw new Error;return this._expression}constructor(e,t){super(),this._expression=null,this.GenerateRuntimeObject=()=>null,this.constantIdentifier=e,t&&(this._expression=this.AddContent(t));}get typeName(){return "CONST"}ResolveReferences(e){super.ResolveReferences(e),e.CheckForNamingCollisions(this,this.constantIdentifier,wA.SymbolType.Var);}};Fa.ConstantDeclaration=xh;});var yr=C(Ia=>{Object.defineProperty(Ia,"__esModule",{value:true});Ia.FlowLevel=void 0;var vy;(function(n){n[n.Story=0]="Story",n[n.Knot=1]="Knot",n[n.Stitch=2]="Stitch",n[n.WeavePoint=3]="WeavePoint";})(vy||(Ia.FlowLevel=vy={}));});var Fi=C(ka=>{Object.defineProperty(ka,"__esModule",{value:true});ka.Gather=void 0;var DA=de(),AA=oe(),PA=$t(),Oh=class extends AA.ParsedObject{get name(){var e;return ((e=this.identifier)===null||e===void 0?void 0:e.name)||null}get runtimeContainer(){return this.runtimeObject}constructor(e,t){super(),this.indentationDepth=t,this.GenerateRuntimeObject=()=>{let r=new DA.Container;if(r.name=this.name,this.story.countAllVisits&&(r.visitsShouldBeCounted=true),r.countingAtStartOnly=true,this.content)for(let i of this.content)r.AddContent(i.runtimeObject);return r},this.toString=()=>{var r,i;return `- ${!((r=this.identifier)===null||r===void 0)&&r.name?"("+((i=this.identifier)===null||i===void 0?void 0:i.name)+")":"gather"}`},e&&(this.identifier=e);}get typeName(){return "Gather"}ResolveReferences(e){super.ResolveReferences(e),this.identifier&&(this.identifier.name||"").length>0&&e.CheckForNamingCollisions(this,this.identifier,PA.SymbolType.SubFlowAndWeave);}};ka.Gather=Oh;});var On=C($a=>{Object.defineProperty($a,"__esModule",{value:true});$a.Path=void 0;var Ra=X(),Ey=Dt(),Cr=yr(),TA=Fn(),Fh=class{get baseTargetLevel(){return this.baseLevelIsAmbiguous?Cr.FlowLevel.Story:this._baseTargetLevel}get baseLevelIsAmbiguous(){return !this._baseTargetLevel}get firstComponent(){return this.components==null||!this.components.length?null:this.components[0].name}get numberOfComponents(){return this.components?this.components.length:0}get dotSeparatedComponents(){return this._dotSeparatedComponents==null&&(this._dotSeparatedComponents=(this.components?this.components:[]).map(e=>e.name).filter(Ra.filterUndef).join(".")),this._dotSeparatedComponents}constructor(e,t){this._dotSeparatedComponents=null,this.toString=()=>this.components===null||this.components.length===0?this.baseTargetLevel===Cr.FlowLevel.WeavePoint?"-> <next gather point>":"<invalid Path>":`-> ${this.dotSeparatedComponents}`,this.ResolveFromContext=r=>{if(this.components==null||this.components.length==0)return null;let i=this.ResolveBaseTarget(r);return i===null?null:this.components.length>1?this.ResolveTailComponents(i):i},this.ResolveBaseTarget=r=>{let i=this.firstComponent,a=r;for(;a;){let s=a===r,o=this.GetChildFromContext(a,i,null,s);if(o)return o;a=a.parent;}return null},this.ResolveTailComponents=r=>{let i=r;if(!this.components)return null;for(let a=1;a<this.components.length;++a){let s=this.components[a].name,o,u=(0, Ra.asOrNull)(i,Ey.FlowBase);if(u!==null?o=u.flowLevel+1:o=Cr.FlowLevel.WeavePoint,i=this.GetChildFromContext(i,s,o),i===null)break}return i},this.GetChildFromContext=(r,i,a,s=false)=>{let o=a===null,u=(0, Ra.asOrNull)(r,TA.Weave);if(i&&u!==null&&(o||a===Cr.FlowLevel.WeavePoint))return u.WeavePointNamed(i);let l=(0, Ra.asOrNull)(r,Ey.FlowBase);if(i&&l!==null){let c=s||l.flowLevel===Cr.FlowLevel.Knot;return l.ContentWithNameAtLevel(i,a,c)}return null},Object.values(Cr.FlowLevel).includes(e)?(this._baseTargetLevel=e,this.components=t||[]):Array.isArray(e)?(this._baseTargetLevel=null,this.components=e||[]):(this._baseTargetLevel=null,this.components=[e]);}get typeName(){return "Path"}};$a.Path=Fh;});var kh=C(Va=>{Object.defineProperty(Va,"__esModule",{value:true});Va.ReturnType=void 0;var xA=oe(),OA=de(),Nh=xe(),FA=Pn(),Ih=class extends xA.ParsedObject{constructor(e=null){super(),this.returnedExpression=null,this.GenerateRuntimeObject=()=>{let t=new OA.Container;return this.returnedExpression?t.AddContent(this.returnedExpression.runtimeObject):(t.AddContent(Nh.ControlCommand.EvalStart()),t.AddContent(new FA.Void),t.AddContent(Nh.ControlCommand.EvalEnd())),t.AddContent(Nh.ControlCommand.PopFunction()),t},e&&(this.returnedExpression=this.AddContent(e));}get typeName(){return "ReturnType"}};Va.ReturnType=Ih;});var Ni=C(ja=>{Object.defineProperty(ja,"__esModule",{value:true});ja.ClosestFlowBase=void 0;function NA(n){let e=n.parent;for(;e;){if(e.hasOwnProperty("iamFlowbase")&&e.iamFlowbase())return e;e=e.parent;}return null}ja.ClosestFlowBase=NA;});var La=C(qa=>{Object.defineProperty(qa,"__esModule",{value:true});qa.Identifier=void 0;var Rh=class n{constructor(e){this.debugMetadata=null,this.toString=()=>this.name||"undefined identifer",this.name=e;}get typeName(){return "Identifier"}static Done(){return new n("DONE")}};qa.Identifier=Rh;});var Dt=C(Ba=>{Object.defineProperty(Ba,"__esModule",{value:true});Ba.FlowBase=void 0;var IA=gr(),$h=Er(),kA=vr(),At=yr(),RA=Fi(),$A=oe(),VA=On(),jA=kh(),qA=de(),LA=wt(),BA=Zt(),Vh=$t(),WA=Fn(),MA=Ni(),GA=La(),_y=X(),jh=class n extends $A.ParsedObject{get hasParameters(){return this.args!==null&&this.args.length>0}get subFlowsByName(){return this._subFlowsByName}get typeName(){return this.isFunction?"Function":String(this.flowLevel)}get name(){var e;return ((e=this.identifier)===null||e===void 0?void 0:e.name)||null}constructor(e,t=null,r=null,i=false,a=false){super(),this.isFunction=i,this._rootWeave=null,this._subFlowsByName=new Map,this._startingSubFlowDivert=null,this._startingSubFlowRuntime=null,this._firstChildFlow=null,this.variableDeclarations=new Map,this.identifier=null,this.args=null,this.iamFlowbase=()=>true,this.SplitWeaveAndSubFlowContent=(s,o)=>{var u,l;let c=[],h=[];this._subFlowsByName=new Map;for(let p of s){let m=(0, _y.asOrNull)(p,n);m?(this._firstChildFlow===null&&(this._firstChildFlow=m),h.push(p),!((u=m.identifier)===null||u===void 0)&&u.name&&this._subFlowsByName.set((l=m.identifier)===null||l===void 0?void 0:l.name,m)):c.push(p);}o&&c.push(new RA.Gather(null,1),new $h.Divert(new VA.Path(GA.Identifier.Done())));let f=[];return c.length>0&&(this._rootWeave=new WA.Weave(c,0),f.push(this._rootWeave)),h.length>0&&f.push(...h),f},this.ResolveVariableWithName=(s,o)=>{var u;let l={},c=o===null?this:(0, MA.ClosestFlowBase)(o);if(c){if(c.args!==null){for(let h of c.args)if(((u=h.identifier)===null||u===void 0?void 0:u.name)===s)return l.found=true,l.isArgument=true,l.ownerFlow=c,l}if(c!==this.story&&c.variableDeclarations.has(s))return l.found=true,l.ownerFlow=c,l.isTemporary=true,l}return this.story.variableDeclarations.has(s)?(l.found=true,l.ownerFlow=this.story,l.isGlobal=true,l):(l.found=false,l)},this.AddNewVariableDeclaration=s=>{let o=s.variableName;if(this.variableDeclarations.has(o)){let u=this.variableDeclarations.get(o),l="";u.debugMetadata&&(l=` (${u.debugMetadata})`),this.Error(`found declaration variable '${o}' that was already declared${l}`,s,false);return}this.variableDeclarations.set(s.variableName,s);},this.ResolveWeavePointNaming=()=>{this._rootWeave&&this._rootWeave.ResolveWeavePointNaming();for(let[,s]of this._subFlowsByName)s.hasOwnProperty("ResolveWeavePointNaming")&&s.ResolveWeavePointNaming();},this.GenerateRuntimeObject=()=>{var s;let o=null;this.isFunction?this.CheckForDisallowedFunctionFlowControl():(this.flowLevel===At.FlowLevel.Knot||this.flowLevel===At.FlowLevel.Stitch)&&(o=this.Find(jA.ReturnType)(),o!==null&&this.Error(`Return statements can only be used in knots that are declared as functions: == function ${this.identifier} ==`,o));let u=new qA.Container;u.name=(s=this.identifier)===null||s===void 0?void 0:s.name,this.story.countAllVisits&&(u.visitsShouldBeCounted=true),this.GenerateArgumentVariableAssignments(u);let l=0;for(;this.content!==null&&l<this.content.length;){let c=this.content[l];if(c instanceof n){let h=c,f=h.runtimeObject;l===0&&!h.hasParameters&&this.flowLevel===At.FlowLevel.Knot&&(this._startingSubFlowDivert=new LA.Divert,u.AddContent(this._startingSubFlowDivert),this._startingSubFlowRuntime=f);let p=f,m=u.namedContent.get(p.name)||null;if(m){let g=`${this.GetType()} already contains flow named '${p.name}' (at ${m.debugMetadata})`;this.Error(g,h);}u.AddToNamedContentOnly(p);}else c&&u.AddContent(c.runtimeObject);l+=1;}return this.flowLevel!==At.FlowLevel.Story&&!this.isFunction&&this._rootWeave!==null&&o===null&&this._rootWeave.ValidateTermination(this.WarningInTermination),u},this.GenerateArgumentVariableAssignments=s=>{var o;if(!(this.args===null||this.args.length===0))for(let u=this.args.length-1;u>=0;--u){let l=((o=this.args[u].identifier)===null||o===void 0?void 0:o.name)||null,c=new BA.VariableAssignment(l,true);s.AddContent(c);}},this.ContentWithNameAtLevel=(s,o=null,u=false)=>{var l;if((o===this.flowLevel||o===null)&&s===((l=this.identifier)===null||l===void 0?void 0:l.name))return this;if(o===At.FlowLevel.WeavePoint||o===null){let h=null;if(this._rootWeave&&(h=this._rootWeave.WeavePointNamed(s),h))return h;if(o===At.FlowLevel.WeavePoint)return u?this.DeepSearchForAnyLevelContent(s):null}if(o!==null&&o<this.flowLevel)return null;let c=this._subFlowsByName.get(s)||null;return c&&(o===null||o===c.flowLevel)?c:u?this.DeepSearchForAnyLevelContent(s):null},this.DeepSearchForAnyLevelContent=s=>{let o=this.ContentWithNameAtLevel(s,At.FlowLevel.WeavePoint,false);if(o)return o;for(let[,u]of this._subFlowsByName){let l=u.ContentWithNameAtLevel(s,null,true);if(l)return l}return null},this.CheckForDisallowedFunctionFlowControl=()=>{this.flowLevel!==At.FlowLevel.Knot&&this.Error("Functions cannot be stitches - i.e. they should be defined as '== function myFunc ==' rather than internal to another knot.");for(let[u,l]of this._subFlowsByName)this.Error(`Functions may not contain stitches, but saw '${u}' within the function '${this.identifier}'`,l);if(!this._rootWeave)throw new Error;let s=this._rootWeave.FindAll($h.Divert)();for(let u of s)!u.isFunctionCall&&!(u.parent instanceof kA.DivertTarget)&&this.Error(`Functions may not contain diverts, but saw '${u}'`,u);let o=this._rootWeave.FindAll(IA.Choice)();for(let u of o)this.Error(`Functions may not contain choices, but saw '${u}'`,u);},this.WarningInTermination=s=>{let o="Apparent loose end exists where the flow runs out. Do you need a '-> DONE' statement, choice or divert?";s.parent===this._rootWeave&&this._firstChildFlow&&(o=`${o} Note that if you intend to enter '${this._firstChildFlow.identifier}' next, you need to divert to it explicitly.`);let u=(0, _y.asOrNull)(s,$h.Divert);u&&u.isTunnel&&(o+=` When final tunnel to '${u.target} ->' returns it won't have anywhere to go.`),this.Warning(o,s);},this.toString=()=>`${this.typeName} '${this.identifier}'`,this.identifier=e,this.args=r,t===null&&(t=[]),this.PreProcessTopLevelObjects(t),t=this.SplitWeaveAndSubFlowContent(t,this.GetType()=="Story"&&!a),this.AddContent(t);}PreProcessTopLevelObjects(e){}ResolveReferences(e){var t,r;if(this._startingSubFlowDivert){if(!this._startingSubFlowRuntime)throw new Error;this._startingSubFlowDivert.targetPath=this._startingSubFlowRuntime.path;}if(super.ResolveReferences(e),this.args!==null){for(let i of this.args)e.CheckForNamingCollisions(this,i.identifier,Vh.SymbolType.Arg,"argument");for(let i=0;i<this.args.length;i+=1)for(let a=i+1;a<this.args.length;a+=1)((t=this.args[i].identifier)===null||t===void 0?void 0:t.name)==((r=this.args[a].identifier)===null||r===void 0?void 0:r.name)&&this.Error(`Multiple arguments with the same name: '${this.args[i].identifier}'`);}if(this.flowLevel!==At.FlowLevel.Story){let i=this.flowLevel===At.FlowLevel.Knot?Vh.SymbolType.Knot:Vh.SymbolType.SubFlowAndWeave;e.CheckForNamingCollisions(this,this.identifier,i);}}};Ba.FlowBase=jh;});var Ma=C(Wa=>{Object.defineProperty(Wa,"__esModule",{value:true});Wa.ContentList=void 0;var JA=de(),HA=oe(),UA=en(),zA=X(),qh=class extends HA.ParsedObject{get runtimeContainer(){return this.runtimeObject}constructor(e,...t){super(),this.dontFlatten=false,this.TrimTrailingWhitespace=()=>{for(let r=this.content.length-1;r>=0;--r){let i=(0, zA.asOrNull)(this.content[r],UA.Text);if(i===null)break;if(i.text=i.text.replace(new RegExp(/[ \t]/g),""),i.text.length===0)this.content.splice(r,1);else break}},this.GenerateRuntimeObject=()=>{let r=new JA.Container;if(this.content!==null)for(let i of this.content){let a=i.runtimeObject;a&&r.AddContent(a);}return this.dontFlatten&&this.story.DontFlattenContainer(r),r},this.toString=()=>`ContentList(${this.content.join(", ")})`,e&&this.AddContent(e),t&&this.AddContent(t);}get typeName(){return "ContentList"}};Wa.ContentList=qh;});var _r=C(Ga=>{Object.defineProperty(Ga,"__esModule",{value:true});Ga.VariableReference=void 0;var KA=Ge(),XA=Me(),Lh=class extends KA.InkObject{get containerForCount(){return this.pathForCount===null?null:this.ResolvePath(this.pathForCount).container}get pathStringForCount(){return this.pathForCount===null?null:this.CompactPathString(this.pathForCount)}set pathStringForCount(e){e===null?this.pathForCount=null:this.pathForCount=new XA.Path(e);}constructor(e=null){super(),this.pathForCount=null,this.name=e;}toString(){return this.name!=null?"var("+this.name+")":"read_count("+this.pathStringForCount+")"}};Ga.VariableReference=Lh;});var Sr=C(Ja=>{Object.defineProperty(Ja,"__esModule",{value:true});Ja.VariableReference=void 0;var YA=Ma(),ZA=nt(),Sy=Dt(),QA=On(),eP=_r(),tP=Fn(),nP=La(),by=X(),Bh=class extends ZA.Expression{get name(){return this.path.join(".")}get path(){return this.pathIdentifiers.map(e=>e.name).filter(by.filterUndef)}get identifier(){if(!this.pathIdentifiers||this.pathIdentifiers.length==0)return null;let e=this.path.join(".");return new nP.Identifier(e)}get runtimeVarRef(){return this._runtimeVarRef}constructor(e){super(),this.pathIdentifiers=e,this._runtimeVarRef=null,this.isConstantReference=false,this.isListItemReference=false,this.GenerateIntoContainer=t=>{let r=this.story.constants.get(this.name);if(r){r.GenerateConstantIntoContainer(t),this.isConstantReference=true;return}if(this._runtimeVarRef=new eP.VariableReference(this.name),this.path.length===1||this.path.length===2){let i="",a="";this.path.length===1?i=this.path[0]:(a=this.path[0],i=this.path[1]),this.story.ResolveListItem(a,i,this)&&(this.isListItemReference=true);}t.AddContent(this._runtimeVarRef);},this.toString=()=>`{${this.path.join(".")}}`;}get typeName(){return "ref"}ResolveReferences(e){if(super.ResolveReferences(e),this.isConstantReference||this.isListItemReference)return;let t=new QA.Path(this.pathIdentifiers),r=t.ResolveFromContext(this);if(r){if(!r.containerForCounting)throw new Error;if(r.containerForCounting.visitsShouldBeCounted=true,this._runtimeVarRef===null)return;this._runtimeVarRef.pathForCount=r.runtimePath,this._runtimeVarRef.name=null;let i=(0, by.asOrNull)(r,Sy.FlowBase);i&&i.isFunction&&(this.parent instanceof tP.Weave||this.parent instanceof YA.ContentList||this.parent instanceof Sy.FlowBase)&&this.Warning(`'${i.identifier}' being used as read count rather than being called as function. Perhaps you intended to write ${i.identifier}()`);return}if(this.path.length>1){let i=`Could not find target for read count: ${t}`;this.path.length<=2&&(i+=`, or couldn't find list item with the name ${this.path.join(",")}`),this.Error(i);return}e.ResolveVariableWithName(this.name,this).found||this.Error(`Unresolved variable: ${this.name}`,this);}};Ja.VariableReference=Bh;});var Ii=C(Ka=>{Object.defineProperty(Ka,"__esModule",{value:true});Ka.FunctionCall=void 0;var Pt=xe(),rP=Er(),iP=vr(),sP=nt(),aP=He(),oP=ue(),Ua=bt(),wy=la(),uP=On(),lP=ue(),cP=Sr(),Ha=X(),za=class n extends sP.Expression{get proxyDivert(){return this._proxyDivert}get name(){return this._proxyDivert.target.firstComponent||""}get args(){return this._proxyDivert.args}get runtimeDivert(){return this._proxyDivert.runtimeDivert}get isChoiceCount(){return this.name==="CHOICE_COUNT"}get isTurns(){return this.name==="TURNS"}get isTurnsSince(){return this.name==="TURNS_SINCE"}get isRandom(){return this.name==="RANDOM"}get isSeedRandom(){return this.name==="SEED_RANDOM"}get isListRange(){return this.name==="LIST_RANGE"}get isListRandom(){return this.name==="LIST_RANDOM"}get isReadCount(){return this.name==="READ_COUNT"}constructor(e,t){super(),this._divertTargetToCount=null,this._variableReferenceToCount=null,this.shouldPopReturnedValue=false,this.GenerateIntoContainer=r=>{let i=this.story.ResolveList(this.name),a=false;if(this.isChoiceCount)this.args.length>0&&this.Error("The CHOICE_COUNT() function shouldn't take any arguments"),r.AddContent(Pt.ControlCommand.ChoiceCount());else if(this.isTurns)this.args.length>0&&this.Error("The TURNS() function shouldn't take any arguments"),r.AddContent(Pt.ControlCommand.Turns());else if(this.isTurnsSince||this.isReadCount){let s=(0, Ha.asOrNull)(this.args[0],iP.DivertTarget),o=(0, Ha.asOrNull)(this.args[0],cP.VariableReference);if(this.args.length!==1||s===null&&o===null){this.Error(`The ${this.name}() function should take one argument: a divert target to the target knot, stitch, gather or choice you want to check. e.g. TURNS_SINCE(-> myKnot)`);return}s?(this._divertTargetToCount=s,this.AddContent(this._divertTargetToCount),this._divertTargetToCount.GenerateIntoContainer(r)):o&&(this._variableReferenceToCount=o,this.AddContent(this._variableReferenceToCount),this._variableReferenceToCount.GenerateIntoContainer(r)),this.isTurnsSince?r.AddContent(Pt.ControlCommand.TurnsSince()):r.AddContent(Pt.ControlCommand.ReadCount());}else if(this.isRandom){this.args.length!==2&&this.Error("RANDOM should take 2 parameters: a minimum and a maximum integer");for(let s=0;s<this.args.length;s+=1){let o=(0, Ha.asOrNull)(this.args[s],wy.NumberExpression);if(o&&!o.isInt()){let u=s===0?"minimum":"maximum";this.Error(`RANDOM's ${u} parameter should be an integer`);}this.args[s].GenerateIntoContainer(r);}r.AddContent(Pt.ControlCommand.Random());}else if(this.isSeedRandom){this.args.length!==1&&this.Error("SEED_RANDOM should take 1 parameter - an integer seed");let s=(0, Ha.asOrNull)(this.args[0],wy.NumberExpression);s&&!s.isInt()&&this.Error("SEED_RANDOM's parameter should be an integer seed"),this.args[0].GenerateIntoContainer(r),r.AddContent(Pt.ControlCommand.SeedRandom());}else if(this.isListRange){this.args.length!==3&&this.Error("LIST_RANGE should take 3 parameters - a list, a min and a max");for(let s=0;s<this.args.length;s+=1)this.args[s].GenerateIntoContainer(r);r.AddContent(Pt.ControlCommand.ListRange());}else if(this.isListRandom)this.args.length!==1&&this.Error("LIST_RANDOM should take 1 parameter - a list"),this.args[0].GenerateIntoContainer(r),r.AddContent(Pt.ControlCommand.ListRandom());else if(Ua.NativeFunctionCall.CallExistsWithName(this.name)){let s=Ua.NativeFunctionCall.CallWithName(this.name);if(s.numberOfParameters!==this.args.length){let o=`${n.name} should take ${s.numberOfParameters} parameter`;s.numberOfParameters>1&&(o+="s"),this.Error(o);}for(let o=0;o<this.args.length;o+=1)this.args[o].GenerateIntoContainer(r);r.AddContent(Ua.NativeFunctionCall.CallWithName(this.name));}else if(i!==null)if(this.args.length>1&&this.Error("Can currently only construct a list from one integer (or an empty list from a given list definition)"),this.args.length===1)r.AddContent(new lP.StringValue(this.name)),this.args[0].GenerateIntoContainer(r),r.AddContent(Pt.ControlCommand.ListFromInt());else {let s=new aP.InkList;s.SetInitialOriginName(this.name),r.AddContent(new oP.ListValue(s));}else r.AddContent(this._proxyDivert.runtimeObject),a=true;a||this.content.splice(this.content.indexOf(this._proxyDivert),1),this.shouldPopReturnedValue&&r.AddContent(Pt.ControlCommand.PopEvaluatedValue());},this.toString=()=>{let r=this.args.join(", ");return `${this.name}(${r})`},this._proxyDivert=new rP.Divert(new uP.Path(e),t),this._proxyDivert.isFunctionCall=true,this.AddContent(this._proxyDivert);}get typeName(){return "FunctionCall"}ResolveReferences(e){if(super.ResolveReferences(e),!this.content.includes(this._proxyDivert)&&this.args!==null)for(let t of this.args)t.ResolveReferences(e);if(this._divertTargetToCount){let t=this._divertTargetToCount.divert,r=t.runtimeDivert.variableDivertName!=null;if(r){this.Error(`When getting the TURNS_SINCE() of a variable target, remove the '->' - i.e. it should just be TURNS_SINCE(${t.runtimeDivert.variableDivertName})`);return}let i=t.targetContent;if(i===null)r||this.Error(`Failed to find target for TURNS_SINCE: '${t.target}'`);else {if(!i.containerForCounting)throw new Error;i.containerForCounting.turnIndexShouldBeCounted=true;}}else if(this._variableReferenceToCount){let t=this._variableReferenceToCount.runtimeVarRef;if(!t)throw new Error;t.pathForCount!==null&&this.Error(`Should be '${n.name}'(-> '${this._variableReferenceToCount.name}). Usage without the '->' only makes sense for variable targets.`);}}};Ka.FunctionCall=za;za.IsBuiltIn=n=>Ua.NativeFunctionCall.CallExistsWithName(n)?true:n==="CHOICE_COUNT"||n==="TURNS_SINCE"||n==="TURNS"||n==="RANDOM"||n==="SEED_RANDOM"||n==="LIST_VALUE"||n==="LIST_RANDOM"||n==="READ_COUNT";});var Mh=C(Xa=>{Object.defineProperty(Xa,"__esModule",{value:true});Xa.MultipleConditionExpression=void 0;var hP=nt(),dP=bt(),Wh=class extends hP.Expression{get subExpressions(){return this.content}constructor(e){super(),this.GenerateIntoContainer=t=>{let r=true;for(let i of this.subExpressions)i.GenerateIntoContainer(t),r||t.AddContent(dP.NativeFunctionCall.CallWithName("&&")),r=false;},this.AddContent(e);}get typeName(){return "MultipleConditionExpression"}};Xa.MultipleConditionExpression=Wh;});var vr=C(Ya=>{Object.defineProperty(Ya,"__esModule",{value:true});Ya.DivertTarget=void 0;var fP=fh(),pP=gr(),mP=xa(),gP=Uh(),yP=ue(),Gh=nt(),CP=Dt(),Dy=Ii(),vP=Mh(),Ay=Sr(),Jh=X(),Hh=class n extends Gh.Expression{get runtimeDivert(){if(!this._runtimeDivert)throw new Error;return this._runtimeDivert}get runtimeDivertTargetValue(){if(!this._runtimeDivertTargetValue)throw new Error;return this._runtimeDivertTargetValue}constructor(e){super(),this._runtimeDivert=null,this._runtimeDivertTargetValue=null,this.GenerateIntoContainer=t=>{this.divert.GenerateRuntimeObject(),this._runtimeDivert=this.divert.runtimeDivert,this._runtimeDivertTargetValue=new yP.DivertTargetValue,t.AddContent(this.runtimeDivertTargetValue);},this.Equals=t=>{let r=(0, Jh.asOrNull)(t,n);if(!r||!this.divert.target||!r.divert.target)return false;let i=this.divert.target.dotSeparatedComponents,a=r.divert.target.dotSeparatedComponents;return i===a},this.divert=this.AddContent(e);}get typeName(){return "DivertTarget"}ResolveReferences(e){if(super.ResolveReferences(e),this.divert.isDone||this.divert.isEnd){this.Error("Can't use -> DONE or -> END as variable divert targets",this);return}let t=this;for(;t&&t instanceof Gh.Expression;){let i=false,a=false,s=t.parent;if(s instanceof fP.BinaryExpression){let o=s;o.opName!=="=="&&o.opName!=="!="?i=true:(o.leftExpression instanceof n||o.leftExpression instanceof Ay.VariableReference)&&(o.rightExpression instanceof n||o.rightExpression instanceof Ay.VariableReference)||(i=true),a=true;}else if(s instanceof Dy.FunctionCall){let o=s;!o.isTurnsSince&&!o.isReadCount&&(i=true),a=true;}else (s instanceof Gh.Expression||s instanceof vP.MultipleConditionExpression||s instanceof pP.Choice&&s.condition===t||s instanceof mP.Conditional||s instanceof gP.ConditionalSingleBranch)&&(i=true,a=true);if(i&&this.Error(`Can't use a divert target like that. Did you intend to call '${this.divert.target}' as a function: likeThis(), or check the read count: likeThis, with no arrows?`,this),a)break;t=s;}if(this.runtimeDivert.hasVariableTarget){if(!this.divert.target)throw new Error;this.Error(`Since '${this.divert.target.dotSeparatedComponents}' is a variable, it shouldn't be preceded by '->' here.`);}this.runtimeDivert.targetPath&&(this.runtimeDivertTargetValue.targetPath=this.runtimeDivert.targetPath);let r=this.divert.targetContent;if(r!==null){let i=r.containerForCounting;if(i!==null){let s=(0, Jh.asOrNull)(this.parent,Dy.FunctionCall);s&&s.isTurnsSince||(i.visitsShouldBeCounted=true),i.turnIndexShouldBeCounted=true;}let a=(0, Jh.asOrNull)(r,CP.FlowBase);if(a!=null&&a.args!==null)for(let s of a.args)s.isByReference&&this.Error(`Can't store a divert target to a knot or function that has by-reference arguments ('${a.identifier}' has 'ref ${s.identifier}').`);}}};Ya.DivertTarget=Hh;});var Er=C(Za=>{Object.defineProperty(Za,"__esModule",{value:true});Za.Divert=void 0;var EP=de(),ki=xe(),_P=wt(),zh=vr(),Kh=Dt(),SP=Ii(),bP=oe(),Py=On(),wP=Me(),Ty=Tn(),DP=ue(),xy=Sr(),AP=Ni(),Ri=X(),Xh=class extends bP.ParsedObject{get runtimeDivert(){if(!this._runtimeDivert)throw new Error;return this._runtimeDivert}set runtimeDivert(e){this._runtimeDivert=e;}get isEnd(){return !!(this.target&&this.target.dotSeparatedComponents==="END")}get isDone(){return !!(this.target&&this.target.dotSeparatedComponents==="DONE")}constructor(e,t){super(),this.args=[],this.target=null,this.targetContent=null,this._runtimeDivert=null,this.isFunctionCall=false,this.isEmpty=false,this.isTunnel=false,this.isThread=false,this.GenerateRuntimeObject=()=>{if(this.isEnd)return ki.ControlCommand.End();if(this.isDone)return ki.ControlCommand.Done();this.runtimeDivert=new _P.Divert,this.ResolveTargetContent(),this.CheckArgumentValidity();let r=this.args!==null&&this.args.length>0;if(r||this.isFunctionCall||this.isTunnel||this.isThread){let i=new EP.Container;if(r){this.isFunctionCall||i.AddContent(ki.ControlCommand.EvalStart());let a=null;this.targetContent&&(a=this.targetContent.args);for(let s=0;s<this.args.length;++s){let o=this.args[s],u=null;if(a&&s<a.length&&(u=a[s]),u&&u.isByReference){let l=(0, Ri.asOrNull)(o,xy.VariableReference);if(!l){this.Error(`Expected variable name to pass by reference to 'ref ${u.identifier}' but saw ${o}`);break}let c=new Py.Path(l.pathIdentifiers);if(c.ResolveFromContext(this)){this.Error(`can't pass a read count by reference. '${c.dotSeparatedComponents}' is a knot/stitch/label, but '${this.target.dotSeparatedComponents}' requires the name of a VAR to be passed.`);break}let f=new DP.VariablePointerValue(l.name);i.AddContent(f);}else o.GenerateIntoContainer(i);}this.isFunctionCall||i.AddContent(ki.ControlCommand.EvalEnd());}return this.isThread?i.AddContent(ki.ControlCommand.StartThread()):(this.isFunctionCall||this.isTunnel)&&(this.runtimeDivert.pushesToStack=true,this.runtimeDivert.stackPushType=this.isFunctionCall?Ty.PushPopType.Function:Ty.PushPopType.Tunnel),i.AddContent(this.runtimeDivert),i}return this.runtimeDivert},this.PathAsVariableName=()=>this.target?this.target.firstComponent:null,this.ResolveTargetContent=()=>{if(!(this.isEmpty||this.isEnd)&&this.targetContent===null){let r=this.PathAsVariableName();if(r!==null){let i=(0, Ri.asOrNull)((0, AP.ClosestFlowBase)(this),Kh.FlowBase);if(i){let a=i.ResolveVariableWithName(r,this);if(a.found){if(a.isArgument&&a.ownerFlow&&a.ownerFlow.args){let s=a.ownerFlow.args.find(o=>{var u;return ((u=o.identifier)===null||u===void 0?void 0:u.name)==r});s&&!s.isDivertTarget&&this.Error(`Since '${s.identifier}' is used as a variable divert target (on ${this.debugMetadata}), it should be marked as: -> ${s.identifier}`,a.ownerFlow);}this.runtimeDivert.variableDivertName=r;return}}}if(!this.target)throw new Error;this.targetContent=this.target.ResolveFromContext(this);}},this.CheckArgumentValidity=()=>{if(this.isEmpty)return;let r=0;if(this.args!==null&&this.args.length>0&&(r=this.args.length),this.targetContent===null)return;let i=(0, Ri.asOrNull)(this.targetContent,Kh.FlowBase);if(r===0&&(i===null||!i.hasParameters))return;if(i===null&&r>0){this.Error("target needs to be a knot or stitch in order to pass arguments");return}else if(i!==null&&(i.args===null||!i.args&&r>0)){this.Error(`target (${i.name}) doesn't take parameters`);return}else if(this.parent instanceof zh.DivertTarget){r>0&&this.Error("can't store arguments in a divert target variable");return}let a=i.args.length;if(a!==r){let s;r===0?s="but there weren't any passed to it":r<a?s=`but only got ${r}`:s=`but got ${r}`,this.Error(`to '${i.identifier}' requires ${a} arguments, ${s}`);return}for(let s=0;s<a;++s){let o=i.args[s],u=this.args[s];if(o.isDivertTarget){let l=(0, Ri.asOrNull)(u,xy.VariableReference);if(!(u instanceof zh.DivertTarget)&&l===null)this.Error(`Target '${i.identifier}' expects a divert target for the parameter named -> ${o.identifier} but saw ${u}`,u);else if(l){let c=new Py.Path(l.pathIdentifiers);c.ResolveFromContext(l)&&this.Error(`Passing read count of '${c.dotSeparatedComponents}' instead of a divert target. You probably meant '${c}'`);}}}if(i===null){this.Error("Can't call as a function or with arguments unless it's a knot or stitch");return}},this.CheckExternalArgumentValidity=r=>{let i=this.target?this.target.firstComponent:null,a=r.externals.get(i);if(!a)throw new Error("external not found");let s=a.argumentNames.length,o=0;this.args&&(o=this.args.length),o!==s&&this.Error(`incorrect number of arguments sent to external function '${i}'. Expected ${s} but got ${o}`);},this.toString=()=>{let r="";if(this.target!==null)r+=this.target.toString();else return "-> <empty divert>";return this.isTunnel&&(r+=" ->"),this.isFunctionCall&&(r+=" ()"),r},e&&(this.target=e),t&&(this.args=t,this.AddContent(t));}get typeName(){return "Divert"}ResolveReferences(e){if(this.isEmpty||this.isEnd||this.isDone)return;if(!this.runtimeDivert)throw new Error;this.targetContent&&(this.runtimeDivert.targetPath=this.targetContent.runtimePath),super.ResolveReferences(e);let t=(0, Ri.asOrNull)(this.targetContent,Kh.FlowBase);t&&(!t.isFunction&&this.isFunctionCall?super.Error(`${t.identifier} hasn't been marked as a function, but it's being called as one. Do you need to declare the knot as '== function ${t.identifier} =='?`):t.isFunction&&!this.isFunctionCall&&!(this.parent instanceof zh.DivertTarget)&&super.Error(t.identifier+" can't be diverted to. It can only be called as a function since it's been marked as such: '"+t.identifier+"(...)'"));let r=this.targetContent!==null,i=false,a=false;if(this.target){if(this.target.numberOfComponents===1){if(!this.target.firstComponent)throw new Error;if(i=SP.FunctionCall.IsBuiltIn(this.target.firstComponent),a=e.IsExternal(this.target.firstComponent),i||a){this.isFunctionCall||super.Error(`${this.target.firstComponent} must be called as a function: ~ ${this.target.firstComponent}()`),a&&(this.runtimeDivert.isExternal=true,this.args!==null&&(this.runtimeDivert.externalArgs=this.args.length),this.runtimeDivert.pushesToStack=false,this.runtimeDivert.targetPath=new wP.Path(this.target.firstComponent),this.CheckExternalArgumentValidity(e));return}}}else throw new Error;this.runtimeDivert.variableDivertName==null&&!r&&!i&&!a&&this.Error(`target not found: '${this.target}'`);}Error(e,t=null,r=false){if(t!==this&&t){super.Error(e,t);return}this.isFunctionCall?super.Error(`Function call ${e}`,t,r):super.Error(`Divert ${e}`,t,r);}};Za.Divert=Xh;});var Oy=C(Qa=>{Object.defineProperty(Qa,"__esModule",{value:true});Qa.GatherPointToResolve=void 0;var Yh=class{constructor(e,t){this.divert=e,this.targetRuntimeObj=t;}};Qa.GatherPointToResolve=Yh;});var Fy=C(eo=>{Object.defineProperty(eo,"__esModule",{value:true});eo.SequenceDivertToResolve=void 0;var Zh=class{constructor(e,t){this.divert=e,this.targetContent=t;}};eo.SequenceDivertToResolve=Zh;});var Qh=C(to=>{Object.defineProperty(to,"__esModule",{value:true});to.SequenceType=void 0;var Ny;(function(n){n[n.Stopping=1]="Stopping",n[n.Cycle=2]="Cycle",n[n.Shuffle=4]="Shuffle",n[n.Once=8]="Once";})(Ny||(to.SequenceType=Ny={}));});var nd=C(io=>{Object.defineProperty(io,"__esModule",{value:true});io.Sequence=void 0;var Iy=de(),ft=xe(),ed=wt(),$i=ue(),no=bt(),PP=oe(),TP=Fy(),ro=Qh(),xP=Fn(),td=class extends PP.ParsedObject{constructor(e,t){super(),this.sequenceType=t,this._sequenceDivertsToResolve=[],this.GenerateRuntimeObject=()=>{let r=new Iy.Container;r.visitsShouldBeCounted=true,r.countingAtStartOnly=true,this._sequenceDivertsToResolve=[],r.AddContent(ft.ControlCommand.EvalStart()),r.AddContent(ft.ControlCommand.VisitIndex());let i=(this.sequenceType&ro.SequenceType.Once)>0,a=(this.sequenceType&ro.SequenceType.Cycle)>0,s=(this.sequenceType&ro.SequenceType.Stopping)>0,o=(this.sequenceType&ro.SequenceType.Shuffle)>0,u=this.sequenceElements.length;if(i&&(u+=1),s||i?(r.AddContent(new $i.IntValue(u-1)),r.AddContent(no.NativeFunctionCall.CallWithName("MIN"))):a&&(r.AddContent(new $i.IntValue(this.sequenceElements.length)),r.AddContent(no.NativeFunctionCall.CallWithName("%"))),o){let c=ft.ControlCommand.NoOp();if(i||s){let f=s?this.sequenceElements.length-1:this.sequenceElements.length;r.AddContent(ft.ControlCommand.Duplicate()),r.AddContent(new $i.IntValue(f)),r.AddContent(no.NativeFunctionCall.CallWithName("=="));let p=new ed.Divert;p.isConditional=true,r.AddContent(p),this.AddDivertToResolve(p,c);}let h=this.sequenceElements.length;s&&(h-=1),r.AddContent(new $i.IntValue(h)),r.AddContent(ft.ControlCommand.SequenceShuffleIndex()),(i||s)&&r.AddContent(c);}r.AddContent(ft.ControlCommand.EvalEnd());let l=ft.ControlCommand.NoOp();for(let c=0;c<u;c+=1){r.AddContent(ft.ControlCommand.EvalStart()),r.AddContent(ft.ControlCommand.Duplicate()),r.AddContent(new $i.IntValue(c)),r.AddContent(no.NativeFunctionCall.CallWithName("==")),r.AddContent(ft.ControlCommand.EvalEnd());let h=new ed.Divert;h.isConditional=true,r.AddContent(h);let f;c<this.sequenceElements.length?f=this.sequenceElements[c].runtimeObject:f=new Iy.Container,f.name=`s${c}`,f.InsertContent(ft.ControlCommand.PopEvaluatedValue(),0);let p=new ed.Divert;f.AddContent(p),r.AddToNamedContentOnly(f),this.AddDivertToResolve(h,f),this.AddDivertToResolve(p,l);}return r.AddContent(l),r},this.AddDivertToResolve=(r,i)=>{this._sequenceDivertsToResolve.push(new TP.SequenceDivertToResolve(r,i));},this.sequenceType=t,this.sequenceElements=[];for(let r of e){let i=r.content,a=null;i===null||i.length===0?a=r:a=new xP.Weave(i),this.sequenceElements.push(a),this.AddContent(a);}}get typeName(){return "Sequence"}ResolveReferences(e){super.ResolveReferences(e);for(let t of this._sequenceDivertsToResolve)t.divert.targetPath=t.targetContent.path;}};io.Sequence=td;});var id=C(so=>{Object.defineProperty(so,"__esModule",{value:true});so.TunnelOnwards=void 0;var OP=de(),Vi=xe(),FP=wt(),NP=ue(),IP=oe(),kP=Pn(),RP=X(),$P=_r(),rd=class extends IP.ParsedObject{constructor(){super(...arguments),this._overrideDivertTarget=null,this._divertAfter=null,this.GenerateRuntimeObject=()=>{let e=new OP.Container;if(e.AddContent(Vi.ControlCommand.EvalStart()),this.divertAfter){let t=this.divertAfter.GenerateRuntimeObject(),r=t;if(r){let a=this.divertAfter.args;if(a!==null&&a.length>0){let s=-1,o=-1;for(let u=0;u<r.content.length;u+=1){let l=r.content[u];l&&(s==-1&&l.commandType===Vi.ControlCommand.CommandType.EvalStart?s=u:l.commandType===Vi.ControlCommand.CommandType.EvalEnd&&(o=u));}for(let u=s+1;u<o;u+=1){let l=r.content[u];l.parent=null,e.AddContent(r.content[u]);}}}let i=(0, RP.asOrNull)(t,FP.Divert);if(i!=null&&i.hasVariableTarget){let a=new $P.VariableReference(i.variableDivertName);e.AddContent(a);}else this._overrideDivertTarget=new NP.DivertTargetValue,e.AddContent(this._overrideDivertTarget);}else e.AddContent(new kP.Void);return e.AddContent(Vi.ControlCommand.EvalEnd()),e.AddContent(Vi.ControlCommand.PopTunnel()),e},this.toString=()=>` -> ${this._divertAfter}`;}get divertAfter(){return this._divertAfter}set divertAfter(e){this._divertAfter=e,this._divertAfter&&this.AddContent(this._divertAfter);}get typeName(){return "TunnelOnwards"}ResolveReferences(e){super.ResolveReferences(e),this.divertAfter&&this.divertAfter.targetContent&&(this._overrideDivertTarget.targetPath=this.divertAfter.targetContent.runtimePath);}};so.TunnelOnwards=rd;});var od=C(ao=>{Object.defineProperty(ao,"__esModule",{value:true});ao.ListDefinition=void 0;var sd=He(),ad=class{constructor(e,t){this._name=e||"",this._items=null,this._itemNameToValues=t||new Map;}get name(){return this._name}get items(){if(this._items==null){this._items=new Map;for(let[e,t]of this._itemNameToValues){let r=new sd.InkListItem(this.name,e);this._items.set(r.serialized(),t);}}return this._items}ValueForItem(e){if(!e.itemName)return 0;let t=this._itemNameToValues.get(e.itemName);return typeof t<"u"?t:0}ContainsItem(e){return !e.itemName||e.originName!=this.name?false:this._itemNameToValues.has(e.itemName)}ContainsItemWithName(e){return this._itemNameToValues.has(e)}TryGetItemWithValue(e,t){for(let[r,i]of this._itemNameToValues)if(i==e)return t=new sd.InkListItem(this.name,r),{result:t,exists:true};return t=sd.InkListItem.Null,{result:t,exists:false}}TryGetValueForItem(e,t){if(!e.itemName)return {result:0,exists:false};let r=this._itemNameToValues.get(e.itemName);return r?{result:r,exists:true}:{result:0,exists:false}}};ao.ListDefinition=ad;});var uo=C(oo=>{Object.defineProperty(oo,"__esModule",{value:true});oo.ListDefinition=void 0;var VP=He(),jP=He(),qP=od(),LP=ue(),BP=oe(),WP=$t(),ud=class extends BP.ParsedObject{get typeName(){return "ListDefinition"}get runtimeListDefinition(){var e;let t=new Map;for(let r of this.itemDefinitions)t.has(r.name)?this.Error(`List '${this.identifier}' contains duplicate items called '${r.name}'`):t.set(r.name,r.seriesValue);return new qP.ListDefinition(((e=this.identifier)===null||e===void 0?void 0:e.name)||"",t)}constructor(e){super(),this.itemDefinitions=e,this.identifier=null,this.variableAssignment=null,this._elementsByName=null,this.ItemNamed=r=>{if(this._elementsByName===null){this._elementsByName=new Map;for(let a of this.itemDefinitions)this._elementsByName.set(a.name,a);}return this._elementsByName.get(r)||null},this.GenerateRuntimeObject=()=>{var r,i;let a=new VP.InkList;for(let s of this.itemDefinitions)if(s.inInitialList){let o=new jP.InkListItem(((r=this.identifier)===null||r===void 0?void 0:r.name)||null,s.name||null);a.Add(o,s.seriesValue);}return a.SetInitialOriginName(((i=this.identifier)===null||i===void 0?void 0:i.name)||""),new LP.ListValue(a)};let t=1;for(let r of this.itemDefinitions)r.explicitValue!==null&&(t=r.explicitValue),r.seriesValue=t,t+=1;this.AddContent(e);}ResolveReferences(e){super.ResolveReferences(e),e.CheckForNamingCollisions(this,this.identifier,WP.SymbolType.List);}};oo.ListDefinition=ud;});var cd=C(lo=>{Object.defineProperty(lo,"__esModule",{value:true});lo.VariableAssignment=void 0;var MP=de(),GP=Ni(),JP=uo(),HP=oe(),ky=$t(),UP=Zt(),zP=Sr(),KP=X(),ld=class extends HP.ParsedObject{get variableName(){return this.variableIdentifier.name}get typeName(){return this.isNewTemporaryDeclaration?"temp":this.isGlobalDeclaration?this.listDefinition!==null?"LIST":"VAR":"variable assignment"}get isDeclaration(){return this.isGlobalDeclaration||this.isNewTemporaryDeclaration}constructor({assignedExpression:e,isGlobalDeclaration:t,isTemporaryNewDeclaration:r,listDef:i,variableIdentifier:a}){super(),this._runtimeAssignment=null,this.expression=null,this.listDefinition=null,this.GenerateRuntimeObject=()=>{let s=null;if(this.isGlobalDeclaration?s=this.story:this.isNewTemporaryDeclaration&&(s=(0, GP.ClosestFlowBase)(this)),s&&s.AddNewVariableDeclaration(this),this.isGlobalDeclaration)return null;let o=new MP.Container;return this.expression?o.AddContent(this.expression.runtimeObject):this.listDefinition&&o.AddContent(this.listDefinition.runtimeObject),this._runtimeAssignment=new UP.VariableAssignment(this.variableName,this.isNewTemporaryDeclaration),o.AddContent(this._runtimeAssignment),o},this.toString=()=>`${this.isGlobalDeclaration?"VAR":this.isNewTemporaryDeclaration?"~ temp":""} ${this.variableName}`,this.variableIdentifier=a,this.isGlobalDeclaration=!!t,this.isNewTemporaryDeclaration=!!r,i instanceof JP.ListDefinition?(this.listDefinition=this.AddContent(i),this.listDefinition.variableAssignment=this,this.isGlobalDeclaration=true):e&&(this.expression=this.AddContent(e));}ResolveReferences(e){if(super.ResolveReferences(e),this.isDeclaration&&this.listDefinition===null&&e.CheckForNamingCollisions(this,this.variableIdentifier,this.isGlobalDeclaration?ky.SymbolType.Var:ky.SymbolType.Temp),this.isGlobalDeclaration){let t=(0, KP.asOrNull)(this.expression,zP.VariableReference);t&&!t.isConstantReference&&!t.isListItemReference&&this.Error("global variable assignments cannot refer to other variables, only literal values, constants and list items");}if(!this.isNewTemporaryDeclaration){let t=e.ResolveVariableWithName(this.variableName,this);t.found||(this.variableName in this.story.constants?this.Error(`Can't re-assign to a constant (do you need to use VAR when declaring '${this.variableName}'?)`,this):this.Error(`Variable could not be found to assign to: '${this.variableName}'`,this)),this._runtimeAssignment&&(this._runtimeAssignment.isGlobal=t.isGlobal);}}};lo.VariableAssignment=ld;});var Fn=C(fo=>{Object.defineProperty(fo,"__esModule",{value:true});fo.Weave=void 0;var Ry=Us(),it=gr(),co=xa(),XP=Na(),YP=de(),ho=Er(),ZP=wt(),QP=vr(),eT=Dt(),Tt=Fi(),tT=Oy(),nT=oe(),hd=nd(),rT=en(),iT=id(),sT=cd(),st=X(),dd=class n extends nT.ParsedObject{get rootContainer(){return this._rootContainer||(this._rootContainer=this.GenerateRuntimeObject()),this._rootContainer}get namedWeavePoints(){return this._namedWeavePoints}get lastParsedSignificantObject(){if(this.content.length===0)return null;let e=null;for(let r=this.content.length-1;r>=0;--r){e=this.content[r];let i=(0, st.asOrNull)(e,rT.Text);if(!(i&&i.text===`
22
+ `)&&!this.IsGlobalDeclaration(e))break}let t=(0, st.asOrNull)(e,n);return t&&(e=t.lastParsedSignificantObject),e}constructor(e,t=-1){super(),this.previousWeavePoint=null,this.addContentToPreviousWeavePoint=false,this.hasSeenChoiceInSection=false,this.currentContainer=null,this._unnamedGatherCount=0,this._choiceCount=0,this._rootContainer=null,this._namedWeavePoints=new Map,this.looseEnds=[],this.gatherPointsToResolve=[],this.ResolveWeavePointNaming=()=>{var r,i,a;let s=[...this.FindAll(Tt.Gather)(o=>!(o.name===null||o.name===void 0)),...this.FindAll(it.Choice)(o=>!(o.name===null||o.name===void 0))];this._namedWeavePoints=new Map;for(let o of s){let u=this.namedWeavePoints.get(((r=o.identifier)===null||r===void 0?void 0:r.name)||"");if(u){let l=u instanceof Tt.Gather?"gather":"choice",c=u;this.Error(`A ${l} with the same label name '${o.name}' already exists in this context on line ${c.debugMetadata?c.debugMetadata.startLineNumber:"NO DEBUG METADATA AVAILABLE"}`,o);}!((i=o.identifier)===null||i===void 0)&&i.name&&this.namedWeavePoints.set((a=o.identifier)===null||a===void 0?void 0:a.name,o);}},this.ConstructWeaveHierarchyFromIndentation=()=>{let r=0;for(;r<this.content.length;){let i=this.content[r];if(i instanceof it.Choice||i instanceof Tt.Gather){let s=i.indentationDepth-1;if(s>this.baseIndentIndex){let o=r;for(;r<this.content.length;){let h=(0, st.asOrNull)(this.content[r],it.Choice)||(0, st.asOrNull)(this.content[r],Tt.Gather);if(h!==null&&h.indentationDepth-1<=this.baseIndentIndex)break;r+=1;}let u=r-o,l=this.content.slice(o,o+u);this.content.splice(o,u);let c=new n(l,s);this.InsertContent(o,c),r=o;}}r+=1;}},this.DetermineBaseIndentationFromContent=r=>{for(let i of r)if(i instanceof it.Choice||i instanceof Tt.Gather)return i.indentationDepth-1;return 0},this.GenerateRuntimeObject=()=>{this._rootContainer=new YP.Container,this.currentContainer=this._rootContainer,this.looseEnds=[],this.gatherPointsToResolve=[];for(let r of this.content)if(r instanceof it.Choice||r instanceof Tt.Gather)this.AddRuntimeForWeavePoint(r);else if(r instanceof n){let i=r;this.AddRuntimeForNestedWeave(i),this.gatherPointsToResolve.splice(0,0,...i.gatherPointsToResolve);}else this.AddGeneralRuntimeContent(r.runtimeObject);return this.PassLooseEndsToAncestors(),this._rootContainer},this.AddRuntimeForGather=r=>{let i=!this.hasSeenChoiceInSection;this.hasSeenChoiceInSection=false;let a=r.runtimeContainer;if(r.name||(a.name=`g-${this._unnamedGatherCount}`,this._unnamedGatherCount+=1),i){if(!this.currentContainer)throw new Error;this.currentContainer.AddContent(a);}else this.rootContainer.AddToNamedContentOnly(a);for(let s of this.looseEnds){let o=s;if(o instanceof Tt.Gather&&o.indentationDepth==r.indentationDepth)continue;let u=null;if(o instanceof ho.Divert)u=o.runtimeObject;else {u=new ZP.Divert;let l=o;if(!l.runtimeContainer)throw new Error;l.runtimeContainer.AddContent(u);}this.gatherPointsToResolve.push(new tT.GatherPointToResolve(u,a));}this.looseEnds=[],this.currentContainer=a;},this.AddRuntimeForWeavePoint=r=>{if(r instanceof Tt.Gather)this.AddRuntimeForGather(r);else if(r instanceof it.Choice){if(!this.currentContainer)throw new Error;this.previousWeavePoint instanceof Tt.Gather&&this.looseEnds.splice(this.looseEnds.indexOf(this.previousWeavePoint),1);let i=r;if(this.currentContainer.AddContent(i.runtimeObject),!i.innerContentContainer)throw new Error;i.innerContentContainer.name=`c-${this._choiceCount}`,this.currentContainer.AddToNamedContentOnly(i.innerContentContainer),this._choiceCount+=1,this.hasSeenChoiceInSection=true;}this.addContentToPreviousWeavePoint=false,this.WeavePointHasLooseEnd(r)&&(this.looseEnds.push(r),(0, st.asOrNull)(r,it.Choice)&&(this.addContentToPreviousWeavePoint=true)),this.previousWeavePoint=r;},this.AddRuntimeForNestedWeave=r=>{this.AddGeneralRuntimeContent(r.rootContainer),this.previousWeavePoint!==null&&(this.looseEnds.splice(this.looseEnds.indexOf(this.previousWeavePoint),1),this.addContentToPreviousWeavePoint=false);},this.AddGeneralRuntimeContent=r=>{if(r!==null)if(this.addContentToPreviousWeavePoint){if(!this.previousWeavePoint||!this.previousWeavePoint.runtimeContainer)throw new Error;this.previousWeavePoint.runtimeContainer.AddContent(r);}else {if(!this.currentContainer)throw new Error;this.currentContainer.AddContent(r);}},this.PassLooseEndsToAncestors=()=>{if(this.looseEnds.length===0)return;let r=null,i=null,a=false;for(let s=this.parent;s!==null;s=s.parent){let o=(0, st.asOrNull)(s,n);o&&(!a&&r===null&&(r=o),a&&i===null&&(i=o)),(s instanceof hd.Sequence||s instanceof co.Conditional)&&(a=true);}if(!(r===null&&i===null))for(let s=this.looseEnds.length-1;s>=0;s-=1){let o=this.looseEnds[s],u=false;if(a){if(o instanceof it.Choice&&r!==null)r.ReceiveLooseEnd(o),u=true;else if(!(o instanceof it.Choice)){let l=r||i;l!==null&&(l.ReceiveLooseEnd(o),u=true);}}else r?.hasOwnProperty("ReceiveLooseEnd")&&r.ReceiveLooseEnd(o),u=true;u&&this.looseEnds.splice(s,1);}},this.ReceiveLooseEnd=r=>{this.looseEnds.push(r);},this.WeavePointNamed=r=>{if(!this.namedWeavePoints)return null;let i=this.namedWeavePoints.get(r);return i||null},this.IsGlobalDeclaration=r=>{let i=(0, st.asOrNull)(r,sT.VariableAssignment);return !!(i&&i.isGlobalDeclaration&&i.isDeclaration||(0, st.asOrNull)(r,XP.ConstantDeclaration))},this.ContentThatFollowsWeavePoint=r=>{let i=[],a=r;if(a.content!==null)for(let u of a.content)this.IsGlobalDeclaration(u)||i.push(u);let s=(0, st.asOrNull)(a.parent,n);if(s===null)throw new Error("Expected weave point parent to be weave?");let o=s.content.indexOf(a);for(let u=o+1;u<s.content.length;u+=1){let l=s.content[u];if(!this.IsGlobalDeclaration(l)){if(l instanceof it.Choice||l instanceof Tt.Gather||l instanceof n)break;i.push(l);}}return i},this.ValidateTermination=r=>{if(this.lastParsedSignificantObject instanceof Ry.AuthorWarning)return;if(this.looseEnds!==null&&this.looseEnds.length>0)for(let a of this.looseEnds){let s=this.ContentThatFollowsWeavePoint(a);this.ValidateFlowOfObjectsTerminates(s,a,r);}else {for(let a of this.content)if(a instanceof it.Choice||a instanceof ho.Divert)return;this.ValidateFlowOfObjectsTerminates(this.content,this,r);}},this.BadNestedTerminationHandler=r=>{let i=null;for(let s=r.parent;s!==null;s=s.parent)if(s instanceof hd.Sequence||s instanceof co.Conditional){i=(0, st.asOrNull)(s,co.Conditional);break}let a="Choices nested in conditionals or sequences need to explicitly divert afterwards.";i!==null&&i.FindAll(it.Choice)().length===1&&(a=`Choices with conditions should be written: '* {condition} choice'. Otherwise, ${a.toLowerCase()}`),this.Error(a,r);},this.ValidateFlowOfObjectsTerminates=(r,i,a)=>{let s=false,o=i;for(let u of r){if(u.Find(ho.Divert)(c=>!c.isThread&&!c.isTunnel&&!c.isFunctionCall&&!(c.parent instanceof QP.DivertTarget))!==null&&(s=true),u.Find(iT.TunnelOnwards)()!=null){s=true;break}o=u;}if(!s){if(o instanceof Ry.AuthorWarning)return;a(o);}},this.WeavePointHasLooseEnd=r=>{if(r.content===null)return true;for(let i=r.content.length-1;i>=0;--i){let a=(0, st.asOrNull)(r.content[i],ho.Divert);if(a&&!(a.isThread||a.isTunnel||a.isFunctionCall))return false}return true},this.CheckForWeavePointNamingCollisions=()=>{if(!this.namedWeavePoints)return;let r=[];for(let i of this.ancestry){let a=(0, st.asOrNull)(i,eT.FlowBase);if(a)r.push(a);else break}for(let[i,a]of this.namedWeavePoints)for(let s of r){let o=s.ContentWithNameAtLevel(i);if(o&&o!==a){let u=`${a.GetType()} '${i}' has the same label name as a ${o.GetType()} (on ${o.debugMetadata})`;this.Error(u,a);}}},t==-1?this.baseIndentIndex=this.DetermineBaseIndentationFromContent(e):this.baseIndentIndex=t,this.AddContent(e),this.ConstructWeaveHierarchyFromIndentation();}get typeName(){return "Weave"}ResolveReferences(e){if(super.ResolveReferences(e),this.looseEnds!==null&&this.looseEnds.length>0){let t=false;for(let r=this.parent;r!==null;r=r.parent)if(r instanceof hd.Sequence||r instanceof co.Conditional){t=true;break}t&&this.ValidateTermination(this.BadNestedTerminationHandler);}for(let t of this.gatherPointsToResolve)t.divert.targetPath=t.targetRuntimeObj.path;this.CheckForWeavePointNamingCollisions();}};fo.Weave=dd;});var Uh=C(mo=>{Object.defineProperty(mo,"__esModule",{value:true});mo.ConditionalSingleBranch=void 0;var $y=de(),po=xe(),Vy=wt(),aT=oe(),oT=bt(),uT=ue(),lT=en(),cT=Fn(),hT=X(),fd=class extends aT.ParsedObject{get ownExpression(){return this._ownExpression}set ownExpression(e){this._ownExpression=e,this._ownExpression&&this.AddContent(this._ownExpression);}constructor(e){super(),this._contentContainer=null,this._conditionalDivert=null,this._ownExpression=null,this._innerWeave=null,this.isTrueBranch=false,this.matchingEquality=false,this.isElse=false,this.isInline=false,this.returnDivert=null,this.GenerateRuntimeObject=()=>{if(this._innerWeave)for(let i of this._innerWeave.content){let a=(0, hT.asOrNull)(i,lT.Text);a&&a.text.startsWith("else:")&&this.Warning("Saw the text 'else:' which is being treated as content. Did you mean '- else:'?",a);}let t=new $y.Container,r=this.matchingEquality&&!this.isElse;if(r&&t.AddContent(po.ControlCommand.Duplicate()),this._conditionalDivert=new Vy.Divert,this._conditionalDivert.isConditional=!this.isElse,!this.isTrueBranch&&!this.isElse){let i=this.ownExpression!==null;i&&t.AddContent(po.ControlCommand.EvalStart()),this.ownExpression&&this.ownExpression.GenerateIntoContainer(t),this.matchingEquality&&t.AddContent(oT.NativeFunctionCall.CallWithName("==")),i&&t.AddContent(po.ControlCommand.EvalEnd());}return t.AddContent(this._conditionalDivert),this._contentContainer=this.GenerateRuntimeForContent(),this._contentContainer.name="b",this.isInline||this._contentContainer.InsertContent(new uT.StringValue(`
23
+ `),0),(r||this.isElse&&this.matchingEquality)&&this._contentContainer.InsertContent(po.ControlCommand.PopEvaluatedValue(),0),t.AddToNamedContentOnly(this._contentContainer),this.returnDivert=new Vy.Divert,this._contentContainer.AddContent(this.returnDivert),t},this.GenerateRuntimeForContent=()=>this._innerWeave===null?new $y.Container:this._innerWeave.rootContainer,e&&(this._innerWeave=new cT.Weave(e),this.AddContent(this._innerWeave));}get typeName(){return "ConditionalSingleBranch"}ResolveReferences(e){if(!this._conditionalDivert||!this._contentContainer)throw new Error;this._conditionalDivert.targetPath=this._contentContainer.path,super.ResolveReferences(e);}};mo.ConditionalSingleBranch=fd;});var qy=C(go=>{Object.defineProperty(go,"__esModule",{value:true});go.CustomFlags=void 0;var jy;(function(n){n[n.ParsingString=1]="ParsingString",n[n.TagActive=2]="TagActive";})(jy||(go.CustomFlags=jy={}));});var Ly=C(yo=>{Object.defineProperty(yo,"__esModule",{value:true});yo.DebugMetadata=void 0;var pd=class n{constructor(){this.startLineNumber=0,this.endLineNumber=0,this.startCharacterNumber=0,this.endCharacterNumber=0,this.fileName=null,this.sourceName=null;}Merge(e){let t=new n;return t.fileName=this.fileName,t.sourceName=this.sourceName,this.startLineNumber<e.startLineNumber?(t.startLineNumber=this.startLineNumber,t.startCharacterNumber=this.startCharacterNumber):this.startLineNumber>e.startLineNumber?(t.startLineNumber=e.startLineNumber,t.startCharacterNumber=e.startCharacterNumber):(t.startLineNumber=this.startLineNumber,t.startCharacterNumber=Math.min(this.startCharacterNumber,e.startCharacterNumber)),this.endLineNumber>e.endLineNumber?(t.endLineNumber=this.endLineNumber,t.endCharacterNumber=this.endCharacterNumber):this.endLineNumber<e.endLineNumber?(t.endLineNumber=e.endLineNumber,t.endCharacterNumber=e.endCharacterNumber):(t.endLineNumber=this.endLineNumber,t.endCharacterNumber=Math.max(this.endCharacterNumber,e.endCharacterNumber)),t}toString(){return this.fileName!==null?`line ${this.startLineNumber} of ${this.fileName}"`:"line "+this.startLineNumber}};yo.DebugMetadata=pd;});var By=C(Co=>{Object.defineProperty(Co,"__esModule",{value:true});Co.ExternalDeclaration=void 0;var dT=oe(),md=class extends dT.ParsedObject{get name(){var e;return ((e=this.identifier)===null||e===void 0?void 0:e.name)||null}constructor(e,t){super(),this.identifier=e,this.argumentNames=t,this.GenerateRuntimeObject=()=>(this.story.AddExternal(this),null);}get typeName(){return "EXTERNAL"}toString(){var e;return `EXTERNAL ${(e=this.identifier)===null||e===void 0?void 0:e.name}`}};Co.ExternalDeclaration=md;});var Wy=C(vo=>{Object.defineProperty(vo,"__esModule",{value:true});vo.FlowDecl=void 0;var gd=class{constructor(e,t,r){this.name=e,this.args=t,this.isFunction=r;}};vo.FlowDecl=gd;});var Cd=C(Eo=>{Object.defineProperty(Eo,"__esModule",{value:true});Eo.Wrap=void 0;var fT=oe(),yd=class extends fT.ParsedObject{constructor(e){super(),this._objToWrap=e,this.GenerateRuntimeObject=()=>this._objToWrap;}};Eo.Wrap=yd;});var My=C(_o=>{Object.defineProperty(_o,"__esModule",{value:true});_o.Glue=void 0;var pT=Cd(),vd=class extends pT.Wrap{constructor(e){super(e);}get typeName(){return "Glue"}};_o.Glue=vd;});var bo=C(So=>{Object.defineProperty(So,"__esModule",{value:true});So.Glue=void 0;var mT=Ge(),Ed=class extends mT.InkObject{toString(){return "Glue"}};So.Glue=Ed;});var Jy=C(wo=>{Object.defineProperty(wo,"__esModule",{value:true});wo.IncDecExpression=void 0;var gT=Ma(),Gy=nt(),yT=Dt(),CT=bt(),vT=ue(),ET=Zt(),_T=_r(),ST=Fn(),_d=class extends Gy.Expression{constructor(e,t,r){super(),this.varIdentifier=e,this._runtimeAssignment=null,this.expression=null,this.GenerateIntoContainer=i=>{var a,s;i.AddContent(new _T.VariableReference(((a=this.varIdentifier)===null||a===void 0?void 0:a.name)||null)),this.expression?this.expression.GenerateIntoContainer(i):i.AddContent(new vT.IntValue(1)),i.AddContent(CT.NativeFunctionCall.CallWithName(this.isInc?"+":"-")),this._runtimeAssignment=new ET.VariableAssignment(((s=this.varIdentifier)===null||s===void 0?void 0:s.name)||null,false),i.AddContent(this._runtimeAssignment);},this.toString=()=>{var i,a;return this.expression?`${(i=this.varIdentifier)===null||i===void 0?void 0:i.name}${this.isInc?" += ":" -= "}${this.expression}`:`${(a=this.varIdentifier)===null||a===void 0?void 0:a.name}`+(this.isInc?"++":"--")},t instanceof Gy.Expression?(this.expression=t,this.AddContent(this.expression),this.isInc=!!r):this.isInc=t;}get typeName(){return "IncDecExpression"}ResolveReferences(e){var t;super.ResolveReferences(e);let r=e.ResolveVariableWithName(((t=this.varIdentifier)===null||t===void 0?void 0:t.name)||"",this);if(r.found||this.Error(`variable for ${this.incrementDecrementWord} could not be found: '${this.varIdentifier}' after searching: {this.descriptionOfScope}`),!this._runtimeAssignment)throw new Error;this._runtimeAssignment.isGlobal=r.isGlobal,!(this.parent instanceof ST.Weave)&&!(this.parent instanceof yT.FlowBase)&&!(this.parent instanceof gT.ContentList)&&this.Error(`Can't use ${this.incrementDecrementWord} as sub-expression`);}get incrementDecrementWord(){return this.isInc?"increment":"decrement"}};wo.IncDecExpression=_d;});var bd=C(Do=>{Object.defineProperty(Do,"__esModule",{value:true});Do.IncludedFile=void 0;var bT=oe(),Sd=class extends bT.ParsedObject{constructor(e){super(),this.includedStory=e,this.GenerateRuntimeObject=()=>null;}get typeName(){return "IncludedFile"}};Do.IncludedFile=Sd;});var Hy=C(Ao=>{Object.defineProperty(Ao,"__esModule",{value:true});Ao.InfixOperator=void 0;var wd=class{constructor(e,t,r){this.type=e,this.precedence=t,this.requireWhitespace=r,this.toString=()=>this.type;}};Ao.InfixOperator=wd;});var Ad=C(Po=>{Object.defineProperty(Po,"__esModule",{value:true});Po.Knot=void 0;var wT=Dt(),Uy=yr(),Dd=class extends wT.FlowBase{get flowLevel(){return Uy.FlowLevel.Knot}constructor(e,t,r,i){super(e,t,r,i);}get typeName(){return this.isFunction?"Function":"Knot"}ResolveReferences(e){super.ResolveReferences(e);let t=this.story;for(let r in this.subFlowsByName){let i=t.ContentWithNameAtLevel(r,Uy.FlowLevel.Knot,false);if(i){let a=this.subFlowsByName.get(r),s=`Stitch '${a?a.name:"NO STITCH FOUND"}' has the same name as a knot (on ${i.debugMetadata})`;this.Error(s,a);}}}};Po.Knot=Dd;});var zy=C(To=>{Object.defineProperty(To,"__esModule",{value:true});To.List=void 0;var DT=nt(),AT=He(),PT=He(),TT=ue(),Pd=class extends DT.Expression{constructor(e){super(),this.itemIdentifierList=e,this.GenerateIntoContainer=t=>{var r,i;let a=new AT.InkList;if(this.itemIdentifierList!=null)for(let s of this.itemIdentifierList){let o=((r=s?.name)===null||r===void 0?void 0:r.split("."))||[],u=null,l="";o.length>1?(u=o[0],l=o[1]):l=o[0];let c=this.story.ResolveListItem(u,l,this);if(c===null)u===null?this.Error(`Could not find list definition that contains item '${s}'`):this.Error(`Could not find list item ${s}`);else {if(c.parent==null){this.Error(`Could not find list definition for item ${s}`);return}u||(u=((i=c.parent.identifier)===null||i===void 0?void 0:i.name)||null);let h=new PT.InkListItem(u,c.name||null);a.has(h.serialized())?this.Warning(`Duplicate of item '${s}' in list.`):a.Add(h,c.seriesValue);}}t.AddContent(new TT.ListValue(a));};}get typeName(){return "List"}};To.List=Pd;});var xd=C(xo=>{Object.defineProperty(xo,"__esModule",{value:true});xo.ListElementDefinition=void 0;var xT=oe(),OT=$t(),Td=class extends xT.ParsedObject{get fullName(){var e;let t=this.parent;if(t===null)throw new Error("Can't get full name without a parent list.");return `${(e=t.identifier)===null||e===void 0?void 0:e.name}.${this.name}`}get typeName(){return "ListElement"}get name(){var e;return ((e=this.indentifier)===null||e===void 0?void 0:e.name)||null}constructor(e,t,r=null){super(),this.indentifier=e,this.inInitialList=t,this.explicitValue=r,this.seriesValue=0,this.parent=null,this.GenerateRuntimeObject=()=>{throw new Error("Not implemented.")},this.toString=()=>this.fullName,this.parent=this.parent;}ResolveReferences(e){super.ResolveReferences(e),e.CheckForNamingCollisions(this,this.indentifier,OT.SymbolType.ListItem);}};xo.ListElementDefinition=Td;});var Od=C(Oo=>{Object.defineProperty(Oo,"__esModule",{value:true});Oo.StatementLevel=void 0;var Ky;(function(n){n[n.InnerBlock=0]="InnerBlock",n[n.Stitch=1]="Stitch",n[n.Knot=2]="Knot",n[n.Top=3]="Top";})(Ky||(Oo.StatementLevel=Ky={}));});var Nd=C(Fo=>{Object.defineProperty(Fo,"__esModule",{value:true});Fo.Stitch=void 0;var FT=Dt(),NT=yr(),Fd=class extends FT.FlowBase{get flowLevel(){return NT.FlowLevel.Stitch}constructor(e,t,r,i){super(e,t,r,i),this.baseToString=this.toString,this.toString=()=>`${this.parent!==null?this.parent+" > ":""}${this.baseToString()}`;}get typeName(){return "Stitch"}};Fo.Stitch=Fd;});var Io=C(No=>{Object.defineProperty(No,"__esModule",{value:true});No.Tag=void 0;var IT=Ge(),Id=class extends IT.InkObject{constructor(e){super(),this.text=e.toString()||"";}toString(){return "# "+this.text}};No.Tag=Id;});var Rd=C(ko=>{Object.defineProperty(ko,"__esModule",{value:true});ko.Choice=void 0;var kT=Me(),RT=Te(),$T=Ge(),kd=class n extends $T.InkObject{constructor(){super(...arguments),this.text="",this.index=0,this.threadAtGeneration=null,this.sourcePath="",this.targetPath=null,this.isInvisibleDefault=false,this.tags=null,this.originalThreadIndex=0;}get pathStringOnChoice(){return this.targetPath===null?(0, RT.throwNullException)("Choice.targetPath"):this.targetPath.toString()}set pathStringOnChoice(e){this.targetPath=new kT.Path(e);}Clone(){let e=new n;return e.text=this.text,e.sourcePath=this.sourcePath,e.index=this.index,e.targetPath=this.targetPath,e.originalThreadIndex=this.originalThreadIndex,e.isInvisibleDefault=this.isInvisibleDefault,this.threadAtGeneration!==null&&(e.threadAtGeneration=this.threadAtGeneration.Copy()),e}};ko.Choice=kd;});var Vd=C(Ro=>{Object.defineProperty(Ro,"__esModule",{value:true});Ro.ListDefinitionsOrigin=void 0;var VT=He(),jT=ue(),qT=Te(),$d=class{constructor(e){this._lists=new Map,this._allUnambiguousListValueCache=new Map;for(let t of e){this._lists.set(t.name,t);for(let[r,i]of t.items){let a=VT.InkListItem.fromSerializedKey(r),s=new jT.ListValue(a,i);if(!a.itemName)throw new Error("item.itemName is null or undefined.");this._allUnambiguousListValueCache.set(a.itemName,s),this._allUnambiguousListValueCache.set(a.fullName,s);}}}get lists(){let e=[];for(let[,t]of this._lists)e.push(t);return e}TryListGetDefinition(e,t){if(e===null)return {result:t,exists:false};let r=this._lists.get(e);return r?{result:r,exists:true}:{result:t,exists:false}}FindSingleItemListWithName(e){if(e===null)return (0, qT.throwNullException)("name");let t=this._allUnambiguousListValueCache.get(e);return typeof t<"u"?t:null}};Ro.ListDefinitionsOrigin=$d;});var wr=C(qo=>{Object.defineProperty(qo,"__esModule",{value:true});qo.JsonSerialisation=void 0;var $o=de(),ze=ue(),Xy=bo(),U=xe(),br=Tn(),Yy=wt(),Zy=ma(),jd=_r(),Qy=Zt(),qd=bt(),e0=Pn(),t0=Io(),LT=Me(),n0=Rd(),BT=od(),WT=Vd(),Vo=He(),fe=X(),Nn=Te(),jo=class n{static JArrayToRuntimeObjList(e,t=false){let r=e.length;t&&r--;let i=[];for(let a=0;a<r;a++){let s=e[a],o=this.JTokenToRuntimeObject(s);if(o===null)return (0, Nn.throwNullException)("runtimeObj");i.push(o);}return i}static WriteDictionaryRuntimeObjs(e,t){e.WriteObjectStart();for(let[r,i]of t)e.WritePropertyStart(r),this.WriteRuntimeObject(e,i),e.WritePropertyEnd();e.WriteObjectEnd();}static WriteListRuntimeObjs(e,t){e.WriteArrayStart();for(let r of t)this.WriteRuntimeObject(e,r);e.WriteArrayEnd();}static WriteIntDictionary(e,t){e.WriteObjectStart();for(let[r,i]of t)e.WriteIntProperty(r,i);e.WriteObjectEnd();}static WriteRuntimeObject(e,t){let r=(0, fe.asOrNull)(t,$o.Container);if(r){this.WriteRuntimeContainer(e,r);return}let i=(0, fe.asOrNull)(t,Yy.Divert);if(i){let y="->";i.isExternal?y="x()":i.pushesToStack&&(i.stackPushType==br.PushPopType.Function?y="f()":i.stackPushType==br.PushPopType.Tunnel&&(y="->t->"));let S;i.hasVariableTarget?S=i.variableDivertName:S=i.targetPathString,e.WriteObjectStart(),e.WriteProperty(y,S),i.hasVariableTarget&&e.WriteProperty("var",true),i.isConditional&&e.WriteProperty("c",true),i.externalArgs>0&&e.WriteIntProperty("exArgs",i.externalArgs),e.WriteObjectEnd();return}let a=(0, fe.asOrNull)(t,Zy.ChoicePoint);if(a){e.WriteObjectStart(),e.WriteProperty("*",a.pathStringOnChoice),e.WriteIntProperty("flg",a.flags),e.WriteObjectEnd();return}let s=(0, fe.asOrNull)(t,ze.BoolValue);if(s){e.WriteBool(s.value);return}let o=(0, fe.asOrNull)(t,ze.IntValue);if(o){e.WriteInt(o.value);return}let u=(0, fe.asOrNull)(t,ze.FloatValue);if(u){e.WriteFloat(u.value);return}let l=(0, fe.asOrNull)(t,ze.StringValue);if(l){l.isNewline?e.Write(`
24
24
  `,false):(e.WriteStringStart(),e.WriteStringInner("^"),e.WriteStringInner(l.value),e.WriteStringEnd());return}let c=(0, fe.asOrNull)(t,ze.ListValue);if(c){this.WriteInkList(e,c);return}let h=(0, fe.asOrNull)(t,ze.DivertTargetValue);if(h){if(e.WriteObjectStart(),h.value===null)return (0, Nn.throwNullException)("divTargetVal.value");e.WriteProperty("^->",h.value.componentsString),e.WriteObjectEnd();return}let f=(0, fe.asOrNull)(t,ze.VariablePointerValue);if(f){e.WriteObjectStart(),e.WriteProperty("^var",f.value),e.WriteIntProperty("ci",f.contextIndex),e.WriteObjectEnd();return}if((0, fe.asOrNull)(t,Xy.Glue)){e.Write("<>");return}let m=(0, fe.asOrNull)(t,U.ControlCommand);if(m){e.Write(n._controlCommandNames[m.commandType]);return}let g=(0, fe.asOrNull)(t,qd.NativeFunctionCall);if(g){let y=g.name;y=="^"&&(y="L^"),e.Write(y);return}let v=(0, fe.asOrNull)(t,jd.VariableReference);if(v){e.WriteObjectStart();let y=v.pathStringForCount;y!=null?e.WriteProperty("CNT?",y):e.WriteProperty("VAR?",v.name),e.WriteObjectEnd();return}let E=(0, fe.asOrNull)(t,Qy.VariableAssignment);if(E){e.WriteObjectStart();let y=E.isGlobal?"VAR=":"temp=";e.WriteProperty(y,E.variableName),E.isNewDeclaration||e.WriteProperty("re",true),e.WriteObjectEnd();return}if((0, fe.asOrNull)(t,e0.Void)){e.Write("void");return}let d=(0, fe.asOrNull)(t,t0.Tag);if(d){e.WriteObjectStart(),e.WriteProperty("#",d.text),e.WriteObjectEnd();return}let _=(0, fe.asOrNull)(t,n0.Choice);if(_){this.WriteChoice(e,_);return}throw new Error("Failed to convert runtime object to Json token: "+t)}static JObjectToDictionaryRuntimeObjs(e){let t=new Map;for(let r in e)if(e.hasOwnProperty(r)){let i=this.JTokenToRuntimeObject(e[r]);if(i===null)return (0, Nn.throwNullException)("inkObject");t.set(r,i);}return t}static JObjectToIntDictionary(e){let t=new Map;for(let r in e)e.hasOwnProperty(r)&&t.set(r,parseInt(e[r]));return t}static JTokenToRuntimeObject(e){if(typeof e=="number"&&!isNaN(e)||typeof e=="boolean")return ze.Value.Create(e);if(typeof e=="string"){let t=e.toString(),r=/^([0-9]+.[0-9]+f)$/.exec(t);if(r)return new ze.FloatValue(parseFloat(r[0]));let i=t[0];if(i=="^")return new ze.StringValue(t.substring(1));if(i==`
25
25
  `&&t.length==1)return new ze.StringValue(`
26
- `);if(t=="<>")return new Xy.Glue;for(let a=0;a<n._controlCommandNames.length;++a){let s=n._controlCommandNames[a];if(t==s)return new U.ControlCommand(a)}if(t=="L^"&&(t="^"),qd.NativeFunctionCall.CallExistsWithName(t))return qd.NativeFunctionCall.CallWithName(t);if(t=="->->")return U.ControlCommand.PopTunnel();if(t=="~ret")return U.ControlCommand.PopFunction();if(t=="void")return new e0.Void}if(typeof e=="object"&&!Array.isArray(e)){let t=e,r;if(t["^->"])return r=t["^->"],new ze.DivertTargetValue(new LT.Path(r.toString()));if(t["^var"]){r=t["^var"];let c=new ze.VariablePointerValue(r.toString());return "ci"in t&&(r=t.ci,c.contextIndex=parseInt(r)),c}let i=false,a=false,s=br.PushPopType.Function,o=false;if((r=t["->"])?i=true:(r=t["f()"])?(i=true,a=true,s=br.PushPopType.Function):(r=t["->t->"])?(i=true,a=true,s=br.PushPopType.Tunnel):(r=t["x()"])&&(i=true,o=true,a=false,s=br.PushPopType.Function),i){let c=new Yy.Divert;c.pushesToStack=a,c.stackPushType=s,c.isExternal=o;let h=r.toString();return (r=t.var)?c.variableDivertName=h:c.targetPathString=h,c.isConditional=!!t.c,o&&(r=t.exArgs)&&(c.externalArgs=parseInt(r)),c}if(r=t["*"]){let c=new Zy.ChoicePoint;return c.pathStringOnChoice=r.toString(),(r=t.flg)&&(c.flags=parseInt(r)),c}if(r=t["VAR?"])return new jd.VariableReference(r.toString());if(r=t["CNT?"]){let c=new jd.VariableReference;return c.pathStringForCount=r.toString(),c}let u=false,l=false;if((r=t["VAR="])?(u=true,l=true):(r=t["temp="])&&(u=true,l=false),u){let c=r.toString(),h=!t.re,f=new Qy.VariableAssignment(c,h);return f.isGlobal=l,f}if(t["#"]!==void 0)return r=t["#"],new t0.Tag(r.toString());if(r=t.list){let c=r,h=new Vo.InkList;if(r=t.origins){let f=r;h.SetInitialOriginNames(f);}for(let f in c)if(c.hasOwnProperty(f)){let p=c[f],m=new Vo.InkListItem(f),g=parseInt(p);h.Add(m,g);}return new ze.ListValue(h)}if(t.originalChoicePath!=null)return this.JObjectToChoice(t)}if(Array.isArray(e))return this.JArrayToContainer(e);if(e==null)return null;throw new Error("Failed to convert token to runtime object: "+this.toJson(e,["parent"]))}static toJson(e,t,r){return JSON.stringify(e,(i,a)=>t?.some(s=>s===i)?void 0:a,r)}static WriteRuntimeContainer(e,t,r=false){if(e.WriteArrayStart(),t===null)return (0, Nn.throwNullException)("container");for(let u of t.content)this.WriteRuntimeObject(e,u);let i=t.namedOnlyContent,a=t.countFlags,s=t.name!=null&&!r,o=i!=null||a>0||s;if(o&&e.WriteObjectStart(),i!=null)for(let[u,l]of i){let c=u,h=(0, fe.asOrNull)(l,$o.Container);e.WritePropertyStart(c),this.WriteRuntimeContainer(e,h,true),e.WritePropertyEnd();}a>0&&e.WriteIntProperty("#f",a),s&&e.WriteProperty("#n",t.name),o?e.WriteObjectEnd():e.WriteNull(),e.WriteArrayEnd();}static JArrayToContainer(e){let t=new $o.Container;t.content=this.JArrayToRuntimeObjList(e,true);let r=e[e.length-1];if(r!=null){let i=new Map;for(let a in r)if(a=="#f")t.countFlags=parseInt(r[a]);else if(a=="#n")t.name=r[a].toString();else {let s=this.JTokenToRuntimeObject(r[a]),o=(0, fe.asOrNull)(s,$o.Container);o&&(o.name=a),i.set(a,s);}t.namedOnlyContent=i;}return t}static JObjectToChoice(e){let t=new n0.Choice;return t.text=e.text.toString(),t.index=parseInt(e.index),t.sourcePath=e.originalChoicePath.toString(),t.originalThreadIndex=parseInt(e.originalThreadIndex),t.pathStringOnChoice=e.targetPath.toString(),t.tags=this.JArrayToTags(e),t.isInvisibleDefault=!!e.isInvisibleDefault,t}static JArrayToTags(e){return e.tags?e.tags:null}static WriteChoice(e,t){e.WriteObjectStart(),e.WriteProperty("text",t.text),e.WriteIntProperty("index",t.index),e.WriteProperty("originalChoicePath",t.sourcePath),e.WriteIntProperty("originalThreadIndex",t.originalThreadIndex),e.WriteProperty("targetPath",t.pathStringOnChoice),e.WriteProperty("isInvisibleDefault",t.isInvisibleDefault),this.WriteChoiceTags(e,t),e.WriteObjectEnd();}static WriteChoiceTags(e,t){if(t.tags&&t.tags.length>0){e.WritePropertyStart("tags"),e.WriteArrayStart();for(let r of t.tags)e.Write(r);e.WriteArrayEnd(),e.WritePropertyEnd();}}static WriteInkList(e,t){let r=t.value;if(r===null)return (0, Nn.throwNullException)("rawList");e.WriteObjectStart(),e.WritePropertyStart("list"),e.WriteObjectStart();for(let[i,a]of r){let s=Vo.InkListItem.fromSerializedKey(i),o=a;if(s.itemName===null)return (0, Nn.throwNullException)("item.itemName");e.WritePropertyNameStart(),e.WritePropertyNameInner(s.originName?s.originName:"?"),e.WritePropertyNameInner("."),e.WritePropertyNameInner(s.itemName),e.WritePropertyNameEnd(),e.Write(o),e.WritePropertyEnd();}if(e.WriteObjectEnd(),e.WritePropertyEnd(),r.Count==0&&r.originNames!=null&&r.originNames.length>0){e.WritePropertyStart("origins"),e.WriteArrayStart();for(let i of r.originNames)e.Write(i);e.WriteArrayEnd(),e.WritePropertyEnd();}e.WriteObjectEnd();}static ListDefinitionsToJToken(e){let t={};for(let r of e.lists){let i={};for(let[a,s]of r.items){let o=Vo.InkListItem.fromSerializedKey(a);if(o.itemName===null)return (0, Nn.throwNullException)("item.itemName");i[o.itemName]=s;}t[r.name]=i;}return t}static JTokenToListDefinitions(e){let t=e,r=[];for(let i in t)if(t.hasOwnProperty(i)){let a=i.toString(),s=t[i],o=new Map;for(let l in s)if(t.hasOwnProperty(i)){let c=s[l];o.set(l,parseInt(c));}let u=new BT.ListDefinition(a,o);r.push(u);}return new WT.ListDefinitionsOrigin(r)}};qo.JsonSerialisation=jo;jo._controlCommandNames=(()=>{let n=[];n[U.ControlCommand.CommandType.EvalStart]="ev",n[U.ControlCommand.CommandType.EvalOutput]="out",n[U.ControlCommand.CommandType.EvalEnd]="/ev",n[U.ControlCommand.CommandType.Duplicate]="du",n[U.ControlCommand.CommandType.PopEvaluatedValue]="pop",n[U.ControlCommand.CommandType.PopFunction]="~ret",n[U.ControlCommand.CommandType.PopTunnel]="->->",n[U.ControlCommand.CommandType.BeginString]="str",n[U.ControlCommand.CommandType.EndString]="/str",n[U.ControlCommand.CommandType.NoOp]="nop",n[U.ControlCommand.CommandType.ChoiceCount]="choiceCnt",n[U.ControlCommand.CommandType.Turns]="turn",n[U.ControlCommand.CommandType.TurnsSince]="turns",n[U.ControlCommand.CommandType.ReadCount]="readc",n[U.ControlCommand.CommandType.Random]="rnd",n[U.ControlCommand.CommandType.SeedRandom]="srnd",n[U.ControlCommand.CommandType.VisitIndex]="visit",n[U.ControlCommand.CommandType.SequenceShuffleIndex]="seq",n[U.ControlCommand.CommandType.StartThread]="thread",n[U.ControlCommand.CommandType.Done]="done",n[U.ControlCommand.CommandType.End]="end",n[U.ControlCommand.CommandType.ListFromInt]="listInt",n[U.ControlCommand.CommandType.ListRange]="range",n[U.ControlCommand.CommandType.ListRandom]="lrnd",n[U.ControlCommand.CommandType.BeginTag]="#",n[U.ControlCommand.CommandType.EndTag]="/#";for(let e=0;e<U.ControlCommand.CommandType.TOTAL_VALUES;++e)if(n[e]==null)throw new Error("Control command not accounted for in serialisation");return n})();});var Wd=C(Li=>{Object.defineProperty(Li,"__esModule",{value:true});Li.CallStack=void 0;var Ld=Tn(),r0=Me(),MT=Bi(),i0=Dr(),GT=ue(),JT=wn(),ji=Oi(),HT=gi(),s0=dr(),Bd=Te(),qi=class n{get elements(){return this.callStack}get depth(){return this.elements.length}get currentElement(){let t=this._threads[this._threads.length-1].callstack;return t[t.length-1]}get currentElementIndex(){return this.callStack.length-1}get currentThread(){return this._threads[this._threads.length-1]}set currentThread(e){HT.Debug.Assert(this._threads.length==1,"Shouldn't be directly setting the current thread when we have a stack of them"),this._threads.length=0,this._threads.push(e);}get canPop(){return this.callStack.length>1}constructor(){if(this._threadCounter=0,this._startOfRoot=ji.Pointer.Null,arguments[0]instanceof MT.Story){let e=arguments[0];this._startOfRoot=ji.Pointer.StartOf(e.rootContentContainer),this.Reset();}else {let e=arguments[0];this._threads=[];for(let t of e._threads)this._threads.push(t.Copy());this._threadCounter=e._threadCounter,this._startOfRoot=e._startOfRoot.copy();}}Reset(){this._threads=[],this._threads.push(new n.Thread),this._threads[0].callstack.push(new n.Element(Ld.PushPopType.Tunnel,this._startOfRoot));}SetJsonToken(e,t){this._threads.length=0;let r=e.threads;for(let i of r){let a=i,s=new n.Thread(a,t);this._threads.push(s);}this._threadCounter=parseInt(e.threadCounter),this._startOfRoot=ji.Pointer.StartOf(t.rootContentContainer);}WriteJson(e){e.WriteObject(t=>{t.WritePropertyStart("threads"),t.WriteArrayStart();for(let r of this._threads)r.WriteJson(t);t.WriteArrayEnd(),t.WritePropertyEnd(),t.WritePropertyStart("threadCounter"),t.WriteInt(this._threadCounter),t.WritePropertyEnd();});}PushThread(){let e=this.currentThread.Copy();this._threadCounter++,e.threadIndex=this._threadCounter,this._threads.push(e);}ForkThread(){let e=this.currentThread.Copy();return this._threadCounter++,e.threadIndex=this._threadCounter,e}PopThread(){if(this.canPopThread)this._threads.splice(this._threads.indexOf(this.currentThread),1);else throw new Error("Can't pop thread")}get canPopThread(){return this._threads.length>1&&!this.elementIsEvaluateFromGame}get elementIsEvaluateFromGame(){return this.currentElement.type==Ld.PushPopType.FunctionEvaluationFromGame}Push(e,t=0,r=0){let i=new n.Element(e,this.currentElement.currentPointer,false);i.evaluationStackHeightWhenPushed=t,i.functionStartInOutputStream=r,this.callStack.push(i);}CanPop(e=null){return this.canPop?e==null?true:this.currentElement.type==e:false}Pop(e=null){if(this.CanPop(e)){this.callStack.pop();return}else throw new Error("Mismatched push/pop in Callstack")}GetTemporaryVariableWithName(e,t=-1){t==-1&&(t=this.currentElementIndex+1);let r=this.callStack[t-1],i=(0, s0.tryGetValueFromMap)(r.temporaryVariables,e,null);return i.exists?i.result:null}SetTemporaryVariable(e,t,r,i=-1){i==-1&&(i=this.currentElementIndex+1);let a=this.callStack[i-1];if(!r&&!a.temporaryVariables.get(e))throw new Error("Could not find temporary variable to set: "+e);let s=(0, s0.tryGetValueFromMap)(a.temporaryVariables,e,null);s.exists&&GT.ListValue.RetainListOriginsForAssignment(s.result,t),a.temporaryVariables.set(e,t);}ContextForVariableNamed(e){return this.currentElement.temporaryVariables.get(e)?this.currentElementIndex+1:0}ThreadWithIndex(e){let t=this._threads.filter(r=>{if(r.threadIndex==e)return r});return t.length>0?t[0]:null}get callStack(){return this.currentThread.callstack}get callStackTrace(){let e=new JT.StringBuilder;for(let t=0;t<this._threads.length;t++){let r=this._threads[t],i=t==this._threads.length-1;e.AppendFormat(`=== THREAD {0}/{1} {2}===
27
- `,t+1,this._threads.length,i?"(current) ":"");for(let a=0;a<r.callstack.length;a++){r.callstack[a].type==Ld.PushPopType.Function?e.Append(" [FUNCTION] "):e.Append(" [TUNNEL] ");let s=r.callstack[a].currentPointer;if(!s.isNull){if(e.Append("<SOMEWHERE IN "),s.container===null)return (0, Bd.throwNullException)("pointer.container");e.Append(s.container.path.toString()),e.AppendLine(">");}}}return e.toString()}};Li.CallStack=qi;(function(n){class e{constructor(i,a,s=false){this.evaluationStackHeightWhenPushed=0,this.functionStartInOutputStream=0,this.currentPointer=a.copy(),this.inExpressionEvaluation=s,this.temporaryVariables=new Map,this.type=i;}Copy(){let i=new e(this.type,this.currentPointer,this.inExpressionEvaluation);return i.temporaryVariables=new Map(this.temporaryVariables),i.evaluationStackHeightWhenPushed=this.evaluationStackHeightWhenPushed,i.functionStartInOutputStream=this.functionStartInOutputStream,i}}n.Element=e;class t{constructor(){if(this.threadIndex=0,this.previousPointer=ji.Pointer.Null,this.callstack=[],arguments[0]&&arguments[1]){let i=arguments[0],a=arguments[1];this.threadIndex=parseInt(i.threadIndex);let s=i.callstack;for(let u of s){let l=u,c=parseInt(l.type),h=ji.Pointer.Null,f,p=l.cPath;if(typeof p<"u"){f=p.toString();let E=a.ContentAtPath(new r0.Path(f));if(h.container=E.container,h.index=parseInt(l.idx),E.obj==null)throw new Error("When loading state, internal story location couldn't be found: "+f+". Has the story changed since this save data was created?");E.approximate&&(h.container!==null?a.Warning("When loading state, exact internal story location couldn't be found: '"+f+"', so it was approximated to '"+h.container.path.toString()+"' to recover. Has the story changed since this save data was created?"):a.Warning("When loading state, exact internal story location couldn't be found: '"+f+"' and it may not be recoverable. Has the story changed since this save data was created?"));}let m=!!l.exp,g=new e(c,h,m),v=l.temp;typeof v<"u"?g.temporaryVariables=i0.JsonSerialisation.JObjectToDictionaryRuntimeObjs(v):g.temporaryVariables.clear(),this.callstack.push(g);}let o=i.previousContentObject;if(typeof o<"u"){let u=new r0.Path(o.toString());this.previousPointer=a.PointerAtPath(u);}}}Copy(){let i=new t;i.threadIndex=this.threadIndex;for(let a of this.callstack)i.callstack.push(a.Copy());return i.previousPointer=this.previousPointer.copy(),i}WriteJson(i){i.WriteObjectStart(),i.WritePropertyStart("callstack"),i.WriteArrayStart();for(let a of this.callstack){if(i.WriteObjectStart(),!a.currentPointer.isNull){if(a.currentPointer.container===null)return (0, Bd.throwNullException)("el.currentPointer.container");i.WriteProperty("cPath",a.currentPointer.container.path.componentsString),i.WriteIntProperty("idx",a.currentPointer.index);}i.WriteProperty("exp",a.inExpressionEvaluation),i.WriteIntProperty("type",a.type),a.temporaryVariables.size>0&&(i.WritePropertyStart("temp"),i0.JsonSerialisation.WriteDictionaryRuntimeObjs(i,a.temporaryVariables),i.WritePropertyEnd()),i.WriteObjectEnd();}if(i.WriteArrayEnd(),i.WritePropertyEnd(),i.WriteIntProperty("threadIndex",this.threadIndex),!this.previousPointer.isNull){let a=this.previousPointer.Resolve();if(a===null)return (0, Bd.throwNullException)("this.previousPointer.Resolve()");i.WriteProperty("previousContentObject",a.path.toString());}i.WriteObjectEnd();}}n.Thread=t;})(qi||(Li.CallStack=qi={}));});var o0=C(Bo=>{Object.defineProperty(Bo,"__esModule",{value:true});Bo.VariablesState=void 0;var Se=ue(),UT=Ci(),a0=Dr(),xe=X(),Wi=dr(),tn=Te();function zT(){return class{}}var Lo=class n extends zT(){variableChangedEvent(e,t){for(let r of this.variableChangedEventCallbacks)r(e,t);}StartVariableObservation(){this._batchObservingVariableChanges=true,this._changedVariablesForBatchObs=new Set;}CompleteVariableObservation(){this._batchObservingVariableChanges=false;let e=new Map;if(this._changedVariablesForBatchObs!=null)for(let t of this._changedVariablesForBatchObs){let r=this._globalVariables.get(t);this.variableChangedEvent(t,r);}if(this.patch!=null)for(let t of this.patch.changedVariables){let r=this.patch.TryGetGlobal(t,null);r.exists&&e.set(t,r);}return this._changedVariablesForBatchObs=null,e}NotifyObservers(e){for(let[t,r]of e)this.variableChangedEvent(t,r);}get callStack(){return this._callStack}set callStack(e){this._callStack=e;}$(e,t){if(typeof t>"u"){let r=null;return this.patch!==null&&(r=this.patch.TryGetGlobal(e,null),r.exists)?r.result.valueObject:(r=this._globalVariables.get(e),typeof r>"u"&&(r=this._defaultGlobalVariables.get(e)),typeof r<"u"?r.valueObject:null)}else {if(typeof this._defaultGlobalVariables.get(e)>"u")throw new UT.StoryException("Cannot assign to a variable ("+e+") that hasn't been declared in the story");let r=Se.Value.Create(t);if(r==null)throw t==null?new Error("Cannot pass null to VariableState"):new Error("Invalid value passed to VariableState: "+t.toString());this.SetGlobal(e,r);}}constructor(e,t){super(),this.variableChangedEventCallbacks=[],this.patch=null,this._defaultGlobalVariables=new Map,this._changedVariablesForBatchObs=new Set,this._batchObservingVariableChanges=false,this._globalVariables=new Map,this._callStack=e,this._listDefsOrigin=t;try{return new Proxy(this,{get(i,a){return a in i?i[a]:i.$(a)},set(i,a,s){return a in i?i[a]=s:i.$(a,s),!0},ownKeys(i){return [...new Set([...i._defaultGlobalVariables.keys(),...i._globalVariables.keys()])]},getOwnPropertyDescriptor(i,a){return {enumerable:!0,configurable:!0,value:i.$(a)}}})}catch{}}ApplyPatch(){if(this.patch===null)return (0, tn.throwNullException)("this.patch");for(let[e,t]of this.patch.globals)this._globalVariables.set(e,t);if(this._changedVariablesForBatchObs!==null)for(let e of this.patch.changedVariables)this._changedVariablesForBatchObs.add(e);this.patch=null;}SetJsonToken(e){this._globalVariables.clear();for(let[t,r]of this._defaultGlobalVariables){let i=e[t];if(typeof i<"u"){let a=a0.JsonSerialisation.JTokenToRuntimeObject(i);if(a===null)return (0, tn.throwNullException)("tokenInkObject");this._globalVariables.set(t,a);}else this._globalVariables.set(t,r);}}WriteJson(e){e.WriteObjectStart();for(let[t,r]of this._globalVariables){let i=t,a=r;if(n.dontSaveDefaultValues&&this._defaultGlobalVariables.has(i)){let s=this._defaultGlobalVariables.get(i);if(this.RuntimeObjectsEqual(a,s))continue}e.WritePropertyStart(i),a0.JsonSerialisation.WriteRuntimeObject(e,a),e.WritePropertyEnd();}e.WriteObjectEnd();}RuntimeObjectsEqual(e,t){if(e===null)return (0, tn.throwNullException)("obj1");if(t===null)return (0, tn.throwNullException)("obj2");if(e.constructor!==t.constructor)return false;let r=(0, xe.asOrNull)(e,Se.BoolValue);if(r!==null)return r.value===(0, xe.asOrThrows)(t,Se.BoolValue).value;let i=(0, xe.asOrNull)(e,Se.IntValue);if(i!==null)return i.value===(0, xe.asOrThrows)(t,Se.IntValue).value;let a=(0, xe.asOrNull)(e,Se.FloatValue);if(a!==null)return a.value===(0, xe.asOrThrows)(t,Se.FloatValue).value;let s=(0, xe.asOrNull)(e,Se.Value),o=(0, xe.asOrNull)(t,Se.Value);if(s!==null&&o!==null)return (0, xe.isEquatable)(s.valueObject)&&(0, xe.isEquatable)(o.valueObject)?s.valueObject.Equals(o.valueObject):s.valueObject===o.valueObject;throw new Error("FastRoughDefinitelyEquals: Unsupported runtime object type: "+e.constructor.name)}GetVariableWithName(e,t=-1){let r=this.GetRawVariableWithName(e,t),i=(0, xe.asOrNull)(r,Se.VariablePointerValue);return i!==null&&(r=this.ValueAtVariablePointer(i)),r}TryGetDefaultVariableValue(e){let t=(0, Wi.tryGetValueFromMap)(this._defaultGlobalVariables,e,null);return t.exists?t.result:null}GlobalVariableExistsWithName(e){return this._globalVariables.has(e)||this._defaultGlobalVariables!==null&&this._defaultGlobalVariables.has(e)}GetRawVariableWithName(e,t){let r=null;if(t==0||t==-1){let i=null;if(this.patch!==null&&(i=this.patch.TryGetGlobal(e,null),i.exists)||(i=(0, Wi.tryGetValueFromMap)(this._globalVariables,e,null),i.exists)||this._defaultGlobalVariables!==null&&(i=(0, Wi.tryGetValueFromMap)(this._defaultGlobalVariables,e,null),i.exists))return i.result;if(this._listDefsOrigin===null)return (0, tn.throwNullException)("VariablesState._listDefsOrigin");let a=this._listDefsOrigin.FindSingleItemListWithName(e);if(a)return a}return r=this._callStack.GetTemporaryVariableWithName(e,t),r}ValueAtVariablePointer(e){return this.GetVariableWithName(e.variableName,e.contextIndex)}Assign(e,t){let r=e.variableName;if(r===null)return (0, tn.throwNullException)("name");let i=-1,a=false;if(e.isNewDeclaration?a=e.isGlobal:a=this.GlobalVariableExistsWithName(r),e.isNewDeclaration){let s=(0, xe.asOrNull)(t,Se.VariablePointerValue);s!==null&&(t=this.ResolveVariablePointer(s));}else {let s=null;do s=(0, xe.asOrNull)(this.GetRawVariableWithName(r,i),Se.VariablePointerValue),s!=null&&(r=s.variableName,i=s.contextIndex,a=i==0);while(s!=null)}a?this.SetGlobal(r,t):this._callStack.SetTemporaryVariable(r,t,e.isNewDeclaration,i);}SnapshotDefaultGlobals(){this._defaultGlobalVariables=new Map(this._globalVariables);}RetainListOriginsForAssignment(e,t){let r=(0, xe.asOrThrows)(e,Se.ListValue),i=(0, xe.asOrThrows)(t,Se.ListValue);r.value&&i.value&&i.value.Count==0&&i.value.SetInitialOriginNames(r.value.originNames);}SetGlobal(e,t){let r=null;if(this.patch===null&&(r=(0, Wi.tryGetValueFromMap)(this._globalVariables,e,null)),this.patch!==null&&(r=this.patch.TryGetGlobal(e,null),r.exists||(r=(0, Wi.tryGetValueFromMap)(this._globalVariables,e,null))),Se.ListValue.RetainListOriginsForAssignment(r.result,t),e===null)return (0, tn.throwNullException)("variableName");if(this.patch!==null?this.patch.SetGlobal(e,t):this._globalVariables.set(e,t),this.variableChangedEvent!==null&&r!==null&&t!==r.result)if(this._batchObservingVariableChanges){if(this._changedVariablesForBatchObs===null)return (0, tn.throwNullException)("this._changedVariablesForBatchObs");this.patch!==null?this.patch.AddChangedVariable(e):this._changedVariablesForBatchObs!==null&&this._changedVariablesForBatchObs.add(e);}else this.variableChangedEvent(e,t);}ResolveVariablePointer(e){let t=e.contextIndex;t==-1&&(t=this.GetContextIndexOfVariableNamed(e.variableName));let r=this.GetRawVariableWithName(e.variableName,t),i=(0, xe.asOrNull)(r,Se.VariablePointerValue);return i??new Se.VariablePointerValue(e.variableName,t)}GetContextIndexOfVariableNamed(e){return this.GlobalVariableExistsWithName(e)?0:this._callStack.currentElementIndex}ObserveVariableChange(e){this.variableChangedEventCallbacks.push(e);}};Bo.VariablesState=Lo;Lo.dontSaveDefaultValues=true;});var Gd=C(Wo=>{Object.defineProperty(Wo,"__esModule",{value:true});Wo.PRNG=void 0;var Md=class{constructor(e){this.seed=e%2147483647,this.seed<=0&&(this.seed+=2147483646);}next(){return this.seed=this.seed*48271%2147483647}nextFloat(){return (this.next()-1)/2147483646}};Wo.PRNG=Md;});var u0=C(Mo=>{Object.defineProperty(Mo,"__esModule",{value:true});Mo.StatePatch=void 0;var Jd=class{get globals(){return this._globals}get changedVariables(){return this._changedVariables}get visitCounts(){return this._visitCounts}get turnIndices(){return this._turnIndices}constructor(){if(this._changedVariables=new Set,this._visitCounts=new Map,this._turnIndices=new Map,arguments.length===1&&arguments[0]!==null){let e=arguments[0];this._globals=new Map(e._globals),this._changedVariables=new Set(e._changedVariables),this._visitCounts=new Map(e._visitCounts),this._turnIndices=new Map(e._turnIndices);}else this._globals=new Map,this._changedVariables=new Set,this._visitCounts=new Map,this._turnIndices=new Map;}TryGetGlobal(e,t){return e!==null&&this._globals.has(e)?{result:this._globals.get(e),exists:true}:{result:t,exists:false}}SetGlobal(e,t){this._globals.set(e,t);}AddChangedVariable(e){return this._changedVariables.add(e)}TryGetVisitCount(e,t){return this._visitCounts.has(e)?{result:this._visitCounts.get(e),exists:true}:{result:t,exists:false}}SetVisitCount(e,t){this._visitCounts.set(e,t);}SetTurnIndex(e,t){this._turnIndices.set(e,t);}TryGetTurnIndex(e,t){return this._turnIndices.has(e)?{result:this._turnIndices.get(e),exists:true}:{result:t,exists:false}}};Mo.StatePatch=Jd;});var Hd=C(Gi=>{Object.defineProperty(Gi,"__esModule",{value:true});Gi.SimpleJson=void 0;var Mi=class n{static TextToDictionary(e){return new n.Reader(e).ToDictionary()}static TextToArray(e){return new n.Reader(e).ToArray()}};Gi.SimpleJson=Mi;(function(n){class e{constructor(i){if(JSON.parse("0",(s,o,u)=>u!=null)){let s=(o,u,l)=>Number.isInteger(u)&&l.source.endsWith(".0")?l.source+"f":u;this._rootObject=JSON.parse(i,s);}else {let s=i.replace(/(,\s*)([0-9]+\.[0]+)([,]*)/g,'$1"$2f"$3');this._rootObject=JSON.parse(s);}}ToDictionary(){return this._rootObject}ToArray(){return this._rootObject}}n.Reader=e;class t{constructor(){this._currentPropertyName=null,this._currentString=null,this._stateStack=[],this._collectionStack=[],this._propertyNameStack=[],this._jsonObject=null;}WriteObject(i){this.WriteObjectStart(),i(this),this.WriteObjectEnd();}WriteObjectStart(){this.StartNewObject(true);let i={};if(this.state===n.Writer.State.Property){this.Assert(this.currentCollection!==null),this.Assert(this.currentPropertyName!==null);let a=this._propertyNameStack.pop();this.currentCollection[a]=i,this._collectionStack.push(i);}else this.state===n.Writer.State.Array?(this.Assert(this.currentCollection!==null),this.currentCollection.push(i),this._collectionStack.push(i)):(this.Assert(this.state===n.Writer.State.None),this._jsonObject=i,this._collectionStack.push(i));this._stateStack.push(new n.Writer.StateElement(n.Writer.State.Object));}WriteObjectEnd(){this.Assert(this.state===n.Writer.State.Object),this._collectionStack.pop(),this._stateStack.pop();}WriteProperty(i,a){if(this.WritePropertyStart(i),arguments[1]instanceof Function){let s=arguments[1];s(this);}else {let s=arguments[1];this.Write(s);}this.WritePropertyEnd();}WriteIntProperty(i,a){this.WritePropertyStart(i),this.WriteInt(a),this.WritePropertyEnd();}WriteFloatProperty(i,a){this.WritePropertyStart(i),this.WriteFloat(a),this.WritePropertyEnd();}WritePropertyStart(i){this.Assert(this.state===n.Writer.State.Object),this._propertyNameStack.push(i),this.IncrementChildCount(),this._stateStack.push(new n.Writer.StateElement(n.Writer.State.Property));}WritePropertyEnd(){this.Assert(this.state===n.Writer.State.Property),this.Assert(this.childCount===1),this._stateStack.pop();}WritePropertyNameStart(){this.Assert(this.state===n.Writer.State.Object),this.IncrementChildCount(),this._currentPropertyName="",this._stateStack.push(new n.Writer.StateElement(n.Writer.State.Property)),this._stateStack.push(new n.Writer.StateElement(n.Writer.State.PropertyName));}WritePropertyNameEnd(){this.Assert(this.state===n.Writer.State.PropertyName),this.Assert(this._currentPropertyName!==null),this._propertyNameStack.push(this._currentPropertyName),this._currentPropertyName=null,this._stateStack.pop();}WritePropertyNameInner(i){this.Assert(this.state===n.Writer.State.PropertyName),this.Assert(this._currentPropertyName!==null),this._currentPropertyName+=i;}WriteArrayStart(){this.StartNewObject(true);let i=[];if(this.state===n.Writer.State.Property){this.Assert(this.currentCollection!==null),this.Assert(this.currentPropertyName!==null);let a=this._propertyNameStack.pop();this.currentCollection[a]=i,this._collectionStack.push(i);}else this.state===n.Writer.State.Array?(this.Assert(this.currentCollection!==null),this.currentCollection.push(i),this._collectionStack.push(i)):(this.Assert(this.state===n.Writer.State.None),this._jsonObject=i,this._collectionStack.push(i));this._stateStack.push(new n.Writer.StateElement(n.Writer.State.Array));}WriteArrayEnd(){this.Assert(this.state===n.Writer.State.Array),this._collectionStack.pop(),this._stateStack.pop();}Write(i,a=true){if(i===null){console.error("Warning: trying to write a null value");return}this.StartNewObject(false),this._addToCurrentObject(i);}WriteBool(i){i!==null&&(this.StartNewObject(false),this._addToCurrentObject(i));}WriteInt(i){i!==null&&(this.StartNewObject(false),this._addToCurrentObject(Math.floor(i)));}WriteFloat(i){i!==null&&(this.StartNewObject(false),i==Number.POSITIVE_INFINITY?this._addToCurrentObject(34e37):i==Number.NEGATIVE_INFINITY?this._addToCurrentObject(-34e37):isNaN(i)?this._addToCurrentObject(0):this._addToCurrentObject(i));}WriteNull(){this.StartNewObject(false),this._addToCurrentObject(null);}WriteStringStart(){this.StartNewObject(false),this._currentString="",this._stateStack.push(new n.Writer.StateElement(n.Writer.State.String));}WriteStringEnd(){this.Assert(this.state==n.Writer.State.String),this._stateStack.pop(),this._addToCurrentObject(this._currentString),this._currentString=null;}WriteStringInner(i,a=true){if(this.Assert(this.state===n.Writer.State.String),i===null){console.error("Warning: trying to write a null string");return}this._currentString+=i;}toString(){return this._jsonObject===null?"":JSON.stringify(this._jsonObject)}StartNewObject(i){i?this.Assert(this.state===n.Writer.State.None||this.state===n.Writer.State.Property||this.state===n.Writer.State.Array):this.Assert(this.state===n.Writer.State.Property||this.state===n.Writer.State.Array),this.state===n.Writer.State.Property&&this.Assert(this.childCount===0),(this.state===n.Writer.State.Array||this.state===n.Writer.State.Property)&&this.IncrementChildCount();}get state(){return this._stateStack.length>0?this._stateStack[this._stateStack.length-1].type:n.Writer.State.None}get childCount(){return this._stateStack.length>0?this._stateStack[this._stateStack.length-1].childCount:0}get currentCollection(){return this._collectionStack.length>0?this._collectionStack[this._collectionStack.length-1]:null}get currentPropertyName(){return this._propertyNameStack.length>0?this._propertyNameStack[this._propertyNameStack.length-1]:null}IncrementChildCount(){this.Assert(this._stateStack.length>0);let i=this._stateStack.pop();i.childCount++,this._stateStack.push(i);}Assert(i){if(!i)throw Error("Assert failed while writing JSON")}_addToCurrentObject(i){this.Assert(this.currentCollection!==null),this.state===n.Writer.State.Array?(this.Assert(Array.isArray(this.currentCollection)),this.currentCollection.push(i)):this.state===n.Writer.State.Property&&(this.Assert(!Array.isArray(this.currentCollection)),this.Assert(this.currentPropertyName!==null),this.currentCollection[this.currentPropertyName]=i,this._propertyNameStack.pop());}}n.Writer=t,(function(r){(function(s){s[s.None=0]="None",s[s.Object=1]="Object",s[s.Array=2]="Array",s[s.Property=3]="Property",s[s.PropertyName=4]="PropertyName",s[s.String=5]="String";})(r.State||(r.State={}));class a{constructor(o){this.type=n.Writer.State.None,this.childCount=0,this.type=o;}}r.StateElement=a;})(t=n.Writer||(n.Writer={}));})(Mi||(Gi.SimpleJson=Mi={}));});var c0=C(Jo=>{Object.defineProperty(Jo,"__esModule",{value:true});Jo.Flow=void 0;var l0=Wd(),Go=Dr(),KT=Te(),Ud=class{constructor(){let e=arguments[0],t=arguments[1];if(this.name=e,this.callStack=new l0.CallStack(t),arguments[2]){let r=arguments[2];this.callStack.SetJsonToken(r.callstack,t),this.outputStream=Go.JsonSerialisation.JArrayToRuntimeObjList(r.outputStream),this.currentChoices=Go.JsonSerialisation.JArrayToRuntimeObjList(r.currentChoices);let i=r.choiceThreads;typeof i<"u"&&this.LoadFlowChoiceThreads(i,t);}else this.outputStream=[],this.currentChoices=[];}WriteJson(e){e.WriteObjectStart(),e.WriteProperty("callstack",r=>this.callStack.WriteJson(r)),e.WriteProperty("outputStream",r=>Go.JsonSerialisation.WriteListRuntimeObjs(r,this.outputStream));let t=false;for(let r of this.currentChoices){if(r.threadAtGeneration===null)return (0, KT.throwNullException)("c.threadAtGeneration");r.originalThreadIndex=r.threadAtGeneration.threadIndex,this.callStack.ThreadWithIndex(r.originalThreadIndex)===null&&(t||(t=true,e.WritePropertyStart("choiceThreads"),e.WriteObjectStart()),e.WritePropertyStart(r.originalThreadIndex),r.threadAtGeneration.WriteJson(e),e.WritePropertyEnd());}t&&(e.WriteObjectEnd(),e.WritePropertyEnd()),e.WriteProperty("currentChoices",r=>{r.WriteArrayStart();for(let i of this.currentChoices)Go.JsonSerialisation.WriteChoice(r,i);r.WriteArrayEnd();}),e.WriteObjectEnd();}LoadFlowChoiceThreads(e,t){for(let r of this.currentChoices){let i=this.callStack.ThreadWithIndex(r.originalThreadIndex);if(i!==null)r.threadAtGeneration=i.Copy();else {let a=e[`${r.originalThreadIndex}`];r.threadAtGeneration=new l0.CallStack.Thread(a,t);}}}};Jo.Flow=Ud;});var f0=C(Uo=>{Object.defineProperty(Uo,"__esModule",{value:true});Uo.StoryState=void 0;var XT=Wd(),YT=o0(),ye=ue(),nn=Tn(),ZT=Io(),zd=bo(),h0=Me(),$e=Oe(),Kd=wn(),rn=Dr(),QT=Gd(),e1=Pn(),wr=Oi(),Ji=dr(),pe=X(),t1=gi(),at=Te(),n1=Bi(),r1=u0(),d0=Hd(),Ho=c0(),i1=He(),Xd=class n{ToJson(e=false){let t=new d0.SimpleJson.Writer;return this.WriteJson(t),t.toString()}toJson(e=false){return this.ToJson(e)}LoadJson(e){let t=d0.SimpleJson.TextToDictionary(e);this.LoadJsonObj(t),this.onDidLoadState!==null&&this.onDidLoadState();}VisitCountAtPathString(e){let t;if(this._patch!==null){let r=this.story.ContentAtPath(new h0.Path(e)).container;if(r===null)throw new Error("Content at path not found: "+e);if(t=this._patch.TryGetVisitCount(r,0),t.exists)return t.result}return t=(0, Ji.tryGetValueFromMap)(this._visitCounts,e,null),t.exists?t.result:0}VisitCountForContainer(e){if(e===null)return (0, at.throwNullException)("container");if(!e.visitsShouldBeCounted)return this.story.Error("Read count for target ("+e.name+" - on "+e.debugMetadata+") unknown. The story may need to be compiled with countAllVisits flag (-c)."),0;if(this._patch!==null){let i=this._patch.TryGetVisitCount(e,0);if(i.exists)return i.result}let t=e.path.toString(),r=(0, Ji.tryGetValueFromMap)(this._visitCounts,t,null);return r.exists?r.result:0}IncrementVisitCountForContainer(e){if(this._patch!==null){let i=this.VisitCountForContainer(e);i++,this._patch.SetVisitCount(e,i);return}let t=e.path.toString(),r=(0, Ji.tryGetValueFromMap)(this._visitCounts,t,null);r.exists?this._visitCounts.set(t,r.result+1):this._visitCounts.set(t,1);}RecordTurnIndexVisitToContainer(e){if(this._patch!==null){this._patch.SetTurnIndex(e,this.currentTurnIndex);return}let t=e.path.toString();this._turnIndices.set(t,this.currentTurnIndex);}TurnsSinceForContainer(e){if(e.turnIndexShouldBeCounted||this.story.Error("TURNS_SINCE() for target ("+e.name+" - on "+e.debugMetadata+") unknown. The story may need to be compiled with countAllVisits flag (-c)."),this._patch!==null){let i=this._patch.TryGetTurnIndex(e,0);if(i.exists)return this.currentTurnIndex-i.result}let t=e.path.toString(),r=(0, Ji.tryGetValueFromMap)(this._turnIndices,t,0);return r.exists?this.currentTurnIndex-r.result:-1}get callstackDepth(){return this.callStack.depth}get outputStream(){return this._currentFlow.outputStream}get currentChoices(){return this.canContinue?[]:this._currentFlow.currentChoices}get generatedChoices(){return this._currentFlow.currentChoices}get currentErrors(){return this._currentErrors}get currentWarnings(){return this._currentWarnings}get variablesState(){return this._variablesState}set variablesState(e){this._variablesState=e;}get callStack(){return this._currentFlow.callStack}get evaluationStack(){return this._evaluationStack}get currentTurnIndex(){return this._currentTurnIndex}set currentTurnIndex(e){this._currentTurnIndex=e;}get currentPathString(){let e=this.currentPointer;return e.isNull?null:e.path===null?(0, at.throwNullException)("pointer.path"):e.path.toString()}get previousPathString(){let e=this.previousPointer;return e.isNull?null:e.path===null?(0, at.throwNullException)("previousPointer.path"):e.path.toString()}get currentPointer(){return this.callStack.currentElement.currentPointer.copy()}set currentPointer(e){this.callStack.currentElement.currentPointer=e.copy();}get previousPointer(){return this.callStack.currentThread.previousPointer.copy()}set previousPointer(e){this.callStack.currentThread.previousPointer=e.copy();}get canContinue(){return !this.currentPointer.isNull&&!this.hasError}get hasError(){return this.currentErrors!=null&&this.currentErrors.length>0}get hasWarning(){return this.currentWarnings!=null&&this.currentWarnings.length>0}get currentText(){if(this._outputStreamTextDirty){let e=new Kd.StringBuilder,t=false;for(let r of this.outputStream){let i=(0, pe.asOrNull)(r,ye.StringValue);if(!t&&i!==null)e.Append(i.value);else {let a=(0, pe.asOrNull)(r,$e.ControlCommand);a!==null&&(a.commandType==$e.ControlCommand.CommandType.BeginTag?t=true:a.commandType==$e.ControlCommand.CommandType.EndTag&&(t=false));}}this._currentText=this.CleanOutputWhitespace(e.toString()),this._outputStreamTextDirty=false;}return this._currentText}CleanOutputWhitespace(e){let t=new Kd.StringBuilder,r=-1,i=0;for(let a=0;a<e.length;a++){let s=e.charAt(a),o=s==" "||s==" ";o&&r==-1&&(r=a),o||(s!=`
26
+ `);if(t=="<>")return new Xy.Glue;for(let a=0;a<n._controlCommandNames.length;++a){let s=n._controlCommandNames[a];if(t==s)return new U.ControlCommand(a)}if(t=="L^"&&(t="^"),qd.NativeFunctionCall.CallExistsWithName(t))return qd.NativeFunctionCall.CallWithName(t);if(t=="->->")return U.ControlCommand.PopTunnel();if(t=="~ret")return U.ControlCommand.PopFunction();if(t=="void")return new e0.Void}if(typeof e=="object"&&!Array.isArray(e)){let t=e,r;if(t["^->"])return r=t["^->"],new ze.DivertTargetValue(new LT.Path(r.toString()));if(t["^var"]){r=t["^var"];let c=new ze.VariablePointerValue(r.toString());return "ci"in t&&(r=t.ci,c.contextIndex=parseInt(r)),c}let i=false,a=false,s=br.PushPopType.Function,o=false;if((r=t["->"])?i=true:(r=t["f()"])?(i=true,a=true,s=br.PushPopType.Function):(r=t["->t->"])?(i=true,a=true,s=br.PushPopType.Tunnel):(r=t["x()"])&&(i=true,o=true,a=false,s=br.PushPopType.Function),i){let c=new Yy.Divert;c.pushesToStack=a,c.stackPushType=s,c.isExternal=o;let h=r.toString();return (r=t.var)?c.variableDivertName=h:c.targetPathString=h,c.isConditional=!!t.c,o&&(r=t.exArgs)&&(c.externalArgs=parseInt(r)),c}if(r=t["*"]){let c=new Zy.ChoicePoint;return c.pathStringOnChoice=r.toString(),(r=t.flg)&&(c.flags=parseInt(r)),c}if(r=t["VAR?"])return new jd.VariableReference(r.toString());if(r=t["CNT?"]){let c=new jd.VariableReference;return c.pathStringForCount=r.toString(),c}let u=false,l=false;if((r=t["VAR="])?(u=true,l=true):(r=t["temp="])&&(u=true,l=false),u){let c=r.toString(),h=!t.re,f=new Qy.VariableAssignment(c,h);return f.isGlobal=l,f}if(t["#"]!==void 0)return r=t["#"],new t0.Tag(r.toString());if(r=t.list){let c=r,h=new Vo.InkList;if(r=t.origins){let f=r;h.SetInitialOriginNames(f);}for(let f in c)if(c.hasOwnProperty(f)){let p=c[f],m=new Vo.InkListItem(f),g=parseInt(p);h.Add(m,g);}return new ze.ListValue(h)}if(t.originalChoicePath!=null)return this.JObjectToChoice(t)}if(Array.isArray(e))return this.JArrayToContainer(e);if(e==null)return null;throw new Error("Failed to convert token to runtime object: "+this.toJson(e,["parent"]))}static toJson(e,t,r){return JSON.stringify(e,(i,a)=>t?.some(s=>s===i)?void 0:a,r)}static WriteRuntimeContainer(e,t,r=false){if(e.WriteArrayStart(),t===null)return (0, Nn.throwNullException)("container");for(let u of t.content)this.WriteRuntimeObject(e,u);let i=t.namedOnlyContent,a=t.countFlags,s=t.name!=null&&!r,o=i!=null||a>0||s;if(o&&e.WriteObjectStart(),i!=null)for(let[u,l]of i){let c=u,h=(0, fe.asOrNull)(l,$o.Container);e.WritePropertyStart(c),this.WriteRuntimeContainer(e,h,true),e.WritePropertyEnd();}a>0&&e.WriteIntProperty("#f",a),s&&e.WriteProperty("#n",t.name),o?e.WriteObjectEnd():e.WriteNull(),e.WriteArrayEnd();}static JArrayToContainer(e){let t=new $o.Container;t.content=this.JArrayToRuntimeObjList(e,true);let r=e[e.length-1];if(r!=null){let i=new Map;for(let a in r)if(a=="#f")t.countFlags=parseInt(r[a]);else if(a=="#n")t.name=r[a].toString();else {let s=this.JTokenToRuntimeObject(r[a]),o=(0, fe.asOrNull)(s,$o.Container);o&&(o.name=a),i.set(a,s);}t.namedOnlyContent=i;}return t}static JObjectToChoice(e){let t=new n0.Choice;return t.text=e.text.toString(),t.index=parseInt(e.index),t.sourcePath=e.originalChoicePath.toString(),t.originalThreadIndex=parseInt(e.originalThreadIndex),t.pathStringOnChoice=e.targetPath.toString(),t.tags=this.JArrayToTags(e),t.isInvisibleDefault=!!e.isInvisibleDefault,t}static JArrayToTags(e){return e.tags?e.tags:null}static WriteChoice(e,t){e.WriteObjectStart(),e.WriteProperty("text",t.text),e.WriteIntProperty("index",t.index),e.WriteProperty("originalChoicePath",t.sourcePath),e.WriteIntProperty("originalThreadIndex",t.originalThreadIndex),e.WriteProperty("targetPath",t.pathStringOnChoice),e.WriteProperty("isInvisibleDefault",t.isInvisibleDefault),this.WriteChoiceTags(e,t),e.WriteObjectEnd();}static WriteChoiceTags(e,t){if(t.tags&&t.tags.length>0){e.WritePropertyStart("tags"),e.WriteArrayStart();for(let r of t.tags)e.Write(r);e.WriteArrayEnd(),e.WritePropertyEnd();}}static WriteInkList(e,t){let r=t.value;if(r===null)return (0, Nn.throwNullException)("rawList");e.WriteObjectStart(),e.WritePropertyStart("list"),e.WriteObjectStart();for(let[i,a]of r){let s=Vo.InkListItem.fromSerializedKey(i),o=a;if(s.itemName===null)return (0, Nn.throwNullException)("item.itemName");e.WritePropertyNameStart(),e.WritePropertyNameInner(s.originName?s.originName:"?"),e.WritePropertyNameInner("."),e.WritePropertyNameInner(s.itemName),e.WritePropertyNameEnd(),e.Write(o),e.WritePropertyEnd();}if(e.WriteObjectEnd(),e.WritePropertyEnd(),r.Count==0&&r.originNames!=null&&r.originNames.length>0){e.WritePropertyStart("origins"),e.WriteArrayStart();for(let i of r.originNames)e.Write(i);e.WriteArrayEnd(),e.WritePropertyEnd();}e.WriteObjectEnd();}static ListDefinitionsToJToken(e){let t={};for(let r of e.lists){let i={};for(let[a,s]of r.items){let o=Vo.InkListItem.fromSerializedKey(a);if(o.itemName===null)return (0, Nn.throwNullException)("item.itemName");i[o.itemName]=s;}t[r.name]=i;}return t}static JTokenToListDefinitions(e){let t=e,r=[];for(let i in t)if(t.hasOwnProperty(i)){let a=i.toString(),s=t[i],o=new Map;for(let l in s)if(t.hasOwnProperty(i)){let c=s[l];o.set(l,parseInt(c));}let u=new BT.ListDefinition(a,o);r.push(u);}return new WT.ListDefinitionsOrigin(r)}};qo.JsonSerialisation=jo;jo._controlCommandNames=(()=>{let n=[];n[U.ControlCommand.CommandType.EvalStart]="ev",n[U.ControlCommand.CommandType.EvalOutput]="out",n[U.ControlCommand.CommandType.EvalEnd]="/ev",n[U.ControlCommand.CommandType.Duplicate]="du",n[U.ControlCommand.CommandType.PopEvaluatedValue]="pop",n[U.ControlCommand.CommandType.PopFunction]="~ret",n[U.ControlCommand.CommandType.PopTunnel]="->->",n[U.ControlCommand.CommandType.BeginString]="str",n[U.ControlCommand.CommandType.EndString]="/str",n[U.ControlCommand.CommandType.NoOp]="nop",n[U.ControlCommand.CommandType.ChoiceCount]="choiceCnt",n[U.ControlCommand.CommandType.Turns]="turn",n[U.ControlCommand.CommandType.TurnsSince]="turns",n[U.ControlCommand.CommandType.ReadCount]="readc",n[U.ControlCommand.CommandType.Random]="rnd",n[U.ControlCommand.CommandType.SeedRandom]="srnd",n[U.ControlCommand.CommandType.VisitIndex]="visit",n[U.ControlCommand.CommandType.SequenceShuffleIndex]="seq",n[U.ControlCommand.CommandType.StartThread]="thread",n[U.ControlCommand.CommandType.Done]="done",n[U.ControlCommand.CommandType.End]="end",n[U.ControlCommand.CommandType.ListFromInt]="listInt",n[U.ControlCommand.CommandType.ListRange]="range",n[U.ControlCommand.CommandType.ListRandom]="lrnd",n[U.ControlCommand.CommandType.BeginTag]="#",n[U.ControlCommand.CommandType.EndTag]="/#";for(let e=0;e<U.ControlCommand.CommandType.TOTAL_VALUES;++e)if(n[e]==null)throw new Error("Control command not accounted for in serialisation");return n})();});var Wd=C(Li=>{Object.defineProperty(Li,"__esModule",{value:true});Li.CallStack=void 0;var Ld=Tn(),r0=Me(),MT=Bi(),i0=wr(),GT=ue(),JT=Dn(),ji=xi(),HT=gi(),s0=dr(),Bd=Te(),qi=class n{get elements(){return this.callStack}get depth(){return this.elements.length}get currentElement(){let t=this._threads[this._threads.length-1].callstack;return t[t.length-1]}get currentElementIndex(){return this.callStack.length-1}get currentThread(){return this._threads[this._threads.length-1]}set currentThread(e){HT.Debug.Assert(this._threads.length==1,"Shouldn't be directly setting the current thread when we have a stack of them"),this._threads.length=0,this._threads.push(e);}get canPop(){return this.callStack.length>1}constructor(){if(this._threadCounter=0,this._startOfRoot=ji.Pointer.Null,arguments[0]instanceof MT.Story){let e=arguments[0];this._startOfRoot=ji.Pointer.StartOf(e.rootContentContainer),this.Reset();}else {let e=arguments[0];this._threads=[];for(let t of e._threads)this._threads.push(t.Copy());this._threadCounter=e._threadCounter,this._startOfRoot=e._startOfRoot.copy();}}Reset(){this._threads=[],this._threads.push(new n.Thread),this._threads[0].callstack.push(new n.Element(Ld.PushPopType.Tunnel,this._startOfRoot));}SetJsonToken(e,t){this._threads.length=0;let r=e.threads;for(let i of r){let a=i,s=new n.Thread(a,t);this._threads.push(s);}this._threadCounter=parseInt(e.threadCounter),this._startOfRoot=ji.Pointer.StartOf(t.rootContentContainer);}WriteJson(e){e.WriteObject(t=>{t.WritePropertyStart("threads"),t.WriteArrayStart();for(let r of this._threads)r.WriteJson(t);t.WriteArrayEnd(),t.WritePropertyEnd(),t.WritePropertyStart("threadCounter"),t.WriteInt(this._threadCounter),t.WritePropertyEnd();});}PushThread(){let e=this.currentThread.Copy();this._threadCounter++,e.threadIndex=this._threadCounter,this._threads.push(e);}ForkThread(){let e=this.currentThread.Copy();return this._threadCounter++,e.threadIndex=this._threadCounter,e}PopThread(){if(this.canPopThread)this._threads.splice(this._threads.indexOf(this.currentThread),1);else throw new Error("Can't pop thread")}get canPopThread(){return this._threads.length>1&&!this.elementIsEvaluateFromGame}get elementIsEvaluateFromGame(){return this.currentElement.type==Ld.PushPopType.FunctionEvaluationFromGame}Push(e,t=0,r=0){let i=new n.Element(e,this.currentElement.currentPointer,false);i.evaluationStackHeightWhenPushed=t,i.functionStartInOutputStream=r,this.callStack.push(i);}CanPop(e=null){return this.canPop?e==null?true:this.currentElement.type==e:false}Pop(e=null){if(this.CanPop(e)){this.callStack.pop();return}else throw new Error("Mismatched push/pop in Callstack")}GetTemporaryVariableWithName(e,t=-1){t==-1&&(t=this.currentElementIndex+1);let r=this.callStack[t-1],i=(0, s0.tryGetValueFromMap)(r.temporaryVariables,e,null);return i.exists?i.result:null}SetTemporaryVariable(e,t,r,i=-1){i==-1&&(i=this.currentElementIndex+1);let a=this.callStack[i-1];if(!r&&!a.temporaryVariables.get(e))throw new Error("Could not find temporary variable to set: "+e);let s=(0, s0.tryGetValueFromMap)(a.temporaryVariables,e,null);s.exists&&GT.ListValue.RetainListOriginsForAssignment(s.result,t),a.temporaryVariables.set(e,t);}ContextForVariableNamed(e){return this.currentElement.temporaryVariables.get(e)?this.currentElementIndex+1:0}ThreadWithIndex(e){let t=this._threads.filter(r=>{if(r.threadIndex==e)return r});return t.length>0?t[0]:null}get callStack(){return this.currentThread.callstack}get callStackTrace(){let e=new JT.StringBuilder;for(let t=0;t<this._threads.length;t++){let r=this._threads[t],i=t==this._threads.length-1;e.AppendFormat(`=== THREAD {0}/{1} {2}===
27
+ `,t+1,this._threads.length,i?"(current) ":"");for(let a=0;a<r.callstack.length;a++){r.callstack[a].type==Ld.PushPopType.Function?e.Append(" [FUNCTION] "):e.Append(" [TUNNEL] ");let s=r.callstack[a].currentPointer;if(!s.isNull){if(e.Append("<SOMEWHERE IN "),s.container===null)return (0, Bd.throwNullException)("pointer.container");e.Append(s.container.path.toString()),e.AppendLine(">");}}}return e.toString()}};Li.CallStack=qi;(function(n){class e{constructor(i,a,s=false){this.evaluationStackHeightWhenPushed=0,this.functionStartInOutputStream=0,this.currentPointer=a.copy(),this.inExpressionEvaluation=s,this.temporaryVariables=new Map,this.type=i;}Copy(){let i=new e(this.type,this.currentPointer,this.inExpressionEvaluation);return i.temporaryVariables=new Map(this.temporaryVariables),i.evaluationStackHeightWhenPushed=this.evaluationStackHeightWhenPushed,i.functionStartInOutputStream=this.functionStartInOutputStream,i}}n.Element=e;class t{constructor(){if(this.threadIndex=0,this.previousPointer=ji.Pointer.Null,this.callstack=[],arguments[0]&&arguments[1]){let i=arguments[0],a=arguments[1];this.threadIndex=parseInt(i.threadIndex);let s=i.callstack;for(let u of s){let l=u,c=parseInt(l.type),h=ji.Pointer.Null,f,p=l.cPath;if(typeof p<"u"){f=p.toString();let E=a.ContentAtPath(new r0.Path(f));if(h.container=E.container,h.index=parseInt(l.idx),E.obj==null)throw new Error("When loading state, internal story location couldn't be found: "+f+". Has the story changed since this save data was created?");E.approximate&&(h.container!==null?a.Warning("When loading state, exact internal story location couldn't be found: '"+f+"', so it was approximated to '"+h.container.path.toString()+"' to recover. Has the story changed since this save data was created?"):a.Warning("When loading state, exact internal story location couldn't be found: '"+f+"' and it may not be recoverable. Has the story changed since this save data was created?"));}let m=!!l.exp,g=new e(c,h,m),v=l.temp;typeof v<"u"?g.temporaryVariables=i0.JsonSerialisation.JObjectToDictionaryRuntimeObjs(v):g.temporaryVariables.clear(),this.callstack.push(g);}let o=i.previousContentObject;if(typeof o<"u"){let u=new r0.Path(o.toString());this.previousPointer=a.PointerAtPath(u);}}}Copy(){let i=new t;i.threadIndex=this.threadIndex;for(let a of this.callstack)i.callstack.push(a.Copy());return i.previousPointer=this.previousPointer.copy(),i}WriteJson(i){i.WriteObjectStart(),i.WritePropertyStart("callstack"),i.WriteArrayStart();for(let a of this.callstack){if(i.WriteObjectStart(),!a.currentPointer.isNull){if(a.currentPointer.container===null)return (0, Bd.throwNullException)("el.currentPointer.container");i.WriteProperty("cPath",a.currentPointer.container.path.componentsString),i.WriteIntProperty("idx",a.currentPointer.index);}i.WriteProperty("exp",a.inExpressionEvaluation),i.WriteIntProperty("type",a.type),a.temporaryVariables.size>0&&(i.WritePropertyStart("temp"),i0.JsonSerialisation.WriteDictionaryRuntimeObjs(i,a.temporaryVariables),i.WritePropertyEnd()),i.WriteObjectEnd();}if(i.WriteArrayEnd(),i.WritePropertyEnd(),i.WriteIntProperty("threadIndex",this.threadIndex),!this.previousPointer.isNull){let a=this.previousPointer.Resolve();if(a===null)return (0, Bd.throwNullException)("this.previousPointer.Resolve()");i.WriteProperty("previousContentObject",a.path.toString());}i.WriteObjectEnd();}}n.Thread=t;})(qi||(Li.CallStack=qi={}));});var o0=C(Bo=>{Object.defineProperty(Bo,"__esModule",{value:true});Bo.VariablesState=void 0;var Se=ue(),UT=Ci(),a0=wr(),Oe=X(),Wi=dr(),tn=Te();function zT(){return class{}}var Lo=class n extends zT(){variableChangedEvent(e,t){for(let r of this.variableChangedEventCallbacks)r(e,t);}StartVariableObservation(){this._batchObservingVariableChanges=true,this._changedVariablesForBatchObs=new Set;}CompleteVariableObservation(){this._batchObservingVariableChanges=false;let e=new Map;if(this._changedVariablesForBatchObs!=null)for(let t of this._changedVariablesForBatchObs){let r=this._globalVariables.get(t);this.variableChangedEvent(t,r);}if(this.patch!=null)for(let t of this.patch.changedVariables){let r=this.patch.TryGetGlobal(t,null);r.exists&&e.set(t,r);}return this._changedVariablesForBatchObs=null,e}NotifyObservers(e){for(let[t,r]of e)this.variableChangedEvent(t,r);}get callStack(){return this._callStack}set callStack(e){this._callStack=e;}$(e,t){if(typeof t>"u"){let r=null;return this.patch!==null&&(r=this.patch.TryGetGlobal(e,null),r.exists)?r.result.valueObject:(r=this._globalVariables.get(e),typeof r>"u"&&(r=this._defaultGlobalVariables.get(e)),typeof r<"u"?r.valueObject:null)}else {if(typeof this._defaultGlobalVariables.get(e)>"u")throw new UT.StoryException("Cannot assign to a variable ("+e+") that hasn't been declared in the story");let r=Se.Value.Create(t);if(r==null)throw t==null?new Error("Cannot pass null to VariableState"):new Error("Invalid value passed to VariableState: "+t.toString());this.SetGlobal(e,r);}}constructor(e,t){super(),this.variableChangedEventCallbacks=[],this.patch=null,this._defaultGlobalVariables=new Map,this._changedVariablesForBatchObs=new Set,this._batchObservingVariableChanges=false,this._globalVariables=new Map,this._callStack=e,this._listDefsOrigin=t;try{return new Proxy(this,{get(i,a){return a in i?i[a]:i.$(a)},set(i,a,s){return a in i?i[a]=s:i.$(a,s),!0},ownKeys(i){return [...new Set([...i._defaultGlobalVariables.keys(),...i._globalVariables.keys()])]},getOwnPropertyDescriptor(i,a){return {enumerable:!0,configurable:!0,value:i.$(a)}}})}catch{}}ApplyPatch(){if(this.patch===null)return (0, tn.throwNullException)("this.patch");for(let[e,t]of this.patch.globals)this._globalVariables.set(e,t);if(this._changedVariablesForBatchObs!==null)for(let e of this.patch.changedVariables)this._changedVariablesForBatchObs.add(e);this.patch=null;}SetJsonToken(e){this._globalVariables.clear();for(let[t,r]of this._defaultGlobalVariables){let i=e[t];if(typeof i<"u"){let a=a0.JsonSerialisation.JTokenToRuntimeObject(i);if(a===null)return (0, tn.throwNullException)("tokenInkObject");this._globalVariables.set(t,a);}else this._globalVariables.set(t,r);}}WriteJson(e){e.WriteObjectStart();for(let[t,r]of this._globalVariables){let i=t,a=r;if(n.dontSaveDefaultValues&&this._defaultGlobalVariables.has(i)){let s=this._defaultGlobalVariables.get(i);if(this.RuntimeObjectsEqual(a,s))continue}e.WritePropertyStart(i),a0.JsonSerialisation.WriteRuntimeObject(e,a),e.WritePropertyEnd();}e.WriteObjectEnd();}RuntimeObjectsEqual(e,t){if(e===null)return (0, tn.throwNullException)("obj1");if(t===null)return (0, tn.throwNullException)("obj2");if(e.constructor!==t.constructor)return false;let r=(0, Oe.asOrNull)(e,Se.BoolValue);if(r!==null)return r.value===(0, Oe.asOrThrows)(t,Se.BoolValue).value;let i=(0, Oe.asOrNull)(e,Se.IntValue);if(i!==null)return i.value===(0, Oe.asOrThrows)(t,Se.IntValue).value;let a=(0, Oe.asOrNull)(e,Se.FloatValue);if(a!==null)return a.value===(0, Oe.asOrThrows)(t,Se.FloatValue).value;let s=(0, Oe.asOrNull)(e,Se.Value),o=(0, Oe.asOrNull)(t,Se.Value);if(s!==null&&o!==null)return (0, Oe.isEquatable)(s.valueObject)&&(0, Oe.isEquatable)(o.valueObject)?s.valueObject.Equals(o.valueObject):s.valueObject===o.valueObject;throw new Error("FastRoughDefinitelyEquals: Unsupported runtime object type: "+e.constructor.name)}GetVariableWithName(e,t=-1){let r=this.GetRawVariableWithName(e,t),i=(0, Oe.asOrNull)(r,Se.VariablePointerValue);return i!==null&&(r=this.ValueAtVariablePointer(i)),r}TryGetDefaultVariableValue(e){let t=(0, Wi.tryGetValueFromMap)(this._defaultGlobalVariables,e,null);return t.exists?t.result:null}GlobalVariableExistsWithName(e){return this._globalVariables.has(e)||this._defaultGlobalVariables!==null&&this._defaultGlobalVariables.has(e)}GetRawVariableWithName(e,t){let r=null;if(t==0||t==-1){let i=null;if(this.patch!==null&&(i=this.patch.TryGetGlobal(e,null),i.exists)||(i=(0, Wi.tryGetValueFromMap)(this._globalVariables,e,null),i.exists)||this._defaultGlobalVariables!==null&&(i=(0, Wi.tryGetValueFromMap)(this._defaultGlobalVariables,e,null),i.exists))return i.result;if(this._listDefsOrigin===null)return (0, tn.throwNullException)("VariablesState._listDefsOrigin");let a=this._listDefsOrigin.FindSingleItemListWithName(e);if(a)return a}return r=this._callStack.GetTemporaryVariableWithName(e,t),r}ValueAtVariablePointer(e){return this.GetVariableWithName(e.variableName,e.contextIndex)}Assign(e,t){let r=e.variableName;if(r===null)return (0, tn.throwNullException)("name");let i=-1,a=false;if(e.isNewDeclaration?a=e.isGlobal:a=this.GlobalVariableExistsWithName(r),e.isNewDeclaration){let s=(0, Oe.asOrNull)(t,Se.VariablePointerValue);s!==null&&(t=this.ResolveVariablePointer(s));}else {let s=null;do s=(0, Oe.asOrNull)(this.GetRawVariableWithName(r,i),Se.VariablePointerValue),s!=null&&(r=s.variableName,i=s.contextIndex,a=i==0);while(s!=null)}a?this.SetGlobal(r,t):this._callStack.SetTemporaryVariable(r,t,e.isNewDeclaration,i);}SnapshotDefaultGlobals(){this._defaultGlobalVariables=new Map(this._globalVariables);}RetainListOriginsForAssignment(e,t){let r=(0, Oe.asOrThrows)(e,Se.ListValue),i=(0, Oe.asOrThrows)(t,Se.ListValue);r.value&&i.value&&i.value.Count==0&&i.value.SetInitialOriginNames(r.value.originNames);}SetGlobal(e,t){let r=null;if(this.patch===null&&(r=(0, Wi.tryGetValueFromMap)(this._globalVariables,e,null)),this.patch!==null&&(r=this.patch.TryGetGlobal(e,null),r.exists||(r=(0, Wi.tryGetValueFromMap)(this._globalVariables,e,null))),Se.ListValue.RetainListOriginsForAssignment(r.result,t),e===null)return (0, tn.throwNullException)("variableName");if(this.patch!==null?this.patch.SetGlobal(e,t):this._globalVariables.set(e,t),this.variableChangedEvent!==null&&r!==null&&t!==r.result)if(this._batchObservingVariableChanges){if(this._changedVariablesForBatchObs===null)return (0, tn.throwNullException)("this._changedVariablesForBatchObs");this.patch!==null?this.patch.AddChangedVariable(e):this._changedVariablesForBatchObs!==null&&this._changedVariablesForBatchObs.add(e);}else this.variableChangedEvent(e,t);}ResolveVariablePointer(e){let t=e.contextIndex;t==-1&&(t=this.GetContextIndexOfVariableNamed(e.variableName));let r=this.GetRawVariableWithName(e.variableName,t),i=(0, Oe.asOrNull)(r,Se.VariablePointerValue);return i??new Se.VariablePointerValue(e.variableName,t)}GetContextIndexOfVariableNamed(e){return this.GlobalVariableExistsWithName(e)?0:this._callStack.currentElementIndex}ObserveVariableChange(e){this.variableChangedEventCallbacks.push(e);}};Bo.VariablesState=Lo;Lo.dontSaveDefaultValues=true;});var Gd=C(Wo=>{Object.defineProperty(Wo,"__esModule",{value:true});Wo.PRNG=void 0;var Md=class{constructor(e){this.seed=e%2147483647,this.seed<=0&&(this.seed+=2147483646);}next(){return this.seed=this.seed*48271%2147483647}nextFloat(){return (this.next()-1)/2147483646}};Wo.PRNG=Md;});var u0=C(Mo=>{Object.defineProperty(Mo,"__esModule",{value:true});Mo.StatePatch=void 0;var Jd=class{get globals(){return this._globals}get changedVariables(){return this._changedVariables}get visitCounts(){return this._visitCounts}get turnIndices(){return this._turnIndices}constructor(){if(this._changedVariables=new Set,this._visitCounts=new Map,this._turnIndices=new Map,arguments.length===1&&arguments[0]!==null){let e=arguments[0];this._globals=new Map(e._globals),this._changedVariables=new Set(e._changedVariables),this._visitCounts=new Map(e._visitCounts),this._turnIndices=new Map(e._turnIndices);}else this._globals=new Map,this._changedVariables=new Set,this._visitCounts=new Map,this._turnIndices=new Map;}TryGetGlobal(e,t){return e!==null&&this._globals.has(e)?{result:this._globals.get(e),exists:true}:{result:t,exists:false}}SetGlobal(e,t){this._globals.set(e,t);}AddChangedVariable(e){return this._changedVariables.add(e)}TryGetVisitCount(e,t){return this._visitCounts.has(e)?{result:this._visitCounts.get(e),exists:true}:{result:t,exists:false}}SetVisitCount(e,t){this._visitCounts.set(e,t);}SetTurnIndex(e,t){this._turnIndices.set(e,t);}TryGetTurnIndex(e,t){return this._turnIndices.has(e)?{result:this._turnIndices.get(e),exists:true}:{result:t,exists:false}}};Mo.StatePatch=Jd;});var Hd=C(Gi=>{Object.defineProperty(Gi,"__esModule",{value:true});Gi.SimpleJson=void 0;var Mi=class n{static TextToDictionary(e){return new n.Reader(e).ToDictionary()}static TextToArray(e){return new n.Reader(e).ToArray()}};Gi.SimpleJson=Mi;(function(n){class e{constructor(i){if(JSON.parse("0",(s,o,u)=>u!=null)){let s=(o,u,l)=>Number.isInteger(u)&&l.source.endsWith(".0")?l.source+"f":u;this._rootObject=JSON.parse(i,s);}else {let s=i.replace(/(,\s*)([0-9]+\.[0]+)([,]*)/g,'$1"$2f"$3');this._rootObject=JSON.parse(s);}}ToDictionary(){return this._rootObject}ToArray(){return this._rootObject}}n.Reader=e;class t{constructor(){this._currentPropertyName=null,this._currentString=null,this._stateStack=[],this._collectionStack=[],this._propertyNameStack=[],this._jsonObject=null;}WriteObject(i){this.WriteObjectStart(),i(this),this.WriteObjectEnd();}WriteObjectStart(){this.StartNewObject(true);let i={};if(this.state===n.Writer.State.Property){this.Assert(this.currentCollection!==null),this.Assert(this.currentPropertyName!==null);let a=this._propertyNameStack.pop();this.currentCollection[a]=i,this._collectionStack.push(i);}else this.state===n.Writer.State.Array?(this.Assert(this.currentCollection!==null),this.currentCollection.push(i),this._collectionStack.push(i)):(this.Assert(this.state===n.Writer.State.None),this._jsonObject=i,this._collectionStack.push(i));this._stateStack.push(new n.Writer.StateElement(n.Writer.State.Object));}WriteObjectEnd(){this.Assert(this.state===n.Writer.State.Object),this._collectionStack.pop(),this._stateStack.pop();}WriteProperty(i,a){if(this.WritePropertyStart(i),arguments[1]instanceof Function){let s=arguments[1];s(this);}else {let s=arguments[1];this.Write(s);}this.WritePropertyEnd();}WriteIntProperty(i,a){this.WritePropertyStart(i),this.WriteInt(a),this.WritePropertyEnd();}WriteFloatProperty(i,a){this.WritePropertyStart(i),this.WriteFloat(a),this.WritePropertyEnd();}WritePropertyStart(i){this.Assert(this.state===n.Writer.State.Object),this._propertyNameStack.push(i),this.IncrementChildCount(),this._stateStack.push(new n.Writer.StateElement(n.Writer.State.Property));}WritePropertyEnd(){this.Assert(this.state===n.Writer.State.Property),this.Assert(this.childCount===1),this._stateStack.pop();}WritePropertyNameStart(){this.Assert(this.state===n.Writer.State.Object),this.IncrementChildCount(),this._currentPropertyName="",this._stateStack.push(new n.Writer.StateElement(n.Writer.State.Property)),this._stateStack.push(new n.Writer.StateElement(n.Writer.State.PropertyName));}WritePropertyNameEnd(){this.Assert(this.state===n.Writer.State.PropertyName),this.Assert(this._currentPropertyName!==null),this._propertyNameStack.push(this._currentPropertyName),this._currentPropertyName=null,this._stateStack.pop();}WritePropertyNameInner(i){this.Assert(this.state===n.Writer.State.PropertyName),this.Assert(this._currentPropertyName!==null),this._currentPropertyName+=i;}WriteArrayStart(){this.StartNewObject(true);let i=[];if(this.state===n.Writer.State.Property){this.Assert(this.currentCollection!==null),this.Assert(this.currentPropertyName!==null);let a=this._propertyNameStack.pop();this.currentCollection[a]=i,this._collectionStack.push(i);}else this.state===n.Writer.State.Array?(this.Assert(this.currentCollection!==null),this.currentCollection.push(i),this._collectionStack.push(i)):(this.Assert(this.state===n.Writer.State.None),this._jsonObject=i,this._collectionStack.push(i));this._stateStack.push(new n.Writer.StateElement(n.Writer.State.Array));}WriteArrayEnd(){this.Assert(this.state===n.Writer.State.Array),this._collectionStack.pop(),this._stateStack.pop();}Write(i,a=true){if(i===null){console.error("Warning: trying to write a null value");return}this.StartNewObject(false),this._addToCurrentObject(i);}WriteBool(i){i!==null&&(this.StartNewObject(false),this._addToCurrentObject(i));}WriteInt(i){i!==null&&(this.StartNewObject(false),this._addToCurrentObject(Math.floor(i)));}WriteFloat(i){i!==null&&(this.StartNewObject(false),i==Number.POSITIVE_INFINITY?this._addToCurrentObject(34e37):i==Number.NEGATIVE_INFINITY?this._addToCurrentObject(-34e37):isNaN(i)?this._addToCurrentObject(0):this._addToCurrentObject(i));}WriteNull(){this.StartNewObject(false),this._addToCurrentObject(null);}WriteStringStart(){this.StartNewObject(false),this._currentString="",this._stateStack.push(new n.Writer.StateElement(n.Writer.State.String));}WriteStringEnd(){this.Assert(this.state==n.Writer.State.String),this._stateStack.pop(),this._addToCurrentObject(this._currentString),this._currentString=null;}WriteStringInner(i,a=true){if(this.Assert(this.state===n.Writer.State.String),i===null){console.error("Warning: trying to write a null string");return}this._currentString+=i;}toString(){return this._jsonObject===null?"":JSON.stringify(this._jsonObject)}StartNewObject(i){i?this.Assert(this.state===n.Writer.State.None||this.state===n.Writer.State.Property||this.state===n.Writer.State.Array):this.Assert(this.state===n.Writer.State.Property||this.state===n.Writer.State.Array),this.state===n.Writer.State.Property&&this.Assert(this.childCount===0),(this.state===n.Writer.State.Array||this.state===n.Writer.State.Property)&&this.IncrementChildCount();}get state(){return this._stateStack.length>0?this._stateStack[this._stateStack.length-1].type:n.Writer.State.None}get childCount(){return this._stateStack.length>0?this._stateStack[this._stateStack.length-1].childCount:0}get currentCollection(){return this._collectionStack.length>0?this._collectionStack[this._collectionStack.length-1]:null}get currentPropertyName(){return this._propertyNameStack.length>0?this._propertyNameStack[this._propertyNameStack.length-1]:null}IncrementChildCount(){this.Assert(this._stateStack.length>0);let i=this._stateStack.pop();i.childCount++,this._stateStack.push(i);}Assert(i){if(!i)throw Error("Assert failed while writing JSON")}_addToCurrentObject(i){this.Assert(this.currentCollection!==null),this.state===n.Writer.State.Array?(this.Assert(Array.isArray(this.currentCollection)),this.currentCollection.push(i)):this.state===n.Writer.State.Property&&(this.Assert(!Array.isArray(this.currentCollection)),this.Assert(this.currentPropertyName!==null),this.currentCollection[this.currentPropertyName]=i,this._propertyNameStack.pop());}}n.Writer=t,(function(r){(function(s){s[s.None=0]="None",s[s.Object=1]="Object",s[s.Array=2]="Array",s[s.Property=3]="Property",s[s.PropertyName=4]="PropertyName",s[s.String=5]="String";})(r.State||(r.State={}));class a{constructor(o){this.type=n.Writer.State.None,this.childCount=0,this.type=o;}}r.StateElement=a;})(t=n.Writer||(n.Writer={}));})(Mi||(Gi.SimpleJson=Mi={}));});var c0=C(Jo=>{Object.defineProperty(Jo,"__esModule",{value:true});Jo.Flow=void 0;var l0=Wd(),Go=wr(),KT=Te(),Ud=class{constructor(){let e=arguments[0],t=arguments[1];if(this.name=e,this.callStack=new l0.CallStack(t),arguments[2]){let r=arguments[2];this.callStack.SetJsonToken(r.callstack,t),this.outputStream=Go.JsonSerialisation.JArrayToRuntimeObjList(r.outputStream),this.currentChoices=Go.JsonSerialisation.JArrayToRuntimeObjList(r.currentChoices);let i=r.choiceThreads;typeof i<"u"&&this.LoadFlowChoiceThreads(i,t);}else this.outputStream=[],this.currentChoices=[];}WriteJson(e){e.WriteObjectStart(),e.WriteProperty("callstack",r=>this.callStack.WriteJson(r)),e.WriteProperty("outputStream",r=>Go.JsonSerialisation.WriteListRuntimeObjs(r,this.outputStream));let t=false;for(let r of this.currentChoices){if(r.threadAtGeneration===null)return (0, KT.throwNullException)("c.threadAtGeneration");r.originalThreadIndex=r.threadAtGeneration.threadIndex,this.callStack.ThreadWithIndex(r.originalThreadIndex)===null&&(t||(t=true,e.WritePropertyStart("choiceThreads"),e.WriteObjectStart()),e.WritePropertyStart(r.originalThreadIndex),r.threadAtGeneration.WriteJson(e),e.WritePropertyEnd());}t&&(e.WriteObjectEnd(),e.WritePropertyEnd()),e.WriteProperty("currentChoices",r=>{r.WriteArrayStart();for(let i of this.currentChoices)Go.JsonSerialisation.WriteChoice(r,i);r.WriteArrayEnd();}),e.WriteObjectEnd();}LoadFlowChoiceThreads(e,t){for(let r of this.currentChoices){let i=this.callStack.ThreadWithIndex(r.originalThreadIndex);if(i!==null)r.threadAtGeneration=i.Copy();else {let a=e[`${r.originalThreadIndex}`];r.threadAtGeneration=new l0.CallStack.Thread(a,t);}}}};Jo.Flow=Ud;});var f0=C(Uo=>{Object.defineProperty(Uo,"__esModule",{value:true});Uo.StoryState=void 0;var XT=Wd(),YT=o0(),ye=ue(),nn=Tn(),ZT=Io(),zd=bo(),h0=Me(),$e=xe(),Kd=Dn(),rn=wr(),QT=Gd(),e1=Pn(),Dr=xi(),Ji=dr(),pe=X(),t1=gi(),at=Te(),n1=Bi(),r1=u0(),d0=Hd(),Ho=c0(),i1=He(),Xd=class n{ToJson(e=false){let t=new d0.SimpleJson.Writer;return this.WriteJson(t),t.toString()}toJson(e=false){return this.ToJson(e)}LoadJson(e){let t=d0.SimpleJson.TextToDictionary(e);this.LoadJsonObj(t),this.onDidLoadState!==null&&this.onDidLoadState();}VisitCountAtPathString(e){let t;if(this._patch!==null){let r=this.story.ContentAtPath(new h0.Path(e)).container;if(r===null)throw new Error("Content at path not found: "+e);if(t=this._patch.TryGetVisitCount(r,0),t.exists)return t.result}return t=(0, Ji.tryGetValueFromMap)(this._visitCounts,e,null),t.exists?t.result:0}VisitCountForContainer(e){if(e===null)return (0, at.throwNullException)("container");if(!e.visitsShouldBeCounted)return this.story.Error("Read count for target ("+e.name+" - on "+e.debugMetadata+") unknown. The story may need to be compiled with countAllVisits flag (-c)."),0;if(this._patch!==null){let i=this._patch.TryGetVisitCount(e,0);if(i.exists)return i.result}let t=e.path.toString(),r=(0, Ji.tryGetValueFromMap)(this._visitCounts,t,null);return r.exists?r.result:0}IncrementVisitCountForContainer(e){if(this._patch!==null){let i=this.VisitCountForContainer(e);i++,this._patch.SetVisitCount(e,i);return}let t=e.path.toString(),r=(0, Ji.tryGetValueFromMap)(this._visitCounts,t,null);r.exists?this._visitCounts.set(t,r.result+1):this._visitCounts.set(t,1);}RecordTurnIndexVisitToContainer(e){if(this._patch!==null){this._patch.SetTurnIndex(e,this.currentTurnIndex);return}let t=e.path.toString();this._turnIndices.set(t,this.currentTurnIndex);}TurnsSinceForContainer(e){if(e.turnIndexShouldBeCounted||this.story.Error("TURNS_SINCE() for target ("+e.name+" - on "+e.debugMetadata+") unknown. The story may need to be compiled with countAllVisits flag (-c)."),this._patch!==null){let i=this._patch.TryGetTurnIndex(e,0);if(i.exists)return this.currentTurnIndex-i.result}let t=e.path.toString(),r=(0, Ji.tryGetValueFromMap)(this._turnIndices,t,0);return r.exists?this.currentTurnIndex-r.result:-1}get callstackDepth(){return this.callStack.depth}get outputStream(){return this._currentFlow.outputStream}get currentChoices(){return this.canContinue?[]:this._currentFlow.currentChoices}get generatedChoices(){return this._currentFlow.currentChoices}get currentErrors(){return this._currentErrors}get currentWarnings(){return this._currentWarnings}get variablesState(){return this._variablesState}set variablesState(e){this._variablesState=e;}get callStack(){return this._currentFlow.callStack}get evaluationStack(){return this._evaluationStack}get currentTurnIndex(){return this._currentTurnIndex}set currentTurnIndex(e){this._currentTurnIndex=e;}get currentPathString(){let e=this.currentPointer;return e.isNull?null:e.path===null?(0, at.throwNullException)("pointer.path"):e.path.toString()}get previousPathString(){let e=this.previousPointer;return e.isNull?null:e.path===null?(0, at.throwNullException)("previousPointer.path"):e.path.toString()}get currentPointer(){return this.callStack.currentElement.currentPointer.copy()}set currentPointer(e){this.callStack.currentElement.currentPointer=e.copy();}get previousPointer(){return this.callStack.currentThread.previousPointer.copy()}set previousPointer(e){this.callStack.currentThread.previousPointer=e.copy();}get canContinue(){return !this.currentPointer.isNull&&!this.hasError}get hasError(){return this.currentErrors!=null&&this.currentErrors.length>0}get hasWarning(){return this.currentWarnings!=null&&this.currentWarnings.length>0}get currentText(){if(this._outputStreamTextDirty){let e=new Kd.StringBuilder,t=false;for(let r of this.outputStream){let i=(0, pe.asOrNull)(r,ye.StringValue);if(!t&&i!==null)e.Append(i.value);else {let a=(0, pe.asOrNull)(r,$e.ControlCommand);a!==null&&(a.commandType==$e.ControlCommand.CommandType.BeginTag?t=true:a.commandType==$e.ControlCommand.CommandType.EndTag&&(t=false));}}this._currentText=this.CleanOutputWhitespace(e.toString()),this._outputStreamTextDirty=false;}return this._currentText}CleanOutputWhitespace(e){let t=new Kd.StringBuilder,r=-1,i=0;for(let a=0;a<e.length;a++){let s=e.charAt(a),o=s==" "||s==" ";o&&r==-1&&(r=a),o||(s!=`
28
28
  `&&r>0&&r!=i&&t.Append(" "),r=-1),s==`
29
- `&&(i=a+1),o||t.Append(s);}return t.toString()}get currentTags(){if(this._outputStreamTagsDirty){this._currentTags=[];let e=false,t=new Kd.StringBuilder;for(let r of this.outputStream){let i=(0, pe.asOrNull)(r,$e.ControlCommand);if(i!=null){if(i.commandType==$e.ControlCommand.CommandType.BeginTag){if(e&&t.Length>0){let a=this.CleanOutputWhitespace(t.toString());this._currentTags.push(a),t.Clear();}e=true;}else if(i.commandType==$e.ControlCommand.CommandType.EndTag){if(t.Length>0){let a=this.CleanOutputWhitespace(t.toString());this._currentTags.push(a),t.Clear();}e=false;}}else if(e){let a=(0, pe.asOrNull)(r,ye.StringValue);a!==null&&t.Append(a.value);}else {let a=(0, pe.asOrNull)(r,ZT.Tag);a!=null&&a.text!=null&&a.text.length>0&&this._currentTags.push(a.text);}}if(t.Length>0){let r=this.CleanOutputWhitespace(t.toString());this._currentTags.push(r),t.Clear();}this._outputStreamTagsDirty=false;}return this._currentTags}get currentFlowName(){return this._currentFlow.name}get currentFlowIsDefaultFlow(){return this._currentFlow.name==this.kDefaultFlowName}get aliveFlowNames(){if(this._aliveFlowNamesDirty){if(this._aliveFlowNames=[],this._namedFlows!=null)for(let e of this._namedFlows.keys())e!=this.kDefaultFlowName&&this._aliveFlowNames.push(e);this._aliveFlowNamesDirty=false;}return this._aliveFlowNames}get inExpressionEvaluation(){return this.callStack.currentElement.inExpressionEvaluation}set inExpressionEvaluation(e){this.callStack.currentElement.inExpressionEvaluation=e;}constructor(e){this.kInkSaveStateVersion=10,this.kMinCompatibleLoadVersion=8,this.onDidLoadState=null,this._currentErrors=null,this._currentWarnings=null,this.divertedPointer=wr.Pointer.Null,this._currentTurnIndex=0,this.storySeed=0,this.previousRandom=0,this.didSafeExit=false,this._currentText=null,this._currentTags=null,this._outputStreamTextDirty=true,this._outputStreamTagsDirty=true,this._patch=null,this._aliveFlowNames=null,this._namedFlows=null,this.kDefaultFlowName="DEFAULT_FLOW",this._aliveFlowNamesDirty=true,this.story=e,this._currentFlow=new Ho.Flow(this.kDefaultFlowName,e),this.OutputStreamDirty(),this._aliveFlowNamesDirty=true,this._evaluationStack=[],this._variablesState=new YT.VariablesState(this.callStack,e.listDefinitions),this._visitCounts=new Map,this._turnIndices=new Map,this.currentTurnIndex=-1;let t=new Date().getTime();this.storySeed=new QT.PRNG(t).next()%100,this.previousRandom=0,this.GoToStart();}GoToStart(){this.callStack.currentElement.currentPointer=wr.Pointer.StartOf(this.story.mainContentContainer);}SwitchFlow_Internal(e){if(e===null)throw new Error("Must pass a non-null string to Story.SwitchFlow");if(this._namedFlows===null&&(this._namedFlows=new Map,this._namedFlows.set(this.kDefaultFlowName,this._currentFlow)),e===this._currentFlow.name)return;let t,r=(0, Ji.tryGetValueFromMap)(this._namedFlows,e,null);r.exists?t=r.result:(t=new Ho.Flow(e,this.story),this._namedFlows.set(e,t),this._aliveFlowNamesDirty=true),this._currentFlow=t,this.variablesState.callStack=this._currentFlow.callStack,this.OutputStreamDirty();}SwitchToDefaultFlow_Internal(){this._namedFlows!==null&&this.SwitchFlow_Internal(this.kDefaultFlowName);}RemoveFlow_Internal(e){if(e===null)throw new Error("Must pass a non-null string to Story.DestroyFlow");if(e===this.kDefaultFlowName)throw new Error("Cannot destroy default flow");if(this._currentFlow.name===e&&this.SwitchToDefaultFlow_Internal(),this._namedFlows===null)return (0, at.throwNullException)("this._namedFlows");this._namedFlows.delete(e),this._aliveFlowNamesDirty=true;}CopyAndStartPatching(e){let t=new n(this.story);if(t._patch=new r1.StatePatch(this._patch),t._currentFlow.name=this._currentFlow.name,t._currentFlow.callStack=new XT.CallStack(this._currentFlow.callStack),t._currentFlow.outputStream.push(...this._currentFlow.outputStream),t.OutputStreamDirty(),e)for(let r of this._currentFlow.currentChoices)t._currentFlow.currentChoices.push(r.Clone());else t._currentFlow.currentChoices.push(...this._currentFlow.currentChoices);if(this._namedFlows!==null){t._namedFlows=new Map;for(let[r,i]of this._namedFlows)t._namedFlows.set(r,i),t._aliveFlowNamesDirty=true;t._namedFlows.set(this._currentFlow.name,t._currentFlow);}return this.hasError&&(t._currentErrors=[],t._currentErrors.push(...this.currentErrors||[])),this.hasWarning&&(t._currentWarnings=[],t._currentWarnings.push(...this.currentWarnings||[])),t.variablesState=this.variablesState,t.variablesState.callStack=t.callStack,t.variablesState.patch=t._patch,t.evaluationStack.push(...this.evaluationStack),this.divertedPointer.isNull||(t.divertedPointer=this.divertedPointer.copy()),t.previousPointer=this.previousPointer.copy(),t._visitCounts=this._visitCounts,t._turnIndices=this._turnIndices,t.currentTurnIndex=this.currentTurnIndex,t.storySeed=this.storySeed,t.previousRandom=this.previousRandom,t.didSafeExit=this.didSafeExit,t}RestoreAfterPatch(){this.variablesState.callStack=this.callStack,this.variablesState.patch=this._patch;}ApplyAnyPatch(){if(this._patch!==null){this.variablesState.ApplyPatch();for(let[e,t]of this._patch.visitCounts)this.ApplyCountChanges(e,t,true);for(let[e,t]of this._patch.turnIndices)this.ApplyCountChanges(e,t,false);this._patch=null;}}ApplyCountChanges(e,t,r){(r?this._visitCounts:this._turnIndices).set(e.path.toString(),t);}WriteJson(e){if(e.WriteObjectStart(),e.WritePropertyStart("flows"),e.WriteObjectStart(),this._namedFlows!==null)for(let[t,r]of this._namedFlows)e.WriteProperty(t,i=>r.WriteJson(i));else e.WriteProperty(this._currentFlow.name,t=>this._currentFlow.WriteJson(t));if(e.WriteObjectEnd(),e.WritePropertyEnd(),e.WriteProperty("currentFlowName",this._currentFlow.name),e.WriteProperty("variablesState",t=>this.variablesState.WriteJson(t)),e.WriteProperty("evalStack",t=>rn.JsonSerialisation.WriteListRuntimeObjs(t,this.evaluationStack)),!this.divertedPointer.isNull){if(this.divertedPointer.path===null)return (0, at.throwNullException)("divertedPointer");e.WriteProperty("currentDivertTarget",this.divertedPointer.path.componentsString);}e.WriteProperty("visitCounts",t=>rn.JsonSerialisation.WriteIntDictionary(t,this._visitCounts)),e.WriteProperty("turnIndices",t=>rn.JsonSerialisation.WriteIntDictionary(t,this._turnIndices)),e.WriteIntProperty("turnIdx",this.currentTurnIndex),e.WriteIntProperty("storySeed",this.storySeed),e.WriteIntProperty("previousRandom",this.previousRandom),e.WriteIntProperty("inkSaveVersion",this.kInkSaveStateVersion),e.WriteIntProperty("inkFormatVersion",n1.Story.inkVersionCurrent),e.WriteObjectEnd();}LoadJsonObj(e){let t=e,r=t.inkSaveVersion;if(r==null)throw new Error("ink save format incorrect, can't load.");if(parseInt(r)<this.kMinCompatibleLoadVersion)throw new Error("Ink save format isn't compatible with the current version (saw '"+r+"', but minimum is "+this.kMinCompatibleLoadVersion+"), so can't load.");let i=t.flows;if(i!=null){let s=i;Object.keys(s).length===1?this._namedFlows=null:this._namedFlows===null?this._namedFlows=new Map:this._namedFlows.clear();let o=Object.entries(s);for(let[u,l]of o){let c=u,h=l,f=new Ho.Flow(c,this.story,h);if(Object.keys(s).length===1)this._currentFlow=new Ho.Flow(c,this.story,h);else {if(this._namedFlows===null)return (0, at.throwNullException)("this._namedFlows");this._namedFlows.set(c,f);}}if(this._namedFlows!=null&&this._namedFlows.size>1){let u=t.currentFlowName;this._currentFlow=this._namedFlows.get(u);}}else {this._namedFlows=null,this._currentFlow.name=this.kDefaultFlowName,this._currentFlow.callStack.SetJsonToken(t.callstackThreads,this.story),this._currentFlow.outputStream=rn.JsonSerialisation.JArrayToRuntimeObjList(t.outputStream),this._currentFlow.currentChoices=rn.JsonSerialisation.JArrayToRuntimeObjList(t.currentChoices);let s=t.choiceThreads;this._currentFlow.LoadFlowChoiceThreads(s,this.story);}this.OutputStreamDirty(),this._aliveFlowNamesDirty=true,this.variablesState.SetJsonToken(t.variablesState),this.variablesState.callStack=this._currentFlow.callStack,this._evaluationStack=rn.JsonSerialisation.JArrayToRuntimeObjList(t.evalStack);let a=t.currentDivertTarget;if(a!=null){let s=new h0.Path(a.toString());this.divertedPointer=this.story.PointerAtPath(s);}this._visitCounts=rn.JsonSerialisation.JObjectToIntDictionary(t.visitCounts),this._turnIndices=rn.JsonSerialisation.JObjectToIntDictionary(t.turnIndices),this.currentTurnIndex=parseInt(t.turnIdx),this.storySeed=parseInt(t.storySeed),this.previousRandom=parseInt(t.previousRandom);}ResetErrors(){this._currentErrors=null,this._currentWarnings=null;}ResetOutput(e=null){this.outputStream.length=0,e!==null&&this.outputStream.push(...e),this.OutputStreamDirty();}PushToOutputStream(e){let t=(0, pe.asOrNull)(e,ye.StringValue);if(t!==null){let r=this.TrySplittingHeadTailWhitespace(t);if(r!==null){for(let i of r)this.PushToOutputStreamIndividual(i);this.OutputStreamDirty();return}}this.PushToOutputStreamIndividual(e),this.OutputStreamDirty();}PopFromOutputStream(e){this.outputStream.splice(this.outputStream.length-e,e),this.OutputStreamDirty();}TrySplittingHeadTailWhitespace(e){let t=e.value;if(t===null)return (0, at.throwNullException)("single.value");let r=-1,i=-1;for(let c=0;c<t.length;c++){let h=t[c];if(h==`
29
+ `&&(i=a+1),o||t.Append(s);}return t.toString()}get currentTags(){if(this._outputStreamTagsDirty){this._currentTags=[];let e=false,t=new Kd.StringBuilder;for(let r of this.outputStream){let i=(0, pe.asOrNull)(r,$e.ControlCommand);if(i!=null){if(i.commandType==$e.ControlCommand.CommandType.BeginTag){if(e&&t.Length>0){let a=this.CleanOutputWhitespace(t.toString());this._currentTags.push(a),t.Clear();}e=true;}else if(i.commandType==$e.ControlCommand.CommandType.EndTag){if(t.Length>0){let a=this.CleanOutputWhitespace(t.toString());this._currentTags.push(a),t.Clear();}e=false;}}else if(e){let a=(0, pe.asOrNull)(r,ye.StringValue);a!==null&&t.Append(a.value);}else {let a=(0, pe.asOrNull)(r,ZT.Tag);a!=null&&a.text!=null&&a.text.length>0&&this._currentTags.push(a.text);}}if(t.Length>0){let r=this.CleanOutputWhitespace(t.toString());this._currentTags.push(r),t.Clear();}this._outputStreamTagsDirty=false;}return this._currentTags}get currentFlowName(){return this._currentFlow.name}get currentFlowIsDefaultFlow(){return this._currentFlow.name==this.kDefaultFlowName}get aliveFlowNames(){if(this._aliveFlowNamesDirty){if(this._aliveFlowNames=[],this._namedFlows!=null)for(let e of this._namedFlows.keys())e!=this.kDefaultFlowName&&this._aliveFlowNames.push(e);this._aliveFlowNamesDirty=false;}return this._aliveFlowNames}get inExpressionEvaluation(){return this.callStack.currentElement.inExpressionEvaluation}set inExpressionEvaluation(e){this.callStack.currentElement.inExpressionEvaluation=e;}constructor(e){this.kInkSaveStateVersion=10,this.kMinCompatibleLoadVersion=8,this.onDidLoadState=null,this._currentErrors=null,this._currentWarnings=null,this.divertedPointer=Dr.Pointer.Null,this._currentTurnIndex=0,this.storySeed=0,this.previousRandom=0,this.didSafeExit=false,this._currentText=null,this._currentTags=null,this._outputStreamTextDirty=true,this._outputStreamTagsDirty=true,this._patch=null,this._aliveFlowNames=null,this._namedFlows=null,this.kDefaultFlowName="DEFAULT_FLOW",this._aliveFlowNamesDirty=true,this.story=e,this._currentFlow=new Ho.Flow(this.kDefaultFlowName,e),this.OutputStreamDirty(),this._aliveFlowNamesDirty=true,this._evaluationStack=[],this._variablesState=new YT.VariablesState(this.callStack,e.listDefinitions),this._visitCounts=new Map,this._turnIndices=new Map,this.currentTurnIndex=-1;let t=new Date().getTime();this.storySeed=new QT.PRNG(t).next()%100,this.previousRandom=0,this.GoToStart();}GoToStart(){this.callStack.currentElement.currentPointer=Dr.Pointer.StartOf(this.story.mainContentContainer);}SwitchFlow_Internal(e){if(e===null)throw new Error("Must pass a non-null string to Story.SwitchFlow");if(this._namedFlows===null&&(this._namedFlows=new Map,this._namedFlows.set(this.kDefaultFlowName,this._currentFlow)),e===this._currentFlow.name)return;let t,r=(0, Ji.tryGetValueFromMap)(this._namedFlows,e,null);r.exists?t=r.result:(t=new Ho.Flow(e,this.story),this._namedFlows.set(e,t),this._aliveFlowNamesDirty=true),this._currentFlow=t,this.variablesState.callStack=this._currentFlow.callStack,this.OutputStreamDirty();}SwitchToDefaultFlow_Internal(){this._namedFlows!==null&&this.SwitchFlow_Internal(this.kDefaultFlowName);}RemoveFlow_Internal(e){if(e===null)throw new Error("Must pass a non-null string to Story.DestroyFlow");if(e===this.kDefaultFlowName)throw new Error("Cannot destroy default flow");if(this._currentFlow.name===e&&this.SwitchToDefaultFlow_Internal(),this._namedFlows===null)return (0, at.throwNullException)("this._namedFlows");this._namedFlows.delete(e),this._aliveFlowNamesDirty=true;}CopyAndStartPatching(e){let t=new n(this.story);if(t._patch=new r1.StatePatch(this._patch),t._currentFlow.name=this._currentFlow.name,t._currentFlow.callStack=new XT.CallStack(this._currentFlow.callStack),t._currentFlow.outputStream.push(...this._currentFlow.outputStream),t.OutputStreamDirty(),e)for(let r of this._currentFlow.currentChoices)t._currentFlow.currentChoices.push(r.Clone());else t._currentFlow.currentChoices.push(...this._currentFlow.currentChoices);if(this._namedFlows!==null){t._namedFlows=new Map;for(let[r,i]of this._namedFlows)t._namedFlows.set(r,i),t._aliveFlowNamesDirty=true;t._namedFlows.set(this._currentFlow.name,t._currentFlow);}return this.hasError&&(t._currentErrors=[],t._currentErrors.push(...this.currentErrors||[])),this.hasWarning&&(t._currentWarnings=[],t._currentWarnings.push(...this.currentWarnings||[])),t.variablesState=this.variablesState,t.variablesState.callStack=t.callStack,t.variablesState.patch=t._patch,t.evaluationStack.push(...this.evaluationStack),this.divertedPointer.isNull||(t.divertedPointer=this.divertedPointer.copy()),t.previousPointer=this.previousPointer.copy(),t._visitCounts=this._visitCounts,t._turnIndices=this._turnIndices,t.currentTurnIndex=this.currentTurnIndex,t.storySeed=this.storySeed,t.previousRandom=this.previousRandom,t.didSafeExit=this.didSafeExit,t}RestoreAfterPatch(){this.variablesState.callStack=this.callStack,this.variablesState.patch=this._patch;}ApplyAnyPatch(){if(this._patch!==null){this.variablesState.ApplyPatch();for(let[e,t]of this._patch.visitCounts)this.ApplyCountChanges(e,t,true);for(let[e,t]of this._patch.turnIndices)this.ApplyCountChanges(e,t,false);this._patch=null;}}ApplyCountChanges(e,t,r){(r?this._visitCounts:this._turnIndices).set(e.path.toString(),t);}WriteJson(e){if(e.WriteObjectStart(),e.WritePropertyStart("flows"),e.WriteObjectStart(),this._namedFlows!==null)for(let[t,r]of this._namedFlows)e.WriteProperty(t,i=>r.WriteJson(i));else e.WriteProperty(this._currentFlow.name,t=>this._currentFlow.WriteJson(t));if(e.WriteObjectEnd(),e.WritePropertyEnd(),e.WriteProperty("currentFlowName",this._currentFlow.name),e.WriteProperty("variablesState",t=>this.variablesState.WriteJson(t)),e.WriteProperty("evalStack",t=>rn.JsonSerialisation.WriteListRuntimeObjs(t,this.evaluationStack)),!this.divertedPointer.isNull){if(this.divertedPointer.path===null)return (0, at.throwNullException)("divertedPointer");e.WriteProperty("currentDivertTarget",this.divertedPointer.path.componentsString);}e.WriteProperty("visitCounts",t=>rn.JsonSerialisation.WriteIntDictionary(t,this._visitCounts)),e.WriteProperty("turnIndices",t=>rn.JsonSerialisation.WriteIntDictionary(t,this._turnIndices)),e.WriteIntProperty("turnIdx",this.currentTurnIndex),e.WriteIntProperty("storySeed",this.storySeed),e.WriteIntProperty("previousRandom",this.previousRandom),e.WriteIntProperty("inkSaveVersion",this.kInkSaveStateVersion),e.WriteIntProperty("inkFormatVersion",n1.Story.inkVersionCurrent),e.WriteObjectEnd();}LoadJsonObj(e){let t=e,r=t.inkSaveVersion;if(r==null)throw new Error("ink save format incorrect, can't load.");if(parseInt(r)<this.kMinCompatibleLoadVersion)throw new Error("Ink save format isn't compatible with the current version (saw '"+r+"', but minimum is "+this.kMinCompatibleLoadVersion+"), so can't load.");let i=t.flows;if(i!=null){let s=i;Object.keys(s).length===1?this._namedFlows=null:this._namedFlows===null?this._namedFlows=new Map:this._namedFlows.clear();let o=Object.entries(s);for(let[u,l]of o){let c=u,h=l,f=new Ho.Flow(c,this.story,h);if(Object.keys(s).length===1)this._currentFlow=new Ho.Flow(c,this.story,h);else {if(this._namedFlows===null)return (0, at.throwNullException)("this._namedFlows");this._namedFlows.set(c,f);}}if(this._namedFlows!=null&&this._namedFlows.size>1){let u=t.currentFlowName;this._currentFlow=this._namedFlows.get(u);}}else {this._namedFlows=null,this._currentFlow.name=this.kDefaultFlowName,this._currentFlow.callStack.SetJsonToken(t.callstackThreads,this.story),this._currentFlow.outputStream=rn.JsonSerialisation.JArrayToRuntimeObjList(t.outputStream),this._currentFlow.currentChoices=rn.JsonSerialisation.JArrayToRuntimeObjList(t.currentChoices);let s=t.choiceThreads;this._currentFlow.LoadFlowChoiceThreads(s,this.story);}this.OutputStreamDirty(),this._aliveFlowNamesDirty=true,this.variablesState.SetJsonToken(t.variablesState),this.variablesState.callStack=this._currentFlow.callStack,this._evaluationStack=rn.JsonSerialisation.JArrayToRuntimeObjList(t.evalStack);let a=t.currentDivertTarget;if(a!=null){let s=new h0.Path(a.toString());this.divertedPointer=this.story.PointerAtPath(s);}this._visitCounts=rn.JsonSerialisation.JObjectToIntDictionary(t.visitCounts),this._turnIndices=rn.JsonSerialisation.JObjectToIntDictionary(t.turnIndices),this.currentTurnIndex=parseInt(t.turnIdx),this.storySeed=parseInt(t.storySeed),this.previousRandom=parseInt(t.previousRandom);}ResetErrors(){this._currentErrors=null,this._currentWarnings=null;}ResetOutput(e=null){this.outputStream.length=0,e!==null&&this.outputStream.push(...e),this.OutputStreamDirty();}PushToOutputStream(e){let t=(0, pe.asOrNull)(e,ye.StringValue);if(t!==null){let r=this.TrySplittingHeadTailWhitespace(t);if(r!==null){for(let i of r)this.PushToOutputStreamIndividual(i);this.OutputStreamDirty();return}}this.PushToOutputStreamIndividual(e),this.OutputStreamDirty();}PopFromOutputStream(e){this.outputStream.splice(this.outputStream.length-e,e),this.OutputStreamDirty();}TrySplittingHeadTailWhitespace(e){let t=e.value;if(t===null)return (0, at.throwNullException)("single.value");let r=-1,i=-1;for(let c=0;c<t.length;c++){let h=t[c];if(h==`
30
30
  `)r==-1&&(r=c),i=c;else {if(h==" "||h==" ")continue;break}}let a=-1,s=-1;for(let c=t.length-1;c>=0;c--){let h=t[c];if(h==`
31
31
  `)a==-1&&(a=c),s=c;else {if(h==" "||h==" ")continue;break}}if(r==-1&&a==-1)return null;let o=[],u=0,l=t.length;if(r!=-1){if(r>0){let c=new ye.StringValue(t.substring(0,r));o.push(c);}o.push(new ye.StringValue(`
32
32
  `)),u=i+1;}if(a!=-1&&(l=s),l>u){let c=t.substring(u,l);o.push(new ye.StringValue(c));}if(a!=-1&&s>i&&(o.push(new ye.StringValue(`
33
- `)),a<t.length-1)){let c=t.length-a-1,h=new ye.StringValue(t.substring(a+1,a+1+c));o.push(h);}return o}PushToOutputStreamIndividual(e){let t=(0, pe.asOrNull)(e,zd.Glue),r=(0, pe.asOrNull)(e,ye.StringValue),i=true;if(t)this.TrimNewlinesFromOutputStream(),i=true;else if(r){let a=-1,s=this.callStack.currentElement;s.type==nn.PushPopType.Function&&(a=s.functionStartInOutputStream);let o=-1;for(let l=this.outputStream.length-1;l>=0;l--){let c=this.outputStream[l],h=c instanceof $e.ControlCommand?c:null;if((c instanceof zd.Glue?c:null)!=null){o=l;break}else if(h!=null&&h.commandType==$e.ControlCommand.CommandType.BeginString){l>=a&&(a=-1);break}}let u=-1;if(o!=-1&&a!=-1?u=Math.min(a,o):o!=-1?u=o:u=a,u!=-1){if(r.isNewline)i=false;else if(r.isNonWhitespace&&(o>-1&&this.RemoveExistingGlue(),a>-1)){let l=this.callStack.elements;for(let c=l.length-1;c>=0;c--){let h=l[c];if(h.type==nn.PushPopType.Function)h.functionStartInOutputStream=-1;else break}}}else r.isNewline&&(this.outputStreamEndsInNewline||!this.outputStreamContainsContent)&&(i=false);}if(i){if(e===null)return (0, at.throwNullException)("obj");this.outputStream.push(e),this.OutputStreamDirty();}}TrimNewlinesFromOutputStream(){let e=-1,t=this.outputStream.length-1;for(;t>=0;){let r=this.outputStream[t],i=(0, pe.asOrNull)(r,$e.ControlCommand),a=(0, pe.asOrNull)(r,ye.StringValue);if(i!=null||a!=null&&a.isNonWhitespace)break;a!=null&&a.isNewline&&(e=t),t--;}if(e>=0)for(t=e;t<this.outputStream.length;)(0, pe.asOrNull)(this.outputStream[t],ye.StringValue)?this.outputStream.splice(t,1):t++;this.OutputStreamDirty();}RemoveExistingGlue(){for(let e=this.outputStream.length-1;e>=0;e--){let t=this.outputStream[e];if(t instanceof zd.Glue)this.outputStream.splice(e,1);else if(t instanceof $e.ControlCommand)break}this.OutputStreamDirty();}get outputStreamEndsInNewline(){if(this.outputStream.length>0)for(let e=this.outputStream.length-1;e>=0&&!(this.outputStream[e]instanceof $e.ControlCommand);e--){let r=this.outputStream[e];if(r instanceof ye.StringValue){if(r.isNewline)return true;if(r.isNonWhitespace)break}}return false}get outputStreamContainsContent(){for(let e of this.outputStream)if(e instanceof ye.StringValue)return true;return false}get inStringEvaluation(){for(let e=this.outputStream.length-1;e>=0;e--){let t=(0, pe.asOrNull)(this.outputStream[e],$e.ControlCommand);if(t instanceof $e.ControlCommand&&t.commandType==$e.ControlCommand.CommandType.BeginString)return true}return false}PushEvaluationStack(e){let t=(0, pe.asOrNull)(e,ye.ListValue);if(t){let r=t.value;if(r===null)return (0, at.throwNullException)("rawList");if(r.originNames!=null){r.origins||(r.origins=[]),r.origins.length=0;for(let i of r.originNames){if(this.story.listDefinitions===null)return (0, at.throwNullException)("StoryState.story.listDefinitions");let a=this.story.listDefinitions.TryListGetDefinition(i,null);if(a.result===null)return (0, at.throwNullException)("StoryState def.result");r.origins.indexOf(a.result)<0&&r.origins.push(a.result);}}}if(e===null)return (0, at.throwNullException)("obj");this.evaluationStack.push(e);}PopEvaluationStack(e){if(typeof e>"u"){let t=this.evaluationStack.pop();return (0, pe.nullIfUndefined)(t)}else {if(e>this.evaluationStack.length)throw new Error("trying to pop too many objects");let t=this.evaluationStack.splice(this.evaluationStack.length-e,e);return (0, pe.nullIfUndefined)(t)}}PeekEvaluationStack(){return this.evaluationStack[this.evaluationStack.length-1]}ForceEnd(){this.callStack.Reset(),this._currentFlow.currentChoices.length=0,this.currentPointer=wr.Pointer.Null,this.previousPointer=wr.Pointer.Null,this.didSafeExit=true;}TrimWhitespaceFromFunctionEnd(){t1.Debug.Assert(this.callStack.currentElement.type==nn.PushPopType.Function);let e=this.callStack.currentElement.functionStartInOutputStream;e==-1&&(e=0);for(let t=this.outputStream.length-1;t>=e;t--){let r=this.outputStream[t],i=(0, pe.asOrNull)(r,ye.StringValue),a=(0, pe.asOrNull)(r,$e.ControlCommand);if(i!=null){if(a)break;if(i.isNewline||i.isInlineWhitespace)this.outputStream.splice(t,1),this.OutputStreamDirty();else break}}}PopCallStack(e=null){this.callStack.currentElement.type==nn.PushPopType.Function&&this.TrimWhitespaceFromFunctionEnd(),this.callStack.Pop(e);}SetChosenPath(e,t){this._currentFlow.currentChoices.length=0;let r=this.story.PointerAtPath(e);!r.isNull&&r.index==-1&&(r.index=0),this.currentPointer=r,t&&this.currentTurnIndex++;}StartFunctionEvaluationFromGame(e,t){this.callStack.Push(nn.PushPopType.FunctionEvaluationFromGame,this.evaluationStack.length),this.callStack.currentElement.currentPointer=wr.Pointer.StartOf(e),this.PassArgumentsToEvaluationStack(t);}PassArgumentsToEvaluationStack(e){if(e!==null)for(let t=0;t<e.length;t++){if(!(typeof e[t]=="number"||typeof e[t]=="string"||typeof e[t]=="boolean"||e[t]instanceof i1.InkList))throw new Error("ink arguments when calling EvaluateFunction / ChoosePathStringWithParameters must benumber, string, bool or InkList. Argument was "+((0, pe.nullIfUndefined)(e[t])===null?"null":e[t].constructor.name));this.PushEvaluationStack(ye.Value.Create(e[t]));}}TryExitFunctionEvaluationFromGame(){return this.callStack.currentElement.type==nn.PushPopType.FunctionEvaluationFromGame?(this.currentPointer=wr.Pointer.Null,this.didSafeExit=true,true):false}CompleteFunctionEvaluationFromGame(){if(this.callStack.currentElement.type!=nn.PushPopType.FunctionEvaluationFromGame)throw new Error("Expected external function evaluation to be complete. Stack trace: "+this.callStack.callStackTrace);let e=this.callStack.currentElement.evaluationStackHeightWhenPushed,t=null;for(;this.evaluationStack.length>e;){let r=this.PopEvaluationStack();t===null&&(t=r);}if(this.PopCallStack(nn.PushPopType.FunctionEvaluationFromGame),t){if(t instanceof e1.Void)return null;let r=(0, pe.asOrThrows)(t,ye.Value);return r.valueType==ye.ValueType.DivertTarget?"-> "+r.valueObject.toString():r.valueObject}return null}AddError(e,t){t?(this._currentWarnings==null&&(this._currentWarnings=[]),this._currentWarnings.push(e)):(this._currentErrors==null&&(this._currentErrors=[]),this._currentErrors.push(e));}OutputStreamDirty(){this._outputStreamTextDirty=true,this._outputStreamTagsDirty=true;}};Uo.StoryState=Xd;});var p0=C(zo=>{Object.defineProperty(zo,"__esModule",{value:true});zo.Stopwatch=void 0;var Yd=class{constructor(){this.startTime=void 0;}get ElapsedMilliseconds(){return typeof this.startTime>"u"?0:new Date().getTime()-this.startTime}Start(){this.startTime=new Date().getTime();}Stop(){this.startTime=void 0;}};zo.Stopwatch=Yd;});var g0=C(Ko=>{Object.defineProperty(Ko,"__esModule",{value:true});Ko.ErrorType=void 0;var m0;(function(n){n[n.Author=0]="Author",n[n.Warning=1]="Warning",n[n.Error=2]="Error";})(m0||(Ko.ErrorType=m0={}));});var Bi=C(Rn=>{Object.defineProperty(Rn,"__esModule",{value:true});Rn.Story=Rn.InkList=void 0;var Fe=de(),Zd=Ge(),Qd=Dr(),s1=f0(),V=Oe(),ot=Tn(),a1=ma(),o1=Rd(),y0=Dt(),O=ue(),ef=Me(),Hi=Pn(),Xo=Io(),u1=Zt(),l1=_r(),c1=bt(),In=Ci(),tf=Gd(),kn=wn(),h1=Vd(),d1=p0(),sn=Oi(),Ui=He(),L=X(),z=Te(),C0=Hd(),v0=g0(),f1=He();Object.defineProperty(Rn,"InkList",{enumerable:true,get:function(){return f1.InkList}});Number.isInteger||(Number.isInteger=function(e){return typeof e=="number"&&isFinite(e)&&e>-9007199254740992&&e<9007199254740992&&Math.floor(e)===e});var Ar=class n extends Zd.InkObject{get currentChoices(){let e=[];if(this._state===null)return (0, z.throwNullException)("this._state");for(let t of this._state.currentChoices)t.isInvisibleDefault||(t.index=e.length,e.push(t));return e}get currentText(){return this.IfAsyncWeCant("call currentText since it's a work in progress"),this.state.currentText}get currentTags(){return this.IfAsyncWeCant("call currentTags since it's a work in progress"),this.state.currentTags}get currentErrors(){return this.state.currentErrors}get currentWarnings(){return this.state.currentWarnings}get currentFlowName(){return this.state.currentFlowName}get currentFlowIsDefaultFlow(){return this.state.currentFlowIsDefaultFlow}get aliveFlowNames(){return this.state.aliveFlowNames}get hasError(){return this.state.hasError}get hasWarning(){return this.state.hasWarning}get variablesState(){return this.state.variablesState}get listDefinitions(){return this._listDefinitions}get state(){return this._state}StartProfiling(){}EndProfiling(){}constructor(){super(),this.inkVersionMinimumCompatible=18,this.onError=null,this.onDidContinue=null,this.onMakeChoice=null,this.onEvaluateFunction=null,this.onCompleteEvaluateFunction=null,this.onChoosePathString=null,this._prevContainers=[],this.allowExternalFunctionFallbacks=false,this._listDefinitions=null,this._variableObservers=null,this._hasValidatedExternals=false,this._temporaryEvaluationContainer=null,this._asyncContinueActive=false,this._stateSnapshotAtLastNewline=null,this._sawLookaheadUnsafeFunctionAfterNewline=false,this._recursiveContinueCount=0,this._asyncSaving=false,this._profiler=null;let e,t=null,r=null;if(arguments[0]instanceof Fe.Container)e=arguments[0],typeof arguments[1]<"u"&&(t=arguments[1]),this._mainContentContainer=e;else if(typeof arguments[0]=="string"){let i=arguments[0];r=C0.SimpleJson.TextToDictionary(i);}else r=arguments[0];if(t!=null&&(this._listDefinitions=new h1.ListDefinitionsOrigin(t)),this._externals=new Map,r!==null){let i=r,a=i.inkVersion;if(a==null)throw new Error("ink version number not found. Are you sure it's a valid .ink.json file?");let s=parseInt(a);if(s>n.inkVersionCurrent)throw new Error("Version of ink used to build story was newer than the current version of the engine");if(s<this.inkVersionMinimumCompatible)throw new Error("Version of ink used to build story is too old to be loaded by this version of the engine");s!=n.inkVersionCurrent&&console.warn(`WARNING: Version of ink ${n.inkVersionCurrent} used to build story doesn't match current version of engine (${s}). Non-critical, but recommend synchronising.`);let o=i.root;if(o==null)throw new Error("Root node for ink not found. Are you sure it's a valid .ink.json file?");let u;(u=i.listDefs)&&(this._listDefinitions=Qd.JsonSerialisation.JTokenToListDefinitions(u)),this._mainContentContainer=(0, L.asOrThrows)(Qd.JsonSerialisation.JTokenToRuntimeObject(o),Fe.Container),this.ResetState();}}ToJson(e){let t=false;if(e||(t=true,e=new C0.SimpleJson.Writer),e.WriteObjectStart(),e.WriteIntProperty("inkVersion",n.inkVersionCurrent),e.WriteProperty("root",r=>Qd.JsonSerialisation.WriteRuntimeContainer(r,this._mainContentContainer)),this._listDefinitions!=null){e.WritePropertyStart("listDefs"),e.WriteObjectStart();for(let r of this._listDefinitions.lists){e.WritePropertyStart(r.name),e.WriteObjectStart();for(let[i,a]of r.items){let s=Ui.InkListItem.fromSerializedKey(i),o=a;e.WriteIntProperty(s.itemName,o);}e.WriteObjectEnd(),e.WritePropertyEnd();}e.WriteObjectEnd(),e.WritePropertyEnd();}if(e.WriteObjectEnd(),t)return e.toString()}ResetState(){this.IfAsyncWeCant("ResetState"),this._state=new s1.StoryState(this),this._state.variablesState.ObserveVariableChange(this.VariableStateDidChangeEvent.bind(this)),this.ResetGlobals();}ResetErrors(){if(this._state===null)return (0, z.throwNullException)("this._state");this._state.ResetErrors();}ResetCallstack(){if(this.IfAsyncWeCant("ResetCallstack"),this._state===null)return (0, z.throwNullException)("this._state");this._state.ForceEnd();}ResetGlobals(){if(this._mainContentContainer.namedContent.get("global decl")){let e=this.state.currentPointer.copy();this.ChoosePath(new ef.Path("global decl"),false),this.ContinueInternal(),this.state.currentPointer=e;}this.state.variablesState.SnapshotDefaultGlobals();}SwitchFlow(e){if(this.IfAsyncWeCant("switch flow"),this._asyncSaving)throw new Error("Story is already in background saving mode, can't switch flow to "+e);this.state.SwitchFlow_Internal(e);}RemoveFlow(e){this.state.RemoveFlow_Internal(e);}SwitchToDefaultFlow(){this.state.SwitchToDefaultFlow_Internal();}Continue(){return this.ContinueAsync(0),this.currentText}get canContinue(){return this.state.canContinue}get asyncContinueComplete(){return !this._asyncContinueActive}ContinueAsync(e){this._hasValidatedExternals||this.ValidateExternalBindings(),this.ContinueInternal(e);}ContinueInternal(e=0){this._profiler!=null&&this._profiler.PreContinue();let t=e>0;if(this._recursiveContinueCount++,this._asyncContinueActive)this._asyncContinueActive&&!t&&(this._asyncContinueActive=false);else {if(this._asyncContinueActive=t,!this.canContinue)throw new Error("Can't continue - should check canContinue before calling Continue");this._state.didSafeExit=false,this._state.ResetOutput(),this._recursiveContinueCount==1&&this._state.variablesState.StartVariableObservation();}let r=new d1.Stopwatch;r.Start();let i=false;this._sawLookaheadUnsafeFunctionAfterNewline=false;do{try{i=this.ContinueSingleStep();}catch(s){if(!(s instanceof In.StoryException))throw s;this.AddError(s.message,void 0,s.useEndLineNumber);break}if(i||this._asyncContinueActive&&r.ElapsedMilliseconds>e)break}while(this.canContinue);r.Stop();let a=null;if((i||!this.canContinue)&&(this._stateSnapshotAtLastNewline!==null&&this.RestoreStateSnapshot(),this.canContinue||(this.state.callStack.canPopThread&&this.AddError("Thread available to pop, threads should always be flat by the end of evaluation?"),this.state.generatedChoices.length==0&&!this.state.didSafeExit&&this._temporaryEvaluationContainer==null&&(this.state.callStack.CanPop(ot.PushPopType.Tunnel)?this.AddError("unexpectedly reached end of content. Do you need a '->->' to return from a tunnel?"):this.state.callStack.CanPop(ot.PushPopType.Function)?this.AddError("unexpectedly reached end of content. Do you need a '~ return'?"):this.state.callStack.canPop?this.AddError("unexpectedly reached end of content for unknown reason. Please debug compiler!"):this.AddError("ran out of content. Do you need a '-> DONE' or '-> END'?"))),this.state.didSafeExit=false,this._sawLookaheadUnsafeFunctionAfterNewline=false,this._recursiveContinueCount==1&&(a=this._state.variablesState.CompleteVariableObservation()),this._asyncContinueActive=false,this.onDidContinue!==null&&this.onDidContinue()),this._recursiveContinueCount--,this._profiler!=null&&this._profiler.PostContinue(),this.state.hasError||this.state.hasWarning)if(this.onError!==null){if(this.state.hasError)for(let s of this.state.currentErrors)this.onError(s,v0.ErrorType.Error);if(this.state.hasWarning)for(let s of this.state.currentWarnings)this.onError(s,v0.ErrorType.Warning);this.ResetErrors();}else {let s=new kn.StringBuilder;throw s.Append("Ink had "),this.state.hasError&&(s.Append(`${this.state.currentErrors.length}`),s.Append(this.state.currentErrors.length==1?" error":" errors"),this.state.hasWarning&&s.Append(" and ")),this.state.hasWarning&&(s.Append(`${this.state.currentWarnings.length}`),s.Append(this.state.currentWarnings.length==1?" warning":" warnings"),this.state.hasWarning&&s.Append(" and ")),s.Append(". It is strongly suggested that you assign an error handler to story.onError. The first issue was: "),s.Append(this.state.hasError?this.state.currentErrors[0]:this.state.currentWarnings[0]),new In.StoryException(s.toString())}a!=null&&Object.keys(a).length>0&&this._state.variablesState.NotifyObservers(a);}ContinueSingleStep(){if(this._profiler!=null&&this._profiler.PreStep(),this.Step(),this._profiler!=null&&this._profiler.PostStep(),!this.canContinue&&!this.state.callStack.elementIsEvaluateFromGame&&this.TryFollowDefaultInvisibleChoice(),this._profiler!=null&&this._profiler.PreSnapshot(),!this.state.inStringEvaluation){if(this._stateSnapshotAtLastNewline!==null){if(this._stateSnapshotAtLastNewline.currentTags===null)return (0, z.throwNullException)("this._stateAtLastNewline.currentTags");if(this.state.currentTags===null)return (0, z.throwNullException)("this.state.currentTags");let e=this.CalculateNewlineOutputStateChange(this._stateSnapshotAtLastNewline.currentText,this.state.currentText,this._stateSnapshotAtLastNewline.currentTags.length,this.state.currentTags.length);if(e==n.OutputStateChange.ExtendedBeyondNewline||this._sawLookaheadUnsafeFunctionAfterNewline)return this.RestoreStateSnapshot(),true;e==n.OutputStateChange.NewlineRemoved&&this.DiscardSnapshot();}this.state.outputStreamEndsInNewline&&(this.canContinue?this._stateSnapshotAtLastNewline==null&&this.StateSnapshot():this.DiscardSnapshot());}return this._profiler!=null&&this._profiler.PostSnapshot(),false}CalculateNewlineOutputStateChange(e,t,r,i){if(e===null)return (0, z.throwNullException)("prevText");if(t===null)return (0, z.throwNullException)("currText");let a=t.length>=e.length&&e.length>0&&t.charAt(e.length-1)==`
34
- `;if(r==i&&e.length==t.length&&a)return n.OutputStateChange.NoChange;if(!a)return n.OutputStateChange.NewlineRemoved;if(i>r)return n.OutputStateChange.ExtendedBeyondNewline;for(let s=e.length;s<t.length;s++){let o=t.charAt(s);if(o!=" "&&o!=" ")return n.OutputStateChange.ExtendedBeyondNewline}return n.OutputStateChange.NoChange}ContinueMaximally(){this.IfAsyncWeCant("ContinueMaximally");let e=new kn.StringBuilder;for(;this.canContinue;)e.Append(this.Continue());return e.toString()}ContentAtPath(e){return this.mainContentContainer.ContentAtPath(e)}KnotContainerWithName(e){let t=this.mainContentContainer.namedContent.get(e);return t instanceof Fe.Container?t:null}PointerAtPath(e){if(e.length==0)return sn.Pointer.Null;let t=new sn.Pointer,r=e.length,i=null;return e.lastComponent===null?(0, z.throwNullException)("path.lastComponent"):(e.lastComponent.isIndex?(r=e.length-1,i=this.mainContentContainer.ContentAtPath(e,void 0,r),t.container=i.container,t.index=e.lastComponent.index):(i=this.mainContentContainer.ContentAtPath(e),t.container=i.container,t.index=-1),i.obj==null||i.obj==this.mainContentContainer&&r>0?this.Error("Failed to find content at path '"+e+"', and no approximation of it was possible."):i.approximate&&this.Warning("Failed to find content at path '"+e+"', so it was approximated to: '"+i.obj.path+"'."),t)}StateSnapshot(){this._stateSnapshotAtLastNewline=this._state,this._state=this._state.CopyAndStartPatching(false);}RestoreStateSnapshot(){this._stateSnapshotAtLastNewline===null&&(0, z.throwNullException)("_stateSnapshotAtLastNewline"),this._stateSnapshotAtLastNewline.RestoreAfterPatch(),this._state=this._stateSnapshotAtLastNewline,this._stateSnapshotAtLastNewline=null,this._asyncSaving||this._state.ApplyAnyPatch();}DiscardSnapshot(){this._asyncSaving||this._state.ApplyAnyPatch(),this._stateSnapshotAtLastNewline=null;}CopyStateForBackgroundThreadSave(){if(this.IfAsyncWeCant("start saving on a background thread"),this._asyncSaving)throw new Error("Story is already in background saving mode, can't call CopyStateForBackgroundThreadSave again!");let e=this._state;return this._state=this._state.CopyAndStartPatching(true),this._asyncSaving=true,e}BackgroundSaveComplete(){this._stateSnapshotAtLastNewline===null&&this._state.ApplyAnyPatch(),this._asyncSaving=false;}Step(){let e=true,t=this.state.currentPointer.copy();if(t.isNull)return;let r=(0, L.asOrNull)(t.Resolve(),Fe.Container);for(;r&&(this.VisitContainer(r,true),r.content.length!=0);)t=sn.Pointer.StartOf(r),r=(0, L.asOrNull)(t.Resolve(),Fe.Container);this.state.currentPointer=t.copy(),this._profiler!=null&&this._profiler.Step(this.state.callStack);let i=t.Resolve(),a=this.PerformLogicAndFlowControl(i);if(this.state.currentPointer.isNull)return;a&&(e=false);let s=(0, L.asOrNull)(i,a1.ChoicePoint);if(s){let u=this.ProcessChoice(s);u&&this.state.generatedChoices.push(u),i=null,e=false;}if(i instanceof Fe.Container&&(e=false),e){let u=(0, L.asOrNull)(i,O.VariablePointerValue);if(u&&u.contextIndex==-1){let l=this.state.callStack.ContextForVariableNamed(u.variableName);i=new O.VariablePointerValue(u.variableName,l);}this.state.inExpressionEvaluation?this.state.PushEvaluationStack(i):this.state.PushToOutputStream(i);}this.NextContent();let o=(0, L.asOrNull)(i,V.ControlCommand);o&&o.commandType==V.ControlCommand.CommandType.StartThread&&this.state.callStack.PushThread();}VisitContainer(e,t){(!e.countingAtStartOnly||t)&&(e.visitsShouldBeCounted&&this.state.IncrementVisitCountForContainer(e),e.turnIndexShouldBeCounted&&this.state.RecordTurnIndexVisitToContainer(e));}VisitChangedContainersDueToDivert(){let e=this.state.previousPointer.copy(),t=this.state.currentPointer.copy();if(t.isNull||t.index==-1)return;if(this._prevContainers.length=0,!e.isNull){let s=e.Resolve(),o=(0, L.asOrNull)(s,Fe.Container)||(0, L.asOrNull)(e.container,Fe.Container);for(;o;)this._prevContainers.push(o),o=(0, L.asOrNull)(o.parent,Fe.Container);}let r=t.Resolve();if(r==null)return;let i=(0, L.asOrNull)(r.parent,Fe.Container),a=true;for(;i&&(this._prevContainers.indexOf(i)<0||i.countingAtStartOnly);){let s=i.content.length>0&&r==i.content[0]&&a;s||(a=false),this.VisitContainer(i,s),r=i,i=(0, L.asOrNull)(i.parent,Fe.Container);}}PopChoiceStringAndTags(e){let t=(0, L.asOrThrows)(this.state.PopEvaluationStack(),O.StringValue);for(;this.state.evaluationStack.length>0&&(0, L.asOrNull)(this.state.PeekEvaluationStack(),Xo.Tag)!=null;){let r=(0, L.asOrNull)(this.state.PopEvaluationStack(),Xo.Tag);r&&e.push(r.text);}return t.value}ProcessChoice(e){let t=true;if(e.hasCondition){let o=this.state.PopEvaluationStack();this.IsTruthy(o)||(t=false);}let r="",i="",a=[];if(e.hasChoiceOnlyContent&&(i=this.PopChoiceStringAndTags(a)||""),e.hasStartContent&&(r=this.PopChoiceStringAndTags(a)||""),e.onceOnly&&this.state.VisitCountForContainer(e.choiceTarget)>0&&(t=false),!t)return null;let s=new o1.Choice;return s.targetPath=e.pathOnChoice,s.sourcePath=e.path.toString(),s.isInvisibleDefault=e.isInvisibleDefault,s.threadAtGeneration=this.state.callStack.ForkThread(),s.tags=a.reverse(),s.text=(r+i).replace(/^[ \t]+|[ \t]+$/g,""),s}IsTruthy(e){let t=false;if(e instanceof O.Value){let r=e;if(r instanceof O.DivertTargetValue){let i=r;return this.Error("Shouldn't use a divert target (to "+i.targetPath+") as a conditional value. Did you intend a function call 'likeThis()' or a read count check 'likeThis'? (no arrows)"),false}return r.isTruthy}return t}PerformLogicAndFlowControl(e){if(e==null)return false;if(e instanceof y0.Divert){let t=e;if(t.isConditional){let r=this.state.PopEvaluationStack();if(!this.IsTruthy(r))return true}if(t.hasVariableTarget){let r=t.variableDivertName,i=this.state.variablesState.GetVariableWithName(r);if(i==null)this.Error("Tried to divert using a target from a variable that could not be found ("+r+")");else if(!(i instanceof O.DivertTargetValue)){let s=(0, L.asOrNull)(i,O.IntValue),o="Tried to divert to a target from a variable, but the variable ("+r+") didn't contain a divert target, it ";s instanceof O.IntValue&&s.value==0?o+="was empty/null (the value 0).":o+="contained '"+i+"'.",this.Error(o);}let a=(0, L.asOrThrows)(i,O.DivertTargetValue);this.state.divertedPointer=this.PointerAtPath(a.targetPath);}else {if(t.isExternal)return this.CallExternalFunction(t.targetPathString,t.externalArgs),true;this.state.divertedPointer=t.targetPointer.copy();}return t.pushesToStack&&this.state.callStack.Push(t.stackPushType,void 0,this.state.outputStream.length),this.state.divertedPointer.isNull&&!t.isExternal&&(t&&t.debugMetadata&&t.debugMetadata.sourceName!=null?this.Error("Divert target doesn't exist: "+t.debugMetadata.sourceName):this.Error("Divert resolution failed: "+t)),true}else if(e instanceof V.ControlCommand){let t=e;switch(t.commandType){case V.ControlCommand.CommandType.EvalStart:this.Assert(this.state.inExpressionEvaluation===false,"Already in expression evaluation?"),this.state.inExpressionEvaluation=true;break;case V.ControlCommand.CommandType.EvalEnd:this.Assert(this.state.inExpressionEvaluation===true,"Not in expression evaluation mode"),this.state.inExpressionEvaluation=false;break;case V.ControlCommand.CommandType.EvalOutput:if(this.state.evaluationStack.length>0){let y=this.state.PopEvaluationStack();if(!(y instanceof Hi.Void)){let S=new O.StringValue(y.toString());this.state.PushToOutputStream(S);}}break;case V.ControlCommand.CommandType.NoOp:break;case V.ControlCommand.CommandType.Duplicate:this.state.PushEvaluationStack(this.state.PeekEvaluationStack());break;case V.ControlCommand.CommandType.PopEvaluatedValue:this.state.PopEvaluationStack();break;case V.ControlCommand.CommandType.PopFunction:case V.ControlCommand.CommandType.PopTunnel:let r=t.commandType==V.ControlCommand.CommandType.PopFunction?ot.PushPopType.Function:ot.PushPopType.Tunnel,i=null;if(r==ot.PushPopType.Tunnel){let y=this.state.PopEvaluationStack();i=(0, L.asOrNull)(y,O.DivertTargetValue),i===null&&this.Assert(y instanceof Hi.Void,"Expected void if ->-> doesn't override target");}if(this.state.TryExitFunctionEvaluationFromGame())break;if(this.state.callStack.currentElement.type!=r||!this.state.callStack.canPop){let y=new Map;y.set(ot.PushPopType.Function,"function return statement (~ return)"),y.set(ot.PushPopType.Tunnel,"tunnel onwards statement (->->)");let S=y.get(this.state.callStack.currentElement.type);this.state.callStack.canPop||(S="end of flow (-> END or choice)");let w="Found "+y.get(r)+", when expected "+S;this.Error(w);}else this.state.PopCallStack(),i&&(this.state.divertedPointer=this.PointerAtPath(i.targetPath));break;case V.ControlCommand.CommandType.BeginString:this.state.PushToOutputStream(t),this.Assert(this.state.inExpressionEvaluation===true,"Expected to be in an expression when evaluating a string"),this.state.inExpressionEvaluation=false;break;case V.ControlCommand.CommandType.BeginTag:this.state.PushToOutputStream(t);break;case V.ControlCommand.CommandType.EndTag:{if(this.state.inStringEvaluation){let y=[],S=0;for(let F=this.state.outputStream.length-1;F>=0;--F){let Z=this.state.outputStream[F];S++;let be=(0, L.asOrNull)(Z,V.ControlCommand);if(be!=null){if(be.commandType==V.ControlCommand.CommandType.BeginTag)break;this.Error("Unexpected ControlCommand while extracting tag from choice");break}Z instanceof O.StringValue&&y.push(Z);}this.state.PopFromOutputStream(S);let w=new kn.StringBuilder;for(let F of y.reverse())w.Append(F.toString());let A=new Xo.Tag(this.state.CleanOutputWhitespace(w.toString()));this.state.PushEvaluationStack(A);}else this.state.PushToOutputStream(t);break}case V.ControlCommand.CommandType.EndString:{let y=[],S=[],w=0;for(let F=this.state.outputStream.length-1;F>=0;--F){let Z=this.state.outputStream[F];w++;let be=(0, L.asOrNull)(Z,V.ControlCommand);if(be&&be.commandType==V.ControlCommand.CommandType.BeginString)break;Z instanceof Xo.Tag&&S.push(Z),Z instanceof O.StringValue&&y.push(Z);}this.state.PopFromOutputStream(w);for(let F of S)this.state.PushToOutputStream(F);y=y.reverse();let A=new kn.StringBuilder;for(let F of y)A.Append(F.toString());this.state.inExpressionEvaluation=true,this.state.PushEvaluationStack(new O.StringValue(A.toString()));break}case V.ControlCommand.CommandType.ChoiceCount:let a=this.state.generatedChoices.length;this.state.PushEvaluationStack(new O.IntValue(a));break;case V.ControlCommand.CommandType.Turns:this.state.PushEvaluationStack(new O.IntValue(this.state.currentTurnIndex+1));break;case V.ControlCommand.CommandType.TurnsSince:case V.ControlCommand.CommandType.ReadCount:let s=this.state.PopEvaluationStack();if(!(s instanceof O.DivertTargetValue)){let y="";s instanceof O.IntValue&&(y=". Did you accidentally pass a read count ('knot_name') instead of a target ('-> knot_name')?"),this.Error("TURNS_SINCE / READ_COUNT expected a divert target (knot, stitch, label name), but saw "+s+y);break}let o=(0, L.asOrThrows)(s,O.DivertTargetValue),u=(0, L.asOrNull)(this.ContentAtPath(o.targetPath).correctObj,Fe.Container),l;u!=null?t.commandType==V.ControlCommand.CommandType.TurnsSince?l=this.state.TurnsSinceForContainer(u):l=this.state.VisitCountForContainer(u):(t.commandType==V.ControlCommand.CommandType.TurnsSince?l=-1:l=0,this.Warning("Failed to find container for "+t.toString()+" lookup at "+o.targetPath.toString())),this.state.PushEvaluationStack(new O.IntValue(l));break;case V.ControlCommand.CommandType.Random:{let y=(0, L.asOrNull)(this.state.PopEvaluationStack(),O.IntValue),S=(0, L.asOrNull)(this.state.PopEvaluationStack(),O.IntValue);if(S==null||!(S instanceof O.IntValue))return this.Error("Invalid value for minimum parameter of RANDOM(min, max)");if(y==null||!(y instanceof O.IntValue))return this.Error("Invalid value for maximum parameter of RANDOM(min, max)");if(y.value===null)return (0, z.throwNullException)("maxInt.value");if(S.value===null)return (0, z.throwNullException)("minInt.value");let w=y.value-S.value+1;(!isFinite(w)||w>Number.MAX_SAFE_INTEGER)&&(w=Number.MAX_SAFE_INTEGER,this.Error("RANDOM was called with a range that exceeds the size that ink numbers can use.")),w<=0&&this.Error("RANDOM was called with minimum as "+S.value+" and maximum as "+y.value+". The maximum must be larger");let A=this.state.storySeed+this.state.previousRandom,Z=new tf.PRNG(A).next(),be=Z%w+S.value;this.state.PushEvaluationStack(new O.IntValue(be)),this.state.previousRandom=Z;break}case V.ControlCommand.CommandType.SeedRandom:let c=(0, L.asOrNull)(this.state.PopEvaluationStack(),O.IntValue);if(c==null||!(c instanceof O.IntValue))return this.Error("Invalid value passed to SEED_RANDOM");if(c.value===null)return (0, z.throwNullException)("minInt.value");this.state.storySeed=c.value,this.state.previousRandom=0,this.state.PushEvaluationStack(new Hi.Void);break;case V.ControlCommand.CommandType.VisitIndex:let h=this.state.VisitCountForContainer(this.state.currentPointer.container)-1;this.state.PushEvaluationStack(new O.IntValue(h));break;case V.ControlCommand.CommandType.SequenceShuffleIndex:let f=this.NextSequenceShuffleIndex();this.state.PushEvaluationStack(new O.IntValue(f));break;case V.ControlCommand.CommandType.StartThread:break;case V.ControlCommand.CommandType.Done:this.state.callStack.canPopThread?this.state.callStack.PopThread():(this.state.didSafeExit=true,this.state.currentPointer=sn.Pointer.Null);break;case V.ControlCommand.CommandType.End:this.state.ForceEnd();break;case V.ControlCommand.CommandType.ListFromInt:let p=(0, L.asOrNull)(this.state.PopEvaluationStack(),O.IntValue),m=(0, L.asOrThrows)(this.state.PopEvaluationStack(),O.StringValue);if(p===null)throw new In.StoryException("Passed non-integer when creating a list element from a numerical value.");let g=null;if(this.listDefinitions===null)return (0, z.throwNullException)("this.listDefinitions");let v=this.listDefinitions.TryListGetDefinition(m.value,null);if(v.exists){if(p.value===null)return (0, z.throwNullException)("minInt.value");let y=v.result.TryGetItemWithValue(p.value,Ui.InkListItem.Null);y.exists&&(g=new O.ListValue(y.result,p.value));}else throw new In.StoryException("Failed to find LIST called "+m.value);g==null&&(g=new O.ListValue),this.state.PushEvaluationStack(g);break;case V.ControlCommand.CommandType.ListRange:let E=(0, L.asOrNull)(this.state.PopEvaluationStack(),O.Value),b=(0, L.asOrNull)(this.state.PopEvaluationStack(),O.Value),d=(0, L.asOrNull)(this.state.PopEvaluationStack(),O.ListValue);if(d===null||b===null||E===null)throw new In.StoryException("Expected list, minimum and maximum for LIST_RANGE");if(d.value===null)return (0, z.throwNullException)("targetList.value");let _=d.value.ListWithSubRange(b.valueObject,E.valueObject);this.state.PushEvaluationStack(new O.ListValue(_));break;case V.ControlCommand.CommandType.ListRandom:{let y=this.state.PopEvaluationStack();if(y===null)throw new In.StoryException("Expected list for LIST_RANDOM");let S=y.value,w=null;if(S===null)throw (0, z.throwNullException)("list");if(S.Count==0)w=new Ui.InkList;else {let A=this.state.storySeed+this.state.previousRandom,Z=new tf.PRNG(A).next(),be=Z%S.Count,Fr=S.entries();for(let _f=0;_f<=be-1;_f++)Fr.next();let Nr=Fr.next().value,Vn={Key:Ui.InkListItem.fromSerializedKey(Nr[0]),Value:Nr[1]};if(Vn.Key.originName===null)return (0, z.throwNullException)("randomItem.Key.originName");w=new Ui.InkList(Vn.Key.originName,this),w.Add(Vn.Key,Vn.Value),this.state.previousRandom=Z;}this.state.PushEvaluationStack(new O.ListValue(w));break}default:this.Error("unhandled ControlCommand: "+t);break}return true}else if(e instanceof u1.VariableAssignment){let t=e,r=this.state.PopEvaluationStack();return this.state.variablesState.Assign(t,r),true}else if(e instanceof l1.VariableReference){let t=e,r=null;if(t.pathForCount!=null){let i=t.containerForCount,a=this.state.VisitCountForContainer(i);r=new O.IntValue(a);}else r=this.state.variablesState.GetVariableWithName(t.name),r==null&&(this.Warning("Variable not found: '"+t.name+"'. Using default value of 0 (false). This can happen with temporary variables if the declaration hasn't yet been hit. Globals are always given a default value on load if a value doesn't exist in the save state."),r=new O.IntValue(0));return this.state.PushEvaluationStack(r),true}else if(e instanceof c1.NativeFunctionCall){let t=e,r=this.state.PopEvaluationStack(t.numberOfParameters),i=t.Call(r);return this.state.PushEvaluationStack(i),true}return false}ChoosePathString(e,t=true,r=[]){if(this.IfAsyncWeCant("call ChoosePathString right now"),this.onChoosePathString!==null&&this.onChoosePathString(e,r),t)this.ResetCallstack();else if(this.state.callStack.currentElement.type==ot.PushPopType.Function){let i="",a=this.state.callStack.currentElement.currentPointer.container;throw a!=null&&(i="("+a.path.toString()+") "),new Error("Story was running a function "+i+"when you called ChoosePathString("+e+`) - this is almost certainly not not what you want! Full stack trace:
35
- `+this.state.callStack.callStackTrace)}this.state.PassArgumentsToEvaluationStack(r),this.ChoosePath(new ef.Path(e));}IfAsyncWeCant(e){if(this._asyncContinueActive)throw new Error("Can't "+e+". Story is in the middle of a ContinueAsync(). Make more ContinueAsync() calls or a single Continue() call beforehand.")}ChoosePath(e,t=true){this.state.SetChosenPath(e,t),this.VisitChangedContainersDueToDivert();}ChooseChoiceIndex(e){e=e;let t=this.currentChoices;this.Assert(e>=0&&e<t.length,"choice out of range");let r=t[e];if(this.onMakeChoice!==null&&this.onMakeChoice(r),r.threadAtGeneration===null)return (0, z.throwNullException)("choiceToChoose.threadAtGeneration");if(r.targetPath===null)return (0, z.throwNullException)("choiceToChoose.targetPath");this.state.callStack.currentThread=r.threadAtGeneration,this.ChoosePath(r.targetPath);}HasFunction(e){try{return this.KnotContainerWithName(e)!=null}catch{return false}}EvaluateFunction(e,t=[],r=false){if(this.onEvaluateFunction!==null&&this.onEvaluateFunction(e,t),this.IfAsyncWeCant("evaluate a function"),e==null)throw new Error("Function is null");if(e==""||e.trim()=="")throw new Error("Function is empty or white space.");let i=this.KnotContainerWithName(e);if(i==null)throw new Error("Function doesn't exist: '"+e+"'");let a=[];a.push(...this.state.outputStream),this._state.ResetOutput(),this.state.StartFunctionEvaluationFromGame(i,t);let s=new kn.StringBuilder;for(;this.canContinue;)s.Append(this.Continue());let o=s.toString();this._state.ResetOutput(a);let u=this.state.CompleteFunctionEvaluationFromGame();return this.onCompleteEvaluateFunction!=null&&this.onCompleteEvaluateFunction(e,t,o,u),r?{returned:u,output:o}:u}EvaluateExpression(e){let t=this.state.callStack.elements.length;this.state.callStack.Push(ot.PushPopType.Tunnel),this._temporaryEvaluationContainer=e,this.state.GoToStart();let r=this.state.evaluationStack.length;return this.Continue(),this._temporaryEvaluationContainer=null,this.state.callStack.elements.length>t&&this.state.PopCallStack(),this.state.evaluationStack.length>r?this.state.PopEvaluationStack():null}CallExternalFunction(e,t){if(e===null)return (0, z.throwNullException)("funcName");let r=this._externals.get(e),i=null,a=typeof r<"u";if(a&&!r.lookAheadSafe&&this._state.inStringEvaluation&&this.Error("External function "+e+` could not be called because 1) it wasn't marked as lookaheadSafe when BindExternalFunction was called and 2) the story is in the middle of string generation, either because choice text is being generated, or because you have ink like "hello {func()}". You can work around this by generating the result of your function into a temporary variable before the string or choice gets generated: ~ temp x = `+e+"()"),a&&!r.lookAheadSafe&&this._stateSnapshotAtLastNewline!==null){this._sawLookaheadUnsafeFunctionAfterNewline=true;return}if(!a)if(this.allowExternalFunctionFallbacks){i=this.KnotContainerWithName(e),this.Assert(i!==null,"Trying to call EXTERNAL function '"+e+"' which has not been bound, and fallback ink function could not be found."),this.state.callStack.Push(ot.PushPopType.Function,void 0,this.state.outputStream.length),this.state.divertedPointer=sn.Pointer.StartOf(i);return}else this.Assert(false,"Trying to call EXTERNAL function '"+e+"' which has not been bound (and ink fallbacks disabled).");let s=[];for(let l=0;l<t;++l){let h=(0, L.asOrThrows)(this.state.PopEvaluationStack(),O.Value).valueObject;s.push(h);}s.reverse();let o=r.function(s),u=null;o!=null?(u=O.Value.Create(o),this.Assert(u!==null,"Could not create ink value from returned object of type "+typeof o)):u=new Hi.Void,this.state.PushEvaluationStack(u);}BindExternalFunctionGeneral(e,t,r=true){this.IfAsyncWeCant("bind an external function"),this.Assert(!this._externals.has(e),"Function '"+e+"' has already been bound."),this._externals.set(e,{function:t,lookAheadSafe:r});}TryCoerce(e){return e}BindExternalFunction(e,t,r=false){this.Assert(t!=null,"Can't bind a null function"),this.BindExternalFunctionGeneral(e,i=>{this.Assert(i.length>=t.length,"External function expected "+t.length+" arguments");let a=[];for(let s=0,o=i.length;s<o;s++)a[s]=this.TryCoerce(i[s]);return t.apply(null,a)},r);}UnbindExternalFunction(e){this.IfAsyncWeCant("unbind an external a function"),this.Assert(this._externals.has(e),"Function '"+e+"' has not been bound."),this._externals.delete(e);}ValidateExternalBindings(){let e=null,t=null,r=arguments[1]||new Set;if(arguments[0]instanceof Fe.Container&&(e=arguments[0]),arguments[0]instanceof Zd.InkObject&&(t=arguments[0]),e===null&&t===null)if(this.ValidateExternalBindings(this._mainContentContainer,r),this._hasValidatedExternals=true,r.size==0)this._hasValidatedExternals=true;else {let i="Error: Missing function binding for external";i+=r.size>1?"s":"",i+=": '",i+=Array.from(r).join("', '"),i+="' ",i+=this.allowExternalFunctionFallbacks?", and no fallback ink function found.":" (ink fallbacks disabled)",this.Error(i);}else if(e!=null){for(let i of e.content){let a=i;(a==null||!a.hasValidName)&&this.ValidateExternalBindings(i,r);}for(let[,i]of e.namedContent)this.ValidateExternalBindings((0, L.asOrNull)(i,Zd.InkObject),r);}else if(t!=null){let i=(0, L.asOrNull)(t,y0.Divert);if(i&&i.isExternal){let a=i.targetPathString;if(a===null)return (0, z.throwNullException)("name");this._externals.has(a)||this.allowExternalFunctionFallbacks&&this.mainContentContainer.namedContent.has(a)||r.add(a);}}}ObserveVariable(e,t){if(this.IfAsyncWeCant("observe a new variable"),this._variableObservers===null&&(this._variableObservers=new Map),!this.state.variablesState.GlobalVariableExistsWithName(e))throw new Error("Cannot observe variable '"+e+"' because it wasn't declared in the ink story.");this._variableObservers.has(e)?this._variableObservers.get(e).push(t):this._variableObservers.set(e,[t]);}ObserveVariables(e,t){for(let r=0,i=e.length;r<i;r++)this.ObserveVariable(e[r],t[r]);}RemoveVariableObserver(e,t){if(this.IfAsyncWeCant("remove a variable observer"),this._variableObservers!==null){if(t!=null){if(this._variableObservers.has(t))if(e!=null){let r=this._variableObservers.get(t);r!=null&&(r.splice(r.indexOf(e),1),r.length===0&&this._variableObservers.delete(t));}else this._variableObservers.delete(t);}else if(e!=null){let r=this._variableObservers.keys();for(let i of r){let a=this._variableObservers.get(i);a!=null&&(a.splice(a.indexOf(e),1),a.length===0&&this._variableObservers.delete(i));}}}}VariableStateDidChangeEvent(e,t){if(this._variableObservers===null)return;let r=this._variableObservers.get(e);if(typeof r<"u"){if(!(t instanceof O.Value))throw new Error("Tried to get the value of a variable that isn't a standard type");let i=(0, L.asOrThrows)(t,O.Value);for(let a of r)a(e,i.valueObject);}}get globalTags(){return this.TagsAtStartOfFlowContainerWithPathString("")}TagsForContentAtPath(e){return this.TagsAtStartOfFlowContainerWithPathString(e)}TagsAtStartOfFlowContainerWithPathString(e){let t=new ef.Path(e),r=this.ContentAtPath(t).container;if(r===null)return (0, z.throwNullException)("flowContainer");for(;;){let s=r.content[0];if(s instanceof Fe.Container)r=s;else break}let i=false,a=null;for(let s of r.content){let o=(0, L.asOrNull)(s,V.ControlCommand);if(o!=null)o.commandType==V.ControlCommand.CommandType.BeginTag?i=true:o.commandType==V.ControlCommand.CommandType.EndTag&&(i=false);else if(i){let u=(0, L.asOrNull)(s,O.StringValue);u!==null?(a===null&&(a=[]),u.value!==null&&a.push(u.value)):this.Error("Tag contained non-text content. Only plain text is allowed when using globalTags or TagsAtContentPath. If you want to evaluate dynamic content, you need to use story.Continue().");}else break}return a}BuildStringOfHierarchy(){let e=new kn.StringBuilder;return this.mainContentContainer.BuildStringOfHierarchy(e,0,this.state.currentPointer.Resolve()),e.toString()}BuildStringOfContainer(e){let t=new kn.StringBuilder;return e.BuildStringOfHierarchy(t,0,this.state.currentPointer.Resolve()),t.toString()}NextContent(){if(this.state.previousPointer=this.state.currentPointer.copy(),!this.state.divertedPointer.isNull&&(this.state.currentPointer=this.state.divertedPointer.copy(),this.state.divertedPointer=sn.Pointer.Null,this.VisitChangedContainersDueToDivert(),!this.state.currentPointer.isNull))return;if(!this.IncrementContentPointer()){let t=false;this.state.callStack.CanPop(ot.PushPopType.Function)?(this.state.PopCallStack(ot.PushPopType.Function),this.state.inExpressionEvaluation&&this.state.PushEvaluationStack(new Hi.Void),t=true):this.state.callStack.canPopThread?(this.state.callStack.PopThread(),t=true):this.state.TryExitFunctionEvaluationFromGame(),t&&!this.state.currentPointer.isNull&&this.NextContent();}}IncrementContentPointer(){let e=true,t=this.state.callStack.currentElement.currentPointer.copy();if(t.index++,t.container===null)return (0, z.throwNullException)("pointer.container");for(;t.index>=t.container.content.length;){e=false;let r=(0, L.asOrNull)(t.container.parent,Fe.Container);if(!(r instanceof Fe.Container))break;let i=r.content.indexOf(t.container);if(i==-1)break;if(t=new sn.Pointer(r,i),t.index++,e=true,t.container===null)return (0, z.throwNullException)("pointer.container")}return e||(t=sn.Pointer.Null),this.state.callStack.currentElement.currentPointer=t.copy(),e}TryFollowDefaultInvisibleChoice(){let e=this._state.currentChoices,t=e.filter(i=>i.isInvisibleDefault);if(t.length==0||e.length>t.length)return false;let r=t[0];return r.targetPath===null?(0, z.throwNullException)("choice.targetPath"):r.threadAtGeneration===null?(0, z.throwNullException)("choice.threadAtGeneration"):(this.state.callStack.currentThread=r.threadAtGeneration,this._stateSnapshotAtLastNewline!==null&&(this.state.callStack.currentThread=this.state.callStack.ForkThread()),this.ChoosePath(r.targetPath,false),true)}NextSequenceShuffleIndex(){let e=(0, L.asOrNull)(this.state.PopEvaluationStack(),O.IntValue);if(!(e instanceof O.IntValue))return this.Error("expected number of elements in sequence for shuffle index"),0;let t=this.state.currentPointer.container;if(t===null)return (0, z.throwNullException)("seqContainer");if(e.value===null)return (0, z.throwNullException)("numElementsIntVal.value");let r=e.value,a=(0, L.asOrThrows)(this.state.PopEvaluationStack(),O.IntValue).value;if(a===null)return (0, z.throwNullException)("seqCount");let s=a/r,o=a%r,u=t.path.toString(),l=0;for(let p=0,m=u.length;p<m;p++)l+=u.charCodeAt(p)||0;let c=l+s+this.state.storySeed,h=new tf.PRNG(Math.floor(c)),f=[];for(let p=0;p<r;++p)f.push(p);for(let p=0;p<=o;++p){let m=h.next()%f.length,g=f[m];if(f.splice(m,1),p==o)return g}throw new Error("Should never reach here")}Error(e,t=false){let r=new In.StoryException(e);throw r.useEndLineNumber=t,r}Warning(e){this.AddError(e,true);}AddError(e,t=false,r=false){let i=this.currentDebugMetadata,a=t?"WARNING":"ERROR";if(i!=null){let s=r?i.endLineNumber:i.startLineNumber;e="RUNTIME "+a+": '"+i.fileName+"' line "+s+": "+e;}else this.state.currentPointer.isNull?e="RUNTIME "+a+": "+e:e="RUNTIME "+a+": ("+this.state.currentPointer+"): "+e;this.state.AddError(e,t),t||this.state.ForceEnd();}Assert(e,t=null){if(e==false)throw t==null&&(t="Story assert"),new Error(t+" "+this.currentDebugMetadata)}get currentDebugMetadata(){let e,t=this.state.currentPointer;if(!t.isNull&&t.Resolve()!==null&&(e=t.Resolve().debugMetadata,e!==null))return e;for(let r=this.state.callStack.elements.length-1;r>=0;--r)if(t=this.state.callStack.elements[r].currentPointer,!t.isNull&&t.Resolve()!==null&&(e=t.Resolve().debugMetadata,e!==null))return e;for(let r=this.state.outputStream.length-1;r>=0;--r)if(e=this.state.outputStream[r].debugMetadata,e!==null)return e;return null}get mainContentContainer(){return this._temporaryEvaluationContainer?this._temporaryEvaluationContainer:this._mainContentContainer}};Rn.Story=Ar;Ar.inkVersionCurrent=21;(function(n){(function(t){t[t.NoChange=0]="NoChange",t[t.ExtendedBeyondNewline=1]="ExtendedBeyondNewline",t[t.NewlineRemoved=2]="NewlineRemoved";})(n.OutputStateChange||(n.OutputStateChange={}));})(Ar||(Rn.Story=Ar={}));});var _0=C(tu=>{Object.defineProperty(tu,"__esModule",{value:true});tu.Story=void 0;var p1=Us(),m1=Na(),Yo=de(),Zo=Oe(),zi=ar(),Qo=wt(),E0=yr(),g1=bd(),y1=uo(),C1=Od(),v1=Bi(),Pr=$t(),E1=en(),_1=Zt(),Ki=X(),S1=Ni(),b1=Ii(),D1=xn(),eu=class n extends Qo.FlowBase{get flowLevel(){return E0.FlowLevel.Story}get hadError(){return this._hadError}get hadWarning(){return this._hadWarning}constructor(e,t=false){super(null,e,null,false,t),this._errorHandler=null,this._hadError=false,this._hadWarning=false,this._dontFlattenContainers=new Set,this._listDefs=new Map,this.constants=new Map,this.externals=new Map,this.countAllVisits=false,this.ExportRuntime=(r=null)=>{var i,a;this._errorHandler=r,this.constants=new Map;for(let c of this.FindAll(m1.ConstantDeclaration)()){let h=this.constants.get(c.constantName);if(h&&!h.Equals(c.expression)){let f=`CONST '${c.constantName}' has been redefined with a different value. Multiple definitions of the same CONST are valid so long as they contain the same value. Initial definition was on ${h.debugMetadata}.`;this.Error(f,c,false);}this.constants.set(c.constantName,c.expression);}this._listDefs=new Map;for(let c of this.FindAll(y1.ListDefinition)())!((i=c.identifier)===null||i===void 0)&&i.name&&this._listDefs.set((a=c.identifier)===null||a===void 0?void 0:a.name,c);this.externals=new Map,this.ResolveWeavePointNaming();let s=this.runtimeObject,o=new Yo.Container;o.AddContent(Zo.ControlCommand.EvalStart());let u=[];for(let[c,h]of this.variableDeclarations)if(h.isGlobalDeclaration){if(h.listDefinition)this._listDefs.set(c,h.listDefinition),o.AddContent(h.listDefinition.runtimeObject),u.push(h.listDefinition.runtimeListDefinition);else {if(!h.expression)throw new Error;h.expression.GenerateIntoContainer(o);}let f=new _1.VariableAssignment(c,true);f.isGlobal=true,o.AddContent(f);}o.AddContent(Zo.ControlCommand.EvalEnd()),o.AddContent(Zo.ControlCommand.End()),this.variableDeclarations.size>0&&(o.name="global decl",s.AddToNamedContentOnly(o)),s.AddContent(Zo.ControlCommand.Done());let l=new v1.Story(s,u);return this.runtimeObject=l,this.hadError||(this.FlattenContainersIn(s),this.ResolveReferences(this),this.hadError)?null:(l.ResetState(),l)},this.ResolveList=r=>{let i=this._listDefs.get(r);return i||null},this.ResolveListItem=(r,i,a=null)=>{let s=null;if(r)return (s=this._listDefs.get(r))?s.ItemNamed(i):null;{let o=null,u=null;for(let[,l]of this._listDefs.entries()){let c=l.ItemNamed(i);c&&(o?this.Error(`Ambiguous item name '${i}' found in multiple sets, including ${u.identifier} and ${l.identifier}`,a,false):(o=c,u=l));}return o}},this.FlattenContainersIn=r=>{let i=new Set;if(r.content)for(let a of r.content){let s=(0, Ki.asOrNull)(a,Yo.Container);s&&i.add(s);}if(r.namedContent)for(let[,a]of r.namedContent){let s=(0, Ki.asOrNull)(a,Yo.Container);s&&i.add(s);}for(let a of i)this.TryFlattenContainer(a),this.FlattenContainersIn(a);},this.TryFlattenContainer=r=>{if(r.namedContent&&r.namedContent.size>0||r.hasValidName||this._dontFlattenContainers.has(r))return;let i=(0, Ki.asOrNull)(r.parent,Yo.Container);if(i){let a=i.content.indexOf(r);i.content.splice(a,1);let s=r.ownDebugMetadata;if(r.content)for(let o of r.content)o.parent=null,s!==null&&o.ownDebugMetadata===null&&(o.debugMetadata=s),i.InsertContent(o,a),a+=1;}},this.Error=(r,i,a)=>{let s=a?zi.ErrorType.Warning:zi.ErrorType.Error,o="";if(i instanceof p1.AuthorWarning?(o+="TODO: ",s=zi.ErrorType.Author):a?o+="WARNING: ":o+="ERROR: ",i&&i.debugMetadata!==null&&i.debugMetadata.startLineNumber>=1&&(i.debugMetadata.fileName!=null&&(o+=`'${i.debugMetadata.fileName}' `),o+=`line ${i.debugMetadata.startLineNumber}: `),o+=r,r=o,this._errorHandler!==null)this._errorHandler(r,s);else throw new Error(r);this._hadError=s===zi.ErrorType.Error,this._hadWarning=s===zi.ErrorType.Warning;},this.ResetError=()=>{this._hadError=false,this._hadWarning=false;},this.IsExternal=r=>this.externals.has(r),this.AddExternal=r=>{this.externals.has(r.name)?this.Error(`Duplicate EXTERNAL definition of '${r.name}'`,r,false):r.name&&this.externals.set(r.name,r);},this.DontFlattenContainer=r=>{this._dontFlattenContainers.add(r);},this.NameConflictError=(r,i,a,s)=>{r.Error(`${s} '${i}': name has already been used for a ${a.typeName.toLowerCase()} on ${a.debugMetadata}`);},this.CheckForNamingCollisions=(r,i,a,s="")=>{var o;let u=s||r.typeName;if(n.IsReservedKeyword(i?.name)){r.Error(`'${i}' cannot be used for the name of a ${u.toLowerCase()} because it's a reserved keyword`);return}else if(b1.FunctionCall.IsBuiltIn(i?.name||"")){r.Error(`'${i}' cannot be used for the name of a ${u.toLowerCase()} because it's a built in function`);return}let l=this.ContentWithNameAtLevel(i?.name||"",E0.FlowLevel.Knot),c=(0, Ki.asOrNull)(l,Qo.FlowBase);if(c&&(c!==r||a===Pr.SymbolType.Arg)){this.NameConflictError(r,i?.name||"",c,u);return}if(a<Pr.SymbolType.List)return;for(let[m,g]of this._listDefs)if(i?.name===m&&r!==g&&g.variableAssignment!==r&&this.NameConflictError(r,i?.name,g,u),!(r instanceof C1.ListElementDefinition))for(let v of g.itemDefinitions)i?.name===v.name&&this.NameConflictError(r,i?.name||"",v,u);if(a<=Pr.SymbolType.Var)return;let h=i?.name&&this.variableDeclarations.get(i?.name)||null;if(h&&h!==r&&h.isGlobalDeclaration&&h.listDefinition==null&&this.NameConflictError(r,i?.name||"",h,u),a<Pr.SymbolType.SubFlowAndWeave)return;let p=new D1.Path(i).ResolveFromContext(r);if(p&&p!==r){this.NameConflictError(r,i?.name||"",p,u);return}if(!(a<Pr.SymbolType.Arg)&&a!==Pr.SymbolType.Arg){let m=(0, Ki.asOrNull)(r,Qo.FlowBase);if(m||(m=(0, S1.ClosestFlowBase)(r)),m&&m.hasParameters&&m.args){for(let g of m.args)if(((o=g.identifier)===null||o===void 0?void 0:o.name)===i?.name){r.Error(`${u} '${i}': name has already been used for a argument to ${m.identifier} on ${m.debugMetadata}`);return}}}};}get typeName(){return "Story"}PreProcessTopLevelObjects(e){super.PreProcessTopLevelObjects(e);let t=[];for(let r of e)if(r instanceof g1.IncludedFile){let i=r,a=e.indexOf(r);if(e.splice(a,1),i.includedStory){let s=[],o=i.includedStory;if(o.content!=null){for(let u of o.content)u instanceof Qo.FlowBase?t.push(u):s.push(u);s.push(new E1.Text(`
36
- `)),e.splice(a,0,...s);}}continue}e.splice(0,0,...t);}};tu.Story=eu;eu.IsReservedKeyword=n=>{switch(n){case "true":case "false":case "not":case "return":case "else":case "VAR":case "CONST":case "temp":case "LIST":case "function":return true}return false};});var b0=C(nu=>{Object.defineProperty(nu,"__esModule",{value:true});nu.StringExpression=void 0;var S0=Oe(),w1=nt(),A1=en(),P1=X(),nf=class n extends w1.Expression{get isSingleString(){return !(this.content.length!==1||!(this.content[0]instanceof A1.Text))}constructor(e){super(),this.GenerateIntoContainer=t=>{t.AddContent(S0.ControlCommand.BeginString());for(let r of this.content)t.AddContent(r.runtimeObject);t.AddContent(S0.ControlCommand.EndString());},this.toString=()=>{let t="";for(let r of this.content)t+=r;return t},this.AddContent(e);}get typeName(){return "String"}Equals(e){let t=(0, P1.asOrNull)(e,n);if(t===null||!this.isSingleString||!t.isSingleString)return false;let r=this.toString(),i=t.toString();return r===i}};nu.StringExpression=nf;});var w0=C(Tr=>{Object.defineProperty(Tr,"__esModule",{value:true});Tr.LegacyTag=Tr.Tag=void 0;var T1=oe(),D0=Oe(),rf=class extends T1.ParsedObject{constructor(e,t=false){super(),this.GenerateRuntimeObject=()=>this.isStart?D0.ControlCommand.BeginTag():D0.ControlCommand.EndTag(),this.toString=()=>this.isStart?"#StartTag":"#EndTag",this.isStart=e,this.inChoice=t;}get typeName(){return "Tag"}};Tr.Tag=rf;var O1=Cd(),sf=class extends O1.Wrap{constructor(e){super(e);}get typeName(){return "Tag"}};Tr.LegacyTag=sf;});var A0=C(ru=>{Object.defineProperty(ru,"__esModule",{value:true});ru.DefaultFileHandler=void 0;var af=class{constructor(e){this.rootPath=e,this.ResolveInkFilename=()=>{throw Error("Can't resolve filename because no FileHandler was provided when instantiating the parser / compiler.")},this.LoadInkFileContents=()=>{throw Error("Can't load ink content because no FileHandler was provided when instantiating the parser / compiler.")};}};ru.DefaultFileHandler=af;});var cf=C(ou=>{Object.defineProperty(ou,"__esModule",{value:true});ou.InkParser=void 0;var x1=Kg(),F1=Us(),N1=fh(),pt=uy(),ve=Pi(),I1=gr(),k1=yy(),R1=Oa(),Xi=Uh(),Ke=Ma(),$1=Na(),iu=qy(),V1=Ly(),$n=Er(),of=vr(),j1=nt(),q1=By(),P0=Wy(),su=Ii(),L1=Fi(),B1=My(),W1=bo(),au=Jy(),T0=bd(),M1=Hy(),G1=Ad(),O0=zy(),J1=uo(),H1=Od(),U1=Mh(),x0=oe(),z1=xn(),F0=kh(),N0=nd(),Ce=Qh(),Ve=xd(),K1=Nd(),I0=_0(),Yi=b0(),Vt=Dh(),Or=w0(),jt=en(),k0=id(),uf=cd(),lf=Sr(),X1=hh(),an=X(),Zi=La(),xr=la(),R0=ar(),Y1=A0(),ee=class n extends Vt.StringParser{get fileHandler(){if(!this._fileHandler)throw new Error("No FileHandler defined");return this._fileHandler}set fileHandler(e){this._fileHandler=e;}constructor(e,t=null,r=null,i=null,a=null){if(super(e),this.ParseStory=()=>{let s=this.StatementsAtLevel(Ve.StatementLevel.Top);return new I0.Story(s,this._rootParser!==this)},this.SeparatedList=(s,o)=>{let u=this.Parse(s);if(u===null)return null;let l=[];l.push(u);do{let c=this.BeginRule();if(o()===null){this.FailRule(c);break}let f=this.Parse(s);if(f===null){this.FailRule(c);break}this.SucceedRule(c),l.push(f);}while(true);return l},this.CreateDebugMetadata=(s,o)=>{let u=new V1.DebugMetadata;return u.startLineNumber=(s?.lineIndex||0)+1,u.endLineNumber=o.lineIndex+1,u.startCharacterNumber=(s?.characterInLineIndex||0)+1,u.endCharacterNumber=o.characterInLineIndex+1,u.fileName=this._filename,u},this.RuleDidSucceed=(s,o,u)=>{let l=(0, an.asOrNull)(s,x0.ParsedObject);l&&(l.debugMetadata=this.CreateDebugMetadata(o,u));let c=Array.isArray(s)?s:null;if(c!==null)for(let f of c)(0, an.asOrNull)(f,x0.ParsedObject)&&(f.hasOwnDebugMetadata||(f.debugMetadata=this.CreateDebugMetadata(o,u)));let h=(0, an.asOrNull)(s,Zi.Identifier);h!=null&&(h.debugMetadata=this.CreateDebugMetadata(o,u));},this.OnStringParserError=(s,o,u=0,l=false)=>{let h=l?"WARNING:":"ERROR:";if(this._filename!==null&&(h+=` '${this._filename}'`),h+=` line ${u+1}: ${s}`,this._externalErrorHandler!==null)this._externalErrorHandler(h,l?R0.ErrorType.Warning:R0.ErrorType.Error);else throw new Error(h)},this.AuthorWarning=()=>{this.Whitespace();let s=this.Parse(this.IdentifierWithMetadata);if(s===null||s.name!=="TODO")return null;this.Whitespace(),this.ParseString(":"),this.Whitespace();let o=this.ParseUntilCharactersFromString(`
33
+ `)),a<t.length-1)){let c=t.length-a-1,h=new ye.StringValue(t.substring(a+1,a+1+c));o.push(h);}return o}PushToOutputStreamIndividual(e){let t=(0, pe.asOrNull)(e,zd.Glue),r=(0, pe.asOrNull)(e,ye.StringValue),i=true;if(t)this.TrimNewlinesFromOutputStream(),i=true;else if(r){let a=-1,s=this.callStack.currentElement;s.type==nn.PushPopType.Function&&(a=s.functionStartInOutputStream);let o=-1;for(let l=this.outputStream.length-1;l>=0;l--){let c=this.outputStream[l],h=c instanceof $e.ControlCommand?c:null;if((c instanceof zd.Glue?c:null)!=null){o=l;break}else if(h!=null&&h.commandType==$e.ControlCommand.CommandType.BeginString){l>=a&&(a=-1);break}}let u=-1;if(o!=-1&&a!=-1?u=Math.min(a,o):o!=-1?u=o:u=a,u!=-1){if(r.isNewline)i=false;else if(r.isNonWhitespace&&(o>-1&&this.RemoveExistingGlue(),a>-1)){let l=this.callStack.elements;for(let c=l.length-1;c>=0;c--){let h=l[c];if(h.type==nn.PushPopType.Function)h.functionStartInOutputStream=-1;else break}}}else r.isNewline&&(this.outputStreamEndsInNewline||!this.outputStreamContainsContent)&&(i=false);}if(i){if(e===null)return (0, at.throwNullException)("obj");this.outputStream.push(e),this.OutputStreamDirty();}}TrimNewlinesFromOutputStream(){let e=-1,t=this.outputStream.length-1;for(;t>=0;){let r=this.outputStream[t],i=(0, pe.asOrNull)(r,$e.ControlCommand),a=(0, pe.asOrNull)(r,ye.StringValue);if(i!=null||a!=null&&a.isNonWhitespace)break;a!=null&&a.isNewline&&(e=t),t--;}if(e>=0)for(t=e;t<this.outputStream.length;)(0, pe.asOrNull)(this.outputStream[t],ye.StringValue)?this.outputStream.splice(t,1):t++;this.OutputStreamDirty();}RemoveExistingGlue(){for(let e=this.outputStream.length-1;e>=0;e--){let t=this.outputStream[e];if(t instanceof zd.Glue)this.outputStream.splice(e,1);else if(t instanceof $e.ControlCommand)break}this.OutputStreamDirty();}get outputStreamEndsInNewline(){if(this.outputStream.length>0)for(let e=this.outputStream.length-1;e>=0&&!(this.outputStream[e]instanceof $e.ControlCommand);e--){let r=this.outputStream[e];if(r instanceof ye.StringValue){if(r.isNewline)return true;if(r.isNonWhitespace)break}}return false}get outputStreamContainsContent(){for(let e of this.outputStream)if(e instanceof ye.StringValue)return true;return false}get inStringEvaluation(){for(let e=this.outputStream.length-1;e>=0;e--){let t=(0, pe.asOrNull)(this.outputStream[e],$e.ControlCommand);if(t instanceof $e.ControlCommand&&t.commandType==$e.ControlCommand.CommandType.BeginString)return true}return false}PushEvaluationStack(e){let t=(0, pe.asOrNull)(e,ye.ListValue);if(t){let r=t.value;if(r===null)return (0, at.throwNullException)("rawList");if(r.originNames!=null){r.origins||(r.origins=[]),r.origins.length=0;for(let i of r.originNames){if(this.story.listDefinitions===null)return (0, at.throwNullException)("StoryState.story.listDefinitions");let a=this.story.listDefinitions.TryListGetDefinition(i,null);if(a.result===null)return (0, at.throwNullException)("StoryState def.result");r.origins.indexOf(a.result)<0&&r.origins.push(a.result);}}}if(e===null)return (0, at.throwNullException)("obj");this.evaluationStack.push(e);}PopEvaluationStack(e){if(typeof e>"u"){let t=this.evaluationStack.pop();return (0, pe.nullIfUndefined)(t)}else {if(e>this.evaluationStack.length)throw new Error("trying to pop too many objects");let t=this.evaluationStack.splice(this.evaluationStack.length-e,e);return (0, pe.nullIfUndefined)(t)}}PeekEvaluationStack(){return this.evaluationStack[this.evaluationStack.length-1]}ForceEnd(){this.callStack.Reset(),this._currentFlow.currentChoices.length=0,this.currentPointer=Dr.Pointer.Null,this.previousPointer=Dr.Pointer.Null,this.didSafeExit=true;}TrimWhitespaceFromFunctionEnd(){t1.Debug.Assert(this.callStack.currentElement.type==nn.PushPopType.Function);let e=this.callStack.currentElement.functionStartInOutputStream;e==-1&&(e=0);for(let t=this.outputStream.length-1;t>=e;t--){let r=this.outputStream[t],i=(0, pe.asOrNull)(r,ye.StringValue),a=(0, pe.asOrNull)(r,$e.ControlCommand);if(i!=null){if(a)break;if(i.isNewline||i.isInlineWhitespace)this.outputStream.splice(t,1),this.OutputStreamDirty();else break}}}PopCallStack(e=null){this.callStack.currentElement.type==nn.PushPopType.Function&&this.TrimWhitespaceFromFunctionEnd(),this.callStack.Pop(e);}SetChosenPath(e,t){this._currentFlow.currentChoices.length=0;let r=this.story.PointerAtPath(e);!r.isNull&&r.index==-1&&(r.index=0),this.currentPointer=r,t&&this.currentTurnIndex++;}StartFunctionEvaluationFromGame(e,t){this.callStack.Push(nn.PushPopType.FunctionEvaluationFromGame,this.evaluationStack.length),this.callStack.currentElement.currentPointer=Dr.Pointer.StartOf(e),this.PassArgumentsToEvaluationStack(t);}PassArgumentsToEvaluationStack(e){if(e!==null)for(let t=0;t<e.length;t++){if(!(typeof e[t]=="number"||typeof e[t]=="string"||typeof e[t]=="boolean"||e[t]instanceof i1.InkList))throw new Error("ink arguments when calling EvaluateFunction / ChoosePathStringWithParameters must benumber, string, bool or InkList. Argument was "+((0, pe.nullIfUndefined)(e[t])===null?"null":e[t].constructor.name));this.PushEvaluationStack(ye.Value.Create(e[t]));}}TryExitFunctionEvaluationFromGame(){return this.callStack.currentElement.type==nn.PushPopType.FunctionEvaluationFromGame?(this.currentPointer=Dr.Pointer.Null,this.didSafeExit=true,true):false}CompleteFunctionEvaluationFromGame(){if(this.callStack.currentElement.type!=nn.PushPopType.FunctionEvaluationFromGame)throw new Error("Expected external function evaluation to be complete. Stack trace: "+this.callStack.callStackTrace);let e=this.callStack.currentElement.evaluationStackHeightWhenPushed,t=null;for(;this.evaluationStack.length>e;){let r=this.PopEvaluationStack();t===null&&(t=r);}if(this.PopCallStack(nn.PushPopType.FunctionEvaluationFromGame),t){if(t instanceof e1.Void)return null;let r=(0, pe.asOrThrows)(t,ye.Value);return r.valueType==ye.ValueType.DivertTarget?"-> "+r.valueObject.toString():r.valueObject}return null}AddError(e,t){t?(this._currentWarnings==null&&(this._currentWarnings=[]),this._currentWarnings.push(e)):(this._currentErrors==null&&(this._currentErrors=[]),this._currentErrors.push(e));}OutputStreamDirty(){this._outputStreamTextDirty=true,this._outputStreamTagsDirty=true;}};Uo.StoryState=Xd;});var p0=C(zo=>{Object.defineProperty(zo,"__esModule",{value:true});zo.Stopwatch=void 0;var Yd=class{constructor(){this.startTime=void 0;}get ElapsedMilliseconds(){return typeof this.startTime>"u"?0:new Date().getTime()-this.startTime}Start(){this.startTime=new Date().getTime();}Stop(){this.startTime=void 0;}};zo.Stopwatch=Yd;});var g0=C(Ko=>{Object.defineProperty(Ko,"__esModule",{value:true});Ko.ErrorType=void 0;var m0;(function(n){n[n.Author=0]="Author",n[n.Warning=1]="Warning",n[n.Error=2]="Error";})(m0||(Ko.ErrorType=m0={}));});var Bi=C(Rn=>{Object.defineProperty(Rn,"__esModule",{value:true});Rn.Story=Rn.InkList=void 0;var Fe=de(),Zd=Ge(),Qd=wr(),s1=f0(),V=xe(),ot=Tn(),a1=ma(),o1=Rd(),y0=wt(),x=ue(),ef=Me(),Hi=Pn(),Xo=Io(),u1=Zt(),l1=_r(),c1=bt(),In=Ci(),tf=Gd(),kn=Dn(),h1=Vd(),d1=p0(),sn=xi(),Ui=He(),L=X(),z=Te(),C0=Hd(),v0=g0(),f1=He();Object.defineProperty(Rn,"InkList",{enumerable:true,get:function(){return f1.InkList}});Number.isInteger||(Number.isInteger=function(e){return typeof e=="number"&&isFinite(e)&&e>-9007199254740992&&e<9007199254740992&&Math.floor(e)===e});var Ar=class n extends Zd.InkObject{get currentChoices(){let e=[];if(this._state===null)return (0, z.throwNullException)("this._state");for(let t of this._state.currentChoices)t.isInvisibleDefault||(t.index=e.length,e.push(t));return e}get currentText(){return this.IfAsyncWeCant("call currentText since it's a work in progress"),this.state.currentText}get currentTags(){return this.IfAsyncWeCant("call currentTags since it's a work in progress"),this.state.currentTags}get currentErrors(){return this.state.currentErrors}get currentWarnings(){return this.state.currentWarnings}get currentFlowName(){return this.state.currentFlowName}get currentFlowIsDefaultFlow(){return this.state.currentFlowIsDefaultFlow}get aliveFlowNames(){return this.state.aliveFlowNames}get hasError(){return this.state.hasError}get hasWarning(){return this.state.hasWarning}get variablesState(){return this.state.variablesState}get listDefinitions(){return this._listDefinitions}get state(){return this._state}StartProfiling(){}EndProfiling(){}constructor(){super(),this.inkVersionMinimumCompatible=18,this.onError=null,this.onDidContinue=null,this.onMakeChoice=null,this.onEvaluateFunction=null,this.onCompleteEvaluateFunction=null,this.onChoosePathString=null,this._prevContainers=[],this.allowExternalFunctionFallbacks=false,this._listDefinitions=null,this._variableObservers=null,this._hasValidatedExternals=false,this._temporaryEvaluationContainer=null,this._asyncContinueActive=false,this._stateSnapshotAtLastNewline=null,this._sawLookaheadUnsafeFunctionAfterNewline=false,this._recursiveContinueCount=0,this._asyncSaving=false,this._profiler=null;let e,t=null,r=null;if(arguments[0]instanceof Fe.Container)e=arguments[0],typeof arguments[1]<"u"&&(t=arguments[1]),this._mainContentContainer=e;else if(typeof arguments[0]=="string"){let i=arguments[0];r=C0.SimpleJson.TextToDictionary(i);}else r=arguments[0];if(t!=null&&(this._listDefinitions=new h1.ListDefinitionsOrigin(t)),this._externals=new Map,r!==null){let i=r,a=i.inkVersion;if(a==null)throw new Error("ink version number not found. Are you sure it's a valid .ink.json file?");let s=parseInt(a);if(s>n.inkVersionCurrent)throw new Error("Version of ink used to build story was newer than the current version of the engine");if(s<this.inkVersionMinimumCompatible)throw new Error("Version of ink used to build story is too old to be loaded by this version of the engine");s!=n.inkVersionCurrent&&console.warn(`WARNING: Version of ink ${n.inkVersionCurrent} used to build story doesn't match current version of engine (${s}). Non-critical, but recommend synchronising.`);let o=i.root;if(o==null)throw new Error("Root node for ink not found. Are you sure it's a valid .ink.json file?");let u;(u=i.listDefs)&&(this._listDefinitions=Qd.JsonSerialisation.JTokenToListDefinitions(u)),this._mainContentContainer=(0, L.asOrThrows)(Qd.JsonSerialisation.JTokenToRuntimeObject(o),Fe.Container),this.ResetState();}}ToJson(e){let t=false;if(e||(t=true,e=new C0.SimpleJson.Writer),e.WriteObjectStart(),e.WriteIntProperty("inkVersion",n.inkVersionCurrent),e.WriteProperty("root",r=>Qd.JsonSerialisation.WriteRuntimeContainer(r,this._mainContentContainer)),this._listDefinitions!=null){e.WritePropertyStart("listDefs"),e.WriteObjectStart();for(let r of this._listDefinitions.lists){e.WritePropertyStart(r.name),e.WriteObjectStart();for(let[i,a]of r.items){let s=Ui.InkListItem.fromSerializedKey(i),o=a;e.WriteIntProperty(s.itemName,o);}e.WriteObjectEnd(),e.WritePropertyEnd();}e.WriteObjectEnd(),e.WritePropertyEnd();}if(e.WriteObjectEnd(),t)return e.toString()}ResetState(){this.IfAsyncWeCant("ResetState"),this._state=new s1.StoryState(this),this._state.variablesState.ObserveVariableChange(this.VariableStateDidChangeEvent.bind(this)),this.ResetGlobals();}ResetErrors(){if(this._state===null)return (0, z.throwNullException)("this._state");this._state.ResetErrors();}ResetCallstack(){if(this.IfAsyncWeCant("ResetCallstack"),this._state===null)return (0, z.throwNullException)("this._state");this._state.ForceEnd();}ResetGlobals(){if(this._mainContentContainer.namedContent.get("global decl")){let e=this.state.currentPointer.copy();this.ChoosePath(new ef.Path("global decl"),false),this.ContinueInternal(),this.state.currentPointer=e;}this.state.variablesState.SnapshotDefaultGlobals();}SwitchFlow(e){if(this.IfAsyncWeCant("switch flow"),this._asyncSaving)throw new Error("Story is already in background saving mode, can't switch flow to "+e);this.state.SwitchFlow_Internal(e);}RemoveFlow(e){this.state.RemoveFlow_Internal(e);}SwitchToDefaultFlow(){this.state.SwitchToDefaultFlow_Internal();}Continue(){return this.ContinueAsync(0),this.currentText}get canContinue(){return this.state.canContinue}get asyncContinueComplete(){return !this._asyncContinueActive}ContinueAsync(e){this._hasValidatedExternals||this.ValidateExternalBindings(),this.ContinueInternal(e);}ContinueInternal(e=0){this._profiler!=null&&this._profiler.PreContinue();let t=e>0;if(this._recursiveContinueCount++,this._asyncContinueActive)this._asyncContinueActive&&!t&&(this._asyncContinueActive=false);else {if(this._asyncContinueActive=t,!this.canContinue)throw new Error("Can't continue - should check canContinue before calling Continue");this._state.didSafeExit=false,this._state.ResetOutput(),this._recursiveContinueCount==1&&this._state.variablesState.StartVariableObservation();}let r=new d1.Stopwatch;r.Start();let i=false;this._sawLookaheadUnsafeFunctionAfterNewline=false;do{try{i=this.ContinueSingleStep();}catch(s){if(!(s instanceof In.StoryException))throw s;this.AddError(s.message,void 0,s.useEndLineNumber);break}if(i||this._asyncContinueActive&&r.ElapsedMilliseconds>e)break}while(this.canContinue);r.Stop();let a=null;if((i||!this.canContinue)&&(this._stateSnapshotAtLastNewline!==null&&this.RestoreStateSnapshot(),this.canContinue||(this.state.callStack.canPopThread&&this.AddError("Thread available to pop, threads should always be flat by the end of evaluation?"),this.state.generatedChoices.length==0&&!this.state.didSafeExit&&this._temporaryEvaluationContainer==null&&(this.state.callStack.CanPop(ot.PushPopType.Tunnel)?this.AddError("unexpectedly reached end of content. Do you need a '->->' to return from a tunnel?"):this.state.callStack.CanPop(ot.PushPopType.Function)?this.AddError("unexpectedly reached end of content. Do you need a '~ return'?"):this.state.callStack.canPop?this.AddError("unexpectedly reached end of content for unknown reason. Please debug compiler!"):this.AddError("ran out of content. Do you need a '-> DONE' or '-> END'?"))),this.state.didSafeExit=false,this._sawLookaheadUnsafeFunctionAfterNewline=false,this._recursiveContinueCount==1&&(a=this._state.variablesState.CompleteVariableObservation()),this._asyncContinueActive=false,this.onDidContinue!==null&&this.onDidContinue()),this._recursiveContinueCount--,this._profiler!=null&&this._profiler.PostContinue(),this.state.hasError||this.state.hasWarning)if(this.onError!==null){if(this.state.hasError)for(let s of this.state.currentErrors)this.onError(s,v0.ErrorType.Error);if(this.state.hasWarning)for(let s of this.state.currentWarnings)this.onError(s,v0.ErrorType.Warning);this.ResetErrors();}else {let s=new kn.StringBuilder;throw s.Append("Ink had "),this.state.hasError&&(s.Append(`${this.state.currentErrors.length}`),s.Append(this.state.currentErrors.length==1?" error":" errors"),this.state.hasWarning&&s.Append(" and ")),this.state.hasWarning&&(s.Append(`${this.state.currentWarnings.length}`),s.Append(this.state.currentWarnings.length==1?" warning":" warnings"),this.state.hasWarning&&s.Append(" and ")),s.Append(". It is strongly suggested that you assign an error handler to story.onError. The first issue was: "),s.Append(this.state.hasError?this.state.currentErrors[0]:this.state.currentWarnings[0]),new In.StoryException(s.toString())}a!=null&&Object.keys(a).length>0&&this._state.variablesState.NotifyObservers(a);}ContinueSingleStep(){if(this._profiler!=null&&this._profiler.PreStep(),this.Step(),this._profiler!=null&&this._profiler.PostStep(),!this.canContinue&&!this.state.callStack.elementIsEvaluateFromGame&&this.TryFollowDefaultInvisibleChoice(),this._profiler!=null&&this._profiler.PreSnapshot(),!this.state.inStringEvaluation){if(this._stateSnapshotAtLastNewline!==null){if(this._stateSnapshotAtLastNewline.currentTags===null)return (0, z.throwNullException)("this._stateAtLastNewline.currentTags");if(this.state.currentTags===null)return (0, z.throwNullException)("this.state.currentTags");let e=this.CalculateNewlineOutputStateChange(this._stateSnapshotAtLastNewline.currentText,this.state.currentText,this._stateSnapshotAtLastNewline.currentTags.length,this.state.currentTags.length);if(e==n.OutputStateChange.ExtendedBeyondNewline||this._sawLookaheadUnsafeFunctionAfterNewline)return this.RestoreStateSnapshot(),true;e==n.OutputStateChange.NewlineRemoved&&this.DiscardSnapshot();}this.state.outputStreamEndsInNewline&&(this.canContinue?this._stateSnapshotAtLastNewline==null&&this.StateSnapshot():this.DiscardSnapshot());}return this._profiler!=null&&this._profiler.PostSnapshot(),false}CalculateNewlineOutputStateChange(e,t,r,i){if(e===null)return (0, z.throwNullException)("prevText");if(t===null)return (0, z.throwNullException)("currText");let a=t.length>=e.length&&e.length>0&&t.charAt(e.length-1)==`
34
+ `;if(r==i&&e.length==t.length&&a)return n.OutputStateChange.NoChange;if(!a)return n.OutputStateChange.NewlineRemoved;if(i>r)return n.OutputStateChange.ExtendedBeyondNewline;for(let s=e.length;s<t.length;s++){let o=t.charAt(s);if(o!=" "&&o!=" ")return n.OutputStateChange.ExtendedBeyondNewline}return n.OutputStateChange.NoChange}ContinueMaximally(){this.IfAsyncWeCant("ContinueMaximally");let e=new kn.StringBuilder;for(;this.canContinue;)e.Append(this.Continue());return e.toString()}ContentAtPath(e){return this.mainContentContainer.ContentAtPath(e)}KnotContainerWithName(e){let t=this.mainContentContainer.namedContent.get(e);return t instanceof Fe.Container?t:null}PointerAtPath(e){if(e.length==0)return sn.Pointer.Null;let t=new sn.Pointer,r=e.length,i=null;return e.lastComponent===null?(0, z.throwNullException)("path.lastComponent"):(e.lastComponent.isIndex?(r=e.length-1,i=this.mainContentContainer.ContentAtPath(e,void 0,r),t.container=i.container,t.index=e.lastComponent.index):(i=this.mainContentContainer.ContentAtPath(e),t.container=i.container,t.index=-1),i.obj==null||i.obj==this.mainContentContainer&&r>0?this.Error("Failed to find content at path '"+e+"', and no approximation of it was possible."):i.approximate&&this.Warning("Failed to find content at path '"+e+"', so it was approximated to: '"+i.obj.path+"'."),t)}StateSnapshot(){this._stateSnapshotAtLastNewline=this._state,this._state=this._state.CopyAndStartPatching(false);}RestoreStateSnapshot(){this._stateSnapshotAtLastNewline===null&&(0, z.throwNullException)("_stateSnapshotAtLastNewline"),this._stateSnapshotAtLastNewline.RestoreAfterPatch(),this._state=this._stateSnapshotAtLastNewline,this._stateSnapshotAtLastNewline=null,this._asyncSaving||this._state.ApplyAnyPatch();}DiscardSnapshot(){this._asyncSaving||this._state.ApplyAnyPatch(),this._stateSnapshotAtLastNewline=null;}CopyStateForBackgroundThreadSave(){if(this.IfAsyncWeCant("start saving on a background thread"),this._asyncSaving)throw new Error("Story is already in background saving mode, can't call CopyStateForBackgroundThreadSave again!");let e=this._state;return this._state=this._state.CopyAndStartPatching(true),this._asyncSaving=true,e}BackgroundSaveComplete(){this._stateSnapshotAtLastNewline===null&&this._state.ApplyAnyPatch(),this._asyncSaving=false;}Step(){let e=true,t=this.state.currentPointer.copy();if(t.isNull)return;let r=(0, L.asOrNull)(t.Resolve(),Fe.Container);for(;r&&(this.VisitContainer(r,true),r.content.length!=0);)t=sn.Pointer.StartOf(r),r=(0, L.asOrNull)(t.Resolve(),Fe.Container);this.state.currentPointer=t.copy(),this._profiler!=null&&this._profiler.Step(this.state.callStack);let i=t.Resolve(),a=this.PerformLogicAndFlowControl(i);if(this.state.currentPointer.isNull)return;a&&(e=false);let s=(0, L.asOrNull)(i,a1.ChoicePoint);if(s){let u=this.ProcessChoice(s);u&&this.state.generatedChoices.push(u),i=null,e=false;}if(i instanceof Fe.Container&&(e=false),e){let u=(0, L.asOrNull)(i,x.VariablePointerValue);if(u&&u.contextIndex==-1){let l=this.state.callStack.ContextForVariableNamed(u.variableName);i=new x.VariablePointerValue(u.variableName,l);}this.state.inExpressionEvaluation?this.state.PushEvaluationStack(i):this.state.PushToOutputStream(i);}this.NextContent();let o=(0, L.asOrNull)(i,V.ControlCommand);o&&o.commandType==V.ControlCommand.CommandType.StartThread&&this.state.callStack.PushThread();}VisitContainer(e,t){(!e.countingAtStartOnly||t)&&(e.visitsShouldBeCounted&&this.state.IncrementVisitCountForContainer(e),e.turnIndexShouldBeCounted&&this.state.RecordTurnIndexVisitToContainer(e));}VisitChangedContainersDueToDivert(){let e=this.state.previousPointer.copy(),t=this.state.currentPointer.copy();if(t.isNull||t.index==-1)return;if(this._prevContainers.length=0,!e.isNull){let s=e.Resolve(),o=(0, L.asOrNull)(s,Fe.Container)||(0, L.asOrNull)(e.container,Fe.Container);for(;o;)this._prevContainers.push(o),o=(0, L.asOrNull)(o.parent,Fe.Container);}let r=t.Resolve();if(r==null)return;let i=(0, L.asOrNull)(r.parent,Fe.Container),a=true;for(;i&&(this._prevContainers.indexOf(i)<0||i.countingAtStartOnly);){let s=i.content.length>0&&r==i.content[0]&&a;s||(a=false),this.VisitContainer(i,s),r=i,i=(0, L.asOrNull)(i.parent,Fe.Container);}}PopChoiceStringAndTags(e){let t=(0, L.asOrThrows)(this.state.PopEvaluationStack(),x.StringValue);for(;this.state.evaluationStack.length>0&&(0, L.asOrNull)(this.state.PeekEvaluationStack(),Xo.Tag)!=null;){let r=(0, L.asOrNull)(this.state.PopEvaluationStack(),Xo.Tag);r&&e.push(r.text);}return t.value}ProcessChoice(e){let t=true;if(e.hasCondition){let o=this.state.PopEvaluationStack();this.IsTruthy(o)||(t=false);}let r="",i="",a=[];if(e.hasChoiceOnlyContent&&(i=this.PopChoiceStringAndTags(a)||""),e.hasStartContent&&(r=this.PopChoiceStringAndTags(a)||""),e.onceOnly&&this.state.VisitCountForContainer(e.choiceTarget)>0&&(t=false),!t)return null;let s=new o1.Choice;return s.targetPath=e.pathOnChoice,s.sourcePath=e.path.toString(),s.isInvisibleDefault=e.isInvisibleDefault,s.threadAtGeneration=this.state.callStack.ForkThread(),s.tags=a.reverse(),s.text=(r+i).replace(/^[ \t]+|[ \t]+$/g,""),s}IsTruthy(e){let t=false;if(e instanceof x.Value){let r=e;if(r instanceof x.DivertTargetValue){let i=r;return this.Error("Shouldn't use a divert target (to "+i.targetPath+") as a conditional value. Did you intend a function call 'likeThis()' or a read count check 'likeThis'? (no arrows)"),false}return r.isTruthy}return t}PerformLogicAndFlowControl(e){if(e==null)return false;if(e instanceof y0.Divert){let t=e;if(t.isConditional){let r=this.state.PopEvaluationStack();if(!this.IsTruthy(r))return true}if(t.hasVariableTarget){let r=t.variableDivertName,i=this.state.variablesState.GetVariableWithName(r);if(i==null)this.Error("Tried to divert using a target from a variable that could not be found ("+r+")");else if(!(i instanceof x.DivertTargetValue)){let s=(0, L.asOrNull)(i,x.IntValue),o="Tried to divert to a target from a variable, but the variable ("+r+") didn't contain a divert target, it ";s instanceof x.IntValue&&s.value==0?o+="was empty/null (the value 0).":o+="contained '"+i+"'.",this.Error(o);}let a=(0, L.asOrThrows)(i,x.DivertTargetValue);this.state.divertedPointer=this.PointerAtPath(a.targetPath);}else {if(t.isExternal)return this.CallExternalFunction(t.targetPathString,t.externalArgs),true;this.state.divertedPointer=t.targetPointer.copy();}return t.pushesToStack&&this.state.callStack.Push(t.stackPushType,void 0,this.state.outputStream.length),this.state.divertedPointer.isNull&&!t.isExternal&&(t&&t.debugMetadata&&t.debugMetadata.sourceName!=null?this.Error("Divert target doesn't exist: "+t.debugMetadata.sourceName):this.Error("Divert resolution failed: "+t)),true}else if(e instanceof V.ControlCommand){let t=e;switch(t.commandType){case V.ControlCommand.CommandType.EvalStart:this.Assert(this.state.inExpressionEvaluation===false,"Already in expression evaluation?"),this.state.inExpressionEvaluation=true;break;case V.ControlCommand.CommandType.EvalEnd:this.Assert(this.state.inExpressionEvaluation===true,"Not in expression evaluation mode"),this.state.inExpressionEvaluation=false;break;case V.ControlCommand.CommandType.EvalOutput:if(this.state.evaluationStack.length>0){let y=this.state.PopEvaluationStack();if(!(y instanceof Hi.Void)){let S=new x.StringValue(y.toString());this.state.PushToOutputStream(S);}}break;case V.ControlCommand.CommandType.NoOp:break;case V.ControlCommand.CommandType.Duplicate:this.state.PushEvaluationStack(this.state.PeekEvaluationStack());break;case V.ControlCommand.CommandType.PopEvaluatedValue:this.state.PopEvaluationStack();break;case V.ControlCommand.CommandType.PopFunction:case V.ControlCommand.CommandType.PopTunnel:let r=t.commandType==V.ControlCommand.CommandType.PopFunction?ot.PushPopType.Function:ot.PushPopType.Tunnel,i=null;if(r==ot.PushPopType.Tunnel){let y=this.state.PopEvaluationStack();i=(0, L.asOrNull)(y,x.DivertTargetValue),i===null&&this.Assert(y instanceof Hi.Void,"Expected void if ->-> doesn't override target");}if(this.state.TryExitFunctionEvaluationFromGame())break;if(this.state.callStack.currentElement.type!=r||!this.state.callStack.canPop){let y=new Map;y.set(ot.PushPopType.Function,"function return statement (~ return)"),y.set(ot.PushPopType.Tunnel,"tunnel onwards statement (->->)");let S=y.get(this.state.callStack.currentElement.type);this.state.callStack.canPop||(S="end of flow (-> END or choice)");let D="Found "+y.get(r)+", when expected "+S;this.Error(D);}else this.state.PopCallStack(),i&&(this.state.divertedPointer=this.PointerAtPath(i.targetPath));break;case V.ControlCommand.CommandType.BeginString:this.state.PushToOutputStream(t),this.Assert(this.state.inExpressionEvaluation===true,"Expected to be in an expression when evaluating a string"),this.state.inExpressionEvaluation=false;break;case V.ControlCommand.CommandType.BeginTag:this.state.PushToOutputStream(t);break;case V.ControlCommand.CommandType.EndTag:{if(this.state.inStringEvaluation){let y=[],S=0;for(let F=this.state.outputStream.length-1;F>=0;--F){let Z=this.state.outputStream[F];S++;let be=(0, L.asOrNull)(Z,V.ControlCommand);if(be!=null){if(be.commandType==V.ControlCommand.CommandType.BeginTag)break;this.Error("Unexpected ControlCommand while extracting tag from choice");break}Z instanceof x.StringValue&&y.push(Z);}this.state.PopFromOutputStream(S);let D=new kn.StringBuilder;for(let F of y.reverse())D.Append(F.toString());let A=new Xo.Tag(this.state.CleanOutputWhitespace(D.toString()));this.state.PushEvaluationStack(A);}else this.state.PushToOutputStream(t);break}case V.ControlCommand.CommandType.EndString:{let y=[],S=[],D=0;for(let F=this.state.outputStream.length-1;F>=0;--F){let Z=this.state.outputStream[F];D++;let be=(0, L.asOrNull)(Z,V.ControlCommand);if(be&&be.commandType==V.ControlCommand.CommandType.BeginString)break;Z instanceof Xo.Tag&&S.push(Z),Z instanceof x.StringValue&&y.push(Z);}this.state.PopFromOutputStream(D);for(let F of S)this.state.PushToOutputStream(F);y=y.reverse();let A=new kn.StringBuilder;for(let F of y)A.Append(F.toString());this.state.inExpressionEvaluation=true,this.state.PushEvaluationStack(new x.StringValue(A.toString()));break}case V.ControlCommand.CommandType.ChoiceCount:let a=this.state.generatedChoices.length;this.state.PushEvaluationStack(new x.IntValue(a));break;case V.ControlCommand.CommandType.Turns:this.state.PushEvaluationStack(new x.IntValue(this.state.currentTurnIndex+1));break;case V.ControlCommand.CommandType.TurnsSince:case V.ControlCommand.CommandType.ReadCount:let s=this.state.PopEvaluationStack();if(!(s instanceof x.DivertTargetValue)){let y="";s instanceof x.IntValue&&(y=". Did you accidentally pass a read count ('knot_name') instead of a target ('-> knot_name')?"),this.Error("TURNS_SINCE / READ_COUNT expected a divert target (knot, stitch, label name), but saw "+s+y);break}let o=(0, L.asOrThrows)(s,x.DivertTargetValue),u=(0, L.asOrNull)(this.ContentAtPath(o.targetPath).correctObj,Fe.Container),l;u!=null?t.commandType==V.ControlCommand.CommandType.TurnsSince?l=this.state.TurnsSinceForContainer(u):l=this.state.VisitCountForContainer(u):(t.commandType==V.ControlCommand.CommandType.TurnsSince?l=-1:l=0,this.Warning("Failed to find container for "+t.toString()+" lookup at "+o.targetPath.toString())),this.state.PushEvaluationStack(new x.IntValue(l));break;case V.ControlCommand.CommandType.Random:{let y=(0, L.asOrNull)(this.state.PopEvaluationStack(),x.IntValue),S=(0, L.asOrNull)(this.state.PopEvaluationStack(),x.IntValue);if(S==null||!(S instanceof x.IntValue))return this.Error("Invalid value for minimum parameter of RANDOM(min, max)");if(y==null||!(y instanceof x.IntValue))return this.Error("Invalid value for maximum parameter of RANDOM(min, max)");if(y.value===null)return (0, z.throwNullException)("maxInt.value");if(S.value===null)return (0, z.throwNullException)("minInt.value");let D=y.value-S.value+1;(!isFinite(D)||D>Number.MAX_SAFE_INTEGER)&&(D=Number.MAX_SAFE_INTEGER,this.Error("RANDOM was called with a range that exceeds the size that ink numbers can use.")),D<=0&&this.Error("RANDOM was called with minimum as "+S.value+" and maximum as "+y.value+". The maximum must be larger");let A=this.state.storySeed+this.state.previousRandom,Z=new tf.PRNG(A).next(),be=Z%D+S.value;this.state.PushEvaluationStack(new x.IntValue(be)),this.state.previousRandom=Z;break}case V.ControlCommand.CommandType.SeedRandom:let c=(0, L.asOrNull)(this.state.PopEvaluationStack(),x.IntValue);if(c==null||!(c instanceof x.IntValue))return this.Error("Invalid value passed to SEED_RANDOM");if(c.value===null)return (0, z.throwNullException)("minInt.value");this.state.storySeed=c.value,this.state.previousRandom=0,this.state.PushEvaluationStack(new Hi.Void);break;case V.ControlCommand.CommandType.VisitIndex:let h=this.state.VisitCountForContainer(this.state.currentPointer.container)-1;this.state.PushEvaluationStack(new x.IntValue(h));break;case V.ControlCommand.CommandType.SequenceShuffleIndex:let f=this.NextSequenceShuffleIndex();this.state.PushEvaluationStack(new x.IntValue(f));break;case V.ControlCommand.CommandType.StartThread:break;case V.ControlCommand.CommandType.Done:this.state.callStack.canPopThread?this.state.callStack.PopThread():(this.state.didSafeExit=true,this.state.currentPointer=sn.Pointer.Null);break;case V.ControlCommand.CommandType.End:this.state.ForceEnd();break;case V.ControlCommand.CommandType.ListFromInt:let p=(0, L.asOrNull)(this.state.PopEvaluationStack(),x.IntValue),m=(0, L.asOrThrows)(this.state.PopEvaluationStack(),x.StringValue);if(p===null)throw new In.StoryException("Passed non-integer when creating a list element from a numerical value.");let g=null;if(this.listDefinitions===null)return (0, z.throwNullException)("this.listDefinitions");let v=this.listDefinitions.TryListGetDefinition(m.value,null);if(v.exists){if(p.value===null)return (0, z.throwNullException)("minInt.value");let y=v.result.TryGetItemWithValue(p.value,Ui.InkListItem.Null);y.exists&&(g=new x.ListValue(y.result,p.value));}else throw new In.StoryException("Failed to find LIST called "+m.value);g==null&&(g=new x.ListValue),this.state.PushEvaluationStack(g);break;case V.ControlCommand.CommandType.ListRange:let E=(0, L.asOrNull)(this.state.PopEvaluationStack(),x.Value),b=(0, L.asOrNull)(this.state.PopEvaluationStack(),x.Value),d=(0, L.asOrNull)(this.state.PopEvaluationStack(),x.ListValue);if(d===null||b===null||E===null)throw new In.StoryException("Expected list, minimum and maximum for LIST_RANGE");if(d.value===null)return (0, z.throwNullException)("targetList.value");let _=d.value.ListWithSubRange(b.valueObject,E.valueObject);this.state.PushEvaluationStack(new x.ListValue(_));break;case V.ControlCommand.CommandType.ListRandom:{let y=this.state.PopEvaluationStack();if(y===null)throw new In.StoryException("Expected list for LIST_RANDOM");let S=y.value,D=null;if(S===null)throw (0, z.throwNullException)("list");if(S.Count==0)D=new Ui.InkList;else {let A=this.state.storySeed+this.state.previousRandom,Z=new tf.PRNG(A).next(),be=Z%S.Count,Fr=S.entries();for(let _f=0;_f<=be-1;_f++)Fr.next();let Nr=Fr.next().value,Vn={Key:Ui.InkListItem.fromSerializedKey(Nr[0]),Value:Nr[1]};if(Vn.Key.originName===null)return (0, z.throwNullException)("randomItem.Key.originName");D=new Ui.InkList(Vn.Key.originName,this),D.Add(Vn.Key,Vn.Value),this.state.previousRandom=Z;}this.state.PushEvaluationStack(new x.ListValue(D));break}default:this.Error("unhandled ControlCommand: "+t);break}return true}else if(e instanceof u1.VariableAssignment){let t=e,r=this.state.PopEvaluationStack();return this.state.variablesState.Assign(t,r),true}else if(e instanceof l1.VariableReference){let t=e,r=null;if(t.pathForCount!=null){let i=t.containerForCount,a=this.state.VisitCountForContainer(i);r=new x.IntValue(a);}else r=this.state.variablesState.GetVariableWithName(t.name),r==null&&(this.Warning("Variable not found: '"+t.name+"'. Using default value of 0 (false). This can happen with temporary variables if the declaration hasn't yet been hit. Globals are always given a default value on load if a value doesn't exist in the save state."),r=new x.IntValue(0));return this.state.PushEvaluationStack(r),true}else if(e instanceof c1.NativeFunctionCall){let t=e,r=this.state.PopEvaluationStack(t.numberOfParameters),i=t.Call(r);return this.state.PushEvaluationStack(i),true}return false}ChoosePathString(e,t=true,r=[]){if(this.IfAsyncWeCant("call ChoosePathString right now"),this.onChoosePathString!==null&&this.onChoosePathString(e,r),t)this.ResetCallstack();else if(this.state.callStack.currentElement.type==ot.PushPopType.Function){let i="",a=this.state.callStack.currentElement.currentPointer.container;throw a!=null&&(i="("+a.path.toString()+") "),new Error("Story was running a function "+i+"when you called ChoosePathString("+e+`) - this is almost certainly not not what you want! Full stack trace:
35
+ `+this.state.callStack.callStackTrace)}this.state.PassArgumentsToEvaluationStack(r),this.ChoosePath(new ef.Path(e));}IfAsyncWeCant(e){if(this._asyncContinueActive)throw new Error("Can't "+e+". Story is in the middle of a ContinueAsync(). Make more ContinueAsync() calls or a single Continue() call beforehand.")}ChoosePath(e,t=true){this.state.SetChosenPath(e,t),this.VisitChangedContainersDueToDivert();}ChooseChoiceIndex(e){e=e;let t=this.currentChoices;this.Assert(e>=0&&e<t.length,"choice out of range");let r=t[e];if(this.onMakeChoice!==null&&this.onMakeChoice(r),r.threadAtGeneration===null)return (0, z.throwNullException)("choiceToChoose.threadAtGeneration");if(r.targetPath===null)return (0, z.throwNullException)("choiceToChoose.targetPath");this.state.callStack.currentThread=r.threadAtGeneration,this.ChoosePath(r.targetPath);}HasFunction(e){try{return this.KnotContainerWithName(e)!=null}catch{return false}}EvaluateFunction(e,t=[],r=false){if(this.onEvaluateFunction!==null&&this.onEvaluateFunction(e,t),this.IfAsyncWeCant("evaluate a function"),e==null)throw new Error("Function is null");if(e==""||e.trim()=="")throw new Error("Function is empty or white space.");let i=this.KnotContainerWithName(e);if(i==null)throw new Error("Function doesn't exist: '"+e+"'");let a=[];a.push(...this.state.outputStream),this._state.ResetOutput(),this.state.StartFunctionEvaluationFromGame(i,t);let s=new kn.StringBuilder;for(;this.canContinue;)s.Append(this.Continue());let o=s.toString();this._state.ResetOutput(a);let u=this.state.CompleteFunctionEvaluationFromGame();return this.onCompleteEvaluateFunction!=null&&this.onCompleteEvaluateFunction(e,t,o,u),r?{returned:u,output:o}:u}EvaluateExpression(e){let t=this.state.callStack.elements.length;this.state.callStack.Push(ot.PushPopType.Tunnel),this._temporaryEvaluationContainer=e,this.state.GoToStart();let r=this.state.evaluationStack.length;return this.Continue(),this._temporaryEvaluationContainer=null,this.state.callStack.elements.length>t&&this.state.PopCallStack(),this.state.evaluationStack.length>r?this.state.PopEvaluationStack():null}CallExternalFunction(e,t){if(e===null)return (0, z.throwNullException)("funcName");let r=this._externals.get(e),i=null,a=typeof r<"u";if(a&&!r.lookAheadSafe&&this._state.inStringEvaluation&&this.Error("External function "+e+` could not be called because 1) it wasn't marked as lookaheadSafe when BindExternalFunction was called and 2) the story is in the middle of string generation, either because choice text is being generated, or because you have ink like "hello {func()}". You can work around this by generating the result of your function into a temporary variable before the string or choice gets generated: ~ temp x = `+e+"()"),a&&!r.lookAheadSafe&&this._stateSnapshotAtLastNewline!==null){this._sawLookaheadUnsafeFunctionAfterNewline=true;return}if(!a)if(this.allowExternalFunctionFallbacks){i=this.KnotContainerWithName(e),this.Assert(i!==null,"Trying to call EXTERNAL function '"+e+"' which has not been bound, and fallback ink function could not be found."),this.state.callStack.Push(ot.PushPopType.Function,void 0,this.state.outputStream.length),this.state.divertedPointer=sn.Pointer.StartOf(i);return}else this.Assert(false,"Trying to call EXTERNAL function '"+e+"' which has not been bound (and ink fallbacks disabled).");let s=[];for(let l=0;l<t;++l){let h=(0, L.asOrThrows)(this.state.PopEvaluationStack(),x.Value).valueObject;s.push(h);}s.reverse();let o=r.function(s),u=null;o!=null?(u=x.Value.Create(o),this.Assert(u!==null,"Could not create ink value from returned object of type "+typeof o)):u=new Hi.Void,this.state.PushEvaluationStack(u);}BindExternalFunctionGeneral(e,t,r=true){this.IfAsyncWeCant("bind an external function"),this.Assert(!this._externals.has(e),"Function '"+e+"' has already been bound."),this._externals.set(e,{function:t,lookAheadSafe:r});}TryCoerce(e){return e}BindExternalFunction(e,t,r=false){this.Assert(t!=null,"Can't bind a null function"),this.BindExternalFunctionGeneral(e,i=>{this.Assert(i.length>=t.length,"External function expected "+t.length+" arguments");let a=[];for(let s=0,o=i.length;s<o;s++)a[s]=this.TryCoerce(i[s]);return t.apply(null,a)},r);}UnbindExternalFunction(e){this.IfAsyncWeCant("unbind an external a function"),this.Assert(this._externals.has(e),"Function '"+e+"' has not been bound."),this._externals.delete(e);}ValidateExternalBindings(){let e=null,t=null,r=arguments[1]||new Set;if(arguments[0]instanceof Fe.Container&&(e=arguments[0]),arguments[0]instanceof Zd.InkObject&&(t=arguments[0]),e===null&&t===null)if(this.ValidateExternalBindings(this._mainContentContainer,r),this._hasValidatedExternals=true,r.size==0)this._hasValidatedExternals=true;else {let i="Error: Missing function binding for external";i+=r.size>1?"s":"",i+=": '",i+=Array.from(r).join("', '"),i+="' ",i+=this.allowExternalFunctionFallbacks?", and no fallback ink function found.":" (ink fallbacks disabled)",this.Error(i);}else if(e!=null){for(let i of e.content){let a=i;(a==null||!a.hasValidName)&&this.ValidateExternalBindings(i,r);}for(let[,i]of e.namedContent)this.ValidateExternalBindings((0, L.asOrNull)(i,Zd.InkObject),r);}else if(t!=null){let i=(0, L.asOrNull)(t,y0.Divert);if(i&&i.isExternal){let a=i.targetPathString;if(a===null)return (0, z.throwNullException)("name");this._externals.has(a)||this.allowExternalFunctionFallbacks&&this.mainContentContainer.namedContent.has(a)||r.add(a);}}}ObserveVariable(e,t){if(this.IfAsyncWeCant("observe a new variable"),this._variableObservers===null&&(this._variableObservers=new Map),!this.state.variablesState.GlobalVariableExistsWithName(e))throw new Error("Cannot observe variable '"+e+"' because it wasn't declared in the ink story.");this._variableObservers.has(e)?this._variableObservers.get(e).push(t):this._variableObservers.set(e,[t]);}ObserveVariables(e,t){for(let r=0,i=e.length;r<i;r++)this.ObserveVariable(e[r],t[r]);}RemoveVariableObserver(e,t){if(this.IfAsyncWeCant("remove a variable observer"),this._variableObservers!==null){if(t!=null){if(this._variableObservers.has(t))if(e!=null){let r=this._variableObservers.get(t);r!=null&&(r.splice(r.indexOf(e),1),r.length===0&&this._variableObservers.delete(t));}else this._variableObservers.delete(t);}else if(e!=null){let r=this._variableObservers.keys();for(let i of r){let a=this._variableObservers.get(i);a!=null&&(a.splice(a.indexOf(e),1),a.length===0&&this._variableObservers.delete(i));}}}}VariableStateDidChangeEvent(e,t){if(this._variableObservers===null)return;let r=this._variableObservers.get(e);if(typeof r<"u"){if(!(t instanceof x.Value))throw new Error("Tried to get the value of a variable that isn't a standard type");let i=(0, L.asOrThrows)(t,x.Value);for(let a of r)a(e,i.valueObject);}}get globalTags(){return this.TagsAtStartOfFlowContainerWithPathString("")}TagsForContentAtPath(e){return this.TagsAtStartOfFlowContainerWithPathString(e)}TagsAtStartOfFlowContainerWithPathString(e){let t=new ef.Path(e),r=this.ContentAtPath(t).container;if(r===null)return (0, z.throwNullException)("flowContainer");for(;;){let s=r.content[0];if(s instanceof Fe.Container)r=s;else break}let i=false,a=null;for(let s of r.content){let o=(0, L.asOrNull)(s,V.ControlCommand);if(o!=null)o.commandType==V.ControlCommand.CommandType.BeginTag?i=true:o.commandType==V.ControlCommand.CommandType.EndTag&&(i=false);else if(i){let u=(0, L.asOrNull)(s,x.StringValue);u!==null?(a===null&&(a=[]),u.value!==null&&a.push(u.value)):this.Error("Tag contained non-text content. Only plain text is allowed when using globalTags or TagsAtContentPath. If you want to evaluate dynamic content, you need to use story.Continue().");}else break}return a}BuildStringOfHierarchy(){let e=new kn.StringBuilder;return this.mainContentContainer.BuildStringOfHierarchy(e,0,this.state.currentPointer.Resolve()),e.toString()}BuildStringOfContainer(e){let t=new kn.StringBuilder;return e.BuildStringOfHierarchy(t,0,this.state.currentPointer.Resolve()),t.toString()}NextContent(){if(this.state.previousPointer=this.state.currentPointer.copy(),!this.state.divertedPointer.isNull&&(this.state.currentPointer=this.state.divertedPointer.copy(),this.state.divertedPointer=sn.Pointer.Null,this.VisitChangedContainersDueToDivert(),!this.state.currentPointer.isNull))return;if(!this.IncrementContentPointer()){let t=false;this.state.callStack.CanPop(ot.PushPopType.Function)?(this.state.PopCallStack(ot.PushPopType.Function),this.state.inExpressionEvaluation&&this.state.PushEvaluationStack(new Hi.Void),t=true):this.state.callStack.canPopThread?(this.state.callStack.PopThread(),t=true):this.state.TryExitFunctionEvaluationFromGame(),t&&!this.state.currentPointer.isNull&&this.NextContent();}}IncrementContentPointer(){let e=true,t=this.state.callStack.currentElement.currentPointer.copy();if(t.index++,t.container===null)return (0, z.throwNullException)("pointer.container");for(;t.index>=t.container.content.length;){e=false;let r=(0, L.asOrNull)(t.container.parent,Fe.Container);if(!(r instanceof Fe.Container))break;let i=r.content.indexOf(t.container);if(i==-1)break;if(t=new sn.Pointer(r,i),t.index++,e=true,t.container===null)return (0, z.throwNullException)("pointer.container")}return e||(t=sn.Pointer.Null),this.state.callStack.currentElement.currentPointer=t.copy(),e}TryFollowDefaultInvisibleChoice(){let e=this._state.currentChoices,t=e.filter(i=>i.isInvisibleDefault);if(t.length==0||e.length>t.length)return false;let r=t[0];return r.targetPath===null?(0, z.throwNullException)("choice.targetPath"):r.threadAtGeneration===null?(0, z.throwNullException)("choice.threadAtGeneration"):(this.state.callStack.currentThread=r.threadAtGeneration,this._stateSnapshotAtLastNewline!==null&&(this.state.callStack.currentThread=this.state.callStack.ForkThread()),this.ChoosePath(r.targetPath,false),true)}NextSequenceShuffleIndex(){let e=(0, L.asOrNull)(this.state.PopEvaluationStack(),x.IntValue);if(!(e instanceof x.IntValue))return this.Error("expected number of elements in sequence for shuffle index"),0;let t=this.state.currentPointer.container;if(t===null)return (0, z.throwNullException)("seqContainer");if(e.value===null)return (0, z.throwNullException)("numElementsIntVal.value");let r=e.value,a=(0, L.asOrThrows)(this.state.PopEvaluationStack(),x.IntValue).value;if(a===null)return (0, z.throwNullException)("seqCount");let s=a/r,o=a%r,u=t.path.toString(),l=0;for(let p=0,m=u.length;p<m;p++)l+=u.charCodeAt(p)||0;let c=l+s+this.state.storySeed,h=new tf.PRNG(Math.floor(c)),f=[];for(let p=0;p<r;++p)f.push(p);for(let p=0;p<=o;++p){let m=h.next()%f.length,g=f[m];if(f.splice(m,1),p==o)return g}throw new Error("Should never reach here")}Error(e,t=false){let r=new In.StoryException(e);throw r.useEndLineNumber=t,r}Warning(e){this.AddError(e,true);}AddError(e,t=false,r=false){let i=this.currentDebugMetadata,a=t?"WARNING":"ERROR";if(i!=null){let s=r?i.endLineNumber:i.startLineNumber;e="RUNTIME "+a+": '"+i.fileName+"' line "+s+": "+e;}else this.state.currentPointer.isNull?e="RUNTIME "+a+": "+e:e="RUNTIME "+a+": ("+this.state.currentPointer+"): "+e;this.state.AddError(e,t),t||this.state.ForceEnd();}Assert(e,t=null){if(e==false)throw t==null&&(t="Story assert"),new Error(t+" "+this.currentDebugMetadata)}get currentDebugMetadata(){let e,t=this.state.currentPointer;if(!t.isNull&&t.Resolve()!==null&&(e=t.Resolve().debugMetadata,e!==null))return e;for(let r=this.state.callStack.elements.length-1;r>=0;--r)if(t=this.state.callStack.elements[r].currentPointer,!t.isNull&&t.Resolve()!==null&&(e=t.Resolve().debugMetadata,e!==null))return e;for(let r=this.state.outputStream.length-1;r>=0;--r)if(e=this.state.outputStream[r].debugMetadata,e!==null)return e;return null}get mainContentContainer(){return this._temporaryEvaluationContainer?this._temporaryEvaluationContainer:this._mainContentContainer}};Rn.Story=Ar;Ar.inkVersionCurrent=21;(function(n){(function(t){t[t.NoChange=0]="NoChange",t[t.ExtendedBeyondNewline=1]="ExtendedBeyondNewline",t[t.NewlineRemoved=2]="NewlineRemoved";})(n.OutputStateChange||(n.OutputStateChange={}));})(Ar||(Rn.Story=Ar={}));});var _0=C(tu=>{Object.defineProperty(tu,"__esModule",{value:true});tu.Story=void 0;var p1=Us(),m1=Na(),Yo=de(),Zo=xe(),zi=ar(),Qo=Dt(),E0=yr(),g1=bd(),y1=uo(),C1=xd(),v1=Bi(),Pr=$t(),E1=en(),_1=Zt(),Ki=X(),S1=Ni(),b1=Ii(),w1=On(),eu=class n extends Qo.FlowBase{get flowLevel(){return E0.FlowLevel.Story}get hadError(){return this._hadError}get hadWarning(){return this._hadWarning}constructor(e,t=false){super(null,e,null,false,t),this._errorHandler=null,this._hadError=false,this._hadWarning=false,this._dontFlattenContainers=new Set,this._listDefs=new Map,this.constants=new Map,this.externals=new Map,this.countAllVisits=false,this.ExportRuntime=(r=null)=>{var i,a;this._errorHandler=r,this.constants=new Map;for(let c of this.FindAll(m1.ConstantDeclaration)()){let h=this.constants.get(c.constantName);if(h&&!h.Equals(c.expression)){let f=`CONST '${c.constantName}' has been redefined with a different value. Multiple definitions of the same CONST are valid so long as they contain the same value. Initial definition was on ${h.debugMetadata}.`;this.Error(f,c,false);}this.constants.set(c.constantName,c.expression);}this._listDefs=new Map;for(let c of this.FindAll(y1.ListDefinition)())!((i=c.identifier)===null||i===void 0)&&i.name&&this._listDefs.set((a=c.identifier)===null||a===void 0?void 0:a.name,c);this.externals=new Map,this.ResolveWeavePointNaming();let s=this.runtimeObject,o=new Yo.Container;o.AddContent(Zo.ControlCommand.EvalStart());let u=[];for(let[c,h]of this.variableDeclarations)if(h.isGlobalDeclaration){if(h.listDefinition)this._listDefs.set(c,h.listDefinition),o.AddContent(h.listDefinition.runtimeObject),u.push(h.listDefinition.runtimeListDefinition);else {if(!h.expression)throw new Error;h.expression.GenerateIntoContainer(o);}let f=new _1.VariableAssignment(c,true);f.isGlobal=true,o.AddContent(f);}o.AddContent(Zo.ControlCommand.EvalEnd()),o.AddContent(Zo.ControlCommand.End()),this.variableDeclarations.size>0&&(o.name="global decl",s.AddToNamedContentOnly(o)),s.AddContent(Zo.ControlCommand.Done());let l=new v1.Story(s,u);return this.runtimeObject=l,this.hadError||(this.FlattenContainersIn(s),this.ResolveReferences(this),this.hadError)?null:(l.ResetState(),l)},this.ResolveList=r=>{let i=this._listDefs.get(r);return i||null},this.ResolveListItem=(r,i,a=null)=>{let s=null;if(r)return (s=this._listDefs.get(r))?s.ItemNamed(i):null;{let o=null,u=null;for(let[,l]of this._listDefs.entries()){let c=l.ItemNamed(i);c&&(o?this.Error(`Ambiguous item name '${i}' found in multiple sets, including ${u.identifier} and ${l.identifier}`,a,false):(o=c,u=l));}return o}},this.FlattenContainersIn=r=>{let i=new Set;if(r.content)for(let a of r.content){let s=(0, Ki.asOrNull)(a,Yo.Container);s&&i.add(s);}if(r.namedContent)for(let[,a]of r.namedContent){let s=(0, Ki.asOrNull)(a,Yo.Container);s&&i.add(s);}for(let a of i)this.TryFlattenContainer(a),this.FlattenContainersIn(a);},this.TryFlattenContainer=r=>{if(r.namedContent&&r.namedContent.size>0||r.hasValidName||this._dontFlattenContainers.has(r))return;let i=(0, Ki.asOrNull)(r.parent,Yo.Container);if(i){let a=i.content.indexOf(r);i.content.splice(a,1);let s=r.ownDebugMetadata;if(r.content)for(let o of r.content)o.parent=null,s!==null&&o.ownDebugMetadata===null&&(o.debugMetadata=s),i.InsertContent(o,a),a+=1;}},this.Error=(r,i,a)=>{let s=a?zi.ErrorType.Warning:zi.ErrorType.Error,o="";if(i instanceof p1.AuthorWarning?(o+="TODO: ",s=zi.ErrorType.Author):a?o+="WARNING: ":o+="ERROR: ",i&&i.debugMetadata!==null&&i.debugMetadata.startLineNumber>=1&&(i.debugMetadata.fileName!=null&&(o+=`'${i.debugMetadata.fileName}' `),o+=`line ${i.debugMetadata.startLineNumber}: `),o+=r,r=o,this._errorHandler!==null)this._errorHandler(r,s);else throw new Error(r);this._hadError=s===zi.ErrorType.Error,this._hadWarning=s===zi.ErrorType.Warning;},this.ResetError=()=>{this._hadError=false,this._hadWarning=false;},this.IsExternal=r=>this.externals.has(r),this.AddExternal=r=>{this.externals.has(r.name)?this.Error(`Duplicate EXTERNAL definition of '${r.name}'`,r,false):r.name&&this.externals.set(r.name,r);},this.DontFlattenContainer=r=>{this._dontFlattenContainers.add(r);},this.NameConflictError=(r,i,a,s)=>{r.Error(`${s} '${i}': name has already been used for a ${a.typeName.toLowerCase()} on ${a.debugMetadata}`);},this.CheckForNamingCollisions=(r,i,a,s="")=>{var o;let u=s||r.typeName;if(n.IsReservedKeyword(i?.name)){r.Error(`'${i}' cannot be used for the name of a ${u.toLowerCase()} because it's a reserved keyword`);return}else if(b1.FunctionCall.IsBuiltIn(i?.name||"")){r.Error(`'${i}' cannot be used for the name of a ${u.toLowerCase()} because it's a built in function`);return}let l=this.ContentWithNameAtLevel(i?.name||"",E0.FlowLevel.Knot),c=(0, Ki.asOrNull)(l,Qo.FlowBase);if(c&&(c!==r||a===Pr.SymbolType.Arg)){this.NameConflictError(r,i?.name||"",c,u);return}if(a<Pr.SymbolType.List)return;for(let[m,g]of this._listDefs)if(i?.name===m&&r!==g&&g.variableAssignment!==r&&this.NameConflictError(r,i?.name,g,u),!(r instanceof C1.ListElementDefinition))for(let v of g.itemDefinitions)i?.name===v.name&&this.NameConflictError(r,i?.name||"",v,u);if(a<=Pr.SymbolType.Var)return;let h=i?.name&&this.variableDeclarations.get(i?.name)||null;if(h&&h!==r&&h.isGlobalDeclaration&&h.listDefinition==null&&this.NameConflictError(r,i?.name||"",h,u),a<Pr.SymbolType.SubFlowAndWeave)return;let p=new w1.Path(i).ResolveFromContext(r);if(p&&p!==r){this.NameConflictError(r,i?.name||"",p,u);return}if(!(a<Pr.SymbolType.Arg)&&a!==Pr.SymbolType.Arg){let m=(0, Ki.asOrNull)(r,Qo.FlowBase);if(m||(m=(0, S1.ClosestFlowBase)(r)),m&&m.hasParameters&&m.args){for(let g of m.args)if(((o=g.identifier)===null||o===void 0?void 0:o.name)===i?.name){r.Error(`${u} '${i}': name has already been used for a argument to ${m.identifier} on ${m.debugMetadata}`);return}}}};}get typeName(){return "Story"}PreProcessTopLevelObjects(e){super.PreProcessTopLevelObjects(e);let t=[];for(let r of e)if(r instanceof g1.IncludedFile){let i=r,a=e.indexOf(r);if(e.splice(a,1),i.includedStory){let s=[],o=i.includedStory;if(o.content!=null){for(let u of o.content)u instanceof Qo.FlowBase?t.push(u):s.push(u);s.push(new E1.Text(`
36
+ `)),e.splice(a,0,...s);}}continue}e.splice(0,0,...t);}};tu.Story=eu;eu.IsReservedKeyword=n=>{switch(n){case "true":case "false":case "not":case "return":case "else":case "VAR":case "CONST":case "temp":case "LIST":case "function":return true}return false};});var b0=C(nu=>{Object.defineProperty(nu,"__esModule",{value:true});nu.StringExpression=void 0;var S0=xe(),D1=nt(),A1=en(),P1=X(),nf=class n extends D1.Expression{get isSingleString(){return !(this.content.length!==1||!(this.content[0]instanceof A1.Text))}constructor(e){super(),this.GenerateIntoContainer=t=>{t.AddContent(S0.ControlCommand.BeginString());for(let r of this.content)t.AddContent(r.runtimeObject);t.AddContent(S0.ControlCommand.EndString());},this.toString=()=>{let t="";for(let r of this.content)t+=r;return t},this.AddContent(e);}get typeName(){return "String"}Equals(e){let t=(0, P1.asOrNull)(e,n);if(t===null||!this.isSingleString||!t.isSingleString)return false;let r=this.toString(),i=t.toString();return r===i}};nu.StringExpression=nf;});var D0=C(Tr=>{Object.defineProperty(Tr,"__esModule",{value:true});Tr.LegacyTag=Tr.Tag=void 0;var T1=oe(),w0=xe(),rf=class extends T1.ParsedObject{constructor(e,t=false){super(),this.GenerateRuntimeObject=()=>this.isStart?w0.ControlCommand.BeginTag():w0.ControlCommand.EndTag(),this.toString=()=>this.isStart?"#StartTag":"#EndTag",this.isStart=e,this.inChoice=t;}get typeName(){return "Tag"}};Tr.Tag=rf;var x1=Cd(),sf=class extends x1.Wrap{constructor(e){super(e);}get typeName(){return "Tag"}};Tr.LegacyTag=sf;});var A0=C(ru=>{Object.defineProperty(ru,"__esModule",{value:true});ru.DefaultFileHandler=void 0;var af=class{constructor(e){this.rootPath=e,this.ResolveInkFilename=()=>{throw Error("Can't resolve filename because no FileHandler was provided when instantiating the parser / compiler.")},this.LoadInkFileContents=()=>{throw Error("Can't load ink content because no FileHandler was provided when instantiating the parser / compiler.")};}};ru.DefaultFileHandler=af;});var cf=C(ou=>{Object.defineProperty(ou,"__esModule",{value:true});ou.InkParser=void 0;var O1=Kg(),F1=Us(),N1=fh(),pt=uy(),ve=Pi(),I1=gr(),k1=yy(),R1=xa(),Xi=Uh(),Ke=Ma(),$1=Na(),iu=qy(),V1=Ly(),$n=Er(),of=vr(),j1=nt(),q1=By(),P0=Wy(),su=Ii(),L1=Fi(),B1=My(),W1=bo(),au=Jy(),T0=bd(),M1=Hy(),G1=Ad(),x0=zy(),J1=uo(),H1=xd(),U1=Mh(),O0=oe(),z1=On(),F0=kh(),N0=nd(),Ce=Qh(),Ve=Od(),K1=Nd(),I0=_0(),Yi=b0(),Vt=wh(),xr=D0(),jt=en(),k0=id(),uf=cd(),lf=Sr(),X1=hh(),an=X(),Zi=La(),Or=la(),R0=ar(),Y1=A0(),ee=class n extends Vt.StringParser{get fileHandler(){if(!this._fileHandler)throw new Error("No FileHandler defined");return this._fileHandler}set fileHandler(e){this._fileHandler=e;}constructor(e,t=null,r=null,i=null,a=null){if(super(e),this.ParseStory=()=>{let s=this.StatementsAtLevel(Ve.StatementLevel.Top);return new I0.Story(s,this._rootParser!==this)},this.SeparatedList=(s,o)=>{let u=this.Parse(s);if(u===null)return null;let l=[];l.push(u);do{let c=this.BeginRule();if(o()===null){this.FailRule(c);break}let f=this.Parse(s);if(f===null){this.FailRule(c);break}this.SucceedRule(c),l.push(f);}while(true);return l},this.CreateDebugMetadata=(s,o)=>{let u=new V1.DebugMetadata;return u.startLineNumber=(s?.lineIndex||0)+1,u.endLineNumber=o.lineIndex+1,u.startCharacterNumber=(s?.characterInLineIndex||0)+1,u.endCharacterNumber=o.characterInLineIndex+1,u.fileName=this._filename,u},this.RuleDidSucceed=(s,o,u)=>{let l=(0, an.asOrNull)(s,O0.ParsedObject);l&&(l.debugMetadata=this.CreateDebugMetadata(o,u));let c=Array.isArray(s)?s:null;if(c!==null)for(let f of c)(0, an.asOrNull)(f,O0.ParsedObject)&&(f.hasOwnDebugMetadata||(f.debugMetadata=this.CreateDebugMetadata(o,u)));let h=(0, an.asOrNull)(s,Zi.Identifier);h!=null&&(h.debugMetadata=this.CreateDebugMetadata(o,u));},this.OnStringParserError=(s,o,u=0,l=false)=>{let h=l?"WARNING:":"ERROR:";if(this._filename!==null&&(h+=` '${this._filename}'`),h+=` line ${u+1}: ${s}`,this._externalErrorHandler!==null)this._externalErrorHandler(h,l?R0.ErrorType.Warning:R0.ErrorType.Error);else throw new Error(h)},this.AuthorWarning=()=>{this.Whitespace();let s=this.Parse(this.IdentifierWithMetadata);if(s===null||s.name!=="TODO")return null;this.Whitespace(),this.ParseString(":"),this.Whitespace();let o=this.ParseUntilCharactersFromString(`
37
37
  \r`);return o?new F1.AuthorWarning(o):null},this.ExtendIdentifierCharacterRanges=s=>{let o=n.ListAllCharacterRanges();for(let u of o)s.AddCharacters(u.ToCharacterSet());},this._parsingChoice=false,this.Choice=()=>{let s=true,o=this.Interleave(this.OptionalExclude(this.Whitespace),this.String("*"));if(!o){if(o=this.Interleave(this.OptionalExclude(this.Whitespace),this.String("+")),o===null)return null;s=false;}let u=this.Parse(this.BracketedName);this.Whitespace(),u!=null&&this.Newline();let l=this.Parse(this.ChoiceCondition);if(this.Whitespace(),this._parsingChoice)throw new Error("Already parsing a choice - shouldn't have nested choices");this._parsingChoice=true;let c=null,h=this.Parse(this.MixedTextAndLogic);h&&(c=new Ke.ContentList(h));let f=null,p=null,m=this.ParseString("[")!==null;if(m){this.EndTagIfNecessary(c);let b=this.Parse(this.MixedTextAndLogic);b!==null&&(f=new Ke.ContentList(b)),this.Expect(this.String("]"),"closing ']' for weave-style option"),this.EndTagIfNecessary(f);let d=this.Parse(this.MixedTextAndLogic);d!==null&&(p=new Ke.ContentList(d));}this.Whitespace(),this.EndTagIfNecessary(p??c);let g=this.Parse(this.MultiDivert);this._parsingChoice=false,this.Whitespace();let v=!c&&!p&&!f;if(v&&g===null&&this.Warning("Choice is completely empty. Interpretting as a default fallback choice. Add a divert arrow to remove this warning: * ->"),!c&&m&&!f&&this.Warning("Blank choice - if you intended a default fallback choice, use the `* ->` syntax"),p||(p=new Ke.ContentList),this.EndTagIfNecessary(p),g!==null)for(let b of g){let d=(0, an.asOrNull)(b,$n.Divert);d&&d.isEmpty||p.AddContent(b);}p.AddContent(new jt.Text(`
38
- `));let E=new I1.Choice(c,f,p);return u&&(E.identifier=u),E.indentationDepth=o.length,E.hasWeaveStyleInlineBrackets=m,E.condition=l,E.onceOnly=s,E.isInvisibleDefault=v,E},this.ChoiceCondition=()=>{let s=this.Interleave(this.ChoiceSingleCondition,this.ChoiceConditionsSpace);return s===null?null:s.length===1?s[0]:new U1.MultipleConditionExpression(s)},this.ChoiceConditionsSpace=()=>(this.Newline(),this.Whitespace(),Vt.ParseSuccess),this.ChoiceSingleCondition=()=>{if(this.ParseString("{")===null)return null;let s=this.Expect(this.Expression,"choice condition inside { }");return this.DisallowIncrement(s),this.Expect(this.String("}"),"closing '}' for choice condition"),s},this.Gather=()=>{let s=this.Parse(this.GatherDashes);if(s===null)return null;let o=Number(s),u=this.Parse(this.BracketedName),l=new L1.Gather(u,o);return this.Newline(),l},this.GatherDashes=()=>{this.Whitespace();let s=0;for(;this.ParseDashNotArrow()!==null;)s+=1,this.Whitespace();return s===0?null:s},this.ParseDashNotArrow=()=>{let s=this.BeginRule();return this.ParseString("->")===null&&this.ParseSingleCharacter()==="-"?this.SucceedRule(s):this.FailRule(s)},this.BracketedName=()=>{if(this.ParseString("(")===null)return null;this.Whitespace();let s=this.Parse(this.IdentifierWithMetadata);return s===null?null:(this.Whitespace(),this.Expect(this.String(")"),"closing ')' for bracketed name"),s)},this.InnerConditionalContent=s=>{if(s===void 0){let h=this.Parse(this.ConditionExpression),f=this.Parse(()=>this.InnerConditionalContent(h));return f===null?null:f}let o,u=s!==null,l=this.Parse(this.Newline)===null;if(l&&!u)return null;if(l)o=this.InlineConditionalBranches();else {if(o=this.MultilineConditionalBranches(),o===null){if(s){let h=this.StatementsAtLevel(Ve.StatementLevel.InnerBlock);if(h!==null){o=[new Xi.ConditionalSingleBranch(h)];let p=this.Parse(this.SingleMultilineCondition);p&&(p.isElse||(this.ErrorWithParsedObject("Expected an '- else:' clause here rather than an extra condition",p),p.isElse=true),o.push(p));}}if(o===null)return null}else if(o.length===1&&o[0].isElse&&s){let h=new Xi.ConditionalSingleBranch(null);h.isTrueBranch=true,o.unshift(h);}if(s){let h=false;for(let f=0;f<o.length;++f){let p=o[f],m=f===o.length-1;p.ownExpression?(p.matchingEquality=true,h=true):h&&m?(p.matchingEquality=true,p.isElse=true):!m&&o.length>2?this.ErrorWithParsedObject("Only final branch can be an 'else'. Did you miss a ':'?",p):f===0?p.isTrueBranch=true:p.isElse=true;}}else {for(let h=0;h<o.length;++h){let f=o[h],p=h===o.length-1;if(f.ownExpression===null)if(p)f.isElse=true;else if(f.isElse){let m=o[o.length-1];m.isElse?this.ErrorWithParsedObject("Multiple 'else' cases. Can have a maximum of one, at the end.",m):this.ErrorWithParsedObject("'else' case in conditional should always be the final one",f);}else this.ErrorWithParsedObject("Branch doesn't have condition. Are you missing a ':'? ",f);}o.length===1&&o[0].ownExpression===null&&this.ErrorWithParsedObject("Condition block with no conditions",o[0]);}}if(o===null)return null;for(let h of o)h.isInline=l;return new R1.Conditional(s,o)},this.InlineConditionalBranches=()=>{let s=this.Interleave(this.MixedTextAndLogic,this.Exclude(this.String("|")),null,false);if(s===null||s.length===0)return null;let o=[];if(s.length>2)this.Error("Expected one or two alternatives separated by '|' in inline conditional");else {let u=new Xi.ConditionalSingleBranch(s[0]);if(u.isTrueBranch=true,o.push(u),s.length>1){let l=new Xi.ConditionalSingleBranch(s[1]);l.isElse=true,o.push(l);}}return o},this.MultilineConditionalBranches=()=>{this.MultilineWhitespace();let s=this.OneOrMore(this.SingleMultilineCondition);return s===null?null:(this.MultilineWhitespace(),s)},this.SingleMultilineCondition=()=>{if(this.Whitespace(),this.ParseString("->")!==null||this.ParseString("-")===null)return null;this.Whitespace();let s=null,o=this.Parse(this.ElseExpression)!==null;o||(s=this.Parse(this.ConditionExpression));let u=this.StatementsAtLevel(Ve.StatementLevel.InnerBlock);s===null&&u===null&&(this.Error("expected content for the conditional branch following '-'"),u=[new jt.Text("")]),this.MultilineWhitespace();let l=new Xi.ConditionalSingleBranch(u);return l.ownExpression=s,l.isElse=o,l},this.ConditionExpression=()=>{let s=this.Parse(this.Expression);return s===null||(this.DisallowIncrement(s),this.Whitespace(),this.ParseString(":")===null)?null:s},this.ElseExpression=()=>this.ParseString("else")===null||(this.Whitespace(),this.ParseString(":")===null)?null:Vt.ParseSuccess,this._nonTextPauseCharacters=null,this._nonTextEndCharacters=null,this._notTextEndCharactersChoice=null,this._notTextEndCharactersString=null,this.TrimEndWhitespace=(s,o)=>{if(s.length>0){let u=s.length-1,l=s[u];if(l instanceof jt.Text){let c=l;c.text=c.text.replace(new RegExp(/[ \t]+$/g),""),o?c.text+=" ":c.text.length===0&&(s.splice(u,1),this.TrimEndWhitespace(s,false));}}},this.LineOfMixedTextAndLogic=()=>{this.Parse(this.Whitespace);let s=this.Parse(this.MixedTextAndLogic);if(!s||!s.length)return null;let o=s[0];return o&&o.text&&o.text.startsWith("return")&&this.Warning("Do you need a '~' before 'return'? If not, perhaps use a glue: <> (since it's lowercase) or rewrite somehow?"),s.length===0?null:(s[s.length-1]instanceof $n.Divert||this.TrimEndWhitespace(s,false),this.EndTagIfNecessary(s),s.length>0&&s[0]instanceof Or.Tag&&s[0].isStart||s.push(new jt.Text(`
38
+ `));let E=new I1.Choice(c,f,p);return u&&(E.identifier=u),E.indentationDepth=o.length,E.hasWeaveStyleInlineBrackets=m,E.condition=l,E.onceOnly=s,E.isInvisibleDefault=v,E},this.ChoiceCondition=()=>{let s=this.Interleave(this.ChoiceSingleCondition,this.ChoiceConditionsSpace);return s===null?null:s.length===1?s[0]:new U1.MultipleConditionExpression(s)},this.ChoiceConditionsSpace=()=>(this.Newline(),this.Whitespace(),Vt.ParseSuccess),this.ChoiceSingleCondition=()=>{if(this.ParseString("{")===null)return null;let s=this.Expect(this.Expression,"choice condition inside { }");return this.DisallowIncrement(s),this.Expect(this.String("}"),"closing '}' for choice condition"),s},this.Gather=()=>{let s=this.Parse(this.GatherDashes);if(s===null)return null;let o=Number(s),u=this.Parse(this.BracketedName),l=new L1.Gather(u,o);return this.Newline(),l},this.GatherDashes=()=>{this.Whitespace();let s=0;for(;this.ParseDashNotArrow()!==null;)s+=1,this.Whitespace();return s===0?null:s},this.ParseDashNotArrow=()=>{let s=this.BeginRule();return this.ParseString("->")===null&&this.ParseSingleCharacter()==="-"?this.SucceedRule(s):this.FailRule(s)},this.BracketedName=()=>{if(this.ParseString("(")===null)return null;this.Whitespace();let s=this.Parse(this.IdentifierWithMetadata);return s===null?null:(this.Whitespace(),this.Expect(this.String(")"),"closing ')' for bracketed name"),s)},this.InnerConditionalContent=s=>{if(s===void 0){let h=this.Parse(this.ConditionExpression),f=this.Parse(()=>this.InnerConditionalContent(h));return f===null?null:f}let o,u=s!==null,l=this.Parse(this.Newline)===null;if(l&&!u)return null;if(l)o=this.InlineConditionalBranches();else {if(o=this.MultilineConditionalBranches(),o===null){if(s){let h=this.StatementsAtLevel(Ve.StatementLevel.InnerBlock);if(h!==null){o=[new Xi.ConditionalSingleBranch(h)];let p=this.Parse(this.SingleMultilineCondition);p&&(p.isElse||(this.ErrorWithParsedObject("Expected an '- else:' clause here rather than an extra condition",p),p.isElse=true),o.push(p));}}if(o===null)return null}else if(o.length===1&&o[0].isElse&&s){let h=new Xi.ConditionalSingleBranch(null);h.isTrueBranch=true,o.unshift(h);}if(s){let h=false;for(let f=0;f<o.length;++f){let p=o[f],m=f===o.length-1;p.ownExpression?(p.matchingEquality=true,h=true):h&&m?(p.matchingEquality=true,p.isElse=true):!m&&o.length>2?this.ErrorWithParsedObject("Only final branch can be an 'else'. Did you miss a ':'?",p):f===0?p.isTrueBranch=true:p.isElse=true;}}else {for(let h=0;h<o.length;++h){let f=o[h],p=h===o.length-1;if(f.ownExpression===null)if(p)f.isElse=true;else if(f.isElse){let m=o[o.length-1];m.isElse?this.ErrorWithParsedObject("Multiple 'else' cases. Can have a maximum of one, at the end.",m):this.ErrorWithParsedObject("'else' case in conditional should always be the final one",f);}else this.ErrorWithParsedObject("Branch doesn't have condition. Are you missing a ':'? ",f);}o.length===1&&o[0].ownExpression===null&&this.ErrorWithParsedObject("Condition block with no conditions",o[0]);}}if(o===null)return null;for(let h of o)h.isInline=l;return new R1.Conditional(s,o)},this.InlineConditionalBranches=()=>{let s=this.Interleave(this.MixedTextAndLogic,this.Exclude(this.String("|")),null,false);if(s===null||s.length===0)return null;let o=[];if(s.length>2)this.Error("Expected one or two alternatives separated by '|' in inline conditional");else {let u=new Xi.ConditionalSingleBranch(s[0]);if(u.isTrueBranch=true,o.push(u),s.length>1){let l=new Xi.ConditionalSingleBranch(s[1]);l.isElse=true,o.push(l);}}return o},this.MultilineConditionalBranches=()=>{this.MultilineWhitespace();let s=this.OneOrMore(this.SingleMultilineCondition);return s===null?null:(this.MultilineWhitespace(),s)},this.SingleMultilineCondition=()=>{if(this.Whitespace(),this.ParseString("->")!==null||this.ParseString("-")===null)return null;this.Whitespace();let s=null,o=this.Parse(this.ElseExpression)!==null;o||(s=this.Parse(this.ConditionExpression));let u=this.StatementsAtLevel(Ve.StatementLevel.InnerBlock);s===null&&u===null&&(this.Error("expected content for the conditional branch following '-'"),u=[new jt.Text("")]),this.MultilineWhitespace();let l=new Xi.ConditionalSingleBranch(u);return l.ownExpression=s,l.isElse=o,l},this.ConditionExpression=()=>{let s=this.Parse(this.Expression);return s===null||(this.DisallowIncrement(s),this.Whitespace(),this.ParseString(":")===null)?null:s},this.ElseExpression=()=>this.ParseString("else")===null||(this.Whitespace(),this.ParseString(":")===null)?null:Vt.ParseSuccess,this._nonTextPauseCharacters=null,this._nonTextEndCharacters=null,this._notTextEndCharactersChoice=null,this._notTextEndCharactersString=null,this.TrimEndWhitespace=(s,o)=>{if(s.length>0){let u=s.length-1,l=s[u];if(l instanceof jt.Text){let c=l;c.text=c.text.replace(new RegExp(/[ \t]+$/g),""),o?c.text+=" ":c.text.length===0&&(s.splice(u,1),this.TrimEndWhitespace(s,false));}}},this.LineOfMixedTextAndLogic=()=>{this.Parse(this.Whitespace);let s=this.Parse(this.MixedTextAndLogic);if(!s||!s.length)return null;let o=s[0];return o&&o.text&&o.text.startsWith("return")&&this.Warning("Do you need a '~' before 'return'? If not, perhaps use a glue: <> (since it's lowercase) or rewrite somehow?"),s.length===0?null:(s[s.length-1]instanceof $n.Divert||this.TrimEndWhitespace(s,false),this.EndTagIfNecessary(s),s.length>0&&s[0]instanceof xr.Tag&&s[0].isStart||s.push(new jt.Text(`
39
39
  `)),this.Expect(this.EndOfLine,"end of line",this.SkipToNextLine),s)},this.MixedTextAndLogic=()=>{this.ParseObject(this.Spaced(this.String("~")))!==null&&this.Error("You shouldn't use a '~' here - tildas are for logic that's on its own line. To do inline logic, use { curly braces } instead");let o=this.Interleave(this.Optional(this.ContentText),this.Optional(this.InlineLogicOrGlueOrStartTag));if(!this._parsingChoice){let u=this.Parse(this.MultiDivert);u!==null&&(o===null&&(o=[]),this.EndTagIfNecessary(o),this.TrimEndWhitespace(o,true),o.push(...u));}return o||null},this.ContentText=()=>this.ContentTextAllowingEscapeChar(),this.ContentTextAllowingEscapeChar=()=>{let s=null;do{let o=this.Parse(this.ContentTextNoEscape),u=this.ParseString("\\")!==null;if(u||o!==null){if(s===null&&(s=""),o!==null&&(s+=String(o)),u){let l=this.ParseSingleCharacter();s+=l;}}else break}while(true);return s!==null?new jt.Text(s):null},this.ContentTextNoEscape=()=>{this._nonTextPauseCharacters===null&&(this._nonTextPauseCharacters=new ve.CharacterSet("-<")),this._nonTextEndCharacters===null&&(this._nonTextEndCharacters=new ve.CharacterSet(`{}|
40
- \r\\#`),this._notTextEndCharactersChoice=new ve.CharacterSet(this._nonTextEndCharacters),this._notTextEndCharactersChoice.AddCharacters("[]"),this._notTextEndCharactersString=new ve.CharacterSet(this._nonTextEndCharacters),this._notTextEndCharactersString.AddCharacters('"'));let s=()=>this.OneOf([this.ParseDivertArrow,this.ParseThreadArrow,this.EndOfLine,this.Glue]),o=null;this.parsingStringExpression?o=this._notTextEndCharactersString:this._parsingChoice?o=this._notTextEndCharactersChoice:o=this._nonTextEndCharacters;let u=this.ParseUntil(s,this._nonTextPauseCharacters,o);return u!==null?u:null},this.MultiDivert=()=>{this.Whitespace();let s=[],o=this.Parse(this.StartThread);if(o)return s=[o],s;let u=this.Interleave(this.ParseDivertArrowOrTunnelOnwards,this.DivertIdentifierWithArguments);if(!u)return null;s=[],this.EndTagIfNecessary(s);for(let l=0;l<u.length;++l)if(l%2===0){if(u[l]==="->->"){l===0||l===u.length-1||l===u.length-2||this.Error("Tunnel onwards '->->' must only come at the begining or the start of a divert");let f=new k0.TunnelOnwards;if(l<u.length-1){let p=(0, an.asOrNull)(u[l+1],$n.Divert);f.divertAfter=p;}s.push(f);break}}else {let h=u[l];l<u.length-1&&(h.isTunnel=true),s.push(h);}if(s.length===0&&u.length===1){let l=new $n.Divert(null);l.isEmpty=true,s.push(l),this._parsingChoice||this.Error("Empty diverts (->) are only valid on choices");}return s},this.StartThread=()=>{if(this.Whitespace(),this.ParseThreadArrow()===null)return null;this.Whitespace();let s=this.Expect(this.DivertIdentifierWithArguments,"target for new thread",()=>new $n.Divert(null));return s.isThread=true,s},this.DivertIdentifierWithArguments=()=>{this.Whitespace();let s=this.Parse(this.DotSeparatedDivertPathComponents);if(!s)return null;this.Whitespace();let o=this.Parse(this.ExpressionFunctionCallArguments);this.Whitespace();let u=new z1.Path(s);return new $n.Divert(u,o)},this.SingleDivert=()=>{let s=this.Parse(this.MultiDivert);if(!s||s.length!==1||s[0]instanceof k0.TunnelOnwards)return null;let u=s[0];return u.isTunnel?null:u},this.DotSeparatedDivertPathComponents=()=>this.Interleave(this.Spaced(this.IdentifierWithMetadata),this.Exclude(this.String("."))),this.ParseDivertArrowOrTunnelOnwards=()=>{let s=0;for(;this.ParseString("->")!==null;)s+=1;return s===0?null:s===1?"->":(s===2||this.Error("Unexpected number of arrows in divert. Should only have '->' or '->->'"),"->->")},this.ParseDivertArrow=()=>this.ParseString("->"),this.ParseThreadArrow=()=>this.ParseString("<-"),this._binaryOperators=[],this._maxBinaryOpLength=0,this.TempDeclarationOrAssignment=()=>{this.Whitespace();let s=this.ParseTempKeyword();this.Whitespace();let o=null;if(s?o=this.Expect(this.IdentifierWithMetadata,"variable name"):o=this.Parse(this.IdentifierWithMetadata),o===null)return null;this.Whitespace();let u=this.ParseString("+")!==null,l=this.ParseString("-")!==null;if(u&&l&&this.Error("Unexpected sequence '+-'"),this.ParseString("=")===null)return s&&this.Error("Expected '='"),null;let c=this.Expect(this.Expression,"value expression to be assigned");return u||l?new au.IncDecExpression(o,c,u):new uf.VariableAssignment({variableIdentifier:o,assignedExpression:c,isTemporaryNewDeclaration:s})},this.DisallowIncrement=s=>{s instanceof au.IncDecExpression&&this.Error("Can't use increment/decrement here. It can only be used on a ~ line");},this.ParseTempKeyword=()=>{let s=this.BeginRule();return this.Parse(this.Identifier)==="temp"?(this.SucceedRule(s),true):(this.FailRule(s),false)},this.ReturnStatement=()=>{if(this.Whitespace(),this.Parse(this.Identifier)!=="return")return null;this.Whitespace();let o=this.Parse(this.Expression);return new F0.ReturnType(o)},this.Expression=(s=0)=>{this.Whitespace();let o=this.ExpressionUnary();if(o===null)return null;for(this.Whitespace();;){let u=this.BeginRule(),l=this.ParseInfixOperator();if(l!==null&&l.precedence>s){let c=`right side of '${l.type}' expression`,h=this.Expect(()=>this.ExpressionInfixRight(o,l),c);if(h===null)return this.FailRule(u),null;o=this.SucceedRule(u,h);continue}this.FailRule(u);break}return this.Whitespace(),o},this.ExpressionUnary=()=>{let s=this.Parse(this.ExpressionDivertTarget);if(s!==null)return s;let o=this.OneOf([this.String("-"),this.String("!")]);o===null&&(o=this.Parse(this.ExpressionNot)),this.Whitespace();let u=this.OneOf([this.ExpressionList,this.ExpressionParen,this.ExpressionFunctionCall,this.ExpressionVariableName,this.ExpressionLiteral]);if(u===null&&o!==null&&(u=this.ExpressionUnary()),u===null)return null;o!==null&&(u=X1.UnaryExpression.WithInner(u,o)),this.Whitespace();let l=this.OneOf([this.String("++"),this.String("--")]);if(l!==null){let c=l==="++";if(!(u instanceof lf.VariableReference))this.Error(`can only increment and decrement variables, but saw '${u}'.`);else {let h=u;u=new au.IncDecExpression(h.identifier,c);}}return u},this.ExpressionNot=()=>{let s=this.Identifier();return s==="not"?s:null},this.ExpressionLiteral=()=>this.OneOf([this.ExpressionFloat,this.ExpressionInt,this.ExpressionBool,this.ExpressionString]),this.ExpressionDivertTarget=()=>{this.Whitespace();let s=this.Parse(this.SingleDivert);return !s||s&&s.isThread?null:(this.Whitespace(),new of.DivertTarget(s))},this.ExpressionInt=()=>{let s=this.ParseInt();return s===null?null:new xr.NumberExpression(s,"int")},this.ExpressionFloat=()=>{let s=this.ParseFloat();return s===null?null:new xr.NumberExpression(s,"float")},this.ExpressionString=()=>{if(this.ParseString('"')===null)return null;this.parsingStringExpression=true;let o=this.Parse(this.MixedTextAndLogic);return this.Expect(this.String('"'),"close quote for string expression"),this.parsingStringExpression=false,o===null?o=[new jt.Text("")]:o.find(u=>u instanceof $n.Divert)&&this.Error("String expressions cannot contain diverts (->)"),new Yi.StringExpression(o)},this.ExpressionBool=()=>{let s=this.Parse(this.Identifier);return s==="true"?new xr.NumberExpression(true,"bool"):s==="false"?new xr.NumberExpression(false,"bool"):null},this.ExpressionFunctionCall=()=>{let s=this.Parse(this.IdentifierWithMetadata);if(s===null)return null;this.Whitespace();let o=this.Parse(this.ExpressionFunctionCallArguments);return o===null?null:new su.FunctionCall(s,o)},this.ExpressionFunctionCallArguments=()=>{if(this.ParseString("(")===null)return null;let s=this.Exclude(this.String(",")),o=this.Interleave(this.Expression,s);return o===null&&(o=[]),this.Whitespace(),this.Expect(this.String(")"),"closing ')' for function call"),o},this.ExpressionVariableName=()=>{let s=this.Interleave(this.IdentifierWithMetadata,this.Exclude(this.Spaced(this.String("."))));return s===null||I0.Story.IsReservedKeyword(s[0].name)?null:new lf.VariableReference(s)},this.ExpressionParen=()=>{if(this.ParseString("(")===null)return null;let s=this.Parse(this.Expression);return s===null?null:(this.Whitespace(),this.Expect(this.String(")"),"closing parenthesis ')' for expression"),s)},this.ExpressionInfixRight=(s,o)=>{if(!s)return null;this.Whitespace();let u=this.Parse(()=>this.Expression(o.precedence));return u?new N1.BinaryExpression(s,u,o.type):null},this.ParseInfixOperator=()=>{for(let s of this._binaryOperators){let o=this.BeginRule();if(this.ParseString(s.type)!==null){if(s.requireWhitespace&&this.Whitespace()===null){this.FailRule(o);continue}return this.SucceedRule(o,s)}this.FailRule(o);}return null},this.ExpressionList=()=>{if(this.Whitespace(),this.ParseString("(")===null)return null;this.Whitespace();let s=this.SeparatedList(this.ListMember,this.Spaced(this.String(",")));return this.Whitespace(),this.ParseString(")")===null?null:new O0.List(s)},this.ListMember=()=>{this.Whitespace();let s=this.Parse(this.IdentifierWithMetadata);if(s===null)return null;if(this.ParseString(".")!==null){let u=this.Expect(this.IdentifierWithMetadata,`element name within the set ${s}`);s.name+=`.${u?.name}`;}return this.Whitespace(),s},this.RegisterExpressionOperators=()=>{this.RegisterBinaryOperator("&&",1),this.RegisterBinaryOperator("||",1),this.RegisterBinaryOperator("and",1,true),this.RegisterBinaryOperator("or",1,true),this.RegisterBinaryOperator("==",2),this.RegisterBinaryOperator(">=",2),this.RegisterBinaryOperator("<=",2),this.RegisterBinaryOperator("<",2),this.RegisterBinaryOperator(">",2),this.RegisterBinaryOperator("!=",2),this.RegisterBinaryOperator("?",3),this.RegisterBinaryOperator("has",3,true),this.RegisterBinaryOperator("!?",3),this.RegisterBinaryOperator("hasnt",3,true),this.RegisterBinaryOperator("^",3),this.RegisterBinaryOperator("+",4),this.RegisterBinaryOperator("-",5),this.RegisterBinaryOperator("*",6),this.RegisterBinaryOperator("/",7),this.RegisterBinaryOperator("%",8),this.RegisterBinaryOperator("mod",8,true);},this.RegisterBinaryOperator=(s,o,u=false)=>{let l=new M1.InfixOperator(s,o,u);this._binaryOperators.push(l),this._maxBinaryOpLength=Math.max(this._maxBinaryOpLength,s.length);},this._openFilenames=[],this.IncludeStatement=()=>{if(this.Whitespace(),this.ParseString("INCLUDE")===null)return null;this.Whitespace();let s=this.Expect(()=>this.ParseUntilCharactersFromString(`
40
+ \r\\#`),this._notTextEndCharactersChoice=new ve.CharacterSet(this._nonTextEndCharacters),this._notTextEndCharactersChoice.AddCharacters("[]"),this._notTextEndCharactersString=new ve.CharacterSet(this._nonTextEndCharacters),this._notTextEndCharactersString.AddCharacters('"'));let s=()=>this.OneOf([this.ParseDivertArrow,this.ParseThreadArrow,this.EndOfLine,this.Glue]),o=null;this.parsingStringExpression?o=this._notTextEndCharactersString:this._parsingChoice?o=this._notTextEndCharactersChoice:o=this._nonTextEndCharacters;let u=this.ParseUntil(s,this._nonTextPauseCharacters,o);return u!==null?u:null},this.MultiDivert=()=>{this.Whitespace();let s=[],o=this.Parse(this.StartThread);if(o)return s=[o],s;let u=this.Interleave(this.ParseDivertArrowOrTunnelOnwards,this.DivertIdentifierWithArguments);if(!u)return null;s=[],this.EndTagIfNecessary(s);for(let l=0;l<u.length;++l)if(l%2===0){if(u[l]==="->->"){l===0||l===u.length-1||l===u.length-2||this.Error("Tunnel onwards '->->' must only come at the begining or the start of a divert");let f=new k0.TunnelOnwards;if(l<u.length-1){let p=(0, an.asOrNull)(u[l+1],$n.Divert);f.divertAfter=p;}s.push(f);break}}else {let h=u[l];l<u.length-1&&(h.isTunnel=true),s.push(h);}if(s.length===0&&u.length===1){let l=new $n.Divert(null);l.isEmpty=true,s.push(l),this._parsingChoice||this.Error("Empty diverts (->) are only valid on choices");}return s},this.StartThread=()=>{if(this.Whitespace(),this.ParseThreadArrow()===null)return null;this.Whitespace();let s=this.Expect(this.DivertIdentifierWithArguments,"target for new thread",()=>new $n.Divert(null));return s.isThread=true,s},this.DivertIdentifierWithArguments=()=>{this.Whitespace();let s=this.Parse(this.DotSeparatedDivertPathComponents);if(!s)return null;this.Whitespace();let o=this.Parse(this.ExpressionFunctionCallArguments);this.Whitespace();let u=new z1.Path(s);return new $n.Divert(u,o)},this.SingleDivert=()=>{let s=this.Parse(this.MultiDivert);if(!s||s.length!==1||s[0]instanceof k0.TunnelOnwards)return null;let u=s[0];return u.isTunnel?null:u},this.DotSeparatedDivertPathComponents=()=>this.Interleave(this.Spaced(this.IdentifierWithMetadata),this.Exclude(this.String("."))),this.ParseDivertArrowOrTunnelOnwards=()=>{let s=0;for(;this.ParseString("->")!==null;)s+=1;return s===0?null:s===1?"->":(s===2||this.Error("Unexpected number of arrows in divert. Should only have '->' or '->->'"),"->->")},this.ParseDivertArrow=()=>this.ParseString("->"),this.ParseThreadArrow=()=>this.ParseString("<-"),this._binaryOperators=[],this._maxBinaryOpLength=0,this.TempDeclarationOrAssignment=()=>{this.Whitespace();let s=this.ParseTempKeyword();this.Whitespace();let o=null;if(s?o=this.Expect(this.IdentifierWithMetadata,"variable name"):o=this.Parse(this.IdentifierWithMetadata),o===null)return null;this.Whitespace();let u=this.ParseString("+")!==null,l=this.ParseString("-")!==null;if(u&&l&&this.Error("Unexpected sequence '+-'"),this.ParseString("=")===null)return s&&this.Error("Expected '='"),null;let c=this.Expect(this.Expression,"value expression to be assigned");return u||l?new au.IncDecExpression(o,c,u):new uf.VariableAssignment({variableIdentifier:o,assignedExpression:c,isTemporaryNewDeclaration:s})},this.DisallowIncrement=s=>{s instanceof au.IncDecExpression&&this.Error("Can't use increment/decrement here. It can only be used on a ~ line");},this.ParseTempKeyword=()=>{let s=this.BeginRule();return this.Parse(this.Identifier)==="temp"?(this.SucceedRule(s),true):(this.FailRule(s),false)},this.ReturnStatement=()=>{if(this.Whitespace(),this.Parse(this.Identifier)!=="return")return null;this.Whitespace();let o=this.Parse(this.Expression);return new F0.ReturnType(o)},this.Expression=(s=0)=>{this.Whitespace();let o=this.ExpressionUnary();if(o===null)return null;for(this.Whitespace();;){let u=this.BeginRule(),l=this.ParseInfixOperator();if(l!==null&&l.precedence>s){let c=`right side of '${l.type}' expression`,h=this.Expect(()=>this.ExpressionInfixRight(o,l),c);if(h===null)return this.FailRule(u),null;o=this.SucceedRule(u,h);continue}this.FailRule(u);break}return this.Whitespace(),o},this.ExpressionUnary=()=>{let s=this.Parse(this.ExpressionDivertTarget);if(s!==null)return s;let o=this.OneOf([this.String("-"),this.String("!")]);o===null&&(o=this.Parse(this.ExpressionNot)),this.Whitespace();let u=this.OneOf([this.ExpressionList,this.ExpressionParen,this.ExpressionFunctionCall,this.ExpressionVariableName,this.ExpressionLiteral]);if(u===null&&o!==null&&(u=this.ExpressionUnary()),u===null)return null;o!==null&&(u=X1.UnaryExpression.WithInner(u,o)),this.Whitespace();let l=this.OneOf([this.String("++"),this.String("--")]);if(l!==null){let c=l==="++";if(!(u instanceof lf.VariableReference))this.Error(`can only increment and decrement variables, but saw '${u}'.`);else {let h=u;u=new au.IncDecExpression(h.identifier,c);}}return u},this.ExpressionNot=()=>{let s=this.Identifier();return s==="not"?s:null},this.ExpressionLiteral=()=>this.OneOf([this.ExpressionFloat,this.ExpressionInt,this.ExpressionBool,this.ExpressionString]),this.ExpressionDivertTarget=()=>{this.Whitespace();let s=this.Parse(this.SingleDivert);return !s||s&&s.isThread?null:(this.Whitespace(),new of.DivertTarget(s))},this.ExpressionInt=()=>{let s=this.ParseInt();return s===null?null:new Or.NumberExpression(s,"int")},this.ExpressionFloat=()=>{let s=this.ParseFloat();return s===null?null:new Or.NumberExpression(s,"float")},this.ExpressionString=()=>{if(this.ParseString('"')===null)return null;this.parsingStringExpression=true;let o=this.Parse(this.MixedTextAndLogic);return this.Expect(this.String('"'),"close quote for string expression"),this.parsingStringExpression=false,o===null?o=[new jt.Text("")]:o.find(u=>u instanceof $n.Divert)&&this.Error("String expressions cannot contain diverts (->)"),new Yi.StringExpression(o)},this.ExpressionBool=()=>{let s=this.Parse(this.Identifier);return s==="true"?new Or.NumberExpression(true,"bool"):s==="false"?new Or.NumberExpression(false,"bool"):null},this.ExpressionFunctionCall=()=>{let s=this.Parse(this.IdentifierWithMetadata);if(s===null)return null;this.Whitespace();let o=this.Parse(this.ExpressionFunctionCallArguments);return o===null?null:new su.FunctionCall(s,o)},this.ExpressionFunctionCallArguments=()=>{if(this.ParseString("(")===null)return null;let s=this.Exclude(this.String(",")),o=this.Interleave(this.Expression,s);return o===null&&(o=[]),this.Whitespace(),this.Expect(this.String(")"),"closing ')' for function call"),o},this.ExpressionVariableName=()=>{let s=this.Interleave(this.IdentifierWithMetadata,this.Exclude(this.Spaced(this.String("."))));return s===null||I0.Story.IsReservedKeyword(s[0].name)?null:new lf.VariableReference(s)},this.ExpressionParen=()=>{if(this.ParseString("(")===null)return null;let s=this.Parse(this.Expression);return s===null?null:(this.Whitespace(),this.Expect(this.String(")"),"closing parenthesis ')' for expression"),s)},this.ExpressionInfixRight=(s,o)=>{if(!s)return null;this.Whitespace();let u=this.Parse(()=>this.Expression(o.precedence));return u?new N1.BinaryExpression(s,u,o.type):null},this.ParseInfixOperator=()=>{for(let s of this._binaryOperators){let o=this.BeginRule();if(this.ParseString(s.type)!==null){if(s.requireWhitespace&&this.Whitespace()===null){this.FailRule(o);continue}return this.SucceedRule(o,s)}this.FailRule(o);}return null},this.ExpressionList=()=>{if(this.Whitespace(),this.ParseString("(")===null)return null;this.Whitespace();let s=this.SeparatedList(this.ListMember,this.Spaced(this.String(",")));return this.Whitespace(),this.ParseString(")")===null?null:new x0.List(s)},this.ListMember=()=>{this.Whitespace();let s=this.Parse(this.IdentifierWithMetadata);if(s===null)return null;if(this.ParseString(".")!==null){let u=this.Expect(this.IdentifierWithMetadata,`element name within the set ${s}`);s.name+=`.${u?.name}`;}return this.Whitespace(),s},this.RegisterExpressionOperators=()=>{this.RegisterBinaryOperator("&&",1),this.RegisterBinaryOperator("||",1),this.RegisterBinaryOperator("and",1,true),this.RegisterBinaryOperator("or",1,true),this.RegisterBinaryOperator("==",2),this.RegisterBinaryOperator(">=",2),this.RegisterBinaryOperator("<=",2),this.RegisterBinaryOperator("<",2),this.RegisterBinaryOperator(">",2),this.RegisterBinaryOperator("!=",2),this.RegisterBinaryOperator("?",3),this.RegisterBinaryOperator("has",3,true),this.RegisterBinaryOperator("!?",3),this.RegisterBinaryOperator("hasnt",3,true),this.RegisterBinaryOperator("^",3),this.RegisterBinaryOperator("+",4),this.RegisterBinaryOperator("-",5),this.RegisterBinaryOperator("*",6),this.RegisterBinaryOperator("/",7),this.RegisterBinaryOperator("%",8),this.RegisterBinaryOperator("mod",8,true);},this.RegisterBinaryOperator=(s,o,u=false)=>{let l=new M1.InfixOperator(s,o,u);this._binaryOperators.push(l),this._maxBinaryOpLength=Math.max(this._maxBinaryOpLength,s.length);},this._openFilenames=[],this.IncludeStatement=()=>{if(this.Whitespace(),this.ParseString("INCLUDE")===null)return null;this.Whitespace();let s=this.Expect(()=>this.ParseUntilCharactersFromString(`
41
41
  \r`),"filename for include statement");s=s.replace(new RegExp(/[ \t]+$/g),"");let o=this.fileHandler.ResolveInkFilename(s,this._filename);if(this.FilenameIsAlreadyOpen(o))return this.Error(`Recursive INCLUDE detected: '${o}' is already open.`),this.ParseUntilCharactersFromString(`\r
42
42
  `),new T0.IncludedFile(null);this.AddOpenFilename(o);let u=null,l="";try{l=this._rootParser.fileHandler.LoadInkFileContents(o,this._filename);}catch(c){this.Error(`Failed to load: '${s}'.
43
- Error:${c}`);}return l!=null&&(u=new n(l,s,this._externalErrorHandler,this._rootParser,this.fileHandler).ParseStory()),this.RemoveOpenFilename(o),new T0.IncludedFile(u)},this.FilenameIsAlreadyOpen=s=>this._rootParser._openFilenames.includes(s),this.AddOpenFilename=s=>{this._rootParser._openFilenames.push(s);},this.RemoveOpenFilename=s=>{this._rootParser._openFilenames.splice(this._rootParser._openFilenames.indexOf(s),1);},this.KnotDefinition=()=>{let s=this.Parse(this.KnotDeclaration);if(s===null)return null;this.Expect(this.EndOfLine,"end of line after knot name definition",this.SkipToNextLine);let o=()=>this.StatementsAtLevel(Ve.StatementLevel.Knot),u=this.Expect(o,"at least one line within the knot",this.KnotStitchNoContentRecoveryRule);return new G1.Knot(s.name,u,s.args,s.isFunction)},this.KnotDeclaration=()=>{if(this.Whitespace(),this.KnotTitleEquals()===null)return null;this.Whitespace();let s=this.Parse(this.IdentifierWithMetadata),o,u=s?.name==="function";u?(this.Expect(this.Whitespace,"whitespace after the 'function' keyword"),o=this.Parse(this.IdentifierWithMetadata)):o=s,o===null&&(this.Error(`Expected the name of the ${u?"function":"knot"}`),o=new Zi.Identifier("")),this.Whitespace();let l=this.Parse(this.BracketedKnotDeclArguments);return this.Whitespace(),this.Parse(this.KnotTitleEquals),new P0.FlowDecl(o,l,u)},this.KnotTitleEquals=()=>{let s=this.ParseCharactersFromString("=");return s===null||s.length<=1?null:s},this.StitchDefinition=()=>{let s=this.Parse(this.StitchDeclaration);if(s===null)return null;this.Expect(this.EndOfLine,"end of line after stitch name",this.SkipToNextLine);let o=()=>this.StatementsAtLevel(Ve.StatementLevel.Stitch),u=this.Expect(o,"at least one line within the stitch",this.KnotStitchNoContentRecoveryRule);return new K1.Stitch(s.name,u,s.args,s.isFunction)},this.StitchDeclaration=()=>{if(this.Whitespace(),this.ParseString("=")===null||this.ParseString("=")!==null)return null;this.Whitespace();let s=this.ParseString("function")!==null;s&&this.Whitespace();let o=this.Parse(this.IdentifierWithMetadata);if(o===null)return null;this.Whitespace();let u=this.Parse(this.BracketedKnotDeclArguments);return this.Whitespace(),new P0.FlowDecl(o,u,s)},this.KnotStitchNoContentRecoveryRule=()=>(this.ParseUntil(this.KnotDeclaration,new ve.CharacterSet("="),null),[new jt.Text("<ERROR IN FLOW>")]),this.BracketedKnotDeclArguments=()=>{if(this.ParseString("(")===null)return null;let s=this.Interleave(this.Spaced(this.FlowDeclArgument),this.Exclude(this.String(",")));return this.Expect(this.String(")"),"closing ')' for parameter list"),s===null&&(s=[]),s},this.FlowDeclArgument=()=>{let s=this.Parse(this.IdentifierWithMetadata);this.Whitespace();let o=this.ParseDivertArrow();this.Whitespace();let u=this.Parse(this.IdentifierWithMetadata);if(s==null&&u===null)return null;let l=new x1.Argument;return o!==null&&(l.isDivertTarget=true),s!==null&&s.name==="ref"?(u===null&&this.Error("Expected an parameter name after 'ref'"),l.identifier=u,l.isByReference=true):(l.isDivertTarget?l.identifier=u:l.identifier=s,l.identifier===null&&this.Error("Expected an parameter name"),l.isByReference=false),l},this.ExternalDeclaration=()=>{this.Whitespace();let s=this.Parse(this.IdentifierWithMetadata);if(s===null||s.name!="EXTERNAL")return null;this.Whitespace();let o=this.Expect(this.IdentifierWithMetadata,"name of external function")||new Zi.Identifier("");this.Whitespace();let u=this.Expect(this.BracketedKnotDeclArguments,`declaration of arguments for EXTERNAL, even if empty, i.e. 'EXTERNAL ${o}()'`);u===null&&(u=[]);let l=u.map(c=>{var h;return (h=c.identifier)===null||h===void 0?void 0:h.name}).filter(an.filterUndef);return new q1.ExternalDeclaration(o,l)},this._identifierCharSet=null,this.LogicLine=()=>{if(this.Whitespace(),this.ParseString("~")===null)return null;this.Whitespace();let s=()=>this.OneOf([this.ReturnStatement,this.TempDeclarationOrAssignment,this.Expression]),o=this.Expect(s,"expression after '~'",this.SkipToNextLine);if(o===null)return new Ke.ContentList;o instanceof j1.Expression&&!(o instanceof su.FunctionCall||o instanceof au.IncDecExpression)&&this.Error(`Logic following a '~' can't be that type of expression. It can only be something like:
43
+ Error:${c}`);}return l!=null&&(u=new n(l,s,this._externalErrorHandler,this._rootParser,this.fileHandler).ParseStory()),this.RemoveOpenFilename(o),new T0.IncludedFile(u)},this.FilenameIsAlreadyOpen=s=>this._rootParser._openFilenames.includes(s),this.AddOpenFilename=s=>{this._rootParser._openFilenames.push(s);},this.RemoveOpenFilename=s=>{this._rootParser._openFilenames.splice(this._rootParser._openFilenames.indexOf(s),1);},this.KnotDefinition=()=>{let s=this.Parse(this.KnotDeclaration);if(s===null)return null;this.Expect(this.EndOfLine,"end of line after knot name definition",this.SkipToNextLine);let o=()=>this.StatementsAtLevel(Ve.StatementLevel.Knot),u=this.Expect(o,"at least one line within the knot",this.KnotStitchNoContentRecoveryRule);return new G1.Knot(s.name,u,s.args,s.isFunction)},this.KnotDeclaration=()=>{if(this.Whitespace(),this.KnotTitleEquals()===null)return null;this.Whitespace();let s=this.Parse(this.IdentifierWithMetadata),o,u=s?.name==="function";u?(this.Expect(this.Whitespace,"whitespace after the 'function' keyword"),o=this.Parse(this.IdentifierWithMetadata)):o=s,o===null&&(this.Error(`Expected the name of the ${u?"function":"knot"}`),o=new Zi.Identifier("")),this.Whitespace();let l=this.Parse(this.BracketedKnotDeclArguments);return this.Whitespace(),this.Parse(this.KnotTitleEquals),new P0.FlowDecl(o,l,u)},this.KnotTitleEquals=()=>{let s=this.ParseCharactersFromString("=");return s===null||s.length<=1?null:s},this.StitchDefinition=()=>{let s=this.Parse(this.StitchDeclaration);if(s===null)return null;this.Expect(this.EndOfLine,"end of line after stitch name",this.SkipToNextLine);let o=()=>this.StatementsAtLevel(Ve.StatementLevel.Stitch),u=this.Expect(o,"at least one line within the stitch",this.KnotStitchNoContentRecoveryRule);return new K1.Stitch(s.name,u,s.args,s.isFunction)},this.StitchDeclaration=()=>{if(this.Whitespace(),this.ParseString("=")===null||this.ParseString("=")!==null)return null;this.Whitespace();let s=this.ParseString("function")!==null;s&&this.Whitespace();let o=this.Parse(this.IdentifierWithMetadata);if(o===null)return null;this.Whitespace();let u=this.Parse(this.BracketedKnotDeclArguments);return this.Whitespace(),new P0.FlowDecl(o,u,s)},this.KnotStitchNoContentRecoveryRule=()=>(this.ParseUntil(this.KnotDeclaration,new ve.CharacterSet("="),null),[new jt.Text("<ERROR IN FLOW>")]),this.BracketedKnotDeclArguments=()=>{if(this.ParseString("(")===null)return null;let s=this.Interleave(this.Spaced(this.FlowDeclArgument),this.Exclude(this.String(",")));return this.Expect(this.String(")"),"closing ')' for parameter list"),s===null&&(s=[]),s},this.FlowDeclArgument=()=>{let s=this.Parse(this.IdentifierWithMetadata);this.Whitespace();let o=this.ParseDivertArrow();this.Whitespace();let u=this.Parse(this.IdentifierWithMetadata);if(s==null&&u===null)return null;let l=new O1.Argument;return o!==null&&(l.isDivertTarget=true),s!==null&&s.name==="ref"?(u===null&&this.Error("Expected an parameter name after 'ref'"),l.identifier=u,l.isByReference=true):(l.isDivertTarget?l.identifier=u:l.identifier=s,l.identifier===null&&this.Error("Expected an parameter name"),l.isByReference=false),l},this.ExternalDeclaration=()=>{this.Whitespace();let s=this.Parse(this.IdentifierWithMetadata);if(s===null||s.name!="EXTERNAL")return null;this.Whitespace();let o=this.Expect(this.IdentifierWithMetadata,"name of external function")||new Zi.Identifier("");this.Whitespace();let u=this.Expect(this.BracketedKnotDeclArguments,`declaration of arguments for EXTERNAL, even if empty, i.e. 'EXTERNAL ${o}()'`);u===null&&(u=[]);let l=u.map(c=>{var h;return (h=c.identifier)===null||h===void 0?void 0:h.name}).filter(an.filterUndef);return new q1.ExternalDeclaration(o,l)},this._identifierCharSet=null,this.LogicLine=()=>{if(this.Whitespace(),this.ParseString("~")===null)return null;this.Whitespace();let s=()=>this.OneOf([this.ReturnStatement,this.TempDeclarationOrAssignment,this.Expression]),o=this.Expect(s,"expression after '~'",this.SkipToNextLine);if(o===null)return new Ke.ContentList;o instanceof j1.Expression&&!(o instanceof su.FunctionCall||o instanceof au.IncDecExpression)&&this.Error(`Logic following a '~' can't be that type of expression. It can only be something like:
44
44
  ~ return
45
45
  ~ var x = blah
46
46
  ~ x++
47
47
  ~ myFunction()`);let u=(0, an.asOrNull)(o,su.FunctionCall);return u&&(u.shouldPopReturnedValue=true),o.Find(su.FunctionCall)()!==null&&(o=new Ke.ContentList(o,new jt.Text(`
48
- `))),this.Expect(this.EndOfLine,"end of line",this.SkipToNextLine),o},this.VariableDeclaration=()=>{if(this.Whitespace(),this.Parse(this.Identifier)!=="VAR")return null;this.Whitespace();let o=this.Expect(this.IdentifierWithMetadata,"variable name");this.Whitespace(),this.Expect(this.String("="),"the '=' for an assignment of a value, e.g. '= 5' (initial values are mandatory)"),this.Whitespace();let l=this.Expect(this.Expression,"initial value for ");return l?(l instanceof xr.NumberExpression||l instanceof Yi.StringExpression||l instanceof of.DivertTarget||l instanceof lf.VariableReference||l instanceof O0.List||this.Error("initial value for a variable must be a number, constant, list or divert target"),this.Parse(this.ListElementDefinitionSeparator)!==null?this.Error("Unexpected ','. If you're trying to declare a new list, use the LIST keyword, not VAR"):l instanceof Yi.StringExpression&&(l.isSingleString||this.Error("Constant strings cannot contain any logic.")),new uf.VariableAssignment({assignedExpression:l,isGlobalDeclaration:true,variableIdentifier:o})):null},this.ListDeclaration=()=>{if(this.Whitespace(),this.Parse(this.Identifier)!="LIST")return null;this.Whitespace();let o=this.Expect(this.IdentifierWithMetadata,"list name");this.Whitespace(),this.Expect(this.String("="),"the '=' for an assignment of the list definition"),this.Whitespace();let u=this.Expect(this.ListDefinition,"list item names");return u?(u.identifier=new Zi.Identifier(o.name),new uf.VariableAssignment({variableIdentifier:o,listDef:u})):null},this.ListDefinition=()=>{this.AnyWhitespace();let s=this.SeparatedList(this.ListElementDefinition,this.ListElementDefinitionSeparator);return s===null?null:new J1.ListDefinition(s)},this.ListElementDefinitionSeparator=()=>(this.AnyWhitespace(),this.ParseString(",")===null?null:(this.AnyWhitespace(),",")),this.ListElementDefinition=()=>{let s=this.ParseString("(")!==null,o=s;this.Whitespace();let u=this.Parse(this.IdentifierWithMetadata);if(u===null)return null;this.Whitespace(),s&&this.ParseString(")")!=null&&(o=false,this.Whitespace());let l=null;if(this.ParseString("=")!==null){this.Whitespace();let c=this.Expect(this.ExpressionInt,"value to be assigned to list item");c!==null&&(l=c.value),o&&(this.Whitespace(),this.ParseString(")")!==null&&(o=false));}return o&&this.Error("Expected closing ')'"),new H1.ListElementDefinition(u,s,l)},this.ConstDeclaration=()=>{if(this.Whitespace(),this.Parse(this.Identifier)!=="CONST")return null;this.Whitespace();let o=this.Expect(this.IdentifierWithMetadata,"constant name");this.Whitespace(),this.Expect(this.String("="),"the '=' for an assignment of a value, e.g. '= 5' (initial values are mandatory)"),this.Whitespace();let u=this.Expect(this.Expression,"initial value for ");return u instanceof xr.NumberExpression||u instanceof of.DivertTarget||u instanceof Yi.StringExpression?u instanceof Yi.StringExpression&&(u.isSingleString||this.Error("Constant strings cannot contain any logic.")):this.Error("initial value for a constant must be a number or divert target"),new $1.ConstantDeclaration(o,u)},this.InlineLogicOrGlueOrStartTag=()=>this.OneOf([this.InlineLogic,this.Glue,this.StartTag]),this.Glue=()=>this.ParseString("<>")!==null?new B1.Glue(new W1.Glue):null,this.InlineLogic=()=>{if(this.ParseString("{")===null)return null;let s=this.parsingStringExpression,o=this.tagActive;this.Whitespace();let u=this.Expect(this.InnerLogic,"some kind of logic, conditional or sequence within braces: { ... }");if(u===null)return this.parsingStringExpression=s,null;this.DisallowIncrement(u);let l=(0, an.asOrNull)(u,Ke.ContentList);return l||(l=new Ke.ContentList(u)),this.Whitespace(),this.Expect(this.String("}"),"closing brace '}' for inline logic"),this.parsingStringExpression=s,o||this.EndTagIfNecessary(l),l},this.InnerLogic=()=>{this.Whitespace();let s=this.ParseObject(this.SequenceTypeAnnotation);if(s!==null){let l=this.Expect(this.InnerSequenceObjects,"sequence elements (for cycle/stoping etc)");return l===null?null:new N0.Sequence(l,s)}let o=this.Parse(this.ConditionExpression);if(o)return this.Expect(()=>this.InnerConditionalContent(o),"conditional content following query");let u=[this.InnerConditionalContent,this.InnerSequence,this.InnerExpression];for(let l of u){let c=this.BeginRule(),h=this.ParseObject(l);if(h)if(this.Peek(this.Spaced(this.String("}")))===null)this.FailRule(c);else return this.SucceedRule(c,h);else this.FailRule(c);}return null},this.InnerExpression=()=>{let s=this.Parse(this.Expression);return s&&(s.outputWhenComplete=true),s},this.IdentifierWithMetadata=()=>{let s=this.Identifier();return s===null?null:new Zi.Identifier(s)},this.Identifier=()=>{let s=this.ParseCharactersFromCharSet(this.identifierCharSet);if(s===null)return null;let o=true;for(let u of s)if(!(u>="0"&&u<="9")){o=false;break}return o?null:s},this._sequenceTypeSymbols=new ve.CharacterSet("!&~$"),this.InnerSequence=()=>{this.Whitespace();let s=Ce.SequenceType.Stopping,o=this.Parse(this.SequenceTypeAnnotation);o!==null&&(s=o);let u=this.Parse(this.InnerSequenceObjects);return u===null||u.length<=1?null:new N0.Sequence(u,s)},this.SequenceTypeAnnotation=()=>{let s=this.Parse(this.SequenceTypeSymbolAnnotation);if(s===null&&(s=this.Parse(this.SequenceTypeWordAnnotation)),s===null)return null;switch(s){case Ce.SequenceType.Once:case Ce.SequenceType.Cycle:case Ce.SequenceType.Stopping:case Ce.SequenceType.Shuffle:case Ce.SequenceType.Shuffle|Ce.SequenceType.Stopping:case Ce.SequenceType.Shuffle|Ce.SequenceType.Once:break;default:return this.Error(`Sequence type combination not supported: ${s}`),Ce.SequenceType.Stopping}return s},this.SequenceTypeSymbolAnnotation=()=>{this._sequenceTypeSymbols===null&&(this._sequenceTypeSymbols=new ve.CharacterSet("!&~$ "));let s=0,o=this.ParseCharactersFromCharSet(this._sequenceTypeSymbols);if(o===null)return null;for(let u of o)switch(u){case "!":s|=Ce.SequenceType.Once;break;case "&":s|=Ce.SequenceType.Cycle;break;case "~":s|=Ce.SequenceType.Shuffle;break;case "$":s|=Ce.SequenceType.Stopping;break}return s===0?null:s},this.SequenceTypeWordAnnotation=()=>{let s=this.Interleave(this.SequenceTypeSingleWord,this.Exclude(this.Whitespace));if(s===null||s.length===0||this.ParseString(":")===null)return null;let o=0;for(let u of s)o|=u;return o},this.SequenceTypeSingleWord=()=>{let s=null,o=this.Parse(this.IdentifierWithMetadata);if(o!==null)switch(o.name){case "once":s=Ce.SequenceType.Once;break;case "cycle":s=Ce.SequenceType.Cycle;break;case "shuffle":s=Ce.SequenceType.Shuffle;break;case "stopping":s=Ce.SequenceType.Stopping;break}return s===null?null:s},this.InnerSequenceObjects=()=>{let s=this.Parse(this.Newline)!==null,o=null;return s?o=this.Parse(this.InnerMultilineSequenceObjects):o=this.Parse(this.InnerInlineSequenceObjects),o},this.InnerInlineSequenceObjects=()=>{let s=this.Interleave(this.Optional(this.MixedTextAndLogic),this.String("|"),null,false);if(s===null)return null;let o=[],u=false;for(let l of s)if(l==="|")u||o.push(new Ke.ContentList),u=false;else {let c=l;c===null?this.Error(`Expected content, but got ${l} (this is an ink compiler bug!)`):o.push(new Ke.ContentList(c)),u=true;}return u||o.push(new Ke.ContentList),o},this.InnerMultilineSequenceObjects=()=>{this.MultilineWhitespace();let s=this.OneOrMore(this.SingleMultilineSequenceElement);return s===null?null:s},this.SingleMultilineSequenceElement=()=>{if(this.Whitespace(),this.ParseString("->")!==null||this.ParseString("-")===null)return null;this.Whitespace();let s=this.StatementsAtLevel(Ve.StatementLevel.InnerBlock);return s===null?this.MultilineWhitespace():s.unshift(new jt.Text(`
48
+ `))),this.Expect(this.EndOfLine,"end of line",this.SkipToNextLine),o},this.VariableDeclaration=()=>{if(this.Whitespace(),this.Parse(this.Identifier)!=="VAR")return null;this.Whitespace();let o=this.Expect(this.IdentifierWithMetadata,"variable name");this.Whitespace(),this.Expect(this.String("="),"the '=' for an assignment of a value, e.g. '= 5' (initial values are mandatory)"),this.Whitespace();let l=this.Expect(this.Expression,"initial value for ");return l?(l instanceof Or.NumberExpression||l instanceof Yi.StringExpression||l instanceof of.DivertTarget||l instanceof lf.VariableReference||l instanceof x0.List||this.Error("initial value for a variable must be a number, constant, list or divert target"),this.Parse(this.ListElementDefinitionSeparator)!==null?this.Error("Unexpected ','. If you're trying to declare a new list, use the LIST keyword, not VAR"):l instanceof Yi.StringExpression&&(l.isSingleString||this.Error("Constant strings cannot contain any logic.")),new uf.VariableAssignment({assignedExpression:l,isGlobalDeclaration:true,variableIdentifier:o})):null},this.ListDeclaration=()=>{if(this.Whitespace(),this.Parse(this.Identifier)!="LIST")return null;this.Whitespace();let o=this.Expect(this.IdentifierWithMetadata,"list name");this.Whitespace(),this.Expect(this.String("="),"the '=' for an assignment of the list definition"),this.Whitespace();let u=this.Expect(this.ListDefinition,"list item names");return u?(u.identifier=new Zi.Identifier(o.name),new uf.VariableAssignment({variableIdentifier:o,listDef:u})):null},this.ListDefinition=()=>{this.AnyWhitespace();let s=this.SeparatedList(this.ListElementDefinition,this.ListElementDefinitionSeparator);return s===null?null:new J1.ListDefinition(s)},this.ListElementDefinitionSeparator=()=>(this.AnyWhitespace(),this.ParseString(",")===null?null:(this.AnyWhitespace(),",")),this.ListElementDefinition=()=>{let s=this.ParseString("(")!==null,o=s;this.Whitespace();let u=this.Parse(this.IdentifierWithMetadata);if(u===null)return null;this.Whitespace(),s&&this.ParseString(")")!=null&&(o=false,this.Whitespace());let l=null;if(this.ParseString("=")!==null){this.Whitespace();let c=this.Expect(this.ExpressionInt,"value to be assigned to list item");c!==null&&(l=c.value),o&&(this.Whitespace(),this.ParseString(")")!==null&&(o=false));}return o&&this.Error("Expected closing ')'"),new H1.ListElementDefinition(u,s,l)},this.ConstDeclaration=()=>{if(this.Whitespace(),this.Parse(this.Identifier)!=="CONST")return null;this.Whitespace();let o=this.Expect(this.IdentifierWithMetadata,"constant name");this.Whitespace(),this.Expect(this.String("="),"the '=' for an assignment of a value, e.g. '= 5' (initial values are mandatory)"),this.Whitespace();let u=this.Expect(this.Expression,"initial value for ");return u instanceof Or.NumberExpression||u instanceof of.DivertTarget||u instanceof Yi.StringExpression?u instanceof Yi.StringExpression&&(u.isSingleString||this.Error("Constant strings cannot contain any logic.")):this.Error("initial value for a constant must be a number or divert target"),new $1.ConstantDeclaration(o,u)},this.InlineLogicOrGlueOrStartTag=()=>this.OneOf([this.InlineLogic,this.Glue,this.StartTag]),this.Glue=()=>this.ParseString("<>")!==null?new B1.Glue(new W1.Glue):null,this.InlineLogic=()=>{if(this.ParseString("{")===null)return null;let s=this.parsingStringExpression,o=this.tagActive;this.Whitespace();let u=this.Expect(this.InnerLogic,"some kind of logic, conditional or sequence within braces: { ... }");if(u===null)return this.parsingStringExpression=s,null;this.DisallowIncrement(u);let l=(0, an.asOrNull)(u,Ke.ContentList);return l||(l=new Ke.ContentList(u)),this.Whitespace(),this.Expect(this.String("}"),"closing brace '}' for inline logic"),this.parsingStringExpression=s,o||this.EndTagIfNecessary(l),l},this.InnerLogic=()=>{this.Whitespace();let s=this.ParseObject(this.SequenceTypeAnnotation);if(s!==null){let l=this.Expect(this.InnerSequenceObjects,"sequence elements (for cycle/stoping etc)");return l===null?null:new N0.Sequence(l,s)}let o=this.Parse(this.ConditionExpression);if(o)return this.Expect(()=>this.InnerConditionalContent(o),"conditional content following query");let u=[this.InnerConditionalContent,this.InnerSequence,this.InnerExpression];for(let l of u){let c=this.BeginRule(),h=this.ParseObject(l);if(h)if(this.Peek(this.Spaced(this.String("}")))===null)this.FailRule(c);else return this.SucceedRule(c,h);else this.FailRule(c);}return null},this.InnerExpression=()=>{let s=this.Parse(this.Expression);return s&&(s.outputWhenComplete=true),s},this.IdentifierWithMetadata=()=>{let s=this.Identifier();return s===null?null:new Zi.Identifier(s)},this.Identifier=()=>{let s=this.ParseCharactersFromCharSet(this.identifierCharSet);if(s===null)return null;let o=true;for(let u of s)if(!(u>="0"&&u<="9")){o=false;break}return o?null:s},this._sequenceTypeSymbols=new ve.CharacterSet("!&~$"),this.InnerSequence=()=>{this.Whitespace();let s=Ce.SequenceType.Stopping,o=this.Parse(this.SequenceTypeAnnotation);o!==null&&(s=o);let u=this.Parse(this.InnerSequenceObjects);return u===null||u.length<=1?null:new N0.Sequence(u,s)},this.SequenceTypeAnnotation=()=>{let s=this.Parse(this.SequenceTypeSymbolAnnotation);if(s===null&&(s=this.Parse(this.SequenceTypeWordAnnotation)),s===null)return null;switch(s){case Ce.SequenceType.Once:case Ce.SequenceType.Cycle:case Ce.SequenceType.Stopping:case Ce.SequenceType.Shuffle:case Ce.SequenceType.Shuffle|Ce.SequenceType.Stopping:case Ce.SequenceType.Shuffle|Ce.SequenceType.Once:break;default:return this.Error(`Sequence type combination not supported: ${s}`),Ce.SequenceType.Stopping}return s},this.SequenceTypeSymbolAnnotation=()=>{this._sequenceTypeSymbols===null&&(this._sequenceTypeSymbols=new ve.CharacterSet("!&~$ "));let s=0,o=this.ParseCharactersFromCharSet(this._sequenceTypeSymbols);if(o===null)return null;for(let u of o)switch(u){case "!":s|=Ce.SequenceType.Once;break;case "&":s|=Ce.SequenceType.Cycle;break;case "~":s|=Ce.SequenceType.Shuffle;break;case "$":s|=Ce.SequenceType.Stopping;break}return s===0?null:s},this.SequenceTypeWordAnnotation=()=>{let s=this.Interleave(this.SequenceTypeSingleWord,this.Exclude(this.Whitespace));if(s===null||s.length===0||this.ParseString(":")===null)return null;let o=0;for(let u of s)o|=u;return o},this.SequenceTypeSingleWord=()=>{let s=null,o=this.Parse(this.IdentifierWithMetadata);if(o!==null)switch(o.name){case "once":s=Ce.SequenceType.Once;break;case "cycle":s=Ce.SequenceType.Cycle;break;case "shuffle":s=Ce.SequenceType.Shuffle;break;case "stopping":s=Ce.SequenceType.Stopping;break}return s===null?null:s},this.InnerSequenceObjects=()=>{let s=this.Parse(this.Newline)!==null,o=null;return s?o=this.Parse(this.InnerMultilineSequenceObjects):o=this.Parse(this.InnerInlineSequenceObjects),o},this.InnerInlineSequenceObjects=()=>{let s=this.Interleave(this.Optional(this.MixedTextAndLogic),this.String("|"),null,false);if(s===null)return null;let o=[],u=false;for(let l of s)if(l==="|")u||o.push(new Ke.ContentList),u=false;else {let c=l;c===null?this.Error(`Expected content, but got ${l} (this is an ink compiler bug!)`):o.push(new Ke.ContentList(c)),u=true;}return u||o.push(new Ke.ContentList),o},this.InnerMultilineSequenceObjects=()=>{this.MultilineWhitespace();let s=this.OneOrMore(this.SingleMultilineSequenceElement);return s===null?null:s},this.SingleMultilineSequenceElement=()=>{if(this.Whitespace(),this.ParseString("->")!==null||this.ParseString("-")===null)return null;this.Whitespace();let s=this.StatementsAtLevel(Ve.StatementLevel.InnerBlock);return s===null?this.MultilineWhitespace():s.unshift(new jt.Text(`
49
49
  `)),new Ke.ContentList(s)},this._statementRulesAtLevel=[],this._statementBreakRulesAtLevel=[],this.StatementsAtLevel=s=>(s===Ve.StatementLevel.InnerBlock&&this.Parse(this.GatherDashes)!==null&&this.Error("You can't use a gather (the dashes) within the { curly braces } context. For multi-line sequences and conditions, you should only use one dash."),this.Interleave(this.Optional(this.MultilineWhitespace),()=>this.StatementAtLevel(s),()=>this.StatementsBreakForLevel(s))),this.StatementAtLevel=s=>{let o=this._statementRulesAtLevel[s],u=this.OneOf(o);return s===Ve.StatementLevel.Top&&u instanceof F0.ReturnType&&this.Error("should not have return statement outside of a knot"),u},this.StatementsBreakForLevel=s=>{this.Whitespace();let o=this._statementBreakRulesAtLevel[s],u=this.OneOf(o);return u===null?null:u},this.GenerateStatementLevelRules=()=>{let s=Object.values(Ve.StatementLevel);this._statementRulesAtLevel="f".repeat(s.length).split("f").map(()=>[]),this._statementBreakRulesAtLevel="f".repeat(s.length).split("f").map(()=>[]);for(let o of s){let u=[],l=[];u.push(this.Line(this.MultiDivert)),o>=Ve.StatementLevel.Top&&u.push(this.KnotDefinition),u.push(this.Line(this.Choice)),u.push(this.Line(this.AuthorWarning)),o>Ve.StatementLevel.InnerBlock&&u.push(this.Gather),o>=Ve.StatementLevel.Knot&&u.push(this.StitchDefinition),u.push(this.Line(this.ListDeclaration)),u.push(this.Line(this.VariableDeclaration)),u.push(this.Line(this.ConstDeclaration)),u.push(this.Line(this.ExternalDeclaration)),u.push(this.Line(this.IncludeStatement)),u.push(this.LogicLine),u.push(this.LineOfMixedTextAndLogic),o<=Ve.StatementLevel.Knot&&l.push(this.KnotDeclaration),o<=Ve.StatementLevel.Stitch&&l.push(this.StitchDeclaration),o<=Ve.StatementLevel.InnerBlock&&(l.push(this.ParseDashNotArrow),l.push(this.String("}"))),this._statementRulesAtLevel[o]=u,this._statementBreakRulesAtLevel[o]=l;}},this.SkipToNextLine=()=>(this.ParseUntilCharactersFromString(`
50
- \r`),this.ParseNewline(),Vt.ParseSuccess),this.Line=s=>()=>{let o=this.ParseObject(s);return o===null?null:(this.Expect(this.EndOfLine,"end of line",this.SkipToNextLine),o)},this.StartTag=()=>{if(this.Whitespace(),this.ParseString("#")===null)return null;this.parsingStringExpression&&this.Error("Tags aren't allowed inside of strings. Please use \\# if you want a hash symbol.");let s=null;if(this.tagActive){let o=new Ke.ContentList;o.AddContent(new Or.Tag(false)),o.AddContent(new Or.Tag(true)),s=o;}else s=new Or.Tag(true);return this.tagActive=true,this.Whitespace(),s},this._inlineWhitespaceChars=new ve.CharacterSet(" "),this.EndOfLine=()=>this.OneOf([this.Newline,this.EndOfFile]),this.Newline=()=>(this.Whitespace(),this.ParseNewline()!==null?Vt.ParseSuccess:null),this.EndOfFile=()=>(this.Whitespace(),this.endOfInput?Vt.ParseSuccess:null),this.MultilineWhitespace=()=>{let s=this.OneOrMore(this.Newline);return s===null?null:s.length>=1?Vt.ParseSuccess:null},this.Whitespace=()=>this.ParseCharactersFromCharSet(this._inlineWhitespaceChars)!==null?Vt.ParseSuccess:null,this.Spaced=s=>()=>{this.Whitespace();let o=this.ParseObject(s);return o===null?null:(this.Whitespace(),o)},this.AnyWhitespace=()=>{let s=false;for(;this.OneOf([this.Whitespace,this.MultilineWhitespace])!==null;)s=true;return s?Vt.ParseSuccess:null},this.MultiSpaced=s=>()=>{this.AnyWhitespace();let o=this.ParseObject(s);return o===null?null:(this.AnyWhitespace(),o)},this._filename=null,this._externalErrorHandler=null,this._fileHandler=null,this._filename=t,this.RegisterExpressionOperators(),this.GenerateStatementLevelRules(),this.errorHandler=this.OnStringParserError,this._externalErrorHandler=r,a===null?this._fileHandler=new Y1.DefaultFileHandler:this._fileHandler=a,i===null){if(this._rootParser=this,this._openFilenames=[],this._filename!==null){let s=this.fileHandler.ResolveInkFilename(this._filename);this._openFilenames.push(s);}}else this._rootParser=i;}PreProcessInputString(e){return new k1.CommentEliminator(e).Process()}get parsingStringExpression(){return this.GetFlag(Number(iu.CustomFlags.ParsingString))}set parsingStringExpression(e){this.SetFlag(Number(iu.CustomFlags.ParsingString),e);}get tagActive(){return this.GetFlag(Number(iu.CustomFlags.TagActive))}set tagActive(e){this.SetFlag(Number(iu.CustomFlags.TagActive),e);}get identifierCharSet(){return this._identifierCharSet===null&&((this._identifierCharSet=new ve.CharacterSet).AddRange("A","Z").AddRange("a","z").AddRange("0","9").Add("_"),this.ExtendIdentifierCharacterRanges(this._identifierCharSet)),this._identifierCharSet}EndTagIfNecessary(e){this.tagActive&&(e!=null&&(e instanceof Ke.ContentList?e.AddContent(new Or.Tag(false)):e.push(new Or.Tag(false))),this.tagActive=false);}};ou.InkParser=ee;ee.LatinBasic=pt.CharacterRange.Define("A","z",new ve.CharacterSet().AddRange("[","`"));ee.LatinExtendedA=pt.CharacterRange.Define("\u0100","\u017F");ee.LatinExtendedB=pt.CharacterRange.Define("\u0180","\u024F");ee.Greek=pt.CharacterRange.Define("\u0370","\u03FF",new ve.CharacterSet().AddRange("\u0378","\u0385").AddCharacters("\u0374\u0375\u0378\u0387\u038B\u038D\u03A2"));ee.Cyrillic=pt.CharacterRange.Define("\u0400","\u04FF",new ve.CharacterSet().AddRange("\u0482","\u0489"));ee.Armenian=pt.CharacterRange.Define("\u0530","\u058F",new ve.CharacterSet().AddCharacters("\u0530").AddRange("\u0557","\u0560").AddRange("\u0588","\u058E"));ee.Hebrew=pt.CharacterRange.Define("\u0590","\u05FF",new ve.CharacterSet);ee.Arabic=pt.CharacterRange.Define("\u0600","\u06FF",new ve.CharacterSet);ee.Korean=pt.CharacterRange.Define("\uAC00","\uD7AF",new ve.CharacterSet);ee.Latin1Supplement=pt.CharacterRange.Define("\x80","\xFF",new ve.CharacterSet);ee.Chinese=pt.CharacterRange.Define("\u4E00","\u9FFF",new ve.CharacterSet);ee.ListAllCharacterRanges=()=>[ee.LatinBasic,ee.LatinExtendedA,ee.LatinExtendedB,ee.Arabic,ee.Armenian,ee.Cyrillic,ee.Greek,ee.Hebrew,ee.Korean,ee.Latin1Supplement,ee.Chinese];});var $0=C(uu=>{Object.defineProperty(uu,"__esModule",{value:true});uu.GenerateStoryStats=void 0;var Z1=gr(),Q1=Er(),eO=Fi(),tO=Ad(),nO=Nd(),rO=en();function iO(n){let e=n.FindAll(rO.Text)(),t=0;for(let u of e){let l=0,c=true;for(let h of u.text)h==" "||h==" "||h==`
51
- `||h=="\r"?c=true:c&&(l++,c=false);t+=l;}let r=n.FindAll(tO.Knot)(),i=n.FindAll(nO.Stitch)(),a=n.FindAll(Z1.Choice)(),s=n.FindAll(eO.Gather)(u=>u.debugMetadata!=null),o=n.FindAll(Q1.Divert)();return {words:t,knots:r.length,functions:r.filter(u=>u.isFunction).length,stitches:i.length,gathers:s.length,diverts:o.length-1,choices:a.length}}uu.GenerateStoryStats=iO;});var V0=C(lu=>{Object.defineProperty(lu,"__esModule",{value:true});lu.JsonFileHandler=void 0;var hf=class{constructor(e){this.fileHierarchy=e,this.ResolveInkFilename=t=>{if(Object.keys(this.fileHierarchy).includes(t))return t;throw new Error(`Cannot locate ${t}. Are you trying a relative import ? This is not yet implemented.`)},this.LoadInkFileContents=t=>{if(Object.keys(this.fileHierarchy).includes(t))return this.fileHierarchy[t];throw new Error(`Cannot open ${t}.`)};}};lu.JsonFileHandler=hf;});var q0=C(Ne=>{Object.defineProperty(Ne,"__esModule",{value:true});Ne.Compiler=Ne.Story=Ne.InkList=Ne.JsonFileHandler=Ne.StatementLevel=Ne.InkParser=Ne.CompilerOptions=void 0;var sO=zc(),aO=Ug(),df=ar(),oO=cf(),uO=ue(),lO=X(),cO=$0(),hO=zc();Object.defineProperty(Ne,"CompilerOptions",{enumerable:true,get:function(){return hO.CompilerOptions}});var dO=cf();Object.defineProperty(Ne,"InkParser",{enumerable:true,get:function(){return dO.InkParser}});var fO=xd();Object.defineProperty(Ne,"StatementLevel",{enumerable:true,get:function(){return fO.StatementLevel}});var pO=V0();Object.defineProperty(Ne,"JsonFileHandler",{enumerable:true,get:function(){return pO.JsonFileHandler}});var j0=Bi();Object.defineProperty(Ne,"InkList",{enumerable:true,get:function(){return j0.InkList}});Object.defineProperty(Ne,"Story",{enumerable:true,get:function(){return j0.Story}});var ff=class{get errors(){return this._errors}get warnings(){return this._warnings}get authorMessages(){return this._authorMessages}get inputString(){return this._inputString}get options(){return this._options}get parsedStory(){if(!this._parsedStory)throw new Error;return this._parsedStory}get runtimeStory(){if(!this._runtimeStory)throw new Error("Compilation failed.");return this._runtimeStory}get parser(){if(!this._parser)throw new Error;return this._parser}get debugSourceRanges(){return this._debugSourceRanges}constructor(e,t=null){this._errors=[],this._warnings=[],this._authorMessages=[],this._parsedStory=null,this._runtimeStory=null,this._parser=null,this._debugSourceRanges=[],this.Compile=()=>(this._parser=new oO.InkParser(this.inputString,this.options.sourceFilename||null,this.OnError,null,this.options.fileHandler),this._parsedStory=this.parser.ParseStory(),this.errors.length===0?(this.parsedStory.countAllVisits=this.options.countAllVisits,this._runtimeStory=this.parsedStory.ExportRuntime(this.OnError)):this._runtimeStory=null,this.runtimeStory),this.RetrieveDebugSourceForLatestContent=()=>{var r;for(let i of this.runtimeStory.state.outputStream){let a=(0, lO.asOrNull)(i,uO.StringValue);if(a!==null){let s=new aO.DebugSourceRange(((r=a.value)===null||r===void 0?void 0:r.length)||0,a.debugMetadata,a.value||"unknown");this.debugSourceRanges.push(s);}}},this.GenerateStats=()=>this._parsedStory===null?null:(0, cO.GenerateStoryStats)(this._parsedStory),this.DebugMetadataForContentAtOffset=r=>{let i=0,a=null;for(let s of this.debugSourceRanges){if(s.debugMetadata!==null&&(a=s.debugMetadata),r>=i&&r<i+s.length)return a;i+=s.length;}return null},this.OnError=(r,i)=>{switch(i){case df.ErrorType.Author:this._authorMessages.push(r);break;case df.ErrorType.Warning:this._warnings.push(r);break;case df.ErrorType.Error:this._errors.push(r);break}this.options.errorHandler!==null&&this.options.errorHandler(r,i);},this._inputString=e,this._options=t||new sO.CompilerOptions;}};Ne.Compiler=ff;});var es="global decl",on="___external_value___";var H;(i=>(i.log=(a,...s)=>console.log(`[Pixi\u2019VN Ink] ${a}`,...s),i.warn=(a,...s)=>console.warn(`[Pixi\u2019VN Ink] ${a}`,...s),i.error=(a,...s)=>console.error(`[Pixi\u2019VN Ink] ${a}`,...s),i.info=(a,...s)=>console.info(`[Pixi\u2019VN Ink] ${a}`,...s)))(H||={});var rC=/[\u1680\u2000-\u200A\u202F\u205F\u3000]/,iC=/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]/,sC=/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u09FC\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9-\u0AFF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D00-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF9\u1D00-\u1DF9\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDE00-\uDE3E\uDE47\uDE50-\uDE83\uDE86-\uDE99\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD50-\uDD59]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/,gu={Space_Separator:rC,ID_Start:iC,ID_Continue:sC},ce={isSpaceSeparator(n){return typeof n=="string"&&gu.Space_Separator.test(n)},isIdStartChar(n){return typeof n=="string"&&(n>="a"&&n<="z"||n>="A"&&n<="Z"||n==="$"||n==="_"||gu.ID_Start.test(n))},isIdContinueChar(n){return typeof n=="string"&&(n>="a"&&n<="z"||n>="A"&&n<="Z"||n>="0"&&n<="9"||n==="$"||n==="_"||n==="\u200C"||n==="\u200D"||gu.ID_Continue.test(n))},isDigit(n){return typeof n=="string"&&/[0-9]/.test(n)},isHexDigit(n){return typeof n=="string"&&/[0-9A-Fa-f]/.test(n)}},Cu,Ie,xt,ns,qt,ut,me,_u,Rr,aC=function(e,t){Cu=String(e),Ie="start",xt=[],ns=0,qt=1,ut=0,me=void 0,_u=void 0,Rr=void 0;do me=oC(),cC[Ie]();while(me.type!=="eof");return typeof t=="function"?vu({"":Rr},"",t):Rr};function vu(n,e,t){let r=n[e];if(r!=null&&typeof r=="object")if(Array.isArray(r))for(let i=0;i<r.length;i++){let a=String(i),s=vu(r,a,t);s===void 0?delete r[a]:Object.defineProperty(r,a,{value:s,writable:true,enumerable:true,configurable:true});}else for(let i in r){let a=vu(r,i,t);a===void 0?delete r[i]:Object.defineProperty(r,i,{value:a,writable:true,enumerable:true,configurable:true});}return t.call(n,e,r)}var R,N,kr,Ot,B;function oC(){for(R="default",N="",kr=false,Ot=1;;){B=Ft();let n=Df[R]();if(n)return n}}function Ft(){if(Cu[ns])return String.fromCodePoint(Cu.codePointAt(ns))}function D(){let n=Ft();return n===`
52
- `?(qt++,ut=0):n?ut+=n.length:ut++,n&&(ns+=n.length),n}var Df={default(){switch(B){case " ":case "\v":case "\f":case " ":case "\xA0":case "\uFEFF":case `
53
- `:case "\r":case "\u2028":case "\u2029":D();return;case "/":D(),R="comment";return;case void 0:return D(),te("eof")}if(ce.isSpaceSeparator(B)){D();return}return Df[Ie]()},comment(){switch(B){case "*":D(),R="multiLineComment";return;case "/":D(),R="singleLineComment";return}throw ne(D())},multiLineComment(){switch(B){case "*":D(),R="multiLineCommentAsterisk";return;case void 0:throw ne(D())}D();},multiLineCommentAsterisk(){switch(B){case "*":D();return;case "/":D(),R="default";return;case void 0:throw ne(D())}D(),R="multiLineComment";},singleLineComment(){switch(B){case `
54
- `:case "\r":case "\u2028":case "\u2029":D(),R="default";return;case void 0:return D(),te("eof")}D();},value(){switch(B){case "{":case "[":return te("punctuator",D());case "n":return D(),un("ull"),te("null",null);case "t":return D(),un("rue"),te("boolean",true);case "f":return D(),un("alse"),te("boolean",false);case "-":case "+":D()==="-"&&(Ot=-1),R="sign";return;case ".":N=D(),R="decimalPointLeading";return;case "0":N=D(),R="zero";return;case "1":case "2":case "3":case "4":case "5":case "6":case "7":case "8":case "9":N=D(),R="decimalInteger";return;case "I":return D(),un("nfinity"),te("numeric",1/0);case "N":return D(),un("aN"),te("numeric",NaN);case '"':case "'":kr=D()==='"',N="",R="string";return}throw ne(D())},identifierNameStartEscape(){if(B!=="u")throw ne(D());D();let n=Eu();switch(n){case "$":case "_":break;default:if(!ce.isIdStartChar(n))throw bf();break}N+=n,R="identifierName";},identifierName(){switch(B){case "$":case "_":case "\u200C":case "\u200D":N+=D();return;case "\\":D(),R="identifierNameEscape";return}if(ce.isIdContinueChar(B)){N+=D();return}return te("identifier",N)},identifierNameEscape(){if(B!=="u")throw ne(D());D();let n=Eu();switch(n){case "$":case "_":case "\u200C":case "\u200D":break;default:if(!ce.isIdContinueChar(n))throw bf();break}N+=n,R="identifierName";},sign(){switch(B){case ".":N=D(),R="decimalPointLeading";return;case "0":N=D(),R="zero";return;case "1":case "2":case "3":case "4":case "5":case "6":case "7":case "8":case "9":N=D(),R="decimalInteger";return;case "I":return D(),un("nfinity"),te("numeric",Ot*(1/0));case "N":return D(),un("aN"),te("numeric",NaN)}throw ne(D())},zero(){switch(B){case ".":N+=D(),R="decimalPoint";return;case "e":case "E":N+=D(),R="decimalExponent";return;case "x":case "X":N+=D(),R="hexadecimal";return}return te("numeric",Ot*0)},decimalInteger(){switch(B){case ".":N+=D(),R="decimalPoint";return;case "e":case "E":N+=D(),R="decimalExponent";return}if(ce.isDigit(B)){N+=D();return}return te("numeric",Ot*Number(N))},decimalPointLeading(){if(ce.isDigit(B)){N+=D(),R="decimalFraction";return}throw ne(D())},decimalPoint(){switch(B){case "e":case "E":N+=D(),R="decimalExponent";return}if(ce.isDigit(B)){N+=D(),R="decimalFraction";return}return te("numeric",Ot*Number(N))},decimalFraction(){switch(B){case "e":case "E":N+=D(),R="decimalExponent";return}if(ce.isDigit(B)){N+=D();return}return te("numeric",Ot*Number(N))},decimalExponent(){switch(B){case "+":case "-":N+=D(),R="decimalExponentSign";return}if(ce.isDigit(B)){N+=D(),R="decimalExponentInteger";return}throw ne(D())},decimalExponentSign(){if(ce.isDigit(B)){N+=D(),R="decimalExponentInteger";return}throw ne(D())},decimalExponentInteger(){if(ce.isDigit(B)){N+=D();return}return te("numeric",Ot*Number(N))},hexadecimal(){if(ce.isHexDigit(B)){N+=D(),R="hexadecimalInteger";return}throw ne(D())},hexadecimalInteger(){if(ce.isHexDigit(B)){N+=D();return}return te("numeric",Ot*Number(N))},string(){switch(B){case "\\":D(),N+=uC();return;case '"':if(kr)return D(),te("string",N);N+=D();return;case "'":if(!kr)return D(),te("string",N);N+=D();return;case `
55
- `:case "\r":throw ne(D());case "\u2028":case "\u2029":hC(B);break;case void 0:throw ne(D())}N+=D();},start(){switch(B){case "{":case "[":return te("punctuator",D())}R="value";},beforePropertyName(){switch(B){case "$":case "_":N=D(),R="identifierName";return;case "\\":D(),R="identifierNameStartEscape";return;case "}":return te("punctuator",D());case '"':case "'":kr=D()==='"',R="string";return}if(ce.isIdStartChar(B)){N+=D(),R="identifierName";return}throw ne(D())},afterPropertyName(){if(B===":")return te("punctuator",D());throw ne(D())},beforePropertyValue(){R="value";},afterPropertyValue(){switch(B){case ",":case "}":return te("punctuator",D())}throw ne(D())},beforeArrayValue(){if(B==="]")return te("punctuator",D());R="value";},afterArrayValue(){switch(B){case ",":case "]":return te("punctuator",D())}throw ne(D())},end(){throw ne(D())}};function te(n,e){return {type:n,value:e,line:qt,column:ut}}function un(n){for(let e of n){if(Ft()!==e)throw ne(D());D();}}function uC(){switch(Ft()){case "b":return D(),"\b";case "f":return D(),"\f";case "n":return D(),`
56
- `;case "r":return D(),"\r";case "t":return D()," ";case "v":return D(),"\v";case "0":if(D(),ce.isDigit(Ft()))throw ne(D());return "\0";case "x":return D(),lC();case "u":return D(),Eu();case `
57
- `:case "\u2028":case "\u2029":return D(),"";case "\r":return D(),Ft()===`
58
- `&&D(),"";case "1":case "2":case "3":case "4":case "5":case "6":case "7":case "8":case "9":throw ne(D());case void 0:throw ne(D())}return D()}function lC(){let n="",e=Ft();if(!ce.isHexDigit(e)||(n+=D(),e=Ft(),!ce.isHexDigit(e)))throw ne(D());return n+=D(),String.fromCodePoint(parseInt(n,16))}function Eu(){let n="",e=4;for(;e-- >0;){let t=Ft();if(!ce.isHexDigit(t))throw ne(D());n+=D();}return String.fromCodePoint(parseInt(n,16))}var cC={start(){if(me.type==="eof")throw ln();yu();},beforePropertyName(){switch(me.type){case "identifier":case "string":_u=me.value,Ie="afterPropertyName";return;case "punctuator":ts();return;case "eof":throw ln()}},afterPropertyName(){if(me.type==="eof")throw ln();Ie="beforePropertyValue";},beforePropertyValue(){if(me.type==="eof")throw ln();yu();},beforeArrayValue(){if(me.type==="eof")throw ln();if(me.type==="punctuator"&&me.value==="]"){ts();return}yu();},afterPropertyValue(){if(me.type==="eof")throw ln();switch(me.value){case ",":Ie="beforePropertyName";return;case "}":ts();}},afterArrayValue(){if(me.type==="eof")throw ln();switch(me.value){case ",":Ie="beforeArrayValue";return;case "]":ts();}},end(){}};function yu(){let n;switch(me.type){case "punctuator":switch(me.value){case "{":n={};break;case "[":n=[];break}break;case "null":case "boolean":case "numeric":case "string":n=me.value;break}if(Rr===void 0)Rr=n;else {let e=xt[xt.length-1];Array.isArray(e)?e.push(n):Object.defineProperty(e,_u,{value:n,writable:true,enumerable:true,configurable:true});}if(n!==null&&typeof n=="object")xt.push(n),Array.isArray(n)?Ie="beforeArrayValue":Ie="beforePropertyName";else {let e=xt[xt.length-1];e==null?Ie="end":Array.isArray(e)?Ie="afterArrayValue":Ie="afterPropertyValue";}}function ts(){xt.pop();let n=xt[xt.length-1];n==null?Ie="end":Array.isArray(n)?Ie="afterArrayValue":Ie="afterPropertyValue";}function ne(n){return rs(n===void 0?`JSON5: invalid end of input at ${qt}:${ut}`:`JSON5: invalid character '${wf(n)}' at ${qt}:${ut}`)}function ln(){return rs(`JSON5: invalid end of input at ${qt}:${ut}`)}function bf(){return ut-=5,rs(`JSON5: invalid identifier character at ${qt}:${ut}`)}function hC(n){console.warn(`JSON5: '${wf(n)}' in strings is not valid ECMAScript; consider escaping`);}function wf(n){let e={"'":"\\'",'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t","\v":"\\v","\0":"\\0","\u2028":"\\u2028","\u2029":"\\u2029"};if(e[n])return e[n];if(n<" "){let t=n.charCodeAt(0).toString(16);return "\\x"+("00"+t).substring(t.length)}return n}function rs(n){let e=new SyntaxError(n);return e.lineNumber=qt,e.columnNumber=ut,e}var dC=function(e,t,r){let i=[],a="",s,o,u="",l;if(t!=null&&typeof t=="object"&&!Array.isArray(t)&&(r=t.space,l=t.quote,t=t.replacer),typeof t=="function")o=t;else if(Array.isArray(t)){s=[];for(let g of t){let v;typeof g=="string"?v=g:(typeof g=="number"||g instanceof String||g instanceof Number)&&(v=String(g)),v!==void 0&&s.indexOf(v)<0&&s.push(v);}}return r instanceof Number?r=Number(r):r instanceof String&&(r=String(r)),typeof r=="number"?r>0&&(r=Math.min(10,Math.floor(r)),u=" ".substr(0,r)):typeof r=="string"&&(u=r.substr(0,10)),c("",{"":e});function c(g,v){let E=v[g];switch(E!=null&&(typeof E.toJSON5=="function"?E=E.toJSON5(g):typeof E.toJSON=="function"&&(E=E.toJSON(g))),o&&(E=o.call(v,g,E)),E instanceof Number?E=Number(E):E instanceof String?E=String(E):E instanceof Boolean&&(E=E.valueOf()),E){case null:return "null";case true:return "true";case false:return "false"}if(typeof E=="string")return h(E);if(typeof E=="number")return String(E);if(typeof E=="object")return Array.isArray(E)?m(E):f(E)}function h(g){let v={"'":.1,'"':.2},E={"'":"\\'",'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t","\v":"\\v","\0":"\\0","\u2028":"\\u2028","\u2029":"\\u2029"},b="";for(let _=0;_<g.length;_++){let y=g[_];switch(y){case "'":case '"':v[y]++,b+=y;continue;case "\0":if(ce.isDigit(g[_+1])){b+="\\x00";continue}}if(E[y]){b+=E[y];continue}if(y<" "){let S=y.charCodeAt(0).toString(16);b+="\\x"+("00"+S).substring(S.length);continue}b+=y;}let d=l||Object.keys(v).reduce((_,y)=>v[_]<v[y]?_:y);return b=b.replace(new RegExp(d,"g"),E[d]),d+b+d}function f(g){if(i.indexOf(g)>=0)throw TypeError("Converting circular structure to JSON5");i.push(g);let v=a;a=a+u;let E=s||Object.keys(g),b=[];for(let _ of E){let y=c(_,g);if(y!==void 0){let S=p(_)+":";u!==""&&(S+=" "),S+=y,b.push(S);}}let d;if(b.length===0)d="{}";else {let _;if(u==="")_=b.join(","),d="{"+_+"}";else {let y=`,
50
+ \r`),this.ParseNewline(),Vt.ParseSuccess),this.Line=s=>()=>{let o=this.ParseObject(s);return o===null?null:(this.Expect(this.EndOfLine,"end of line",this.SkipToNextLine),o)},this.StartTag=()=>{if(this.Whitespace(),this.ParseString("#")===null)return null;this.parsingStringExpression&&this.Error("Tags aren't allowed inside of strings. Please use \\# if you want a hash symbol.");let s=null;if(this.tagActive){let o=new Ke.ContentList;o.AddContent(new xr.Tag(false)),o.AddContent(new xr.Tag(true)),s=o;}else s=new xr.Tag(true);return this.tagActive=true,this.Whitespace(),s},this._inlineWhitespaceChars=new ve.CharacterSet(" "),this.EndOfLine=()=>this.OneOf([this.Newline,this.EndOfFile]),this.Newline=()=>(this.Whitespace(),this.ParseNewline()!==null?Vt.ParseSuccess:null),this.EndOfFile=()=>(this.Whitespace(),this.endOfInput?Vt.ParseSuccess:null),this.MultilineWhitespace=()=>{let s=this.OneOrMore(this.Newline);return s===null?null:s.length>=1?Vt.ParseSuccess:null},this.Whitespace=()=>this.ParseCharactersFromCharSet(this._inlineWhitespaceChars)!==null?Vt.ParseSuccess:null,this.Spaced=s=>()=>{this.Whitespace();let o=this.ParseObject(s);return o===null?null:(this.Whitespace(),o)},this.AnyWhitespace=()=>{let s=false;for(;this.OneOf([this.Whitespace,this.MultilineWhitespace])!==null;)s=true;return s?Vt.ParseSuccess:null},this.MultiSpaced=s=>()=>{this.AnyWhitespace();let o=this.ParseObject(s);return o===null?null:(this.AnyWhitespace(),o)},this._filename=null,this._externalErrorHandler=null,this._fileHandler=null,this._filename=t,this.RegisterExpressionOperators(),this.GenerateStatementLevelRules(),this.errorHandler=this.OnStringParserError,this._externalErrorHandler=r,a===null?this._fileHandler=new Y1.DefaultFileHandler:this._fileHandler=a,i===null){if(this._rootParser=this,this._openFilenames=[],this._filename!==null){let s=this.fileHandler.ResolveInkFilename(this._filename);this._openFilenames.push(s);}}else this._rootParser=i;}PreProcessInputString(e){return new k1.CommentEliminator(e).Process()}get parsingStringExpression(){return this.GetFlag(Number(iu.CustomFlags.ParsingString))}set parsingStringExpression(e){this.SetFlag(Number(iu.CustomFlags.ParsingString),e);}get tagActive(){return this.GetFlag(Number(iu.CustomFlags.TagActive))}set tagActive(e){this.SetFlag(Number(iu.CustomFlags.TagActive),e);}get identifierCharSet(){return this._identifierCharSet===null&&((this._identifierCharSet=new ve.CharacterSet).AddRange("A","Z").AddRange("a","z").AddRange("0","9").Add("_"),this.ExtendIdentifierCharacterRanges(this._identifierCharSet)),this._identifierCharSet}EndTagIfNecessary(e){this.tagActive&&(e!=null&&(e instanceof Ke.ContentList?e.AddContent(new xr.Tag(false)):e.push(new xr.Tag(false))),this.tagActive=false);}};ou.InkParser=ee;ee.LatinBasic=pt.CharacterRange.Define("A","z",new ve.CharacterSet().AddRange("[","`"));ee.LatinExtendedA=pt.CharacterRange.Define("\u0100","\u017F");ee.LatinExtendedB=pt.CharacterRange.Define("\u0180","\u024F");ee.Greek=pt.CharacterRange.Define("\u0370","\u03FF",new ve.CharacterSet().AddRange("\u0378","\u0385").AddCharacters("\u0374\u0375\u0378\u0387\u038B\u038D\u03A2"));ee.Cyrillic=pt.CharacterRange.Define("\u0400","\u04FF",new ve.CharacterSet().AddRange("\u0482","\u0489"));ee.Armenian=pt.CharacterRange.Define("\u0530","\u058F",new ve.CharacterSet().AddCharacters("\u0530").AddRange("\u0557","\u0560").AddRange("\u0588","\u058E"));ee.Hebrew=pt.CharacterRange.Define("\u0590","\u05FF",new ve.CharacterSet);ee.Arabic=pt.CharacterRange.Define("\u0600","\u06FF",new ve.CharacterSet);ee.Korean=pt.CharacterRange.Define("\uAC00","\uD7AF",new ve.CharacterSet);ee.Latin1Supplement=pt.CharacterRange.Define("\x80","\xFF",new ve.CharacterSet);ee.Chinese=pt.CharacterRange.Define("\u4E00","\u9FFF",new ve.CharacterSet);ee.ListAllCharacterRanges=()=>[ee.LatinBasic,ee.LatinExtendedA,ee.LatinExtendedB,ee.Arabic,ee.Armenian,ee.Cyrillic,ee.Greek,ee.Hebrew,ee.Korean,ee.Latin1Supplement,ee.Chinese];});var $0=C(uu=>{Object.defineProperty(uu,"__esModule",{value:true});uu.GenerateStoryStats=void 0;var Z1=gr(),Q1=Er(),ex=Fi(),tx=Ad(),nx=Nd(),rx=en();function ix(n){let e=n.FindAll(rx.Text)(),t=0;for(let u of e){let l=0,c=true;for(let h of u.text)h==" "||h==" "||h==`
51
+ `||h=="\r"?c=true:c&&(l++,c=false);t+=l;}let r=n.FindAll(tx.Knot)(),i=n.FindAll(nx.Stitch)(),a=n.FindAll(Z1.Choice)(),s=n.FindAll(ex.Gather)(u=>u.debugMetadata!=null),o=n.FindAll(Q1.Divert)();return {words:t,knots:r.length,functions:r.filter(u=>u.isFunction).length,stitches:i.length,gathers:s.length,diverts:o.length-1,choices:a.length}}uu.GenerateStoryStats=ix;});var V0=C(lu=>{Object.defineProperty(lu,"__esModule",{value:true});lu.JsonFileHandler=void 0;var hf=class{constructor(e){this.fileHierarchy=e,this.ResolveInkFilename=t=>{if(Object.keys(this.fileHierarchy).includes(t))return t;throw new Error(`Cannot locate ${t}. Are you trying a relative import ? This is not yet implemented.`)},this.LoadInkFileContents=t=>{if(Object.keys(this.fileHierarchy).includes(t))return this.fileHierarchy[t];throw new Error(`Cannot open ${t}.`)};}};lu.JsonFileHandler=hf;});var q0=C(Ne=>{Object.defineProperty(Ne,"__esModule",{value:true});Ne.Compiler=Ne.Story=Ne.InkList=Ne.JsonFileHandler=Ne.StatementLevel=Ne.InkParser=Ne.CompilerOptions=void 0;var sx=zc(),ax=Ug(),df=ar(),ox=cf(),ux=ue(),lx=X(),cx=$0(),hx=zc();Object.defineProperty(Ne,"CompilerOptions",{enumerable:true,get:function(){return hx.CompilerOptions}});var dx=cf();Object.defineProperty(Ne,"InkParser",{enumerable:true,get:function(){return dx.InkParser}});var fx=Od();Object.defineProperty(Ne,"StatementLevel",{enumerable:true,get:function(){return fx.StatementLevel}});var px=V0();Object.defineProperty(Ne,"JsonFileHandler",{enumerable:true,get:function(){return px.JsonFileHandler}});var j0=Bi();Object.defineProperty(Ne,"InkList",{enumerable:true,get:function(){return j0.InkList}});Object.defineProperty(Ne,"Story",{enumerable:true,get:function(){return j0.Story}});var ff=class{get errors(){return this._errors}get warnings(){return this._warnings}get authorMessages(){return this._authorMessages}get inputString(){return this._inputString}get options(){return this._options}get parsedStory(){if(!this._parsedStory)throw new Error;return this._parsedStory}get runtimeStory(){if(!this._runtimeStory)throw new Error("Compilation failed.");return this._runtimeStory}get parser(){if(!this._parser)throw new Error;return this._parser}get debugSourceRanges(){return this._debugSourceRanges}constructor(e,t=null){this._errors=[],this._warnings=[],this._authorMessages=[],this._parsedStory=null,this._runtimeStory=null,this._parser=null,this._debugSourceRanges=[],this.Compile=()=>(this._parser=new ox.InkParser(this.inputString,this.options.sourceFilename||null,this.OnError,null,this.options.fileHandler),this._parsedStory=this.parser.ParseStory(),this.errors.length===0?(this.parsedStory.countAllVisits=this.options.countAllVisits,this._runtimeStory=this.parsedStory.ExportRuntime(this.OnError)):this._runtimeStory=null,this.runtimeStory),this.RetrieveDebugSourceForLatestContent=()=>{var r;for(let i of this.runtimeStory.state.outputStream){let a=(0, lx.asOrNull)(i,ux.StringValue);if(a!==null){let s=new ax.DebugSourceRange(((r=a.value)===null||r===void 0?void 0:r.length)||0,a.debugMetadata,a.value||"unknown");this.debugSourceRanges.push(s);}}},this.GenerateStats=()=>this._parsedStory===null?null:(0, cx.GenerateStoryStats)(this._parsedStory),this.DebugMetadataForContentAtOffset=r=>{let i=0,a=null;for(let s of this.debugSourceRanges){if(s.debugMetadata!==null&&(a=s.debugMetadata),r>=i&&r<i+s.length)return a;i+=s.length;}return null},this.OnError=(r,i)=>{switch(i){case df.ErrorType.Author:this._authorMessages.push(r);break;case df.ErrorType.Warning:this._warnings.push(r);break;case df.ErrorType.Error:this._errors.push(r);break}this.options.errorHandler!==null&&this.options.errorHandler(r,i);},this._inputString=e,this._options=t||new sx.CompilerOptions;}};Ne.Compiler=ff;});var es="global decl",on="___external_value___";var H;(i=>(i.log=(a,...s)=>console.log(`[Pixi\u2019VN Ink] ${a}`,...s),i.warn=(a,...s)=>console.warn(`[Pixi\u2019VN Ink] ${a}`,...s),i.error=(a,...s)=>console.error(`[Pixi\u2019VN Ink] ${a}`,...s),i.info=(a,...s)=>console.info(`[Pixi\u2019VN Ink] ${a}`,...s)))(H||={});var rC=/[\u1680\u2000-\u200A\u202F\u205F\u3000]/,iC=/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]/,sC=/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u09FC\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9-\u0AFF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D00-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF9\u1D00-\u1DF9\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDE00-\uDE3E\uDE47\uDE50-\uDE83\uDE86-\uDE99\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD50-\uDD59]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/,gu={Space_Separator:rC,ID_Start:iC,ID_Continue:sC},ce={isSpaceSeparator(n){return typeof n=="string"&&gu.Space_Separator.test(n)},isIdStartChar(n){return typeof n=="string"&&(n>="a"&&n<="z"||n>="A"&&n<="Z"||n==="$"||n==="_"||gu.ID_Start.test(n))},isIdContinueChar(n){return typeof n=="string"&&(n>="a"&&n<="z"||n>="A"&&n<="Z"||n>="0"&&n<="9"||n==="$"||n==="_"||n==="\u200C"||n==="\u200D"||gu.ID_Continue.test(n))},isDigit(n){return typeof n=="string"&&/[0-9]/.test(n)},isHexDigit(n){return typeof n=="string"&&/[0-9A-Fa-f]/.test(n)}},Cu,Ie,Ot,ns,qt,ut,me,_u,Rr,aC=function(e,t){Cu=String(e),Ie="start",Ot=[],ns=0,qt=1,ut=0,me=void 0,_u=void 0,Rr=void 0;do me=oC(),cC[Ie]();while(me.type!=="eof");return typeof t=="function"?vu({"":Rr},"",t):Rr};function vu(n,e,t){let r=n[e];if(r!=null&&typeof r=="object")if(Array.isArray(r))for(let i=0;i<r.length;i++){let a=String(i),s=vu(r,a,t);s===void 0?delete r[a]:Object.defineProperty(r,a,{value:s,writable:true,enumerable:true,configurable:true});}else for(let i in r){let a=vu(r,i,t);a===void 0?delete r[i]:Object.defineProperty(r,i,{value:a,writable:true,enumerable:true,configurable:true});}return t.call(n,e,r)}var R,N,kr,xt,B;function oC(){for(R="default",N="",kr=false,xt=1;;){B=Ft();let n=wf[R]();if(n)return n}}function Ft(){if(Cu[ns])return String.fromCodePoint(Cu.codePointAt(ns))}function w(){let n=Ft();return n===`
52
+ `?(qt++,ut=0):n?ut+=n.length:ut++,n&&(ns+=n.length),n}var wf={default(){switch(B){case " ":case "\v":case "\f":case " ":case "\xA0":case "\uFEFF":case `
53
+ `:case "\r":case "\u2028":case "\u2029":w();return;case "/":w(),R="comment";return;case void 0:return w(),te("eof")}if(ce.isSpaceSeparator(B)){w();return}return wf[Ie]()},comment(){switch(B){case "*":w(),R="multiLineComment";return;case "/":w(),R="singleLineComment";return}throw ne(w())},multiLineComment(){switch(B){case "*":w(),R="multiLineCommentAsterisk";return;case void 0:throw ne(w())}w();},multiLineCommentAsterisk(){switch(B){case "*":w();return;case "/":w(),R="default";return;case void 0:throw ne(w())}w(),R="multiLineComment";},singleLineComment(){switch(B){case `
54
+ `:case "\r":case "\u2028":case "\u2029":w(),R="default";return;case void 0:return w(),te("eof")}w();},value(){switch(B){case "{":case "[":return te("punctuator",w());case "n":return w(),un("ull"),te("null",null);case "t":return w(),un("rue"),te("boolean",true);case "f":return w(),un("alse"),te("boolean",false);case "-":case "+":w()==="-"&&(xt=-1),R="sign";return;case ".":N=w(),R="decimalPointLeading";return;case "0":N=w(),R="zero";return;case "1":case "2":case "3":case "4":case "5":case "6":case "7":case "8":case "9":N=w(),R="decimalInteger";return;case "I":return w(),un("nfinity"),te("numeric",1/0);case "N":return w(),un("aN"),te("numeric",NaN);case '"':case "'":kr=w()==='"',N="",R="string";return}throw ne(w())},identifierNameStartEscape(){if(B!=="u")throw ne(w());w();let n=Eu();switch(n){case "$":case "_":break;default:if(!ce.isIdStartChar(n))throw bf();break}N+=n,R="identifierName";},identifierName(){switch(B){case "$":case "_":case "\u200C":case "\u200D":N+=w();return;case "\\":w(),R="identifierNameEscape";return}if(ce.isIdContinueChar(B)){N+=w();return}return te("identifier",N)},identifierNameEscape(){if(B!=="u")throw ne(w());w();let n=Eu();switch(n){case "$":case "_":case "\u200C":case "\u200D":break;default:if(!ce.isIdContinueChar(n))throw bf();break}N+=n,R="identifierName";},sign(){switch(B){case ".":N=w(),R="decimalPointLeading";return;case "0":N=w(),R="zero";return;case "1":case "2":case "3":case "4":case "5":case "6":case "7":case "8":case "9":N=w(),R="decimalInteger";return;case "I":return w(),un("nfinity"),te("numeric",xt*(1/0));case "N":return w(),un("aN"),te("numeric",NaN)}throw ne(w())},zero(){switch(B){case ".":N+=w(),R="decimalPoint";return;case "e":case "E":N+=w(),R="decimalExponent";return;case "x":case "X":N+=w(),R="hexadecimal";return}return te("numeric",xt*0)},decimalInteger(){switch(B){case ".":N+=w(),R="decimalPoint";return;case "e":case "E":N+=w(),R="decimalExponent";return}if(ce.isDigit(B)){N+=w();return}return te("numeric",xt*Number(N))},decimalPointLeading(){if(ce.isDigit(B)){N+=w(),R="decimalFraction";return}throw ne(w())},decimalPoint(){switch(B){case "e":case "E":N+=w(),R="decimalExponent";return}if(ce.isDigit(B)){N+=w(),R="decimalFraction";return}return te("numeric",xt*Number(N))},decimalFraction(){switch(B){case "e":case "E":N+=w(),R="decimalExponent";return}if(ce.isDigit(B)){N+=w();return}return te("numeric",xt*Number(N))},decimalExponent(){switch(B){case "+":case "-":N+=w(),R="decimalExponentSign";return}if(ce.isDigit(B)){N+=w(),R="decimalExponentInteger";return}throw ne(w())},decimalExponentSign(){if(ce.isDigit(B)){N+=w(),R="decimalExponentInteger";return}throw ne(w())},decimalExponentInteger(){if(ce.isDigit(B)){N+=w();return}return te("numeric",xt*Number(N))},hexadecimal(){if(ce.isHexDigit(B)){N+=w(),R="hexadecimalInteger";return}throw ne(w())},hexadecimalInteger(){if(ce.isHexDigit(B)){N+=w();return}return te("numeric",xt*Number(N))},string(){switch(B){case "\\":w(),N+=uC();return;case '"':if(kr)return w(),te("string",N);N+=w();return;case "'":if(!kr)return w(),te("string",N);N+=w();return;case `
55
+ `:case "\r":throw ne(w());case "\u2028":case "\u2029":hC(B);break;case void 0:throw ne(w())}N+=w();},start(){switch(B){case "{":case "[":return te("punctuator",w())}R="value";},beforePropertyName(){switch(B){case "$":case "_":N=w(),R="identifierName";return;case "\\":w(),R="identifierNameStartEscape";return;case "}":return te("punctuator",w());case '"':case "'":kr=w()==='"',R="string";return}if(ce.isIdStartChar(B)){N+=w(),R="identifierName";return}throw ne(w())},afterPropertyName(){if(B===":")return te("punctuator",w());throw ne(w())},beforePropertyValue(){R="value";},afterPropertyValue(){switch(B){case ",":case "}":return te("punctuator",w())}throw ne(w())},beforeArrayValue(){if(B==="]")return te("punctuator",w());R="value";},afterArrayValue(){switch(B){case ",":case "]":return te("punctuator",w())}throw ne(w())},end(){throw ne(w())}};function te(n,e){return {type:n,value:e,line:qt,column:ut}}function un(n){for(let e of n){if(Ft()!==e)throw ne(w());w();}}function uC(){switch(Ft()){case "b":return w(),"\b";case "f":return w(),"\f";case "n":return w(),`
56
+ `;case "r":return w(),"\r";case "t":return w()," ";case "v":return w(),"\v";case "0":if(w(),ce.isDigit(Ft()))throw ne(w());return "\0";case "x":return w(),lC();case "u":return w(),Eu();case `
57
+ `:case "\u2028":case "\u2029":return w(),"";case "\r":return w(),Ft()===`
58
+ `&&w(),"";case "1":case "2":case "3":case "4":case "5":case "6":case "7":case "8":case "9":throw ne(w());case void 0:throw ne(w())}return w()}function lC(){let n="",e=Ft();if(!ce.isHexDigit(e)||(n+=w(),e=Ft(),!ce.isHexDigit(e)))throw ne(w());return n+=w(),String.fromCodePoint(parseInt(n,16))}function Eu(){let n="",e=4;for(;e-- >0;){let t=Ft();if(!ce.isHexDigit(t))throw ne(w());n+=w();}return String.fromCodePoint(parseInt(n,16))}var cC={start(){if(me.type==="eof")throw ln();yu();},beforePropertyName(){switch(me.type){case "identifier":case "string":_u=me.value,Ie="afterPropertyName";return;case "punctuator":ts();return;case "eof":throw ln()}},afterPropertyName(){if(me.type==="eof")throw ln();Ie="beforePropertyValue";},beforePropertyValue(){if(me.type==="eof")throw ln();yu();},beforeArrayValue(){if(me.type==="eof")throw ln();if(me.type==="punctuator"&&me.value==="]"){ts();return}yu();},afterPropertyValue(){if(me.type==="eof")throw ln();switch(me.value){case ",":Ie="beforePropertyName";return;case "}":ts();}},afterArrayValue(){if(me.type==="eof")throw ln();switch(me.value){case ",":Ie="beforeArrayValue";return;case "]":ts();}},end(){}};function yu(){let n;switch(me.type){case "punctuator":switch(me.value){case "{":n={};break;case "[":n=[];break}break;case "null":case "boolean":case "numeric":case "string":n=me.value;break}if(Rr===void 0)Rr=n;else {let e=Ot[Ot.length-1];Array.isArray(e)?e.push(n):Object.defineProperty(e,_u,{value:n,writable:true,enumerable:true,configurable:true});}if(n!==null&&typeof n=="object")Ot.push(n),Array.isArray(n)?Ie="beforeArrayValue":Ie="beforePropertyName";else {let e=Ot[Ot.length-1];e==null?Ie="end":Array.isArray(e)?Ie="afterArrayValue":Ie="afterPropertyValue";}}function ts(){Ot.pop();let n=Ot[Ot.length-1];n==null?Ie="end":Array.isArray(n)?Ie="afterArrayValue":Ie="afterPropertyValue";}function ne(n){return rs(n===void 0?`JSON5: invalid end of input at ${qt}:${ut}`:`JSON5: invalid character '${Df(n)}' at ${qt}:${ut}`)}function ln(){return rs(`JSON5: invalid end of input at ${qt}:${ut}`)}function bf(){return ut-=5,rs(`JSON5: invalid identifier character at ${qt}:${ut}`)}function hC(n){console.warn(`JSON5: '${Df(n)}' in strings is not valid ECMAScript; consider escaping`);}function Df(n){let e={"'":"\\'",'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t","\v":"\\v","\0":"\\0","\u2028":"\\u2028","\u2029":"\\u2029"};if(e[n])return e[n];if(n<" "){let t=n.charCodeAt(0).toString(16);return "\\x"+("00"+t).substring(t.length)}return n}function rs(n){let e=new SyntaxError(n);return e.lineNumber=qt,e.columnNumber=ut,e}var dC=function(e,t,r){let i=[],a="",s,o,u="",l;if(t!=null&&typeof t=="object"&&!Array.isArray(t)&&(r=t.space,l=t.quote,t=t.replacer),typeof t=="function")o=t;else if(Array.isArray(t)){s=[];for(let g of t){let v;typeof g=="string"?v=g:(typeof g=="number"||g instanceof String||g instanceof Number)&&(v=String(g)),v!==void 0&&s.indexOf(v)<0&&s.push(v);}}return r instanceof Number?r=Number(r):r instanceof String&&(r=String(r)),typeof r=="number"?r>0&&(r=Math.min(10,Math.floor(r)),u=" ".substr(0,r)):typeof r=="string"&&(u=r.substr(0,10)),c("",{"":e});function c(g,v){let E=v[g];switch(E!=null&&(typeof E.toJSON5=="function"?E=E.toJSON5(g):typeof E.toJSON=="function"&&(E=E.toJSON(g))),o&&(E=o.call(v,g,E)),E instanceof Number?E=Number(E):E instanceof String?E=String(E):E instanceof Boolean&&(E=E.valueOf()),E){case null:return "null";case true:return "true";case false:return "false"}if(typeof E=="string")return h(E);if(typeof E=="number")return String(E);if(typeof E=="object")return Array.isArray(E)?m(E):f(E)}function h(g){let v={"'":.1,'"':.2},E={"'":"\\'",'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t","\v":"\\v","\0":"\\0","\u2028":"\\u2028","\u2029":"\\u2029"},b="";for(let _=0;_<g.length;_++){let y=g[_];switch(y){case "'":case '"':v[y]++,b+=y;continue;case "\0":if(ce.isDigit(g[_+1])){b+="\\x00";continue}}if(E[y]){b+=E[y];continue}if(y<" "){let S=y.charCodeAt(0).toString(16);b+="\\x"+("00"+S).substring(S.length);continue}b+=y;}let d=l||Object.keys(v).reduce((_,y)=>v[_]<v[y]?_:y);return b=b.replace(new RegExp(d,"g"),E[d]),d+b+d}function f(g){if(i.indexOf(g)>=0)throw TypeError("Converting circular structure to JSON5");i.push(g);let v=a;a=a+u;let E=s||Object.keys(g),b=[];for(let _ of E){let y=c(_,g);if(y!==void 0){let S=p(_)+":";u!==""&&(S+=" "),S+=y,b.push(S);}}let d;if(b.length===0)d="{}";else {let _;if(u==="")_=b.join(","),d="{"+_+"}";else {let y=`,
59
59
  `+a;_=b.join(y),d=`{
60
60
  `+a+_+`,
61
61
  `+v+"}";}}return i.pop(),a=v,d}function p(g){if(g.length===0)return h(g);let v=String.fromCodePoint(g.codePointAt(0));if(!ce.isIdStartChar(v))return h(g);for(let E=v.length;E<g.length;E++)if(!ce.isIdContinueChar(String.fromCodePoint(g.codePointAt(E))))return h(g);return g}function m(g){if(i.indexOf(g)>=0)throw TypeError("Converting circular structure to JSON5");i.push(g);let v=a;a=a+u;let E=[];for(let d=0;d<g.length;d++){let _=c(String(d),g);E.push(_!==void 0?_:"null");}let b;if(E.length===0)b="[]";else if(u==="")b="["+E.join(",")+"]";else {let d=`,
62
62
  `+a,_=E.join(d);b=`[
63
63
  `+a+_+`,
64
- `+v+"]";}return i.pop(),a=v,b}},fC={parse:aC,stringify:dC},pC=fC,$r=pC;var Pf="\xA7SPACE\xA7",Tf="\xA7DOUBLE_QUOTES\xA7",Of="\xA7QUOTES\xA7",xf="SPECIAL_\xA7QUOTES\xA7",Ff="\xA7CURLY_BRACKETS1\xA7",mC="\xA7INK_VAR\xA7",Nf="\xA7CURLY_BRACKETS2\xA7",cn;(b=>{let n=[],e=[];async function t(d,_){for(let y=0;y<n.length;y++)try{let{validation:S}=n[y].opts;if(S instanceof RegExp){if(!S.test(d.join(" ")))continue}else if(S instanceof zod.ZodType&&!S.safeParse(d).success)continue;let w=await n[y].fn(d,_,h);if(w===!0||typeof w=="string")return w}catch{}return false}function r(d,_={name:"custom-command",validation:/^/}){n.unshift({fn:d,opts:_});}b.add=r;function i(){return [...e.map(d=>d.opts),...n.map(d=>d.opts)]}b.info=i;function a(d,_){e.unshift({fn:d,opts:_});}b.addMapper=a;function s(){n.length=0;}b.clear=s;function o(){e.length=0;}b.clearMappers=o;async function u(d,_,y){try{let S=l(d),w=await t(S,y);return w===!0?void 0:typeof w=="string"?(w.startsWith("#")&&(w=w.substring(1)),await b.run(w,_,y)):c(S,_)}catch(S){throw H.error("Error parsing ink hashtag-command",d),S}}b.run=u;function l(d,_){if(d=d.replaceAll('\\"',Tf),d=d.replaceAll("\\'",Of),d=d.replaceAll("\\`",xf),d=d.replaceAll("\\{",Ff),d=d.replaceAll("\\}",Nf),_?.mergeInkVariables){let A;do A=d,d=d.replace(/\{[^{}:]*\}/g,mC);while(d!==A)}d=d.replaceAll("{"," { "),d=d.replaceAll("}"," } "),d=d.replaceAll(Ff,"{"),d=d.replaceAll(Nf,"}");let y=[],S,w="";for(let A=0;A<d.length;A++){let F=d[A];F==='"'||F==="'"||F==="`"?S===void 0?(y.push(w),w="",S=F,w+=F):S===F?(S=void 0,w+=F,y.push(w),w=""):w+=F:w+=F;}return w!==""&&y.push(w),y.forEach((A,F)=>{F%2===1&&(y[F]=A.replaceAll(" ",Pf));}),d=y.join(""),y=d.split(" ").filter(A=>A!==""),y=y.map(A=>A.replaceAll(Pf," ").replaceAll(Tf,'"').replaceAll(Of,"'").replaceAll(xf,"`")),y=m(y),y=y.flatMap(A=>E(A)),y=y.map(A=>A.startsWith('"')&&A.endsWith('"')||A.startsWith("'")&&A.endsWith("'")||A.startsWith("`")&&A.endsWith("`")?A.slice(1,-1):A),y}b.convertTagTolist=l;function c(d,_,y){for(let S of e){let{validation:w}=S.opts,A=false;if(w instanceof RegExp?A=w.test(d.join(" ")):w instanceof zod.ZodType&&(A=w.safeParse(d).success),A)return S.fn(d,_)}y?.silent||H.error("The operation is not valid",d);}b.convertOperation=c;function h(d){if(d.length===0)return {};if(d.length%2!==0)throw H.error("The props list must have a pair number of elements",d),new Error("The props list must have a pair number of elements");let _="{";d.forEach((y,S)=>{if(S%2===0)_+=`"${y}": `;else {switch(y){case "null":case "undefined":case "true":case "false":_+=`${y}`;break;default:p(y)?(y=f(y),_+=`"${y}"`):y.startsWith("{")&&y.endsWith("}")?_+=`${y}`:y.startsWith('"')&&y.endsWith('"')?_+=`${y}`:Number.isNaN(parseFloat(y))?_+=`"${y}"`:_+=`${y}`;}S<d.length-1&&(_+=", ");}}),_+="}";try{return $r.parse(_)}catch(y){throw H.error("Error parsing ink json",_),y}}b.convertListStringToObj=h;function f(d){return d.startsWith('"')&&d.endsWith('"')||d.startsWith("'")&&d.endsWith("'")||d.startsWith("`")&&d.endsWith("`")?d.substring(1,d.length-1):d}function p(d){return !!(d.startsWith('"')&&d.endsWith('"')||d.startsWith("'")&&d.endsWith("'")||d.startsWith("`")&&d.endsWith("`"))}function m(d){return g(d).tokens}b.mergeJsonBlocks=m;function g(d){let _=[],y=false;for(let S=0;S<d.length;S++){let w=d[S];if(w!=="{"){_.push(w);continue}let A=v(d,S);if(A===-1){_.push(w);continue}let F=g(d.slice(S+1,A)),Z=["{",...F.tokens,"}"],be=Z.join(" ");if(!F.hasInvalidMatchedBlock)try{$r.parse(be),_.push(be),S=A;continue}catch{}y=true,_.push(...Z),S=A;}return {tokens:_,hasInvalidMatchedBlock:y}}function v(d,_){let y=0;for(let S=_;S<d.length;S++)if(d[S]==="{")y++;else if(d[S]==="}"&&(y--,y===0))return S;return -1}function E(d){if(d==="["||d==="]")return [d];let _=0,y=d.length,S=[];for(;_<y&&d[_]==="[";)S.push("["),_++;let w=[];for(;y>_&&d[y-1]==="]";)w.unshift("]"),y--;let A=d.slice(_,y);return A===""?[...S,...w]:[...S,A,...w]}})(cn||={});var If=["+","-","/","*","%","_","==",">","<",">=","<=","!=","!","&&","||","MIN","MAX"],kf=["+","-","/","*","%","POW","RANDOM","L^"],Rf=["INT","FLOOR","FLOAT"];function jn(n,e){if(n.endsWith(".s"))return;if(new RegExp(/.*\.[0-9]+\..*$/).test(n)&&(n=n.split(".").filter(i=>!i.match(/^[0-9]+$/)).join("."),!n.startsWith(".")))return n.replaceAll(".","_|_");if(!new RegExp(/^\.\^.*$/).test(n)&&n.includes("g-")){let r=n.split("g-");return Su(e)+"_|_"+"g-"+r[r.length-1]}let t=0;for(;new RegExp(/^\.\^.*$/).test(n);)t++,n=n.substring(2);if(t=t-1,new RegExp(/^\..*$/).test(n)&&e){let r=n.substring(1);return Su(e,t)+"_|_"+r.replaceAll(".","_|_")}return n.replaceAll(".","_|_")||Su(e,t).replaceAll(".","_|_")}function Su(n,e=0){let t=n.split("_|_");for(;t.length>1&&e>0;)t.pop()?.includes("g-")&&e--,e--;return t.join("_|_")}var $f="\xA7DOUBLE_SLASH_CONVERTOR\xA7";function mt(n){return n.startsWith("^")&&(n=n.substring(1)),n=n.replaceAll("\\\\",$f),n=n.replaceAll("\\n",`
65
- `),n=n.replaceAll("\\t"," "),n=n.replaceAll(" "," "),n=n.replaceAll($f,"\\\\"),n}function Lt(n,e,t,r){let{functions:i}=r;n=n.map(s=>{if(typeof s=="string")switch(s){case "rnd":return "RANDOM";case "?":return "CONTAINS"}return s});let a=[];return n.forEach(s=>{if(typeof s=="string")switch(s){case "&&":case "||":if(a.length>=2){let o={type:"union",unionType:s==="&&"?"and":"or",conditions:[a[a.length-2],a[a.length-1]]};a.pop(),a.pop(),a.push(o);}break;case "!":if(a.length===0)H.error("Error parsing ink file: Conditional statement is not valid",n);else {let o={type:"union",unionType:"not",condition:a[a.length-1]};a[a.length-1]=o;}break;case "!?":if(a.length>1){let o={type:"union",unionType:"not",condition:{type:"compare",operator:"CONTAINS",leftValue:a[a.length-2],rightValue:a[a.length-1]}};a.pop(),a.pop(),a.push(o);}else H.error("Error parsing ink file: Conditional statement is not valid",n);break;default:if(constants.PixiVNJsonComparationOperators.includes(s))if(a.length<2)H.error("Error parsing ink file: Conditional statement is not valid",n);else {let o={type:"compare",operator:s,rightValue:a[a.length-1],leftValue:a[a.length-2]};a.pop(),a.pop(),a.push(o);}else if(kf.includes(s))if(a.length<2)H.error("Error parsing ink file: Conditional statement is not valid",n);else {s==="L^"&&(s="INTERSECTION");let o={type:"arithmetic",operator:s,rightValue:a[a.length-1],leftValue:a[a.length-2]};a.pop(),a.pop(),a.push(o);}else if(Rf.includes(s)){let o={type:"arithmeticsingle",operator:s,leftValue:a[a.length-1]};a.pop(),a.push(o);}else s.startsWith("^")&&a.push(mt(s));}else if(typeof s=="object"&&"CNT?"in s)if(new RegExp(/.*\.[0-9]\..*/).test(s["CNT?"])){let o=s["CNT?"].split("."),u=o.pop(),l=o.pop();if(l===void 0||u===void 0){H.error("Error parsing ink file: Conditional statement is not valid",n);return}let c=Number(l),h=o.join(".");if(h.includes("^.")){let p=h.split("."),m=p[p.length-1].replaceAll(".","_|_");p.pop(),h=`${p.join(".")}.${m}`,u.includes("c-")&&(h=h+"_|_"+u);}else h=h.replaceAll(".","_|_");let f=jn(h,e);if(!f)return;a.push({type:"compare",leftValue:bu(f),operator:">=",rightValue:{type:"value",value:c}});}else {let o=jn(s["CNT?"],e);if(!o)return;a.push(bu(o));}else if(typeof s=="object"&&"VAR?"in s)a.push(hn({key:s["VAR?"],defaultType:"storage"},t));else if(typeof s=="object"&&"f()"in s){let o=s["f()"],u=i.find(c=>c.name===o);if(!u){H.error(`Error parsing ink file: Function ${o} is not defined`,n);return}let l=[];for(let c=0;c<u.args;c++)a.length!==0&&l.push(a.pop());a.push({type:"function",functionName:o,args:l.reverse()});}else if(typeof s=="object"&&"^->"in s)s["^->"].includes("$r")||a.push(s["^->"]);else if(typeof s=="object"&&"list"in s){let o=Object.values(s.list).map(u=>u);a.push(o);}else a.push(s);}),a}function Du(n,e,t,r){return Lt(n,e,t,r)}function hn(n,e,t){let{key:r,defaultType:i}=n,a=e.indexOf(r);return a>=0?{type:"value",storageType:"params",storageOperationType:"get",key:a}:{type:"value",storageOperationType:"get",storageType:i,key:r}}function Vr(n,e,t){let{key:r,value:i,defaultType:a,artmeticValue:s}=n,o=e.indexOf(r);if(o>=0)return [{type:"value",storageType:"params",storageOperationType:"set",key:o,value:i}];if(s){if(typeof i=="object"&&"list"in i){let u=Object.values(i.list).map(l=>l);return [{type:"value",storageOperationType:"set",storageType:a,key:r,value:u}]}return [{type:"value",storageOperationType:"set",storageType:a,key:r,value:i}]}else if(typeof i=="object"){if("list"in i&&typeof i.list=="object"){if("origins"in i&&Array.isArray(i.origins)&&i.origins.length>0)return i.origins.reduce(u=>(u.push({type:"value",storageOperationType:"set",storageType:a,key:r,value:Object.values(t.enums[r])}),Object.entries(t.enums[r]).forEach(([l,c])=>{u.push({type:"value",storageOperationType:"set",storageType:a,key:`${r}.${l}`,value:c});}),u),[]);{let u=new Set,l=Object.entries(i.list).reduce((c,[h,f])=>{let[p,m]=h.split(".");return c.push({type:"value",storageOperationType:"set",storageType:a,key:m,value:f}),u.add(p),c},[]);return u.forEach(c=>{l.push({type:"value",storageOperationType:"set",storageType:a,key:c,value:Object.values(t.enums[c])});}),r in t.enums?Object.entries(t.enums[r]).forEach(([c,h])=>{l.push({type:"value",storageOperationType:"set",storageType:a,key:`${r}.${c}`,value:h});}):l.push({type:"value",storageOperationType:"set",storageType:a,key:r,value:Object.values(i.list)}),l}}else if(typeof i=="object"&&"VAR?"in i){if(typeof i["VAR?"]=="string"&&i["VAR?"].includes(".")){let[u,l]=i["VAR?"].split(".");if(u in t.enums&&l in t.enums[u])return [{type:"value",storageOperationType:"set",storageType:a,key:r,value:t.enums[u][l]}]}return [{type:"value",storageOperationType:"set",storageType:a,key:r,value:hn({key:i["VAR?"],defaultType:"storage"},e)}]}}return [{type:"value",storageOperationType:"set",storageType:a,key:r,value:i}]}function bu(n){return {type:"value",storageType:"label",storageOperationType:"get",label:n}}function wu(n,e){return e||new RegExp(`${"_|_".replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}c-\\d+$`).test(n)?"call":"jump"}function is(n,e){if(e){if(typeof e=="string")e.startsWith("^")&&n.push(mt(e));else if(typeof e=="object"&&"type"in e)switch(e.type){case "value":case "function":console.warn("Warning: trying to add a value or function operation as text. This is likely a mistake, so it will be ignored.");break;default:n.push(e);}}}function Au(n,e,t,r,i,a={}){let{isNewLine:s=true,isHashtagScript:o=false,isThreads:u=false}=a;return CC(n,e,t,r,i,{isNewLine:s,isHashtagScript:o,isThreads:u})}function CC(n,e,t,r,i,a){if(!e)return;let{isNewLine:s,isHashtagScript:o=false,isThreads:u}=a;if(o){if(Array.isArray(e)&&e.length>0){let l={goNextStep:true},c=[];try{if(e.length===1&&typeof e[0]=="string"){let h=e[0],f=cn.convertTagTolist(h),p=cn.convertOperation(f,l,{silent:!0});p&&(p.$origin=h,c.push(p));}}catch{}c.length===0&&c.push({type:"operationtoconvert",values:e}),n.push({...l,operations:c});}}else if(typeof e=="string"&&e.startsWith("^")||e&&typeof e=="object"&&"type"in e&&e.type==="value"&&e.storageOperationType==="get"){if(!s&&n.length>0){let l=n[n.length-1];!l.glueEnabled&&!l.operations&&!l.labelToOpen&&(l.glueEnabled=true,l.labelToOpen||(l.goNextStep=true)),n[n.length-1]=l;}typeof e=="string"?n.push(vC(mt(e),r.characterIds)):n.push({dialogue:e});}else if(typeof e=="string"){if(e==="end")n.push({end:"game_end"});else if(e==="done")n.push({end:"label_end",goNextStep:true});else if(e==="<>")if(n.length>0){let l=n[n.length-1];l.glueEnabled=true;let c=l.operations!==void 0&&l.dialogue===void 0;l.labelToOpen||(l.goNextStep=c?true:!s),n[n.length-1]=l;}else n.push({glueEnabled:true,goNextStep:true});}else if(typeof e=="object"){if("type"in e)switch(e.type){case "value":e.storageOperationType==="set"?(typeof e.value=="string"&&e.value.startsWith("^")&&(e.value=mt(e.value)),n.push({goNextStep:true,operations:[e]})):console.warn("Warning: trying to add a value get operation as step. This is likely a mistake, so it will be ignored.");break;case "function":n.push({goNextStep:true,operations:[e]});break;default:if(!s&&n.length>0){let l=n[n.length-1];!l.glueEnabled&&!l.operations&&(l.glueEnabled=true,l.labelToOpen||(l.goNextStep=true)),n[n.length-1]=l;}n.push({conditionalStep:e});}else if("->"in e){let l=s?void 0:true;if(l&&t.includes("c-")&&n.length>0&&n[n.length-1]?.dialogue===void 0&&(l=void 0),!s&&n.length>0){let c=n[n.length-1];c.labelToOpen||(c.goNextStep=true),n[n.length-1]=c;}if(e.params&&e.params.length===0&&delete e.params,e.var)n.push({labelToOpen:{label:hn({key:e["->"],defaultType:"storage"},i),type:u?"call":"jump",params:e.params},glueEnabled:l});else {let c=jn(e["->"],t);if(!c)return;n.push({labelToOpen:{label:c,type:wu(c,u),params:e.params},glueEnabled:l});}}else if("->t->"in e){let l=s?void 0:true;if(l&&t.includes("c-")&&n.length>0&&n[n.length-1]?.dialogue===void 0&&(l=void 0),!s&&n.length>0){let h=n[n.length-1];h.labelToOpen||(h.goNextStep=true),n[n.length-1]=h;}e.params&&e.params.length===0&&delete e.params;let c=jn(e["->t->"],t);if(!c)return;n.push({labelToOpen:{label:c,type:"call",params:e.params},glueEnabled:l});}}}function vC(n,e){let t;if(n.includes(": ")){let r=n.split(": "),i=r[0],a=r.slice(1).join(": ");(e?.has(i)||characters.RegisteredCharacters.has(i))&&(t=i,n=a);}return t?{dialogue:{character:t,text:n}}:{dialogue:n}}function Pu(n,e,t,r=true,i=false){return EC(n,e,t,r,i)}function EC(n,e,t,r,i=false){e&&(typeof e=="string"&&e.startsWith("^")||e&&typeof e=="object"&&"type"in e&&e.type==="value"&&e.storageOperationType==="get"?typeof e=="string"?n.push(mt(e)):n.push(e):typeof e=="object"&&"type"in e&&n.push(e));}function ss(n,e,t,r){if(n.length===0){H.error("Error parsing ink file: Arithmetic statement is not valid",n);return}let i=Lt(n,e,t,r);if(i.length===1){let a=i[0];return a&&typeof a=="object"&&"type"in a?{type:"value",storageType:"logic",storageOperationType:"get",operation:a}:a}}function qn(n,e,t,r="",i,a,s=void 0){let o=[],u="sequential",l=false,c=true;n.forEach(p=>{p==="%"&&(u="loop"),p==="seq"&&(u="random"),p==="MIN"&&(l=true);});let h=n[n.length-1];return Object.keys(h).forEach(p=>{let m=h[p];if(Array.isArray(m)&&m.length>3){m=m.slice(1,m.length-2);let g=[];Bt(m,r,i,g,e,e,t,Ln,s,true,a),g.length===1?o.push(g[0]):o.push({type:"resulttocombine",combine:"cross",secondConditionalItem:g});}else Array.isArray(m)&&m.length===3&&(c=false);}),u==="sequential"?{type:"stepswitch",elements:o,choiceType:u,end:c?"lastItem":void 0,nestedId:s}:l&&u==="random"?{type:"stepswitch",elements:o,choiceType:"sequentialrandom",end:c?"lastItem":void 0,nestedId:s}:{type:"stepswitch",elements:o,choiceType:u}}function Bt(n,e,t,r=[],i,a,s,o,u=void 0,l=true,c=[]){let h=false,f=[],p=false,m=false,g=false,v=[],E=[];if(t.preDialog[e]&&(l=false,i(r,`^${t.preDialog[e].text}`,e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:g}),t.preDialog[e].glue&&i(r,"<>",e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:g}),delete t.preDialog[e]),n.includes("visit")){let d=qn(n,a,s,e,t,c,u);d&&(!l&&r.length>0&&i(r,"<>",e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:g}),i(r,d,e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:g}));return}let b=n[0];if(b&&typeof b=="object"&&"temp="in b){for(;n[0]&&typeof n[0]=="object"&&"temp="in n[0];)c.push(n[0]["temp="]),n.shift();c=c.reverse();}if(n.forEach((d,_)=>{if(m){if(typeof d=="string"&&d==="/#"){let y=[];Bt(E,e,t,y,Pu,Pu,s,o,u,l),i(r,y,e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:g}),m=false,E=[];}else E.push(d);return}else if(h)if(Array.isArray(d))f.push(d);else if(d&&typeof d=="object")"CNT?"in d?_>0&&n[_-1]==="ev"?(p=true,v.push(d)):p?v.push(d):(f.push(d),l=false):"VAR="in d||"temp="in d?Vr({key:"VAR="in d?d["VAR="]:d["temp="],value:n[_-1],defaultType:"VAR="in d?"storage":"tempstorage"},c,t).forEach(S=>{if(S.value&&typeof S.value=="string"&&S.value==="/str"&&(S.value=n[_-2]),S.value&&typeof S.value=="object"&&"^->"in S.value&&(S.value=S.value["^->"]),f.length>1){let w=ss(f,e,c,t);f=[],w&&typeof w=="object"&&"type"in w&&w.type==="value"&&"storageType"in w&&w.storageType==="logic"&&(S.value=w.operation);}(typeof S.key!="string"||!S.key.includes("$r"))&&(i(r,S,e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:g}),l=true);}):"VAR?"in d?f.push(d):"^->"in d?d["^->"].includes("$r")||f.push(d):("f()"in d||"list"in d&&typeof d.list=="object")&&f.push(d);else switch(d){case "/ev":p&&v.push(d),h=false,f.push(d);break;case "out":if(f.length>0){let y=f[f.length-1];if(y&&typeof y=="object"&&"VAR?"in y){f.pop();let S=hn({key:y["VAR?"],defaultType:"storage"},c);i(r,S,e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:g});}else {let S=[];for(;f.length>0&&f[f.length-1]!=="/ev";)S.push(f.pop());S=S.reverse();let w=ss(S,e,c,t);f=[],w&&typeof w=="object"&&"type"in w&&w.type==="value"&&"storageType"in w&&w.storageType==="logic"?i(r,{storageOperationType:"get",storageType:"logic",operation:w.operation,type:"value"},e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:g}):(i(r,"<>",e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:g}),w=`^${w}`,i(r,w,e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:g}));}l=false;}break;case "pop":{let y=f[f.length-1];if(y&&typeof y=="object"&&"f()"in y){let S=[];for(;f.length>0&&f[f.length-1]!=="/ev";)S.push(f.pop());S=S.reverse();let w=Lt(S,e,c,t);f=[],w.forEach(A=>{A&&typeof A=="object"&&"type"in A&&A.type==="function"?i(r,A,e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:g}):H.warn("Unhandled case: value is not a function",A);}),l=false;}else f.push(d);return}default:f.push(d);}else if(typeof d=="string")if(d.startsWith("^"))i(r,d,e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:g}),l=false;else if(d==="ev")h=true;else if(d===`
66
- `)l=true;else if(d==="done"||d==="end")i(r,d,e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:g}),l=false;else if(d==="<>")i(r,d,e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:g}),l=false;else if(d==="nop"&&p){let y=Vf(v,a,s,e,t,c,u);y&&i(r,y,e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:g}),p=false,v=[];}else d==="#"?m=true:d==="thread"&&(g=true);else if(Array.isArray(d))if(p)v.push(d);else if(d.length>1&&typeof d[d.length-2]=="object"&&d[d.length-2]&&"c"in d[d.length-2]&&typeof d[d.length-1]=="object"&&d[d.length-1]&&"b"in d[d.length-1]){f.pop();let y=[],S=[];for(;f.length>0&&f[f.length-1]!=="/ev";)y.push(f.pop());v=[...v,...y.reverse()],p=true,S.push(d.pop()),S.push(d.pop()),v=[...v,...d],v.push(S);}else if(d.length>1&&typeof d[d.length-1]=="object"&&d[d.length-1]&&"#n"in d[d.length-1]){let y=d.pop();if(!y){H.error("Error parsing ink file: el is undefined");return}let S=y["#n"];delete y["#n"],d.push(y),i(r,{"->":e?e+"_|_"+S:S},e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:g}),s({[S]:d},e,t);}else Bt(d,e,t,r,i,a,s,o,u,l,c);else if(d&&typeof d=="object")if("->"in d&&typeof d["->"]=="string"&&!new RegExp(/^\.\^\.\^\.\d\.s$/).test(d["->"])){let y=[];f.length>0&&(y=Du(["ev",...f],e,c,t)),d.params=y,i(r,d,e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:g}),l=false;}else if("->t->"in d&&typeof d["->t->"]=="string"&&!new RegExp(/^\.\^\.\^\.\d\.s$/).test(d["->t->"])){let y=[];f.length>0&&(y=Du(["ev",...f],e,c,t)),d.params=y,i(r,d,e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:g}),l=false;}else if("*"in d&&typeof d["*"]=="string")d["*"].includes("c")&&(f.push(d),l=false);else if("s"in d&&Array.isArray(d.s))f.push(d),l=false;else if("CNT?"in d)f.push(d),l=false;else if("VAR="in d||"temp="in d){let y="VAR="in d?d["VAR="]:d["temp="],S,w=[];if(y!=="$r"){for(f.pop(),f[f.length-1]==="/ev"&&f.pop();f.length>0&&f[f.length-1]!=="/ev";)w.push(f.pop());w=w.reverse(),S=ss(w,e,c,t),f=[],Vr({key:y,value:S,defaultType:"VAR="in d?"storage":"tempstorage",artmeticValue:true},c,t).forEach(F=>{(F.value!==void 0||F.value!==null)&&i(r,F,e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:g});}),l=false;}}else s(d,e,t);}),o(f,r,e,t,c),e.includes("_|_")&&r.length===2){let d=r[0],_=r[1];d&&_&&typeof d=="object"&&"dialogue"in d&&typeof _=="object"&&"labelToOpen"in _&&d.dialogue===" "&&_.labelToOpen&&(r.shift(),delete _.glueEnabled,r[0]=_);}}function Ou(n,e,t,r,i,a){if(e.length===0)return;let s=Lt(e,r,t,i);if(s.length===1){let o={type:"ifelse",condition:s[0],then:n,else:a};return o.else||delete o.else,o}else if(s.length>1){let o={type:"ifelse",condition:{type:"union",unionType:"and",conditions:s},then:n,else:a};return o.else||delete o.else,o}}function Vf(n,e,t,r,i,a,s=void 0){if(n.length===0){H.error("Error parsing ink file: Conditional statement is not valid",n);return}let o=[],u=[];if(n.forEach(h=>{Array.isArray(h)?u.push(h):typeof h=="string"&&h==="du"?i.du?o.push(i.du):i.du=o[o.length-1]:(typeof h!="string"||h!=="/ev")&&o.push(h);}),u.length===0){H.error("Error parsing ink file: Conditional statement is not valid",u);return}let l=Tu(u[0],e,t,`${r}${"_|_"}then`,i,a,`${s||""}then`),c;return u.length===2?c=Tu(u[1],e,t,`${r}${"_|_"}else`,i,a,`${s||""}else`):u.length>2?(u.shift(),u.push("nop"),u=[{b:u}],c=Tu(u,e,t,r,i,a,`${s||""}else`)):c=void 0,i.du=void 0,Ou(l,o,a,r,i,c)}function Tu(n,e,t,r,i,a,s=void 0){let o=[];for(let l of n)typeof l=="object"&&"b"in l&&(l.b=l.b.filter(c=>c!==null&&!(typeof c=="object"&&"->"in c&&new RegExp(/.*\.[0-9]/).test(c["->"]))),Bt(l.b,r,i,o,e,e,t,Ln,s,true,a));return o.length===1?o[0]:{type:"resulttocombine",combine:"cross",secondConditionalItem:o}}function xu(n="",e=""){let t=Array.isArray(n)?n:[n],r=Array.isArray(e)?e:[e];return [...new Set([...t,...r])]}function Ln(n,e,t,r,i){if(n.length>0){let a={};jf(n,a,i,r);for(let[s,o]of Object.entries(a)){let u=t+"_|_"+s,l={text:o.text.length===1?o.text[0]:o.text,label:u,props:{},type:wu(u,false),oneTime:o.onetime};o.text.length===0&&(l.onlyHaveNoChoice=true,l.autoSelect=true),l.oneTime===false&&delete l.oneTime;let c=Ou(l,o.conditions,i,t,r)||l,h=e[e.length-1];if(typeof h=="object"&&h&&"type"in h&&(h={conditionalStep:h}),e.length>0&&typeof h=="object"&&h&&"choices"in h&&h.choices){let f=h.choices;f&&Array.isArray(f)?f.push(c):H.error("Unhandled case: choices is PixiVNJsonConditionalStatements<PixiVNJsonChoices> | undefined",o,f),h.choices=f.sort((p,m)=>{try{let g=p.label.split("."),v=g[g.length-1].replaceAll(".","_|_"),E=m.label.split("."),b=E[E.length-1].replaceAll(".","_|_");if(v.includes("c-")&&b.includes("c-")){let d=v.split("c-")[1],_=Number(d),y=b.split("c-")[1],S=Number(y);return _-S}}catch{}return 0});}else e.push({choices:[c]});o.preDialog&&(r.preDialog[u]={...o.preDialog});}}}function jf(n,e,t,r,i){let a=[],s="",o="",u=false,l=[];for(let c=0;c<n.length;c++){let h=n[c];if(typeof h=="string")h.startsWith("^")?a.push(mt(h)):If.includes(h)&&l.push(h);else if(Array.isArray(h)&&h.includes("visit")){let f=qn(h,is,(p,m,g)=>{},i,r,t);a.push(f);}else if(h&&typeof h=="object")if("*"in h&&typeof h["*"]&&typeof h["*"]=="string")h["*"].includes("c")&&(s=`c${h["*"].split("c")[1]}`,h.flg&16&&(u=true));else if("s"in h&&Array.isArray(h.s)){let f=qf(h.s),p=h.s.includes("<>");f&&(i&&e[i]?(e[i].preDialog={text:f,glue:p},e[i].text=xu(f,e[i].text)):(a.push(f),o=f));}else ("CNT?"in h||"VAR?"in h)&&l.push(h);else l.push(h);if(s){e[s]?e[s].text=xu(a,e[s].text):e[s]={text:a,onetime:u,conditions:l},o&&(e[s].preDialog={text:o,glue:false});let f=n.slice(c+1);jf(f,e,t,r,s);return}}}function qf(n){for(let e of n)if(typeof e=="string"){if(e.startsWith("^"))return mt(e)}else if(Array.isArray(e)){let t=qf(e);if(t)return t}}var Fu;(i=>{function n(a,s={}){let{labelToRemove:o=[],initialVarsToRemove:u=[],enums:l={},functions:c=[],preDialog:h={},characterIds:f}=s,p={$schema:constants.PIXIVNJSON_SCHEMA_URL};if(p.labels=e(a.root,{labelToRemove:o,initialVarsToRemove:u,enums:l,functions:c,preDialog:h,characterIds:f}),p.labels&&es in p.labels){let m=p.labels[es];delete p.labels[es],m.forEach(g=>{g.operations&&(p.initialOperations=p.initialOperations?[...p.initialOperations,...g.operations]:[...g.operations]);});}if(p.labels&&on in p.labels){let m=p.labels[on];delete p.labels[on],m.forEach(g=>{g.operations&&(p.initialOperations=p.initialOperations?[...p.initialOperations,...g.operations]:[...g.operations]);});}return o.forEach(m=>{p.labels&&m in p.labels&&delete p.labels[m];}),u.forEach(m=>{p.initialOperations&&(p.initialOperations=p.initialOperations.filter(g=>!(g.type==="value"&&g.key===m)));}),p}i.inkToJson=n;function e(a,s){try{let o={};return t(a,o,s),o}catch(o){H.error("Error parsing ink file",o);}}function t(a,s,o){for(let u of a)if(u)if(Array.isArray(u))if(u.includes("visit")){let l=qn(u,is,(c,h,f)=>{},"",o,[]);l&&(o.externalSwitch=l);}else t(u,s,o);else typeof u=="object"&&(u&&"VAR="in u&&o.externalSwitch&&(s[on]||(s[on]=[]),s[on].push({operations:Vr({defaultType:"storage",key:u["VAR="],value:o.externalSwitch},[],o)})),r(u,s,"",o));}function r(a,s,o="",u){if(a!==null){for(let[l,c]of Object.entries(a))if(Array.isArray(c)){let h=[],f={},p=(o?o+"_|_":"")+l;Bt(c,p,u,h,Au,Au,(m,g,v)=>{r(m,f,g,v);},Ln);for(let[m,g]of Object.entries(f))s[m]=g;h.length>0&&(s[p]=h);}}}})(Fu||={});var yf=Ir(gg()),G0=Ir(Hg()),J0=Ir(q0()),H0=Ir(ar()),mO=/(?:^|<>)\s*#\s*([^\r\n]+)/g,gO=/^=+[ \t]+(?:function[ \t]+)?(\w+)/gm,yO=new Set(["DONE","END"]),CO="_|_",L0=new Map;function U0(n,e){let t=JSON.stringify([e,n]),r=L0.get(t);if(r)return r;let i=new RegExp(n,e);return L0.set(t,i),i}function Qi(n,e){if(!e||typeof e!="object")return false;let t=e,r=t.anyOf;if(Array.isArray(r))return r.some(s=>Qi(n,s));let i=t.oneOf;if(Array.isArray(i))return i.some(s=>Qi(n,s));let a=t.allOf;if(Array.isArray(a))return a.every(s=>Qi(n,s));if(typeof t.const=="string")return n===t.const;if(Array.isArray(t.enum))return t.enum.some(s=>typeof s=="string"&&s===n);if(t.type!=="string"||typeof t.minLength=="number"&&n.length<t.minLength||typeof t.maxLength=="number"&&n.length>t.maxLength)return false;if(typeof t.pattern=="string")try{if(!U0(t.pattern,"").test(n))return !1}catch{return false}return true}function cu(n,e){if(!e||typeof e!="object")return false;let t=e,r=t.anyOf;if(Array.isArray(r))return r.some(o=>cu(n,o));let i=t.oneOf;if(Array.isArray(i))return i.some(o=>cu(n,o));let a=t.allOf;if(Array.isArray(a))return a.every(o=>cu(n,o));if(t.type!=="array"||typeof t.minItems=="number"&&n.length<t.minItems||typeof t.maxItems=="number"&&n.length>t.maxItems)return false;let s=Array.isArray(t.prefixItems)?t.prefixItems:[];if(n.length<s.length)return false;for(let o=0;o<s.length;o++)if(!Qi(n[o],s[o]))return false;return n.length===s.length?true:t.items===false||typeof t.items>"u"?false:t.items===true?true:n.slice(s.length).every(o=>Qi(o,t.items))}function pf(n,e){if(e.type==="regexp")try{let t=U0(e.source,e.flags);return t.lastIndex=0,t.test(n.join(" "))}catch{return false}return e.type==="literal"?n.join(" ")===e.value:cu(n,e.schema)}function hu(n){if(!n||typeof n!="object")return [];let e=n;if(Array.isArray(e.anyOf))return e.anyOf.flatMap(hu);if(Array.isArray(e.oneOf))return e.oneOf.flatMap(hu);if(Array.isArray(e.allOf)){let t={};for(let r of e.allOf)r&&typeof r=="object"&&Object.assign(t,r);return hu(t)}return e.type==="array"&&Array.isArray(e.prefixItems)?[e]:[]}function B0(n,e){if(n===e)return 1;let t=Math.max(n.length,e.length);return t===0?1:Math.max(0,1-z0(n,e)/t)}function vO(n,e){if(e&&typeof e=="object"){let t=e;if(typeof t.const=="string")return {weight:2,matched:n===void 0?0:2*B0(n,t.const)};if(Array.isArray(t.enum))return {weight:2,matched:2*(n===void 0?0:Math.max(0,...t.enum.filter(i=>typeof i=="string").map(i=>B0(n,i))))}}return {weight:1,matched:n===void 0?0:1}}function EO(n,e){let t=Array.isArray(e.prefixItems)?e.prefixItems:[],r=Math.min(t.length,n.length),i=0,a=0,s=false;for(let o=0;o<r;o++){let u=vO(n[o],t[o]);i+=u.weight,a+=u.matched,u.weight>1&&(s=true);}return {score:i===0?0:a/i,hasDiscriminant:s}}var _O=.8,W0=new Map;function SO(n){let e=JSON.stringify(n),t=W0.get(e);if(t)return t;let r=new G0.default({strict:false,allErrors:true}).compile(n);return W0.set(e,r),r}function bO(n){if("items"in n)return n;let e=Array.isArray(n.prefixItems)?n.prefixItems.length:0;return {...n,minItems:e,maxItems:e,items:false}}function DO(n,e){let[t]=mu(n.instancePath);if(t!==void 0&&/^\d+$/.test(t)){let r=Number(t);if(r<e.length)return e[r]}return Cf(n)}function wO(n){return n.keyword==="const"?`must be "${n.params.allowedValue}"`:n.keyword==="enum"?`must be one of ${(n.params.allowedValues??[]).map(t=>`"${t}"`).join(", ")}`:n.message??"invalid value"}function mf(n){let e=n.split(/\r?\n/),t=[];for(let r=0;r<e.length;r++){let i=e[r];for(let a of i.matchAll(mO)){let s=(a[1]??"").trim();if(!s)continue;let o=cn.convertTagTolist(s,{mergeInkVariables:true});o.length!==0&&t.push({line:r+1,command:s,tokens:o});}}return t}function Cf(n){return n.keyword==="required"&&typeof n.params?.missingProperty=="string"?n.params.missingProperty:n.keyword==="additionalProperties"&&typeof n.params?.additionalProperty=="string"?n.params.additionalProperty:n.instancePath.split("/").pop()||"(root)"}function z0(n,e){let t=n.length+1,r=e.length+1,i=Array.from({length:t},(a,s)=>[s,...Array(r-1).fill(0)]);for(let a=1;a<r;a++)i[0][a]=a;for(let a=1;a<t;a++)for(let s=1;s<r;s++){let o=n[a-1]===e[s-1]?0:1;i[a][s]=Math.min(i[a-1][s]+1,i[a][s-1]+1,i[a-1][s-1]+o);}return i[t-1][r-1]}function AO(n,e){let t,r=1/0;for(let a of e){let s=z0(n,a);s<r&&(r=s,t=a);}let i=Math.max(1,Math.floor(n.length/3));return r<=i?t:void 0}function PO(n,e){if(n.keyword==="additionalProperties"&&typeof n.params?.additionalProperty=="string"){let t=n.params.additionalProperty,r=e&&AO(t,e),i=r?` (did you mean "${r}"?)`:"";return `has an unrecognised property "${t}"${i}`}return n.message??"invalid value"}function mu(n){return n.split("/").filter(Boolean).map(e=>e.replace(/~1/g,"/").replace(/~0/g,"~"))}function TO(n,e){let t=n,r,i=a=>{a&&typeof a=="object"&&typeof a.$origin=="string"&&(r=a.$origin);};i(t);for(let a of mu(e)){if(t===null||typeof t!="object")break;t=t[a],i(t);}return r}function OO(n,e){let t=mu(e);for(let r=t.length;r>=0;r--){let i=t.slice(0,r),a=n;for(let s of i){if(a===null||typeof a!="object"){a=void 0;break}a=a[s];}if(a&&typeof a=="object"&&!Array.isArray(a)&&typeof a.type=="string")return {path:`/${i.map(o=>o.replace(/~/g,"~0").replace(/\//g,"~1")).join("/")}`,node:a}}}function fu(n,e,t=new Set){if(!n||typeof n!="object")return n;let r=n.$ref;if(typeof r!="string")return n;let i=r.match(/^#\/definitions\/([^/]+)$/);return !i?.[1]||t.has(i[1])||!(i[1]in e)?{}:(t.add(i[1]),fu(e[i[1]],e,t))}function pu(n,e){let t=fu(n,e);if(!t||typeof t!="object")return;let r=t;if(!(r.anyOf||r.oneOf)){if(Array.isArray(r.allOf)){let i={properties:{},required:[]};for(let a of r.allOf){let s=pu(a,e);if(!s)return;Object.assign(i.properties,s.properties),i.required.push(...s.required);}return i}return {properties:r.properties??{},required:r.required??[]}}}function M0(n,e){if(!n||typeof n!="object")return true;let t=n;return "const"in t?t.const===e:Array.isArray(t.enum)?t.enum.includes(e):true}function xO(n,e){let t=n.definitions??{},r=[];for(let[i,a]of Object.entries(t)){let s=pu(a,t);if(!s)continue;let o=s.properties.type;o&&typeof o=="object"&&("const"in o||Array.isArray(o.enum))&&M0(o,e.type)&&M0(s.properties.operationType,e.operationType)&&r.push(i);}return r}function FO(n,e,t){let r=n.definitions??{},i={definitions:r,...r[e]},a=new yf.default({strict:false,allErrors:true}).compile(i);return a(t)?[]:a.errors??[]}function NO(n,e,t){let r=n.definitions??{},i=fu(r[e],r);for(let a of mu(t)){let o=pu(i,r)?.properties[a];if(o===void 0)return [];i=fu(o,r);}return Object.keys(pu(i,r)?.properties??{})}function du(n){let e=n.map(o=>o.instancePath),t=o=>e.some(u=>u!==o&&u.startsWith(`${o}/`)),r=n.filter(o=>!t(o.instancePath)),i=new Map;for(let o of r){let u=i.get(o.instancePath)??[];u.push(o),i.set(o.instancePath,u);}let a=[];for(let o of i.values()){let u=o.filter(l=>l.keyword!=="anyOf"&&l.keyword!=="oneOf");a.push(...u.length>0?u:o);}let s=new Set;return a.filter(o=>{let u=`${Cf(o)}|${o.message}`;return s.has(u)?false:(s.add(u),true)})}function gf(n,e,t){return n.map(r=>({instancePath:r.instancePath||"(root)",element:Cf(r),message:PO(r,t?.(r)),origin:TO(e,r.instancePath)}))}function IO(n,e,t){let r=n.map(c=>c.instancePath),i=c=>r.some(h=>h!==c&&h.startsWith(`${c}/`)),a=n.filter(c=>!i(c.instancePath)),s=t&&typeof t=="object"?t:void 0,o=new Map,u=[];for(let c of a){let h=s?OO(e,c.instancePath):void 0;if(!h){u.push(c);continue}let f=o.get(h.path);f?f.errors.push(c):o.set(h.path,{node:h.node,errors:[c]});}let l=gf(du(u),e);for(let[c,h]of o){let f=s?xO(s,h.node):[],p=f.length===1?f[0]:void 0;if(!p||!s){l.push(...gf(du(h.errors),e));continue}let g=du(FO(s,p,h.node)).map(v=>({...v,instancePath:`${c}${v.instancePath}`}));l.push(...gf(g,e,v=>NO(s,p,v.instancePath.slice(c.length))));}return l}var vf;(h=>{function n(f,p={labelToRemove:[],initialVarsToRemove:[],functions:[],enums:{}}){let m=[];try{return {json:new J0.Compiler(f,{errorHandler:(b,d)=>{let _=b.replace(/^[A-Z]+: line \d+: ?/,""),y=b.match(/line (\d+)/);m.push({message:_,type:d,line:y?Number(y[1]):-1});},countAllVisits:!0,fileHandler:{ResolveInkFilename:b=>b,LoadInkFileContents:()=>""},pluginNames:[],sourceFilename:null}).Compile().ToJson()||"",issues:m}}catch{let v=false,E={...p,textSource:f};return e(m,()=>{v=true;},E),v?n(E.textSource,p):{issues:m}}}h.compile=n;function e(f,p,m){let{functions:g,initialVarsToRemove:v,labelToRemove:E}=m,b=f.find(d=>d.type===H0.ErrorType.Error);if(b){if(b.message.includes("Divert target not found")){let d=b.message.match(/Divert target not found: '-> (\w+)'/);if(d?.[1]){let _=d[1],y=`
64
+ `+v+"]";}return i.pop(),a=v,b}},fC={parse:aC,stringify:dC},pC=fC,$r=pC;var Pf="\xA7SPACE\xA7",Tf="\xA7DOUBLE_QUOTES\xA7",xf="\xA7QUOTES\xA7",Of="SPECIAL_\xA7QUOTES\xA7",Ff="\xA7CURLY_BRACKETS1\xA7",mC="\xA7INK_VAR\xA7",Nf="\xA7CURLY_BRACKETS2\xA7",cn;(b=>{let n=[],e=[];async function t(d,_){for(let y=0;y<n.length;y++)try{let{validation:S}=n[y].opts;if(S instanceof RegExp){if(!S.test(d.join(" ")))continue}else if(S instanceof zod.ZodType&&!S.safeParse(d).success)continue;let D=await n[y].fn(d,_,h);if(D===!0||typeof D=="string")return D}catch{}return false}function r(d,_={name:"custom-command",validation:/^/}){n.unshift({fn:d,opts:_});}b.add=r;function i(){return [...e.map(d=>d.opts),...n.map(d=>d.opts)]}b.info=i;function a(d,_){e.unshift({fn:d,opts:_});}b.addMapper=a;function s(){n.length=0;}b.clear=s;function o(){e.length=0;}b.clearMappers=o;async function u(d,_,y){try{let S=l(d),D=await t(S,y);return D===!0?void 0:typeof D=="string"?(D.startsWith("#")&&(D=D.substring(1)),await b.run(D,_,y)):c(S,_)}catch(S){throw H.error("Error parsing ink hashtag-command",d),S}}b.run=u;function l(d,_){if(d=d.replaceAll('\\"',Tf),d=d.replaceAll("\\'",xf),d=d.replaceAll("\\`",Of),d=d.replaceAll("\\{",Ff),d=d.replaceAll("\\}",Nf),_?.mergeInkVariables){let A;do A=d,d=d.replace(/\{[^{}:]*\}/g,mC);while(d!==A)}d=d.replaceAll("{"," { "),d=d.replaceAll("}"," } "),d=d.replaceAll(Ff,"{"),d=d.replaceAll(Nf,"}");let y=[],S,D="";for(let A=0;A<d.length;A++){let F=d[A];F==='"'||F==="'"||F==="`"?S===void 0?(y.push(D),D="",S=F,D+=F):S===F?(S=void 0,D+=F,y.push(D),D=""):D+=F:D+=F;}return D!==""&&y.push(D),y.forEach((A,F)=>{F%2===1&&(y[F]=A.replaceAll(" ",Pf));}),d=y.join(""),y=d.split(" ").filter(A=>A!==""),y=y.map(A=>A.replaceAll(Pf," ").replaceAll(Tf,'"').replaceAll(xf,"'").replaceAll(Of,"`")),y=m(y),y=y.flatMap(A=>E(A)),y=y.map(A=>A.startsWith('"')&&A.endsWith('"')||A.startsWith("'")&&A.endsWith("'")||A.startsWith("`")&&A.endsWith("`")?A.slice(1,-1):A),y}b.convertTagTolist=l;function c(d,_,y){for(let S of e){let{validation:D}=S.opts,A=false;if(D instanceof RegExp?A=D.test(d.join(" ")):D instanceof zod.ZodType&&(A=D.safeParse(d).success),A)return S.fn(d,_)}y?.silent||H.error("The operation is not valid",d);}b.convertOperation=c;function h(d){if(d.length===0)return {};if(d.length%2!==0)throw H.error("The props list must have a pair number of elements",d),new Error("The props list must have a pair number of elements");let _="{";d.forEach((y,S)=>{if(S%2===0)_+=`"${y}": `;else {switch(y){case "null":case "undefined":case "true":case "false":_+=`${y}`;break;default:p(y)?(y=f(y),_+=`"${y}"`):y.startsWith("{")&&y.endsWith("}")?_+=`${y}`:y.startsWith('"')&&y.endsWith('"')?_+=`${y}`:Number.isNaN(parseFloat(y))?_+=`"${y}"`:_+=`${y}`;}S<d.length-1&&(_+=", ");}}),_+="}";try{return $r.parse(_)}catch(y){throw H.error("Error parsing ink json",_),y}}b.convertListStringToObj=h;function f(d){return d.startsWith('"')&&d.endsWith('"')||d.startsWith("'")&&d.endsWith("'")||d.startsWith("`")&&d.endsWith("`")?d.substring(1,d.length-1):d}function p(d){return !!(d.startsWith('"')&&d.endsWith('"')||d.startsWith("'")&&d.endsWith("'")||d.startsWith("`")&&d.endsWith("`"))}function m(d){return g(d).tokens}b.mergeJsonBlocks=m;function g(d){let _=[],y=false;for(let S=0;S<d.length;S++){let D=d[S];if(D!=="{"){_.push(D);continue}let A=v(d,S);if(A===-1){_.push(D);continue}let F=g(d.slice(S+1,A)),Z=["{",...F.tokens,"}"],be=Z.join(" ");if(!F.hasInvalidMatchedBlock)try{$r.parse(be),_.push(be),S=A;continue}catch{}y=true,_.push(...Z),S=A;}return {tokens:_,hasInvalidMatchedBlock:y}}function v(d,_){let y=0;for(let S=_;S<d.length;S++)if(d[S]==="{")y++;else if(d[S]==="}"&&(y--,y===0))return S;return -1}function E(d){if(d==="["||d==="]")return [d];let _=0,y=d.length,S=[];for(;_<y&&d[_]==="[";)S.push("["),_++;let D=[];for(;y>_&&d[y-1]==="]";)D.unshift("]"),y--;let A=d.slice(_,y);return A===""?[...S,...D]:[...S,A,...D]}})(cn||={});var If=["+","-","/","*","%","_","==",">","<",">=","<=","!=","!","&&","||","MIN","MAX"],kf=["+","-","/","*","%","POW","RANDOM","L^"],Rf=["INT","FLOOR","FLOAT"];function jn(n,e){if(n.endsWith(".s"))return;if(new RegExp(/.*\.[0-9]+\..*$/).test(n)&&(n=n.split(".").filter(i=>!i.match(/^[0-9]+$/)).join("."),!n.startsWith(".")))return n.replaceAll(".","_|_");if(!new RegExp(/^\.\^.*$/).test(n)&&n.includes("g-")){let r=n.split("g-");return Su(e)+"_|_"+"g-"+r[r.length-1]}let t=0;for(;new RegExp(/^\.\^.*$/).test(n);)t++,n=n.substring(2);if(t=t-1,new RegExp(/^\..*$/).test(n)&&e){let r=n.substring(1);return Su(e,t)+"_|_"+r.replaceAll(".","_|_")}return n.replaceAll(".","_|_")||Su(e,t).replaceAll(".","_|_")}function Su(n,e=0){let t=n.split("_|_");for(;t.length>1&&e>0;)t.pop()?.includes("g-")&&e--,e--;return t.join("_|_")}var $f="\xA7DOUBLE_SLASH_CONVERTOR\xA7";function mt(n){return n.startsWith("^")&&(n=n.substring(1)),n=n.replaceAll("\\\\",$f),n=n.replaceAll("\\n",`
65
+ `),n=n.replaceAll("\\t"," "),n=n.replaceAll(" "," "),n=n.replaceAll($f,"\\\\"),n}function Lt(n,e,t,r){let{functions:i}=r;n=n.map(s=>{if(typeof s=="string")switch(s){case "rnd":return "RANDOM";case "?":return "CONTAINS"}return s});let a=[];return n.forEach(s=>{if(typeof s=="string")switch(s){case "&&":case "||":if(a.length>=2){let o={type:"union",unionType:s==="&&"?"and":"or",conditions:[a[a.length-2],a[a.length-1]]};a.pop(),a.pop(),a.push(o);}break;case "!":if(a.length===0)H.error("Error parsing ink file: Conditional statement is not valid",n);else {let o={type:"union",unionType:"not",condition:a[a.length-1]};a[a.length-1]=o;}break;case "!?":if(a.length>1){let o={type:"union",unionType:"not",condition:{type:"compare",operator:"CONTAINS",leftValue:a[a.length-2],rightValue:a[a.length-1]}};a.pop(),a.pop(),a.push(o);}else H.error("Error parsing ink file: Conditional statement is not valid",n);break;default:if(constants.PixiVNJsonComparationOperators.includes(s))if(a.length<2)H.error("Error parsing ink file: Conditional statement is not valid",n);else {let o={type:"compare",operator:s,rightValue:a[a.length-1],leftValue:a[a.length-2]};a.pop(),a.pop(),a.push(o);}else if(kf.includes(s))if(a.length<2)H.error("Error parsing ink file: Conditional statement is not valid",n);else {s==="L^"&&(s="INTERSECTION");let o={type:"arithmetic",operator:s,rightValue:a[a.length-1],leftValue:a[a.length-2]};a.pop(),a.pop(),a.push(o);}else if(Rf.includes(s)){let o={type:"arithmeticsingle",operator:s,leftValue:a[a.length-1]};a.pop(),a.push(o);}else s.startsWith("^")&&a.push(mt(s));}else if(typeof s=="object"&&"CNT?"in s)if(new RegExp(/.*\.[0-9]\..*/).test(s["CNT?"])){let o=s["CNT?"].split("."),u=o.pop(),l=o.pop();if(l===void 0||u===void 0){H.error("Error parsing ink file: Conditional statement is not valid",n);return}let c=Number(l),h=o.join(".");if(h.includes("^.")){let p=h.split("."),m=p[p.length-1].replaceAll(".","_|_");p.pop(),h=`${p.join(".")}.${m}`,u.includes("c-")&&(h=h+"_|_"+u);}else h=h.replaceAll(".","_|_");let f=jn(h,e);if(!f)return;a.push({type:"compare",leftValue:bu(f),operator:">=",rightValue:{type:"value",value:c}});}else {let o=jn(s["CNT?"],e);if(!o)return;a.push(bu(o));}else if(typeof s=="object"&&"VAR?"in s)a.push(hn({key:s["VAR?"],defaultType:"storage"},t));else if(typeof s=="object"&&"f()"in s){let o=s["f()"],u=i.find(c=>c.name===o);if(!u){H.error(`Error parsing ink file: Function ${o} is not defined`,n);return}let l=[];for(let c=0;c<u.args;c++)a.length!==0&&l.push(a.pop());a.push({type:"function",functionName:o,args:l.reverse()});}else if(typeof s=="object"&&"^->"in s)s["^->"].includes("$r")||a.push(s["^->"]);else if(typeof s=="object"&&"list"in s){let o=Object.values(s.list).map(u=>u);a.push(o);}else a.push(s);}),a}function wu(n,e,t,r){return Lt(n,e,t,r)}function hn(n,e,t){let{key:r,defaultType:i}=n,a=e.indexOf(r);return a>=0?{type:"value",storageType:"params",storageOperationType:"get",key:a}:{type:"value",storageOperationType:"get",storageType:i,key:r}}function Vr(n,e,t){let{key:r,value:i,defaultType:a,artmeticValue:s}=n,o=e.indexOf(r);if(o>=0)return [{type:"value",storageType:"params",storageOperationType:"set",key:o,value:i}];if(s){if(typeof i=="object"&&"list"in i){let u=Object.values(i.list).map(l=>l);return [{type:"value",storageOperationType:"set",storageType:a,key:r,value:u}]}return [{type:"value",storageOperationType:"set",storageType:a,key:r,value:i}]}else if(typeof i=="object"){if("list"in i&&typeof i.list=="object"){if("origins"in i&&Array.isArray(i.origins)&&i.origins.length>0)return i.origins.reduce(u=>(u.push({type:"value",storageOperationType:"set",storageType:a,key:r,value:Object.values(t.enums[r])}),Object.entries(t.enums[r]).forEach(([l,c])=>{u.push({type:"value",storageOperationType:"set",storageType:a,key:`${r}.${l}`,value:c});}),u),[]);{let u=new Set,l=Object.entries(i.list).reduce((c,[h,f])=>{let[p,m]=h.split(".");return c.push({type:"value",storageOperationType:"set",storageType:a,key:m,value:f}),u.add(p),c},[]);return u.forEach(c=>{l.push({type:"value",storageOperationType:"set",storageType:a,key:c,value:Object.values(t.enums[c])});}),r in t.enums?Object.entries(t.enums[r]).forEach(([c,h])=>{l.push({type:"value",storageOperationType:"set",storageType:a,key:`${r}.${c}`,value:h});}):l.push({type:"value",storageOperationType:"set",storageType:a,key:r,value:Object.values(i.list)}),l}}else if(typeof i=="object"&&"VAR?"in i){if(typeof i["VAR?"]=="string"&&i["VAR?"].includes(".")){let[u,l]=i["VAR?"].split(".");if(u in t.enums&&l in t.enums[u])return [{type:"value",storageOperationType:"set",storageType:a,key:r,value:t.enums[u][l]}]}return [{type:"value",storageOperationType:"set",storageType:a,key:r,value:hn({key:i["VAR?"],defaultType:"storage"},e)}]}}return [{type:"value",storageOperationType:"set",storageType:a,key:r,value:i}]}function bu(n){return {type:"value",storageType:"label",storageOperationType:"get",label:n}}function Du(n,e){return e||new RegExp(`${"_|_".replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}c-\\d+$`).test(n)?"call":"jump"}function is(n,e){if(e){if(typeof e=="string")e.startsWith("^")&&n.push(mt(e));else if(typeof e=="object"&&"type"in e)switch(e.type){case "value":case "function":console.warn("Warning: trying to add a value or function operation as text. This is likely a mistake, so it will be ignored.");break;default:n.push(e);}}}function Au(n,e,t,r,i,a={}){let{isNewLine:s=true,isHashtagScript:o=false,isThreads:u=false}=a;return CC(n,e,t,r,i,{isNewLine:s,isHashtagScript:o,isThreads:u})}function CC(n,e,t,r,i,a){if(!e)return;let{isNewLine:s,isHashtagScript:o=false,isThreads:u}=a;if(o){if(Array.isArray(e)&&e.length>0){let l={goNextStep:true},c=[];try{if(e.length===1&&typeof e[0]=="string"){let h=e[0],f=cn.convertTagTolist(h),p=cn.convertOperation(f,l,{silent:!0});p&&(p.$origin=h,c.push(p));}}catch{}c.length===0&&c.push({type:"operationtoconvert",values:e}),n.push({...l,operations:c});}}else if(typeof e=="string"&&e.startsWith("^")||e&&typeof e=="object"&&"type"in e&&e.type==="value"&&e.storageOperationType==="get"){if(!s&&n.length>0){let l=n[n.length-1];!l.glueEnabled&&!l.operations&&!l.labelToOpen&&(l.glueEnabled=true,l.labelToOpen||(l.goNextStep=true)),n[n.length-1]=l;}typeof e=="string"?n.push(vC(mt(e),r.characterIds)):n.push({dialogue:e});}else if(typeof e=="string"){if(e==="end")n.push({end:"game_end"});else if(e==="done")n.push({end:"label_end",goNextStep:true});else if(e==="<>")if(n.length>0){let l=n[n.length-1];l.glueEnabled=true;let c=l.operations!==void 0&&l.dialogue===void 0;l.labelToOpen||(l.goNextStep=c?true:!s),n[n.length-1]=l;}else n.push({glueEnabled:true,goNextStep:true});}else if(typeof e=="object"){if("type"in e)switch(e.type){case "value":e.storageOperationType==="set"?(typeof e.value=="string"&&e.value.startsWith("^")&&(e.value=mt(e.value)),n.push({goNextStep:true,operations:[e]})):console.warn("Warning: trying to add a value get operation as step. This is likely a mistake, so it will be ignored.");break;case "function":n.push({goNextStep:true,operations:[e]});break;default:if(!s&&n.length>0){let l=n[n.length-1];!l.glueEnabled&&!l.operations&&(l.glueEnabled=true,l.labelToOpen||(l.goNextStep=true)),n[n.length-1]=l;}n.push({conditionalStep:e});}else if("->"in e){let l=s?void 0:true;if(l&&t.includes("c-")&&n.length>0&&n[n.length-1]?.dialogue===void 0&&(l=void 0),!s&&n.length>0){let c=n[n.length-1];c.labelToOpen||(c.goNextStep=true),n[n.length-1]=c;}if(e.params&&e.params.length===0&&delete e.params,e.var)n.push({labelToOpen:{label:hn({key:e["->"],defaultType:"storage"},i),type:u?"call":"jump",params:e.params},glueEnabled:l});else {let c=jn(e["->"],t);if(!c)return;n.push({labelToOpen:{label:c,type:Du(c,u),params:e.params},glueEnabled:l});}}else if("->t->"in e){let l=s?void 0:true;if(l&&t.includes("c-")&&n.length>0&&n[n.length-1]?.dialogue===void 0&&(l=void 0),!s&&n.length>0){let h=n[n.length-1];h.labelToOpen||(h.goNextStep=true),n[n.length-1]=h;}e.params&&e.params.length===0&&delete e.params;let c=jn(e["->t->"],t);if(!c)return;n.push({labelToOpen:{label:c,type:"call",params:e.params},glueEnabled:l});}}}function vC(n,e){let t;if(n.includes(": ")){let r=n.split(": "),i=r[0],a=r.slice(1).join(": ");(e?.has(i)||characters.RegisteredCharacters.has(i))&&(t=i,n=a);}return t?{dialogue:{character:t,text:n}}:{dialogue:n}}function Pu(n,e,t,r=true,i=false){return EC(n,e,t,r,i)}function EC(n,e,t,r,i=false){e&&(typeof e=="string"&&e.startsWith("^")||e&&typeof e=="object"&&"type"in e&&e.type==="value"&&e.storageOperationType==="get"?typeof e=="string"?n.push(mt(e)):n.push(e):typeof e=="object"&&"type"in e&&n.push(e));}function ss(n,e,t,r){if(n.length===0){H.error("Error parsing ink file: Arithmetic statement is not valid",n);return}let i=Lt(n,e,t,r);if(i.length===1){let a=i[0];return a&&typeof a=="object"&&"type"in a?{type:"value",storageType:"logic",storageOperationType:"get",operation:a}:a}}function qn(n,e,t,r="",i,a,s=void 0){let o=[],u="sequential",l=false,c=true;n.forEach(p=>{p==="%"&&(u="loop"),p==="seq"&&(u="random"),p==="MIN"&&(l=true);});let h=n[n.length-1];return Object.keys(h).forEach(p=>{let m=h[p];if(Array.isArray(m)&&m.length>3){m=m.slice(1,m.length-2);let g=[];Bt(m,r,i,g,e,e,t,Ln,s,true,a),g.length===1?o.push(g[0]):o.push({type:"resulttocombine",combine:"cross",secondConditionalItem:g});}else Array.isArray(m)&&m.length===3&&(c=false);}),u==="sequential"?{type:"stepswitch",elements:o,choiceType:u,end:c?"lastItem":void 0,nestedId:s}:l&&u==="random"?{type:"stepswitch",elements:o,choiceType:"sequentialrandom",end:c?"lastItem":void 0,nestedId:s}:{type:"stepswitch",elements:o,choiceType:u}}function Bt(n,e,t,r=[],i,a,s,o,u=void 0,l=true,c=[]){let h=false,f=[],p=false,m=false,g=false,v=[],E=[];if(t.preDialog[e]&&(l=false,i(r,`^${t.preDialog[e].text}`,e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:g}),t.preDialog[e].glue&&i(r,"<>",e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:g}),delete t.preDialog[e]),n.includes("visit")){let d=qn(n,a,s,e,t,c,u);d&&(!l&&r.length>0&&i(r,"<>",e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:g}),i(r,d,e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:g}));return}let b=n[0];if(b&&typeof b=="object"&&"temp="in b){for(;n[0]&&typeof n[0]=="object"&&"temp="in n[0];)c.push(n[0]["temp="]),n.shift();c=c.reverse();}if(n.forEach((d,_)=>{if(m){if(typeof d=="string"&&d==="/#"){let y=[];Bt(E,e,t,y,Pu,Pu,s,o,u,l),i(r,y,e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:g}),m=false,E=[];}else E.push(d);return}else if(h)if(Array.isArray(d))f.push(d);else if(d&&typeof d=="object")"CNT?"in d?_>0&&n[_-1]==="ev"?(p=true,v.push(d)):p?v.push(d):(f.push(d),l=false):"VAR="in d||"temp="in d?Vr({key:"VAR="in d?d["VAR="]:d["temp="],value:n[_-1],defaultType:"VAR="in d?"storage":"tempstorage"},c,t).forEach(S=>{if(S.value&&typeof S.value=="string"&&S.value==="/str"&&(S.value=n[_-2]),S.value&&typeof S.value=="object"&&"^->"in S.value&&(S.value=S.value["^->"]),f.length>1){let D=ss(f,e,c,t);f=[],D&&typeof D=="object"&&"type"in D&&D.type==="value"&&"storageType"in D&&D.storageType==="logic"&&(S.value=D.operation);}(typeof S.key!="string"||!S.key.includes("$r"))&&(i(r,S,e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:g}),l=true);}):"VAR?"in d?f.push(d):"^->"in d?d["^->"].includes("$r")||f.push(d):("f()"in d||"list"in d&&typeof d.list=="object")&&f.push(d);else switch(d){case "/ev":p&&v.push(d),h=false,f.push(d);break;case "out":if(f.length>0){let y=f[f.length-1];if(y&&typeof y=="object"&&"VAR?"in y){f.pop();let S=hn({key:y["VAR?"],defaultType:"storage"},c);i(r,S,e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:g});}else {let S=[];for(;f.length>0&&f[f.length-1]!=="/ev";)S.push(f.pop());S=S.reverse();let D=ss(S,e,c,t);f=[],D&&typeof D=="object"&&"type"in D&&D.type==="value"&&"storageType"in D&&D.storageType==="logic"?i(r,{storageOperationType:"get",storageType:"logic",operation:D.operation,type:"value"},e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:g}):(i(r,"<>",e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:g}),D=`^${D}`,i(r,D,e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:g}));}l=false;}break;case "pop":{let y=f[f.length-1];if(y&&typeof y=="object"&&"f()"in y){let S=[];for(;f.length>0&&f[f.length-1]!=="/ev";)S.push(f.pop());S=S.reverse();let D=Lt(S,e,c,t);f=[],D.forEach(A=>{A&&typeof A=="object"&&"type"in A&&A.type==="function"?i(r,A,e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:g}):H.warn("Unhandled case: value is not a function",A);}),l=false;}else f.push(d);return}default:f.push(d);}else if(typeof d=="string")if(d.startsWith("^"))i(r,d,e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:g}),l=false;else if(d==="ev")h=true;else if(d===`
66
+ `)l=true;else if(d==="done"||d==="end")i(r,d,e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:g}),l=false;else if(d==="<>")i(r,d,e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:g}),l=false;else if(d==="nop"&&p){let y=Vf(v,a,s,e,t,c,u);y&&i(r,y,e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:g}),p=false,v=[];}else d==="#"?m=true:d==="thread"&&(g=true);else if(Array.isArray(d))if(p)v.push(d);else if(d.length>1&&typeof d[d.length-2]=="object"&&d[d.length-2]&&"c"in d[d.length-2]&&typeof d[d.length-1]=="object"&&d[d.length-1]&&"b"in d[d.length-1]){f.pop();let y=[],S=[];for(;f.length>0&&f[f.length-1]!=="/ev";)y.push(f.pop());v=[...v,...y.reverse()],p=true,S.push(d.pop()),S.push(d.pop()),v=[...v,...d],v.push(S);}else if(d.length>1&&typeof d[d.length-1]=="object"&&d[d.length-1]&&"#n"in d[d.length-1]){let y=d.pop();if(!y){H.error("Error parsing ink file: el is undefined");return}let S=y["#n"];delete y["#n"],d.push(y),i(r,{"->":e?e+"_|_"+S:S},e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:g}),s({[S]:d},e,t);}else Bt(d,e,t,r,i,a,s,o,u,l,c);else if(d&&typeof d=="object")if("->"in d&&typeof d["->"]=="string"&&!new RegExp(/^\.\^\.\^\.\d\.s$/).test(d["->"])){let y=[];f.length>0&&(y=wu(["ev",...f],e,c,t)),d.params=y,i(r,d,e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:g}),l=false;}else if("->t->"in d&&typeof d["->t->"]=="string"&&!new RegExp(/^\.\^\.\^\.\d\.s$/).test(d["->t->"])){let y=[];f.length>0&&(y=wu(["ev",...f],e,c,t)),d.params=y,i(r,d,e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:g}),l=false;}else if("*"in d&&typeof d["*"]=="string")d["*"].includes("c")&&(f.push(d),l=false);else if("s"in d&&Array.isArray(d.s))f.push(d),l=false;else if("CNT?"in d)f.push(d),l=false;else if("VAR="in d||"temp="in d){let y="VAR="in d?d["VAR="]:d["temp="],S,D=[];if(y!=="$r"){for(f.pop(),f[f.length-1]==="/ev"&&f.pop();f.length>0&&f[f.length-1]!=="/ev";)D.push(f.pop());D=D.reverse(),S=ss(D,e,c,t),f=[],Vr({key:y,value:S,defaultType:"VAR="in d?"storage":"tempstorage",artmeticValue:true},c,t).forEach(F=>{(F.value!==void 0||F.value!==null)&&i(r,F,e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:g});}),l=false;}}else s(d,e,t);}),o(f,r,e,t,c),e.includes("_|_")&&r.length===2){let d=r[0],_=r[1];d&&_&&typeof d=="object"&&"dialogue"in d&&typeof _=="object"&&"labelToOpen"in _&&d.dialogue===" "&&_.labelToOpen&&(r.shift(),delete _.glueEnabled,r[0]=_);}}function xu(n,e,t,r,i,a){if(e.length===0)return;let s=Lt(e,r,t,i);if(s.length===1){let o={type:"ifelse",condition:s[0],then:n,else:a};return o.else||delete o.else,o}else if(s.length>1){let o={type:"ifelse",condition:{type:"union",unionType:"and",conditions:s},then:n,else:a};return o.else||delete o.else,o}}function Vf(n,e,t,r,i,a,s=void 0){if(n.length===0){H.error("Error parsing ink file: Conditional statement is not valid",n);return}let o=[],u=[];if(n.forEach(h=>{Array.isArray(h)?u.push(h):typeof h=="string"&&h==="du"?i.du?o.push(i.du):i.du=o[o.length-1]:(typeof h!="string"||h!=="/ev")&&o.push(h);}),u.length===0){H.error("Error parsing ink file: Conditional statement is not valid",u);return}let l=Tu(u[0],e,t,`${r}${"_|_"}then`,i,a,`${s||""}then`),c;return u.length===2?c=Tu(u[1],e,t,`${r}${"_|_"}else`,i,a,`${s||""}else`):u.length>2?(u.shift(),u.push("nop"),u=[{b:u}],c=Tu(u,e,t,r,i,a,`${s||""}else`)):c=void 0,i.du=void 0,xu(l,o,a,r,i,c)}function Tu(n,e,t,r,i,a,s=void 0){let o=[];for(let l of n)typeof l=="object"&&"b"in l&&(l.b=l.b.filter(c=>c!==null&&!(typeof c=="object"&&"->"in c&&new RegExp(/.*\.[0-9]/).test(c["->"]))),Bt(l.b,r,i,o,e,e,t,Ln,s,true,a));return o.length===1?o[0]:{type:"resulttocombine",combine:"cross",secondConditionalItem:o}}function Ou(n="",e=""){let t=Array.isArray(n)?n:[n],r=Array.isArray(e)?e:[e];return [...new Set([...t,...r])]}function Ln(n,e,t,r,i){if(n.length>0){let a={};jf(n,a,i,r);for(let[s,o]of Object.entries(a)){let u=t+"_|_"+s,l={text:o.text.length===1?o.text[0]:o.text,label:u,props:{},type:Du(u,false),oneTime:o.onetime};o.text.length===0&&(l.onlyHaveNoChoice=true,l.autoSelect=true),l.oneTime===false&&delete l.oneTime;let c=xu(l,o.conditions,i,t,r)||l,h=e[e.length-1];if(typeof h=="object"&&h&&"type"in h&&(h={conditionalStep:h}),e.length>0&&typeof h=="object"&&h&&"choices"in h&&h.choices){let f=h.choices;f&&Array.isArray(f)?f.push(c):H.error("Unhandled case: choices is PixiVNJsonConditionalStatements<PixiVNJsonChoices> | undefined",o,f),h.choices=f.sort((p,m)=>{try{let g=p.label.split("."),v=g[g.length-1].replaceAll(".","_|_"),E=m.label.split("."),b=E[E.length-1].replaceAll(".","_|_");if(v.includes("c-")&&b.includes("c-")){let d=v.split("c-")[1],_=Number(d),y=b.split("c-")[1],S=Number(y);return _-S}}catch{}return 0});}else e.push({choices:[c]});o.preDialog&&(r.preDialog[u]={...o.preDialog});}}}function jf(n,e,t,r,i){let a=[],s="",o="",u=false,l=[];for(let c=0;c<n.length;c++){let h=n[c];if(typeof h=="string")h.startsWith("^")?a.push(mt(h)):If.includes(h)&&l.push(h);else if(Array.isArray(h)&&h.includes("visit")){let f=qn(h,is,(p,m,g)=>{},i,r,t);a.push(f);}else if(h&&typeof h=="object")if("*"in h&&typeof h["*"]&&typeof h["*"]=="string")h["*"].includes("c")&&(s=`c${h["*"].split("c")[1]}`,h.flg&16&&(u=true));else if("s"in h&&Array.isArray(h.s)){let f=qf(h.s),p=h.s.includes("<>");f&&(i&&e[i]?(e[i].preDialog={text:f,glue:p},e[i].text=Ou(f,e[i].text)):(a.push(f),o=f));}else ("CNT?"in h||"VAR?"in h)&&l.push(h);else l.push(h);if(s){e[s]?e[s].text=Ou(a,e[s].text):e[s]={text:a,onetime:u,conditions:l},o&&(e[s].preDialog={text:o,glue:false});let f=n.slice(c+1);jf(f,e,t,r,s);return}}}function qf(n){for(let e of n)if(typeof e=="string"){if(e.startsWith("^"))return mt(e)}else if(Array.isArray(e)){let t=qf(e);if(t)return t}}var Fu;(i=>{function n(a,s={}){let{labelToRemove:o=[],initialVarsToRemove:u=[],enums:l={},functions:c=[],preDialog:h={},characterIds:f}=s,p={$schema:constants.PIXIVNJSON_SCHEMA_URL};if(p.labels=e(a.root,{labelToRemove:o,initialVarsToRemove:u,enums:l,functions:c,preDialog:h,characterIds:f}),p.labels&&es in p.labels){let m=p.labels[es];delete p.labels[es],m.forEach(g=>{g.operations&&(p.initialOperations=p.initialOperations?[...p.initialOperations,...g.operations]:[...g.operations]);});}if(p.labels&&on in p.labels){let m=p.labels[on];delete p.labels[on],m.forEach(g=>{g.operations&&(p.initialOperations=p.initialOperations?[...p.initialOperations,...g.operations]:[...g.operations]);});}return o.forEach(m=>{p.labels&&m in p.labels&&delete p.labels[m];}),u.forEach(m=>{p.initialOperations&&(p.initialOperations=p.initialOperations.filter(g=>!(g.type==="value"&&g.key===m)));}),p}i.inkToJson=n;function e(a,s){try{let o={};return t(a,o,s),o}catch(o){H.error("Error parsing ink file",o);}}function t(a,s,o){for(let u of a)if(u)if(Array.isArray(u))if(u.includes("visit")){let l=qn(u,is,(c,h,f)=>{},"",o,[]);l&&(o.externalSwitch=l);}else t(u,s,o);else typeof u=="object"&&(u&&"VAR="in u&&o.externalSwitch&&(s[on]||(s[on]=[]),s[on].push({operations:Vr({defaultType:"storage",key:u["VAR="],value:o.externalSwitch},[],o)})),r(u,s,"",o));}function r(a,s,o="",u){if(a!==null){for(let[l,c]of Object.entries(a))if(Array.isArray(c)){let h=[],f={},p=(o?o+"_|_":"")+l;Bt(c,p,u,h,Au,Au,(m,g,v)=>{r(m,f,g,v);},Ln);for(let[m,g]of Object.entries(f))s[m]=g;h.length>0&&(s[p]=h);}}}})(Fu||={});var yf=Ir(gg()),G0=Ir(Hg()),J0=Ir(q0()),H0=Ir(ar()),mx=/(?:^|<>)\s*#\s*([^\r\n]+)/g,gx=/^=+[ \t]+(?:function[ \t]+)?(\w+)/gm,yx=new Set(["DONE","END"]),Cx="_|_",L0=new Map;function U0(n,e){let t=JSON.stringify([e,n]),r=L0.get(t);if(r)return r;let i=new RegExp(n,e);return L0.set(t,i),i}function Qi(n,e){if(!e||typeof e!="object")return false;let t=e,r=t.anyOf;if(Array.isArray(r))return r.some(s=>Qi(n,s));let i=t.oneOf;if(Array.isArray(i))return i.some(s=>Qi(n,s));let a=t.allOf;if(Array.isArray(a))return a.every(s=>Qi(n,s));if(typeof t.const=="string")return n===t.const;if(Array.isArray(t.enum))return t.enum.some(s=>typeof s=="string"&&s===n);if(t.type!=="string"||typeof t.minLength=="number"&&n.length<t.minLength||typeof t.maxLength=="number"&&n.length>t.maxLength)return false;if(typeof t.pattern=="string")try{if(!U0(t.pattern,"").test(n))return !1}catch{return false}return true}function cu(n,e){if(!e||typeof e!="object")return false;let t=e,r=t.anyOf;if(Array.isArray(r))return r.some(o=>cu(n,o));let i=t.oneOf;if(Array.isArray(i))return i.some(o=>cu(n,o));let a=t.allOf;if(Array.isArray(a))return a.every(o=>cu(n,o));if(t.type!=="array"||typeof t.minItems=="number"&&n.length<t.minItems||typeof t.maxItems=="number"&&n.length>t.maxItems)return false;let s=Array.isArray(t.prefixItems)?t.prefixItems:[];if(n.length<s.length)return false;for(let o=0;o<s.length;o++)if(!Qi(n[o],s[o]))return false;return n.length===s.length?true:t.items===false||typeof t.items>"u"?false:t.items===true?true:n.slice(s.length).every(o=>Qi(o,t.items))}function pf(n,e){if(e.type==="regexp")try{let t=U0(e.source,e.flags);return t.lastIndex=0,t.test(n.join(" "))}catch{return false}return e.type==="literal"?n.join(" ")===e.value:cu(n,e.schema)}function hu(n){if(!n||typeof n!="object")return [];let e=n;if(Array.isArray(e.anyOf))return e.anyOf.flatMap(hu);if(Array.isArray(e.oneOf))return e.oneOf.flatMap(hu);if(Array.isArray(e.allOf)){let t={};for(let r of e.allOf)r&&typeof r=="object"&&Object.assign(t,r);return hu(t)}return e.type==="array"&&Array.isArray(e.prefixItems)?[e]:[]}function B0(n,e){if(n===e)return 1;let t=Math.max(n.length,e.length);return t===0?1:Math.max(0,1-z0(n,e)/t)}function vx(n,e){if(e&&typeof e=="object"){let t=e;if(typeof t.const=="string")return {weight:2,matched:n===void 0?0:2*B0(n,t.const)};if(Array.isArray(t.enum))return {weight:2,matched:2*(n===void 0?0:Math.max(0,...t.enum.filter(i=>typeof i=="string").map(i=>B0(n,i))))}}return {weight:1,matched:n===void 0?0:1}}function Ex(n,e){let t=Array.isArray(e.prefixItems)?e.prefixItems:[],r=Math.min(t.length,n.length),i=0,a=0,s=false;for(let o=0;o<r;o++){let u=vx(n[o],t[o]);i+=u.weight,a+=u.matched,u.weight>1&&(s=true);}return {score:i===0?0:a/i,hasDiscriminant:s}}var _x=.8,W0=new Map;function Sx(n){let e=JSON.stringify(n),t=W0.get(e);if(t)return t;let r=new G0.default({strict:false,allErrors:true}).compile(n);return W0.set(e,r),r}function bx(n){if("items"in n)return n;let e=Array.isArray(n.prefixItems)?n.prefixItems.length:0;return {...n,minItems:e,maxItems:e,items:false}}function wx(n,e){let[t]=mu(n.instancePath);if(t!==void 0&&/^\d+$/.test(t)){let r=Number(t);if(r<e.length)return e[r]}return Cf(n)}function Dx(n){return n.keyword==="const"?`must be "${n.params.allowedValue}"`:n.keyword==="enum"?`must be one of ${(n.params.allowedValues??[]).map(t=>`"${t}"`).join(", ")}`:n.message??"invalid value"}function mf(n){let e=n.split(/\r?\n/),t=[];for(let r=0;r<e.length;r++){let i=e[r];for(let a of i.matchAll(mx)){let s=(a[1]??"").trim();if(!s)continue;let o=cn.convertTagTolist(s,{mergeInkVariables:true});o.length!==0&&t.push({line:r+1,command:s,tokens:o});}}return t}function Cf(n){return n.keyword==="required"&&typeof n.params?.missingProperty=="string"?n.params.missingProperty:n.keyword==="additionalProperties"&&typeof n.params?.additionalProperty=="string"?n.params.additionalProperty:n.instancePath.split("/").pop()||"(root)"}function z0(n,e){let t=n.length+1,r=e.length+1,i=Array.from({length:t},(a,s)=>[s,...Array(r-1).fill(0)]);for(let a=1;a<r;a++)i[0][a]=a;for(let a=1;a<t;a++)for(let s=1;s<r;s++){let o=n[a-1]===e[s-1]?0:1;i[a][s]=Math.min(i[a-1][s]+1,i[a][s-1]+1,i[a-1][s-1]+o);}return i[t-1][r-1]}function Ax(n,e){let t,r=1/0;for(let a of e){let s=z0(n,a);s<r&&(r=s,t=a);}let i=Math.max(1,Math.floor(n.length/3));return r<=i?t:void 0}function Px(n,e){if(n.keyword==="additionalProperties"&&typeof n.params?.additionalProperty=="string"){let t=n.params.additionalProperty,r=e&&Ax(t,e),i=r?` (did you mean "${r}"?)`:"";return `has an unrecognised property "${t}"${i}`}return n.message??"invalid value"}function mu(n){return n.split("/").filter(Boolean).map(e=>e.replace(/~1/g,"/").replace(/~0/g,"~"))}function Tx(n,e){let t=n,r,i=a=>{a&&typeof a=="object"&&typeof a.$origin=="string"&&(r=a.$origin);};i(t);for(let a of mu(e)){if(t===null||typeof t!="object")break;t=t[a],i(t);}return r}function xx(n,e){let t=mu(e);for(let r=t.length;r>=0;r--){let i=t.slice(0,r),a=n;for(let s of i){if(a===null||typeof a!="object"){a=void 0;break}a=a[s];}if(a&&typeof a=="object"&&!Array.isArray(a)&&typeof a.type=="string")return {path:`/${i.map(o=>o.replace(/~/g,"~0").replace(/\//g,"~1")).join("/")}`,node:a}}}function fu(n,e,t=new Set){if(!n||typeof n!="object")return n;let r=n.$ref;if(typeof r!="string")return n;let i=r.match(/^#\/definitions\/([^/]+)$/);return !i?.[1]||t.has(i[1])||!(i[1]in e)?{}:(t.add(i[1]),fu(e[i[1]],e,t))}function pu(n,e){let t=fu(n,e);if(!t||typeof t!="object")return;let r=t;if(!(r.anyOf||r.oneOf)){if(Array.isArray(r.allOf)){let i={properties:{},required:[]};for(let a of r.allOf){let s=pu(a,e);if(!s)return;Object.assign(i.properties,s.properties),i.required.push(...s.required);}return i}return {properties:r.properties??{},required:r.required??[]}}}function M0(n,e){if(!n||typeof n!="object")return true;let t=n;return "const"in t?t.const===e:Array.isArray(t.enum)?t.enum.includes(e):true}function Ox(n,e){let t=n.definitions??{},r=[];for(let[i,a]of Object.entries(t)){let s=pu(a,t);if(!s)continue;let o=s.properties.type;o&&typeof o=="object"&&("const"in o||Array.isArray(o.enum))&&M0(o,e.type)&&M0(s.properties.operationType,e.operationType)&&r.push(i);}return r}function Fx(n,e,t){let r=n.definitions??{},i={definitions:r,...r[e]},a=new yf.default({strict:false,allErrors:true}).compile(i);return a(t)?[]:a.errors??[]}function Nx(n,e,t){let r=n.definitions??{},i=fu(r[e],r);for(let a of mu(t)){let o=pu(i,r)?.properties[a];if(o===void 0)return [];i=fu(o,r);}return Object.keys(pu(i,r)?.properties??{})}function du(n){let e=n.map(o=>o.instancePath),t=o=>e.some(u=>u!==o&&u.startsWith(`${o}/`)),r=n.filter(o=>!t(o.instancePath)),i=new Map;for(let o of r){let u=i.get(o.instancePath)??[];u.push(o),i.set(o.instancePath,u);}let a=[];for(let o of i.values()){let u=o.filter(l=>l.keyword!=="anyOf"&&l.keyword!=="oneOf");a.push(...u.length>0?u:o);}let s=new Set;return a.filter(o=>{let u=`${Cf(o)}|${o.message}`;return s.has(u)?false:(s.add(u),true)})}function gf(n,e,t){return n.map(r=>({instancePath:r.instancePath||"(root)",element:Cf(r),message:Px(r,t?.(r)),origin:Tx(e,r.instancePath)}))}function Ix(n,e,t){let r=n.map(c=>c.instancePath),i=c=>r.some(h=>h!==c&&h.startsWith(`${c}/`)),a=n.filter(c=>!i(c.instancePath)),s=t&&typeof t=="object"?t:void 0,o=new Map,u=[];for(let c of a){let h=s?xx(e,c.instancePath):void 0;if(!h){u.push(c);continue}let f=o.get(h.path);f?f.errors.push(c):o.set(h.path,{node:h.node,errors:[c]});}let l=gf(du(u),e);for(let[c,h]of o){let f=s?Ox(s,h.node):[],p=f.length===1?f[0]:void 0;if(!p||!s){l.push(...gf(du(h.errors),e));continue}let g=du(Fx(s,p,h.node)).map(v=>({...v,instancePath:`${c}${v.instancePath}`}));l.push(...gf(g,e,v=>Nx(s,p,v.instancePath.slice(c.length))));}return l}var vf;(h=>{function n(f,p={labelToRemove:[],initialVarsToRemove:[],functions:[],enums:{}}){let m=[];try{return {json:new J0.Compiler(f,{errorHandler:(b,d)=>{let _=b.replace(/^[A-Z]+: line \d+: ?/,""),y=b.match(/line (\d+)/);m.push({message:_,type:d,line:y?Number(y[1]):-1});},countAllVisits:!0,fileHandler:{ResolveInkFilename:b=>b,LoadInkFileContents:()=>""},pluginNames:[],sourceFilename:null}).Compile().ToJson()||"",issues:m}}catch{let v=false,E={...p,textSource:f};return e(m,()=>{v=true;},E),v?n(E.textSource,p):{issues:m}}}h.compile=n;function e(f,p,m){let{functions:g,initialVarsToRemove:v,labelToRemove:E}=m,b=f.find(d=>d.type===H0.ErrorType.Error);if(b){if(b.message.includes("Divert target not found")){let d=b.message.match(/Divert target not found: '-> (\w+)'/);if(d?.[1]){let _=d[1],y=`
67
67
 
68
68
  === ${_} ===
69
69
 
@@ -79,7 +79,7 @@ Error:${c}`);}return l!=null&&(u=new n(l,s,this._externalErrorHandler,this._root
79
79
 
80
80
  ~ return
81
81
 
82
- `;return m.textSource=m.textSource.concat(y),g.push({name:_,args:0}),E.push(_),p()}}if(b.message.includes(" arguments, but got ")){let d=b.message.match(/Function call to '(\w+)' requires (\d+) arguments, but got (\d+)/);if(d?.[1]){let _=d[1],y=parseInt(d[3]||"0",10),S=y>0?Array.from({length:y},(F,Z)=>`arg${Z+1}`).join(", "):"",w=`
82
+ `;return m.textSource=m.textSource.concat(y),g.push({name:_,args:0}),E.push(_),p()}}if(b.message.includes(" arguments, but got ")){let d=b.message.match(/Function call to '(\w+)' requires (\d+) arguments, but got (\d+)/);if(d?.[1]){let _=d[1],y=parseInt(d[3]||"0",10),S=y>0?Array.from({length:y},(F,Z)=>`arg${Z+1}`).join(", "):"",D=`
83
83
 
84
84
  === function ${_}(${S}) ===
85
85
 
@@ -91,10 +91,10 @@ Error:${c}`);}return l!=null&&(u=new n(l,s,this._externalErrorHandler,this._root
91
91
 
92
92
  ~ return
93
93
 
94
- `,""),m.textSource=m.textSource.concat(w);let A=g.find(F=>F.name===_);return A?A.args=y:(g.push({name:_,args:y}),E.push(_)),p()}}if(b.message.includes("Could not find target for read count")){let d=b.message.match(/Could not find target for read count: -> (\w+\.\w+)/);if(d?.[1]){let _=d[1],[y,S]=_.split("."),w=`
94
+ `,""),m.textSource=m.textSource.concat(D);let A=g.find(F=>F.name===_);return A?A.args=y:(g.push({name:_,args:y}),E.push(_)),p()}}if(b.message.includes("Could not find target for read count")){let d=b.message.match(/Could not find target for read count: -> (\w+\.\w+)/);if(d?.[1]){let _=d[1],[y,S]=_.split("."),D=`
95
95
 
96
96
  LIST ${y} = ${S}
97
97
 
98
- `;return m.textSource=m.textSource.concat(w),m.initialVarsToRemove.push(y),m.initialVarsToRemove.push(`${y}.${S}`),p()}}if(b.message.includes("variable for increment could not be found")){let d=b.message.match(/variable for increment could not be found: '(\w+)' after searching:/);if(d?.[1]){let _=d[1],y=`VAR ${_} = 0
98
+ `;return m.textSource=m.textSource.concat(D),m.initialVarsToRemove.push(y),m.initialVarsToRemove.push(`${y}.${S}`),p()}}if(b.message.includes("variable for increment could not be found")){let d=b.message.match(/variable for increment could not be found: '(\w+)' after searching:/);if(d?.[1]){let _=d[1],y=`VAR ${_} = 0
99
99
 
100
- `;return m.textSource=y.concat(m.textSource),m.initialVarsToRemove.push(_),p()}}return f.forEach(d=>{let _=d.message.match(/Function call to '(\w+)' requires (\d+) arguments, but got (\d+)/);_?.[1]&&(d.message=`The function '${_[1]}' have optional arguments, but in ink all arguments must be required. Please make sure to provide all the required arguments for the function call.`);}),{issues:f}}return {issues:f}}h.getErrors=e;function t(f,p){return mf(f).filter(({tokens:m})=>!p.some(({validation:g})=>pf(m,g)))}h.getUnknownHashtagCommands=t;function r(f,p){let m=p.filter(v=>v.validation.type==="zod");if(m.length===0)return [];let g=[];for(let v of mf(f)){if(p.some(({validation:d})=>pf(v.tokens,d)))continue;let E;for(let d of m)for(let _ of hu(d.validation.schema)){let{score:y,hasDiscriminant:S}=EO(v.tokens,_);S&&(!E||y>E.score)&&(E={command:d,branch:_,score:y});}if(!E||E.score<_O)continue;let b=SO(bO(E.branch));if(!b(v.tokens))for(let d of du(b.errors??[]))g.push({line:v.line,command:v.command,handlerName:E.command.name,instancePath:d.instancePath||"(root)",element:DO(d,v.tokens),message:wO(d),score:E.score});}return g}h.getLikelyUnknownHashtagCommandSchemaIssues=r;function i(f,p){let m=new Set;for(let d of f.matchAll(gO))d[1]&&m.add(d[1]);let g=new Set(p),v=new Set,E=f.split(/\r?\n/),b=[];for(let d=0;d<E.length;d++){let _=(E[d]??"").replace(/\/\/.*$/,"");for(let y of _.matchAll(/->[ \t]+(\w[\w.]*)/g)){let S=y[1];if(!S)continue;let w=S.split(".")[0]??S;yO.has(w)||m.has(w)||g.has(S)||g.has(S.replaceAll(".",CO))||g.has(w)||v.has(S)||(v.add(S),b.push({line:d+1,target:S}));}}return b}h.getUnknownDivertTargets=i;function a(f){return new yf.default({strict:false,allErrors:true}).compile(f)}h.getSchemaValidator=a;function s(f,p){let m=typeof p=="function"?p:a(p);return m(f)?[]:IO(m.errors??[],f,m.schema)}h.validateAgainstJsonSchema=s;function o(f,p){let m=new Set,g=[];for(let d of p){let _=u(d);_!==void 0?g.push(_):m.add(String(d));}g.sort((d,_)=>_-d);let v=[],E=f.length;for(let d=f.length-1;d>=0;d--)m.has(f[d])&&(v.push({key:f[d],sectionTokens:f.slice(d+1,E)}),E=d);v.reverse();let b=[];for(let d of g)d<0||d>=E||(b.push({key:d,sectionTokens:f.slice(d,E)}),E=d-1);return b.reverse(),[...b,...v]}h.extractKeyedSections=o;function u(f){return typeof f=="number"?Number.isInteger(f)&&f>=0?f:void 0:/^\d+$/.test(f)?Number(f):void 0}function l(f,p){let m=o(f,Object.keys(p)),g=[];for(let{key:v,sectionTokens:E}of m){let b;try{b=cn.convertListStringToObj(E);}catch(_){g.push({key:v,instancePath:"(root)",element:String(v),message:`could not parse "${v}" section into key/value pairs: ${_ instanceof Error?_.message:String(_)}`});continue}let d=s(b,p[v]);g.push(...d.map(_=>({..._,key:v})));}return g}h.validateKeyedJsonSchemas=l;function c(f,p){let m=[];for(let g of mf(f)){let v=p.find(({validation:b})=>pf(g.tokens,b));if(!v?.keySchemas)continue;let E=l(g.tokens,v.keySchemas);m.push(...E.map(b=>({...b,line:g.line,command:g.command})));}return m}h.getHashtagKeySchemaIssues=c;})(vf||={});var Ef=Ir(ar());function K0(n){if(!n||n.length===0)return;let e=new Set;for(let t of n){let r=typeof t=="string"?t:t?.id;typeof r=="string"&&r.length>0&&e.add(r);}return e.size>0?e:void 0}function X0(n,e={}){let t={labelToRemove:[],initialVarsToRemove:[],functions:e.functions||[],enums:e.enums||{},textSource:n},{json:r,issues:i}=vf.compile(n,t);if(i.forEach(({message:s,type:o})=>{o===Ef.ErrorType.Error?H.error(`Ink compilation error: ${s}`):o===Ef.ErrorType.Warning?H.warn(`Ink compilation warning: ${s}`):H.info(`Ink compilation info: ${s}`);}),!r){H.error("No JSON generated from ink file");return}let a;try{a=$r.parse(r);}catch{H.error("Error parsing ink file");return}return t.enums=a.listDefs||{},Fu.inkToJson(a,{...t,characterIds:K0(e.characters)})}exports.convertInkText=X0;exports.convertInkToJson=X0;exports.normalizeCharacterIds=K0;
100
+ `;return m.textSource=y.concat(m.textSource),m.initialVarsToRemove.push(_),p()}}return f.forEach(d=>{let _=d.message.match(/Function call to '(\w+)' requires (\d+) arguments, but got (\d+)/);_?.[1]&&(d.message=`The function '${_[1]}' have optional arguments, but in ink all arguments must be required. Please make sure to provide all the required arguments for the function call.`);}),{issues:f}}return {issues:f}}h.getErrors=e;function t(f,p){return mf(f).filter(({tokens:m})=>!p.some(({validation:g})=>pf(m,g)))}h.getUnknownHashtagCommands=t;function r(f,p){let m=p.filter(v=>v.validation.type==="zod");if(m.length===0)return [];let g=[];for(let v of mf(f)){if(p.some(({validation:d})=>pf(v.tokens,d)))continue;let E;for(let d of m)for(let _ of hu(d.validation.schema)){let{score:y,hasDiscriminant:S}=Ex(v.tokens,_);S&&(!E||y>E.score)&&(E={command:d,branch:_,score:y});}if(!E||E.score<_x)continue;let b=Sx(bx(E.branch));if(!b(v.tokens))for(let d of du(b.errors??[]))g.push({line:v.line,command:v.command,handlerName:E.command.name,instancePath:d.instancePath||"(root)",element:wx(d,v.tokens),message:Dx(d),score:E.score});}return g}h.getLikelyUnknownHashtagCommandSchemaIssues=r;function i(f,p){let m=new Set;for(let d of f.matchAll(gx))d[1]&&m.add(d[1]);let g=new Set(p),v=new Set,E=f.split(/\r?\n/),b=[];for(let d=0;d<E.length;d++){let _=(E[d]??"").replace(/\/\/.*$/,"");for(let y of _.matchAll(/->[ \t]+(\w[\w.]*)/g)){let S=y[1];if(!S)continue;let D=S.split(".")[0]??S;yx.has(D)||m.has(D)||g.has(S)||g.has(S.replaceAll(".",Cx))||g.has(D)||v.has(S)||(v.add(S),b.push({line:d+1,target:S}));}}return b}h.getUnknownDivertTargets=i;function a(f){return new yf.default({strict:false,allErrors:true}).compile(f)}h.getSchemaValidator=a;function s(f,p){let m=typeof p=="function"?p:a(p);return m(f)?[]:Ix(m.errors??[],f,m.schema)}h.validateAgainstJsonSchema=s;function o(f,p){let m=new Set,g=[];for(let d of p){let _=u(d);_!==void 0?g.push(_):m.add(String(d));}g.sort((d,_)=>_-d);let v=[],E=f.length;for(let d=f.length-1;d>=0;d--)m.has(f[d])&&(v.push({key:f[d],sectionTokens:f.slice(d+1,E)}),E=d);v.reverse();let b=[];for(let d of g)d<0||d>=E||(b.push({key:d,sectionTokens:f.slice(d,E)}),E=d-1);return b.reverse(),[...b,...v]}h.extractKeyedSections=o;function u(f){return typeof f=="number"?Number.isInteger(f)&&f>=0?f:void 0:/^\d+$/.test(f)?Number(f):void 0}function l(f,p){let m=o(f,Object.keys(p)),g=[];for(let{key:v,sectionTokens:E}of m){let b;try{b=cn.convertListStringToObj(E);}catch(_){g.push({key:v,instancePath:"(root)",element:String(v),message:`could not parse "${v}" section into key/value pairs: ${_ instanceof Error?_.message:String(_)}`});continue}let d=s(b,p[v]);g.push(...d.map(_=>({..._,key:v})));}return g}h.validateKeyedJsonSchemas=l;function c(f,p){let m=[];for(let g of mf(f)){let v=p.find(({validation:b})=>pf(g.tokens,b));if(!v?.keySchemas)continue;let E=l(g.tokens,v.keySchemas);m.push(...E.map(b=>({...b,line:g.line,command:g.command})));}return m}h.getHashtagKeySchemaIssues=c;})(vf||={});var Ef=Ir(ar());function K0(n){if(!n||n.length===0)return;let e=new Set;for(let t of n){let r=typeof t=="string"?t:t?.id;typeof r=="string"&&r.length>0&&e.add(r);}return e.size>0?e:void 0}function X0(n,e={}){let t={labelToRemove:[],initialVarsToRemove:[],functions:e.functions||[],enums:e.enums||{},textSource:n},{json:r,issues:i}=vf.compile(n,t);if(i.forEach(({message:s,type:o})=>{o===Ef.ErrorType.Error?H.error(`Ink compilation error: ${s}`):o===Ef.ErrorType.Warning?H.warn(`Ink compilation warning: ${s}`):H.info(`Ink compilation info: ${s}`);}),!r){H.error("No JSON generated from ink file");return}let a;try{a=$r.parse(r);}catch{H.error("Error parsing ink file");return}return t.enums=a.listDefs||{},Fu.inkToJson(a,{...t,characterIds:K0(e.characters)})}exports.convertInkText=X0;exports.convertInkToJson=X0;exports.normalizeCharacterIds=K0;