@drincs/pixi-vn-ink 1.2.0 → 1.2.1

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,100 +1,100 @@
1
- import {ZodType}from'zod';import {PIXIVNJSON_SCHEMA_URL,PixiVNJsonComparationOperators}from'@drincs/pixi-vn-json/constants';import {RegisteredCharacters}from'@drincs/pixi-vn/characters';var X0=Object.create;var Ef=Object.defineProperty;var Y0=Object.getOwnPropertyDescriptor;var Z0=Object.getOwnPropertyNames;var Q0=Object.getPrototypeOf,eC=Object.prototype.hasOwnProperty;var v=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports);var tC=(n,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Z0(e))!eC.call(n,i)&&i!==t&&Ef(n,i,{get:()=>e[i],enumerable:!(r=Y0(e,i))||r.enumerable});return n};var Ir=(n,e,t)=>(t=n!=null?X0(Q0(n)):{},tC(Ef(t,"default",{value:n,enumerable:true}),n));var Lr=v(H=>{Object.defineProperty(H,"__esModule",{value:true});H.regexpCode=H.getEsmExportName=H.getProperty=H.safeStringify=H.stringify=H.strConcat=H.addCodeArg=H.str=H._=H.nil=H._Code=H.Name=H.IDENTIFIER=H._CodeOrName=void 0;var jr=class{};H._CodeOrName=jr;H.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var fn=class extends jr{constructor(e){if(super(),!H.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}}};H.Name=fn;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 fn&&(t[r.str]=(t[r.str]||0)+1),t),{})}};H._Code=Xe;H.nil=new Xe("");function jf(n,...e){let t=[n[0]],r=0;for(;r<e.length;)Iu(t,e[r]),t.push(n[++r]);return new Xe(t)}H._=jf;var Nu=new Xe("+");function qf(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 _C(t),new Xe(t)}H.str=qf;function Iu(n,e){e instanceof Xe?n.push(...e._items):e instanceof fn?n.push(e):n.push(DC(e));}H.addCodeArg=Iu;function _C(n){let e=1;for(;e<n.length-1;){if(n[e]===Nu){let t=SC(n[e-1],n[e+1]);if(t!==void 0){n.splice(e-1,3,t);continue}n[e++]="+";}e++;}}function SC(n,e){if(e==='""')return n;if(n==='""')return e;if(typeof n=="string")return e instanceof fn||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 fn))return `"${n}${e.slice(1)}`}function bC(n,e){return e.emptyStr()?n:n.emptyStr()?e:qf`${n}${e}`}H.strConcat=bC;function DC(n){return typeof n=="number"||typeof n=="boolean"||n===null?n:qr(Array.isArray(n)?n.join(","):n)}function wC(n){return new Xe(qr(n))}H.stringify=wC;function qr(n){return JSON.stringify(n).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}H.safeStringify=qr;function AC(n){return typeof n=="string"&&H.IDENTIFIER.test(n)?new Xe(`.${n}`):jf`[${n}]`}H.getProperty=AC;function PC(n){if(typeof n=="string"&&H.IDENTIFIER.test(n))return new Xe(`${n}`);throw new Error(`CodeGen: invalid export name: ${n}, use explicit $id name mapping`)}H.getEsmExportName=PC;function TC(n){return new Xe(n.toString())}H.regexpCode=TC;});var $u=v(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=v(V=>{Object.defineProperty(V,"__esModule",{value:true});V.or=V.and=V.not=V.CodeGen=V.operators=V.varKinds=V.ValueScopeName=V.ValueScope=V.Scope=V.Name=V.regexpCode=V.stringify=V.getProperty=V.nil=V.strConcat=V.str=V._=void 0;var M=Lr(),lt=$u(),Mt=Lr();Object.defineProperty(V,"_",{enumerable:true,get:function(){return Mt._}});Object.defineProperty(V,"str",{enumerable:true,get:function(){return Mt.str}});Object.defineProperty(V,"strConcat",{enumerable:true,get:function(){return Mt.strConcat}});Object.defineProperty(V,"nil",{enumerable:true,get:function(){return Mt.nil}});Object.defineProperty(V,"getProperty",{enumerable:true,get:function(){return Mt.getProperty}});Object.defineProperty(V,"stringify",{enumerable:true,get:function(){return Mt.stringify}});Object.defineProperty(V,"regexpCode",{enumerable:true,get:function(){return Mt.regexpCode}});Object.defineProperty(V,"Name",{enumerable:true,get:function(){return Mt.Name}});var ds=$u();Object.defineProperty(V,"Scope",{enumerable:true,get:function(){return ds.Scope}});Object.defineProperty(V,"ValueScope",{enumerable:true,get:function(){return ds.ValueScope}});Object.defineProperty(V,"ValueScopeName",{enumerable:true,get:function(){return ds.ValueScopeName}});Object.defineProperty(V,"varKinds",{enumerable:true,get:function(){return ds.varKinds}});V.operators={GT:new M._Code(">"),GTE:new M._Code(">="),LT:new M._Code("<"),LTE:new M._Code("<="),EQ:new M._Code("==="),NEQ:new M._Code("!=="),NOT:new M._Code("!"),OR:new M._Code("||"),AND:new M._Code("&&"),ADD:new M._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=Mn(this.rhs,e,t)),this}get names(){return this.rhs instanceof M._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 M.Name&&!e[this.lhs.str]&&!this.sideEffects))return this.rhs=Mn(this.rhs,e,t),this}get names(){let e=this.lhs instanceof M.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=Mn(this.code,e,t),this}get names(){return this.code instanceof M._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)||(xC(e,a.names),r.splice(i,1));}return r.length>0?this:void 0}get names(){return this.nodes.reduce((e,t)=>gn(e,t.names),{})}},It=class extends Br{render(e){return "{"+e._n+super.render(e)+"}"+e._n}},Mu=class extends Br{},Wn=class extends It{};Wn.kind="else";var pn=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 Wn(r):r;}if(t)return e===false?t instanceof n?t:t.nodes:this.nodes.length?this:new n(Lf(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=Mn(this.condition,e,t),this}get names(){let e=super.names;return hs(e,this.condition),this.else&&gn(e,this.else.names),e}};pn.kind="if";var mn=class extends It{};mn.kind="for";var Gu=class extends mn{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=Mn(this.iteration,e,t),this}get names(){return gn(super.names,this.iteration.names)}},Ju=class extends mn{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 mn{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=Mn(this.iterable,e,t),this}get names(){return gn(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&&gn(e,this.catch.names),this.finally&&gn(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,V.operators.ADD,t))}code(e){return typeof e=="function"?e():e!==M.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, M.addCodeArg)(t,i));return t.push("}"),new M._Code(t)}if(e,t,r){if(this._blockNode(new pn(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 pn(e))}else(){return this._elseNode(new Wn)}endIf(){return this._endBlockNode(pn,Wn)}_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 M.Name?t:this.var("_arr",t);return this.forRange("_i",0,(0, M._)`${s}.length`,o=>{this.var(a,(0, M._)`${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, M._)`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(mn)}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=M.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 pn))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;}};V.CodeGen=Uu;function gn(n,e){for(let t in e)n[t]=(n[t]||0)+(e[t]||0);return n}function hs(n,e){return e instanceof M._CodeOrName?gn(n,e.names):n}function Mn(n,e,t){if(n instanceof M.Name)return r(n);if(!i(n))return n;return new M._Code(n._items.reduce((a,s)=>(s instanceof M.Name&&(s=r(s)),s instanceof M._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 M._Code&&a._items.some(s=>s instanceof M.Name&&e[s.str]===1&&t[s.str]!==void 0)}}function xC(n,e){for(let t in e)n[t]=(n[t]||0)-(e[t]||0);}function Lf(n){return typeof n=="boolean"||typeof n=="number"||n===null?!n:(0, M._)`!${zu(n)}`}V.not=Lf;var FC=Bf(V.operators.AND);function NC(...n){return n.reduce(FC)}V.and=NC;var IC=Bf(V.operators.OR);function kC(...n){return n.reduce(IC)}V.or=kC;function Bf(n){return (e,t)=>e===M.nil?t:t===M.nil?e:(0, M._)`${zu(e)} ${n} ${zu(t)}`}function zu(n){return n instanceof M.Name?n:(0, M._)`(${n})`}});var L=v(q=>{Object.defineProperty(q,"__esModule",{value:true});q.checkStrictMode=q.getErrorPath=q.Type=q.useFunc=q.setEvaluated=q.evaluatedPropsToName=q.mergeEvaluated=q.eachItem=q.unescapeJsonPointer=q.escapeJsonPointer=q.escapeFragment=q.unescapeFragment=q.schemaRefOrVal=q.schemaHasRulesButRef=q.schemaHasRules=q.checkUnknownRules=q.alwaysValidSchema=q.toHash=void 0;var Z=I(),RC=Lr();function $C(n){let e={};for(let t of n)e[t]=true;return e}q.toHash=$C;function VC(n,e){return typeof e=="boolean"?e:Object.keys(e).length===0?true:(Gf(n,e),!Jf(e,n.self.RULES.all))}q.alwaysValidSchema=VC;function Gf(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]||zf(n,`unknown keyword: "${a}"`);}q.checkUnknownRules=Gf;function Jf(n,e){if(typeof n=="boolean")return !n;for(let t in n)if(e[t])return true;return false}q.schemaHasRules=Jf;function jC(n,e){if(typeof n=="boolean")return !n;for(let t in n)if(t!=="$ref"&&e.all[t])return true;return false}q.schemaHasRulesButRef=jC;function qC({topSchemaRef:n,schemaPath:e},t,r,i){if(!i){if(typeof t=="number"||typeof t=="boolean")return t;if(typeof t=="string")return (0, Z._)`${t}`}return (0, Z._)`${n}${e}${(0, Z.getProperty)(r)}`}q.schemaRefOrVal=qC;function LC(n){return Hf(decodeURIComponent(n))}q.unescapeFragment=LC;function BC(n){return encodeURIComponent(Xu(n))}q.escapeFragment=BC;function Xu(n){return typeof n=="number"?`${n}`:n.replace(/~/g,"~0").replace(/\//g,"~1")}q.escapeJsonPointer=Xu;function Hf(n){return n.replace(/~1/g,"/").replace(/~0/g,"~")}q.unescapeJsonPointer=Hf;function WC(n,e){if(Array.isArray(n))for(let t of n)e(t);else e(n);}q.eachItem=WC;function Wf({mergeNames:n,mergeToName:e,mergeValues:t,resultToName:r}){return (i,a,s,o)=>{let u=s===void 0?a:s instanceof Z.Name?(a instanceof Z.Name?n(i,a,s):e(i,a,s),s):a instanceof Z.Name?(e(i,s,a),a):t(a,s);return o===Z.Name&&!(u instanceof Z.Name)?r(i,u):u}}q.mergeEvaluated={props:Wf({mergeNames:(n,e,t)=>n.if((0, Z._)`${t} !== true && ${e} !== undefined`,()=>{n.if((0, Z._)`${e} === true`,()=>n.assign(t,true),()=>n.assign(t,(0, Z._)`${t} || {}`).code((0, Z._)`Object.assign(${t}, ${e})`));}),mergeToName:(n,e,t)=>n.if((0, Z._)`${t} !== true`,()=>{e===true?n.assign(t,true):(n.assign(t,(0, Z._)`${t} || {}`),Yu(n,t,e));}),mergeValues:(n,e)=>n===true?true:{...n,...e},resultToName:Uf}),items:Wf({mergeNames:(n,e,t)=>n.if((0, Z._)`${t} !== true && ${e} !== undefined`,()=>n.assign(t,(0, Z._)`${e} === true ? true : ${t} > ${e} ? ${t} : ${e}`)),mergeToName:(n,e,t)=>n.if((0, Z._)`${t} !== true`,()=>n.assign(t,e===true?true:(0, Z._)`${t} > ${e} ? ${t} : ${e}`)),mergeValues:(n,e)=>n===true?true:Math.max(n,e),resultToName:(n,e)=>n.var("items",e)})};function Uf(n,e){if(e===true)return n.var("props",true);let t=n.var("props",(0, Z._)`{}`);return e!==void 0&&Yu(n,t,e),t}q.evaluatedPropsToName=Uf;function Yu(n,e,t){Object.keys(t).forEach(r=>n.assign((0, Z._)`${e}${(0, Z.getProperty)(r)}`,true));}q.setEvaluated=Yu;var Mf={};function MC(n,e){return n.scopeValue("func",{ref:e,code:Mf[e.code]||(Mf[e.code]=new RC._Code(e.code))})}q.useFunc=MC;var Ku;(function(n){n[n.Num=0]="Num",n[n.Str=1]="Str";})(Ku||(q.Type=Ku={}));function GC(n,e,t){if(n instanceof Z.Name){let r=e===Ku.Num;return t?r?(0, Z._)`"[" + ${n} + "]"`:(0, Z._)`"['" + ${n} + "']"`:r?(0, Z._)`"/" + ${n}`:(0, Z._)`"/" + ${n}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return t?(0, Z.getProperty)(n).toString():"/"+Xu(n)}q.getErrorPath=GC;function zf(n,e,t=n.opts.strictSchema){if(t){if(e=`strict mode: ${e}`,t===true)throw new Error(e);n.self.logger.warn(e);}}q.checkStrictMode=zf;});var Ye=v(Zu=>{Object.defineProperty(Zu,"__esModule",{value:true});var De=I(),JC={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=JC;});var Hr=v(we=>{Object.defineProperty(we,"__esModule",{value:true});we.extendErrors=we.resetErrorsCount=we.reportExtraError=we.reportError=we.keyword$DataError=we.keywordError=void 0;var J=I(),fs=L(),ke=Ye();we.keywordError={message:({keyword:n})=>(0, J.str)`must pass "${n}" keyword validation`};we.keyword$DataError={message:({keyword:n,schemaType:e})=>e?(0, J.str)`"${n}" keyword must be ${e} ($data)`:(0, J.str)`"${n}" keyword is invalid ($data)`};function HC(n,e=we.keywordError,t,r){let{it:i}=n,{gen:a,compositeRule:s,allErrors:o}=i,u=Yf(n,e,t);r??(s||o)?Kf(a,u):Xf(i,(0, J._)`[${u}]`);}we.reportError=HC;function UC(n,e=we.keywordError,t){let{it:r}=n,{gen:i,compositeRule:a,allErrors:s}=r,o=Yf(n,e,t);Kf(i,o),a||s||Xf(r,ke.default.vErrors);}we.reportExtraError=UC;function zC(n,e){n.assign(ke.default.errors,e),n.if((0, J._)`${ke.default.vErrors} !== null`,()=>n.if(e,()=>n.assign((0, J._)`${ke.default.vErrors}.length`,e),()=>n.assign(ke.default.vErrors,null)));}we.resetErrorsCount=zC;function KC({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, J._)`${ke.default.vErrors}[${o}]`),n.if((0, J._)`${s}.instancePath === undefined`,()=>n.assign((0, J._)`${s}.instancePath`,(0, J.strConcat)(ke.default.instancePath,a.errorPath))),n.assign((0, J._)`${s}.schemaPath`,(0, J.str)`${a.errSchemaPath}/${e}`),a.opts.verbose&&(n.assign((0, J._)`${s}.schema`,t),n.assign((0, J._)`${s}.data`,r));});}we.extendErrors=KC;function Kf(n,e){let t=n.const("err",e);n.if((0, J._)`${ke.default.vErrors} === null`,()=>n.assign(ke.default.vErrors,(0, J._)`[${t}]`),(0, J._)`${ke.default.vErrors}.push(${t})`),n.code((0, J._)`${ke.default.errors}++`);}function Xf(n,e){let{gen:t,validateName:r,schemaEnv:i}=n;i.$async?t.throw((0, J._)`new ${n.ValidationError}(${e})`):(t.assign((0, J._)`${r}.errors`,e),t.return(false));}var yn={keyword:new J.Name("keyword"),schemaPath:new J.Name("schemaPath"),params:new J.Name("params"),propertyName:new J.Name("propertyName"),message:new J.Name("message"),schema:new J.Name("schema"),parentSchema:new J.Name("parentSchema")};function Yf(n,e,t){let{createErrors:r}=n.it;return r===false?(0, J._)`{}`:XC(n,e,t)}function XC(n,e,t={}){let{gen:r,it:i}=n,a=[YC(i,t),ZC(n,t)];return QC(n,e,a),r.object(...a)}function YC({errorPath:n},{instancePath:e}){let t=e?(0, J.str)`${n}${(0, fs.getErrorPath)(e,fs.Type.Str)}`:n;return [ke.default.instancePath,(0, J.strConcat)(ke.default.instancePath,t)]}function ZC({keyword:n,it:{errSchemaPath:e}},{schemaPath:t,parentSchema:r}){let i=r?e:(0, J.str)`${e}/${n}`;return t&&(i=(0, J.str)`${i}${(0, fs.getErrorPath)(t,fs.Type.Str)}`),[yn.schemaPath,i]}function QC(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([yn.keyword,i],[yn.params,typeof e=="function"?e(n):e||(0, J._)`{}`]),u.messages&&r.push([yn.message,typeof t=="function"?t(n):t]),u.verbose&&r.push([yn.schema,s],[yn.parentSchema,(0, J._)`${c}${h}`],[ke.default.data,a]),l&&r.push([yn.propertyName,l]);}});var Qf=v(Gn=>{Object.defineProperty(Gn,"__esModule",{value:true});Gn.boolOrEmptySchema=Gn.topBoolOrEmptySchema=void 0;var ev=Hr(),tv=I(),nv=Ye(),rv={message:"boolean schema is false"};function iv(n){let{gen:e,schema:t,validateName:r}=n;t===false?Zf(n,false):typeof t=="object"&&t.$async===true?e.return(nv.default.data):(e.assign((0, tv._)`${r}.errors`,null),e.return(true));}Gn.topBoolOrEmptySchema=iv;function sv(n,e){let{gen:t,schema:r}=n;r===false?(t.var(e,false),Zf(n)):t.var(e,true);}Gn.boolOrEmptySchema=sv;function Zf(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, ev.reportError)(i,rv,void 0,e);}});var Qu=v(Jn=>{Object.defineProperty(Jn,"__esModule",{value:true});Jn.getRules=Jn.isJSONType=void 0;var av=["string","number","integer","boolean","null","object","array"],ov=new Set(av);function uv(n){return typeof n=="string"&&ov.has(n)}Jn.isJSONType=uv;function lv(){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:{}}}Jn.getRules=lv;});var el=v(Gt=>{Object.defineProperty(Gt,"__esModule",{value:true});Gt.shouldUseRule=Gt.shouldUseGroup=Gt.schemaHasRulesForType=void 0;function cv({schema:n,self:e},t){let r=e.RULES.types[t];return r&&r!==true&&ep(n,r)}Gt.schemaHasRulesForType=cv;function ep(n,e){return e.rules.some(t=>tp(n,t))}Gt.shouldUseGroup=ep;function tp(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))}Gt.shouldUseRule=tp;});var Ur=v(Ae=>{Object.defineProperty(Ae,"__esModule",{value:true});Ae.reportTypeError=Ae.checkDataTypes=Ae.checkDataType=Ae.coerceAndCheckDataType=Ae.getJSONTypes=Ae.getSchemaTypes=Ae.DataType=void 0;var hv=Qu(),dv=el(),fv=Hr(),k=I(),np=L(),Hn;(function(n){n[n.Correct=0]="Correct",n[n.Wrong=1]="Wrong";})(Hn||(Ae.DataType=Hn={}));function pv(n){let e=rp(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=pv;function rp(n){let e=Array.isArray(n)?n:n?[n]:[];if(e.every(hv.isJSONType))return e;throw new Error("type must be JSONType or JSONType[]: "+e.join(","))}Ae.getJSONTypes=rp;function mv(n,e){let{gen:t,data:r,opts:i}=n,a=gv(e,i.coerceTypes),s=e.length>0&&!(a.length===0&&e.length===1&&(0, dv.schemaHasRulesForType)(n,e[0]));if(s){let o=nl(e,r,i.strictNumbers,Hn.Wrong);t.if(o,()=>{a.length?yv(n,e,a):rl(n);});}return s}Ae.coerceAndCheckDataType=mv;var ip=new Set(["string","number","integer","boolean","null"]);function gv(n,e){return e?n.filter(t=>ip.has(t)||e==="array"&&t==="array"):[]}function yv(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)(ip.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),Cv(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
+ import {ZodType}from'zod';import {PIXIVNJSON_SCHEMA_URL,PixiVNJsonComparationOperators}from'@drincs/pixi-vn-json/constants';import {RegisteredCharacters}from'@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
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 Cv({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=Hn.Correct){let i=r===Hn.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===Hn.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, np.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 vv={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=Ev(n);(0, fv.reportError)(e,vv);}Ae.reportTypeError=rl;function Ev(n){let{gen:e,data:t,schema:r}=n,i=(0, np.schemaRefOrVal)(n,r,"type");return {gen:e,keyword:"type",data:t,schema:r.type,schemaCode:i,schemaValue:i,parentSchema:r,params:{},it:n}}});var ap=v(ps=>{Object.defineProperty(ps,"__esModule",{value:true});ps.assignDefaults=void 0;var Un=I(),_v=L();function Sv(n,e){let{properties:t,items:r}=n.schema;if(e==="object"&&t)for(let i in t)sp(n,i,t[i].default);else e==="array"&&Array.isArray(r)&&r.forEach((i,a)=>sp(n,a,i.default));}ps.assignDefaults=Sv;function sp(n,e,t){let{gen:r,compositeRule:i,data:a,opts:s}=n;if(t===void 0)return;let o=(0, Un._)`${a}${(0, Un.getProperty)(e)}`;if(i){(0, _v.checkStrictMode)(n,`default is ignored for: ${o}`);return}let u=(0, Un._)`${o} === undefined`;s.useDefaults==="empty"&&(u=(0, Un._)`${u} || ${o} === null || ${o} === ""`),r.if(u,(0, Un._)`${o} = ${(0, Un.stringify)(t)}`);}});var Ze=v(X=>{Object.defineProperty(X,"__esModule",{value:true});X.validateUnion=X.validateArray=X.usePattern=X.callValidateCode=X.schemaProperties=X.allSchemaProperties=X.noPropertyInData=X.propertyInData=X.isOwnProperty=X.hasPropFunc=X.reportMissingProp=X.checkMissingProp=X.checkReportMissingProp=void 0;var re=I(),il=L(),Jt=Ye(),bv=L();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();});}X.checkReportMissingProp=Dv;function wv({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}`)))}X.checkMissingProp=wv;function Av(n,e){n.setParams({missingProperty:e},true),n.error();}X.reportMissingProp=Av;function op(n){return n.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0, re._)`Object.prototype.hasOwnProperty`})}X.hasPropFunc=op;function sl(n,e,t){return (0, re._)`${op(n)}.call(${e}, ${t})`}X.isOwnProperty=sl;function Pv(n,e,t,r){let i=(0, re._)`${e}${(0, re.getProperty)(t)} !== undefined`;return r?(0, re._)`${i} && ${sl(n,e,t)}`:i}X.propertyInData=Pv;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}X.noPropertyInData=al;function up(n){return n?Object.keys(n).filter(e=>e!=="__proto__"):[]}X.allSchemaProperties=up;function Tv(n,e){return up(e).filter(t=>!(0, il.alwaysValidSchema)(n,e[t]))}X.schemaProperties=Tv;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=[[Jt.default.instancePath,(0, re.strConcat)(Jt.default.instancePath,a)],[Jt.default.parentData,s.parentData],[Jt.default.parentDataProperty,s.parentDataProperty],[Jt.default.rootData,Jt.default.rootData]];s.opts.dynamicRef&&h.push([Jt.default.dynamicAnchors,Jt.default.dynamicAnchors]);let d=(0, re._)`${c}, ${t.object(...h)}`;return u!==re.nil?(0, re._)`${o}.call(${u}, ${d})`:(0, re._)`${o}(${d})`}X.callValidateCode=Ov;var xv=(0, re._)`new RegExp`;function Fv({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"?xv:(0, bv.useFunc)(n,i)}(${t}, ${r})`})}X.usePattern=Fv;function Nv(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);});}}X.validateArray=Nv;function Iv(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));}X.validateUnion=Iv;});var hp=v(gt=>{Object.defineProperty(gt,"__esModule",{value:true});gt.validateKeywordUsage=gt.validSchemaType=gt.funcKeywordCode=gt.macroKeywordCode=void 0;var Re=I(),Cn=Ye(),kv=Ze(),Rv=Hr();function $v(n,e){let{gen:t,keyword:r,schema:i,parentSchema:a,it:s}=n,o=e.macro.call(s.self,i,a,s),u=cp(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=$v;function Vv(n,e){var t;let{gen:r,keyword:i,schema:a,parentSchema:s,$data:o,it:u}=n;qv(u,e);let l=!o&&e.compile?e.compile.call(u.self,a,s,u):e.validate,c=cp(r,i,l),h=r.let("valid");n.block$data(h,d),n.ok((t=e.valid)!==null&&t!==void 0?t:h);function d(){if(e.errors===false)g(),e.modifying&&lp(n),E(()=>n.error());else {let _=e.async?f():p();e.modifying&&lp(n),E(()=>jv(n,_));}}function f(){let _=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(_,(0, Re._)`${b}.errors`),()=>r.throw(b))),_}function p(){let _=(0, Re._)`${c}.errors`;return r.assign(_,null),g(Re.nil),_}function g(_=e.async?(0, Re._)`await `:Re.nil){let b=u.opts.passContext?Cn.default.this:Cn.default.self,m=!("compile"in e&&!o||e.schema===false);r.assign(h,(0, Re._)`${_}${(0, kv.callValidateCode)(n,c,b,m)}`,e.modifying);}function E(_){var b;r.if((0, Re.not)((b=e.valid)!==null&&b!==void 0?b:h),_);}}gt.funcKeywordCode=Vv;function lp(n){let{gen:e,data:t,it:r}=n;e.if(r.parentData,()=>e.assign(t,(0, Re._)`${r.parentData}[${r.parentDataProperty}]`));}function jv(n,e){let{gen:t}=n;t.if((0, Re._)`Array.isArray(${e})`,()=>{t.assign(Cn.default.vErrors,(0, Re._)`${Cn.default.vErrors} === null ? ${e} : ${Cn.default.vErrors}.concat(${e})`).assign(Cn.default.errors,(0, Re._)`${Cn.default.vErrors}.length`),(0, Rv.extendErrors)(n);},()=>n.error());}function qv({schemaEnv:n},e){if(e.async&&!n.$async)throw new Error("async keyword in sync schema")}function cp(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 Lv(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=Lv;function Bv({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=Bv;});var fp=v(Ht=>{Object.defineProperty(Ht,"__esModule",{value:true});Ht.extendSubschemaMode=Ht.extendSubschemaData=Ht.getSubschema=void 0;var yt=I(),dp=L();function Wv(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, dp.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')}Ht.getSubschema=Wv;function Mv(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,d=o.let("data",(0, yt._)`${e.data}${(0, yt.getProperty)(t)}`,true);u(d),n.errorPath=(0, yt.str)`${l}${(0, dp.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];}}Ht.extendSubschemaData=Mv;function Gv(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;}Ht.extendSubschemaMode=Gv;});var ol=v((uF,pp)=>{pp.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 gp=v((lF,mp)=>{var Ut=mp.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);};Ut.keywords={additionalItems:true,items:true,contains:true,additionalProperties:true,propertyNames:true,not:true,if:true,then:true,else:true};Ut.arrayKeywords={items:true,allOf:true,anyOf:true,oneOf:true};Ut.propsKeywords={$defs:true,definitions:true,properties:true,patternProperties:true,dependencies:true};Ut.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 Ut.arrayKeywords)for(var d=0;d<h.length;d++)ms(n,e,t,h[d],i+"/"+c+"/"+d,a,i,c,r,d);}else if(c in Ut.propsKeywords){if(h&&typeof h=="object")for(var f in h)ms(n,e,t,h[f],i+"/"+c+"/"+Jv(f),a,i,c,r,f);}else (c in Ut.keywords||n.allKeys&&!(c in Ut.skipKeywords))&&ms(n,e,t,h,i+"/"+c,a,i,c,r);}t(r,i,a,s,o,u,l);}}function Jv(n){return n.replace(/~/g,"~0").replace(/\//g,"~1")}});var zr=v(Le=>{Object.defineProperty(Le,"__esModule",{value:true});Le.getSchemaRefs=Le.resolveUrl=Le.normalizeId=Le._getFullPath=Le.getFullPath=Le.inlineRef=void 0;var Hv=L(),Uv=ol(),zv=gp(),Kv=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function Xv(n,e=true){return typeof n=="boolean"?true:e===true?!ul(n):e?yp(n)<=e:false}Le.inlineRef=Xv;var Yv=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function ul(n){for(let e in n){if(Yv.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 yp(n){let e=0;for(let t in n){if(t==="$ref")return 1/0;if(e++,!Kv.has(t)&&(typeof n[t]=="object"&&(0, Hv.eachItem)(n[t],r=>e+=yp(r)),e===1/0))return 1/0}return e}function Cp(n,e="",t){t!==false&&(e=zn(e));let r=n.parse(e);return vp(n,r)}Le.getFullPath=Cp;function vp(n,e){return n.serialize(e).split("#")[0]+"#"}Le._getFullPath=vp;var Zv=/#\/?$/;function zn(n){return n?n.replace(Zv,""):""}Le.normalizeId=zn;function Qv(n,e,t){return t=zn(t),n.resolve(e,t)}Le.resolveUrl=Qv;var eE=/^[a-z_][-a-z0-9._]*$/i;function tE(n,e){if(typeof n=="boolean")return {};let{schemaId:t,uriResolver:r}=this.opts,i=zn(n[t]||e),a={"":i},s=Cp(r,i,false),o={},u=new Set;return zv(n,{allKeys:true},(h,d,f,p)=>{if(p===void 0)return;let g=s+d,E=a[p];typeof h[t]=="string"&&(E=_.call(this,h[t])),b.call(this,h.$anchor),b.call(this,h.$dynamicAnchor),a[d]=E;function _(m){let C=this.opts.uriResolver.resolve;if(m=zn(E?C(E,m):m),u.has(m))throw c(m);u.add(m);let y=this.refs[m];return typeof y=="string"&&(y=this.refs[y]),typeof y=="object"?l(h,y.schema,m):m!==zn(g)&&(m[0]==="#"?(l(h,o[m],m),o[m]=h):this.refs[m]=g),m}function b(m){if(typeof m=="string"){if(!eE.test(m))throw new Error(`invalid anchor "${m}"`);_.call(this,`#${m}`);}}}),o;function l(h,d,f){if(d!==void 0&&!Uv(h,d))throw c(f)}function c(h){return new Error(`reference "${h}" resolves to more than one schema`)}}Le.getSchemaRefs=tE;});var Kn=v(zt=>{Object.defineProperty(zt,"__esModule",{value:true});zt.getData=zt.KeywordCxt=zt.validateFunctionCode=void 0;var Dp=Qf(),Ep=Ur(),cl=el(),gs=Ur(),nE=ap(),Xr=hp(),ll=fp(),T=I(),F=Ye(),rE=zr(),kt=L(),Kr=Hr();function iE(n){if(Pp(n)&&(Tp(n),Ap(n))){oE(n);return}wp(n,()=>(0, Dp.topBoolOrEmptySchema)(n));}zt.validateFunctionCode=iE;function wp({gen:n,validateName:e,schema:t,schemaEnv:r,opts:i},a){i.code.es5?n.func(e,(0, T._)`${F.default.data}, ${F.default.valCxt}`,r.$async,()=>{n.code((0, T._)`"use strict"; ${_p(t,i)}`),aE(n,i),n.code(a);}):n.func(e,(0, T._)`${F.default.data}, ${sE(i)}`,r.$async,()=>n.code(_p(t,i)).code(a));}function sE(n){return (0, T._)`{${F.default.instancePath}="", ${F.default.parentData}, ${F.default.parentDataProperty}, ${F.default.rootData}=${F.default.data}${n.dynamicRef?(0, T._)`, ${F.default.dynamicAnchors}={}`:T.nil}}={}`}function aE(n,e){n.if(F.default.valCxt,()=>{n.var(F.default.instancePath,(0, T._)`${F.default.valCxt}.${F.default.instancePath}`),n.var(F.default.parentData,(0, T._)`${F.default.valCxt}.${F.default.parentData}`),n.var(F.default.parentDataProperty,(0, T._)`${F.default.valCxt}.${F.default.parentDataProperty}`),n.var(F.default.rootData,(0, T._)`${F.default.valCxt}.${F.default.rootData}`),e.dynamicRef&&n.var(F.default.dynamicAnchors,(0, T._)`${F.default.valCxt}.${F.default.dynamicAnchors}`);},()=>{n.var(F.default.instancePath,(0, T._)`""`),n.var(F.default.parentData,(0, T._)`undefined`),n.var(F.default.parentDataProperty,(0, T._)`undefined`),n.var(F.default.rootData,F.default.data),e.dynamicRef&&n.var(F.default.dynamicAnchors,(0, T._)`{}`);});}function oE(n){let{schema:e,opts:t,gen:r}=n;wp(n,()=>{t.$comment&&e.$comment&&xp(n),dE(n),r.let(F.default.vErrors,null),r.let(F.default.errors,0),t.unevaluated&&uE(n),Op(n),mE(n);});}function uE(n){let{gen:e,validateName:t}=n;n.evaluated=e.const("evaluated",(0, T._)`${t}.evaluated`),e.if((0, T._)`${n.evaluated}.dynamicProps`,()=>e.assign((0, T._)`${n.evaluated}.props`,(0, T._)`undefined`)),e.if((0, T._)`${n.evaluated}.dynamicItems`,()=>e.assign((0, T._)`${n.evaluated}.items`,(0, T._)`undefined`));}function _p(n,e){let t=typeof n=="object"&&n[e.schemaId];return t&&(e.code.source||e.code.process)?(0, T._)`/*# sourceURL=${t} */`:T.nil}function lE(n,e){if(Pp(n)&&(Tp(n),Ap(n))){cE(n,e);return}(0, Dp.boolOrEmptySchema)(n,e);}function Ap({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 Pp(n){return typeof n.schema!="boolean"}function cE(n,e){let{schema:t,gen:r,opts:i}=n;i.$comment&&t.$comment&&xp(n),fE(n),pE(n);let a=r.const("_errs",F.default.errors);Op(n,a),r.var(e,(0, T._)`${a} === ${F.default.errors}`);}function Tp(n){(0, kt.checkUnknownRules)(n),hE(n);}function Op(n,e){if(n.opts.jtd)return Sp(n,[],false,e);let t=(0, Ep.getSchemaTypes)(n.schema),r=(0, Ep.coerceAndCheckDataType)(n,t);Sp(n,t,!r,e);}function hE(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 dE(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 fE(n){let e=n.schema[n.opts.schemaId];e&&(n.baseId=(0, rE.resolveUrl)(n.opts.uriResolver,n.baseId,e));}function pE(n){if(n.schema.$async&&!n.schemaEnv.$async)throw new Error("async schema in sync schema")}function xp({gen:n,schemaEnv:e,schema:t,errSchemaPath:r,opts:i}){let a=t.$comment;if(i.$comment===true)n.code((0, T._)`${F.default.self}.logger.log(${a})`);else if(typeof i.$comment=="function"){let s=(0, T.str)`${r}/$comment`,o=n.scopeValue("root",{ref:e.root});n.code((0, T._)`${F.default.self}.opts.$comment(${a}, ${s}, ${o}.schema)`);}}function mE(n){let{gen:e,schemaEnv:t,validateName:r,ValidationError:i,opts:a}=n;t.$async?e.if((0, T._)`${F.default.errors} === 0`,()=>e.return(F.default.data),()=>e.throw((0, T._)`new ${i}(${F.default.vErrors})`)):(e.assign((0, T._)`${r}.errors`,F.default.vErrors),a.unevaluated&&gE(n),e.return((0, T._)`${F.default.errors} === 0`));}function gE({gen:n,evaluated:e,props:t,items:r}){t instanceof T.Name&&n.assign((0, T._)`${e}.props`,t),r instanceof T.Name&&n.assign((0, T._)`${e}.items`,r);}function Sp(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(()=>Np(n,"$ref",c.all.$ref.definition));return}u.jtd||yE(n,e),i.block(()=>{for(let d of c.rules)h(d);h(c.post);});function h(d){(0, cl.shouldUseGroup)(a,d)&&(d.type?(i.if((0, gs.checkDataType)(d.type,s,u.strictNumbers)),bp(n,d),e.length===1&&e[0]===d.type&&t&&(i.else(),(0, gs.reportTypeError)(n)),i.endIf()):bp(n,d),o||i.if((0, T._)`${F.default.errors} === ${r||0}`));}}function bp(n,e){let{gen:t,schema:r,opts:{useDefaults:i}}=n;i&&(0, nE.assignDefaults)(n,e.type),t.block(()=>{for(let a of e.rules)(0, cl.shouldUseRule)(r,a)&&Np(n,a.keyword,a.definition,e.type);});}function yE(n,e){n.schemaEnv.meta||!n.opts.strictTypes||(CE(n,e),n.opts.allowUnionTypes||vE(n,e),EE(n,n.dataTypes));}function CE(n,e){if(e.length){if(!n.dataTypes.length){n.dataTypes=e;return}e.forEach(t=>{Fp(n.dataTypes,t)||hl(n,`type "${t}" not allowed by context "${n.dataTypes.join(",")}"`);}),SE(n,e);}}function vE(n,e){e.length>1&&!(e.length===2&&e.includes("null"))&&hl(n,"use allowUnionTypes to allow union type keyword");}function EE(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=>_E(e,s))&&hl(n,`missing type "${a.join(",")}" for keyword "${r}"`);}}}function _E(n,e){return n.includes(e)||e==="number"&&n.includes("integer")}function Fp(n,e){return n.includes(e)||e==="integer"&&n.includes("number")}function SE(n,e){let t=[];for(let r of n.dataTypes)Fp(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",Ip(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",F.default.errors));}result(e,t,r){this.failResult((0, T.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, T.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, T._)`${t} !== undefined && (${(0, T.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=T.nil){this.gen.block(()=>{this.check$data(e,r),t();});}check$data(e=T.nil,t=T.nil){if(!this.$data)return;let{gen:r,schemaCode:i,schemaType:a,def:s}=this;r.if((0, T.or)((0, T._)`${i} === undefined`,t)),e!==T.nil&&r.assign(e,true),(a.length||s.validateSchema)&&(r.elseIf(this.invalid$data()),this.$dataError(),e!==T.nil&&r.assign(e,false)),r.else();}invalid$data(){let{gen:e,schemaCode:t,schemaType:r,def:i,it:a}=this;return (0, T.or)(s(),o());function s(){if(r.length){if(!(t instanceof T.Name))throw new Error("ajv implementation error");let u=Array.isArray(r)?r:[r];return (0, T._)`${(0, gs.checkDataTypes)(u,t,a.opts.strictNumbers,gs.DataType.Wrong)}`}return T.nil}function o(){if(i.validateSchema){let u=e.scopeValue("validate$data",{ref:i.validateSchema});return (0, T._)`!${u}(${t})`}return T.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 lE(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,T.Name)),true}};zt.KeywordCxt=ys;function Np(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 bE=/^\/(?:[^~]|~0|~1)*$/,DE=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function Ip(n,{dataLevel:e,dataNames:t,dataPathArr:r}){let i,a;if(n==="")return F.default.rootData;if(n[0]==="/"){if(!bE.test(n))throw new Error(`Invalid JSON-pointer: ${n}`);i=n,a=F.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, T._)`${a}${(0, T.getProperty)((0, kt.unescapeJsonPointer)(l))}`,s=(0, T._)`${s} && ${a}`);return s;function u(l,c){return `Cannot access ${l} ${c} levels up, current level is ${e}`}}zt.getData=Ip;});var Yr=v(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 Xn=v(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=v(Qe=>{Object.defineProperty(Qe,"__esModule",{value:true});Qe.resolveSchema=Qe.getCompilingSchema=Qe.resolveRef=Qe.compileSchema=Qe.SchemaEnv=void 0;var ct=I(),wE=Yr(),vn=Ye(),ht=zr(),kp=L(),AE=Kn(),Yn=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=Yn;function Cl(n){let e=Rp.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:wE.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:vn.default.data,parentData:vn.default.parentData,parentDataProperty:vn.default.parentDataProperty,dataNames:[vn.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,AE.validateFunctionCode)(l),s.optimize(this.opts.code.optimize);let h=s.toString();c=`${s.scopeRefs(vn.default.scope)}return ${h}`,this.opts.code.process&&(c=this.opts.code.process(c,n));let f=new Function(`${vn.default.self}`,`${vn.default.scope}`,c)(this,this.scope.get());if(this.scope.value(u,{ref:f}),f.errors=null,f.schema=n.schema,f.schemaEnv=n,n.$async&&(f.$async=!0),this.opts.code.source===!0&&(f.source={validateName:u,validateCode:h,scopeValues:s._values}),this.opts.unevaluated){let{props:p,items:g}=l;f.evaluated={props:p instanceof ct.Name?void 0:p,items:g instanceof ct.Name?void 0:g,dynamicProps:p instanceof ct.Name,dynamicItems:g instanceof ct.Name},f.source&&(f.source.evaluated=(0,ct.stringify)(f.evaluated));}return n.validate=f,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 PE(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=xE.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 Yn({schema:s,schemaId:o,root:n,baseId:e}));}if(a!==void 0)return n.refs[t]=TE.call(this,a)}Qe.resolveRef=PE;function TE(n){return (0, ht.inlineRef)(n.schema,this.opts.inlineRefs)?n.schema:n.validate?n:Cl.call(this,n)}function Rp(n){for(let e of this._compilations)if(OE(e,n))return e}Qe.getCompilingSchema=Rp;function OE(n,e){return n.schema===e.schema&&n.root===e.root&&n.baseId===e.baseId}function xE(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 Yn({schema:o,schemaId:u,root:n,baseId:i})}return yl.call(this,t,s)}}Qe.resolveSchema=Cs;var FE=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, kp.unescapeFragment)(o)];if(u===void 0)return;t=u;let l=typeof t=="object"&&t[this.opts.schemaId];!FE.has(o)&&l&&(e=(0, ht.resolveUrl)(this.opts.uriResolver,e,l));}let a;if(typeof t!="boolean"&&t.$ref&&!(0, kp.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 Yn({schema:t,schemaId:s,root:r,baseId:e}),a.schema!==a.root.schema)return a}});var $p=v((mF,NE)=>{NE.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=v((gF,Mp)=>{var IE=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),En=RegExp.prototype.test.bind(/^[\da-f]{2}$/iu),_l=RegExp.prototype.test.bind(/^[\da-z\-._~]$/iu),jp=RegExp.prototype.test.bind(/^[A-Za-z0-9\-._~!$&'()*+,;=:@/]$/u),Sl=RegExp.prototype.test.bind(/^[A-Za-z0-9\-._~!$&'()*+,;=:@/?]$/u),kE=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 RE(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 $E=RegExp.prototype.test.bind(/^[\dA-Fa-f]{1,4}$/),VE=RegExp.prototype.test.bind(/^[vV][\dA-Fa-f]+\.[A-Za-z\d\-._~!$&'()*+,;=:]+$/),jE=RegExp.prototype.test.bind(/^[A-Za-z\d\-._~]$/),qE=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function LE(n){if(n.length===0)return false;for(let e=0;e<n.length;e++)if(!jE(n[e])){if(n[e]==="%"&&e+2<n.length&&En(n.slice(e+1,e+3))){e+=2;continue}return false}return true}function Vp(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 BE(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(!$E(u))return;i[o]=parseInt(u,16).toString(16),a++;}if(e===-1)return a!==8?void 0:Vp(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 Vp(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&&VE(r))return r=r.toLowerCase(),{host:`[${r}]`,escapedHost:r,isIPV6:false,isIPVFuture:true};if(WE(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),!LE(i))return {host:n,isIPV6:false,error:true};r=r.slice(0,a);}let s=BE(r);return s===void 0?{host:n,isIPV6:false,error:true}:{host:s+(i?"%"+i:""),escapedHost:s+(i?"%25"+i:""),isIPV6:true}}function WE(n,e){let t=0;for(let r=0;r<n.length;r++)n[r]===e&&t++;return t}function ME(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 GE={"@":"%40","/":"%2F","?":"%3F","#":"%23",":":"%3A"},JE=/[@/?#:]/g,HE=/[@/?#]/g;function qp(n,e){let t=e?HE:JE;return t.lastIndex=0,n.replace(t,r=>GE[r])}function Lp(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(En(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 UE(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(En(i)){let a=i.toUpperCase(),s=String.fromCharCode(parseInt(a,16));s!=="."&&_l(s)?e+=s:e+="%"+a,t+=2;continue}}if(jp(r))e+=r;else {let i=n.charCodeAt(t);if(i<128)e+=Wp(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 zE(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(En(s)){t+="%"+s.toUpperCase(),i+=2;continue}}if(a==="/"&&(r=false),jp(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(En(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 Bp(n){return bl(n,kE)}function KE(n){return bl(n,Sl)}function XE(n){return bl(n,Sl)}function Wp(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 YE(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(En(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+=Wp(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 ZE(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(En(r)){e+="%"+r.toUpperCase(),t+=2;continue}}e+=escape(n[t]);}return e}function QE(n){let e=[];if(n.userinfo!==void 0&&(e.push(Bp(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=Lp(t,true),r=vl(t)),r.isIPV6===true||r.isIPVFuture===true?t=`[${r.escapedHost}]`:t=qp(t,false);}e.push(t);}return (typeof n.port=="number"||typeof n.port=="string")&&(e.push(":"),e.push(String(n.port))),e.length?e.join(""):void 0}Mp.exports={nonSimpleDomain:qE,recomposeAuthority:QE,reescapeHostDelimiters:qp,normalizePercentEncoding:Lp,normalizePathEncoding:UE,serializePathEncoding:zE,normalizeQueryFragmentEncoding:YE,encodeUserinfo:Bp,encodeQuery:KE,encodeFragment:XE,escapePreservingEscapes:ZE,removeDotSegments:ME,isIPv4:El,isUUID:IE,normalizeIPv6:vl,stringArrayToHexStripped:RE};});var zp=v((yF,Up)=>{var{isUUID:e_}=Dl(),t_=/^([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-./:;=@]|%[\da-f]{2})+)$/iu,n_=["http","https","ws","wss","urn","urn:uuid"];function r_(n){return n_.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 Gp(n){return n.host||(n.error=n.error||"HTTP URIs must have a host."),n}function Jp(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 i_(n){return n.secure=wl(n),n.resourceName=(n.path||"/")+(n.query?"?"+n.query:""),n.path=void 0,n.query=void 0,n}function s_(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 a_(n,e){if(!n.path)return n.error="URN can not be parsed",n;let t=n.path.match(t_);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 o_(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 u_(n,e){let t=n;return t.uuid=t.nss,t.nss=void 0,!e.tolerant&&(!t.uuid||!e_(t.uuid))&&(t.error=t.error||"UUID is not valid."),t}function l_(n){let e=n;return e.nss=(n.uuid||"").toLowerCase(),e}var Hp={scheme:"http",domainHost:true,parse:Gp,serialize:Jp},c_={scheme:"https",domainHost:Hp.domainHost,parse:Gp,serialize:Jp},vs={scheme:"ws",domainHost:true,parse:i_,serialize:s_},h_={scheme:"wss",domainHost:vs.domainHost,parse:vs.parse,serialize:vs.serialize},d_={scheme:"urn",parse:a_,serialize:o_,skipNormalize:true},f_={scheme:"urn:uuid",parse:u_,serialize:l_,skipNormalize:true},Es={http:Hp,https:c_,ws:vs,wss:h_,urn:d_,"urn:uuid":f_};Object.setPrototypeOf(Es,null);function Al(n){return n&&(Es[n]||Es[n.toLowerCase()])||void 0}Up.exports={wsIsSecure:wl,SCHEMES:Es,isValidSchemeName:r_,getSchemeHandler:Al};});var um=v((CF,bs)=>{var{normalizeIPv6:Qp,removeDotSegments:ei,recomposeAuthority:p_,normalizePercentEncoding:em,normalizePathEncoding:m_,serializePathEncoding:Kp,normalizeQueryFragmentEncoding:Xp,encodeQuery:g_,encodeFragment:y_,reescapeHostDelimiters:C_,isIPv4:tm,nonSimpleDomain:v_}=Dl(),{SCHEMES:nm,getSchemeHandler:Pl}=zp(),rm=/^[A-Za-z][A-Za-z0-9+.-]*$/u,im="URI scheme is malformed.";function Yp(n){let e=unescape(String(n));if(!rm.test(e))throw new TypeError(im);return e}function E_(n,e){return typeof n=="string"?n=T_(n,e):typeof n=="object"&&(n=Ss(_n(n,e),e)),n}function __(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:d,malformedSchemeSpecific:f,malformedHost:p,malformedScheme:g}=_s(e,r);if(a||h||s||d||o||f||u||p||l||g)throw new Error(i.error||c.error||"URI is malformed.");let E=sm(i,c,r,true),_=Pl(t&&t.scheme||E.scheme),b=E.host,m=b!==void 0&&b!==""&&(tm(b)||Qp(b).isIPV6);am(E,t||{},_,m);let C=b&&b.indexOf("%")!==-1&&!/\P{ASCII}/u.test(b);if(E.error&&!C)throw new Error(E.error);return r.skipEscape=true,_n(E,r)}function sm(n,e,t,r){let i={};return r||(n=Ss(_n(n,t),t),e=Ss(_n(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 S_(n,e,t){let r=Zp(n,t),i=Zp(e,t);return r!==void 0&&i!==void 0&&r===i}function _n(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=Yp(t.scheme));let a=Pl(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=em(t.path):t.path=Kp(t.path,o)),r.reference!=="suffix"&&t.scheme&&(t.scheme=Yp(t.scheme),i.push(t.scheme,":"));let u=p_(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=Kp(l,true)),u===void 0&&l[0]==="/"&&l[1]==="/"&&(l="/%2F"+l.slice(2)),i.push(l);}return t.query!==void 0&&i.push("?",g_(t.query)),t.fragment!==void 0&&i.push("#",y_(t.fragment)),i.join("")}var b_=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u,D_=/^(?:[^#/:?]+:)?\/\/([^/?#]*)/,w_=/^(?:[^#/:?]+:)?([/\\\t\n\r]*)/;function A_(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 P_(n){let e=n[4];return Qr(n[3])||e!==void 0&&!(e[0]==="["&&e[e.length-1]==="]")&&Qr(e)||Qr(n[6])||Qr(n[7])||Qr(n[8])}function am(n,e,t,r){if(!e.unicodeSupport&&(!t||!t.unicodeSupport)&&n.host&&n.host[0]!=="["&&(e.domainHost||t&&t.domainHost)&&r===false&&v_(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(D_);h!==null&&h[1].indexOf("\\")!==-1&&(r.error="URI authority must not contain a literal backslash.",i=true);let d=n.match(w_);if(d!==null){let p=d[1],g=p.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):p.length!==g.length&&(r.error=r.error||"URI authority introducer must not contain whitespace.",i=true));}let f=n.match(b_);if(f){if(r.scheme=f[1],r.userinfo=f[3],r.host=f[4],r.port=parseInt(f[5],10),r.path=f[6]||"",r.query=f[7],r.fragment=f[8],r.scheme!==void 0){let E=unescape(r.scheme);rm.test(E)?r.scheme=E.toLowerCase():(r.error=r.error||im,l=true);}a=P_(f),a&&(r.error=r.error||"URI contains malformed percent-encoding."),isNaN(r.port)&&(r.port=f[5]);let p=A_(r,f);if(p!==void 0&&(r.error=r.error||p,i=true),r.host)if(tm(r.host)===false){let _=r.host[0]==="["&&r.host[r.host.length-1]==="]",b=Qp(r.host);c=b.isIPV6||b.isIPVFuture===true,u=_&&b.error===true,r.host=c?b.host:b.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=Pl(t.scheme||r.scheme);if(o=am(r,t,g,c),!g||g&&!g.skipNormalize){if(n.indexOf("%")!==-1&&r.host!==void 0&&!u){let E=c?r.host:em(r.host,true);r.host=C_(E,c);}r.path&&(r.path=m_(r.path)),r.query&&(r.query=Xp(r.query)),r.fragment&&(r.fragment=Xp(r.fragment));}g&&g.parse&&(g.parse(r,t),g===nm.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 T_(n,e){return om(n,e).normalized}function om(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:_n(t,e),malformedAuthorityOrPort:r,malformedPercentEncoding:i,malformedSchemeSpecific:a,malformedHost:s,malformedScheme:o}}function Zp(n,e){if(typeof n!="string"&&typeof n!="object")return;let t;try{t=typeof n=="string"?n:_n(n,e);}catch{return}let{normalized:r,malformedAuthorityOrPort:i,malformedPercentEncoding:a,malformedSchemeSpecific:s,malformedHost:o,malformedScheme:u}=om(t,e);return i||a||s||o||u?void 0:r}var Tl={SCHEMES:nm,normalize:E_,resolve:__,resolveComponent:sm,equal:S_,serialize:_n,parse:Ss};bs.exports=Tl;bs.exports.default=Tl;bs.exports.fastUri=Tl;});var cm=v(Ol=>{Object.defineProperty(Ol,"__esModule",{value:true});var lm=um();lm.code='require("ajv/dist/runtime/uri").default';Ol.default=lm;});var Nl=v(Ee=>{Object.defineProperty(Ee,"__esModule",{value:true});Ee.CodeGen=Ee.Name=Ee.nil=Ee.stringify=Ee.str=Ee._=Ee.KeywordCxt=void 0;var O_=Kn();Object.defineProperty(Ee,"KeywordCxt",{enumerable:true,get:function(){return O_.KeywordCxt}});var Zn=I();Object.defineProperty(Ee,"_",{enumerable:true,get:function(){return Zn._}});Object.defineProperty(Ee,"str",{enumerable:true,get:function(){return Zn.str}});Object.defineProperty(Ee,"stringify",{enumerable:true,get:function(){return Zn.stringify}});Object.defineProperty(Ee,"nil",{enumerable:true,get:function(){return Zn.nil}});Object.defineProperty(Ee,"Name",{enumerable:true,get:function(){return Zn.Name}});Object.defineProperty(Ee,"CodeGen",{enumerable:true,get:function(){return Zn.CodeGen}});var x_=Yr(),mm=Xn(),F_=Qu(),ti=Zr(),N_=I(),ni=zr(),Ds=Ur(),Fl=L(),hm=$p(),I_=cm(),gm=(n,e)=>new RegExp(n,e);gm.code="new RegExp";var k_=["removeAdditional","useDefaults","coerceTypes"],R_=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),$_={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."},V_={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},dm=200;function j_(n){var e,t,r,i,a,s,o,u,l,c,h,d,f,p,g,E,_,b,m,C,y,S,w,P,A;let R=n.strict,be=(e=n.code)===null||e===void 0?void 0:e.optimize,qt=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:gm,jn=(i=n.uriResolver)!==null&&i!==void 0?i:I_.default;return {strictSchema:(s=(a=n.strictSchema)!==null&&a!==void 0?a:R)!==null&&s!==void 0?s:true,strictNumbers:(u=(o=n.strictNumbers)!==null&&o!==void 0?o:R)!==null&&u!==void 0?u:true,strictTypes:(c=(l=n.strictTypes)!==null&&l!==void 0?l:R)!==null&&c!==void 0?c:"log",strictTuples:(d=(h=n.strictTuples)!==null&&h!==void 0?h:R)!==null&&d!==void 0?d:"log",strictRequired:(p=(f=n.strictRequired)!==null&&f!==void 0?f:R)!==null&&p!==void 0?p:false,code:n.code?{...n.code,optimize:qt,regExp:Nr}:{optimize:qt,regExp:Nr},loopRequired:(g=n.loopRequired)!==null&&g!==void 0?g:dm,loopEnum:(E=n.loopEnum)!==null&&E!==void 0?E:dm,meta:(_=n.meta)!==null&&_!==void 0?_:true,messages:(b=n.messages)!==null&&b!==void 0?b:true,inlineRefs:(m=n.inlineRefs)!==null&&m!==void 0?m:true,schemaId:(C=n.schemaId)!==null&&C!==void 0?C:"$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:(P=n.unicodeRegExp)!==null&&P!==void 0?P:true,int32range:(A=n.int32range)!==null&&A!==void 0?A:true,uriResolver:jn}}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,...j_(e)};let{es5:t,lines:r}=this.opts.code;this.scope=new N_.ValueScope({scope:{},prefixes:R_,es5:t,lines:r}),this.logger=G_(e.logger);let i=e.validateFormats;e.validateFormats=false,this.RULES=(0, F_.getRules)(),fm.call(this,$_,e,"NOT SUPPORTED"),fm.call(this,V_,e,"DEPRECATED","warn"),this._metaOpts=W_.call(this),e.formats&&L_.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),e.keywords&&B_.call(this,e.keywords),typeof e.meta=="object"&&this.addMetaSchema(e.meta),q_.call(this),e.validateFormats=i;}_addVocabularies(){this.addKeyword("$async");}_addDefaultMetaSchema(){let{$data:e,meta:t,schemaId:r}=this.opts,i=hm;r==="id"&&(i={...hm},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 d=this._addSchema(c,h);return d.validate||s.call(this,d)}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 mm.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=pm.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=pm.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(H_.call(this,r,t),!t)return (0, Fl.eachItem)(r,a=>xl.call(this,a)),this;z_.call(this,t);let i={...t,type:(0, Ds.getJSONTypes)(t.type),schemaType:(0, Ds.getJSONTypes)(t.schemaType)};return (0, Fl.eachItem)(r,i.type.length===0?a=>xl.call(this,a,i):a=>i.type.forEach(s=>xl.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]=ym(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=x_.default;ri.MissingRefError=mm.default;Ee.default=ri;function fm(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 pm(n){return n=(0, ni.normalizeId)(n),this.schemas[n]||this.refs[n]}function q_(){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 L_(){for(let n in this.opts.formats){let e=this.opts.formats[n];e&&this.addFormat(n,e);}}function B_(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 W_(){let n={...this.opts};for(let e of k_)delete n[e];return n}var M_={log(){},warn(){},error(){}};function G_(n){if(n===false)return M_;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 J_=/^[a-z_$][a-z0-9_$:-]*$/i;function H_(n,e){let{RULES:t}=this;if((0, Fl.eachItem)(n,r=>{if(t.keywords[r])throw new Error(`Keyword ${r} is already defined`);if(!J_.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 xl(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?U_.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 U_(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 z_(n){let{metaSchema:e}=n;e!==void 0&&(n.$data&&this.opts.$data&&(e=ym(e)),n.validateSchema=this.compile(e,true));}var K_={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function ym(n){return {anyOf:[n,K_]}}});var Cm=v(Il=>{Object.defineProperty(Il,"__esModule",{value:true});var X_={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};Il.default=X_;});var Ps=v(Sn=>{Object.defineProperty(Sn,"__esModule",{value:true});Sn.callRef=Sn.getValidate=void 0;var Y_=Xn(),vm=Ze(),We=I(),Qn=Ye(),Em=Zr(),ws=L(),Z_={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=Em.resolveRef.call(u,l,i,t);if(c===void 0)throw new Y_.default(r.opts.uriResolver,i,t);if(c instanceof Em.SchemaEnv)return d(c);return f(c);function h(){if(a===l)return As(n,s,a,a.$async);let p=e.scopeValue("root",{ref:l});return As(n,(0, We._)`${p}.validate`,l,l.$async)}function d(p){let g=_m(n,p);As(n,g,p,p.$async);}function f(p){let g=e.scopeValue("schema",o.code.source===true?{ref:p,code:(0, We.stringify)(p)}:{ref:p}),E=e.name("valid"),_=n.subschema({schema:p,dataTypes:[],schemaPath:We.nil,topSchemaRef:g,errSchemaPath:t},E);n.mergeEvaluated(_),n.ok(E);}}};function _m(n,e){let{gen:t}=n;return e.validate?t.scopeValue("validate",{ref:e.validate}):(0, We._)`${t.scopeValue("wrapper",{ref:e})}.validate`}Sn.getValidate=_m;function As(n,e,t,r){let{gen:i,it:a}=n,{allErrors:s,schemaEnv:o,opts:u}=a,l=u.passContext?Qn.default.this:We.nil;r?c():h();function c(){if(!o.$async)throw new Error("async schema referenced by sync schema");let p=i.let("valid");i.try(()=>{i.code((0, We._)`await ${(0, vm.callValidateCode)(n,e,l)}`),f(e),s||i.assign(p,true);},g=>{i.if((0, We._)`!(${g} instanceof ${a.ValidationError})`,()=>i.throw(g)),d(g),s||i.assign(p,false);}),n.ok(p);}function h(){n.result((0, vm.callValidateCode)(n,e,l),()=>f(e),()=>d(e));}function d(p){let g=(0, We._)`${p}.errors`;i.assign(Qn.default.vErrors,(0, We._)`${Qn.default.vErrors} === null ? ${g} : ${Qn.default.vErrors}.concat(${g})`),i.assign(Qn.default.errors,(0, We._)`${Qn.default.vErrors}.length`);}function f(p){var g;if(!a.opts.unevaluated)return;let E=(g=t?.validate)===null||g===void 0?void 0:g.evaluated;if(a.props!==true)if(E&&!E.dynamicProps)E.props!==void 0&&(a.props=ws.mergeEvaluated.props(i,E.props,a.props));else {let _=i.var("props",(0, We._)`${p}.evaluated.props`);a.props=ws.mergeEvaluated.props(i,_,a.props,We.Name);}if(a.items!==true)if(E&&!E.dynamicItems)E.items!==void 0&&(a.items=ws.mergeEvaluated.items(i,E.items,a.items));else {let _=i.var("items",(0, We._)`${p}.evaluated.items`);a.items=ws.mergeEvaluated.items(i,_,a.items,We.Name);}}}Sn.callRef=As;Sn.default=Z_;});var Rl=v(kl=>{Object.defineProperty(kl,"__esModule",{value:true});var Q_=Cm(),eS=Ps(),tS=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",Q_.default,eS.default];kl.default=tS;});var Sm=v($l=>{Object.defineProperty($l,"__esModule",{value:true});var Ts=I(),Kt=Ts.operators,Os={maximum:{okStr:"<=",ok:Kt.LTE,fail:Kt.GT},minimum:{okStr:">=",ok:Kt.GTE,fail:Kt.LT},exclusiveMaximum:{okStr:"<",ok:Kt.LT,fail:Kt.GTE},exclusiveMinimum:{okStr:">",ok:Kt.GT,fail:Kt.LTE}},nS={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}}`},rS={keyword:Object.keys(Os),type:"number",schemaType:"number",$data:true,error:nS,code(n){let{keyword:e,data:t,schemaCode:r}=n;n.fail$data((0, Ts._)`${t} ${Os[e].fail} ${r} || isNaN(${t})`);}};$l.default=rS;});var bm=v(Vl=>{Object.defineProperty(Vl,"__esModule",{value:true});var ii=I(),iS={message:({schemaCode:n})=>(0, ii.str)`must be multiple of ${n}`,params:({schemaCode:n})=>(0, ii._)`{multipleOf: ${n}}`},sS={keyword:"multipleOf",type:"number",schemaType:"number",$data:true,error:iS,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}))`);}};Vl.default=sS;});var wm=v(jl=>{Object.defineProperty(jl,"__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}jl.default=Dm;Dm.code='require("ajv/dist/runtime/ucs2length").default';});var Am=v(ql=>{Object.defineProperty(ql,"__esModule",{value:true});var bn=I(),aS=L(),oS=wm(),uS={message({keyword:n,schemaCode:e}){let t=n==="maxLength"?"more":"fewer";return (0, bn.str)`must NOT have ${t} than ${e} characters`},params:({schemaCode:n})=>(0, bn._)`{limit: ${n}}`},lS={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:true,error:uS,code(n){let{keyword:e,data:t,schemaCode:r,it:i}=n,a=e==="maxLength"?bn.operators.GT:bn.operators.LT,s=i.opts.unicode===false?(0, bn._)`${t}.length`:(0, bn._)`${(0, aS.useFunc)(n.gen,oS.default)}(${t})`;n.fail$data((0, bn._)`${s} ${a} ${r}`);}};ql.default=lS;});var Pm=v(Ll=>{Object.defineProperty(Ll,"__esModule",{value:true});var cS=Ze(),hS=L(),er=I(),dS={message:({schemaCode:n})=>(0, er.str)`must match pattern "${n}"`,params:({schemaCode:n})=>(0, er._)`{pattern: ${n}}`},fS={keyword:"pattern",type:"string",schemaType:"string",$data:true,error:dS,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, er._)`new RegExp`:(0, hS.useFunc)(e,u),c=e.let("valid");e.try(()=>e.assign(c,(0, er._)`${l}(${a}, ${o}).test(${t})`),()=>e.assign(c,false)),n.fail$data((0, er._)`!${c}`);}else {let u=(0, cS.usePattern)(n,i);n.fail$data((0, er._)`!${u}.test(${t})`);}}};Ll.default=fS;});var Tm=v(Bl=>{Object.defineProperty(Bl,"__esModule",{value:true});var si=I(),pS={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}}`},mS={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:true,error:pS,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}`);}};Bl.default=mS;});var Om=v(Wl=>{Object.defineProperty(Wl,"__esModule",{value:true});var ai=Ze(),oi=I(),gS=L(),yS={message:({params:{missingProperty:n}})=>(0, oi.str)`must have required property '${n}'`,params:({params:{missingProperty:n}})=>(0, oi._)`{missingProperty: ${n}}`},CS={keyword:"required",type:"object",schemaType:"array",$data:true,error:yS,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 f=n.parentSchema.properties,{definedProperties:p}=n.it;for(let g of t)if(f?.[g]===void 0&&!p.has(g)){let E=s.schemaEnv.baseId+s.errSchemaPath,_=`required property "${g}" is not defined at "${E}" (strictRequired)`;(0, gS.checkStrictMode)(s,_,s.opts.strictRequired);}}function l(){if(u||a)n.block$data(oi.nil,h);else for(let f of t)(0, ai.checkReportMissingProp)(n,f);}function c(){let f=e.let("missing");if(u||a){let p=e.let("valid",true);n.block$data(p,()=>d(f,p)),n.ok(p);}else e.if((0, ai.checkMissingProp)(n,t,f)),(0, ai.reportMissingProp)(n,f),e.else();}function h(){e.forOf("prop",r,f=>{n.setParams({missingProperty:f}),e.if((0, ai.noPropertyInData)(e,i,f,o.ownProperties),()=>n.error());});}function d(f,p){n.setParams({missingProperty:f}),e.forOf(f,r,()=>{e.assign(p,(0, ai.propertyInData)(e,i,f,o.ownProperties)),e.if((0, oi.not)(p),()=>{n.error(),e.break();});},oi.nil);}}};Wl.default=CS;});var xm=v(Ml=>{Object.defineProperty(Ml,"__esModule",{value:true});var ui=I(),vS={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}}`},ES={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:true,error:vS,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}`);}};Ml.default=ES;});var xs=v(Gl=>{Object.defineProperty(Gl,"__esModule",{value:true});var Fm=ol();Fm.code='require("ajv/dist/runtime/equal").default';Gl.default=Fm;});var Nm=v(Hl=>{Object.defineProperty(Hl,"__esModule",{value:true});var Jl=Ur(),_e=I(),_S=L(),SS=xs(),bS={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}}`},DS={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:true,error:bS,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, Jl.getSchemaTypes)(a.items):[];n.block$data(u,c,(0, _e._)`${s} === false`),n.ok(u);function c(){let p=e.let("i",(0, _e._)`${t}.length`),g=e.let("j");n.setParams({i:p,j:g}),e.assign(u,true),e.if((0, _e._)`${p} > 1`,()=>(h()?d:f)(p,g));}function h(){return l.length>0&&!l.some(p=>p==="object"||p==="array")}function d(p,g){let E=e.name("item"),_=(0, Jl.checkDataTypes)(l,E,o.opts.strictNumbers,Jl.DataType.Wrong),b=e.const("indices",(0, _e._)`{}`);e.for((0, _e._)`;${p}--;`,()=>{e.let(E,(0, _e._)`${t}[${p}]`),e.if(_,(0, _e._)`continue`),l.length>1&&e.if((0, _e._)`typeof ${E} == "string"`,(0, _e._)`${E} += "_"`),e.if((0, _e._)`typeof ${b}[${E}] == "number"`,()=>{e.assign(g,(0, _e._)`${b}[${E}]`),n.error(),e.assign(u,false).break();}).code((0, _e._)`${b}[${E}] = ${p}`);});}function f(p,g){let E=(0, _S.useFunc)(e,SS.default),_=e.name("outer");e.label(_).for((0, _e._)`;${p}--;`,()=>e.for((0, _e._)`${g} = ${p}; ${g}--;`,()=>e.if((0, _e._)`${E}(${t}[${p}], ${t}[${g}])`,()=>{n.error(),e.assign(u,false).break(_);})));}}};Hl.default=DS;});var Im=v(zl=>{Object.defineProperty(zl,"__esModule",{value:true});var Ul=I(),wS=L(),AS=xs(),PS={message:"must be equal to constant",params:({schemaCode:n})=>(0, Ul._)`{allowedValue: ${n}}`},TS={keyword:"const",$data:true,error:PS,code(n){let{gen:e,data:t,$data:r,schemaCode:i,schema:a}=n;r||a&&typeof a=="object"?n.fail$data((0, Ul._)`!${(0, wS.useFunc)(e,AS.default)}(${t}, ${i})`):n.fail((0, Ul._)`${a} !== ${t}`);}};zl.default=TS;});var km=v(Kl=>{Object.defineProperty(Kl,"__esModule",{value:true});var li=I(),OS=L(),xS=xs(),FS={message:"must be equal to one of the allowed values",params:({schemaCode:n})=>(0, li._)`{allowedValues: ${n}}`},NS={keyword:"enum",schemaType:"array",$data:true,error:FS,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, OS.useFunc)(e,xS.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 f=e.const("vSchema",a);c=(0, li.or)(...i.map((p,g)=>d(f,g)));}n.pass(c);function h(){e.assign(c,false),e.forOf("v",a,f=>e.if((0, li._)`${l()}(${t}, ${f})`,()=>e.assign(c,true).break()));}function d(f,p){let g=i[p];return typeof g=="object"&&g!==null?(0, li._)`${l()}(${t}, ${f}[${p}])`:(0, li._)`${t} === ${g}`}}};Kl.default=NS;});var Yl=v(Xl=>{Object.defineProperty(Xl,"__esModule",{value:true});var IS=Sm(),kS=bm(),RS=Am(),$S=Pm(),VS=Tm(),jS=Om(),qS=xm(),LS=Nm(),BS=Im(),WS=km(),MS=[IS.default,kS.default,RS.default,$S.default,VS.default,jS.default,qS.default,LS.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},BS.default,WS.default];Xl.default=MS;});var Ql=v(ci=>{Object.defineProperty(ci,"__esModule",{value:true});ci.validateAdditionalItems=void 0;var Dn=I(),Zl=L(),GS={message:({params:{len:n}})=>(0, Dn.str)`must NOT have more than ${n} items`,params:({params:{len:n}})=>(0, Dn._)`{limit: ${n}}`},JS={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:GS,code(n){let{parentSchema:e,it:t}=n,{items:r}=e;if(!Array.isArray(r)){(0, Zl.checkStrictMode)(t,'"additionalItems" is ignored when "items" is not an array of schemas');return}Rm(n,r);}};function Rm(n,e){let{gen:t,schema:r,data:i,keyword:a,it:s}=n;s.items=true;let o=t.const("len",(0, Dn._)`${i}.length`);if(r===false)n.setParams({len:e.length}),n.pass((0, Dn._)`${o} <= ${e.length}`);else if(typeof r=="object"&&!(0, Zl.alwaysValidSchema)(s,r)){let l=t.var("valid",(0, Dn._)`${o} <= ${e.length}`);t.if((0, Dn.not)(l),()=>u(l)),n.ok(l);}function u(l){t.forRange("i",e.length,o,c=>{n.subschema({keyword:a,dataProp:c,dataPropType:Zl.Type.Num},l),s.allErrors||t.if((0, Dn.not)(l),()=>t.break());});}}ci.validateAdditionalItems=Rm;ci.default=JS;});var ec=v(hi=>{Object.defineProperty(hi,"__esModule",{value:true});hi.validateTuple=void 0;var $m=I(),Fs=L(),HS=Ze(),US={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(n){let{schema:e,it:t}=n;if(Array.isArray(e))return Vm(n,"additionalItems",e);t.items=true,!(0, Fs.alwaysValidSchema)(t,e)&&n.ok((0, HS.validateArray)(n));}};function Vm(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, $m._)`${a}.length`);t.forEach((h,d)=>{(0, Fs.alwaysValidSchema)(o,h)||(r.if((0, $m._)`${l} > ${d}`,()=>n.subschema({keyword:s,schemaProp:d,dataProp:d},u)),n.ok(u));});function c(h){let{opts:d,errSchemaPath:f}=o,p=t.length,g=p===h.minItems&&(p===h.maxItems||h[e]===false);if(d.strictTuples&&!g){let E=`"${s}" is ${p}-tuple, but minItems or maxItems/${e} are not specified or different at path "${f}"`;(0, Fs.checkStrictMode)(o,E,d.strictTuples);}}}hi.validateTuple=Vm;hi.default=US;});var jm=v(tc=>{Object.defineProperty(tc,"__esModule",{value:true});var zS=ec(),KS={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:n=>(0, zS.validateTuple)(n,"items")};tc.default=KS;});var Lm=v(nc=>{Object.defineProperty(nc,"__esModule",{value:true});var qm=I(),XS=L(),YS=Ze(),ZS=Ql(),QS={message:({params:{len:n}})=>(0, qm.str)`must NOT have more than ${n} items`,params:({params:{len:n}})=>(0, qm._)`{limit: ${n}}`},eb={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:QS,code(n){let{schema:e,parentSchema:t,it:r}=n,{prefixItems:i}=t;r.items=true,!(0, XS.alwaysValidSchema)(r,e)&&(i?(0, ZS.validateAdditionalItems)(n,i):n.ok((0, YS.validateArray)(n)));}};nc.default=eb;});var Bm=v(rc=>{Object.defineProperty(rc,"__esModule",{value:true});var et=I(),Ns=L(),tb={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}}`},nb={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:true,error:tb,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?f(h,()=>e.if(h,()=>e.break())):s===0?(e.let(h,true),o!==void 0&&e.if((0, et._)`${i}.length > 0`,d)):(e.let(h,false),d()),n.result(h,()=>n.reset());function d(){let g=e.name("_valid"),E=e.let("count",0);f(g,()=>e.if(g,()=>p(E)));}function f(g,E){e.forRange("i",0,c,_=>{n.subschema({keyword:"contains",dataProp:_,dataPropType:Ns.Type.Num,compositeRule:true},g),E();});}function p(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)));}}};rc.default=nb;});var Is=v(Ct=>{Object.defineProperty(Ct,"__esModule",{value:true});Ct.validateSchemaDeps=Ct.validatePropertyDeps=Ct.error=void 0;var ic=I(),rb=L(),di=Ze();Ct.error={message:({params:{property:n,depsCount:e,deps:t}})=>{let r=e===1?"property":"properties";return (0, ic.str)`must have ${r} ${t} when property ${n} is present`},params:({params:{property:n,depsCount:e,deps:t,missingProperty:r}})=>(0, ic._)`{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(),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},
6
6
  missingProperty: ${r},
7
7
  depsCount: ${e},
8
- deps: ${t}}`};var ib={keyword:"dependencies",type:"object",schemaType:"object",error:Ct.error,code(n){let[e,t]=sb(n);Wm(n,e),Mm(n,t);}};function sb({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 Wm(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, ic._)`${u} && (${(0, di.checkMissingProp)(n,o,a)})`),(0, di.reportMissingProp)(n,a),t.else());}}Ct.validatePropertyDeps=Wm;function Mm(n,e=n.schema){let{gen:t,data:r,keyword:i,it:a}=n,s=t.name("valid");for(let o in e)(0, rb.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=Mm;Ct.default=ib;});var Jm=v(sc=>{Object.defineProperty(sc,"__esModule",{value:true});var Gm=I(),ab=L(),ob={message:"property name must be valid",params:({params:n})=>(0, Gm._)`{propertyName: ${n.propertyName}}`},ub={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:ob,code(n){let{gen:e,schema:t,data:r,it:i}=n;if((0, ab.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, Gm.not)(a),()=>{n.error(true),i.allErrors||e.break();});}),n.ok(a);}};sc.default=ub;});var oc=v(ac=>{Object.defineProperty(ac,"__esModule",{value:true});var ks=Ze(),dt=I(),lb=Ye(),Rs=L(),cb={message:"must NOT have additional properties",params:({params:n})=>(0, dt._)`{additionalProperty: ${n.additionalProperty}}`},hb={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:true,trackErrors:true,error:cb,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} === ${lb.default.errors}`);function h(){e.forIn("key",i,E=>{!l.length&&!c.length?p(E):e.if(d(E),()=>p(E));});}function d(E){let _;if(l.length>8){let b=(0, Rs.schemaRefOrVal)(s,r.properties,"properties");_=(0, ks.isOwnProperty)(e,b,E);}else l.length?_=(0, dt.or)(...l.map(b=>(0, dt._)`${E} === ${b}`)):_=dt.nil;return c.length&&(_=(0, dt.or)(_,...c.map(b=>(0, dt._)`${(0, ks.usePattern)(n,b)}.test(${E})`))),(0, dt.not)(_)}function f(E){e.code((0, dt._)`delete ${i}[${E}]`);}function p(E){if(u.removeAdditional==="all"||u.removeAdditional&&t===false){f(E);return}if(t===false){n.setParams({additionalProperty:E}),n.error(),o||e.break();return}if(typeof t=="object"&&!(0, Rs.alwaysValidSchema)(s,t)){let _=e.name("valid");u.removeAdditional==="failing"?(g(E,_,false),e.if((0, dt.not)(_),()=>{n.reset(),f(E);})):(g(E,_),o||e.if((0, dt.not)(_),()=>e.break()));}}function g(E,_,b){let m={keyword:"additionalProperties",dataProp:E,dataPropType:Rs.Type.Str};b===false&&Object.assign(m,{compositeRule:true,createErrors:false,allErrors:false}),n.subschema(m,_);}}};ac.default=hb;});var zm=v(lc=>{Object.defineProperty(lc,"__esModule",{value:true});var db=Kn(),Hm=Ze(),uc=L(),Um=oc(),fb={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&&Um.default.code(new db.KeywordCxt(a,Um.default,"additionalProperties"));let s=(0, Hm.allSchemaProperties)(t);for(let h of s)a.definedProperties.add(h);a.opts.unevaluated&&s.length&&a.props!==true&&(a.props=uc.mergeEvaluated.props(e,(0, uc.toHash)(s),a.props));let o=s.filter(h=>!(0, uc.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, Hm.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);}}};lc.default=fb;});var Zm=v(cc=>{Object.defineProperty(cc,"__esModule",{value:true});var Km=Ze(),$s=I(),Xm=L(),Ym=L(),pb={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, Km.allSchemaProperties)(t),u=o.filter(g=>(0, Xm.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, Ym.evaluatedPropsToName)(e,a.props));let{props:h}=a;d();function d(){for(let g of o)l&&f(g),a.allErrors?p(g):(e.var(c,true),p(g),e.if(c));}function f(g){for(let E in l)new RegExp(g).test(E)&&(0, Xm.checkStrictMode)(a,`property ${E} matches pattern ${g} (use allowMatchingProperties)`);}function p(g){e.forIn("key",r,E=>{e.if((0, $s._)`${(0, Km.usePattern)(n,g)}.test(${E})`,()=>{let _=u.includes(g);_||n.subschema({keyword:"patternProperties",schemaProp:g,dataProp:E,dataPropType:Ym.Type.Str},c),a.opts.unevaluated&&h!==true?e.assign((0, $s._)`${h}[${E}]`,true):!_&&!a.allErrors&&e.if((0, $s.not)(c),()=>e.break());});});}}};cc.default=pb;});var Qm=v(hc=>{Object.defineProperty(hc,"__esModule",{value:true});var mb=L(),gb={keyword:"not",schemaType:["object","boolean"],trackErrors:true,code(n){let{gen:e,schema:t,it:r}=n;if((0, mb.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"}};hc.default=gb;});var eg=v(dc=>{Object.defineProperty(dc,"__esModule",{value:true});var yb=Ze(),Cb={keyword:"anyOf",schemaType:"array",trackErrors:true,code:yb.validateUnion,error:{message:"must match a schema in anyOf"}};dc.default=Cb;});var tg=v(fc=>{Object.defineProperty(fc,"__esModule",{value:true});var Vs=I(),vb=L(),Eb={message:"must match exactly one schema in oneOf",params:({params:n})=>(0, Vs._)`{passingSchemas: ${n.passing}}`},_b={keyword:"oneOf",schemaType:"array",trackErrors:true,error:Eb,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 d;(0, vb.alwaysValidSchema)(i,c)?e.var(u,true):d=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),d&&n.mergeEvaluated(d,Vs.Name);});});}}};fc.default=_b;});var ng=v(pc=>{Object.defineProperty(pc,"__esModule",{value:true});var Sb=L(),bb={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, Sb.alwaysValidSchema)(r,a))return;let o=n.subschema({keyword:"allOf",schemaProp:s},i);n.ok(i),n.mergeEvaluated(o);});}};pc.default=bb;});var sg=v(mc=>{Object.defineProperty(mc,"__esModule",{value:true});var js=I(),ig=L(),Db={message:({params:n})=>(0, js.str)`must match "${n.ifClause}" schema`,params:({params:n})=>(0, js._)`{failingKeyword: ${n.ifClause}}`},wb={keyword:"if",schemaType:["object","boolean"],trackErrors:true,error:Db,code(n){let{gen:e,parentSchema:t,it:r}=n;t.then===void 0&&t.else===void 0&&(0, ig.checkStrictMode)(r,'"if" without "then" and "else" is ignored');let i=rg(r,"then"),a=rg(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 d=n.subschema({keyword:c},o);e.assign(s,o),n.mergeValidEvaluated(d,s),h?e.assign(h,(0, js._)`${c}`):n.setParams({ifClause:c});}}}};function rg(n,e){let t=n.schema[e];return t!==void 0&&!(0, ig.alwaysValidSchema)(n,t)}mc.default=wb;});var ag=v(gc=>{Object.defineProperty(gc,"__esModule",{value:true});var Ab=L(),Pb={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:n,parentSchema:e,it:t}){e.if===void 0&&(0, Ab.checkStrictMode)(t,`"${n}" without "if" is ignored`);}};gc.default=Pb;});var Cc=v(yc=>{Object.defineProperty(yc,"__esModule",{value:true});var Tb=Ql(),Ob=jm(),xb=ec(),Fb=Lm(),Nb=Bm(),Ib=Is(),kb=Jm(),Rb=oc(),$b=zm(),Vb=Zm(),jb=Qm(),qb=eg(),Lb=tg(),Bb=ng(),Wb=sg(),Mb=ag();function Gb(n=false){let e=[jb.default,qb.default,Lb.default,Bb.default,Wb.default,Mb.default,kb.default,Rb.default,Ib.default,$b.default,Vb.default];return n?e.push(Ob.default,Fb.default):e.push(Tb.default,xb.default),e.push(Nb.default),e}yc.default=Gb;});var og=v(vc=>{Object.defineProperty(vc,"__esModule",{value:true});var he=I(),Jb={message:({schemaCode:n})=>(0, he.str)`must match format "${n}"`,params:({schemaCode:n})=>(0, he._)`{format: ${n}}`},Hb={keyword:"format",type:["number","string"],schemaType:"string",$data:true,error:Jb,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?d():f();function d(){let p=t.scopeValue("formats",{ref:h.formats,code:u.code.formats}),g=t.const("fDef",(0, he._)`${p}[${s}]`),E=t.let("fType"),_=t.let("format");t.if((0, he._)`typeof ${g} == "object" && !(${g} instanceof RegExp)`,()=>t.assign(E,(0, he._)`${g}.type || "string"`).assign(_,(0, he._)`${g}.validate`),()=>t.assign(E,(0, he._)`"string"`).assign(_,g)),n.fail$data((0, he.or)(b(),m()));function b(){return u.strictSchema===false?he.nil:(0, he._)`${s} && !${_}`}function m(){let C=c.$async?(0, he._)`(${g}.async ? await ${_}(${r}) : ${_}(${r}))`:(0, he._)`${_}(${r})`,y=(0, he._)`(typeof ${_} == "function" ? ${C} : ${_}.test(${r}))`;return (0, he._)`${_} && ${_} !== true && ${E} === ${e} && !${y}`}}function f(){let p=h.formats[a];if(!p){b();return}if(p===true)return;let[g,E,_]=m(p);g===e&&n.pass(C());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 m(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 C(){if(typeof p=="object"&&!(p instanceof RegExp)&&p.async){if(!c.$async)throw new Error("async format in sync schema");return (0, he._)`await ${_}(${r})`}return typeof E=="function"?(0, he._)`${_}(${r})`:(0, he._)`${_}.test(${r})`}}}};vc.default=Hb;});var _c=v(Ec=>{Object.defineProperty(Ec,"__esModule",{value:true});var Ub=og(),zb=[Ub.default];Ec.default=zb;});var Sc=v(tr=>{Object.defineProperty(tr,"__esModule",{value:true});tr.contentVocabulary=tr.metadataVocabulary=void 0;tr.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];tr.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"];});var lg=v(bc=>{Object.defineProperty(bc,"__esModule",{value:true});var Kb=Rl(),Xb=Yl(),Yb=Cc(),Zb=_c(),ug=Sc(),Qb=[Kb.default,Xb.default,(0, Yb.default)(),Zb.default,ug.metadataVocabulary,ug.contentVocabulary];bc.default=Qb;});var hg=v(qs=>{Object.defineProperty(qs,"__esModule",{value:true});qs.DiscrError=void 0;var cg;(function(n){n.Tag="tag",n.Mapping="mapping";})(cg||(qs.DiscrError=cg={}));});var Ac=v(wc=>{Object.defineProperty(wc,"__esModule",{value:true});var nr=I(),Dc=hg(),dg=Zr(),eD=Xn(),tD=L(),nD={message:({params:{discrError:n,tagName:e}})=>n===Dc.DiscrError.Tag?`tag "${e}" must be string`:`value of tag "${e}" must be in oneOf`,params:({params:{discrError:n,tag:e,tagName:t}})=>(0, nr._)`{error: ${n}, tag: ${t}, tagValue: ${e}}`},rD={keyword:"discriminator",type:"object",schemaType:"object",error:nD,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, nr._)`${t}${(0, nr.getProperty)(o)}`);e.if((0, nr._)`typeof ${l} == "string"`,()=>c(),()=>n.error(false,{discrError:Dc.DiscrError.Tag,tag:l,tagName:o})),n.ok(u);function c(){let f=d();e.if(false);for(let p in f)e.elseIf((0, nr._)`${l} === ${p}`),e.assign(u,h(f[p]));e.else(),n.error(false,{discrError:Dc.DiscrError.Mapping,tag:l,tagName:o}),e.endIf();}function h(f){let p=e.name("valid"),g=n.subschema({keyword:"oneOf",schemaProp:f},p);return n.mergeEvaluated(g,nr.Name),p}function d(){var f;let p={},g=_(i),E=true;for(let C=0;C<s.length;C++){let y=s[C];if(y?.$ref&&!(0, tD.schemaHasRulesButRef)(y,a.self.RULES)){let w=y.$ref;if(y=dg.resolveRef.call(a.self,a.schemaEnv.root,a.baseId,w),y instanceof dg.SchemaEnv&&(y=y.schema),y===void 0)throw new eD.default(a.opts.uriResolver,a.baseId,w)}let S=(f=y?.properties)===null||f===void 0?void 0:f[o];if(typeof S!="object")throw new Error(`discriminator: oneOf subschemas (or referenced schemas) must have "properties/${o}"`);E=E&&(g||_(y)),b(S,C);}if(!E)throw new Error(`discriminator: "${o}" must be required`);return p;function _({required:C}){return Array.isArray(C)&&C.includes(o)}function b(C,y){if(C.const)m(C.const,y);else if(C.enum)for(let S of C.enum)m(S,y);else throw new Error(`discriminator: "properties/${o}" must have "const" or "enum"`)}function m(C,y){if(typeof C!="string"||C in p)throw new Error(`discriminator: "${o}" values must be unique strings`);p[C]=y;}}}};wc.default=rD;});var fg=v((aN,iD)=>{iD.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 mg=v((ie,Pc)=>{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 sD=Nl(),aD=lg(),oD=Ac(),pg=fg(),uD=["/properties"],Ls="http://json-schema.org/draft-07/schema",rr=class extends sD.default{_addVocabularies(){super._addVocabularies(),aD.default.forEach(e=>this.addVocabulary(e)),this.opts.discriminator&&this.addKeyword(oD.default);}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let e=this.opts.$data?this.$dataMetaSchema(pg,uD):pg;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=rr;Pc.exports=ie=rr;Pc.exports.Ajv=rr;Object.defineProperty(ie,"__esModule",{value:true});ie.default=rr;var lD=Kn();Object.defineProperty(ie,"KeywordCxt",{enumerable:true,get:function(){return lD.KeywordCxt}});var ir=I();Object.defineProperty(ie,"_",{enumerable:true,get:function(){return ir._}});Object.defineProperty(ie,"str",{enumerable:true,get:function(){return ir.str}});Object.defineProperty(ie,"stringify",{enumerable:true,get:function(){return ir.stringify}});Object.defineProperty(ie,"nil",{enumerable:true,get:function(){return ir.nil}});Object.defineProperty(ie,"Name",{enumerable:true,get:function(){return ir.Name}});Object.defineProperty(ie,"CodeGen",{enumerable:true,get:function(){return ir.CodeGen}});var cD=Yr();Object.defineProperty(ie,"ValidationError",{enumerable:true,get:function(){return cD.default}});var hD=Xn();Object.defineProperty(ie,"MissingRefError",{enumerable:true,get:function(){return hD.default}});});var Oc=v(fi=>{Object.defineProperty(fi,"__esModule",{value:true});fi.dynamicAnchor=void 0;var Tc=I(),dD=Ye(),gg=Zr(),fD=Ps(),pD={keyword:"$dynamicAnchor",schemaType:"string",code:n=>yg(n,n.schema)};function yg(n,e){let{gen:t,it:r}=n;r.schemaEnv.root.dynamicAnchors[e]=true;let i=(0, Tc._)`${dD.default.dynamicAnchors}${(0, Tc.getProperty)(e)}`,a=r.errSchemaPath==="#"?r.validateName:mD(n);t.if((0, Tc._)`!${i}`,()=>t.assign(i,a));}fi.dynamicAnchor=yg;function mD(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 gg.SchemaEnv({schema:t,schemaId:u,root:i,baseId:a,localRefs:s,meta:o});return gg.compileSchema.call(r,l),(0, fD.getValidate)(n,l)}fi.default=pD;});var xc=v(pi=>{Object.defineProperty(pi,"__esModule",{value:true});pi.dynamicRef=void 0;var Cg=I(),gD=Ye(),vg=Ps(),yD={keyword:"$dynamicRef",schemaType:"string",code:n=>Eg(n,n.schema)};function Eg(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, Cg._)`${gD.default.dynamicAnchors}${(0, Cg.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, vg.callRef)(n,u),t.let(l,true);}):()=>(0, vg.callRef)(n,u)}}pi.dynamicRef=Eg;pi.default=yD;});var _g=v(Fc=>{Object.defineProperty(Fc,"__esModule",{value:true});var CD=Oc(),vD=L(),ED={keyword:"$recursiveAnchor",schemaType:"boolean",code(n){n.schema?(0, CD.dynamicAnchor)(n,""):(0, vD.checkStrictMode)(n.it,"$recursiveAnchor: false is ignored");}};Fc.default=ED;});var Sg=v(Nc=>{Object.defineProperty(Nc,"__esModule",{value:true});var _D=xc(),SD={keyword:"$recursiveRef",schemaType:"string",code:n=>(0, _D.dynamicRef)(n,n.schema)};Nc.default=SD;});var bg=v(Ic=>{Object.defineProperty(Ic,"__esModule",{value:true});var bD=Oc(),DD=xc(),wD=_g(),AD=Sg(),PD=[bD.default,DD.default,wD.default,AD.default];Ic.default=PD;});var wg=v(kc=>{Object.defineProperty(kc,"__esModule",{value:true});var Dg=Is(),TD={keyword:"dependentRequired",type:"object",schemaType:"object",error:Dg.error,code:n=>(0, Dg.validatePropertyDeps)(n)};kc.default=TD;});var Ag=v(Rc=>{Object.defineProperty(Rc,"__esModule",{value:true});var OD=Is(),xD={keyword:"dependentSchemas",type:"object",schemaType:"object",code:n=>(0, OD.validateSchemaDeps)(n)};Rc.default=xD;});var Pg=v($c=>{Object.defineProperty($c,"__esModule",{value:true});var FD=L(),ND={keyword:["maxContains","minContains"],type:"array",schemaType:"number",code({keyword:n,parentSchema:e,it:t}){e.contains===void 0&&(0, FD.checkStrictMode)(t,`"${n}" without "contains" is ignored`);}};$c.default=ND;});var Tg=v(Vc=>{Object.defineProperty(Vc,"__esModule",{value:true});var ID=wg(),kD=Ag(),RD=Pg(),$D=[ID.default,kD.default,RD.default];Vc.default=$D;});var xg=v(jc=>{Object.defineProperty(jc,"__esModule",{value:true});var Xt=I(),Og=L(),VD=Ye(),jD={message:"must NOT have unevaluated properties",params:({params:n})=>(0, Xt._)`{unevaluatedProperty: ${n.unevaluatedProperty}}`},qD={keyword:"unevaluatedProperties",type:"object",schemaType:["boolean","object"],trackErrors:true,error:jD,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 Xt.Name?e.if((0, Xt._)`${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, Xt._)`${i} === ${VD.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 d=e.name("valid");n.subschema({keyword:"unevaluatedProperties",dataProp:h,dataPropType:Og.Type.Str},d),s||e.if((0, Xt.not)(d),()=>e.break());}}function l(h,d){return (0, Xt._)`!${h} || !${h}[${d}]`}function c(h,d){let f=[];for(let p in h)h[p]===true&&f.push((0, Xt._)`${d} !== ${p}`);return (0, Xt.and)(...f)}}};jc.default=qD;});var Ng=v(qc=>{Object.defineProperty(qc,"__esModule",{value:true});var wn=I(),Fg=L(),LD={message:({params:{len:n}})=>(0, wn.str)`must NOT have more than ${n} items`,params:({params:{len:n}})=>(0, wn._)`{limit: ${n}}`},BD={keyword:"unevaluatedItems",type:"array",schemaType:["boolean","object"],error:LD,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, Fg.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:Fg.Type.Num},u),i.allErrors||e.if((0, wn.not)(u),()=>e.break());});}}};qc.default=BD;});var Ig=v(Lc=>{Object.defineProperty(Lc,"__esModule",{value:true});var WD=xg(),MD=Ng(),GD=[WD.default,MD.default];Lc.default=GD;});var Rg=v(Bc=>{Object.defineProperty(Bc,"__esModule",{value:true});var JD=Rl(),HD=Yl(),UD=Cc(),zD=bg(),KD=Tg(),XD=Ig(),YD=_c(),kg=Sc(),ZD=[zD.default,JD.default,HD.default,(0, UD.default)(true),YD.default,kg.metadataVocabulary,kg.contentVocabulary,KD.default,XD.default];Bc.default=ZD;});var $g=v((EN,QD)=>{QD.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 Vg=v((_N,ew)=>{ew.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 jg=v((SN,tw)=>{tw.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 qg=v((bN,nw)=>{nw.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 Lg=v((DN,rw)=>{rw.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 Bg=v((wN,iw)=>{iw.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 Wg=v((AN,sw)=>{sw.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 Mg=v((PN,aw)=>{aw.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 Gg=v(Wc=>{Object.defineProperty(Wc,"__esModule",{value:true});var ow=$g(),uw=Vg(),lw=jg(),cw=qg(),hw=Lg(),dw=Bg(),fw=Wg(),pw=Mg(),mw=["/properties"];function gw(n){return [ow,uw,lw,cw,hw,e(this,dw),fw,e(this,pw)].forEach(t=>this.addMetaSchema(t,void 0,false)),this;function e(t,r){return n?t.$dataMetaSchema(r,mw):r}}Wc.default=gw;});var Jg=v((se,Gc)=>{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 yw=Nl(),Cw=Rg(),vw=Ac(),Ew=Gg(),Mc="https://json-schema.org/draft/2020-12/schema",sr=class extends yw.default{constructor(e={}){super({...e,dynamicRef:true,next:true,unevaluated:true});}_addVocabularies(){super._addVocabularies(),Cw.default.forEach(e=>this.addVocabulary(e)),this.opts.discriminator&&this.addKeyword(vw.default);}_addDefaultMetaSchema(){super._addDefaultMetaSchema();let{$data:e,meta:t}=this.opts;t&&(Ew.default.call(this,e),this.refs["http://json-schema.org/schema"]=Mc);}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(Mc)?Mc:void 0)}};se.Ajv2020=sr;Gc.exports=se=sr;Gc.exports.Ajv2020=sr;Object.defineProperty(se,"__esModule",{value:true});se.default=sr;var _w=Kn();Object.defineProperty(se,"KeywordCxt",{enumerable:true,get:function(){return _w.KeywordCxt}});var ar=I();Object.defineProperty(se,"_",{enumerable:true,get:function(){return ar._}});Object.defineProperty(se,"str",{enumerable:true,get:function(){return ar.str}});Object.defineProperty(se,"stringify",{enumerable:true,get:function(){return ar.stringify}});Object.defineProperty(se,"nil",{enumerable:true,get:function(){return ar.nil}});Object.defineProperty(se,"Name",{enumerable:true,get:function(){return ar.Name}});Object.defineProperty(se,"CodeGen",{enumerable:true,get:function(){return ar.CodeGen}});var Sw=Yr();Object.defineProperty(se,"ValidationError",{enumerable:true,get:function(){return Sw.default}});var bw=Xn();Object.defineProperty(se,"MissingRefError",{enumerable:true,get:function(){return bw.default}});});var Hc=v(Bs=>{Object.defineProperty(Bs,"__esModule",{value:true});Bs.CompilerOptions=void 0;var Jc=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=Jc;});var Hg=v(Ws=>{Object.defineProperty(Ws,"__esModule",{value:true});Ws.DebugSourceRange=void 0;var Uc=class{constructor(e,t,r){this.length=e,this.debugMetadata=t,this.text=r;}};Ws.DebugSourceRange=Uc;});var or=v(Ms=>{Object.defineProperty(Ms,"__esModule",{value:true});Ms.ErrorType=void 0;var Ug;(function(n){n[n.Author=0]="Author",n[n.Warning=1]="Warning",n[n.Error=2]="Error";})(Ug||(Ms.ErrorType=Ug={}));});var zg=v(Gs=>{Object.defineProperty(Gs,"__esModule",{value:true});Gs.Argument=void 0;var zc=class{constructor(e=null,t=null,r=null){this.identifier=e,this.isByReference=t,this.isDivertTarget=r;}get typeName(){return "Argument"}};Gs.Argument=zc;});var Y=v(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 Dw(n,e){return n instanceof e?Kg(n):null}ge.asOrNull=Dw;function ww(n,e){if(n instanceof e)return Kg(n);throw new Error(`${n} is not of type ${e}`)}ge.asOrThrows=ww;function Aw(n){if(typeof n=="number")return n;throw new Error(`${n} is not a number`)}ge.asNumberOrThrows=Aw;function Pw(n){if(typeof n=="boolean")return n;throw new Error(`${n} is not a boolean`)}ge.asBooleanOrThrows=Pw;function Tw(n){return n.hasValidName&&n.name?n:null}ge.asINamedContentOrNull=Tw;function Ow(n){return typeof n>"u"?null:n}ge.nullIfUndefined=Ow;function xw(n){return typeof n=="object"&&typeof n.Equals=="function"}ge.isEquatable=xw;function Kg(n,e){return n}function Fw(n){return n!=null}ge.filterUndef=Fw;});var oe=v(Js=>{Object.defineProperty(Js,"__esModule",{value:true});Js.ParsedObject=void 0;var Xg=Y(),Kc=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, Xg.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, Xg.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=Kc;});var Us=v(Hs=>{Object.defineProperty(Hs,"__esModule",{value:true});Hs.AuthorWarning=void 0;var Nw=oe(),Xc=class extends Nw.ParsedObject{constructor(e){super(),this.warningMessage=e,this.GenerateRuntimeObject=()=>(this.Warning(this.warningMessage),null);}get typeName(){return "AuthorWarning"}};Hs.AuthorWarning=Xc;});var Me=v(mi=>{Object.defineProperty(mi,"__esModule",{value:true});mi.Path=void 0;var ur=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=ur;ur.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;})(ur||(mi.Path=ur={}));});var gi=v(zs=>{Object.defineProperty(zs,"__esModule",{value:true});zs.Debug=void 0;var Yg;(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;})(Yg||(zs.Debug=Yg={}));});var Te=v(lr=>{Object.defineProperty(lr,"__esModule",{value:true});lr.throwNullException=lr.NullException=void 0;var Ks=class extends Error{};lr.NullException=Ks;function Iw(n){throw new Ks(`${n} is null or undefined`)}lr.throwNullException=Iw;});var Ge=v(Ys=>{Object.defineProperty(Ys,"__esModule",{value:true});Ys.InkObject=void 0;var cr=Me(),yi=de(),Yc=gi(),hr=Y(),Xs=Te(),Zc=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 cr.Path;else {let e=[],t=this,r=(0, hr.asOrNull)(t.parent,yi.Container);for(;r!==null;){let i=(0, hr.asINamedContentOrNull)(t);if(i!=null&&i.hasValidName){if(i.name===null)return (0, Xs.throwNullException)("namedChild.name");e.unshift(new cr.Path.Component(i.name));}else e.unshift(new cr.Path.Component(r.content.indexOf(t)));t=r,r=(0, hr.asOrNull)(r.parent,yi.Container);}this._path=new cr.Path(e);}return this._path}ResolvePath(e){if(e===null)return (0, Xs.throwNullException)("path");if(e.isRelative){let t=(0, hr.asOrNull)(this,yi.Container);return t===null&&(Yc.Debug.Assert(this.parent!==null,"Can't resolve relative path because we don't have a parent"),t=(0, hr.asOrNull)(this.parent,yi.Container),Yc.Debug.Assert(t!==null,"Expected parent to be a container"),Yc.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(cr.Path.Component.ToParent());for(let u=i+1;u<e.componentCount;++u)s.push(e.GetComponent(u));return new cr.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, hr.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=Zc;});var An=v(Zs=>{Object.defineProperty(Zs,"__esModule",{value:true});Zs.StringBuilder=void 0;var Qc=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=Qc;});var He=v(dr=>{Object.defineProperty(dr,"__esModule",{value:true});dr.InkList=dr.InkListItem=void 0;var vt=Te(),kw=An(),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)}};dr.InkListItem=Je;var eh=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 kw.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}};dr.InkList=eh;});var Ci=v(Qs=>{Object.defineProperty(Qs,"__esModule",{value:true});Qs.StoryException=void 0;var th=class extends Error{constructor(e){super(e),this.useEndLineNumber=false,this.message=e,this.name="StoryException";}};Qs.StoryException=th;});var fr=v(Yt=>{Object.defineProperty(Yt,"__esModule",{value:true});Yt.tryParseFloat=Yt.tryParseInt=Yt.tryGetValueFromMap=void 0;function Rw(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}}Yt.tryGetValueFromMap=Rw;function $w(n,e=0){let t=parseInt(n);return Number.isNaN(t)?{result:e,exists:false}:{result:t,exists:true}}Yt.tryParseInt=$w;function Vw(n,e=0){let t=parseFloat(n);return Number.isNaN(t)?{result:e,exists:false}:{result:t,exists:true}}Yt.tryParseFloat=Vw;});var ue=v(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 Zg=Ge(),Qg=Me(),Pn=He(),jw=Ci(),vi=Y(),ey=fr(),tt=Te(),ea=class n extends Zg.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 pr(!!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 Qg.Path)return new ta((0, vi.asOrThrows)(e,Qg.Path));if(e instanceof Pn.InkList)return new na((0, vi.asOrThrows)(e,Pn.InkList))}else return new St(Number(e));return null}Copy(){return (0, vi.asOrThrows)(n.Create(this.valueObject),Zg.InkObject)}BadCastException(e){return new jw.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 pr=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=pr;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 pr(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 pr(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, ey.tryParseInt)(this.value);if(t.exists)return new _t(t.result);throw this.BadCastException(e)}if(e==ae.Float){let t=(0, ey.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 nh=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=nh;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 Pn.InkList:e instanceof Pn.InkList?this.value=new Pn.InkList(e):e instanceof Pn.InkListItem&&typeof t=="number"&&(this.value=new Pn.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 ty=v(ra=>{Object.defineProperty(ra,"__esModule",{value:true});ra.SearchResult=void 0;var qw=de(),rh=class n{constructor(){this.obj=null,this.approximate=false;}get correctObj(){return this.approximate?null:this.obj}get container(){return this.obj instanceof qw.Container?this.obj:null}copy(){let e=new n;return e.obj=this.obj,e.approximate=this.approximate,e}};ra.SearchResult=rh;});var de=v(_i=>{Object.defineProperty(_i,"__esModule",{value:true});_i.Container=void 0;var Lw=ue(),ny=Te(),Bw=An(),mr=Ge(),Ww=ty(),ry=Me(),iy=gi(),Mw=fr(),Zt=Y(),Ei=class n extends mr.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, Zt.asOrThrows)(r,mr.InkObject);e.set(t,i);}for(let t of this.content){let r=(0, Zt.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, Zt.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 ry.Path.Component(0)),t=t.content[0]);return new ry.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, Zt.asINamedContentOrNull)(e);t!=null&&t.hasValidName&&this.AddToNamedContentOnly(t);}AddToNamedContentOnly(e){iy.Debug.AssertType(e,mr.InkObject,"Can only add Runtime.Objects to a Runtime.Container");let t=(0, Zt.asOrThrows)(e,mr.InkObject);if(t.parent=this,e.name===null)return (0, ny.throwNullException)("namedContentObj.name");this.namedContent.set(e.name,e);}ContentAtPath(e,t=0,r=-1){r==-1&&(r=e.length);let i=new Ww.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, Zt.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, ny.throwNullException)("component.name");let t=(0, Mw.tryGetValueFromMap)(this.namedContent,e.name,null);return t.exists?(0, Zt.asOrThrows)(t.result,mr.InkObject):null}}BuildStringOfHierarchy(){let e;if(arguments.length==0)return e=new Bw.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 Lw.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, Zt.asOrThrows)(o,mr.InkObject))>=0||a.set(s,o);if(a.size>0){i(),e.AppendLine("-- named: --");for(let[,s]of a)iy.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=v(bi=>{Object.defineProperty(bi,"__esModule",{value:true});bi.ControlCommand=void 0;var Gw=Ge(),Si=class n extends Gw.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=v(ia=>{Object.defineProperty(ia,"__esModule",{value:true});ia.Expression=void 0;var sy=de(),ih=Oe(),Jw=oe(),sh=class extends Jw.ParsedObject{constructor(){super(...arguments),this._prototypeRuntimeConstantExpression=null,this.outputWhenComplete=false,this.GenerateRuntimeObject=()=>{let e=new sy.Container;return e.AddContent(ih.ControlCommand.EvalStart()),this.GenerateIntoContainer(e),this.outputWhenComplete&&e.AddContent(ih.ControlCommand.EvalOutput()),e.AddContent(ih.ControlCommand.EvalEnd()),e},this.GenerateConstantIntoContainer=e=>{this._prototypeRuntimeConstantExpression===null&&(this._prototypeRuntimeConstantExpression=new sy.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=sh;});var Tn=v(sa=>{Object.defineProperty(sa,"__esModule",{value:true});sa.Void=void 0;var Hw=Ge(),ah=class extends Hw.InkObject{toString(){return "Void"}};sa.Void=ah;});var bt=v(oa=>{Object.defineProperty(oa,"__esModule",{value:true});oa.NativeFunctionCall=void 0;var O=ue(),Di=Ci(),Uw=Tn(),aa=He(),zw=Ge(),rt=Y(),Ue=Te(),G=class n extends zw.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 Uw.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 O.ListValue&&(t=true);}if(e.length==2&&t)return this.CallBinaryListOperation(e);let r=this.CoerceValuesToSingleType(e),i=r[0].valueType;return i==O.ValueType.Int?this.CallType(r):i==O.ValueType.Float?this.CallType(r):i==O.ValueType.String?this.CallType(r):i==O.ValueType.DivertTarget?this.CallType(r):i==O.ValueType.List?this.CallType(r):null}CallType(e){let t=(0, rt.asOrThrows)(e[0],O.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=O.ValueType[r];throw new Di.StoryException("Cannot perform operation "+this.name+" on "+o)}if(a==2){let u=(0, rt.asOrThrows)(e[1],O.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 O.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?O.Value.Create(u,O.ValueType.Int):this.name===n.Float?O.Value.Create(u,O.ValueType.Float):O.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 O.ListValue&&e[1]instanceof O.IntValue)return this.CallListIncrementOperation(e);let t=(0, rt.asOrThrows)(e[0],O.Value),r=(0, rt.asOrThrows)(e[1],O.Value);if((this.name=="&&"||this.name=="||")&&(t.valueType!=O.ValueType.List||r.valueType!=O.ValueType.List)){if(this._operationFuncs===null)return (0, Ue.throwNullException)("NativeFunctionCall._operationFuncs");let i=this._operationFuncs.get(O.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 O.BoolValue(a)}if(t.valueType==O.ValueType.List&&r.valueType==O.ValueType.List)return this.CallType([t,r]);throw new Di.StoryException("Can not call use "+this.name+" operation on "+O.ValueType[t.valueType]+" and "+O.ValueType[r.valueType])}CallListIncrementOperation(e){let t=(0, rt.asOrThrows)(e[0],O.ListValue),r=(0, rt.asOrThrows)(e[1],O.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(O.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 O.ListValue(i)}CoerceValuesToSingleType(e){let t=O.ValueType.Int,r=null;for(let a of e){let s=(0, rt.asOrThrows)(a,O.Value);s.valueType>t&&(t=s.valueType),s.valueType==O.ValueType.List&&(r=(0, rt.asOrNull)(s,O.ListValue));}let i=[];if(O.ValueType[t]==O.ValueType[O.ValueType.List])for(let a of e){let s=(0, rt.asOrThrows)(a,O.Value);if(s.valueType==O.ValueType.List)i.push(s);else if(s.valueType==O.ValueType.Int){let o=parseInt(s.valueObject);if(r=(0, rt.asOrThrows)(r,O.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 O.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=O.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,O.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,O.ValueType.DivertTarget,e),this.AddOpToNativeFunc(this.NotEquals,2,O.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,O.ValueType.Int,t);}static AddIntUnaryOp(e,t){this.AddOpToNativeFunc(e,1,O.ValueType.Int,t);}static AddFloatBinaryOp(e,t){this.AddOpToNativeFunc(e,2,O.ValueType.Float,t);}static AddFloatUnaryOp(e,t){this.AddOpToNativeFunc(e,1,O.ValueType.Float,t);}static AddStringBinaryOp(e,t){this.AddOpToNativeFunc(e,2,O.ValueType.String,t);}static AddListBinaryOp(e,t){this.AddOpToNativeFunc(e,2,O.ValueType.List,t);}static AddListUnaryOp(e,t){this.AddOpToNativeFunc(e,1,O.ValueType.List,t);}toString(){return 'Native "'+this.name+'"'}};oa.NativeFunctionCall=G;G.Add="+";G.Subtract="-";G.Divide="/";G.Multiply="*";G.Mod="%";G.Negate="_";G.Equal="==";G.Greater=">";G.Less="<";G.GreaterThanOrEquals=">=";G.LessThanOrEquals="<=";G.NotEquals="!=";G.Not="!";G.And="&&";G.Or="||";G.Min="MIN";G.Max="MAX";G.Pow="POW";G.Floor="FLOOR";G.Ceiling="CEILING";G.Int="INT";G.Float="FLOAT";G.Has="?";G.Hasnt="!?";G.Intersect="^";G.ListMin="LIST_MIN";G.ListMax="LIST_MAX";G.All="LIST_ALL";G.Count="LIST_COUNT";G.ValueOfList="LIST_VALUE";G.Invert="LIST_INVERT";G._nativeFunctions=null;});var la=v(ua=>{Object.defineProperty(ua,"__esModule",{value:true});ua.NumberExpression=void 0;var Kw=nt(),oh=ue(),Xw=Y(),uh=class n extends Kw.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 oh.IntValue(this.value)):this.isFloat()?r.AddContent(new oh.FloatValue(this.value)):this.isBool()&&r.AddContent(new oh.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, Xw.asOrNull)(e,n);return t?t.subtype==this.subtype&&t.value==this.value:false}};ua.NumberExpression=uh;});var lh=v(ca=>{Object.defineProperty(ca,"__esModule",{value:true});ca.UnaryExpression=void 0;var Yw=nt(),Zw=bt(),gr=la(),Qw=Y(),wi=class extends Yw.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(Zw.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, Qw.asOrNull)(n,gr.NumberExpression);if(t){if(e==="-"){if(t.isInt())return new gr.NumberExpression(-t.value,"int");if(t.isFloat())return new gr.NumberExpression(-t.value,"float")}else if(e=="!"||e=="not"){if(t.isInt())return new gr.NumberExpression(t.value==0,"bool");if(t.isFloat())return new gr.NumberExpression(t.value==0,"bool");if(t.isBool())return new gr.NumberExpression(!t.value,"bool")}throw new Error("Unexpected operation or number type")}return new wi(n,e)};});var hh=v(ha=>{Object.defineProperty(ha,"__esModule",{value:true});ha.BinaryExpression=void 0;var eA=nt(),tA=bt(),nA=lh(),rA=Y(),ch=class extends eA.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(tA.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, rA.asOrNull)(this.leftExpression,nA.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=ch;});var Pi=v(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 oy=v(fa=>{Object.defineProperty(fa,"__esModule",{value:true});fa.CharacterRange=void 0;var ay=Pi(),Ti=class{constructor(e,t,r=[]){if(this._start=e,this._end=t,this._correspondingCharSet=new ay.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 ay.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=v(pa=>{Object.defineProperty(pa,"__esModule",{value:true});pa.ChoicePoint=void 0;var iA=Ge(),sA=Me(),dh=Te(),fh=class extends iA.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, dh.throwNullException)("ChoicePoint._pathOnChoice"):this.ResolvePath(this._pathOnChoice).container}get pathStringOnChoice(){return this.pathOnChoice===null?(0, dh.throwNullException)("ChoicePoint.pathOnChoice"):this.CompactPathString(this.pathOnChoice)}set pathStringOnChoice(e){this.pathOnChoice=new sA.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, dh.throwNullException)("ChoicePoint.pathOnChoice");let t=this.pathOnChoice.toString();return "Choice: -> "+t}};pa.ChoicePoint=fh;});var On=v(ga=>{Object.defineProperty(ga,"__esModule",{value:true});ga.PushPopType=void 0;var uy;(function(n){n[n.Tunnel=0]="Tunnel",n[n.Function=1]="Function",n[n.FunctionEvaluationFromGame=2]="FunctionEvaluationFromGame";})(uy||(ga.PushPopType=uy={}));});var Oi=v(ya=>{Object.defineProperty(ya,"__esModule",{value:true});ya.Pointer=void 0;var aA=Me(),ph=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 aA.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=ph;});var Dt=v(va=>{Object.defineProperty(va,"__esModule",{value:true});va.Divert=void 0;var oA=Me(),uA=On(),lA=An(),cA=Ge(),mh=Oi(),ly=de(),Ca=Te(),gh=class n extends cA.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=mh.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 ly.Container?e.parent:null,this._targetPointer.index=this._targetPath.lastComponent.index;}else this._targetPointer=mh.Pointer.StartOf(e instanceof ly.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 oA.Path(e);}get hasVariableTarget(){return this.variableDivertName!=null}constructor(e){super(),this._targetPath=null,this._targetPointer=mh.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 lA.StringBuilder,t=this.targetPath.toString();return e.Append("Divert"),this.isConditional&&e.Append("?"),this.pushesToStack&&(this.stackPushType==uA.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=gh;});var $t=v(Ea=>{Object.defineProperty(Ea,"__esModule",{value:true});Ea.SymbolType=void 0;var cy;(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";})(cy||(Ea.SymbolType=cy={}));});var Qt=v(_a=>{Object.defineProperty(_a,"__esModule",{value:true});_a.VariableAssignment=void 0;var hA=Ge(),yh=class extends hA.InkObject{constructor(e,t){super(),this.variableName=e||null,this.isNewDeclaration=!!t,this.isGlobal=false;}toString(){return "VarAssign to "+this.variableName}};_a.VariableAssignment=yh;});var yr=v(ba=>{Object.defineProperty(ba,"__esModule",{value:true});ba.Choice=void 0;var dA=ma(),Sa=de(),en=Oe(),Ch=Dt(),hy=ue(),fA=oe(),pA=$t(),dy=Qt(),vh=class extends fA.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 dA.ChoicePoint(this.onceOnly),this._runtimeChoice.isInvisibleDefault=this.isInvisibleDefault,(this.startContent||this.choiceOnlyContent||this.condition)&&this._outerContainer.AddContent(en.ControlCommand.EvalStart()),this.startContent){this._returnToR1=new hy.DivertTargetValue,this._outerContainer.AddContent(this._returnToR1);let i=new dy.VariableAssignment("$r",true);this._outerContainer.AddContent(i),this._outerContainer.AddContent(en.ControlCommand.BeginString()),this._divertToStartContentOuter=new Ch.Divert,this._outerContainer.AddContent(this._divertToStartContentOuter),this._startContentRuntimeContainer=this.startContent.GenerateRuntimeObject(),this._startContentRuntimeContainer.name="s";let a=new Ch.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(en.ControlCommand.EndString()),this._runtimeChoice.hasStartContent=true;}if(this.choiceOnlyContent){this._outerContainer.AddContent(en.ControlCommand.BeginString());let i=this.choiceOnlyContent.GenerateRuntimeObject();this._outerContainer.AddContentsOfContainer(i),this._outerContainer.AddContent(en.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(en.ControlCommand.EvalEnd()),this._outerContainer.AddContent(this._runtimeChoice),this._innerContentContainer=new Sa.Container,this.startContent){this._returnToR2=new hy.DivertTargetValue,this._innerContentContainer.AddContent(en.ControlCommand.EvalStart()),this._innerContentContainer.AddContent(this._returnToR2),this._innerContentContainer.AddContent(en.ControlCommand.EvalEnd());let i=new dy.VariableAssignment("$r",true);this._innerContentContainer.AddContent(i),this._divertToStartContentInner=new Ch.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,pA.SymbolType.SubFlowAndWeave);}};ba.Choice=vh;});var fy=v(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 my=v(Aa=>{Object.defineProperty(Aa,"__esModule",{value:true});Aa.StringParserState=void 0;var py=fy(),Eh=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 py.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 py.StringParserElement;this._numElements=1;}};Aa.StringParserState=Eh;});var Sh=v(xn=>{Object.defineProperty(xn,"__esModule",{value:true});xn.StringParser=xn.ParseSuccess=void 0;var _h=Pi(),mA=my();xn.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 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(`
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
- `&&(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 _h.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]===`
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
- `)};let t=this.PreProcessInputString(e);this.state=new mA.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 _h.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)}};xn.StringParser=xi;xi.ParseSuccess=xn.ParseSuccess;xi.numbersCharacterSet=new _h.CharacterSet("0123456789");});var gy=v(Pa=>{Object.defineProperty(Pa,"__esModule",{value:true});Pa.CommentEliminator=void 0;var bh=Pi(),gA=Sh(),Dh=class extends gA.StringParser{constructor(){super(...arguments),this._commentOrNewlineStartCharacter=new bh.CharacterSet(`/\r
19
- `),this._commentBlockEndCharacter=new bh.CharacterSet("*"),this._newlineCharacters=new bh.CharacterSet(`
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(`
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=Dh;});var Oa=v(Ta=>{Object.defineProperty(Ta,"__esModule",{value:true});Ta.Conditional=void 0;var yA=de(),yy=Oe(),CA=oe(),wh=class extends CA.ParsedObject{constructor(e,t){super(),this.initialCondition=e,this.branches=t,this._reJoinTarget=null,this.GenerateRuntimeObject=()=>{let r=new yA.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(yy.ControlCommand.PopEvaluatedValue()),this._reJoinTarget=yy.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=wh;});var tn=v(xa=>{Object.defineProperty(xa,"__esModule",{value:true});xa.Text=void 0;var vA=oe(),EA=ue(),Ah=class extends vA.ParsedObject{constructor(e){super(),this.text=e,this.GenerateRuntimeObject=()=>new EA.StringValue(this.text),this.toString=()=>this.text;}get typeName(){return "Text"}};xa.Text=Ah;});var Na=v(Fa=>{Object.defineProperty(Fa,"__esModule",{value:true});Fa.ConstantDeclaration=void 0;var _A=oe(),SA=$t(),Ph=class extends _A.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,SA.SymbolType.Var);}};Fa.ConstantDeclaration=Ph;});var Cr=v(Ia=>{Object.defineProperty(Ia,"__esModule",{value:true});Ia.FlowLevel=void 0;var Cy;(function(n){n[n.Story=0]="Story",n[n.Knot=1]="Knot",n[n.Stitch=2]="Stitch",n[n.WeavePoint=3]="WeavePoint";})(Cy||(Ia.FlowLevel=Cy={}));});var Fi=v(ka=>{Object.defineProperty(ka,"__esModule",{value:true});ka.Gather=void 0;var bA=de(),DA=oe(),wA=$t(),Th=class extends DA.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 bA.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,wA.SymbolType.SubFlowAndWeave);}};ka.Gather=Th;});var Fn=v($a=>{Object.defineProperty($a,"__esModule",{value:true});$a.Path=void 0;var Ra=Y(),vy=wt(),vr=Cr(),AA=Nn(),Oh=class{get baseTargetLevel(){return this.baseLevelIsAmbiguous?vr.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===vr.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,vy.FlowBase);if(u!==null?o=u.flowLevel+1:o=vr.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,AA.Weave);if(i&&u!==null&&(o||a===vr.FlowLevel.WeavePoint))return u.WeavePointNamed(i);let l=(0, Ra.asOrNull)(r,vy.FlowBase);if(i&&l!==null){let c=s||l.flowLevel===vr.FlowLevel.Knot;return l.ContentWithNameAtLevel(i,a,c)}return null},Object.values(vr.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=Oh;});var Nh=v(Va=>{Object.defineProperty(Va,"__esModule",{value:true});Va.ReturnType=void 0;var PA=oe(),TA=de(),xh=Oe(),OA=Tn(),Fh=class extends PA.ParsedObject{constructor(e=null){super(),this.returnedExpression=null,this.GenerateRuntimeObject=()=>{let t=new TA.Container;return this.returnedExpression?t.AddContent(this.returnedExpression.runtimeObject):(t.AddContent(xh.ControlCommand.EvalStart()),t.AddContent(new OA.Void),t.AddContent(xh.ControlCommand.EvalEnd())),t.AddContent(xh.ControlCommand.PopFunction()),t},e&&(this.returnedExpression=this.AddContent(e));}get typeName(){return "ReturnType"}};Va.ReturnType=Fh;});var Ni=v(ja=>{Object.defineProperty(ja,"__esModule",{value:true});ja.ClosestFlowBase=void 0;function xA(n){let e=n.parent;for(;e;){if(e.hasOwnProperty("iamFlowbase")&&e.iamFlowbase())return e;e=e.parent;}return null}ja.ClosestFlowBase=xA;});var La=v(qa=>{Object.defineProperty(qa,"__esModule",{value:true});qa.Identifier=void 0;var Ih=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=Ih;});var wt=v(Ba=>{Object.defineProperty(Ba,"__esModule",{value:true});Ba.FlowBase=void 0;var FA=yr(),kh=_r(),NA=Er(),At=Cr(),IA=Fi(),kA=oe(),RA=Fn(),$A=Nh(),VA=de(),jA=Dt(),qA=Qt(),Rh=$t(),LA=Nn(),BA=Ni(),WA=La(),Ey=Y(),$h=class n extends kA.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 f of s){let p=(0, Ey.asOrNull)(f,n);p?(this._firstChildFlow===null&&(this._firstChildFlow=p),h.push(f),!((u=p.identifier)===null||u===void 0)&&u.name&&this._subFlowsByName.set((l=p.identifier)===null||l===void 0?void 0:l.name,p)):c.push(f);}o&&c.push(new IA.Gather(null,1),new kh.Divert(new RA.Path(WA.Identifier.Done())));let d=[];return c.length>0&&(this._rootWeave=new LA.Weave(c,0),d.push(this._rootWeave)),h.length>0&&d.push(...h),d},this.ResolveVariableWithName=(s,o)=>{var u;let l={},c=o===null?this:(0, BA.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($A.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 VA.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,d=h.runtimeObject;l===0&&!h.hasParameters&&this.flowLevel===At.FlowLevel.Knot&&(this._startingSubFlowDivert=new jA.Divert,u.AddContent(this._startingSubFlowDivert),this._startingSubFlowRuntime=d);let f=d,p=u.namedContent.get(f.name)||null;if(p){let g=`${this.GetType()} already contains flow named '${f.name}' (at ${p.debugMetadata})`;this.Error(g,h);}u.AddToNamedContentOnly(f);}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 qA.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(kh.Divert)();for(let u of s)!u.isFunctionCall&&!(u.parent instanceof NA.DivertTarget)&&this.Error(`Functions may not contain diverts, but saw '${u}'`,u);let o=this._rootWeave.FindAll(FA.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, Ey.asOrNull)(s,kh.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,Rh.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?Rh.SymbolType.Knot:Rh.SymbolType.SubFlowAndWeave;e.CheckForNamingCollisions(this,this.identifier,i);}}};Ba.FlowBase=$h;});var Ma=v(Wa=>{Object.defineProperty(Wa,"__esModule",{value:true});Wa.ContentList=void 0;var MA=de(),GA=oe(),JA=tn(),HA=Y(),Vh=class extends GA.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, HA.asOrNull)(this.content[r],JA.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 MA.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=Vh;});var Sr=v(Ga=>{Object.defineProperty(Ga,"__esModule",{value:true});Ga.VariableReference=void 0;var UA=Ge(),zA=Me(),jh=class extends UA.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 zA.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=jh;});var br=v(Ja=>{Object.defineProperty(Ja,"__esModule",{value:true});Ja.VariableReference=void 0;var KA=Ma(),XA=nt(),_y=wt(),YA=Fn(),ZA=Sr(),QA=Nn(),eP=La(),Sy=Y(),qh=class extends XA.Expression{get name(){return this.path.join(".")}get path(){return this.pathIdentifiers.map(e=>e.name).filter(Sy.filterUndef)}get identifier(){if(!this.pathIdentifiers||this.pathIdentifiers.length==0)return null;let e=this.path.join(".");return new eP.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 ZA.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 YA.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, Sy.asOrNull)(r,_y.FlowBase);i&&i.isFunction&&(this.parent instanceof QA.Weave||this.parent instanceof KA.ContentList||this.parent instanceof _y.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=qh;});var Ii=v(Ka=>{Object.defineProperty(Ka,"__esModule",{value:true});Ka.FunctionCall=void 0;var Pt=Oe(),tP=_r(),nP=Er(),rP=nt(),iP=He(),sP=ue(),Ua=bt(),by=la(),aP=Fn(),oP=ue(),uP=br(),Ha=Y(),za=class n extends rP.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],nP.DivertTarget),o=(0, Ha.asOrNull)(this.args[0],uP.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],by.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],by.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 oP.StringValue(this.name)),this.args[0].GenerateIntoContainer(r),r.AddContent(Pt.ControlCommand.ListFromInt());else {let s=new iP.InkList;s.SetInitialOriginName(this.name),r.AddContent(new sP.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 tP.Divert(new aP.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 Bh=v(Xa=>{Object.defineProperty(Xa,"__esModule",{value:true});Xa.MultipleConditionExpression=void 0;var lP=nt(),cP=bt(),Lh=class extends lP.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(cP.NativeFunctionCall.CallWithName("&&")),r=false;},this.AddContent(e);}get typeName(){return "MultipleConditionExpression"}};Xa.MultipleConditionExpression=Lh;});var Er=v(Ya=>{Object.defineProperty(Ya,"__esModule",{value:true});Ya.DivertTarget=void 0;var hP=hh(),dP=yr(),fP=Oa(),pP=Jh(),mP=ue(),Wh=nt(),gP=wt(),Dy=Ii(),yP=Bh(),wy=br(),Mh=Y(),Gh=class n extends Wh.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 mP.DivertTargetValue,t.AddContent(this.runtimeDivertTargetValue);},this.Equals=t=>{let r=(0, Mh.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 Wh.Expression;){let i=false,a=false,s=t.parent;if(s instanceof hP.BinaryExpression){let o=s;o.opName!=="=="&&o.opName!=="!="?i=true:(o.leftExpression instanceof n||o.leftExpression instanceof wy.VariableReference)&&(o.rightExpression instanceof n||o.rightExpression instanceof wy.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 Wh.Expression||s instanceof yP.MultipleConditionExpression||s instanceof dP.Choice&&s.condition===t||s instanceof fP.Conditional||s instanceof pP.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, Mh.asOrNull)(this.parent,Dy.FunctionCall);s&&s.isTurnsSince||(i.visitsShouldBeCounted=true),i.turnIndexShouldBeCounted=true;}let a=(0, Mh.asOrNull)(r,gP.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=Gh;});var _r=v(Za=>{Object.defineProperty(Za,"__esModule",{value:true});Za.Divert=void 0;var CP=de(),ki=Oe(),vP=Dt(),Hh=Er(),Uh=wt(),EP=Ii(),_P=oe(),Ay=Fn(),SP=Me(),Py=On(),bP=ue(),Ty=br(),DP=Ni(),Ri=Y(),zh=class extends _P.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 vP.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 CP.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,Ty.VariableReference);if(!l){this.Error(`Expected variable name to pass by reference to 'ref ${u.identifier}' but saw ${o}`);break}let c=new Ay.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 d=new bP.VariablePointerValue(l.name);i.AddContent(d);}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?Py.PushPopType.Function:Py.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, DP.ClosestFlowBase)(this),Uh.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,Uh.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 Hh.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,Ty.VariableReference);if(!(u instanceof Hh.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 Ay.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,Uh.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 Hh.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=EP.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 SP.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=zh;});var Oy=v(Qa=>{Object.defineProperty(Qa,"__esModule",{value:true});Qa.GatherPointToResolve=void 0;var Kh=class{constructor(e,t){this.divert=e,this.targetRuntimeObj=t;}};Qa.GatherPointToResolve=Kh;});var xy=v(eo=>{Object.defineProperty(eo,"__esModule",{value:true});eo.SequenceDivertToResolve=void 0;var Xh=class{constructor(e,t){this.divert=e,this.targetContent=t;}};eo.SequenceDivertToResolve=Xh;});var Yh=v(to=>{Object.defineProperty(to,"__esModule",{value:true});to.SequenceType=void 0;var Fy;(function(n){n[n.Stopping=1]="Stopping",n[n.Cycle=2]="Cycle",n[n.Shuffle=4]="Shuffle",n[n.Once=8]="Once";})(Fy||(to.SequenceType=Fy={}));});var ed=v(io=>{Object.defineProperty(io,"__esModule",{value:true});io.Sequence=void 0;var Ny=de(),ft=Oe(),Zh=Dt(),$i=ue(),no=bt(),wP=oe(),AP=xy(),ro=Yh(),PP=Nn(),Qh=class extends wP.ParsedObject{constructor(e,t){super(),this.sequenceType=t,this._sequenceDivertsToResolve=[],this.GenerateRuntimeObject=()=>{let r=new Ny.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 d=s?this.sequenceElements.length-1:this.sequenceElements.length;r.AddContent(ft.ControlCommand.Duplicate()),r.AddContent(new $i.IntValue(d)),r.AddContent(no.NativeFunctionCall.CallWithName("=="));let f=new Zh.Divert;f.isConditional=true,r.AddContent(f),this.AddDivertToResolve(f,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 Zh.Divert;h.isConditional=true,r.AddContent(h);let d;c<this.sequenceElements.length?d=this.sequenceElements[c].runtimeObject:d=new Ny.Container,d.name=`s${c}`,d.InsertContent(ft.ControlCommand.PopEvaluatedValue(),0);let f=new Zh.Divert;d.AddContent(f),r.AddToNamedContentOnly(d),this.AddDivertToResolve(h,d),this.AddDivertToResolve(f,l);}return r.AddContent(l),r},this.AddDivertToResolve=(r,i)=>{this._sequenceDivertsToResolve.push(new AP.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 PP.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=Qh;});var nd=v(so=>{Object.defineProperty(so,"__esModule",{value:true});so.TunnelOnwards=void 0;var TP=de(),Vi=Oe(),OP=Dt(),xP=ue(),FP=oe(),NP=Tn(),IP=Y(),kP=Sr(),td=class extends FP.ParsedObject{constructor(){super(...arguments),this._overrideDivertTarget=null,this._divertAfter=null,this.GenerateRuntimeObject=()=>{let e=new TP.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, IP.asOrNull)(t,OP.Divert);if(i!=null&&i.hasVariableTarget){let a=new kP.VariableReference(i.variableDivertName);e.AddContent(a);}else this._overrideDivertTarget=new xP.DivertTargetValue,e.AddContent(this._overrideDivertTarget);}else e.AddContent(new NP.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=td;});var sd=v(ao=>{Object.defineProperty(ao,"__esModule",{value:true});ao.ListDefinition=void 0;var rd=He(),id=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 rd.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 rd.InkListItem(this.name,r),{result:t,exists:true};return t=rd.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=id;});var uo=v(oo=>{Object.defineProperty(oo,"__esModule",{value:true});oo.ListDefinition=void 0;var RP=He(),$P=He(),VP=sd(),jP=ue(),qP=oe(),LP=$t(),ad=class extends qP.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 VP.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 RP.InkList;for(let s of this.itemDefinitions)if(s.inInitialList){let o=new $P.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 jP.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,LP.SymbolType.List);}};oo.ListDefinition=ad;});var ud=v(lo=>{Object.defineProperty(lo,"__esModule",{value:true});lo.VariableAssignment=void 0;var BP=de(),WP=Ni(),MP=uo(),GP=oe(),Iy=$t(),JP=Qt(),HP=br(),UP=Y(),od=class extends GP.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, WP.ClosestFlowBase)(this)),s&&s.AddNewVariableDeclaration(this),this.isGlobalDeclaration)return null;let o=new BP.Container;return this.expression?o.AddContent(this.expression.runtimeObject):this.listDefinition&&o.AddContent(this.listDefinition.runtimeObject),this._runtimeAssignment=new JP.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 MP.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?Iy.SymbolType.Var:Iy.SymbolType.Temp),this.isGlobalDeclaration){let t=(0, UP.asOrNull)(this.expression,HP.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=od;});var Nn=v(fo=>{Object.defineProperty(fo,"__esModule",{value:true});fo.Weave=void 0;var ky=Us(),it=yr(),co=Oa(),zP=Na(),KP=de(),ho=_r(),XP=Dt(),YP=Er(),ZP=wt(),Tt=Fi(),QP=Oy(),eT=oe(),ld=ed(),tT=tn(),nT=nd(),rT=ud(),st=Y(),cd=class n extends eT.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,tT.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 KP.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 XP.Divert;let l=o;if(!l.runtimeContainer)throw new Error;l.runtimeContainer.AddContent(u);}this.gatherPointsToResolve.push(new QP.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 ld.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,rT.VariableAssignment);return !!(i&&i.isGlobalDeclaration&&i.isDeclaration||(0, st.asOrNull)(r,zP.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 ky.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 ld.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 YP.DivertTarget))!==null&&(s=true),u.Find(nT.TunnelOnwards)()!=null){s=true;break}o=u;}if(!s){if(o instanceof ky.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,ZP.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 ld.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=cd;});var Jh=v(mo=>{Object.defineProperty(mo,"__esModule",{value:true});mo.ConditionalSingleBranch=void 0;var Ry=de(),po=Oe(),$y=Dt(),iT=oe(),sT=bt(),aT=ue(),oT=tn(),uT=Nn(),lT=Y(),hd=class extends iT.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, lT.asOrNull)(i,oT.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 Ry.Container,r=this.matchingEquality&&!this.isElse;if(r&&t.AddContent(po.ControlCommand.Duplicate()),this._conditionalDivert=new $y.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(sT.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 aT.StringValue(`
23
- `),0),(r||this.isElse&&this.matchingEquality)&&this._contentContainer.InsertContent(po.ControlCommand.PopEvaluatedValue(),0),t.AddToNamedContentOnly(this._contentContainer),this.returnDivert=new $y.Divert,this._contentContainer.AddContent(this.returnDivert),t},this.GenerateRuntimeForContent=()=>this._innerWeave===null?new Ry.Container:this._innerWeave.rootContainer,e&&(this._innerWeave=new uT.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=hd;});var jy=v(go=>{Object.defineProperty(go,"__esModule",{value:true});go.CustomFlags=void 0;var Vy;(function(n){n[n.ParsingString=1]="ParsingString",n[n.TagActive=2]="TagActive";})(Vy||(go.CustomFlags=Vy={}));});var qy=v(yo=>{Object.defineProperty(yo,"__esModule",{value:true});yo.DebugMetadata=void 0;var dd=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=dd;});var Ly=v(Co=>{Object.defineProperty(Co,"__esModule",{value:true});Co.ExternalDeclaration=void 0;var cT=oe(),fd=class extends cT.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=fd;});var By=v(vo=>{Object.defineProperty(vo,"__esModule",{value:true});vo.FlowDecl=void 0;var pd=class{constructor(e,t,r){this.name=e,this.args=t,this.isFunction=r;}};vo.FlowDecl=pd;});var gd=v(Eo=>{Object.defineProperty(Eo,"__esModule",{value:true});Eo.Wrap=void 0;var hT=oe(),md=class extends hT.ParsedObject{constructor(e){super(),this._objToWrap=e,this.GenerateRuntimeObject=()=>this._objToWrap;}};Eo.Wrap=md;});var Wy=v(_o=>{Object.defineProperty(_o,"__esModule",{value:true});_o.Glue=void 0;var dT=gd(),yd=class extends dT.Wrap{constructor(e){super(e);}get typeName(){return "Glue"}};_o.Glue=yd;});var bo=v(So=>{Object.defineProperty(So,"__esModule",{value:true});So.Glue=void 0;var fT=Ge(),Cd=class extends fT.InkObject{toString(){return "Glue"}};So.Glue=Cd;});var Gy=v(Do=>{Object.defineProperty(Do,"__esModule",{value:true});Do.IncDecExpression=void 0;var pT=Ma(),My=nt(),mT=wt(),gT=bt(),yT=ue(),CT=Qt(),vT=Sr(),ET=Nn(),vd=class extends My.Expression{constructor(e,t,r){super(),this.varIdentifier=e,this._runtimeAssignment=null,this.expression=null,this.GenerateIntoContainer=i=>{var a,s;i.AddContent(new vT.VariableReference(((a=this.varIdentifier)===null||a===void 0?void 0:a.name)||null)),this.expression?this.expression.GenerateIntoContainer(i):i.AddContent(new yT.IntValue(1)),i.AddContent(gT.NativeFunctionCall.CallWithName(this.isInc?"+":"-")),this._runtimeAssignment=new CT.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 My.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 ET.Weave)&&!(this.parent instanceof mT.FlowBase)&&!(this.parent instanceof pT.ContentList)&&this.Error(`Can't use ${this.incrementDecrementWord} as sub-expression`);}get incrementDecrementWord(){return this.isInc?"increment":"decrement"}};Do.IncDecExpression=vd;});var _d=v(wo=>{Object.defineProperty(wo,"__esModule",{value:true});wo.IncludedFile=void 0;var _T=oe(),Ed=class extends _T.ParsedObject{constructor(e){super(),this.includedStory=e,this.GenerateRuntimeObject=()=>null;}get typeName(){return "IncludedFile"}};wo.IncludedFile=Ed;});var Jy=v(Ao=>{Object.defineProperty(Ao,"__esModule",{value:true});Ao.InfixOperator=void 0;var Sd=class{constructor(e,t,r){this.type=e,this.precedence=t,this.requireWhitespace=r,this.toString=()=>this.type;}};Ao.InfixOperator=Sd;});var Dd=v(Po=>{Object.defineProperty(Po,"__esModule",{value:true});Po.Knot=void 0;var ST=wt(),Hy=Cr(),bd=class extends ST.FlowBase{get flowLevel(){return Hy.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,Hy.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=bd;});var Uy=v(To=>{Object.defineProperty(To,"__esModule",{value:true});To.List=void 0;var bT=nt(),DT=He(),wT=He(),AT=ue(),wd=class extends bT.Expression{constructor(e){super(),this.itemIdentifierList=e,this.GenerateIntoContainer=t=>{var r,i;let a=new DT.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 wT.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 AT.ListValue(a));};}get typeName(){return "List"}};To.List=wd;});var Pd=v(Oo=>{Object.defineProperty(Oo,"__esModule",{value:true});Oo.ListElementDefinition=void 0;var PT=oe(),TT=$t(),Ad=class extends PT.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,TT.SymbolType.ListItem);}};Oo.ListElementDefinition=Ad;});var Td=v(xo=>{Object.defineProperty(xo,"__esModule",{value:true});xo.StatementLevel=void 0;var zy;(function(n){n[n.InnerBlock=0]="InnerBlock",n[n.Stitch=1]="Stitch",n[n.Knot=2]="Knot",n[n.Top=3]="Top";})(zy||(xo.StatementLevel=zy={}));});var xd=v(Fo=>{Object.defineProperty(Fo,"__esModule",{value:true});Fo.Stitch=void 0;var OT=wt(),xT=Cr(),Od=class extends OT.FlowBase{get flowLevel(){return xT.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=Od;});var Io=v(No=>{Object.defineProperty(No,"__esModule",{value:true});No.Tag=void 0;var FT=Ge(),Fd=class extends FT.InkObject{constructor(e){super(),this.text=e.toString()||"";}toString(){return "# "+this.text}};No.Tag=Fd;});var Id=v(ko=>{Object.defineProperty(ko,"__esModule",{value:true});ko.Choice=void 0;var NT=Me(),IT=Te(),kT=Ge(),Nd=class n extends kT.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, IT.throwNullException)("Choice.targetPath"):this.targetPath.toString()}set pathStringOnChoice(e){this.targetPath=new NT.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=Nd;});var Rd=v(Ro=>{Object.defineProperty(Ro,"__esModule",{value:true});Ro.ListDefinitionsOrigin=void 0;var RT=He(),$T=ue(),VT=Te(),kd=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=RT.InkListItem.fromSerializedKey(r),s=new $T.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, VT.throwNullException)("name");let t=this._allUnambiguousListValueCache.get(e);return typeof t<"u"?t:null}};Ro.ListDefinitionsOrigin=kd;});var wr=v(qo=>{Object.defineProperty(qo,"__esModule",{value:true});qo.JsonSerialisation=void 0;var $o=de(),ze=ue(),Ky=bo(),z=Oe(),Dr=On(),Xy=Dt(),Yy=ma(),$d=Sr(),Zy=Qt(),Vd=bt(),Qy=Tn(),e0=Io(),jT=Me(),t0=Id(),qT=sd(),LT=Rd(),Vo=He(),fe=Y(),In=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, In.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,Xy.Divert);if(i){let y="->";i.isExternal?y="x()":i.pushesToStack&&(i.stackPushType==Dr.PushPopType.Function?y="f()":i.stackPushType==Dr.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,Yy.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
- `,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, In.throwNullException)("divTargetVal.value");e.WriteProperty("^->",h.value.componentsString),e.WriteObjectEnd();return}let d=(0, fe.asOrNull)(t,ze.VariablePointerValue);if(d){e.WriteObjectStart(),e.WriteProperty("^var",d.value),e.WriteIntProperty("ci",d.contextIndex),e.WriteObjectEnd();return}if((0, fe.asOrNull)(t,Ky.Glue)){e.Write("<>");return}let p=(0, fe.asOrNull)(t,z.ControlCommand);if(p){e.Write(n._controlCommandNames[p.commandType]);return}let g=(0, fe.asOrNull)(t,Vd.NativeFunctionCall);if(g){let y=g.name;y=="^"&&(y="L^"),e.Write(y);return}let E=(0, fe.asOrNull)(t,$d.VariableReference);if(E){e.WriteObjectStart();let y=E.pathStringForCount;y!=null?e.WriteProperty("CNT?",y):e.WriteProperty("VAR?",E.name),e.WriteObjectEnd();return}let _=(0, fe.asOrNull)(t,Zy.VariableAssignment);if(_){e.WriteObjectStart();let y=_.isGlobal?"VAR=":"temp=";e.WriteProperty(y,_.variableName),_.isNewDeclaration||e.WriteProperty("re",true),e.WriteObjectEnd();return}if((0, fe.asOrNull)(t,Qy.Void)){e.Write("void");return}let m=(0, fe.asOrNull)(t,e0.Tag);if(m){e.WriteObjectStart(),e.WriteProperty("#",m.text),e.WriteObjectEnd();return}let C=(0, fe.asOrNull)(t,t0.Choice);if(C){this.WriteChoice(e,C);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, In.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==`
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(`
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 Ky.Glue;for(let a=0;a<n._controlCommandNames.length;++a){let s=n._controlCommandNames[a];if(t==s)return new z.ControlCommand(a)}if(t=="L^"&&(t="^"),Vd.NativeFunctionCall.CallExistsWithName(t))return Vd.NativeFunctionCall.CallWithName(t);if(t=="->->")return z.ControlCommand.PopTunnel();if(t=="~ret")return z.ControlCommand.PopFunction();if(t=="void")return new Qy.Void}if(typeof e=="object"&&!Array.isArray(e)){let t=e,r;if(t["^->"])return r=t["^->"],new ze.DivertTargetValue(new jT.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=Dr.PushPopType.Function,o=false;if((r=t["->"])?i=true:(r=t["f()"])?(i=true,a=true,s=Dr.PushPopType.Function):(r=t["->t->"])?(i=true,a=true,s=Dr.PushPopType.Tunnel):(r=t["x()"])&&(i=true,o=true,a=false,s=Dr.PushPopType.Function),i){let c=new Xy.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 Yy.ChoicePoint;return c.pathStringOnChoice=r.toString(),(r=t.flg)&&(c.flags=parseInt(r)),c}if(r=t["VAR?"])return new $d.VariableReference(r.toString());if(r=t["CNT?"]){let c=new $d.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,d=new Zy.VariableAssignment(c,h);return d.isGlobal=l,d}if(t["#"]!==void 0)return r=t["#"],new e0.Tag(r.toString());if(r=t.list){let c=r,h=new Vo.InkList;if(r=t.origins){let d=r;h.SetInitialOriginNames(d);}for(let d in c)if(c.hasOwnProperty(d)){let f=c[d],p=new Vo.InkListItem(d),g=parseInt(f);h.Add(p,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, In.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 t0.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, In.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, In.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, In.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 qT.ListDefinition(a,o);r.push(u);}return new LT.ListDefinitionsOrigin(r)}};qo.JsonSerialisation=jo;jo._controlCommandNames=(()=>{let n=[];n[z.ControlCommand.CommandType.EvalStart]="ev",n[z.ControlCommand.CommandType.EvalOutput]="out",n[z.ControlCommand.CommandType.EvalEnd]="/ev",n[z.ControlCommand.CommandType.Duplicate]="du",n[z.ControlCommand.CommandType.PopEvaluatedValue]="pop",n[z.ControlCommand.CommandType.PopFunction]="~ret",n[z.ControlCommand.CommandType.PopTunnel]="->->",n[z.ControlCommand.CommandType.BeginString]="str",n[z.ControlCommand.CommandType.EndString]="/str",n[z.ControlCommand.CommandType.NoOp]="nop",n[z.ControlCommand.CommandType.ChoiceCount]="choiceCnt",n[z.ControlCommand.CommandType.Turns]="turn",n[z.ControlCommand.CommandType.TurnsSince]="turns",n[z.ControlCommand.CommandType.ReadCount]="readc",n[z.ControlCommand.CommandType.Random]="rnd",n[z.ControlCommand.CommandType.SeedRandom]="srnd",n[z.ControlCommand.CommandType.VisitIndex]="visit",n[z.ControlCommand.CommandType.SequenceShuffleIndex]="seq",n[z.ControlCommand.CommandType.StartThread]="thread",n[z.ControlCommand.CommandType.Done]="done",n[z.ControlCommand.CommandType.End]="end",n[z.ControlCommand.CommandType.ListFromInt]="listInt",n[z.ControlCommand.CommandType.ListRange]="range",n[z.ControlCommand.CommandType.ListRandom]="lrnd",n[z.ControlCommand.CommandType.BeginTag]="#",n[z.ControlCommand.CommandType.EndTag]="/#";for(let e=0;e<z.ControlCommand.CommandType.TOTAL_VALUES;++e)if(n[e]==null)throw new Error("Control command not accounted for in serialisation");return n})();});var Ld=v(Li=>{Object.defineProperty(Li,"__esModule",{value:true});Li.CallStack=void 0;var jd=On(),n0=Me(),BT=Bi(),r0=wr(),WT=ue(),MT=An(),ji=Oi(),GT=gi(),i0=fr(),qd=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){GT.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 BT.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(jd.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==jd.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, i0.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, i0.tryGetValueFromMap)(a.temporaryVariables,e,null);s.exists&&WT.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 MT.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==jd.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, qd.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,d,f=l.cPath;if(typeof f<"u"){d=f.toString();let _=a.ContentAtPath(new n0.Path(d));if(h.container=_.container,h.index=parseInt(l.idx),_.obj==null)throw new Error("When loading state, internal story location couldn't be found: "+d+". Has the story changed since this save data was created?");_.approximate&&(h.container!==null?a.Warning("When loading state, exact internal story location couldn't be found: '"+d+"', 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: '"+d+"' and it may not be recoverable. Has the story changed since this save data was created?"));}let p=!!l.exp,g=new e(c,h,p),E=l.temp;typeof E<"u"?g.temporaryVariables=r0.JsonSerialisation.JObjectToDictionaryRuntimeObjs(E):g.temporaryVariables.clear(),this.callstack.push(g);}let o=i.previousContentObject;if(typeof o<"u"){let u=new n0.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, qd.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"),r0.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, qd.throwNullException)("this.previousPointer.Resolve()");i.WriteProperty("previousContentObject",a.path.toString());}i.WriteObjectEnd();}}n.Thread=t;})(qi||(Li.CallStack=qi={}));});var a0=v(Bo=>{Object.defineProperty(Bo,"__esModule",{value:true});Bo.VariablesState=void 0;var Se=ue(),JT=Ci(),s0=wr(),xe=Y(),Wi=fr(),nn=Te();function HT(){return class{}}var Lo=class n extends HT(){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 JT.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, nn.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=s0.JsonSerialisation.JTokenToRuntimeObject(i);if(a===null)return (0, nn.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),s0.JsonSerialisation.WriteRuntimeObject(e,a),e.WritePropertyEnd();}e.WriteObjectEnd();}RuntimeObjectsEqual(e,t){if(e===null)return (0, nn.throwNullException)("obj1");if(t===null)return (0, nn.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, nn.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, nn.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, nn.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, nn.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 Wd=v(Wo=>{Object.defineProperty(Wo,"__esModule",{value:true});Wo.PRNG=void 0;var Bd=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=Bd;});var o0=v(Mo=>{Object.defineProperty(Mo,"__esModule",{value:true});Mo.StatePatch=void 0;var Md=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=Md;});var Gd=v(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 l0=v(Jo=>{Object.defineProperty(Jo,"__esModule",{value:true});Jo.Flow=void 0;var u0=Ld(),Go=wr(),UT=Te(),Jd=class{constructor(){let e=arguments[0],t=arguments[1];if(this.name=e,this.callStack=new u0.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, UT.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 u0.CallStack.Thread(a,t);}}}};Jo.Flow=Jd;});var d0=v(Uo=>{Object.defineProperty(Uo,"__esModule",{value:true});Uo.StoryState=void 0;var zT=Ld(),KT=a0(),ye=ue(),rn=On(),XT=Io(),Hd=bo(),c0=Me(),$e=Oe(),Ud=An(),sn=wr(),YT=Wd(),ZT=Tn(),Ar=Oi(),Ji=fr(),pe=Y(),QT=gi(),at=Te(),e1=Bi(),t1=o0(),h0=Gd(),Ho=l0(),n1=He(),zd=class n{ToJson(e=false){let t=new h0.SimpleJson.Writer;return this.WriteJson(t),t.toString()}toJson(e=false){return this.ToJson(e)}LoadJson(e){let t=h0.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 c0.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 Ud.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 Ud.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=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!=`
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 Ud.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,XT.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=Ar.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 KT.VariablesState(this.callStack,e.listDefinitions),this._visitCounts=new Map,this._turnIndices=new Map,this.currentTurnIndex=-1;let t=new Date().getTime();this.storySeed=new YT.PRNG(t).next()%100,this.previousRandom=0,this.GoToStart();}GoToStart(){this.callStack.currentElement.currentPointer=Ar.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 t1.StatePatch(this._patch),t._currentFlow.name=this._currentFlow.name,t._currentFlow.callStack=new zT.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=>sn.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=>sn.JsonSerialisation.WriteIntDictionary(t,this._visitCounts)),e.WriteProperty("turnIndices",t=>sn.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",e1.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,d=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,d);}}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=sn.JsonSerialisation.JArrayToRuntimeObjList(t.outputStream),this._currentFlow.currentChoices=sn.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=sn.JsonSerialisation.JArrayToRuntimeObjList(t.evalStack);let a=t.currentDivertTarget;if(a!=null){let s=new c0.Path(a.toString());this.divertedPointer=this.story.PointerAtPath(s);}this._visitCounts=sn.JsonSerialisation.JObjectToIntDictionary(t.visitCounts),this._turnIndices=sn.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=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==`
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,Hd.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==rn.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 Hd.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==rn.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 Hd.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=Ar.Pointer.Null,this.previousPointer=Ar.Pointer.Null,this.didSafeExit=true;}TrimWhitespaceFromFunctionEnd(){QT.Debug.Assert(this.callStack.currentElement.type==rn.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==rn.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(rn.PushPopType.FunctionEvaluationFromGame,this.evaluationStack.length),this.callStack.currentElement.currentPointer=Ar.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 n1.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==rn.PushPopType.FunctionEvaluationFromGame?(this.currentPointer=Ar.Pointer.Null,this.didSafeExit=true,true):false}CompleteFunctionEvaluationFromGame(){if(this.callStack.currentElement.type!=rn.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(rn.PushPopType.FunctionEvaluationFromGame),t){if(t instanceof ZT.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=zd;});var f0=v(zo=>{Object.defineProperty(zo,"__esModule",{value:true});zo.Stopwatch=void 0;var Kd=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=Kd;});var m0=v(Ko=>{Object.defineProperty(Ko,"__esModule",{value:true});Ko.ErrorType=void 0;var p0;(function(n){n[n.Author=0]="Author",n[n.Warning=1]="Warning",n[n.Error=2]="Error";})(p0||(Ko.ErrorType=p0={}));});var Bi=v($n=>{Object.defineProperty($n,"__esModule",{value:true});$n.Story=$n.InkList=void 0;var Fe=de(),Xd=Ge(),Yd=wr(),r1=d0(),j=Oe(),ot=On(),i1=ma(),s1=Id(),g0=Dt(),x=ue(),Zd=Me(),Hi=Tn(),Xo=Io(),a1=Qt(),o1=Sr(),u1=bt(),kn=Ci(),Qd=Wd(),Rn=An(),l1=Rd(),c1=f0(),an=Oi(),Ui=He(),B=Y(),K=Te(),y0=Gd(),C0=m0(),h1=He();Object.defineProperty($n,"InkList",{enumerable:true,get:function(){return h1.InkList}});Number.isInteger||(Number.isInteger=function(e){return typeof e=="number"&&isFinite(e)&&e>-9007199254740992&&e<9007199254740992&&Math.floor(e)===e});var Pr=class n extends Xd.InkObject{get currentChoices(){let e=[];if(this._state===null)return (0, K.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=y0.SimpleJson.TextToDictionary(i);}else r=arguments[0];if(t!=null&&(this._listDefinitions=new l1.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=Yd.JsonSerialisation.JTokenToListDefinitions(u)),this._mainContentContainer=(0, B.asOrThrows)(Yd.JsonSerialisation.JTokenToRuntimeObject(o),Fe.Container),this.ResetState();}}ToJson(e){let t=false;if(e||(t=true,e=new y0.SimpleJson.Writer),e.WriteObjectStart(),e.WriteIntProperty("inkVersion",n.inkVersionCurrent),e.WriteProperty("root",r=>Yd.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 r1.StoryState(this),this._state.variablesState.ObserveVariableChange(this.VariableStateDidChangeEvent.bind(this)),this.ResetGlobals();}ResetErrors(){if(this._state===null)return (0, K.throwNullException)("this._state");this._state.ResetErrors();}ResetCallstack(){if(this.IfAsyncWeCant("ResetCallstack"),this._state===null)return (0, K.throwNullException)("this._state");this._state.ForceEnd();}ResetGlobals(){if(this._mainContentContainer.namedContent.get("global decl")){let e=this.state.currentPointer.copy();this.ChoosePath(new Zd.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 c1.Stopwatch;r.Start();let i=false;this._sawLookaheadUnsafeFunctionAfterNewline=false;do{try{i=this.ContinueSingleStep();}catch(s){if(!(s instanceof kn.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,C0.ErrorType.Error);if(this.state.hasWarning)for(let s of this.state.currentWarnings)this.onError(s,C0.ErrorType.Warning);this.ResetErrors();}else {let s=new Rn.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 kn.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, K.throwNullException)("this._stateAtLastNewline.currentTags");if(this.state.currentTags===null)return (0, K.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, K.throwNullException)("prevText");if(t===null)return (0, K.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 Rn.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 an.Pointer.Null;let t=new an.Pointer,r=e.length,i=null;return e.lastComponent===null?(0, K.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, K.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, B.asOrNull)(t.Resolve(),Fe.Container);for(;r&&(this.VisitContainer(r,true),r.content.length!=0);)t=an.Pointer.StartOf(r),r=(0, B.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, B.asOrNull)(i,i1.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, B.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, B.asOrNull)(i,j.ControlCommand);o&&o.commandType==j.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, B.asOrNull)(s,Fe.Container)||(0, B.asOrNull)(e.container,Fe.Container);for(;o;)this._prevContainers.push(o),o=(0, B.asOrNull)(o.parent,Fe.Container);}let r=t.Resolve();if(r==null)return;let i=(0, B.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, B.asOrNull)(i.parent,Fe.Container);}}PopChoiceStringAndTags(e){let t=(0, B.asOrThrows)(this.state.PopEvaluationStack(),x.StringValue);for(;this.state.evaluationStack.length>0&&(0, B.asOrNull)(this.state.PeekEvaluationStack(),Xo.Tag)!=null;){let r=(0, B.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 s1.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 g0.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, B.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, B.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 j.ControlCommand){let t=e;switch(t.commandType){case j.ControlCommand.CommandType.EvalStart:this.Assert(this.state.inExpressionEvaluation===false,"Already in expression evaluation?"),this.state.inExpressionEvaluation=true;break;case j.ControlCommand.CommandType.EvalEnd:this.Assert(this.state.inExpressionEvaluation===true,"Not in expression evaluation mode"),this.state.inExpressionEvaluation=false;break;case j.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 j.ControlCommand.CommandType.NoOp:break;case j.ControlCommand.CommandType.Duplicate:this.state.PushEvaluationStack(this.state.PeekEvaluationStack());break;case j.ControlCommand.CommandType.PopEvaluatedValue:this.state.PopEvaluationStack();break;case j.ControlCommand.CommandType.PopFunction:case j.ControlCommand.CommandType.PopTunnel:let r=t.commandType==j.ControlCommand.CommandType.PopFunction?ot.PushPopType.Function:ot.PushPopType.Tunnel,i=null;if(r==ot.PushPopType.Tunnel){let y=this.state.PopEvaluationStack();i=(0, B.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 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 j.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 j.ControlCommand.CommandType.BeginTag:this.state.PushToOutputStream(t);break;case j.ControlCommand.CommandType.EndTag:{if(this.state.inStringEvaluation){let y=[],S=0;for(let A=this.state.outputStream.length-1;A>=0;--A){let R=this.state.outputStream[A];S++;let be=(0, B.asOrNull)(R,j.ControlCommand);if(be!=null){if(be.commandType==j.ControlCommand.CommandType.BeginTag)break;this.Error("Unexpected ControlCommand while extracting tag from choice");break}R instanceof x.StringValue&&y.push(R);}this.state.PopFromOutputStream(S);let w=new Rn.StringBuilder;for(let A of y.reverse())w.Append(A.toString());let P=new Xo.Tag(this.state.CleanOutputWhitespace(w.toString()));this.state.PushEvaluationStack(P);}else this.state.PushToOutputStream(t);break}case j.ControlCommand.CommandType.EndString:{let y=[],S=[],w=0;for(let A=this.state.outputStream.length-1;A>=0;--A){let R=this.state.outputStream[A];w++;let be=(0, B.asOrNull)(R,j.ControlCommand);if(be&&be.commandType==j.ControlCommand.CommandType.BeginString)break;R instanceof Xo.Tag&&S.push(R),R instanceof x.StringValue&&y.push(R);}this.state.PopFromOutputStream(w);for(let A of S)this.state.PushToOutputStream(A);y=y.reverse();let P=new Rn.StringBuilder;for(let A of y)P.Append(A.toString());this.state.inExpressionEvaluation=true,this.state.PushEvaluationStack(new x.StringValue(P.toString()));break}case j.ControlCommand.CommandType.ChoiceCount:let a=this.state.generatedChoices.length;this.state.PushEvaluationStack(new x.IntValue(a));break;case j.ControlCommand.CommandType.Turns:this.state.PushEvaluationStack(new x.IntValue(this.state.currentTurnIndex+1));break;case j.ControlCommand.CommandType.TurnsSince:case j.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, B.asOrThrows)(s,x.DivertTargetValue),u=(0, B.asOrNull)(this.ContentAtPath(o.targetPath).correctObj,Fe.Container),l;u!=null?t.commandType==j.ControlCommand.CommandType.TurnsSince?l=this.state.TurnsSinceForContainer(u):l=this.state.VisitCountForContainer(u):(t.commandType==j.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 j.ControlCommand.CommandType.Random:{let y=(0, B.asOrNull)(this.state.PopEvaluationStack(),x.IntValue),S=(0, B.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, K.throwNullException)("maxInt.value");if(S.value===null)return (0, K.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 P=this.state.storySeed+this.state.previousRandom,R=new Qd.PRNG(P).next(),be=R%w+S.value;this.state.PushEvaluationStack(new x.IntValue(be)),this.state.previousRandom=R;break}case j.ControlCommand.CommandType.SeedRandom:let c=(0, B.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, K.throwNullException)("minInt.value");this.state.storySeed=c.value,this.state.previousRandom=0,this.state.PushEvaluationStack(new Hi.Void);break;case j.ControlCommand.CommandType.VisitIndex:let h=this.state.VisitCountForContainer(this.state.currentPointer.container)-1;this.state.PushEvaluationStack(new x.IntValue(h));break;case j.ControlCommand.CommandType.SequenceShuffleIndex:let d=this.NextSequenceShuffleIndex();this.state.PushEvaluationStack(new x.IntValue(d));break;case j.ControlCommand.CommandType.StartThread:break;case j.ControlCommand.CommandType.Done:this.state.callStack.canPopThread?this.state.callStack.PopThread():(this.state.didSafeExit=true,this.state.currentPointer=an.Pointer.Null);break;case j.ControlCommand.CommandType.End:this.state.ForceEnd();break;case j.ControlCommand.CommandType.ListFromInt:let f=(0, B.asOrNull)(this.state.PopEvaluationStack(),x.IntValue),p=(0, B.asOrThrows)(this.state.PopEvaluationStack(),x.StringValue);if(f===null)throw new kn.StoryException("Passed non-integer when creating a list element from a numerical value.");let g=null;if(this.listDefinitions===null)return (0, K.throwNullException)("this.listDefinitions");let E=this.listDefinitions.TryListGetDefinition(p.value,null);if(E.exists){if(f.value===null)return (0, K.throwNullException)("minInt.value");let y=E.result.TryGetItemWithValue(f.value,Ui.InkListItem.Null);y.exists&&(g=new x.ListValue(y.result,f.value));}else throw new kn.StoryException("Failed to find LIST called "+p.value);g==null&&(g=new x.ListValue),this.state.PushEvaluationStack(g);break;case j.ControlCommand.CommandType.ListRange:let _=(0, B.asOrNull)(this.state.PopEvaluationStack(),x.Value),b=(0, B.asOrNull)(this.state.PopEvaluationStack(),x.Value),m=(0, B.asOrNull)(this.state.PopEvaluationStack(),x.ListValue);if(m===null||b===null||_===null)throw new kn.StoryException("Expected list, minimum and maximum for LIST_RANGE");if(m.value===null)return (0, K.throwNullException)("targetList.value");let C=m.value.ListWithSubRange(b.valueObject,_.valueObject);this.state.PushEvaluationStack(new x.ListValue(C));break;case j.ControlCommand.CommandType.ListRandom:{let y=this.state.PopEvaluationStack();if(y===null)throw new kn.StoryException("Expected list for LIST_RANDOM");let S=y.value,w=null;if(S===null)throw (0, K.throwNullException)("list");if(S.Count==0)w=new Ui.InkList;else {let P=this.state.storySeed+this.state.previousRandom,R=new Qd.PRNG(P).next(),be=R%S.Count,qt=S.entries();for(let vf=0;vf<=be-1;vf++)qt.next();let Nr=qt.next().value,jn={Key:Ui.InkListItem.fromSerializedKey(Nr[0]),Value:Nr[1]};if(jn.Key.originName===null)return (0, K.throwNullException)("randomItem.Key.originName");w=new Ui.InkList(jn.Key.originName,this),w.Add(jn.Key,jn.Value),this.state.previousRandom=R;}this.state.PushEvaluationStack(new x.ListValue(w));break}default:this.Error("unhandled ControlCommand: "+t);break}return true}else if(e instanceof a1.VariableAssignment){let t=e,r=this.state.PopEvaluationStack();return this.state.variablesState.Assign(t,r),true}else if(e instanceof o1.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 u1.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 Zd.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, K.throwNullException)("choiceToChoose.threadAtGeneration");if(r.targetPath===null)return (0, K.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 Rn.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, K.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=an.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, B.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 Xd.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, B.asOrNull)(i,Xd.InkObject),r);}else if(t!=null){let i=(0, B.asOrNull)(t,g0.Divert);if(i&&i.isExternal){let a=i.targetPathString;if(a===null)return (0, K.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, B.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 Zd.Path(e),r=this.ContentAtPath(t).container;if(r===null)return (0, K.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, B.asOrNull)(s,j.ControlCommand);if(o!=null)o.commandType==j.ControlCommand.CommandType.BeginTag?i=true:o.commandType==j.ControlCommand.CommandType.EndTag&&(i=false);else if(i){let u=(0, B.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 Rn.StringBuilder;return this.mainContentContainer.BuildStringOfHierarchy(e,0,this.state.currentPointer.Resolve()),e.toString()}BuildStringOfContainer(e){let t=new Rn.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=an.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, K.throwNullException)("pointer.container");for(;t.index>=t.container.content.length;){e=false;let r=(0, B.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 an.Pointer(r,i),t.index++,e=true,t.container===null)return (0, K.throwNullException)("pointer.container")}return e||(t=an.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, K.throwNullException)("choice.targetPath"):r.threadAtGeneration===null?(0, K.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, B.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, K.throwNullException)("seqContainer");if(e.value===null)return (0, K.throwNullException)("numElementsIntVal.value");let r=e.value,a=(0, B.asOrThrows)(this.state.PopEvaluationStack(),x.IntValue).value;if(a===null)return (0, K.throwNullException)("seqCount");let s=a/r,o=a%r,u=t.path.toString(),l=0;for(let f=0,p=u.length;f<p;f++)l+=u.charCodeAt(f)||0;let c=l+s+this.state.storySeed,h=new Qd.PRNG(Math.floor(c)),d=[];for(let f=0;f<r;++f)d.push(f);for(let f=0;f<=o;++f){let p=h.next()%d.length,g=d[p];if(d.splice(p,1),f==o)return g}throw new Error("Should never reach here")}Error(e,t=false){let r=new kn.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}};$n.Story=Pr;Pr.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={}));})(Pr||($n.Story=Pr={}));});var E0=v(tu=>{Object.defineProperty(tu,"__esModule",{value:true});tu.Story=void 0;var d1=Us(),f1=Na(),Yo=de(),Zo=Oe(),zi=or(),Qo=wt(),v0=Cr(),p1=_d(),m1=uo(),g1=Pd(),y1=Bi(),Tr=$t(),C1=tn(),v1=Qt(),Ki=Y(),E1=Ni(),_1=Ii(),S1=Fn(),eu=class n extends Qo.FlowBase{get flowLevel(){return v0.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(f1.ConstantDeclaration)()){let h=this.constants.get(c.constantName);if(h&&!h.Equals(c.expression)){let d=`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(d,c,false);}this.constants.set(c.constantName,c.expression);}this._listDefs=new Map;for(let c of this.FindAll(m1.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 d=new v1.VariableAssignment(c,true);d.isGlobal=true,o.AddContent(d);}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 y1.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 d1.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(_1.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||"",v0.FlowLevel.Knot),c=(0, Ki.asOrNull)(l,Qo.FlowBase);if(c&&(c!==r||a===Tr.SymbolType.Arg)){this.NameConflictError(r,i?.name||"",c,u);return}if(a<Tr.SymbolType.List)return;for(let[p,g]of this._listDefs)if(i?.name===p&&r!==g&&g.variableAssignment!==r&&this.NameConflictError(r,i?.name,g,u),!(r instanceof g1.ListElementDefinition))for(let E of g.itemDefinitions)i?.name===E.name&&this.NameConflictError(r,i?.name||"",E,u);if(a<=Tr.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<Tr.SymbolType.SubFlowAndWeave)return;let f=new S1.Path(i).ResolveFromContext(r);if(f&&f!==r){this.NameConflictError(r,i?.name||"",f,u);return}if(!(a<Tr.SymbolType.Arg)&&a!==Tr.SymbolType.Arg){let p=(0, Ki.asOrNull)(r,Qo.FlowBase);if(p||(p=(0, E1.ClosestFlowBase)(r)),p&&p.hasParameters&&p.args){for(let g of p.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 ${p.identifier} on ${p.debugMetadata}`);return}}}};}get typeName(){return "Story"}PreProcessTopLevelObjects(e){super.PreProcessTopLevelObjects(e);let t=[];for(let r of e)if(r instanceof p1.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 C1.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 S0=v(nu=>{Object.defineProperty(nu,"__esModule",{value:true});nu.StringExpression=void 0;var _0=Oe(),b1=nt(),D1=tn(),w1=Y(),ef=class n extends b1.Expression{get isSingleString(){return !(this.content.length!==1||!(this.content[0]instanceof D1.Text))}constructor(e){super(),this.GenerateIntoContainer=t=>{t.AddContent(_0.ControlCommand.BeginString());for(let r of this.content)t.AddContent(r.runtimeObject);t.AddContent(_0.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, w1.asOrNull)(e,n);if(t===null||!this.isSingleString||!t.isSingleString)return false;let r=this.toString(),i=t.toString();return r===i}};nu.StringExpression=ef;});var D0=v(Or=>{Object.defineProperty(Or,"__esModule",{value:true});Or.LegacyTag=Or.Tag=void 0;var A1=oe(),b0=Oe(),tf=class extends A1.ParsedObject{constructor(e,t=false){super(),this.GenerateRuntimeObject=()=>this.isStart?b0.ControlCommand.BeginTag():b0.ControlCommand.EndTag(),this.toString=()=>this.isStart?"#StartTag":"#EndTag",this.isStart=e,this.inChoice=t;}get typeName(){return "Tag"}};Or.Tag=tf;var P1=gd(),nf=class extends P1.Wrap{constructor(e){super(e);}get typeName(){return "Tag"}};Or.LegacyTag=nf;});var w0=v(ru=>{Object.defineProperty(ru,"__esModule",{value:true});ru.DefaultFileHandler=void 0;var rf=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=rf;});var uf=v(ou=>{Object.defineProperty(ou,"__esModule",{value:true});ou.InkParser=void 0;var T1=zg(),O1=Us(),x1=hh(),pt=oy(),ve=Pi(),F1=yr(),N1=gy(),I1=Oa(),Xi=Jh(),Ke=Ma(),k1=Na(),iu=jy(),R1=qy(),Vn=_r(),sf=Er(),$1=nt(),V1=Ly(),A0=By(),su=Ii(),j1=Fi(),q1=Wy(),L1=bo(),au=Gy(),P0=_d(),B1=Jy(),W1=Dd(),T0=Uy(),M1=uo(),G1=Pd(),J1=Bh(),O0=oe(),H1=Fn(),x0=Nh(),F0=ed(),Ce=Yh(),Ve=Td(),U1=xd(),N0=E0(),Yi=S0(),Vt=Sh(),xr=D0(),jt=tn(),I0=nd(),af=ud(),of=br(),z1=lh(),on=Y(),Zi=La(),Fr=la(),k0=or(),K1=w0(),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 N0.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 d=this.Parse(s);if(d===null){this.FailRule(c);break}this.SucceedRule(c),l.push(d);}while(true);return l},this.CreateDebugMetadata=(s,o)=>{let u=new R1.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, on.asOrNull)(s,O0.ParsedObject);l&&(l.debugMetadata=this.CreateDebugMetadata(o,u));let c=Array.isArray(s)?s:null;if(c!==null)for(let d of c)(0, on.asOrNull)(d,O0.ParsedObject)&&(d.hasOwnDebugMetadata||(d.debugMetadata=this.CreateDebugMetadata(o,u)));let h=(0, on.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?k0.ErrorType.Warning:k0.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
- \r`);return o?new O1.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 d=null,f=null,p=this.ParseString("[")!==null;if(p){this.EndTagIfNecessary(c);let b=this.Parse(this.MixedTextAndLogic);b!==null&&(d=new Ke.ContentList(b)),this.Expect(this.String("]"),"closing ']' for weave-style option"),this.EndTagIfNecessary(d);let m=this.Parse(this.MixedTextAndLogic);m!==null&&(f=new Ke.ContentList(m));}this.Whitespace(),this.EndTagIfNecessary(f??c);let g=this.Parse(this.MultiDivert);this._parsingChoice=false,this.Whitespace();let E=!c&&!f&&!d;if(E&&g===null&&this.Warning("Choice is completely empty. Interpretting as a default fallback choice. Add a divert arrow to remove this warning: * ->"),!c&&p&&!d&&this.Warning("Blank choice - if you intended a default fallback choice, use the `* ->` syntax"),f||(f=new Ke.ContentList),this.EndTagIfNecessary(f),g!==null)for(let b of g){let m=(0, on.asOrNull)(b,Vn.Divert);m&&m.isEmpty||f.AddContent(b);}f.AddContent(new jt.Text(`
38
- `));let _=new F1.Choice(c,d,f);return u&&(_.identifier=u),_.indentationDepth=o.length,_.hasWeaveStyleInlineBrackets=p,_.condition=l,_.onceOnly=s,_.isInvisibleDefault=E,_},this.ChoiceCondition=()=>{let s=this.Interleave(this.ChoiceSingleCondition,this.ChoiceConditionsSpace);return s===null?null:s.length===1?s[0]:new J1.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 j1.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),d=this.Parse(()=>this.InnerConditionalContent(h));return d===null?null:d}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 f=this.Parse(this.SingleMultilineCondition);f&&(f.isElse||(this.ErrorWithParsedObject("Expected an '- else:' clause here rather than an extra condition",f),f.isElse=true),o.push(f));}}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 d=0;d<o.length;++d){let f=o[d],p=d===o.length-1;f.ownExpression?(f.matchingEquality=true,h=true):h&&p?(f.matchingEquality=true,f.isElse=true):!p&&o.length>2?this.ErrorWithParsedObject("Only final branch can be an 'else'. Did you miss a ':'?",f):d===0?f.isTrueBranch=true:f.isElse=true;}}else {for(let h=0;h<o.length;++h){let d=o[h],f=h===o.length-1;if(d.ownExpression===null)if(f)d.isElse=true;else if(d.isElse){let p=o[o.length-1];p.isElse?this.ErrorWithParsedObject("Multiple 'else' cases. Can have a maximum of one, at the end.",p):this.ErrorWithParsedObject("'else' case in conditional should always be the final one",d);}else this.ErrorWithParsedObject("Branch doesn't have condition. Are you missing a ':'? ",d);}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 I1.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 Vn.Divert||this.TrimEndWhitespace(s,false),this.EndTagIfNecessary(s),s.length>0&&s[0]instanceof xr.Tag&&s[0].isStart||s.push(new jt.Text(`
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(`
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(`
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 d=new I0.TunnelOnwards;if(l<u.length-1){let f=(0, on.asOrNull)(u[l+1],Vn.Divert);d.divertAfter=f;}s.push(d);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 Vn.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 Vn.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 H1.Path(s);return new Vn.Divert(u,o)},this.SingleDivert=()=>{let s=this.Parse(this.MultiDivert);if(!s||s.length!==1||s[0]instanceof I0.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 af.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 x0.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=z1.UnaryExpression.WithInner(u,o)),this.Whitespace();let l=this.OneOf([this.String("++"),this.String("--")]);if(l!==null){let c=l==="++";if(!(u instanceof of.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 sf.DivertTarget(s))},this.ExpressionInt=()=>{let s=this.ParseInt();return s===null?null:new Fr.NumberExpression(s,"int")},this.ExpressionFloat=()=>{let s=this.ParseFloat();return s===null?null:new Fr.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 Vn.Divert)&&this.Error("String expressions cannot contain diverts (->)"),new Yi.StringExpression(o)},this.ExpressionBool=()=>{let s=this.Parse(this.Identifier);return s==="true"?new Fr.NumberExpression(true,"bool"):s==="false"?new Fr.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||N0.Story.IsReservedKeyword(s[0].name)?null:new of.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 x1.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 T0.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 B1.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 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(`
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
- `),new P0.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 P0.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 W1.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 A0.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 U1.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 A0.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 T1.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(on.filterUndef);return new V1.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 $1.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:
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:
44
44
  ~ return
45
45
  ~ var x = blah
46
46
  ~ x++
47
- ~ myFunction()`);let u=(0, on.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 Fr.NumberExpression||l instanceof Yi.StringExpression||l instanceof sf.DivertTarget||l instanceof of.VariableReference||l instanceof T0.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 af.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 af.VariableAssignment({variableIdentifier:o,listDef:u})):null},this.ListDefinition=()=>{this.AnyWhitespace();let s=this.SeparatedList(this.ListElementDefinition,this.ListElementDefinitionSeparator);return s===null?null:new M1.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 G1.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 Fr.NumberExpression||u instanceof sf.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 k1.ConstantDeclaration(o,u)},this.InlineLogicOrGlueOrStartTag=()=>this.OneOf([this.InlineLogic,this.Glue,this.StartTag]),this.Glue=()=>this.ParseString("<>")!==null?new q1.Glue(new L1.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, on.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 F0.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 F0.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
- `)),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 x0.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 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 K1.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 N1.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 R0=v(uu=>{Object.defineProperty(uu,"__esModule",{value:true});uu.GenerateStoryStats=void 0;var X1=yr(),Y1=_r(),Z1=Fi(),Q1=Dd(),eO=xd(),tO=tn();function nO(n){let e=n.FindAll(tO.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(Q1.Knot)(),i=n.FindAll(eO.Stitch)(),a=n.FindAll(X1.Choice)(),s=n.FindAll(Z1.Gather)(u=>u.debugMetadata!=null),o=n.FindAll(Y1.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=nO;});var $0=v(lu=>{Object.defineProperty(lu,"__esModule",{value:true});lu.JsonFileHandler=void 0;var lf=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=lf;});var j0=v(Ne=>{Object.defineProperty(Ne,"__esModule",{value:true});Ne.Compiler=Ne.Story=Ne.InkList=Ne.JsonFileHandler=Ne.StatementLevel=Ne.InkParser=Ne.CompilerOptions=void 0;var rO=Hc(),iO=Hg(),cf=or(),sO=uf(),aO=ue(),oO=Y(),uO=R0(),lO=Hc();Object.defineProperty(Ne,"CompilerOptions",{enumerable:true,get:function(){return lO.CompilerOptions}});var cO=uf();Object.defineProperty(Ne,"InkParser",{enumerable:true,get:function(){return cO.InkParser}});var hO=Td();Object.defineProperty(Ne,"StatementLevel",{enumerable:true,get:function(){return hO.StatementLevel}});var dO=$0();Object.defineProperty(Ne,"JsonFileHandler",{enumerable:true,get:function(){return dO.JsonFileHandler}});var V0=Bi();Object.defineProperty(Ne,"InkList",{enumerable:true,get:function(){return V0.InkList}});Object.defineProperty(Ne,"Story",{enumerable:true,get:function(){return V0.Story}});var hf=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 sO.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, oO.asOrNull)(i,aO.StringValue);if(a!==null){let s=new iO.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, uO.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 cf.ErrorType.Author:this._authorMessages.push(r);break;case cf.ErrorType.Warning:this._warnings.push(r);break;case cf.ErrorType.Error:this._errors.push(r);break}this.options.errorHandler!==null&&this.options.errorHandler(r,i);},this._inputString=e,this._options=t||new rO.CompilerOptions;}};Ne.Compiler=hf;});var es="global decl",un="___external_value___";var U;(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)))(U||={});var nC=/[\u1680\u2000-\u200A\u202F\u205F\u3000]/,rC=/[\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]/,iC=/[\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:nC,ID_Start:rC,ID_Continue:iC},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,Lt,ut,me,_u,Rr,sC=function(e,t){Cu=String(e),Ie="start",xt=[],ns=0,Lt=1,ut=0,me=void 0,_u=void 0,Rr=void 0;do me=aC(),lC[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 $,N,kr,Ot,W;function aC(){for($="default",N="",kr=false,Ot=1;;){W=Ft();let n=Sf[$]();if(n)return n}}function Ft(){if(Cu[ns])return String.fromCodePoint(Cu.codePointAt(ns))}function D(){let n=Ft();return n===`
52
- `?(Lt++,ut=0):n?ut+=n.length:ut++,n&&(ns+=n.length),n}var Sf={default(){switch(W){case " ":case "\v":case "\f":case " ":case "\xA0":case "\uFEFF":case `
53
- `:case "\r":case "\u2028":case "\u2029":D();return;case "/":D(),$="comment";return;case void 0:return D(),te("eof")}if(ce.isSpaceSeparator(W)){D();return}return Sf[Ie]()},comment(){switch(W){case "*":D(),$="multiLineComment";return;case "/":D(),$="singleLineComment";return}throw ne(D())},multiLineComment(){switch(W){case "*":D(),$="multiLineCommentAsterisk";return;case void 0:throw ne(D())}D();},multiLineCommentAsterisk(){switch(W){case "*":D();return;case "/":D(),$="default";return;case void 0:throw ne(D())}D(),$="multiLineComment";},singleLineComment(){switch(W){case `
54
- `:case "\r":case "\u2028":case "\u2029":D(),$="default";return;case void 0:return D(),te("eof")}D();},value(){switch(W){case "{":case "[":return te("punctuator",D());case "n":return D(),ln("ull"),te("null",null);case "t":return D(),ln("rue"),te("boolean",true);case "f":return D(),ln("alse"),te("boolean",false);case "-":case "+":D()==="-"&&(Ot=-1),$="sign";return;case ".":N=D(),$="decimalPointLeading";return;case "0":N=D(),$="zero";return;case "1":case "2":case "3":case "4":case "5":case "6":case "7":case "8":case "9":N=D(),$="decimalInteger";return;case "I":return D(),ln("nfinity"),te("numeric",1/0);case "N":return D(),ln("aN"),te("numeric",NaN);case '"':case "'":kr=D()==='"',N="",$="string";return}throw ne(D())},identifierNameStartEscape(){if(W!=="u")throw ne(D());D();let n=Eu();switch(n){case "$":case "_":break;default:if(!ce.isIdStartChar(n))throw _f();break}N+=n,$="identifierName";},identifierName(){switch(W){case "$":case "_":case "\u200C":case "\u200D":N+=D();return;case "\\":D(),$="identifierNameEscape";return}if(ce.isIdContinueChar(W)){N+=D();return}return te("identifier",N)},identifierNameEscape(){if(W!=="u")throw ne(D());D();let n=Eu();switch(n){case "$":case "_":case "\u200C":case "\u200D":break;default:if(!ce.isIdContinueChar(n))throw _f();break}N+=n,$="identifierName";},sign(){switch(W){case ".":N=D(),$="decimalPointLeading";return;case "0":N=D(),$="zero";return;case "1":case "2":case "3":case "4":case "5":case "6":case "7":case "8":case "9":N=D(),$="decimalInteger";return;case "I":return D(),ln("nfinity"),te("numeric",Ot*(1/0));case "N":return D(),ln("aN"),te("numeric",NaN)}throw ne(D())},zero(){switch(W){case ".":N+=D(),$="decimalPoint";return;case "e":case "E":N+=D(),$="decimalExponent";return;case "x":case "X":N+=D(),$="hexadecimal";return}return te("numeric",Ot*0)},decimalInteger(){switch(W){case ".":N+=D(),$="decimalPoint";return;case "e":case "E":N+=D(),$="decimalExponent";return}if(ce.isDigit(W)){N+=D();return}return te("numeric",Ot*Number(N))},decimalPointLeading(){if(ce.isDigit(W)){N+=D(),$="decimalFraction";return}throw ne(D())},decimalPoint(){switch(W){case "e":case "E":N+=D(),$="decimalExponent";return}if(ce.isDigit(W)){N+=D(),$="decimalFraction";return}return te("numeric",Ot*Number(N))},decimalFraction(){switch(W){case "e":case "E":N+=D(),$="decimalExponent";return}if(ce.isDigit(W)){N+=D();return}return te("numeric",Ot*Number(N))},decimalExponent(){switch(W){case "+":case "-":N+=D(),$="decimalExponentSign";return}if(ce.isDigit(W)){N+=D(),$="decimalExponentInteger";return}throw ne(D())},decimalExponentSign(){if(ce.isDigit(W)){N+=D(),$="decimalExponentInteger";return}throw ne(D())},decimalExponentInteger(){if(ce.isDigit(W)){N+=D();return}return te("numeric",Ot*Number(N))},hexadecimal(){if(ce.isHexDigit(W)){N+=D(),$="hexadecimalInteger";return}throw ne(D())},hexadecimalInteger(){if(ce.isHexDigit(W)){N+=D();return}return te("numeric",Ot*Number(N))},string(){switch(W){case "\\":D(),N+=oC();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":cC(W);break;case void 0:throw ne(D())}N+=D();},start(){switch(W){case "{":case "[":return te("punctuator",D())}$="value";},beforePropertyName(){switch(W){case "$":case "_":N=D(),$="identifierName";return;case "\\":D(),$="identifierNameStartEscape";return;case "}":return te("punctuator",D());case '"':case "'":kr=D()==='"',$="string";return}if(ce.isIdStartChar(W)){N+=D(),$="identifierName";return}throw ne(D())},afterPropertyName(){if(W===":")return te("punctuator",D());throw ne(D())},beforePropertyValue(){$="value";},afterPropertyValue(){switch(W){case ",":case "}":return te("punctuator",D())}throw ne(D())},beforeArrayValue(){if(W==="]")return te("punctuator",D());$="value";},afterArrayValue(){switch(W){case ",":case "]":return te("punctuator",D())}throw ne(D())},end(){throw ne(D())}};function te(n,e){return {type:n,value:e,line:Lt,column:ut}}function ln(n){for(let e of n){if(Ft()!==e)throw ne(D());D();}}function oC(){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(),uC();case "u":return D(),Eu();case `
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(`
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
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 uC(){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 lC={start(){if(me.type==="eof")throw cn();yu();},beforePropertyName(){switch(me.type){case "identifier":case "string":_u=me.value,Ie="afterPropertyName";return;case "punctuator":ts();return;case "eof":throw cn()}},afterPropertyName(){if(me.type==="eof")throw cn();Ie="beforePropertyValue";},beforePropertyValue(){if(me.type==="eof")throw cn();yu();},beforeArrayValue(){if(me.type==="eof")throw cn();if(me.type==="punctuator"&&me.value==="]"){ts();return}yu();},afterPropertyValue(){if(me.type==="eof")throw cn();switch(me.value){case ",":Ie="beforePropertyName";return;case "}":ts();}},afterArrayValue(){if(me.type==="eof")throw cn();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 ${Lt}:${ut}`:`JSON5: invalid character '${bf(n)}' at ${Lt}:${ut}`)}function cn(){return rs(`JSON5: invalid end of input at ${Lt}:${ut}`)}function _f(){return ut-=5,rs(`JSON5: invalid identifier character at ${Lt}:${ut}`)}function cC(n){console.warn(`JSON5: '${bf(n)}' in strings is not valid ECMAScript; consider escaping`);}function bf(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=Lt,e.columnNumber=ut,e}var hC=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 E;typeof g=="string"?E=g:(typeof g=="number"||g instanceof String||g instanceof Number)&&(E=String(g)),E!==void 0&&s.indexOf(E)<0&&s.push(E);}}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,E){let _=E[g];switch(_!=null&&(typeof _.toJSON5=="function"?_=_.toJSON5(g):typeof _.toJSON=="function"&&(_=_.toJSON(g))),o&&(_=o.call(E,g,_)),_ instanceof Number?_=Number(_):_ instanceof String?_=String(_):_ instanceof Boolean&&(_=_.valueOf()),_){case null:return "null";case true:return "true";case false:return "false"}if(typeof _=="string")return h(_);if(typeof _=="number")return String(_);if(typeof _=="object")return Array.isArray(_)?p(_):d(_)}function h(g){let E={"'":.1,'"':.2},_={"'":"\\'",'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t","\v":"\\v","\0":"\\0","\u2028":"\\u2028","\u2029":"\\u2029"},b="";for(let C=0;C<g.length;C++){let y=g[C];switch(y){case "'":case '"':E[y]++,b+=y;continue;case "\0":if(ce.isDigit(g[C+1])){b+="\\x00";continue}}if(_[y]){b+=_[y];continue}if(y<" "){let S=y.charCodeAt(0).toString(16);b+="\\x"+("00"+S).substring(S.length);continue}b+=y;}let m=l||Object.keys(E).reduce((C,y)=>E[C]<E[y]?C:y);return b=b.replace(new RegExp(m,"g"),_[m]),m+b+m}function d(g){if(i.indexOf(g)>=0)throw TypeError("Converting circular structure to JSON5");i.push(g);let E=a;a=a+u;let _=s||Object.keys(g),b=[];for(let C of _){let y=c(C,g);if(y!==void 0){let S=f(C)+":";u!==""&&(S+=" "),S+=y,b.push(S);}}let m;if(b.length===0)m="{}";else {let C;if(u==="")C=b.join(","),m="{"+C+"}";else {let y=`,
59
- `+a;C=b.join(y),m=`{
60
- `+a+C+`,
61
- `+E+"}";}}return i.pop(),a=E,m}function f(g){if(g.length===0)return h(g);let E=String.fromCodePoint(g.codePointAt(0));if(!ce.isIdStartChar(E))return h(g);for(let _=E.length;_<g.length;_++)if(!ce.isIdContinueChar(String.fromCodePoint(g.codePointAt(_))))return h(g);return g}function p(g){if(i.indexOf(g)>=0)throw TypeError("Converting circular structure to JSON5");i.push(g);let E=a;a=a+u;let _=[];for(let m=0;m<g.length;m++){let C=c(String(m),g);_.push(C!==void 0?C:"null");}let b;if(_.length===0)b="[]";else if(u==="")b="["+_.join(",")+"]";else {let m=`,
62
- `+a,C=_.join(m);b=`[
63
- `+a+C+`,
64
- `+E+"]";}return i.pop(),a=E,b}},dC={parse:sC,stringify:hC},fC=dC,$r=fC;var wf="\xA7SPACE\xA7",Af="\xA7DOUBLE_QUOTES\xA7",Pf="\xA7QUOTES\xA7",Tf="SPECIAL_\xA7QUOTES\xA7",Of="\xA7CURLY_BRACKETS1\xA7",pC="\xA7INK_VAR\xA7",xf="\xA7CURLY_BRACKETS2\xA7",hn;(m=>{let n=[],e=[];async function t(C,y){for(let S=0;S<n.length;S++)try{let{validation:w}=n[S].opts;if(w instanceof RegExp){if(!w.test(C.join(" ")))continue}else if(w instanceof ZodType&&!w.safeParse(C).success)continue;let P=await n[S].fn(C,y,h);if(P===!0||typeof P=="string")return P}catch{}return false}function r(C,y={name:"custom-command",validation:/^/}){n.unshift({fn:C,opts:y});}m.add=r;function i(){return [...e.map(C=>C.opts),...n.map(C=>C.opts)]}m.info=i;function a(C,y){e.unshift({fn:C,opts:y});}m.addMapper=a;function s(){n.length=0;}m.clear=s;function o(){e.length=0;}m.clearMappers=o;async function u(C,y,S){try{let w=l(C),P=await t(w,S);return P===!0?void 0:typeof P=="string"?(P.startsWith("#")&&(P=P.substring(1)),await m.run(P,y,S)):c(w,y)}catch(w){throw U.error("Error parsing ink hashtag-command",C),w}}m.run=u;function l(C,y){if(C=C.replaceAll('\\"',Af),C=C.replaceAll("\\'",Pf),C=C.replaceAll("\\`",Tf),C=C.replaceAll("\\{",Of),C=C.replaceAll("\\}",xf),y?.mergeInkVariables){let A;do A=C,C=C.replace(/\{[^{}:]*\}/g,pC);while(C!==A)}C=C.replaceAll("{"," { "),C=C.replaceAll("}"," } "),C=C.replaceAll(Of,"{"),C=C.replaceAll(xf,"}");let S=[],w,P="";for(let A=0;A<C.length;A++){let R=C[A];R==='"'||R==="'"||R==="`"?w===void 0?(S.push(P),P="",w=R,P+=R):w===R?(w=void 0,P+=R,S.push(P),P=""):P+=R:P+=R;}return P!==""&&S.push(P),S.forEach((A,R)=>{R%2===1&&(S[R]=A.replaceAll(" ",wf));}),C=S.join(""),S=C.split(" ").filter(A=>A!==""),S=S.map(A=>A.replaceAll(wf," ").replaceAll(Af,'"').replaceAll(Pf,"'").replaceAll(Tf,"`")),S=g(S),S=S.flatMap(A=>b(A)),S=S.map(A=>A.startsWith('"')&&A.endsWith('"')||A.startsWith("'")&&A.endsWith("'")||A.startsWith("`")&&A.endsWith("`")?A.slice(1,-1):A),S}m.convertTagTolist=l;function c(C,y,S){for(let w of e){let{validation:P}=w.opts,A=false;if(P instanceof RegExp?A=P.test(C.join(" ")):P instanceof ZodType&&(A=P.safeParse(C).success),A)return w.fn(C,y)}S?.silent||U.error("The operation is not valid",C);}m.convertOperation=c;function h(C){return d(C)}m.convertListStringToObj=h;function d(C){if(C.length===0)return {};if(C.length%2!==0)throw U.error("The props list must have a pair number of elements",C),new Error("The props list must have a pair number of elements");let y="{";C.forEach((S,w)=>{if(w%2===0)y+=`"${S}": `;else {switch(S){case "null":case "undefined":case "true":case "false":y+=`${S}`;break;default:p(S)?(S=f(S),y+=`"${S}"`):S.startsWith("{")&&S.endsWith("}")?y+=`${S}`:S.startsWith('"')&&S.endsWith('"')?y+=`${S}`:Number.isNaN(parseFloat(S))?y+=`"${S}"`:y+=`${S}`;}w<C.length-1&&(y+=", ");}}),y+="}";try{return $r.parse(y)}catch(S){throw U.error("Error parsing ink json",y),S}}function f(C){return C.startsWith('"')&&C.endsWith('"')||C.startsWith("'")&&C.endsWith("'")||C.startsWith("`")&&C.endsWith("`")?C.substring(1,C.length-1):C}function p(C){return !!(C.startsWith('"')&&C.endsWith('"')||C.startsWith("'")&&C.endsWith("'")||C.startsWith("`")&&C.endsWith("`"))}function g(C){return E(C).tokens}m.mergeJsonBlocks=g;function E(C){let y=[],S=false;for(let w=0;w<C.length;w++){let P=C[w];if(P!=="{"){y.push(P);continue}let A=_(C,w);if(A===-1){y.push(P);continue}let R=E(C.slice(w+1,A)),be=["{",...R.tokens,"}"],qt=be.join(" ");if(!R.hasInvalidMatchedBlock)try{$r.parse(qt),y.push(qt),w=A;continue}catch{}S=true,y.push(...be),w=A;}return {tokens:y,hasInvalidMatchedBlock:S}}function _(C,y){let S=0;for(let w=y;w<C.length;w++)if(C[w]==="{")S++;else if(C[w]==="}"&&(S--,S===0))return w;return -1}function b(C){if(C==="["||C==="]")return [C];let y=0,S=C.length,w=[];for(;y<S&&C[y]==="[";)w.push("["),y++;let P=[];for(;S>y&&C[S-1]==="]";)P.unshift("]"),S--;let A=C.slice(y,S);return A===""?[...w,...P]:[...w,A,...P]}})(hn||={});var Ff=["+","-","/","*","%","_","==",">","<",">=","<=","!=","!","&&","||","MIN","MAX"],Nf=["+","-","/","*","%","POW","RANDOM","L^"],If=["INT","FLOOR","FLOAT"];function qn(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 kf="\xA7DOUBLE_SLASH_CONVERTOR\xA7";function mt(n){return n.startsWith("^")&&(n=n.substring(1)),n=n.replaceAll("\\\\",kf),n=n.replaceAll("\\n",`
65
- `),n=n.replaceAll("\\t"," "),n=n.replaceAll(" "," "),n=n.replaceAll(kf,"\\\\"),n}function Bt(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)U.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 U.error("Error parsing ink file: Conditional statement is not valid",n);break;default:if(PixiVNJsonComparationOperators.includes(s))if(a.length<2)U.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(Nf.includes(s))if(a.length<2)U.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(If.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){U.error("Error parsing ink file: Conditional statement is not valid",n);return}let c=Number(l),h=o.join(".");if(h.includes("^.")){let f=h.split("."),p=f[f.length-1].replaceAll(".","_|_");f.pop(),h=`${f.join(".")}.${p}`,u.includes("c-")&&(h=h+"_|_"+u);}else h=h.replaceAll(".","_|_");let d=qn(h,e);if(!d)return;a.push({type:"compare",leftValue:bu(d),operator:">=",rightValue:{type:"value",value:c}});}else {let o=qn(s["CNT?"],e);if(!o)return;a.push(bu(o));}else if(typeof s=="object"&&"VAR?"in s)a.push(dn({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){U.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 Bt(n,e,t,r)}function dn(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,d])=>{let[f,p]=h.split(".");return c.push({type:"value",storageOperationType:"set",storageType:a,key:p,value:d}),u.add(f),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:dn({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 yC(n,e,t,r,i,{isNewLine:s,isHashtagScript:o,isThreads:u})}function yC(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],d=hn.convertTagTolist(h),f=hn.convertOperation(d,l,{silent:!0});f&&(f.$origin=h,c.push(f));}}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(CC(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,l.labelToOpen||(l.goNextStep=!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:dn({key:e["->"],defaultType:"storage"},i),type:u?"call":"jump",params:e.params},glueEnabled:l});else {let c=qn(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=qn(e["->t->"],t);if(!c)return;n.push({labelToOpen:{label:c,type:"call",params:e.params},glueEnabled:l});}}}function CC(n,e){let t;if(n.includes(": ")){let r=n.split(": "),i=r[0],a=r.slice(1).join(": ");(e?.has(i)||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 vC(n,e,t,r,i)}function vC(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){U.error("Error parsing ink file: Arithmetic statement is not valid",n);return}let i=Bt(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 Ln(n,e,t,r="",i,a,s=void 0){let o=[],u="sequential",l=false,c=true;n.forEach(f=>{f==="%"&&(u="loop"),f==="seq"&&(u="random"),f==="MIN"&&(l=true);});let h=n[n.length-1];return Object.keys(h).forEach(f=>{let p=h[f];if(Array.isArray(p)&&p.length>3){p=p.slice(1,p.length-2);let g=[];Wt(p,r,i,g,e,e,t,Bn,s,true,a),g.length===1?o.push(g[0]):o.push({type:"resulttocombine",combine:"cross",secondConditionalItem:g});}else Array.isArray(p)&&p.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 Wt(n,e,t,r=[],i,a,s,o,u=void 0,l=true,c=[]){let h=false,d=[],f=false,p=false,g=false,E=[],_=[];if(t.preDialog[e]&&(l=false,i(r,`^${t.preDialog[e].text}`,e,t,c,{isNewLine:l,isHashtagScript:p,isThreads:g}),t.preDialog[e].glue&&i(r,"<>",e,t,c,{isNewLine:l,isHashtagScript:p,isThreads:g}),delete t.preDialog[e]),n.includes("visit")){let m=Ln(n,a,s,e,t,c,u);m&&(!l&&r.length>0&&i(r,"<>",e,t,c,{isNewLine:l,isHashtagScript:p,isThreads:g}),i(r,m,e,t,c,{isNewLine:l,isHashtagScript:p,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((m,C)=>{if(p){if(typeof m=="string"&&m==="/#"){let y=[];Wt(_,e,t,y,Pu,Pu,s,o,u,l),i(r,y,e,t,c,{isNewLine:l,isHashtagScript:p,isThreads:g}),p=false,_=[];}else _.push(m);return}else if(h)if(Array.isArray(m))d.push(m);else if(m&&typeof m=="object")"CNT?"in m?C>0&&n[C-1]==="ev"?(f=true,E.push(m)):f?E.push(m):(d.push(m),l=false):"VAR="in m||"temp="in m?Vr({key:"VAR="in m?m["VAR="]:m["temp="],value:n[C-1],defaultType:"VAR="in m?"storage":"tempstorage"},c,t).forEach(S=>{if(S.value&&typeof S.value=="string"&&S.value==="/str"&&(S.value=n[C-2]),S.value&&typeof S.value=="object"&&"^->"in S.value&&(S.value=S.value["^->"]),d.length>1){let w=ss(d,e,c,t);d=[],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:p,isThreads:g}),l=true);}):"VAR?"in m?d.push(m):"^->"in m?m["^->"].includes("$r")||d.push(m):("f()"in m||"list"in m&&typeof m.list=="object")&&d.push(m);else switch(m){case "/ev":f&&E.push(m),h=false,d.push(m);break;case "out":if(d.length>0){let y=d[d.length-1];if(y&&typeof y=="object"&&"VAR?"in y){d.pop();let S=dn({key:y["VAR?"],defaultType:"storage"},c);i(r,S,e,t,c,{isNewLine:l,isHashtagScript:p,isThreads:g});}else {let S=[];for(;d.length>0&&d[d.length-1]!=="/ev";)S.push(d.pop());S=S.reverse();let w=ss(S,e,c,t);d=[],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:p,isThreads:g}):(i(r,"<>",e,t,c,{isNewLine:l,isHashtagScript:p,isThreads:g}),w=`^${w}`,i(r,w,e,t,c,{isNewLine:l,isHashtagScript:p,isThreads:g}));}l=false;}break;case "pop":{let y=d[d.length-1];if(y&&typeof y=="object"&&"f()"in y){let S=[];for(;d.length>0&&d[d.length-1]!=="/ev";)S.push(d.pop());S=S.reverse();let w=Bt(S,e,c,t);d=[],w.forEach(P=>{P&&typeof P=="object"&&"type"in P&&P.type==="function"?i(r,P,e,t,c,{isNewLine:l,isHashtagScript:p,isThreads:g}):U.warn("Unhandled case: value is not a function",P);}),l=false;}else d.push(m);return}default:d.push(m);}else if(typeof m=="string")if(m.startsWith("^"))i(r,m,e,t,c,{isNewLine:l,isHashtagScript:p,isThreads:g}),l=false;else if(m==="ev")h=true;else if(m===`
66
- `)l=true;else if(m==="done"||m==="end")i(r,m,e,t,c,{isNewLine:l,isHashtagScript:p,isThreads:g}),l=false;else if(m==="<>")i(r,m,e,t,c,{isNewLine:l,isHashtagScript:p,isThreads:g}),l=false;else if(m==="nop"&&f){let y=Rf(E,a,s,e,t,c,u);y&&i(r,y,e,t,c,{isNewLine:l,isHashtagScript:p,isThreads:g}),f=false,E=[];}else m==="#"?p=true:m==="thread"&&(g=true);else if(Array.isArray(m))if(f)E.push(m);else if(m.length>1&&typeof m[m.length-2]=="object"&&m[m.length-2]&&"c"in m[m.length-2]&&typeof m[m.length-1]=="object"&&m[m.length-1]&&"b"in m[m.length-1]){d.pop();let y=[],S=[];for(;d.length>0&&d[d.length-1]!=="/ev";)y.push(d.pop());E=[...E,...y.reverse()],f=true,S.push(m.pop()),S.push(m.pop()),E=[...E,...m],E.push(S);}else if(m.length>1&&typeof m[m.length-1]=="object"&&m[m.length-1]&&"#n"in m[m.length-1]){let y=m.pop();if(!y){U.error("Error parsing ink file: el is undefined");return}let S=y["#n"];delete y["#n"],m.push(y),i(r,{"->":e?e+"_|_"+S:S},e,t,c,{isNewLine:l,isHashtagScript:p,isThreads:g}),s({[S]:m},e,t);}else Wt(m,e,t,r,i,a,s,o,u,l,c);else if(m&&typeof m=="object")if("->"in m&&typeof m["->"]=="string"&&!new RegExp(/^\.\^\.\^\.\d\.s$/).test(m["->"])){let y=[];d.length>0&&(y=Du(["ev",...d],e,c,t)),m.params=y,i(r,m,e,t,c,{isNewLine:l,isHashtagScript:p,isThreads:g}),l=false;}else if("->t->"in m&&typeof m["->t->"]=="string"&&!new RegExp(/^\.\^\.\^\.\d\.s$/).test(m["->t->"])){let y=[];d.length>0&&(y=Du(["ev",...d],e,c,t)),m.params=y,i(r,m,e,t,c,{isNewLine:l,isHashtagScript:p,isThreads:g}),l=false;}else if("*"in m&&typeof m["*"]=="string")m["*"].includes("c")&&(d.push(m),l=false);else if("s"in m&&Array.isArray(m.s))d.push(m),l=false;else if("CNT?"in m)d.push(m),l=false;else if("VAR="in m||"temp="in m){let y="VAR="in m?m["VAR="]:m["temp="],S,w=[];if(y!=="$r"){for(d.pop(),d[d.length-1]==="/ev"&&d.pop();d.length>0&&d[d.length-1]!=="/ev";)w.push(d.pop());w=w.reverse(),S=ss(w,e,c,t),d=[],Vr({key:y,value:S,defaultType:"VAR="in m?"storage":"tempstorage",artmeticValue:true},c,t).forEach(A=>{(A.value!==void 0||A.value!==null)&&i(r,A,e,t,c,{isNewLine:l,isHashtagScript:p,isThreads:g});}),l=false;}}else s(m,e,t);}),o(d,r,e,t,c),e.includes("_|_")&&r.length===2){let m=r[0],C=r[1];m&&C&&typeof m=="object"&&"dialogue"in m&&typeof C=="object"&&"labelToOpen"in C&&m.dialogue===" "&&C.labelToOpen&&(r.shift(),delete C.glueEnabled,r[0]=C);}}function Ou(n,e,t,r,i,a){if(e.length===0)return;let s=Bt(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 Rf(n,e,t,r,i,a,s=void 0){if(n.length===0){U.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){U.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["->"]))),Wt(l.b,r,i,o,e,e,t,Bn,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 Bn(n,e,t,r,i){if(n.length>0){let a={};$f(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 d=h.choices;d&&Array.isArray(d)?d.push(c):U.error("Unhandled case: choices is PixiVNJsonConditionalStatements<PixiVNJsonChoices> | undefined",o,d),h.choices=d.sort((f,p)=>{try{let g=f.label.split("."),E=g[g.length-1].replaceAll(".","_|_"),_=p.label.split("."),b=_[_.length-1].replaceAll(".","_|_");if(E.includes("c-")&&b.includes("c-")){let m=E.split("c-")[1],C=Number(m),y=b.split("c-")[1],S=Number(y);return C-S}}catch{}return 0});}else e.push({choices:[c]});o.preDialog&&(r.preDialog[u]={...o.preDialog});}}}function $f(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)):Ff.includes(h)&&l.push(h);else if(Array.isArray(h)&&h.includes("visit")){let d=Ln(h,is,(f,p,g)=>{},i,r,t);a.push(d);}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 d=Vf(h.s),f=h.s.includes("<>");d&&(i&&e[i]?(e[i].preDialog={text:d,glue:f},e[i].text=xu(d,e[i].text)):(a.push(d),o=d));}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 d=n.slice(c+1);$f(d,e,t,r,s);return}}}function Vf(n){for(let e of n)if(typeof e=="string"){if(e.startsWith("^"))return mt(e)}else if(Array.isArray(e)){let t=Vf(e);if(t)return t}}var Fu;(i=>{function n(a,s={}){let{labelToRemove:o=[],initialVarsToRemove:u=[],enums:l={},functions:c=[],preDialog:h={},characterIds:d}=s,f={$schema:PIXIVNJSON_SCHEMA_URL};if(f.labels=e(a.root,{labelToRemove:o,initialVarsToRemove:u,enums:l,functions:c,preDialog:h,characterIds:d}),f.labels&&es in f.labels){let p=f.labels[es];delete f.labels[es],p.forEach(g=>{g.operations&&(f.initialOperations=f.initialOperations?[...f.initialOperations,...g.operations]:[...g.operations]);});}if(f.labels&&un in f.labels){let p=f.labels[un];delete f.labels[un],p.forEach(g=>{g.operations&&(f.initialOperations=f.initialOperations?[...f.initialOperations,...g.operations]:[...g.operations]);});}return o.forEach(p=>{f.labels&&p in f.labels&&delete f.labels[p];}),u.forEach(p=>{f.initialOperations&&(f.initialOperations=f.initialOperations.filter(g=>!(g.type==="value"&&g.key===p)));}),f}i.inkToJson=n;function e(a,s){try{let o={};return t(a,o,s),o}catch(o){U.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=Ln(u,is,(c,h,d)=>{},"",o,[]);l&&(o.externalSwitch=l);}else t(u,s,o);else typeof u=="object"&&(u&&"VAR="in u&&o.externalSwitch&&(s[un]||(s[un]=[]),s[un].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=[],d={},f=(o?o+"_|_":"")+l;Wt(c,f,u,h,Au,Au,(p,g,E)=>{r(p,d,g,E);},Bn);for(let[p,g]of Object.entries(d))s[p]=g;h.length>0&&(s[f]=h);}}}})(Fu||={});var mf=Ir(mg()),M0=Ir(Jg()),G0=Ir(j0()),J0=Ir(or()),fO=/(?:^|<>)\s*#\s*([^\r\n]+)/g,pO=/^=+[ \t]+(?:function[ \t]+)?(\w+)/gm,mO=new Set(["DONE","END"]),gO="_|_",q0=new Map;function H0(n,e){let t=JSON.stringify([e,n]),r=q0.get(t);if(r)return r;let i=new RegExp(n,e);return q0.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(!H0(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 df(n,e){if(e.type==="regexp")try{let t=H0(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 L0(n,e){if(n===e)return 1;let t=Math.max(n.length,e.length);return t===0?1:Math.max(0,1-U0(n,e)/t)}function yO(n,e){if(e&&typeof e=="object"){let t=e;if(typeof t.const=="string")return {weight:2,matched:n===void 0?0:2*L0(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=>L0(n,i))))}}return {weight:1,matched:n===void 0?0:1}}function CO(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=yO(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 vO=.8,B0=new Map;function EO(n){let e=JSON.stringify(n),t=B0.get(e);if(t)return t;let r=new M0.default({strict:false,allErrors:true}).compile(n);return B0.set(e,r),r}function _O(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 SO(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 gf(n)}function bO(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 ff(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(fO)){let s=(a[1]??"").trim();if(!s)continue;let o=hn.convertTagTolist(s,{mergeInkVariables:true});o.length!==0&&t.push({line:r+1,command:s,tokens:o});}}return t}function gf(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 U0(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 DO(n,e){let t,r=1/0;for(let a of e){let s=U0(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 wO(n,e){if(n.keyword==="additionalProperties"&&typeof n.params?.additionalProperty=="string"){let t=n.params.additionalProperty,r=e&&DO(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 AO(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 PO(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 W0(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 TO(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))&&W0(o,e.type)&&W0(s.properties.operationType,e.operationType)&&r.push(i);}return r}function OO(n,e,t){let r=n.definitions??{},i={definitions:r,...r[e]},a=new mf.default({strict:false,allErrors:true}).compile(i);return a(t)?[]:a.errors??[]}function xO(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=`${gf(o)}|${o.message}`;return s.has(u)?false:(s.add(u),true)})}function pf(n,e,t){return n.map(r=>({instancePath:r.instancePath||"(root)",element:gf(r),message:wO(r,t?.(r)),origin:AO(e,r.instancePath)}))}function FO(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?PO(e,c.instancePath):void 0;if(!h){u.push(c);continue}let d=o.get(h.path);d?d.errors.push(c):o.set(h.path,{node:h.node,errors:[c]});}let l=pf(du(u),e);for(let[c,h]of o){let d=s?TO(s,h.node):[],f=d.length===1?d[0]:void 0;if(!f||!s){l.push(...pf(du(h.errors),e));continue}let g=du(OO(s,f,h.node)).map(E=>({...E,instancePath:`${c}${E.instancePath}`}));l.push(...pf(g,e,E=>xO(s,f,E.instancePath.slice(c.length))));}return l}var yf;(h=>{function n(d,f={labelToRemove:[],initialVarsToRemove:[],functions:[],enums:{}}){let p=[];try{return {json:new G0.Compiler(d,{errorHandler:(b,m)=>{let C=b.replace(/^[A-Z]+: line \d+: ?/,""),y=b.match(/line (\d+)/);p.push({message:C,type:m,line:y?Number(y[1]):-1});},countAllVisits:!0,fileHandler:{ResolveInkFilename:b=>b,LoadInkFileContents:()=>""},pluginNames:[],sourceFilename:null}).Compile().ToJson()||"",issues:p}}catch{let E=false,_={...f,textSource:d};return e(p,()=>{E=true;},_),E?n(_.textSource,f):{issues:p}}}h.compile=n;function e(d,f,p){let{functions:g,initialVarsToRemove:E,labelToRemove:_}=p,b=d.find(m=>m.type===J0.ErrorType.Error);if(b){if(b.message.includes("Divert target not found")){let m=b.message.match(/Divert target not found: '-> (\w+)'/);if(m?.[1]){let C=m[1],y=`
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=`,
59
+ `+a;_=b.join(y),d=`{
60
+ `+a+_+`,
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
+ `+a,_=E.join(d);b=`[
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 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 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(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)||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: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=`
67
67
 
68
- === ${C} ===
68
+ === ${_} ===
69
69
 
70
- -> DONE`;return p.textSource=p.textSource.concat(y),_.push(C),f()}}if(b.message.includes("Unresolved variable")){let m=b.message.match(/Unresolved variable: (\w+)/);if(m?.[1]){let C=m[1],y=`VAR ${C} = ""
70
+ -> DONE`;return m.textSource=m.textSource.concat(y),E.push(_),p()}}if(b.message.includes("Unresolved variable")){let d=b.message.match(/Unresolved variable: (\w+)/);if(d?.[1]){let _=d[1],y=`VAR ${_} = ""
71
71
 
72
- `;return p.textSource=y.concat(p.textSource),E.push(C),f()}}if(b.message.includes("Variable could not be found to assign to")){let m=b.message.match(/Variable could not be found to assign to: (\w+)/);if(m?.[1]){let C=m[1],y=`VAR ${C} = ""
72
+ `;return m.textSource=y.concat(m.textSource),v.push(_),p()}}if(b.message.includes("Variable could not be found to assign to")){let d=b.message.match(/Variable could not be found to assign to: (\w+)/);if(d?.[1]){let _=d[1],y=`VAR ${_} = ""
73
73
 
74
- `;return p.textSource=y.concat(p.textSource),E.push(C),f()}}if(b.message.includes("Variable could not be found to assign to")){let m=b.message.match(/Variable could not be found to assign to: '(\w+)'/);if(m?.[1]){let C=m[1],y=`VAR ${C} = ""
74
+ `;return m.textSource=y.concat(m.textSource),v.push(_),p()}}if(b.message.includes("Variable could not be found to assign to")){let d=b.message.match(/Variable could not be found to assign to: '(\w+)'/);if(d?.[1]){let _=d[1],y=`VAR ${_} = ""
75
75
 
76
- `;return p.textSource=y.concat(p.textSource),E.push(C),f()}}if(b.message.includes("Function call target not found")){let m=b.message.match(/Function call target not found: '-> (\w+)'/);if(m?.[1]){let C=m[1],y=`
76
+ `;return m.textSource=y.concat(m.textSource),v.push(_),p()}}if(b.message.includes("Function call target not found")){let d=b.message.match(/Function call target not found: '-> (\w+)'/);if(d?.[1]){let _=d[1],y=`
77
77
 
78
- === function ${C}() ===
78
+ === function ${_}() ===
79
79
 
80
80
  ~ return
81
81
 
82
- `;return p.textSource=p.textSource.concat(y),g.push({name:C,args:0}),_.push(C),f()}}if(b.message.includes(" arguments, but got ")){let m=b.message.match(/Function call to '(\w+)' requires (\d+) arguments, but got (\d+)/);if(m?.[1]){let C=m[1],y=parseInt(m[3]||"0",10),S=y>0?Array.from({length:y},(A,R)=>`arg${R+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(", "):"",w=`
83
83
 
84
- === function ${C}(${S}) ===
84
+ === function ${_}(${S}) ===
85
85
 
86
86
  ~ return
87
87
 
88
- `;p.textSource=p.textSource.replaceAll(`
88
+ `;m.textSource=m.textSource.replaceAll(`
89
89
 
90
- === function ${C}() ===
90
+ === function ${_}() ===
91
91
 
92
92
  ~ return
93
93
 
94
- `,""),p.textSource=p.textSource.concat(w);let P=g.find(A=>A.name===C);return P?P.args=y:(g.push({name:C,args:y}),_.push(C)),f()}}if(b.message.includes("Could not find target for read count")){let m=b.message.match(/Could not find target for read count: -> (\w+\.\w+)/);if(m?.[1]){let C=m[1],[y,S]=C.split("."),w=`
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=`
95
95
 
96
96
  LIST ${y} = ${S}
97
97
 
98
- `;return p.textSource=p.textSource.concat(w),p.initialVarsToRemove.push(y),p.initialVarsToRemove.push(`${y}.${S}`),f()}}if(b.message.includes("variable for increment could not be found")){let m=b.message.match(/variable for increment could not be found: '(\w+)' after searching:/);if(m?.[1]){let C=m[1],y=`VAR ${C} = 0
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
99
99
 
100
- `;return p.textSource=y.concat(p.textSource),p.initialVarsToRemove.push(C),f()}}return d.forEach(m=>{let C=m.message.match(/Function call to '(\w+)' requires (\d+) arguments, but got (\d+)/);C?.[1]&&(m.message=`The function '${C[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:d}}return {issues:d}}h.getErrors=e;function t(d,f){return ff(d).filter(({tokens:p})=>!f.some(({validation:g})=>df(p,g)))}h.getUnknownHashtagCommands=t;function r(d,f){let p=f.filter(E=>E.validation.type==="zod");if(p.length===0)return [];let g=[];for(let E of ff(d)){if(f.some(({validation:m})=>df(E.tokens,m)))continue;let _;for(let m of p)for(let C of hu(m.validation.schema)){let{score:y,hasDiscriminant:S}=CO(E.tokens,C);S&&(!_||y>_.score)&&(_={command:m,branch:C,score:y});}if(!_||_.score<vO)continue;let b=EO(_O(_.branch));if(!b(E.tokens))for(let m of du(b.errors??[]))g.push({line:E.line,command:E.command,handlerName:_.command.name,instancePath:m.instancePath||"(root)",element:SO(m,E.tokens),message:bO(m),score:_.score});}return g}h.getLikelyUnknownHashtagCommandSchemaIssues=r;function i(d,f){let p=new Set;for(let m of d.matchAll(pO))m[1]&&p.add(m[1]);let g=new Set(f),E=new Set,_=d.split(/\r?\n/),b=[];for(let m=0;m<_.length;m++){let C=(_[m]??"").replace(/\/\/.*$/,"");for(let y of C.matchAll(/->[ \t]+(\w[\w.]*)/g)){let S=y[1];if(!S)continue;let w=S.split(".")[0]??S;mO.has(w)||p.has(w)||g.has(S)||g.has(S.replaceAll(".",gO))||g.has(w)||E.has(S)||(E.add(S),b.push({line:m+1,target:S}));}}return b}h.getUnknownDivertTargets=i;function a(d){return new mf.default({strict:false,allErrors:true}).compile(d)}h.getSchemaValidator=a;function s(d,f){let p=typeof f=="function"?f:a(f);return p(d)?[]:FO(p.errors??[],d,p.schema)}h.validateAgainstJsonSchema=s;function o(d,f){let p=new Set,g=[];for(let m of f){let C=u(m);C!==void 0?g.push(C):p.add(String(m));}g.sort((m,C)=>C-m);let E=[],_=d.length;for(let m=d.length-1;m>=0;m--)p.has(d[m])&&(E.push({key:d[m],sectionTokens:d.slice(m+1,_)}),_=m);E.reverse();let b=[];for(let m of g)m<0||m>=_||(b.push({key:m,sectionTokens:d.slice(m,_)}),_=m-1);return b.reverse(),[...b,...E]}h.extractKeyedSections=o;function u(d){return typeof d=="number"?Number.isInteger(d)&&d>=0?d:void 0:/^\d+$/.test(d)?Number(d):void 0}function l(d,f){let p=o(d,Object.keys(f)),g=[];for(let{key:E,sectionTokens:_}of p){let b;try{b=hn.convertListStringToObj(_);}catch(C){g.push({key:E,instancePath:"(root)",element:String(E),message:`could not parse "${E}" section into key/value pairs: ${C instanceof Error?C.message:String(C)}`});continue}let m=s(b,f[E]);g.push(...m.map(C=>({...C,key:E})));}return g}h.validateKeyedJsonSchemas=l;function c(d,f){let p=[];for(let g of ff(d)){let E=f.find(({validation:b})=>df(g.tokens,b));if(!E?.keySchemas)continue;let _=l(g.tokens,E.keySchemas);p.push(..._.map(b=>({...b,line:g.line,command:g.command})));}return p}h.getHashtagKeySchemaIssues=c;})(yf||={});var Cf=Ir(or());function z0(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 K0(n,e={}){let t={labelToRemove:[],initialVarsToRemove:[],functions:e.functions||[],enums:e.enums||{},textSource:n},{json:r,issues:i}=yf.compile(n,t);if(i.forEach(({message:s,type:o})=>{o===Cf.ErrorType.Error?U.error(`Ink compilation error: ${s}`):o===Cf.ErrorType.Warning?U.warn(`Ink compilation warning: ${s}`):U.info(`Ink compilation info: ${s}`);}),!r){U.error("No JSON generated from ink file");return}let a;try{a=$r.parse(r);}catch{U.error("Error parsing ink file");return}return t.enums=a.listDefs||{},Fu.inkToJson(a,{...t,characterIds:z0(e.characters)})}export{K0 as convertInkText,K0 as convertInkToJson,z0 as normalizeCharacterIds};
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)})}export{X0 as convertInkText,X0 as convertInkToJson,K0 as normalizeCharacterIds};