@rohal12/spindle 0.52.3 → 0.52.4
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.
- package/dist/pkg/format.js +1 -1
- package/dist/pkg/headless.js +267 -624
- package/dist/pkg/story-variables.js +155 -469
- package/package.json +1 -1
- package/src/components/macros/Widget.tsx +18 -7
- package/src/index.tsx +5 -8
- package/src/interpolation.ts +16 -22
- package/src/js-lexer.ts +20 -9
- package/src/markup/ast.ts +108 -147
- package/src/markup/code-attributes.ts +4 -6
- package/src/markup/tokenizer.ts +218 -574
package/dist/pkg/format.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
window.storyFormat({"name":"spindle","version":"0.52.3","author":"Rohal12","description":"A Preact-based story format for Twine 2.","image":"","url":"","license":"Unlicense","proofing":false,"source":"<!doctype html>\n<html>\n <head>\n <meta charset=\"UTF-8\" />\n <meta\n name=\"viewport\"\n content=\"width=device-width, initial-scale=1\"\n />\n <title>{{STORY_NAME}}</title>\n <link\n id=\"favicon\"\n rel=\"icon\"\n type=\"image/svg+xml\"\n href=\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cdefs%3E%3ClinearGradient id='sg' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0%25' stop-color='%23c4b5fd'/%3E%3Cstop offset='50%25' stop-color='%238b5cf6'/%3E%3Cstop offset='100%25' stop-color='%235b21b6'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cellipse cx='16' cy='16' rx='13' ry='5' stroke='%237c3aed' stroke-width='1.8' fill='none' opacity='.85' transform='rotate(55,16,16)'/%3E%3Cellipse cx='16' cy='16' rx='13' ry='5' stroke='%238b5cf6' stroke-width='1.8' fill='none' opacity='.85' transform='rotate(-55,16,16)'/%3E%3Cpath d='M16 3Q19.5 9 20.5 16 19.5 23 16 29 12.5 23 11.5 16 12.5 9 16 3Z' fill='url(%23sg)'/%3E%3C/svg%3E\"\n />\n <script type=\"module\" crossorigin>var e=Object.defineProperty,t=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],enumerable:!0});return n||e(r,Symbol.toStringTag,{value:`Module`}),r};(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel=\"modulepreload\"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var n,r,i,a,o,s,c,l,u,d,f,p,m={},h=[],g=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,_=Array.isArray;function v(e,t){for(var n in t)e[n]=t[n];return e}function y(e){e&&e.parentNode&&e.parentNode.removeChild(e)}function b(e,t,r){var i,a,o,s={};for(o in t)o==`key`?i=t[o]:o==`ref`?a=t[o]:s[o]=t[o];if(arguments.length>2&&(s.children=arguments.length>3?n.call(arguments,2):r),typeof e==`function`&&e.defaultProps!=null)for(o in e.defaultProps)s[o]===void 0&&(s[o]=e.defaultProps[o]);return x(e,s,i,a,null)}function x(e,t,n,a,o){var s={type:e,props:t,key:n,ref:a,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:o??++i,__i:-1,__u:0};return o==null&&r.vnode!=null&&r.vnode(s),s}function S(e){return e.children}function C(e,t){this.props=e,this.context=t}function w(e,t){if(t==null)return e.__?w(e.__,e.__i+1):null;for(var n;t<e.__k.length;t++)if((n=e.__k[t])!=null&&n.__e!=null)return n.__e;return typeof e.type==`function`?w(e):null}function T(e){if(e.__P&&e.__d){var t=e.__v,n=t.__e,i=[],a=[],o=v({},t);o.__v=t.__v+1,r.vnode&&r.vnode(o),ie(e.__P,o,t,e.__n,e.__P.namespaceURI,32&t.__u?[n]:null,i,n??w(t),!!(32&t.__u),a),o.__v=t.__v,o.__.__k[o.__i]=o,oe(i,o,a),t.__e=t.__=null,o.__e!=n&&E(o)}}function E(e){if((e=e.__)!=null&&e.__c!=null)return e.__e=e.__c.base=null,e.__k.some(function(t){if(t!=null&&t.__e!=null)return e.__e=e.__c.base=t.__e}),E(e)}function D(e){(!e.__d&&(e.__d=!0)&&a.push(e)&&!O.__r++||o!=r.debounceRendering)&&((o=r.debounceRendering)||s)(O)}function O(){try{for(var e,t=1;a.length;)a.length>t&&a.sort(c),e=a.shift(),t=a.length,T(e)}finally{a.length=O.__r=0}}function k(e,t,n,r,i,a,o,s,c,l,u){var d,f,p,g,_,v,y,b=r&&r.__k||h,x=t.length;for(c=ee(n,t,b,c,x),d=0;d<x;d++)(p=n.__k[d])!=null&&(f=p.__i!=-1&&b[p.__i]||m,p.__i=d,v=ie(e,p,f,i,a,o,s,c,l,u),g=p.__e,p.ref&&f.ref!=p.ref&&(f.ref&&le(f.ref,null,p),u.push(p.ref,p.__c||g,p)),_==null&&g!=null&&(_=g),(y=!!(4&p.__u))||f.__k===p.__k?c=A(p,c,e,y):typeof p.type==`function`&&v!==void 0?c=v:g&&(c=g.nextSibling),p.__u&=-7);return n.__e=_,c}function ee(e,t,n,r,i){var a,o,s,c,l,u=n.length,d=u,f=0;for(e.__k=Array(i),a=0;a<i;a++)(o=t[a])!=null&&typeof o!=`boolean`&&typeof o!=`function`?(typeof o==`string`||typeof o==`number`||typeof o==`bigint`||o.constructor==String?o=e.__k[a]=x(null,o,null,null,null):_(o)?o=e.__k[a]=x(S,{children:o},null,null,null):o.constructor===void 0&&o.__b>0?o=e.__k[a]=x(o.type,o.props,o.key,o.ref?o.ref:null,o.__v):e.__k[a]=o,c=a+f,o.__=e,o.__b=e.__b+1,s=null,(l=o.__i=M(o,n,c,d))!=-1&&(d--,(s=n[l])&&(s.__u|=2)),s==null||s.__v==null?(l==-1&&(i>u?f--:i<u&&f++),typeof o.type!=`function`&&(o.__u|=4)):l!=c&&(l==c-1?f--:l==c+1?f++:(l>c?f--:f++,o.__u|=4))):e.__k[a]=null;if(d)for(a=0;a<u;a++)(s=n[a])!=null&&!(2&s.__u)&&(s.__e==r&&(r=w(s)),ue(s,s));return r}function A(e,t,n,r){var i,a;if(typeof e.type==`function`){for(i=e.__k,a=0;i&&a<i.length;a++)i[a]&&(i[a].__=e,t=A(i[a],t,n,r));return t}e.__e!=t&&(r&&(t&&e.type&&!t.parentNode&&(t=w(e)),n.insertBefore(e.__e,t||null)),t=e.__e);do t=t&&t.nextSibling;while(t!=null&&t.nodeType==8);return t}function j(e,t){return t=t||[],e==null||typeof e==`boolean`||(_(e)?e.some(function(e){j(e,t)}):t.push(e)),t}function M(e,t,n,r){var i,a,o,s=e.key,c=e.type,l=t[n],u=l!=null&&(2&l.__u)==0;if(l===null&&s==null||u&&s==l.key&&c==l.type)return n;if(r>(u?1:0)){for(i=n-1,a=n+1;i>=0||a<t.length;)if((l=t[o=i>=0?i--:a++])!=null&&!(2&l.__u)&&s==l.key&&c==l.type)return o}return-1}function te(e,t,n){t[0]==`-`?e.setProperty(t,n??``):e[t]=n==null?``:typeof n!=`number`||g.test(t)?n:n+`px`}function ne(e,t,n,r,i){var a,o;n:if(t==`style`)if(typeof n==`string`)e.style.cssText=n;else{if(typeof r==`string`&&(e.style.cssText=r=``),r)for(t in r)n&&t in n||te(e.style,t,``);if(n)for(t in n)r&&n[t]==r[t]||te(e.style,t,n[t])}else if(t[0]==`o`&&t[1]==`n`)a=t!=(t=t.replace(l,`$1`)),o=t.toLowerCase(),t=o in e||t==`onFocusOut`||t==`onFocusIn`?o.slice(2):t.slice(2),e.l||(e.l={}),e.l[t+a]=n,n?r?n.u=r.u:(n.u=u,e.addEventListener(t,a?f:d,a)):e.removeEventListener(t,a?f:d,a);else{if(i==`http://www.w3.org/2000/svg`)t=t.replace(/xlink(H|:h)/,`h`).replace(/sName$/,`s`);else if(t!=`width`&&t!=`height`&&t!=`href`&&t!=`list`&&t!=`form`&&t!=`tabIndex`&&t!=`download`&&t!=`rowSpan`&&t!=`colSpan`&&t!=`role`&&t!=`popover`&&t in e)try{e[t]=n??``;break n}catch{}typeof n==`function`||(n==null||!1===n&&t[4]!=`-`?e.removeAttribute(t):e.setAttribute(t,t==`popover`&&n==1?``:n))}}function re(e){return function(t){if(this.l){var n=this.l[t.type+e];if(t.t==null)t.t=u++;else if(t.t<n.u)return;return n(r.event?r.event(t):t)}}}function ie(e,t,n,i,a,o,s,c,l,u){var d,f,p,m,g,b,x,w,T,E,D,O,ee,A,j,M=t.type;if(t.constructor!==void 0)return null;128&n.__u&&(l=!!(32&n.__u),o=[c=t.__e=n.__e]),(d=r.__b)&&d(t);n:if(typeof M==`function`)try{if(w=t.props,T=M.prototype&&M.prototype.render,E=(d=M.contextType)&&i[d.__c],D=d?E?E.props.value:d.__:i,n.__c?x=(f=t.__c=n.__c).__=f.__E:(T?t.__c=f=new M(w,D):(t.__c=f=new C(w,D),f.constructor=M,f.render=de),E&&E.sub(f),f.state||(f.state={}),f.__n=i,p=f.__d=!0,f.__h=[],f._sb=[]),T&&f.__s==null&&(f.__s=f.state),T&&M.getDerivedStateFromProps!=null&&(f.__s==f.state&&(f.__s=v({},f.__s)),v(f.__s,M.getDerivedStateFromProps(w,f.__s))),m=f.props,g=f.state,f.__v=t,p)T&&M.getDerivedStateFromProps==null&&f.componentWillMount!=null&&f.componentWillMount(),T&&f.componentDidMount!=null&&f.__h.push(f.componentDidMount);else{if(T&&M.getDerivedStateFromProps==null&&w!==m&&f.componentWillReceiveProps!=null&&f.componentWillReceiveProps(w,D),t.__v==n.__v||!f.__e&&f.shouldComponentUpdate!=null&&!1===f.shouldComponentUpdate(w,f.__s,D)){t.__v!=n.__v&&(f.props=w,f.state=f.__s,f.__d=!1),t.__e=n.__e,t.__k=n.__k,t.__k.some(function(e){e&&(e.__=t)}),h.push.apply(f.__h,f._sb),f._sb=[],f.__h.length&&s.push(f);break n}f.componentWillUpdate!=null&&f.componentWillUpdate(w,f.__s,D),T&&f.componentDidUpdate!=null&&f.__h.push(function(){f.componentDidUpdate(m,g,b)})}if(f.context=D,f.props=w,f.__P=e,f.__e=!1,O=r.__r,ee=0,T)f.state=f.__s,f.__d=!1,O&&O(t),d=f.render(f.props,f.state,f.context),h.push.apply(f.__h,f._sb),f._sb=[];else do f.__d=!1,O&&O(t),d=f.render(f.props,f.state,f.context),f.state=f.__s;while(f.__d&&++ee<25);f.state=f.__s,f.getChildContext!=null&&(i=v(v({},i),f.getChildContext())),T&&!p&&f.getSnapshotBeforeUpdate!=null&&(b=f.getSnapshotBeforeUpdate(m,g)),A=d!=null&&d.type===S&&d.key==null?se(d.props.children):d,c=k(e,_(A)?A:[A],t,n,i,a,o,s,c,l,u),f.base=t.__e,t.__u&=-161,f.__h.length&&s.push(f),x&&(f.__E=f.__=null)}catch(e){if(t.__v=null,l||o!=null)if(e.then){for(t.__u|=l?160:128;c&&c.nodeType==8&&c.nextSibling;)c=c.nextSibling;o[o.indexOf(c)]=null,t.__e=c}else{for(j=o.length;j--;)y(o[j]);ae(t)}else t.__e=n.__e,t.__k=n.__k,e.then||ae(t);r.__e(e,t,n)}else o==null&&t.__v==n.__v?(t.__k=n.__k,t.__e=n.__e):c=t.__e=ce(n.__e,t,n,i,a,o,s,l,u);return(d=r.diffed)&&d(t),128&t.__u?void 0:c}function ae(e){e&&(e.__c&&(e.__c.__e=!0),e.__k&&e.__k.some(ae))}function oe(e,t,n){for(var i=0;i<n.length;i++)le(n[i],n[++i],n[++i]);r.__c&&r.__c(t,e),e.some(function(t){try{e=t.__h,t.__h=[],e.some(function(e){e.call(t)})}catch(e){r.__e(e,t.__v)}})}function se(e){return typeof e!=`object`||!e||e.__b>0?e:_(e)?e.map(se):v({},e)}function ce(e,t,i,a,o,s,c,l,u){var d,f,p,h,g,v,b,x=i.props||m,S=t.props,C=t.type;if(C==`svg`?o=`http://www.w3.org/2000/svg`:C==`math`?o=`http://www.w3.org/1998/Math/MathML`:o||(o=`http://www.w3.org/1999/xhtml`),s!=null){for(d=0;d<s.length;d++)if((g=s[d])&&`setAttribute`in g==!!C&&(C?g.localName==C:g.nodeType==3)){e=g,s[d]=null;break}}if(e==null){if(C==null)return document.createTextNode(S);e=document.createElementNS(o,C,S.is&&S),l&&(r.__m&&r.__m(t,s),l=!1),s=null}if(C==null)x===S||l&&e.data==S||(e.data=S);else{if(s=s&&n.call(e.childNodes),!l&&s!=null)for(x={},d=0;d<e.attributes.length;d++)x[(g=e.attributes[d]).name]=g.value;for(d in x)g=x[d],d==`dangerouslySetInnerHTML`?p=g:d==`children`||d in S||d==`value`&&`defaultValue`in S||d==`checked`&&`defaultChecked`in S||ne(e,d,null,g,o);for(d in S)g=S[d],d==`children`?h=g:d==`dangerouslySetInnerHTML`?f=g:d==`value`?v=g:d==`checked`?b=g:l&&typeof g!=`function`||x[d]===g||ne(e,d,g,x[d],o);if(f)l||p&&(f.__html==p.__html||f.__html==e.innerHTML)||(e.innerHTML=f.__html),t.__k=[];else if(p&&(e.innerHTML=``),k(t.type==`template`?e.content:e,_(h)?h:[h],t,i,a,C==`foreignObject`?`http://www.w3.org/1999/xhtml`:o,s,c,s?s[0]:i.__k&&w(i,0),l,u),s!=null)for(d=s.length;d--;)y(s[d]);l||(d=`value`,C==`progress`&&v==null?e.removeAttribute(`value`):v!=null&&(v!==e[d]||C==`progress`&&!v||C==`option`&&v!=x[d])&&ne(e,d,v,x[d],o),d=`checked`,b!=null&&b!=e[d]&&ne(e,d,b,x[d],o))}return e}function le(e,t,n){try{if(typeof e==`function`){var i=typeof e.__u==`function`;i&&e.__u(),i&&t==null||(e.__u=e(t))}else e.current=t}catch(e){r.__e(e,n)}}function ue(e,t,n){var i,a;if(r.unmount&&r.unmount(e),(i=e.ref)&&(i.current&&i.current!=e.__e||le(i,null,t)),(i=e.__c)!=null){if(i.componentWillUnmount)try{i.componentWillUnmount()}catch(e){r.__e(e,t)}i.base=i.__P=null}if(i=e.__k)for(a=0;a<i.length;a++)i[a]&&ue(i[a],t,n||typeof e.type!=`function`);n||y(e.__e),e.__c=e.__=e.__e=void 0}function de(e,t,n){return this.constructor(e,n)}function fe(e,t,i){var a,o,s,c;t==document&&(t=document.documentElement),r.__&&r.__(e,t),o=(a=typeof i==`function`)?null:i&&i.__k||t.__k,s=[],c=[],ie(t,e=(!a&&i||t).__k=b(S,null,[e]),o||m,m,t.namespaceURI,!a&&i?[i]:o?null:t.firstChild?n.call(t.childNodes):null,s,!a&&i?i:o?o.__e:t.firstChild,a,c),oe(s,e,c)}function pe(e){function t(e){var n,r;return this.getChildContext||(n=new Set,(r={})[t.__c]=this,this.getChildContext=function(){return r},this.componentWillUnmount=function(){n=null},this.shouldComponentUpdate=function(e){this.props.value!=e.value&&n.forEach(function(e){e.__e=!0,D(e)})},this.sub=function(e){n.add(e);var t=e.componentWillUnmount;e.componentWillUnmount=function(){n&&n.delete(e),t&&t.call(e)}}),e.children}return t.__c=`__cC`+ p++,t.__=e,t.Provider=t.__l=(t.Consumer=function(e,t){return e.children(t)}).contextType=t,t}n=h.slice,r={__e:function(e,t,n,r){for(var i,a,o;t=t.__;)if((i=t.__c)&&!i.__)try{if((a=i.constructor)&&a.getDerivedStateFromError!=null&&(i.setState(a.getDerivedStateFromError(e)),o=i.__d),i.componentDidCatch!=null&&(i.componentDidCatch(e,r||{}),o=i.__d),o)return i.__E=i}catch(t){e=t}throw e}},i=0,C.prototype.setState=function(e,t){var n=this.__s!=null&&this.__s!=this.state?this.__s:this.__s=v({},this.state);typeof e==`function`&&(e=e(v({},n),this.props)),e&&v(n,e),e!=null&&this.__v&&(t&&this._sb.push(t),D(this))},C.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),D(this))},C.prototype.render=S,a=[],s=typeof Promise==`function`?Promise.prototype.then.bind(Promise.resolve()):setTimeout,c=function(e,t){return e.__v.__b-t.__v.__b},O.__r=0,l=/(PointerCapture)$|Capture$/i,u=0,d=re(!1),f=re(!0),p=0;var me,N,he,ge,_e=0,ve=[],P=r,F=P.__b,ye=P.__r,be=P.diffed,xe=P.__c,Se=P.unmount,Ce=P.__;function we(e,t){P.__h&&P.__h(N,e,_e||t),_e=0;var n=N.__H||(N.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({}),n.__[e]}function I(e){return _e=1,Te(Fe,e)}function Te(e,t,n){var r=we(me++,2);if(r.t=e,!r.__c&&(r.__=[n?n(t):Fe(void 0,t),function(e){var t=r.__N?r.__N[0]:r.__[0],n=r.t(t,e);t!==n&&(r.__N=[n,r.__[1]],r.__c.setState({}))}],r.__c=N,!N.__f)){var i=function(e,t,n){if(!r.__c.__H)return!0;var i=r.__c.__H.__.filter(function(e){return e.__c});if(i.every(function(e){return!e.__N}))return!a||a.call(this,e,t,n);var o=r.__c.props!==e;return i.some(function(e){if(e.__N){var t=e.__[0];e.__=e.__N,e.__N=void 0,t!==e.__[0]&&(o=!0)}}),a&&a.call(this,e,t,n)||o};N.__f=!0;var a=N.shouldComponentUpdate,o=N.componentWillUpdate;N.componentWillUpdate=function(e,t,n){if(this.__e){var r=a;a=void 0,i(e,t,n),a=r}o&&o.call(this,e,t,n)},N.shouldComponentUpdate=i}return r.__N||r.__}function Ee(e,t){var n=we(me++,3);!P.__s&&Pe(n.__H,t)&&(n.__=e,n.u=t,N.__H.__h.push(n))}function De(e,t){var n=we(me++,4);!P.__s&&Pe(n.__H,t)&&(n.__=e,n.u=t,N.__h.push(n))}function L(e){return _e=5,R(function(){return{current:e}},[])}function R(e,t){var n=we(me++,7);return Pe(n.__H,t)&&(n.__=e(),n.__H=t,n.__h=e),n.__}function Oe(e,t){return _e=8,R(function(){return e},t)}function z(e){var t=N.context[e.__c],n=we(me++,9);return n.c=e,t?(n.__??(n.__=!0,t.sub(N)),t.props.value):e.__}function ke(){for(var e;e=ve.shift();){var t=e.__H;if(e.__P&&t)try{t.__h.some(Me),t.__h.some(Ne),t.__h=[]}catch(n){t.__h=[],P.__e(n,e.__v)}}}P.__b=function(e){N=null,F&&F(e)},P.__=function(e,t){e&&t.__k&&t.__k.__m&&(e.__m=t.__k.__m),Ce&&Ce(e,t)},P.__r=function(e){ye&&ye(e),me=0;var t=(N=e.__c).__H;t&&(he===N?(t.__h=[],N.__h=[],t.__.some(function(e){e.__N&&(e.__=e.__N),e.u=e.__N=void 0})):(t.__h.some(Me),t.__h.some(Ne),t.__h=[],me=0)),he=N},P.diffed=function(e){be&&be(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(ve.push(t)!==1&&ge===P.requestAnimationFrame||((ge=P.requestAnimationFrame)||je)(ke)),t.__H.__.some(function(e){e.u&&(e.__H=e.u),e.u=void 0})),he=N=null},P.__c=function(e,t){t.some(function(e){try{e.__h.some(Me),e.__h=e.__h.filter(function(e){return!e.__||Ne(e)})}catch(n){t.some(function(e){e.__h&&(e.__h=[])}),t=[],P.__e(n,e.__v)}}),xe&&xe(e,t)},P.unmount=function(e){Se&&Se(e);var t,n=e.__c;n&&n.__H&&(n.__H.__.some(function(e){try{Me(e)}catch(e){t=e}}),n.__H=void 0,t&&P.__e(t,n.__v))};var Ae=typeof requestAnimationFrame==`function`;function je(e){var t,n=function(){clearTimeout(r),Ae&&cancelAnimationFrame(t),setTimeout(e)},r=setTimeout(n,35);Ae&&(t=requestAnimationFrame(n))}function Me(e){var t=N,n=e.__c;typeof n==`function`&&(e.__c=void 0,n()),N=t}function Ne(e){var t=N;e.__c=e.__(),N=t}function Pe(e,t){return!e||e.length!==t.length||t.some(function(t,n){return t!==e[n]})}function Fe(e,t){return typeof t==`function`?t(e):t}function Ie(e,t){for(var n in t)e[n]=t[n];return e}function Le(e,t){for(var n in e)if(n!==`__source`&&!(n in t))return!0;for(var r in t)if(r!==`__source`&&e[r]!==t[r])return!0;return!1}function Re(e,t){var n=t(),r=I({t:{__:n,u:t}}),i=r[0].t,a=r[1];return De(function(){i.__=n,i.u=t,ze(i)&&a({t:i})},[e,n,t]),Ee(function(){return ze(i)&&a({t:i}),e(function(){ze(i)&&a({t:i})})},[e]),n}function ze(e){try{return!((t=e.__)===(n=e.u())&&(t!==0||1/t==1/n)||t!=t&&n!=n)}catch{return!0}var t,n}function Be(e,t){this.props=e,this.context=t}(Be.prototype=new C).isPureReactComponent=!0,Be.prototype.shouldComponentUpdate=function(e,t){return Le(this.props,e)||Le(this.state,t)};var Ve=r.__b;r.__b=function(e){e.type&&e.type.__f&&e.ref&&(e.props.ref=e.ref,e.ref=null),Ve&&Ve(e)},typeof Symbol<`u`&&Symbol.for;var He=r.__e;r.__e=function(e,t,n,r){if(e.then){for(var i,a=t;a=a.__;)if((i=a.__c)&&i.__c)return t.__e??(t.__e=n.__e,t.__k=n.__k),i.__c(e,t)}He(e,t,n,r)};var Ue=r.unmount;function We(e,t,n){return e&&(e.__c&&e.__c.__H&&(e.__c.__H.__.forEach(function(e){typeof e.__c==`function`&&e.__c()}),e.__c.__H=null),(e=Ie({},e)).__c!=null&&(e.__c.__P===n&&(e.__c.__P=t),e.__c.__e=!0,e.__c=null),e.__k=e.__k&&e.__k.map(function(e){return We(e,t,n)})),e}function Ge(e,t,n){return e&&n&&(e.__v=null,e.__k=e.__k&&e.__k.map(function(e){return Ge(e,t,n)}),e.__c&&e.__c.__P===t&&(e.__e&&n.appendChild(e.__e),e.__c.__e=!0,e.__c.__P=n)),e}function Ke(){this.__u=0,this.o=null,this.__b=null}function qe(e){var t=e.__&&e.__.__c;return t&&t.__a&&t.__a(e)}function Je(){this.i=null,this.l=null}r.unmount=function(e){var t=e.__c;t&&(t.__z=!0),t&&t.__R&&t.__R(),t&&32&e.__u&&(e.type=null),Ue&&Ue(e)},(Ke.prototype=new C).__c=function(e,t){var n=t.__c,r=this;r.o??(r.o=[]),r.o.push(n);var i=qe(r.__v),a=!1,o=function(){a||r.__z||(a=!0,n.__R=null,i?i(c):c())};n.__R=o;var s=n.__P;n.__P=null;var c=function(){if(!--r.__u){if(r.state.__a){var e=r.state.__a;r.__v.__k[0]=Ge(e,e.__c.__P,e.__c.__O)}var t;for(r.setState({__a:r.__b=null});t=r.o.pop();)t.__P=s,t.forceUpdate()}};r.__u++||32&t.__u||r.setState({__a:r.__b=r.__v.__k[0]}),e.then(o,o)},Ke.prototype.componentWillUnmount=function(){this.o=[]},Ke.prototype.render=function(e,t){if(this.__b){if(this.__v.__k){var n=document.createElement(`div`),r=this.__v.__k[0].__c;this.__v.__k[0]=We(this.__b,n,r.__O=r.__P)}this.__b=null}var i=t.__a&&b(S,null,e.fallback);return i&&(i.__u&=-33),[b(S,null,t.__a?null:e.children),i]};var Ye=function(e,t,n){if(++n[1]===n[0]&&e.l.delete(t),e.props.revealOrder&&(e.props.revealOrder[0]!==`t`||!e.l.size))for(n=e.i;n;){for(;n.length>3;)n.pop()();if(n[1]<n[0])break;e.i=n=n[2]}};(Je.prototype=new C).__a=function(e){var t=this,n=qe(t.__v),r=t.l.get(e);return r[0]++,function(i){var a=function(){t.props.revealOrder?(r.push(i),Ye(t,e,r)):i()};n?n(a):a()}},Je.prototype.render=function(e){this.i=null,this.l=new Map;var t=j(e.children);e.revealOrder&&e.revealOrder[0]===`b`&&t.reverse();for(var n=t.length;n--;)this.l.set(t[n],this.i=[1,0,this.i]);return e.children},Je.prototype.componentDidUpdate=Je.prototype.componentDidMount=function(){var e=this;this.l.forEach(function(t,n){Ye(e,n,t)})};var Xe=typeof Symbol<`u`&&Symbol.for&&Symbol.for(`react.element`)||60103,Ze=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image(!S)|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,Qe=/^on(Ani|Tra|Tou|BeforeInp|Compo)/,$e=/[A-Z0-9]/g,et=typeof document<`u`,tt=function(e){return(typeof Symbol<`u`&&typeof Symbol()==`symbol`?/fil|che|rad/:/fil|che|ra/).test(e)};C.prototype.isReactComponent=!0,[`componentWillMount`,`componentWillReceiveProps`,`componentWillUpdate`].forEach(function(e){Object.defineProperty(C.prototype,e,{configurable:!0,get:function(){return this[`UNSAFE_`+e]},set:function(t){Object.defineProperty(this,e,{configurable:!0,writable:!0,value:t})}})});var nt=r.event;r.event=function(e){return nt&&(e=nt(e)),e.persist=function(){},e.isPropagationStopped=function(){return this.cancelBubble},e.isDefaultPrevented=function(){return this.defaultPrevented},e.nativeEvent=e};var rt={configurable:!0,get:function(){return this.class}},it=r.vnode;r.vnode=function(e){typeof e.type==`string`&&function(e){var t=e.props,n=e.type,r={},i=n.indexOf(`-`)==-1;for(var a in t){var o=t[a];if(!(a===`value`&&`defaultValue`in t&&o==null||et&&a===`children`&&n===`noscript`||a===`class`||a===`className`)){var s=a.toLowerCase();a===`defaultValue`&&`value`in t&&t.value==null?a=`value`:a===`download`&&!0===o?o=``:s===`translate`&&o===`no`?o=!1:s[0]===`o`&&s[1]===`n`?s===`ondoubleclick`?a=`ondblclick`:s!==`onchange`||n!==`input`&&n!==`textarea`||tt(t.type)?s===`onfocus`?a=`onfocusin`:s===`onblur`?a=`onfocusout`:Qe.test(a)&&(a=s):s=a=`oninput`:i&&Ze.test(a)?a=a.replace($e,`-$&`).toLowerCase():o===null&&(o=void 0),s===`oninput`&&r[a=s]&&(a=`oninputCapture`),r[a]=o}}n==`select`&&(r.multiple&&Array.isArray(r.value)&&(r.value=j(t.children).forEach(function(e){e.props.selected=r.value.indexOf(e.props.value)!=-1})),r.defaultValue!=null&&(r.value=j(t.children).forEach(function(e){e.props.selected=r.multiple?r.defaultValue.indexOf(e.props.value)!=-1:r.defaultValue==e.props.value}))),t.class&&!t.className?(r.class=t.class,Object.defineProperty(r,`className`,rt)):t.className&&(r.class=r.className=t.className),e.props=r}(e),e.$$typeof=Xe,it&&it(e)};var at=r.__r;r.__r=function(e){at&&at(e),e.__c};var ot=r.diffed;r.diffed=function(e){ot&&ot(e);var t=e.props,n=e.__e;n!=null&&e.type===`textarea`&&`value`in t&&t.value!==n.value&&(n.value=t.value==null?``:t.value)};var st=e=>{let t,n=new Set,r=(e,r)=>{let i=typeof e==`function`?e(t):e;if(!Object.is(i,t)){let e=t;t=r??(typeof i!=`object`||!i)?i:Object.assign({},t,i),n.forEach(n=>n(t,e))}},i=()=>t,a={setState:r,getState:i,getInitialState:()=>o,subscribe:e=>(n.add(e),()=>n.delete(e))},o=t=e(r,i,a);return a},ct=(e=>e?st(e):st),lt=e=>e;function ut(e){function t(t=lt){let n=Oe(()=>t(e.getState()),[t]);return Re(e.subscribe,n)}return Object.assign(t,e)}function dt(){return e=>ut(ct()(e))}var ft=Symbol.for(`immer-nothing`),pt=Symbol.for(`immer-draftable`),B=Symbol.for(`immer-state`);function V(e,...t){throw Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var mt=Object,ht=mt.getPrototypeOf,gt=`constructor`,_t=`prototype`,vt=`configurable`,yt=`enumerable`,bt=`writable`,xt=`value`,St=e=>!!e&&!!e[B];function Ct(e){return e?Et(e)||Nt(e)||!!e[pt]||!!e[gt]?.[pt]||Pt(e)||Ft(e):!1}var wt=mt[_t][gt].toString(),Tt=new WeakMap;function Et(e){if(!e||!It(e))return!1;let t=ht(e);if(t===null||t===mt[_t])return!0;let n=mt.hasOwnProperty.call(t,gt)&&t[gt];if(n===Object)return!0;if(!Lt(n))return!1;let r=Tt.get(n);return r===void 0&&(r=Function.toString.call(n),Tt.set(n,r)),r===wt}function Dt(e,t,n=!0){Ot(e)===0?(n?Reflect.ownKeys(e):mt.keys(e)).forEach(n=>{t(n,e[n],e)}):e.forEach((n,r)=>t(r,n,e))}function Ot(e){let t=e[B];return t?t.type_:Nt(e)?1:Pt(e)?2:Ft(e)?3:0}var kt=(e,t,n=Ot(e))=>n===2?e.has(t):mt[_t].hasOwnProperty.call(e,t),At=(e,t,n=Ot(e))=>n===2?e.get(t):e[t],jt=(e,t,n,r=Ot(e))=>{r===2?e.set(t,n):r===3?e.add(n):e[t]=n};function Mt(e,t){return e===t?e!==0||1/e==1/t:e!==e&&t!==t}var Nt=Array.isArray,Pt=e=>e instanceof Map,Ft=e=>e instanceof Set,It=e=>typeof e==`object`,Lt=e=>typeof e==`function`,Rt=e=>typeof e==`boolean`;function zt(e){let t=+e;return Number.isInteger(t)&&String(t)===e}var Bt=e=>It(e)?e?.[B]:null,H=e=>e.copy_||e.base_,Vt=e=>{let t=Bt(e);return t?t.copy_??t.base_:e},Ht=e=>e.modified_?e.copy_:e.base_;function Ut(e,t){if(Pt(e))return new Map(e);if(Ft(e))return new Set(e);if(Nt(e))return Array[_t].slice.call(e);let n=Et(e);if(t===!0||t===`class_only`&&!n){let t=mt.getOwnPropertyDescriptors(e);delete t[B];let n=Reflect.ownKeys(t);for(let r=0;r<n.length;r++){let i=n[r],a=t[i];a[bt]===!1&&(a[bt]=!0,a[vt]=!0),(a.get||a.set)&&(t[i]={[vt]:!0,[bt]:!0,[yt]:a[yt],[xt]:e[i]})}return mt.create(ht(e),t)}else{let t=ht(e);if(t!==null&&n)return{...e};let r=mt.create(t);return mt.assign(r,e)}}function Wt(e,t=!1){return qt(e)||St(e)||!Ct(e)?e:(Ot(e)>1&&mt.defineProperties(e,{set:Kt,add:Kt,clear:Kt,delete:Kt}),mt.freeze(e),t&&Dt(e,(e,t)=>{Wt(t,!0)},!1),e)}function Gt(){V(2)}var Kt={[xt]:Gt};function qt(e){return e===null||!It(e)?!0:mt.isFrozen(e)}var Jt=`MapSet`,Yt=`Patches`,Xt=`ArrayMethods`,Zt={};function Qt(e){let t=Zt[e];return t||V(0,e),t}var $t=e=>!!Zt[e];function en(e,t){Zt[e]||(Zt[e]=t)}var tn,nn=()=>tn,rn=(e,t)=>({drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0,handledSet_:new Set,processedForPatches_:new Set,mapSetPlugin_:$t(Jt)?Qt(Jt):void 0,arrayMethodsPlugin_:$t(Xt)?Qt(Xt):void 0});function an(e,t){t&&(e.patchPlugin_=Qt(Yt),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function on(e){sn(e),e.drafts_.forEach(ln),e.drafts_=null}function sn(e){e===tn&&(tn=e.parent_)}var cn=e=>tn=rn(tn,e);function ln(e){let t=e[B];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function un(e,t){t.unfinalizedDrafts_=t.drafts_.length;let n=t.drafts_[0];if(e!==void 0&&e!==n){n[B].modified_&&(on(t),V(4)),Ct(e)&&(e=dn(t,e));let{patchPlugin_:r}=t;r&&r.generateReplacementPatches_(n[B].base_,e,t)}else e=dn(t,n);return fn(t,e,!0),on(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e===ft?void 0:e}function dn(e,t){if(qt(t))return t;let n=t[B];if(!n)return bn(t,e.handledSet_,e);if(!mn(n,e))return t;if(!n.modified_)return n.base_;if(!n.finalized_){let{callbacks_:t}=n;if(t)for(;t.length>0;)t.pop()(e);vn(n,e)}return n.copy_}function fn(e,t,n=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&Wt(t,n)}function pn(e){e.finalized_=!0,e.scope_.unfinalizedDrafts_--}var mn=(e,t)=>e.scope_===t,hn=[];function gn(e,t,n,r){let i=H(e),a=e.type_;if(r!==void 0&&At(i,r,a)===t){jt(i,r,n,a);return}if(!e.draftLocations_){let t=e.draftLocations_=new Map;Dt(i,(e,n)=>{if(St(n)){let r=t.get(n)||[];r.push(e),t.set(n,r)}})}let o=e.draftLocations_.get(t)??hn;for(let e of o)jt(i,e,n,a)}function _n(e,t,n){e.callbacks_.push(function(r){let i=t;if(!i||!mn(i,r))return;r.mapSetPlugin_?.fixSetContents(i);let a=Ht(i);gn(e,i.draft_??i,a,n),vn(i,r)})}function vn(e,t){if(e.modified_&&!e.finalized_&&(e.type_===3||e.type_===1&&e.allIndicesReassigned_||(e.assigned_?.size??0)>0)){let{patchPlugin_:n}=t;if(n){let r=n.getPath(e);r&&n.generatePatches_(e,r,t)}pn(e)}}function yn(e,t,n){let{scope_:r}=e;if(St(n)){let i=n[B];mn(i,r)&&i.callbacks_.push(function(){On(e),gn(e,n,Ht(i),t)})}else Ct(n)&&e.callbacks_.push(function(){let i=H(e);e.type_===3?i.has(n)&&bn(n,r.handledSet_,r):At(i,t,e.type_)===n&&r.drafts_.length>1&&(e.assigned_.get(t)??!1)===!0&&e.copy_&&bn(At(e.copy_,t,e.type_),r.handledSet_,r)})}function bn(e,t,n){return!n.immer_.autoFreeze_&&n.unfinalizedDrafts_<1||St(e)||t.has(e)||!Ct(e)||qt(e)?e:(t.add(e),Dt(e,(r,i)=>{if(St(i)){let t=i[B];mn(t,n)&&(jt(e,r,Ht(t),e.type_),pn(t))}else Ct(i)&&bn(i,t,n)}),e)}function xn(e,t){let n=Nt(e),r={type_:n?1:0,scope_:t?t.scope_:nn(),modified_:!1,finalized_:!1,assigned_:void 0,parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1,callbacks_:void 0},i=r,a=Sn;n&&(i=[r],a=Cn);let{revoke:o,proxy:s}=Proxy.revocable(i,a);return r.draft_=s,r.revoke_=o,[s,r]}var Sn={get(e,t){if(t===B)return e;let n=e.scope_.arrayMethodsPlugin_,r=e.type_===1&&typeof t==`string`;if(r&&n?.isArrayOperationMethod(t))return n.createMethodInterceptor(e,t);let i=H(e);if(!kt(i,t,e.type_))return Tn(e,i,t);let a=i[t];if(e.finalized_||!Ct(a)||r&&e.operationMethod&&n?.isMutatingArrayMethod(e.operationMethod)&&zt(t))return a;if(a===wn(e.base_,t)){On(e);let n=e.type_===1?+t:t,r=An(e.scope_,a,e,n);return e.copy_[n]=r}return a},has(e,t){return t in H(e)},ownKeys(e){return Reflect.ownKeys(H(e))},set(e,t,n){let r=En(H(e),t);if(r?.set)return r.set.call(e.draft_,n),!0;if(!e.modified_){let r=wn(H(e),t),i=r?.[B];if(i&&i.base_===n)return e.copy_[t]=n,e.assigned_.set(t,!1),!0;if(Mt(n,r)&&(n!==void 0||kt(e.base_,t,e.type_)))return!0;On(e),Dn(e)}return e.copy_[t]===n&&(n!==void 0||t in e.copy_)||Number.isNaN(n)&&Number.isNaN(e.copy_[t])?!0:(e.copy_[t]=n,e.assigned_.set(t,!0),yn(e,t,n),!0)},deleteProperty(e,t){return On(e),wn(e.base_,t)!==void 0||t in e.base_?(e.assigned_.set(t,!1),Dn(e)):e.assigned_.delete(t),e.copy_&&delete e.copy_[t],!0},getOwnPropertyDescriptor(e,t){let n=H(e),r=Reflect.getOwnPropertyDescriptor(n,t);return r&&{[bt]:!0,[vt]:e.type_!==1||t!==`length`,[yt]:r[yt],[xt]:n[t]}},defineProperty(){V(11)},getPrototypeOf(e){return ht(e.base_)},setPrototypeOf(){V(12)}},Cn={};for(let e in Sn){let t=Sn[e];Cn[e]=function(){let e=arguments;return e[0]=e[0][0],t.apply(this,e)}}Cn.deleteProperty=function(e,t){return Cn.set.call(this,e,t,void 0)},Cn.set=function(e,t,n){return Sn.set.call(this,e[0],t,n,e[0])};function wn(e,t){let n=e[B];return(n?H(n):e)[t]}function Tn(e,t,n){let r=En(t,n);return r?xt in r?r[xt]:r.get?.call(e.draft_):void 0}function En(e,t){if(!(t in e))return;let n=ht(e);for(;n;){let e=Object.getOwnPropertyDescriptor(n,t);if(e)return e;n=ht(n)}}function Dn(e){e.modified_||(e.modified_=!0,e.parent_&&Dn(e.parent_))}function On(e){e.copy_||(e.assigned_=new Map,e.copy_=Ut(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var kn=class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!1,this.produce=(e,t,n)=>{if(Lt(e)&&!Lt(t)){let n=t;t=e;let r=this;return function(e=n,...i){return r.produce(e,e=>t.call(this,e,...i))}}Lt(t)||V(6),n!==void 0&&!Lt(n)&&V(7);let r;if(Ct(e)){let i=cn(this),a=An(i,e,void 0),o=!0;try{r=t(a),o=!1}finally{o?on(i):sn(i)}return an(i,n),un(r,i)}else if(!e||!It(e)){if(r=t(e),r===void 0&&(r=e),r===ft&&(r=void 0),this.autoFreeze_&&Wt(r,!0),n){let t=[],i=[];Qt(Yt).generateReplacementPatches_(e,r,{patches_:t,inversePatches_:i}),n(t,i)}return r}else V(1,e)},this.produceWithPatches=(e,t)=>{if(Lt(e))return(t,...n)=>this.produceWithPatches(t,t=>e(t,...n));let n,r;return[this.produce(e,t,(e,t)=>{n=e,r=t}),n,r]},Rt(e?.autoFreeze)&&this.setAutoFreeze(e.autoFreeze),Rt(e?.useStrictShallowCopy)&&this.setUseStrictShallowCopy(e.useStrictShallowCopy),Rt(e?.useStrictIteration)&&this.setUseStrictIteration(e.useStrictIteration)}createDraft(e){Ct(e)||V(8),St(e)&&(e=jn(e));let t=cn(this),n=An(t,e,void 0);return n[B].isManual_=!0,sn(t),n}finishDraft(e,t){let n=e&&e[B];(!n||!n.isManual_)&&V(9);let{scope_:r}=n;return an(r,t),un(void 0,r)}setAutoFreeze(e){this.autoFreeze_=e}setUseStrictShallowCopy(e){this.useStrictShallowCopy_=e}setUseStrictIteration(e){this.useStrictIteration_=e}shouldUseStrictIteration(){return this.useStrictIteration_}applyPatches(e,t){let n;for(n=t.length-1;n>=0;n--){let r=t[n];if(r.path.length===0&&r.op===`replace`){e=r.value;break}}n>-1&&(t=t.slice(n+1));let r=Qt(Yt).applyPatches_;return St(e)?r(e,t):this.produce(e,e=>r(e,t))}};function An(e,t,n,r){let[i,a]=Pt(t)?Qt(Jt).proxyMap_(t,n):Ft(t)?Qt(Jt).proxySet_(t,n):xn(t,n);return(n?.scope_??nn()).drafts_.push(i),a.callbacks_=n?.callbacks_??[],a.key_=r,n&&r!==void 0?_n(n,a,r):a.callbacks_.push(function(e){e.mapSetPlugin_?.fixSetContents(a);let{patchPlugin_:t}=e;a.modified_&&t&&t.generatePatches_(a,[],e)}),i}function jn(e){return St(e)||V(10,e),Mn(e)}function Mn(e){if(!Ct(e)||qt(e))return e;let t=e[B],n,r=!0;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,n=Ut(e,t.scope_.immer_.useStrictShallowCopy_),r=t.scope_.immer_.shouldUseStrictIteration()}else n=Ut(e,!0);return Dt(n,(e,t)=>{jt(n,e,Mn(t))},r),t&&(t.finalized_=!1),n}function Nn(){function e(n,r=[]){if(n.key_!==void 0){let e=n.parent_.copy_??n.parent_.base_,t=Bt(At(e,n.key_)),i=At(e,n.key_);if(i===void 0||i!==n.draft_&&i!==n.base_&&i!==n.copy_||t!=null&&t.base_!==n.base_)return null;let a=n.parent_.type_===3,o;if(a){let e=n.parent_;o=Array.from(e.drafts_.keys()).indexOf(n.key_)}else o=n.key_;if(!(a&&e.size>o||kt(e,o)))return null;r.push(o)}if(n.parent_)return e(n.parent_,r);r.reverse();try{t(n.copy_,r)}catch{return null}return r}function t(e,t){let n=e;for(let e=0;e<t.length-1;e++){let r=t[e];if(n=At(n,r),!It(n)||n===null)throw Error(`Cannot resolve path at '${t.join(`/`)}'`)}return n}let n=`replace`,r=`remove`;function i(e,t,n){if(e.scope_.processedForPatches_.has(e))return;e.scope_.processedForPatches_.add(e);let{patches_:r,inversePatches_:i}=n;switch(e.type_){case 0:case 2:return o(e,t,r,i);case 1:return a(e,t,r,i);case 3:return s(e,t,r,i)}}function a(e,t,i,a){let{base_:o,assigned_:s}=e,c=e.copy_;c.length<o.length&&([o,c]=[c,o],[i,a]=[a,i]);let l=e.allIndicesReassigned_===!0;for(let e=0;e<o.length;e++){let r=c[e],u=o[e];if((l||s?.get(e.toString()))&&r!==u){let o=r?.[B];if(o&&o.modified_)continue;let s=t.concat([e]);i.push({op:n,path:s,value:d(r)}),a.push({op:n,path:s,value:d(u)})}}for(let e=o.length;e<c.length;e++){let n=t.concat([e]);i.push({op:`add`,path:n,value:d(c[e])})}for(let e=c.length-1;o.length<=e;--e){let n=t.concat([e]);a.push({op:r,path:n})}}function o(e,t,i,a){let{base_:o,copy_:s,type_:c}=e;Dt(e.assigned_,(e,l)=>{let u=At(o,e,c),f=At(s,e,c),p=l?kt(o,e)?n:`add`:r;if(u===f&&p===n)return;let m=t.concat(e);i.push(p===r?{op:p,path:m}:{op:p,path:m,value:d(f)}),a.push(p===`add`?{op:r,path:m}:p===r?{op:`add`,path:m,value:d(u)}:{op:n,path:m,value:d(u)})})}function s(e,t,n,i){let{base_:a,copy_:o}=e,s=0;a.forEach(e=>{if(!o.has(e)){let a=t.concat([s]);n.push({op:r,path:a,value:e}),i.unshift({op:`add`,path:a,value:e})}s++}),s=0,o.forEach(e=>{if(!a.has(e)){let a=t.concat([s]);n.push({op:`add`,path:a,value:e}),i.unshift({op:r,path:a,value:e})}s++})}function c(e,t,r){let{patches_:i,inversePatches_:a}=r;i.push({op:n,path:[],value:t===ft?void 0:t}),a.push({op:n,path:[],value:e})}function l(e,t){return t.forEach(t=>{let{path:i,op:a}=t,o=e;for(let e=0;e<i.length-1;e++){let t=Ot(o),n=i[e];typeof n!=`string`&&typeof n!=`number`&&(n=``+n),(t===0||t===1)&&(n===`__proto__`||n===gt)&&V(19),Lt(o)&&n===_t&&V(19),o=At(o,n),It(o)||V(18,i.join(`/`))}let s=Ot(o),c=u(t.value),l=i[i.length-1];switch(a){case n:switch(s){case 2:return o.set(l,c);case 3:V(16);default:return o[l]=c}case`add`:switch(s){case 1:return l===`-`?o.push(c):o.splice(l,0,c);case 2:return o.set(l,c);case 3:return o.add(c);default:return o[l]=c}case r:switch(s){case 1:return o.splice(l,1);case 2:return o.delete(l);case 3:return o.delete(t.value);default:return delete o[l]}default:V(17,a)}}),e}function u(e){if(!Ct(e))return e;if(Nt(e))return e.map(u);if(Pt(e))return new Map(Array.from(e.entries()).map(([e,t])=>[e,u(t)]));if(Ft(e))return new Set(Array.from(e).map(u));let t=Object.create(ht(e));for(let n in e)t[n]=u(e[n]);return kt(e,pt)&&(t[pt]=e[pt]),t}function d(e){return St(e)?u(e):e}en(Yt,{applyPatches_:l,generatePatches_:i,generateReplacementPatches_:c,getPath:e})}function Pn(){class e extends Map{constructor(e,t){super(),this[B]={type_:2,parent_:t,scope_:t?t.scope_:nn(),modified_:!1,finalized_:!1,copy_:void 0,assigned_:void 0,base_:e,draft_:this,isManual_:!1,revoked_:!1,callbacks_:[]}}get size(){return H(this[B]).size}has(e){return H(this[B]).has(e)}set(e,t){let r=this[B];return o(r),(!H(r).has(e)||H(r).get(e)!==t)&&(n(r),Dn(r),r.assigned_.set(e,!0),r.copy_.set(e,t),r.assigned_.set(e,!0),yn(r,e,t)),this}delete(e){if(!this.has(e))return!1;let t=this[B];return o(t),n(t),Dn(t),t.base_.has(e)?t.assigned_.set(e,!1):t.assigned_.delete(e),t.copy_.delete(e),!0}clear(){let e=this[B];o(e),H(e).size&&(n(e),Dn(e),e.assigned_=new Map,Dt(e.base_,t=>{e.assigned_.set(t,!1)}),e.copy_.clear())}forEach(e,t){let n=this[B];H(n).forEach((n,r,i)=>{e.call(t,this.get(r),r,this)})}get(e){let t=this[B];o(t);let r=H(t).get(e);if(t.finalized_||!Ct(r)||r!==t.base_.get(e))return r;let i=An(t.scope_,r,t,e);return n(t),t.copy_.set(e,i),i}keys(){return H(this[B]).keys()}values(){let e=this.keys();return{[Symbol.iterator]:()=>this.values(),next:()=>{let t=e.next();return t.done?t:{done:!1,value:this.get(t.value)}}}}entries(){let e=this.keys();return{[Symbol.iterator]:()=>this.entries(),next:()=>{let t=e.next();if(t.done)return t;let n=this.get(t.value);return{done:!1,value:[t.value,n]}}}}[Symbol.iterator](){return this.entries()}}function t(t,n){let r=new e(t,n);return[r,r[B]]}function n(e){e.copy_||(e.assigned_=new Map,e.copy_=new Map(e.base_))}class r extends Set{constructor(e,t){super(),this[B]={type_:3,parent_:t,scope_:t?t.scope_:nn(),modified_:!1,finalized_:!1,copy_:void 0,base_:e,draft_:this,drafts_:new Map,revoked_:!1,isManual_:!1,assigned_:void 0,callbacks_:[]}}get size(){return H(this[B]).size}has(e){let t=this[B];return o(t),t.copy_?!!(t.copy_.has(e)||t.drafts_.has(e)&&t.copy_.has(t.drafts_.get(e))):t.base_.has(e)}add(e){let t=this[B];return o(t),this.has(e)||(a(t),Dn(t),t.copy_.add(e),yn(t,e,e)),this}delete(e){if(!this.has(e))return!1;let t=this[B];return o(t),a(t),Dn(t),t.copy_.delete(e)||(t.drafts_.has(e)?t.copy_.delete(t.drafts_.get(e)):!1)}clear(){let e=this[B];o(e),H(e).size&&(a(e),Dn(e),e.copy_.clear())}values(){let e=this[B];return o(e),a(e),e.copy_.values()}entries(){let e=this[B];return o(e),a(e),e.copy_.entries()}keys(){return this.values()}[Symbol.iterator](){return this.values()}forEach(e,t){let n=this.values(),r=n.next();for(;!r.done;)e.call(t,r.value,r.value,this),r=n.next()}}function i(e,t){let n=new r(e,t);return[n,n[B]]}function a(e){e.copy_||(e.copy_=new Set,e.base_.forEach(t=>{if(Ct(t)){let n=An(e.scope_,t,e,t);e.drafts_.set(t,n),e.copy_.add(n)}else e.copy_.add(t)}))}function o(e){e.revoked_&&V(3,JSON.stringify(H(e)))}function s(e){if(e.type_===3&&e.copy_){let t=new Set(e.copy_);e.copy_.clear(),t.forEach(t=>{e.copy_.add(Vt(t))})}}en(Jt,{proxyMap_:t,proxySet_:i,fixSetContents:s})}var Fn=new kn,In=Fn.produce,Ln=Fn.produceWithPatches.bind(Fn),Rn=Fn.applyPatches.bind(Fn),zn=e=>(t,n,r)=>(r.setState=(e,n,...r)=>t(typeof e==`function`?In(e):e,n,...r),e(r.setState,n,r)),Bn=new Map,Vn=new Map;function Hn(e,t){Bn.set(e,t),Vn.set(t,e)}function Un(e){let t=Object.getPrototypeOf(e);return t===null?void 0:Vn.get(t.constructor)}function Wn(e){if(typeof e!=`object`||!e)return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function Gn(e,t,n){t===`__proto__`?Object.defineProperty(e,t,{value:n,enumerable:!0,writable:!0,configurable:!0}):e[t]=n}function U(e,t={}){let n=new Map;function r(e){if(typeof e!=`object`||!e)return e;let i=e;if(n.has(i))return n.get(i);if(e instanceof Date)return new Date(e.getTime());if(e instanceof RegExp)return new RegExp(e.source,e.flags);if(Array.isArray(e)){let t=[];n.set(i,t);for(let n=0;n<e.length;n++)t[n]=r(e[n]);return t}if(e instanceof Map){let t=new Map;n.set(i,t);for(let[n,i]of e)t.set(r(n),r(i));return t}if(e instanceof Set){let t=new Set;n.set(i,t);for(let n of e)t.add(r(n));return t}if(Un(i)!==void 0){let e=Object.create(Object.getPrototypeOf(i));n.set(i,e);for(let t of Object.keys(i))Gn(e,t,r(i[t]));return e}let a=Wn(e);if(!a&&t.keepUnregistered)return e;let o=a?Object.create(Object.getPrototypeOf(i)):{};n.set(i,o);for(let e of Object.keys(i))Gn(o,e,r(i[e]));return o}return r(e)}function Kn(e,t){return qn(e,t,new Map)}function qn(e,t,n){if(Object.is(e,t))return!0;if(e===null||t===null||typeof e!=`object`||typeof t!=`object`||Object.getPrototypeOf(e)!==Object.getPrototypeOf(t))return!1;let r=n.get(e);if(r?.has(t))return!0;if(r?r.add(t):n.set(e,new Set([t])),e instanceof Date)return Object.is(e.getTime(),t.getTime());if(e instanceof RegExp)return String(e)===String(t);if(e instanceof Map||e instanceof Set){let r=t;if(e.size!==r.size)return!1;let i=e.entries(),a=r.entries();for(let e=i.next(),t=a.next();!e.done;e=i.next(),t=a.next())if(!qn(e.value,t.value,n))return!1;return!0}if(Array.isArray(e)){let r=t;if(e.length!==r.length)return!1;for(let t=0;t<e.length;t++)if(!qn(e[t],r[t],n))return!1;return!0}let i=e,a=t,o=Object.keys(i);if(o.length!==Object.keys(a).length)return!1;for(let e of o)if(!Jn(a,e)||!qn(i[e],a[e],n))return!1;return!0}var Jn=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),Yn=`__spindle_class__`,Xn=`__spindle_data__`,Zn=(e,t)=>({[Yn]:e,[Xn]:t}),Qn={NaN:NaN,Infinity:1/0,\"-Infinity\":-1/0,\"-0\":-0};function $n(e){if(Number.isNaN(e))return`NaN`;if(e===1/0)return`Infinity`;if(e===-1/0)return`-Infinity`;if(Object.is(e,-0))return`-0`}function er(e){let t=new Set;function n(e){if(e===void 0)return Zn(`__Undefined__`,{});if(typeof e==`number`){let t=$n(e);return t===void 0?e:Zn(`__Number__`,{value:t})}if(typeof e==`bigint`)return Zn(`__BigInt__`,{value:e.toString()});if(typeof e!=`object`||!e)return e;if(t.has(e))throw Error(`spindle: Cannot serialize circular references`);t.add(e);try{return i(e)}finally{t.delete(e)}}function r(e){let t={};for(let r of Object.keys(e)){if(r===`__proto__`)throw Error(`spindle: Cannot save a property named \"__proto__\"`);t[r]=n(e[r])}return t}function i(e){if(e instanceof Date)return Zn(`__Date__`,{iso:Number.isNaN(e.getTime())?null:e.toISOString()});if(e instanceof RegExp)return Zn(`__RegExp__`,{source:e.source,flags:e.flags});if(Array.isArray(e)){let t=[];for(let r=0;r<e.length;r++)t.push(n(e[r]));return t}if(e instanceof Map)return Zn(`__Map__`,{entries:[...e].map(([e,t])=>[n(e),n(t)])});if(e instanceof Set)return Zn(`__Set__`,{entries:[...e].map(e=>n(e))});let t=Un(e);if(t!==void 0)return Zn(t,r(e));let i=r(e);return Jn(e,Yn)?Zn(`__Object__`,i):i}return n(e)}function tr(e){function t(e,t){for(let r of Object.keys(t))Gn(e,r,n(t[r]));return e}function n(e){if(typeof e!=`object`||!e)return e;if(Array.isArray(e))return e.map(e=>n(e));let r=e;if(Yn in r&&Xn in r){let e=r[Yn],i=r[Xn];switch(e){case`__Date__`:return new Date(i.iso===null?NaN:i.iso);case`__RegExp__`:return new RegExp(i.source,i.flags);case`__Map__`:{let e=i.entries;return new Map(e.map(([e,t])=>[n(e),n(t)]))}case`__Set__`:return new Set(i.entries.map(e=>n(e)));case`__Undefined__`:return;case`__Number__`:return Qn[i.value];case`__BigInt__`:return BigInt(i.value);case`__Object__`:return t({},i)}let a=Bn.get(e);return a?t(Object.create(a.prototype),i):(console.warn(`spindle: Class \"${e}\" not registered. Falling back to plain object.`),t({},i))}return e instanceof Date||e instanceof RegExp||e instanceof Map||e instanceof Set||Un(r)!==void 0?e:t({},r)}return n(e)}function nr(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function rr(e){let t=new Set;function n(e){if(typeof e!=`object`||!e)return!0;if(t.has(e))return!1;t.add(e);let n=i(e);return t.delete(e),n}let r=e=>Object.keys(e).every(t=>t!==`__proto__`&&n(e[t]));function i(e){if(Array.isArray(e))return Array.from(e).every(n);let t=e;if(!(Yn in t&&Xn in t))return r(t);let i=t[Yn],a=t[Xn];if(typeof i!=`string`||!nr(a))return!1;switch(i){case`__Date__`:return a.iso===null||typeof a.iso==`string`&&!Number.isNaN(new Date(a.iso).getTime());case`__RegExp__`:if(typeof a.source!=`string`||typeof a.flags!=`string`)return!1;try{return new RegExp(a.source,a.flags),!0}catch{return!1}case`__Map__`:return Array.isArray(a.entries)&&Array.from(a.entries).every(e=>Array.isArray(e)&&e.length===2&&n(e[0])&&n(e[1]));case`__Set__`:return Array.isArray(a.entries)&&Array.from(a.entries).every(n);case`__Undefined__`:return!0;case`__Number__`:return typeof a.value==`string`&&Jn(Qn,a.value);case`__BigInt__`:return typeof a.value==`string`&&/^-?\\d+$/.test(a.value);default:return r(a)}}return n(e)}function ir(e){if(typeof e!=`object`||!e)return!1;let t=e;if(t.version!==1||typeof t.ifid!=`string`||typeof t.save!=`object`||t.save===null)return!1;let n=t.save;if(typeof n.meta!=`object`||n.meta===null||typeof n.payload!=`object`||n.payload===null)return!1;let r=n.meta;return typeof r.id!=`string`||typeof r.passage!=`string`||typeof r.ifid!=`string`||typeof r.playthroughId!=`string`||typeof r.createdAt!=`string`||typeof r.updatedAt!=`string`||typeof r.title!=`string`?!1:lr(n.payload)}function ar(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function or(e){return e==null?!0:ar(e)&&typeof e.seed==`string`&&typeof e.pull==`number`&&Number.isInteger(e.pull)&&e.pull>=0}function sr(e){return ar(e)&&rr(e)}function cr(e){return ar(e)&&typeof e.passage==`string`&&sr(e.variables)&&typeof e.timestamp==`number`&&or(e.prng)}function lr(e){if(!ar(e)||typeof e.passage!=`string`||!sr(e.variables))return!1;let{history:t,historyIndex:n}=e;return!Array.isArray(t)||t.length===0||!Array.from(t).every(cr)||typeof n!=`number`||!Number.isInteger(n)||n<0||n>=t.length||t[n].passage!==e.passage||e.visitCounts!==void 0&&!ar(e.visitCounts)||e.renderCounts!==void 0&&!ar(e.renderCounts)?!1:or(e.prng)}function ur(e){if(typeof e!=`object`||!e)return!1;let t=e;return!(typeof t.passage!=`string`||typeof t.variables!=`object`||t.variables===null||!Array.isArray(t.history)||t.history.length===0||typeof t.historyIndex!=`number`)}var dr=/[A-Za-z_]\\w*/y,fr=/(?:\\*\\*|<<|>>>?|&&|\\|\\||\\?\\?|[-+*/%&|^])?=(?![=>])/y,pr=/\\w*/y,mr=/[\\p{ID_Continue}$\\u200c\\u200d\\\\\\ud800-\\udfff]/u,hr=/[\\p{ID_Continue}$\\u200c\\u200d]*/uy,gr=/^\\w+$/,_r=/[\\p{ID_Continue}$\\\\\"'[*#]/u,vr=/\\s/,yr=/[\\n\\r\\u2028\\u2029]/,br=/[\\n\\r\\u2028\\u2029]/g,xr=new Set([`await`,`case`,`const`,`delete`,`do`,`else`,`in`,`instanceof`,`let`,`new`,`return`,`throw`,`typeof`,`var`,`void`,`yield`]),Sr=new Set([`for`,`if`,`while`,`with`]),Cr=new Set([`break`,`continue`,`return`]),wr=new Set([`async`,`get`,`set`,`static`]);function Tr(e,t){let n=e.charAt(t),r=t+1;for(;r<e.length;){let t=e.charAt(r);if(t===`\\\\`)r+=2;else if(t===n)return{end:r+1,closed:!0};else r++}return{end:e.length,closed:!1}}function Er(e,t,n){let r=[],i=(e,t)=>{if(n)for(let i of r)n.regexes.set(i,e*2+ +t);return{end:e,closed:t}},a=t+1;for(;a<e.length;){let t=e.charAt(a);if(t===`\\\\`){if(yr.test(e.charAt(a+1)))return i(a+1,!1);a+=2;continue}if(yr.test(t))return i(a,!1);if(t===`[`){if(a=Dr(e,a,n),e.charAt(a)!==`]`)return i(a,!1);a++;let t=n?.regexes.get(a);if(t!==void 0)return i(Math.floor(t/2),t%2==1);r.push(a);continue}if(t===`/`){pr.lastIndex=a+1;let t=pr.exec(e)?.[0].length??0;return i(a+1+t,!0)}a++}return i(e.length,!1)}function Dr(e,t,n){let r=n?.classes.get(t);if(r!==void 0)return r;let i=[t],a=t+1;for(;a<e.length;){let t=e.charAt(a);if(t===`\\\\`){if(yr.test(e.charAt(a+1))){a++;break}a+=2;continue}if(t===`]`||yr.test(t))break;t===`[`&&n&&i.push(a),a++}if(a=Math.min(a,e.length),n)for(let e of i)n.classes.set(e,a);return a}function Or(e,t,n){if(e&&t>=e.from&&(e.at<0||t<=e.at))return e.at;let r=n(t);return e&&(e.from=t,e.at=r),r}function kr(e,t,n){if(e.charAt(t+1)===`/`){let r=Ar(e,t,n);return r<0?e.length:r}let r=Or(n?.commentClose,t+2,t=>e.indexOf(`*/`,t));return r<0?-1:r+2}function Ar(e,t,n){return Or(n?.lineEnd,t,t=>(br.lastIndex=t,br.exec(e)?.index??-1))}function jr(e,t,n,r){if(!r)return yr.test(e.slice(t,n));let i=Ar(e,t,r);return i>=0&&i<n}function Mr(e,t){let n=kr(e,t);return n<0?e.length:n}function Nr(e,t){for(;t<e.length;){let n=e.charAt(t);if(vr.test(n))t++;else if(n===`/`&&`/*`.includes(e.charAt(t+1)))t=Mr(e,t);else break}return t}var Pr=new Set([`}`,`\"`,`'`,\"`\",`/`,`\n`,`\\r`,`\\u2028`,`\\u2029`,` `,`\t`]),Fr=256,Ir=-1,Lr=-2,Rr=-3,zr=[`)`,`]`,`}`],Br=[`block`,`object`,`class`,`template`];function Vr(e){let t=e.interpolation?4:Br.indexOf(e.kind);return t<0?void 0:e.open*5+t}function Hr(){return{checkpoints:new Map,stacks:new Map,parens:new Map,shareAfter:Fr,braces:new Map,brackets:new Map,classes:new Map,regexes:new Map,lineEnd:{from:1/0,at:-1},commentClose:{from:1/0,at:-1}}}var Ur=()=>({lookahead:!0,brackets:new Map});function Wr(e,t,n){let r=n.brackets.get(t);if(r===void 0){let i={lookahead:!1,brackets:n.brackets};r=Yr(e,{},t+1,0,Kr(`expr`,`]`,t),i),n.brackets.set(t,r)}return r}function Gr(e,t,n){for(;;){t=Nr(e,t);let r=e.charAt(t);if(r===`.`&&e.charAt(t+1)!==`.`){if(hr.lastIndex=Nr(e,t+1),!hr.exec(e)?.[0])return!1;t=hr.lastIndex}else if(r===`[`){if(t=Wr(e,t,n),t>=e.length)return!1;t++}else break}return fr.lastIndex=t,fr.test(e)}function Kr(e,t,n=-1){return{kind:e,closer:t,open:n,header:!1,operand:!1,ternary:0,interpolation:!1}}function qr(e,t,n=`expression`){return Yr(e,t,0,0,Kr(n===`statements`?`block`:`expr`,``),Ur())}function Jr(e,t,{goal:n=`expression`,stop:r,stopKey:i,cache:a}={}){let o={stop:r,malformed:!1,stopped:!1,passed:[]};if(o.cache=a,a&&!r&&(o.braces=a.braces),a&&(!r||i!==void 0)){let e=`${n} ${r?`stop ${i}`:`}`}`,t=a.checkpoints.get(e);t||a.checkpoints.set(e,t=new Map),o.checkpoints=t;let s=a.parens.get(e);s||a.parens.set(e,s=new Map),o.parens=s}let s={lookahead:!0,brackets:a?.brackets??new Map,strict:o},c=Yr(e,{},t,0,Kr(n===`statements`?`block`:`expr`,r?``:`}`,t-1),s);if(o.checkpoints){let t=r?o.stopped:c<e.length,n=o.malformed?Lr:t?c:Ir;for(let e of o.passed)o.checkpoints.set(e,n)}return o.malformed?-1:r?o.stopped?c:-1:c<e.length?c:-1}function Yr(e,t,n,r,i,a){let o=[i],s=()=>o[o.length-1],c={\")\":[],\"]\":[],\"}\":[]},l=e=>{let t=c[e];return t.length?t[t.length-1]:0},u=n,d=!0,f=i.kind===`block`,p=!1,m=!1,h=``,g=!1,_=0,v=!1,y=``,b=``,x=!1,S,C=a.strict,w=C?.braces,T=C?.checkpoints&&C.cache?.stacks,E=T?[0]:void 0;function D(){let e=o.length-1;for(;E[e]===void 0;)e--;for(e++;e<o.length;e++){let t=o[e],n=`${E[e-1]} ${o[e-1].ternary} ${t.kind} ${t.closer} ${+t.header}${+t.operand}${+t.interpolation}`,r=T.get(n);r===void 0&&T.set(n,r=T.size+1),E[e]=r}return E[o.length-1]}let O,k=C?.parens,ee=C?.cache?.shareAfter??Fr,A=k?[[1/0,1/0,1/0]]:void 0,j=0,M=k?[0]:void 0,te;function ne(e,t){if(!A)return;let n=A[A.length-1],r=zr.indexOf(e);t<n[r]&&(n[r]=t)}function re(e){let t=A[e],n=A[e-1];for(let e=0;e<3;e++)t[e]<n[e]&&(n[e]=t[e])}let ie=e=>(e.open*3+(e.closer===`]`?2:+e.header))*8;function ae(e,t){let r=o[e];if(e===0||r.closer!==`)`&&r.closer!==`]`||r.open-n<ee)return;let i=0;for(let t=0;t<3;t++)A[e][t]<e&&(i|=1<<t);k.set(ie(r)+i,t)}function oe(e){if(A)for(let t=o.length-1;t>0;t--)ae(t,e),re(t)}function se(e){if(!k||e.open-n<ee)return;let t=[Math.max(l(`)`),l(`}`)),Math.max(l(`]`),l(`}`)),l(`}`)],r=0;for(let e=0;e<3;e++){let n=t[e];(n===0||e<2&&o[n].closer!==zr[e])&&(r|=1<<e)}let i=ie(e);for(let e=r;;e=e-1&r){let n=k.get(i+e);if(n!==void 0){for(let n=0;n<3;n++)e&1<<n&&ne(zr[n],t[n]);return n}if(e===0)return}}function ce(e){if(w)for(let t=1;t<o.length;t++)le(o[t],e)}function le(e,t){let n=w&&Vr(e);n!==void 0&&w.set(n,t)}let ue=e=>{let t=w&&Vr(e);return t===void 0?void 0:w.get(t)},de=()=>(ce(Lr),oe(Lr),C.malformed=!0,e.length);function fe(e){E?.push(void 0),c[e.closer]?.push(o.length),o.push(e),A?.push([1/0,1/0,1/0]),M?.push(j)}function pe(){let t=s().ternary;if(t>3||!Pr.has(e.charAt(u-1))||o.length>1&&u-n<ee)return;let r=t;d&&(r|=4),f&&(r|=8),m&&(r|=16),S&&(r|=S.frame.kind===`class`?32:64,S.frame.operand&&(r|=128)),p&&(r|=256),g&&(r|=512),v&&(r|=1024),x&&(r|=2048),Cr.has(b)&&(r|=4096),y===`=`&&(r|=8192),y===`.`&&(r|=Math.min(_,4)<<14);let i=u*(1<<17)+r;if(o.length===1)return i;let a=S?o.length-S.depth:``;return`${i} ${D()} ${a}`}function me(){return xr.has(h)||h===`of`&&s().header||m&&wr.has(h)}function N(e){if(A){for(let t=o.length-1;t>=e;t--)re(t);A.length=e,M.length=e}o.length=e,E&&(E.length=e);for(let t of Object.values(c))for(;t.length&&t[t.length-1]>=e;)t.pop();S&&S.depth>e&&(S=void 0)}let he=(e,n)=>t.code?.(e,n,r),ge=(e,n)=>t.literal?.(e,n,r),_e=(n,i)=>t.literal?.(e.slice(n,i),n,r);function ve(){if(!h)return;let t=g||m?``:h,n=d&&!f;if(d=xr.has(t)||t===`of`&&s().header&&!d,v=Sr.has(t),t===`function`||t===`class`){let e=Kr(t===`class`?`class`:`block`,`}`);e.operand=n,S={depth:o.length,frame:e},j++}m=m&&wr.has(h)&&_r.test(e.charAt(Nr(e,u))),f=t===`else`||t===`do`||t===`async`&&f,p=!1,g=!1,y=``,b=t,x=!1,h=``}function P(){ve(),d=!1,f=!1,p=!1,m=!1,v=!1,g=!1,y=``,b=``,x=!1}function F(e,t){d=t,f=!1,p=!1,m=!1,g=e===`.`&&!t,v=!1,y=e,b=``,x=!1}function ye(){x=!0,Cr.has(b)&&(d=!0,f=!0,b=``)}function be(e){fe(e),f=e.kind===`block`,m=e.kind===`object`||e.kind===`class`}function xe(){let e;S?.depth===o.length?(e=S.frame,S=void 0):!d||f||p?e=Kr(`block`,`}`):(e=Kr(`object`,`}`),e.operand=!0),e.open=u,F(`{`,!0);let t=ue(e);t===void 0?be(e):O={frame:e,end:t}}function Se(e){e.operand?F(`}`,!1):(F(`}`,!0),f=s().kind===`block`,m=s().kind===`class`)}function Ce(e){let t=Math.max(l(e),l(`}`));if(ne(e,t),t===0||o[t].closer!==e){F(e,e===`}`);return}let n=o[t];if(A&&e!==`}`){for(let e=o.length-1;e>t;e--)re(e);let e=j!==M[t];ae(t,u*2+ +e)}N(t),e===`]`&&!a.lookahead&&a.brackets.set(n.open,u),e===`)`?(F(e,n.header),f=n.header):e===`]`?F(e,!1):(le(n,u),Se(n))}function we(e){if(mr.test(e)){h+=e;return}if(ve(),yr.test(e)&&ye(),vr.test(e))return;let t=s();switch(e){case`(`:case`[`:{let t=Kr(`expr`,e===`(`?`)`:`]`,u);t.header=e===`(`&&v,F(e,!0);let n=se(t);n===void 0?be(t):te={frame:t,result:n};break}case`{`:xe();break;case`)`:case`]`:case`}`:Ce(e);break;case`.`:_=y===`.`?_+1:1,F(e,_===3);break;case`;`:F(e,!0),f=t.kind===`block`,m=t.kind===`class`;break;case`,`:F(e,!0),m=t.kind===`object`;break;case`?`:F(e,!0),t.ternary++;break;case`:`:F(e,!0),t.ternary>0?t.ternary--:f=t.kind===`block`;break;case`#`:F(e,!1),g=!0;break;case`*`:{let t=m;F(e,!0),m=t;break}case`>`:{let t=y===`=`;F(e,!0),p=t;break}default:F(e,!0)}}for(;u<e.length;){let c=e.charAt(u),p=C?.checkpoints,g=p&&pe();if(g!==void 0){let t=p.get(g);if(t===void 0)C.passed.push(g);else if(o.length>1&&t<0)return C.malformed=t===Lr,e.length;else if(t===Lr)return de();else if(t===Ir){u=e.length;break}else return C.stopped=!0,t}if(s().kind===`template`){if(c===`\\\\`)ge(e.slice(u,u+2),u),u+=2;else if(c===\"`\"){if(ge(c,u),o.length===1)return u+1;le(s(),u),u++,N(o.length-1),P()}else if(c===`$`&&e.charAt(u+1)===`{`){let t=Kr(`expr`,`}`,u);t.interpolation=!0;let n=ue(t);if(n===Lr)return de();if(n===Ir){u=e.length;break}if(n!==void 0){u=n+1;continue}ge(\"${\",u),u+=2,r++,F(`{`,!0),be(t)}else ge(c,u),u++;continue}if(c===`\"`||c===`'`){if(C&&u>n&&mr.test(e.charAt(u-1))&&!me())return de();ve();let{end:t,closed:r}=Tr(e,u);if(C&&!r)return de();_e(u,t),u=t,P();continue}if(c===\"`\"){ve();let t=Kr(`template`,\"`\",u),n=ue(t);if(n===Lr)return de();if(n===Ir){u=e.length;break}if(n!==void 0){u=n+1,P();continue}ge(c,u),fe(t),u++;continue}if(c===`{`&&C?.stop?.(u))return oe(Rr-u),C.stopped=!0,u;if(c===`}`){let e=l(`}`);if(ne(`}`,e),o[e].interpolation){ve(),le(o[e],u),N(e),r--,ge(c,u),u++;continue}}if(c===`/`){ve();let t=e.charAt(u+1);if(t===`/`||t===`*`){let n=kr(e,u,C?.cache);if(n<0){if(C)return de();n=e.length}_e(u,n),t===`*`&&jr(e,u,n,C?.cache)&&ye(),u=n;continue}if(d){let{end:t,closed:n}=Er(e,u,C?.cache);if(C&&!n)return de();_e(u,t),u=t,P();continue}}if(!h&&x&&!d&&s().kind===`class`){hr.lastIndex=u;let t=hr.exec(e)?.[0];t&&t!==`in`&&t!==`instanceof`&&(m=!0)}if(c===`@`||(c===`$`||c===`_`)&&!h){ve(),hr.lastIndex=u+1;let n=hr.exec(e)?.[0]??``;if(gr.test(n)&&!I(c,u+1+n.length)){t.variable?.(c,n,u,r),u+=1+n.length,P();continue}}if(c===`%`){ve(),dr.lastIndex=u+1;let n=dr.exec(e)?.[0];if(n){let i=u+1+n.length;if(d||x&&a.lookahead&&Gr(e,i,a)){t.variable?.(`%`,n,u,r),u=i,P();continue}}}if((c===`+`||c===`-`)&&e.charAt(u+1)===c){ve();let e=!d&&!x;he(c,u),he(c,u+1),u+=2,F(c,!e);continue}if(c===`?`){let t=e.charAt(u+1);if(t===`?`||t===`.`&&!/\\d/.test(e.charAt(u+2))){ve(),he(c,u),he(t,u+1),u+=2,_=1,F(t,t===`?`);continue}}if(c===i.closer&&o.length===1)break;if(we(c),O){let{frame:t,end:n}=O;if(O=void 0,n===Lr)return de();if(n===Ir){u=e.length;break}u=n,Se(t),u++;continue}if(te){let{frame:t,result:n}=te;if(te=void 0,n===Lr)return de();if(n===Ir){u=e.length;break}if(n<=Rr)return oe(n),C.stopped=!0,Rr-n;u=Math.floor(n/2),n%2==1&&(S=void 0),t.closer===`)`?(F(`)`,t.header),f=t.header):F(`]`,!1),u++;continue}he(c,u),u++}if(u>=e.length&&(ce(Ir),oe(Ir)),!a.lookahead)for(let e of o)e.closer===`]`&&a.brackets.set(e.open,u);return Math.min(u,e.length);function I(t,n){if(g)return!0;if(!m||t===`@`)return!1;if(s().kind===`class`)return!0;let r=e.charAt(Nr(e,n));return r===`:`||r===`(`}}function Xr(e){let t=e.toLowerCase();return t.startsWith(`on`)||t===`pattern`||t===`srcdoc`}function Zr(e){let t=[],n=li(),r=``,i=0;for(;i<e.length;){let a=e.indexOf(`{`,i);if(a===-1){r+=e.slice(i);break}r+=e.slice(i,a),i=a+1;let o=e[i],s=o===`$`||o===`_`||o===`@`||o===`%`?ui(e,i,n):-1;if(s===-1){r+=`{`;continue}r&&t.push({text:r}),r=``;let c=e.slice(i,s);t.push(/^.\\w/.test(c)?{expr:c}:{verbatim:`{${c}}`}),i=s+1}return r&&t.push({text:r}),t}var Qr=/[a-zA-Z]/,$r=new Set([`area`,`base`,`br`,`col`,`embed`,`hr`,`img`,`input`,`link`,`meta`,`param`,`source`,`track`,`wbr`]),ei=new Set([`$`,`_`,`@`,`%`]),ti=new Set([`(`,`!`]),ni=new Set([`do`]);function ri(e){let t=e.indexOf(`|`);if(t!==-1)return{display:e.slice(0,t).trim(),target:e.slice(t+1).trim()};let n=e.indexOf(`->`);if(n!==-1)return{display:e.slice(0,n).trim(),target:e.slice(n+2).trim()};let r=e.indexOf(`<-`);if(r!==-1)return{target:e.slice(0,r).trim(),display:e.slice(r+2).trim()};let i=e.trim();return{display:i,target:i}}function ii(e){let t=e.trim(),n=t.startsWith(`/`),r=n?t.slice(1):t,i=r.search(/\\s/);return i===-1?{name:r,rawArgs:``,isClose:n}:{name:r.slice(0,i),rawArgs:r.slice(i+1).trim(),isClose:n}}function ai(e,t){let n=[],r=``,i=t;for(;i<e.length&&(e[i]===`.`||e[i]===`#`);){let t=e[i];i++;let a=``;for(;i<e.length;)if(/[a-zA-Z0-9_-]/.test(e[i]))a+=e[i],i++;else if(e[i]===`{`&&ei.has(e[i+1])){let t=i;for(i+=2;i<e.length&&/[\\w.]/.test(e[i]);)i++;if(i<e.length&&e[i]===`}`)i++,a+=e.slice(t,i);else{i=t;break}}else break;a&&(t===`.`?n.push(a):r=a)}return{className:n.join(` `),id:r,endIdx:i}}function oi(e,t,n){let r={},i=new Set;return{attributes:r,endIdx:si(e,t,n,(e,t)=>{let n=e.toLowerCase();i.has(n)||(i.add(n),Object.defineProperty(r,e,{value:t,enumerable:!0,writable:!0,configurable:!0}))})}}function si(e,t,n,r){let i=[];for(;t<e.length;){for(;t<e.length&&/\\s/.test(e[t]);)t++;if(!r){let e=n.tag.get(t);if(e!==void 0){t=e;break}i.push(t)}if(t>=e.length||e[t]===`>`||e[t]===`/`&&e[t+1]===`>`)break;let a=t;for(;t<e.length&&/[a-zA-Z0-9_\\-:@]/.test(e[t]);)t++;let o=e.slice(a,t);if(!o)break;let s=t;for(;s<e.length&&/\\s/.test(e[s]);)s++;if(e[s]===`=`){for(t=s+1;t<e.length&&/\\s/.test(e[t]);)t++;if(e[t]===`\"`||e[t]===`'`){let i=e[t];t++;let a=t;t=ci(e,t,i,Xr(o),n),r?.(o,e.slice(a,t)),t<e.length&&t++}else{let i=t,a=n.unquoted;if(t<a.from||t>a.to){for(a.from=t;t<e.length&&/[^\\s>]/.test(e[t]);)t++;a.to=t}t=a.to,r?.(o,e.slice(i,t))}}else r?.(o,``)}for(let e of i)n.tag.set(e,t);return t}function ci(e,t,n,r,i){let a=(n===`\"`?0:2)+(r?1:0),o=[],s=!0;for(;t<e.length;){if(s){let e=i.value.get(t*4+a);if(e!==void 0){t=e;break}o.push(t*4+a),s=!1}if(!r&&e[t]===`\\\\`){let n=t+1;for(;e[n]===`\\\\`;)n++;t=(e[n]===`{`||e[n]===`}`)&&(n-t)%2==1?n+1:n;continue}if(e[t]===`{`){let n=r?ei.has(e[t+1])?ui(e,t+1,i):-1:fi(e,t,i);if(n!==-1){t=n+1,s=!0;continue}}else if(e[t]===n)break;t++}for(let e of o)i.value.set(e,t);return t}function li(){return{code:new Map,js:Hr(),brace:new Map,template:new Map,templateText:new Map,name:{from:0,to:-1},unquoted:{from:0,to:-1},link:new Map,tag:new Map,value:new Map,rawClose:new Map}}function ui(e,t,n=li()){return pi(e,t,t,n)}function di(e,t,n){let r=n.name;if(t<r.from||t>r.to){let n=t;for(;n<e.length&&e[n]!==`}`&&!/\\s/.test(e[n]);)n++;r.from=t,r.to=n}return pi(e,r.to,t,n)}function fi(e,t,n){let r=t+1,i=e[r];(i===`.`||i===`#`)&&(r=ai(e,r).endIdx,e[r]===` `&&r++);let a=e[r];return a!==void 0&&(a===`/`||/[a-zA-Z]/.test(a))?di(e,r,n):ui(e,r,n)}function pi(e,t,n,r){let i=r.code.get(n);return i===void 0&&(i=Jr(e,t,{cache:r.js}),i===-1&&(i=_i(e,n,r)),r.code.set(n,i)),i}function mi(e,t,n){let r=n.link.get(t);if(r!==void 0)return r;let i=[t],a=t;for(;a<e.length;)if(e[a]===`[`&&e[a+1]===`[`){a+=2;let e=n.link.get(a);if(e===void 0)i.push(a);else if(e===-1)break;else a=e+2}else if(e[a]===`]`&&e[a+1]===`]`){if(n.link.set(i.pop(),a),!i.length)return a;a+=2}else a++;for(let e of i)n.link.set(e,-1);return-1}function hi(e,t){let n=e[t],r=t+1;for(;r<e.length;){let t=e[r];if(t===`\\\\`)r+=2;else if(t===n)return r+1;else if(t===`\n`)return-1;else r++}return-1}var gi=/[\\p{L}\\p{N}_\\\\]/u;function _i(e,t,n){let r=n.brace.get(t);if(r!==void 0)return r;let i=[{template:!1,start:t,levels:[[]]}];for(;;){let r=i[i.length-1],a;if(r.template){let o=!0;for(;a===void 0&&t<e.length;){if(o){let e=n.templateText.get(t);if(e!==void 0){a=e;break}r.passed.push(t),o=!1}let i=e[t];if(i===`\\\\`)t+=2,o=!0;else if(i===\"`\")a=t+1;else if(i===`$`&&e[t+1]===`{`){let e=n.brace.get(t+2);if(e===void 0)break;e===-1?a=-1:(t=e+1,o=!0)}else t++}if(a===void 0&&t<e.length){i.push({template:!1,start:t+2,levels:[[]]}),t+=2;continue}a??(a=-1)}else{let{levels:o}=r,s=e=>{for(let t of o.pop())n.brace.set(t,e);o.length||(a=e)};for(;a===void 0&&t<e.length;){let r=e[t],i=-1;if(r===`{`)o.push([]),i=++t;else if(r===`}`)s(t++);else if((r===`\"`||r===`'`)&&!(t>0&&gi.test(e[t-1]))){let n=hi(e,t);n===-1?t++:i=t=n}else if(r===\"`\"){let e=n.template.get(t);if(e===void 0)break;e===-1?t++:i=t=e}else t++;if(i===-1)continue;let a=n.brace.get(i);a===void 0?o[o.length-1].push(i):a===-1?t=e.length:(s(a),t=a+1)}if(a===void 0&&t<e.length){i.push({template:!0,start:t,levels:[],passed:[]}),t++;continue}if(a===void 0){a=-1;for(let e of o)for(let t of e)n.brace.set(t,-1)}}i.pop(),(r.template?n.template:n.brace).set(r.start,a);for(let e of r.passed??[])n.templateText.set(e,a);let o=i[i.length-1];if(!o)return a;t=o.template?a===-1?e.length:a+1:a===-1?r.start+1:a}}function vi(e,t={}){let n=t.text===!0,r=[],i=li(),a=0,o=0;function s(t){t>o&&r.push({type:`text`,value:e.slice(o,t),start:o,end:t})}function c(t,n){let c=t.toLowerCase();if(n||!ni.has(c))return;let l=`\\\\{/${c}\\\\s*\\\\}`,u=i.rawClose.get(c);if(!u||a<u.from||u.at>=0&&a>u.at){let t=new RegExp(l,`gi`);t.lastIndex=a,u={from:a,at:t.exec(e)?.index??-1},i.rawClose.set(c,u)}let d=u.at;if(d===-1)return;let f=new RegExp(l,`iy`),p=Jr(e,a,{goal:`statements`,stop:t=>(f.lastIndex=t,f.test(e)),stopKey:c,cache:i.js});p===-1&&(p=d),f.lastIndex=p;let m=p+f.exec(e)[0].length;s(p),r.push({type:`macro`,...ii(e.slice(p+1,m-1)),start:p,end:m}),a=m,o=m}function l(t,n,c,l,u){let d=ui(e,t,i);if(d===-1)return!1;c&&s(n);let f={type:`expression`,expression:e.slice(t,d),start:n,end:d+1};return l&&(f.className=l),u&&(f.id=u),r.push(f),a=o=d+1,!0}for(;a<e.length;){if(e[a]===`\\\\`){let t=a+1;for(;e[t]===`\\\\`;)t++;let i=e[t];if(n&&(i===`{`||i===`}`)){let e=(t-a)%2==1,n=e?t+1:t,c=`\\\\`.repeat(t-a>>1)+(e?i:``);s(a),c&&r.push({type:`text`,value:c,start:a,end:n}),a=o=n;continue}if((i===`{`||i===`}`)&&(t-a)%2==1){s(t-1),r.push({type:`text`,value:i,start:t-1,end:t+1}),a=t+1,o=a;continue}a=t;continue}if(!n&&e[a]===`[`&&e[a+1]===`[`){s(a);let t=a;a+=2;let n,c;if(e[a]===`.`||e[a]===`#`){let t=ai(e,a);n=t.className||void 0,c=t.id||void 0,a=t.endIdx,e[a]===` `&&a++}let l=a,u=mi(e,l,i);if(u===-1){a=t+2,o=t;continue}let d=e.slice(l,u);a=u+2;let{display:f,target:p}=ri(d),m={type:`link`,display:f,target:p,start:t,end:a};n&&(m.className=n),c&&(m.id=c),r.push(m),o=a;continue}if(e[a]===`{`){let t=a,n=e[a+1],u,d;if(n===`.`||n===`#`){s(a);let n=ai(e,a+1);u=n.className||void 0,d=n.id||void 0;let f=n.endIdx;e[f]===` `&&f++;let p=e[f];if(p===`$`){a=f+1;let n=a;for(;a<e.length&&/[\\w.]/.test(e[a]);)a++;let s=e.slice(n,a);if(e[a]===`}`){a++;let e={type:`variable`,name:s,scope:`variable`,start:t,end:a};u&&(e.className=u),d&&(e.id=d),r.push(e),o=a;continue}let c=ui(e,n-1,i);if(c!==-1){let n=e.slice(f,c);a=c+1;let i={type:`expression`,expression:n,start:t,end:a};u&&(i.className=u),d&&(i.id=d),r.push(i),o=a;continue}a=t+1,o=t;continue}if(p===`_`){a=f+1;let n=a;for(;a<e.length&&/[\\w.]/.test(e[a]);)a++;let s=e.slice(n,a);if(e[a]===`}`){a++;let e={type:`variable`,name:s,scope:`temporary`,start:t,end:a};u&&(e.className=u),d&&(e.id=d),r.push(e),o=a;continue}let c=ui(e,n-1,i);if(c!==-1){let n=e.slice(f,c);a=c+1;let i={type:`expression`,expression:n,start:t,end:a};u&&(i.className=u),d&&(i.id=d),r.push(i),o=a;continue}a=t+1,o=t;continue}if(p===`@`){a=f+1;let n=a;for(;a<e.length&&/[\\w.]/.test(e[a]);)a++;let s=e.slice(n,a);if(e[a]===`}`){a++;let e={type:`variable`,name:s,scope:`local`,start:t,end:a};u&&(e.className=u),d&&(e.id=d),r.push(e),o=a;continue}let c=ui(e,n-1,i);if(c!==-1){let n=e.slice(f,c);a=c+1;let i={type:`expression`,expression:n,start:t,end:a};u&&(i.className=u),d&&(i.id=d),r.push(i),o=a;continue}a=t+1,o=t;continue}if(p===`%`){a=f+1;let n=a;for(;a<e.length&&/[\\w.]/.test(e[a]);)a++;let s=e.slice(n,a);if(e[a]===`}`){a++;let e={type:`variable`,name:s,scope:`transient`,start:t,end:a};u&&(e.className=u),d&&(e.id=d),r.push(e),o=a;continue}let c=ui(e,n-1,i);if(c!==-1){let n=e.slice(f,c);a=c+1;let i={type:`expression`,expression:n,start:t,end:a};u&&(i.className=u),d&&(i.id=d),r.push(i),o=a;continue}a=t+1,o=t;continue}if(ti.has(p)&&l(f,t,!1,u,d))continue;if(p!==void 0&&/[a-zA-Z]/.test(p)){let n=f,s=di(e,n,i);if(s===-1){a=t+1,o=t;continue}let l=e.slice(n,s);a=s+1;let{name:p,rawArgs:m,isClose:h}=ii(l),g={type:`macro`,name:p,rawArgs:m,isClose:h,start:t,end:a};u&&(g.className=u),d&&(g.id=d),r.push(g),o=a,c(p,h);continue}a=t+1,o=t;continue}if(n===`$`){s(a),a+=2;let n=a;for(;a<e.length&&/[\\w.]/.test(e[a]);)a++;let c=e.slice(n,a);if(e[a]===`}`){a++,r.push({type:`variable`,name:c,scope:`variable`,start:t,end:a}),o=a;continue}let l=ui(e,n-1,i);if(l!==-1){let n=e.slice(t+1,l);a=l+1,r.push({type:`expression`,expression:n,start:t,end:a}),o=a;continue}a=t+1,o=t;continue}if(n===`_`){s(a),a+=2;let n=a;for(;a<e.length&&/[\\w.]/.test(e[a]);)a++;let c=e.slice(n,a);if(e[a]===`}`){a++,r.push({type:`variable`,name:c,scope:`temporary`,start:t,end:a}),o=a;continue}let l=ui(e,n-1,i);if(l!==-1){let n=e.slice(t+1,l);a=l+1,r.push({type:`expression`,expression:n,start:t,end:a}),o=a;continue}a=t+1,o=t;continue}if(n===`@`){s(a),a+=2;let n=a;for(;a<e.length&&/[\\w.]/.test(e[a]);)a++;let c=e.slice(n,a);if(e[a]===`}`){a++,r.push({type:`variable`,name:c,scope:`local`,start:t,end:a}),o=a;continue}let l=ui(e,n-1,i);if(l!==-1){let n=e.slice(t+1,l);a=l+1,r.push({type:`expression`,expression:n,start:t,end:a}),o=a;continue}a=t+1,o=t;continue}if(n===`%`){s(a),a+=2;let n=a;for(;a<e.length&&/[\\w.]/.test(e[a]);)a++;let c=e.slice(n,a);if(e[a]===`}`){a++,r.push({type:`variable`,name:c,scope:`transient`,start:t,end:a}),o=a;continue}let l=ui(e,n-1,i);if(l!==-1){let n=e.slice(t+1,l);a=l+1,r.push({type:`expression`,expression:n,start:t,end:a}),o=a;continue}a=t+1,o=t;continue}if(ti.has(n)){if(l(a+1,t,!0))continue;a++;continue}if(n!==void 0&&(n===`/`||/[a-zA-Z]/.test(n))){s(a);let n=a+1,l=di(e,n,i);if(l===-1){a=t+1,o=t;continue}let u=e.slice(n,l);a=l+1;let{name:d,rawArgs:f,isClose:p}=ii(u);r.push({type:`macro`,name:d,rawArgs:f,isClose:p,start:t,end:a}),o=a,c(d,p);continue}a++;continue}if(!n&&e[a]===`<`){let t=a,n=a+1,c=e[n]===`/`;c&&n++;let l=n;for(;n<e.length&&/[a-zA-Z0-9-]/.test(e[n]);)n++;let u=e.slice(l,n),d=u.toLowerCase();if(u&&Qr.test(u[0]))if(c){for(;n<e.length&&/\\s/.test(e[n]);)n++;if(e[n]===`>`){if(n++,s(t),$r.has(d)){o=n,a=n;continue}r.push({type:`html`,tag:u,attributes:{},isClose:!0,isSelfClose:!1,start:t,end:n}),o=n,a=n;continue}}else{let c=n;n=si(e,c,i);let l=$r.has(d);if(e[n]===`/`&&(l=!0,n++),e[n]===`>`){n++,s(t),r.push({type:`html`,tag:u,attributes:oi(e,c,i).attributes,isClose:!1,isSelfClose:l,start:t,end:n}),o=n,a=n;continue}}a++;continue}a++}return s(e.length),r}var yi=new Set([`if`,`for`,`do`,`button`,`link`,`listbox`,`cycle`,`switch`,`timed`,`repeat`,`type`,`widget`,`span`,`nobr`]);function bi(e){yi.add(e.toLowerCase())}var xi={elseif:`if`,else:`if`,case:`switch`,default:`switch`,next:`timed`},Si=new Set([`if`,`switch`,`timed`]);function Ci(e){return`\"${e.replace(/[\\\\\"]/g,`\\\\$&`)}\"`}function wi(e){let t=[],n=[];function r(){if(n.length===0)return t;let e=n[n.length-1].node;return e.type===`macro`&&e.branches&&e.branches.length>0?e.branches[e.branches.length-1].children:e.children}for(let t of e)switch(t.type){case`text`:r().push({type:`text`,value:t.value});break;case`link`:{let e={type:`macro`,name:`link`,rawArgs:`${Ci(t.display)} ${Ci(t.target)}`,children:[]};t.className&&(e.className=t.className),t.id&&(e.id=t.id),r().push(e);break}case`variable`:{let e={type:`variable`,name:t.name,scope:t.scope};t.className&&(e.className=t.className),t.id&&(e.id=t.id),r().push(e);break}case`expression`:{let e={type:`expression`,expression:t.expression};t.className&&(e.className=t.className),t.id&&(e.id=t.id),r().push(e);break}case`html`:{if(t.isSelfClose){r().push({type:`html`,tag:t.tag,attributes:t.attributes,children:[]});break}if(t.isClose){if(n.length===0)throw Error(`Unexpected closing </${t.tag}> (at character ${t.start})`);let e=n[n.length-1];if(e.node.type!==`html`||e.node.tag.toLowerCase()!==t.tag.toLowerCase()){let n=e.node.type===`html`?`</${e.node.tag}>`:`{/${e.node.name}}`;throw Error(`Expected ${n} but found </${t.tag}> (at character ${t.start})`)}n.pop(),r().push(e.node);break}let e={type:`html`,tag:t.tag,attributes:t.attributes,children:[]};n.push({node:e,start:t.start});break}case`macro`:{let e=t.name.toLowerCase();if(t.isClose){if(n.length===0)throw Error(`Unexpected closing {/${t.name}} (at character ${t.start})`);let i=n[n.length-1];if(i.node.type!==`macro`||i.node.name!==e){let e=i.node.type===`macro`?`{/${i.node.name}}`:`</${i.node.tag}>`;throw Error(`Expected ${e} but found {/${t.name}} (at character ${t.start})`)}n.pop(),r().push(i.node);break}let i=Object.prototype.hasOwnProperty.call(xi,e)?xi[e]:void 0;if(i){let e=n.length>0?n[n.length-1].node:null;if(!e||e.type!==`macro`||e.name!==i)throw Error(`{${t.name}} without matching {${i}} (at character ${t.start})`);let r={rawArgs:t.rawArgs,children:[]};t.className&&(r.className=t.className),t.id&&(r.id=t.id),e.branches.push(r);break}if(yi.has(e)){let r={type:`macro`,name:e,rawArgs:t.rawArgs,children:[]};if(Si.has(e)){let e={rawArgs:t.rawArgs,children:[]};t.className&&(e.className=t.className),t.id&&(e.id=t.id),r.branches=[e]}else t.className&&(r.className=t.className),t.id&&(r.id=t.id);n.push({node:r,start:t.start});break}{let n={type:`macro`,name:e,rawArgs:t.rawArgs,children:[]};t.className&&(n.className=t.className),t.id&&(n.id=t.id),r().push(n)}break}default:throw Error(`Unknown token type: ${t.type}`)}if(n.length>0){let e=n[n.length-1],t=e.node.type===`html`?`<${e.node.tag}>`:`{${e.node.name}} macro`;throw Error(`Unclosed ${t} (opened at character ${e.start})`)}return t}var Ti=e=>Symbol.iterator in e,Ei=e=>`entries`in e,Di=(e,t)=>{let n=e instanceof Map?e:new Map(e.entries()),r=t instanceof Map?t:new Map(t.entries());if(n.size!==r.size)return!1;for(let[e,t]of n)if(!r.has(e)||!Object.is(t,r.get(e)))return!1;return!0},Oi=(e,t)=>{let n=e[Symbol.iterator](),r=t[Symbol.iterator](),i=n.next(),a=r.next();for(;!i.done&&!a.done;){if(!Object.is(i.value,a.value))return!1;i=n.next(),a=r.next()}return!!i.done&&!!a.done};function ki(e,t){return Object.is(e,t)?!0:typeof e!=`object`||!e||typeof t!=`object`||!t||Object.getPrototypeOf(e)!==Object.getPrototypeOf(t)?!1:Ti(e)&&Ti(t)?Ei(e)&&Ei(t)?Di(e,t):Oi(e,t):Di({entries:()=>Object.entries(e)},{entries:()=>Object.entries(t)})}function Ai(...e){let t=L();return Q(n=>{let r={};for(let t of e)r[t]=n[t];return ki(t.current,r)?t.current:t.current=r})}function ji(){let{variables:e,temporary:t,transient:n}=Ai(`variables`,`temporary`,`transient`),r=z(Jl);return R(()=>[e,t,r,n],[e,t,r,n])}var Mi=1831565813;function Ni(e){let t=e|0;return()=>{t=t+Mi|0;let e=Math.imul(t^t>>>15,t|1);return e^=e+Math.imul(e^e>>>7,e|61),((e^e>>>14)>>>0)/4294967296}}function Pi(e){let t=2166136261;for(let n=0;n<e.length;n++)t^=e.charCodeAt(n),t=Math.imul(t,16777619);return t}var Fi=!1,Ii=``,Li=0,Ri=null,zi=0;function Bi(e,t=!0){let n;n=e===void 0?String(Date.now())+String(Math.random()):t?e+`|`+Date.now()+`|`+Math.random():e,Ii=n,Li=0,Ri=Ni(Pi(n)),Fi=!0,zi++}function Vi(e,t){zi++,Hi(e,t)}function Hi(e,t){Ii=e;let n=Math.imul(t%4294967296,Mi);Ri=Ni(Pi(e)+n|0),Fi=!0,Li=t}function Ui(){zi++,Fi=!1,Ii=``,Li=0,Ri=null}function Wi(e){let t={generation:zi,seed:Ii,pull:Li};try{return e()}finally{Fi&&zi===t.generation&&Li!==t.pull&&Hi(t.seed,t.pull)}}function Gi(){return Fi?{seed:Ii,pull:Li}:null}function Ki(){return!Fi||!Ri?Math.random():(Li++,Ri())}function qi(e,t){return e>t&&([e,t]=[t,e]),Math.floor(Ki()*(t-e+1))+e}function Ji(){return Fi}function Yi(){return Ii}function Xi(){return Li}var Zi=`__proto__`;function Qi(e,t=e){return e===`__proto__`?`\"${t}\" cannot be used as a variable name (${Zi} is reserved)`:void 0}function W(e,t=e){let n=Qi(e,t);if(n)throw TypeError(`spindle: ${n}`)}var $i=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),ea=(e,t)=>e&&$i(e,t)?e[t]:void 0;function ta(e,t=()=>!0){let n=Object.create(null);for(let r of e)if(r)for(let e of Object.keys(r)){let i=r[e];t(i)&&(n[e]=i)}return n}var G=(...e)=>ta(e),na=e=>Object.getPrototypeOf(e)===null,ra=e=>na(e)?e:G(e);function ia(e,t,n){let r=G(e);return r[t]=n,r}var aa=Object.freeze(G());function oa(e,t){return[...new Set([...Object.keys(e),...Object.keys(t)])].filter(n=>ea(e,n)!==ea(t,n))}var sa=e=>typeof e==`number`&&Number.isInteger(e)&&e>=0;function ca(e,t){let n=ea(e,t);return sa(n)?n:0}function la(e,t){let n=ta([e],sa);return t!==void 0&&(n[t]=ca(e,t)+1),n}var ua=500,da=new Map,fa={$:`variables`,_:`temporary`,\"@\":`locals`,\"%\":`transient`},pa=/[\\p{ID_Continue}$\\u200c\\u200d]$/u;function ma(e,t=`expression`){let n=``;return qr(e,{code(e){n+=e},literal(e){n+=e},variable(e,t){let r=Qi(t,e+t);if(r)throw SyntaxError(`spindle: ${r}`);pa.test(n.slice(-2))&&(n+=` `),n+=`${fa[e]}[\"${t}\"]`}},t),n}var ha=`const {currentPassage,previousPassage,visited,hasVisited,hasVisitedAny,hasVisitedAll,rendered,hasRendered,hasRenderedAny,hasRenderedAll,random,randomInt}=__fns;`;function ga(e,t){let n=da.get(e);if(n)return da.delete(e),da.set(e,n),n;let r=Function(`variables`,`temporary`,`locals`,`__fns`,`transient`,ha+t);if(da.set(e,r),da.size>ua){let e=da.keys().next().value;e!==void 0&&da.delete(e)}return r}function _a(){let e=Q.getState();return e.storyData?.passages.get(e.currentPassage)}function va(){let e=Q.getState();if(e.historyIndex<=0)return;let t=e.history[e.historyIndex-1]?.passage;return t?e.storyData?.passages.get(t):void 0}function ya(e){let t=t=>ca(e(),t??Q.getState().currentPassage);return{count:t,has:e=>t(e)>0,any:(...e)=>e.some(e=>t(e)>0),all:(...e)=>e.every(e=>t(e)>0)}}var ba=null,xa=null,Sa=null;function Ca(){let{visitCounts:e,renderCounts:t}=Q.getState();if(ba&&xa===e&&Sa===t)return ba;let n=ya(()=>e),r=ya(()=>t);return ba={currentPassage:_a,previousPassage:va,visited:n.count,hasVisited:n.has,hasVisitedAny:n.any,hasVisitedAll:n.all,rendered:r.count,hasRendered:r.has,hasRenderedAny:r.any,hasRenderedAll:r.all,random:Ki,randomInt:qi},xa=e,Sa=t,ba}function wa(e){return na(e)?e:Object.isExtensible(e)?(Object.setPrototypeOf(e,null),e):ra(e)}function Ta(e,t,n,r=aa,i=aa){let a=`return (${ma(e)}\\n);`;return ga(a,a)(wa(t),wa(n),wa(r),Ca(),wa(i))}function Ea(e,t,n,r=aa,i=aa){let a=ma(e,`statements`);ga(`exec:`+a,a)(wa(t),wa(n),wa(r),Ca(),wa(i))}var Da=new Map;function Oa(e,t){Da.set(e.toLowerCase(),t)}function ka(e){return Da.get(e.toLowerCase())}var Aa=new Map;function ja(e,t){t?Aa.set(e.toLowerCase(),t):Aa.delete(e.toLowerCase())}function Ma(e){return Aa.get(e.toLowerCase())}var Na=new Set;function Pa(e){Na.add(e.toLowerCase())}function Fa(e){return Na.has(e.toLowerCase())}var Ia=new Map;function La(e,t){Ia.set(e.toLowerCase(),t)}function Ra(){return Array.from(Ia.values())}var za=new Map;function Ba(e,t,n,r=!1){let i=n.filter(e=>e!==`@children`);for(let e of i)e.startsWith(`@`)&&W(e.slice(1),e);za.set(e.toLowerCase(),{body:t,params:i,isBlock:r})}function Va(e){return za.get(e.toLowerCase())}function Ha(e){return/\\s/.test(e)}function Ua(e){return e===`(`||e===`[`||e===`{`}function Wa(e){return e===`)`||e===`]`||e===`}`}function Ga(e){return e.replace(/\\\\([\"'\\\\])/g,`$1`)}function Ka(e,t){let n=e[t];if(n!==`\"`&&n!==`'`)return null;let{end:r,closed:i}=Tr(e,t);return i?{value:Ga(e.slice(t+1,r-1)),end:r}:null}function qa(e){let t=Ka(e,0);return t&&t.end===e.length?t.value:null}function Ja(e){return/^[\"']?(.+?)[\"']?$/s.exec(e)?.[1]??e}var Ya=/(?:[-+*/%&|^!~=<>?:,.]|(?:^|[^\\w$@.])(?:typeof|void|new|delete|in|instanceof|await|yield))$/;function Xa(e){let t=-1;if(qr(e,{code(e,n,r){r===0&&!Ha(e)&&(t=n+1)},literal(e,n,r){let i=e.startsWith(`//`)||e.startsWith(`/*`);r===0&&!i&&(t=-1)},variable(e,n,r,i){i===0&&(t=-1)}}),t<0)return!1;let n=e.slice(0,t);return/(?:\\+\\+|--)$/.test(n)?!1:Ya.test(n)}function Za(e,t){let n=[],r=0;return qr(e,{code(e,i,a){a>0||(Ua(e)?r++:Wa(e)?r--:r===0&&t(e)&&n.push(i))}}),n}function Qa(e,t){let n=[],r=0;for(let i of Za(e,t))n.push(e.slice(r,i)),r=i+1;return n.push(e.slice(r)),n}function $a(e){return eo(e)&&!Xa(e)}function eo(e){let t=e[0];return!!(t===`\"`||t===`'`||t===\"`\"||/^[$_@]\\w|^%[A-Za-z_]/.test(e)||/\\d/.test(t)||(t===`-`||t===`+`)&&e.length>1&&/\\d/.test(e[1])||t===`(`||t===`[`||t===`{`||/^(?:true|false|null|undefined)(?![\\w$])/.test(e)||t===`!`&&e.length>1&&e[1]!==`=`)}function to(e){let t=Qa(e,Ha).filter(Boolean);if(t.length<2)return null;for(let e of t)if(!$a(e))return null;return t}function no(e){let t=Qa(e,e=>e===`,`).map(e=>e.trim()),n=t.length>1;if(t[t.length-1]===``&&t.pop(),!n&&t.length===1){let e=to(t[0]);if(e)return e}return t}function ro(e){return e.includes(`{`)||e.includes(`}`)}var io=new Map,ao=2e3;function oo(e){let t=io.get(e);if(t===void 0){try{t={nodes:wi(vi(e,{text:!0}))}}catch(e){t={error:e}}io.size>=ao&&io.clear(),io.set(e,t)}return t}function so(e,t){return e.map(e=>{switch(e.type){case`text`:return{type:`text`,value:t(e.value)};case`html`:return{...e,children:so(e.children,t)};case`macro`:{let n={...e,children:so(e.children,t)};return e.branches&&(n.branches=e.branches.map(e=>({...e,children:so(e.children,t)}))),n}default:return e}})}var co=100;function lo(e){return e==null?``:String(e)}var uo={variable:`$`,temporary:`_`,local:`@`,transient:`%`};function fo(e,t,n){let r=n.split(`.`),i=r[0];W(i,uo[t]+i);let a=ea(t===`variable`?e.variables:t===`temporary`?e.temporary:t===`transient`?e.transient:e.locals,i);for(let e=1;e<r.length;e++){if(a==null)return;a=a[r[e]]}return a}var po=class{constructor(){this.errors=[]}nodes(e,t,n){let r=``;for(let i of e)r+=this.node(i,t,n);return r}evaluate(e,t){return Ta(e,t.variables,t.temporary,t.locals,t.transient)}node(e,t,n){switch(e.type){case`text`:return e.value;case`variable`:if(e.scope===`local`&&e.name===`children`){let e=t.widgetChildren;return e?this.nested(`children`,e,t,n,{widgetChildren:null}):``}return this.variable(e.scope,e.name,t);case`expression`:try{return lo(this.evaluate(e.expression,t))}catch(e){return this.errors.push({macro:`expression`,error:e}),``}case`html`:return this.nodes(e.children,t,n);case`macro`:return this.macro(e,t,n);default:return e}}variable(e,t,n){try{return lo(fo(n,e,t))}catch(n){return this.errors.push({macro:uo[e]+t,error:n}),``}}nested(e,t,n,r,i={}){return r>=co?(this.errors.push({macro:e,error:Error(`markup nested too deeply (a widget using itself?)`)}),``):this.nodes(t,{...n,...i},r+1)}macro(e,t,n){if(Fa(e.name))return``;let r=Va(e.name);if(r){let i=t.locals;if(r.params.length>0){let n=e.rawArgs?no(e.rawArgs):[];i=G(t.locals),r.params.forEach((e,r)=>{let a,o=n[r];if(o!==void 0)try{a=this.evaluate(o,t)}catch{a=void 0}i[e.startsWith(`@`)?e.slice(1):e]=a})}return this.nested(e.name,r.body,t,n,{locals:i,widgetChildren:e.children.length>0?e.children:null})}let i=Ma(e.name);if(!i){let t=ka(e.name)?`{${e.name}} has no text form, so it can't be used in an attribute value or label`:`unknown macro {${e.name}}`;return this.errors.push({macro:e.name,error:Error(t)}),``}let a={evaluate:e=>this.evaluate(e,t),renderText:(r,i)=>this.nested(e.name,r,t,n,i?{locals:mo(t.locals,i)}:{})};try{return i({rawArgs:e.rawArgs,className:e.className,id:e.id,children:e.children,branches:e.branches},a)}catch(t){return this.errors.push({macro:e.name,error:t}),``}}};function mo(e,t){for(let e of Object.keys(t))W(e,`@${e}`);return G(e,t)}function ho(e,t){let n=new po;return{text:n.nodes(e,t,0),errors:n.errors}}function go(e,t){if(!ro(e))return{text:e,errors:[]};let n=oo(e);return`error`in n?{text:e,errors:[{macro:`markup`,error:n.error}]}:ho(n.nodes,t)}var _o={$:`variable`,_:`temporary`,\"@\":`local`,\"%\":`transient`};function vo(e,t,n){let r=[],i=``;for(let a of Zr(e))if(`text`in a)i+=n?n(a.text):a.text;else if(`verbatim`in a)i+=a.verbatim;else if(/^[$_@%][\\w.]+$/.test(a.expr)){let e=_o[a.expr[0]];try{i+=lo(fo(t,e,a.expr.slice(1)))}catch(e){r.push({macro:a.expr,error:e})}}else try{i+=lo(Ta(a.expr,t.variables,t.temporary,t.locals,t.transient))}catch(e){r.push({macro:`expression`,error:e})}return{text:i,errors:r}}function yo(e,t){return e instanceof Error?e.message||t||String(e):typeof e==`string`&&e!==``?e:t??String(e)}function bo(){let[e,t,n,r]=ji(),i=z(tu);return R(()=>({variables:e,temporary:t,locals:n,transient:r,widgetChildren:i}),[e,t,n,r,i])}function xo(){let e=bo();return Oe(t=>{if(t===void 0||!ro(t))return t;let{text:n,errors:r}=go(t,e);for(let{macro:e,error:n}of r)console.error(`spindle: {${e}} error in \"${t}\": ${yo(n)}`);return n},[e])}var So=0;Array.isArray;function K(e,t,n,i,a,o){t||(t={});var s,c,l=t;if(`ref`in l)for(c in l={},t)c==`ref`?s=t[c]:l[c]=t[c];var u={type:e,props:l,key:n,ref:s,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--So,__i:-1,__u:0,__source:a,__self:o};if(typeof e==`function`&&(s=e.defaultProps))for(c in s)l[c]===void 0&&(l[c]=s[c]);return r.vnode&&r.vnode(u),u}var Co={variable:`$`,temporary:`_`,local:`@`,transient:`%`},wo={variable:`variables`,temporary:`temporary`,transient:`transient`};function To({name:e,scope:t,className:n,id:r}){let i=xo();n=i(n),r=i(r);let a=z(Jl),o=e.split(`.`),s=o[0],c=Q(e=>t===`local`?void 0:ea(e[wo[t]],s)),l=Qi(s,Co[t]+s);if(l)return K(`span`,{class:`error`,children:`{${Co[t]}${e} error: ${l}}`});let u;u=t===`local`?ea(a,s):c;for(let e=1;e<o.length;e++){if(u==null){u=void 0;break}let t=o[e];u=u[t]}let d=u==null?``:String(u);return n||r?K(`span`,{id:r,class:n,children:d}):K(S,{children:d})}function Eo({expression:e,className:t,id:n}){let r=xo();t=r(t),n=r(n);let[i,a,o,s]=ji(),c;try{let t=Ta(e,i,a,o,s);c=t==null?``:String(t)}catch{c=`{error: ${e}}`}return t||n?K(`span`,{id:n,class:t,children:c}):K(S,{children:c})}function Do({body:e,parentValues:t,ownKeys:n}){let r=z(Xl),i=z(Zl),a=z(Ql),[o,s]=I({}),c=R(()=>G(t,n,o),[t,n,o]),l=L(c);l.current=c;let u=Oe(()=>l.current,[]),d=Oe((e,t)=>{W(e,`@${e}`),l.current=ia(l.current,e,t),s(n=>({...n,[e]:t}))},[]),f=R(()=>({update:d,getValues:u}),[d,u]);return K(Yl.Provider,{value:f,children:K(Jl.Provider,{value:c,children:Vu(e,{nobr:r,inline:i,raw:a,locals:c})})})}function Oo({body:e,params:t,rawArgs:n,invocationChildren:r}){let i=z(Jl),a=z(Xl),o=z(Zl),s=z(Ql),[c,l,u,d]=ji(),f=r?.length?r:null;if(t.length===0)return K(tu.Provider,{value:f,children:Vu(e,{nobr:a,inline:o,raw:s,locals:i})});let p=n?no(n):[],m=[];for(let e=0;e<t.length;e++){let t=p[e],n;if(t!==void 0)try{n=Ta(t,c,l,u,d)}catch{n=void 0}m.push(n)}let h=R(()=>{let e=G();for(let n=0;n<t.length;n++)e[t[n].startsWith(`@`)?t[n].slice(1):t[n]]=m[n];return e},m);return K(tu.Provider,{value:f,children:K(Do,{body:e,parentValues:i,ownKeys:h})})}var ko=document.createElement(`i`);function Ao(e){let t=`&`+e+`;`;ko.innerHTML=t;let n=ko.textContent;return n.charCodeAt(n.length-1)===59&&e!==`semi`||n===t?!1:n}function jo(e,t,n,r){let i=e.length,a=0,o;if(t=t<0?-t>i?0:i+t:t>i?i:t,n=n>0?n:0,r.length<1e4)o=Array.from(r),o.unshift(t,n),e.splice(...o);else for(n&&e.splice(t,n);a<r.length;)o=r.slice(a,a+1e4),o.unshift(t,0),e.splice(...o),a+=1e4,t+=1e4}function Mo(e,t){return e.length>0?(jo(e,e.length,0,t),e):t}var No={}.hasOwnProperty;function Po(e){let t={},n=-1;for(;++n<e.length;)Fo(t,e[n]);return t}function Fo(e,t){let n;for(n in t){let r=(No.call(e,n)?e[n]:void 0)||(e[n]={}),i=t[n],a;if(i)for(a in i){No.call(r,a)||(r[a]=[]);let e=i[a];Io(r[a],Array.isArray(e)?e:e?[e]:[])}}}function Io(e,t){let n=-1,r=[];for(;++n<t.length;)(t[n].add===`after`?e:r).push(t[n]);jo(e,0,0,r)}function Lo(e){let t={},n=-1;for(;++n<e.length;)Ro(t,e[n]);return t}function Ro(e,t){let n;for(n in t){let r=(No.call(e,n)?e[n]:void 0)||(e[n]={}),i=t[n],a;if(i)for(a in i)r[a]=i[a]}}function zo(e,t){let n=Number.parseInt(e,t);return n<9||n===11||n>13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||(n&65535)==65535||(n&65535)==65534||n>1114111?`�`:String.fromCodePoint(n)}var Bo={'\"':`quot`,\"&\":`amp`,\"<\":`lt`,\">\":`gt`};function Vo(e){return e.replace(/[\"&<>]/g,t);function t(e){return`&`+Bo[e]+`;`}}function Ho(e){return e.replace(/[\\t\\n\\r ]+/g,` `).replace(/^ | $/g,``).toLowerCase().toUpperCase()}var Uo=$o(/[A-Za-z]/),Wo=$o(/[\\dA-Za-z]/),Go=$o(/[#-'*+\\--9=?A-Z^-~]/);function Ko(e){return e!==null&&(e<32||e===127)}var qo=$o(/\\d/),Jo=$o(/[\\dA-Fa-f]/),Yo=$o(/[!-/:-@[-`{-~]/);function q(e){return e!==null&&e<-2}function Xo(e){return e!==null&&(e<0||e===32)}function J(e){return e===-2||e===-1||e===32}var Zo=$o(/\\p{P}|\\p{S}/u),Qo=$o(/\\s/);function $o(e){return t;function t(t){return t!==null&&t>-1&&e.test(String.fromCharCode(t))}}function es(e,t){let n=Vo(ts(e||``));if(!t)return n;let r=n.indexOf(`:`),i=n.indexOf(`?`),a=n.indexOf(`#`),o=n.indexOf(`/`);return r<0||o>-1&&r>o||i>-1&&r>i||a>-1&&r>a||t.test(n.slice(0,r))?n:``}function ts(e){let t=[],n=-1,r=0,i=0;for(;++n<e.length;){let a=e.charCodeAt(n),o=``;if(a===37&&Wo(e.charCodeAt(n+1))&&Wo(e.charCodeAt(n+2)))i=2;else if(a<128)/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(a))||(o=String.fromCharCode(a));else if(a>55295&&a<57344){let t=e.charCodeAt(n+1);a<56320&&t>56319&&t<57344?(o=String.fromCharCode(a,t),i=1):o=`�`}else o=String.fromCharCode(a);o&&(t.push(e.slice(r,n),encodeURIComponent(o)),r=n+i+1,o=``),i&&(n+=i,i=0)}return t.join(``)+e.slice(r)}var ns={}.hasOwnProperty,rs=/^(https?|ircs?|mailto|xmpp)$/i,is=/^https?$/i;function as(e){let t=e||{},n=!0,r={},i=[[]],a=[],o=[],s=Lo([{enter:{blockQuote:ee,codeFenced:te,codeFencedFenceInfo:h,codeFencedFenceMeta:h,codeIndented:ie,codeText:je,content:ye,definition:he,definitionDestinationString:_e,definitionLabelString:h,definitionTitleString:h,emphasis:ke,htmlFlow:R,htmlText:z,image:oe,label:h,link:se,listItemMarker:E,listItemValue:T,listOrdered:C,listUnordered:w,paragraph:j,reference:h,resource:de,resourceDestinationString:fe,resourceTitleString:h,setextHeading:xe,strong:Ae},exit:{atxHeading:Ce,atxHeadingSequence:be,autolinkEmail:ze,autolinkProtocol:Re,blockQuote:A,characterEscapeValue:Te,characterReferenceMarkerHexadecimal:Ie,characterReferenceMarkerNumeric:Ie,characterReferenceValue:Le,codeFenced:ae,codeFencedFence:re,codeFencedFenceInfo:ne,codeFencedFenceMeta:S,codeFlowValue:De,codeIndented:ae,codeText:Me,codeTextData:Te,data:Te,definition:F,definitionDestinationString:ve,definitionLabelString:ge,definitionTitleString:P,emphasis:Ne,hardBreakEscape:L,hardBreakTrailing:L,htmlFlow:Oe,htmlFlowData:Te,htmlText:Oe,htmlTextData:Te,image:N,label:le,labelText:ce,lineEnding:Ee,link:N,listOrdered:D,listUnordered:O,paragraph:M,reference:S,referenceString:ue,resource:S,resourceDestinationString:pe,resourceTitleString:me,setextHeading:I,setextHeadingLineSequence:we,setextHeadingText:Se,strong:Pe,thematicBreak:Fe}},...t.htmlExtensions||[]]),c={definitions:r,tightStack:o},l={buffer:h,encode:x,getData:m,lineEndingIfNeeded:b,options:t,raw:v,resume:g,setData:p,tag:_},u=t.defaultLineEnding;return d;function d(e){let t=-1,n=0,r=[],a=[],o=[];for(;++t<e.length;)!u&&(e[t][1].type===`lineEnding`||e[t][1].type===`lineEndingBlank`)&&(u=e[t][2].sliceSerialize(e[t][1])),(e[t][1].type===`listOrdered`||e[t][1].type===`listUnordered`)&&(e[t][0]===`enter`?r.push(t):f(e.slice(r.pop(),t))),e[t][1].type===`definition`&&(e[t][0]===`enter`?(o=Mo(o,e.slice(n,t)),n=t):(a=Mo(a,e.slice(n,t+1)),n=t+1));a=Mo(a,o),a=Mo(a,e.slice(n)),t=-1;let c=a;for(s.enter.null&&s.enter.null.call(l);++t<e.length;){let e=s[c[t][0]],n=c[t][1].type,r=e[n];ns.call(e,n)&&r&&r.call({sliceSerialize:c[t][2].sliceSerialize,...l},c[t][1])}return s.exit.null&&s.exit.null.call(l),i[0].join(``)}function f(e){let t=e.length,n=0,r=0,i=!1,a;for(;++n<t;){let t=e[n];if(t[1]._container)a=void 0,t[0]===`enter`?r++:r--;else switch(t[1].type){case`listItemPrefix`:t[0]===`exit`&&(a=!0);break;case`linePrefix`:break;case`lineEndingBlank`:t[0]===`enter`&&!r&&(a?a=void 0:i=!0);break;default:a=void 0}}e[0][1]._loose=i}function p(e,t){c[e]=t}function m(e){return c[e]}function h(){i.push([])}function g(){return i.pop().join(``)}function _(e){n&&(p(`lastWasTag`,!0),i[i.length-1].push(e))}function v(e){p(`lastWasTag`),i[i.length-1].push(e)}function y(){v(u||`\n`)}function b(){let e=i[i.length-1],t=e[e.length-1],n=t?t.charCodeAt(t.length-1):null;n===10||n===13||n===null||y()}function x(e){return m(`ignoreEncode`)?e:Vo(e)}function S(){g()}function C(e){o.push(!e._loose),b(),_(`<ol`),p(`expectFirstItem`,!0)}function w(e){o.push(!e._loose),b(),_(`<ul`),p(`expectFirstItem`,!0)}function T(e){if(m(`expectFirstItem`)){let t=Number.parseInt(this.sliceSerialize(e),10);t!==1&&_(` start=\"`+x(String(t))+`\"`)}}function E(){m(`expectFirstItem`)?_(`>`):k(),b(),_(`<li>`),p(`expectFirstItem`),p(`lastWasTag`)}function D(){k(),o.pop(),y(),_(`</ol>`)}function O(){k(),o.pop(),y(),_(`</ul>`)}function k(){m(`lastWasTag`)&&!m(`slurpAllLineEndings`)&&b(),_(`</li>`),p(`slurpAllLineEndings`)}function ee(){o.push(!1),b(),_(`<blockquote>`)}function A(){o.pop(),b(),_(`</blockquote>`),p(`slurpAllLineEndings`)}function j(){o[o.length-1]||(b(),_(`<p>`)),p(`slurpAllLineEndings`)}function M(){o[o.length-1]?p(`slurpAllLineEndings`,!0):_(`</p>`)}function te(){b(),_(`<pre><code`),p(`fencesCount`,0)}function ne(){_(` class=\"language-`+g()+`\"`)}function re(){let e=m(`fencesCount`)||0;e||(_(`>`),p(`slurpOneLineEnding`,!0)),p(`fencesCount`,e+1)}function ie(){b(),_(`<pre><code>`)}function ae(){let e=m(`fencesCount`);e!==void 0&&e<2&&c.tightStack.length>0&&!m(`lastWasTag`)&&y(),m(`flowCodeSeenData`)&&b(),_(`</code></pre>`),e!==void 0&&e<2&&b(),p(`flowCodeSeenData`),p(`fencesCount`),p(`slurpOneLineEnding`)}function oe(){a.push({image:!0}),n=void 0}function se(){a.push({})}function ce(e){a[a.length-1].labelId=this.sliceSerialize(e)}function le(){a[a.length-1].label=g()}function ue(e){a[a.length-1].referenceId=this.sliceSerialize(e)}function de(){h(),a[a.length-1].destination=``}function fe(){h(),p(`ignoreEncode`,!0)}function pe(){a[a.length-1].destination=g(),p(`ignoreEncode`)}function me(){a[a.length-1].title=g()}function N(){let e=a.length-1,i=a[e],o=i.referenceId||i.labelId,s=i.destination===void 0?r[Ho(o)]:i;for(n=!0;e--;)if(a[e].image){n=void 0;break}i.image?(_(`<img src=\"`+es(s.destination,t.allowDangerousProtocol?void 0:is)+`\" alt=\"`),v(i.label),_(`\"`)):_(`<a href=\"`+es(s.destination,t.allowDangerousProtocol?void 0:rs)+`\"`),_(s.title?` title=\"`+s.title+`\"`:``),i.image?_(` />`):(_(`>`),v(i.label),_(`</a>`)),a.pop()}function he(){h(),a.push({})}function ge(e){g(),a[a.length-1].labelId=this.sliceSerialize(e)}function _e(){h(),p(`ignoreEncode`,!0)}function ve(){a[a.length-1].destination=g(),p(`ignoreEncode`)}function P(){a[a.length-1].title=g()}function F(){let e=a[a.length-1],t=Ho(e.labelId);g(),ns.call(r,t)||(r[t]=a[a.length-1]),a.pop()}function ye(){p(`slurpAllLineEndings`,!0)}function be(e){m(`headingRank`)||(p(`headingRank`,this.sliceSerialize(e).length),b(),_(`<h`+m(`headingRank`)+`>`))}function xe(){h(),p(`slurpAllLineEndings`)}function Se(){p(`slurpAllLineEndings`,!0)}function Ce(){_(`</h`+m(`headingRank`)+`>`),p(`headingRank`)}function we(e){p(`headingRank`,this.sliceSerialize(e).charCodeAt(0)===61?1:2)}function I(){let e=g();b(),_(`<h`+m(`headingRank`)+`>`),v(e),_(`</h`+m(`headingRank`)+`>`),p(`slurpAllLineEndings`),p(`headingRank`)}function Te(e){v(x(this.sliceSerialize(e)))}function Ee(e){if(!m(`slurpAllLineEndings`)){if(m(`slurpOneLineEnding`)){p(`slurpOneLineEnding`);return}if(m(`inCodeText`)){v(` `);return}v(x(this.sliceSerialize(e)))}}function De(e){v(x(this.sliceSerialize(e))),p(`flowCodeSeenData`,!0)}function L(){_(`<br />`)}function R(){b(),z()}function Oe(){p(`ignoreEncode`)}function z(){t.allowDangerousHtml&&p(`ignoreEncode`,!0)}function ke(){_(`<em>`)}function Ae(){_(`<strong>`)}function je(){p(`inCodeText`,!0),_(`<code>`)}function Me(){p(`inCodeText`),_(`</code>`)}function Ne(){_(`</em>`)}function Pe(){_(`</strong>`)}function Fe(){b(),_(`<hr />`)}function Ie(e){p(`characterReferenceType`,e.type)}function Le(e){let t=this.sliceSerialize(e);v(x(m(`characterReferenceType`)?zo(t,m(`characterReferenceType`)===`characterReferenceMarkerNumeric`?10:16):Ao(t))),p(`characterReferenceType`)}function Re(e){let n=this.sliceSerialize(e);_(`<a href=\"`+es(n,t.allowDangerousProtocol?void 0:rs)+`\">`),v(x(n)),_(`</a>`)}function ze(e){let t=this.sliceSerialize(e);_(`<a href=\"`+es(`mailto:`+t)+`\">`),v(x(t)),_(`</a>`)}}function Y(e,t,n,r){let i=r?r-1:1/0,a=0;return o;function o(r){return J(r)?(e.enter(n),s(r)):t(r)}function s(r){return J(r)&&a++<i?(e.consume(r),s):(e.exit(n),t(r))}}var os={tokenize:ss};function ss(e){let t=e.attempt(this.parser.constructs.contentInitial,r,i),n;return t;function r(n){if(n===null){e.consume(n);return}return e.enter(`lineEnding`),e.consume(n),e.exit(`lineEnding`),Y(e,t,`linePrefix`)}function i(t){return e.enter(`paragraph`),a(t)}function a(t){let r=e.enter(`chunkText`,{contentType:`text`,previous:n});return n&&(n.next=r),n=r,o(t)}function o(t){if(t===null){e.exit(`chunkText`),e.exit(`paragraph`),e.consume(t);return}return q(t)?(e.consume(t),e.exit(`chunkText`),a):(e.consume(t),o)}}var cs={tokenize:us},ls={tokenize:ds};function us(e){let t=this,n=[],r=0,i,a,o;return s;function s(i){if(r<n.length){let a=n[r];return t.containerState=a[1],e.attempt(a[0].continuation,c,l)(i)}return l(i)}function c(e){if(r++,t.containerState._closeFlow){t.containerState._closeFlow=void 0,i&&v();let n=t.events.length,a=n,o;for(;a--;)if(t.events[a][0]===`exit`&&t.events[a][1].type===`chunkFlow`){o=t.events[a][1].end;break}_(r);let s=n;for(;s<t.events.length;)t.events[s][1].end={...o},s++;return jo(t.events,a+1,0,t.events.slice(n)),t.events.length=s,l(e)}return s(e)}function l(a){if(r===n.length){if(!i)return f(a);if(i.currentConstruct&&i.currentConstruct.concrete)return m(a);t.interrupt=!!(i.currentConstruct&&!i._gfmTableDynamicInterruptHack)}return t.containerState={},e.check(ls,u,d)(a)}function u(e){return i&&v(),_(r),f(e)}function d(e){return t.parser.lazy[t.now().line]=r!==n.length,o=t.now().offset,m(e)}function f(n){return t.containerState={},e.attempt(ls,p,m)(n)}function p(e){return r++,n.push([t.currentConstruct,t.containerState]),f(e)}function m(n){if(n===null){i&&v(),_(0),e.consume(n);return}return i=i||t.parser.flow(t.now()),e.enter(`chunkFlow`,{_tokenizer:i,contentType:`flow`,previous:a}),h(n)}function h(n){if(n===null){g(e.exit(`chunkFlow`),!0),_(0),e.consume(n);return}return q(n)?(e.consume(n),g(e.exit(`chunkFlow`)),r=0,t.interrupt=void 0,s):(e.consume(n),h)}function g(e,n){let s=t.sliceStream(e);if(n&&s.push(null),e.previous=a,a&&(a.next=e),a=e,i.defineSkip(e.start),i.write(s),t.parser.lazy[e.start.line]){let e=i.events.length;for(;e--;)if(i.events[e][1].start.offset<o&&(!i.events[e][1].end||i.events[e][1].end.offset>o))return;let n=t.events.length,a=n,s,c;for(;a--;)if(t.events[a][0]===`exit`&&t.events[a][1].type===`chunkFlow`){if(s){c=t.events[a][1].end;break}s=!0}for(_(r),e=n;e<t.events.length;)t.events[e][1].end={...c},e++;jo(t.events,a+1,0,t.events.slice(n)),t.events.length=e}}function _(r){let i=n.length;for(;i-- >r;){let r=n[i];t.containerState=r[1],r[0].exit.call(t,e)}n.length=r}function v(){i.write([null]),a=void 0,i=void 0,t.containerState._closeFlow=void 0}}function ds(e,t,n){return Y(e,e.attempt(this.parser.constructs.document,t,n),`linePrefix`,this.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)}function fs(e){if(e===null||Xo(e)||Qo(e))return 1;if(Zo(e))return 2}function ps(e,t,n){let r=[],i=-1;for(;++i<e.length;){let a=e[i].resolveAll;a&&!r.includes(a)&&(t=a(t,n),r.push(a))}return t}var ms={name:`attention`,resolveAll:hs,tokenize:gs};function hs(e,t){let n=-1,r,i,a,o,s,c,l,u;for(;++n<e.length;)if(e[n][0]===`enter`&&e[n][1].type===`attentionSequence`&&e[n][1]._close){for(r=n;r--;)if(e[r][0]===`exit`&&e[r][1].type===`attentionSequence`&&e[r][1]._open&&t.sliceSerialize(e[r][1]).charCodeAt(0)===t.sliceSerialize(e[n][1]).charCodeAt(0)){if((e[r][1]._close||e[n][1]._open)&&(e[n][1].end.offset-e[n][1].start.offset)%3&&!((e[r][1].end.offset-e[r][1].start.offset+e[n][1].end.offset-e[n][1].start.offset)%3))continue;c=e[r][1].end.offset-e[r][1].start.offset>1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1;let d={...e[r][1].end},f={...e[n][1].start};_s(d,-c),_s(f,c),o={type:c>1?`strongSequence`:`emphasisSequence`,start:d,end:{...e[r][1].end}},s={type:c>1?`strongSequence`:`emphasisSequence`,start:{...e[n][1].start},end:f},a={type:c>1?`strongText`:`emphasisText`,start:{...e[r][1].end},end:{...e[n][1].start}},i={type:c>1?`strong`:`emphasis`,start:{...o.start},end:{...s.end}},e[r][1].end={...o.start},e[n][1].start={...s.end},l=[],e[r][1].end.offset-e[r][1].start.offset&&(l=Mo(l,[[`enter`,e[r][1],t],[`exit`,e[r][1],t]])),l=Mo(l,[[`enter`,i,t],[`enter`,o,t],[`exit`,o,t],[`enter`,a,t]]),l=Mo(l,ps(t.parser.constructs.insideSpan.null,e.slice(r+1,n),t)),l=Mo(l,[[`exit`,a,t],[`enter`,s,t],[`exit`,s,t],[`exit`,i,t]]),e[n][1].end.offset-e[n][1].start.offset?(u=2,l=Mo(l,[[`enter`,e[n][1],t],[`exit`,e[n][1],t]])):u=0,jo(e,r-1,n-r+3,l),n=r+l.length-u-2;break}}for(n=-1;++n<e.length;)e[n][1].type===`attentionSequence`&&(e[n][1].type=`data`);return e}function gs(e,t){let n=this.parser.constructs.attentionMarkers.null,r=this.previous,i=fs(r),a;return o;function o(t){return a=t,e.enter(`attentionSequence`),s(t)}function s(o){if(o===a)return e.consume(o),s;let c=e.exit(`attentionSequence`),l=fs(o),u=!l||l===2&&i||n.includes(o),d=!i||i===2&&l||n.includes(r);return c._open=!!(a===42?u:u&&(i||!d)),c._close=!!(a===42?d:d&&(l||!u)),t(o)}}function _s(e,t){e.column+=t,e.offset+=t,e._bufferIndex+=t}var vs={name:`autolink`,tokenize:ys};function ys(e,t,n){let r=0;return i;function i(t){return e.enter(`autolink`),e.enter(`autolinkMarker`),e.consume(t),e.exit(`autolinkMarker`),e.enter(`autolinkProtocol`),a}function a(t){return Uo(t)?(e.consume(t),o):t===64?n(t):l(t)}function o(e){return e===43||e===45||e===46||Wo(e)?(r=1,s(e)):l(e)}function s(t){return t===58?(e.consume(t),r=0,c):(t===43||t===45||t===46||Wo(t))&&r++<32?(e.consume(t),s):(r=0,l(t))}function c(r){return r===62?(e.exit(`autolinkProtocol`),e.enter(`autolinkMarker`),e.consume(r),e.exit(`autolinkMarker`),e.exit(`autolink`),t):r===null||r===32||r===60||Ko(r)?n(r):(e.consume(r),c)}function l(t){return t===64?(e.consume(t),u):Go(t)?(e.consume(t),l):n(t)}function u(e){return Wo(e)?d(e):n(e)}function d(n){return n===46?(e.consume(n),r=0,u):n===62?(e.exit(`autolinkProtocol`).type=`autolinkEmail`,e.enter(`autolinkMarker`),e.consume(n),e.exit(`autolinkMarker`),e.exit(`autolink`),t):f(n)}function f(t){if((t===45||Wo(t))&&r++<63){let n=t===45?f:d;return e.consume(t),n}return n(t)}}var bs={partial:!0,tokenize:xs};function xs(e,t,n){return r;function r(t){return J(t)?Y(e,i,`linePrefix`)(t):i(t)}function i(e){return e===null||q(e)?t(e):n(e)}}var Ss={continuation:{tokenize:ws},exit:Ts,name:`blockQuote`,tokenize:Cs};function Cs(e,t,n){let r=this;return i;function i(t){if(t===62){let n=r.containerState;return n.open||(e.enter(`blockQuote`,{_container:!0}),n.open=!0),e.enter(`blockQuotePrefix`),e.enter(`blockQuoteMarker`),e.consume(t),e.exit(`blockQuoteMarker`),a}return n(t)}function a(n){return J(n)?(e.enter(`blockQuotePrefixWhitespace`),e.consume(n),e.exit(`blockQuotePrefixWhitespace`),e.exit(`blockQuotePrefix`),t):(e.exit(`blockQuotePrefix`),t(n))}}function ws(e,t,n){let r=this;return i;function i(t){return J(t)?Y(e,a,`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(t):a(t)}function a(r){return e.attempt(Ss,t,n)(r)}}function Ts(e){e.exit(`blockQuote`)}var Es={name:`characterEscape`,tokenize:Ds};function Ds(e,t,n){return r;function r(t){return e.enter(`characterEscape`),e.enter(`escapeMarker`),e.consume(t),e.exit(`escapeMarker`),i}function i(r){return Yo(r)?(e.enter(`characterEscapeValue`),e.consume(r),e.exit(`characterEscapeValue`),e.exit(`characterEscape`),t):n(r)}}var Os={name:`characterReference`,tokenize:ks};function ks(e,t,n){let r=this,i=0,a,o;return s;function s(t){return e.enter(`characterReference`),e.enter(`characterReferenceMarker`),e.consume(t),e.exit(`characterReferenceMarker`),c}function c(t){return t===35?(e.enter(`characterReferenceMarkerNumeric`),e.consume(t),e.exit(`characterReferenceMarkerNumeric`),l):(e.enter(`characterReferenceValue`),a=31,o=Wo,u(t))}function l(t){return t===88||t===120?(e.enter(`characterReferenceMarkerHexadecimal`),e.consume(t),e.exit(`characterReferenceMarkerHexadecimal`),e.enter(`characterReferenceValue`),a=6,o=Jo,u):(e.enter(`characterReferenceValue`),a=7,o=qo,u(t))}function u(s){if(s===59&&i){let i=e.exit(`characterReferenceValue`);return o===Wo&&!Ao(r.sliceSerialize(i))?n(s):(e.enter(`characterReferenceMarker`),e.consume(s),e.exit(`characterReferenceMarker`),e.exit(`characterReference`),t)}return o(s)&&i++<a?(e.consume(s),u):n(s)}}var As={partial:!0,tokenize:Ns},js={concrete:!0,name:`codeFenced`,tokenize:Ms};function Ms(e,t,n){let r=this,i={partial:!0,tokenize:x},a=0,o=0,s;return c;function c(e){return l(e)}function l(t){let n=r.events[r.events.length-1];return a=n&&n[1].type===`linePrefix`?n[2].sliceSerialize(n[1],!0).length:0,s=t,e.enter(`codeFenced`),e.enter(`codeFencedFence`),e.enter(`codeFencedFenceSequence`),u(t)}function u(t){return t===s?(o++,e.consume(t),u):o<3?n(t):(e.exit(`codeFencedFenceSequence`),J(t)?Y(e,d,`whitespace`)(t):d(t))}function d(n){return n===null||q(n)?(e.exit(`codeFencedFence`),r.interrupt?t(n):e.check(As,h,b)(n)):(e.enter(`codeFencedFenceInfo`),e.enter(`chunkString`,{contentType:`string`}),f(n))}function f(t){return t===null||q(t)?(e.exit(`chunkString`),e.exit(`codeFencedFenceInfo`),d(t)):J(t)?(e.exit(`chunkString`),e.exit(`codeFencedFenceInfo`),Y(e,p,`whitespace`)(t)):t===96&&t===s?n(t):(e.consume(t),f)}function p(t){return t===null||q(t)?d(t):(e.enter(`codeFencedFenceMeta`),e.enter(`chunkString`,{contentType:`string`}),m(t))}function m(t){return t===null||q(t)?(e.exit(`chunkString`),e.exit(`codeFencedFenceMeta`),d(t)):t===96&&t===s?n(t):(e.consume(t),m)}function h(t){return e.attempt(i,b,g)(t)}function g(t){return e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),_}function _(t){return a>0&&J(t)?Y(e,v,`linePrefix`,a+1)(t):v(t)}function v(t){return t===null||q(t)?e.check(As,h,b)(t):(e.enter(`codeFlowValue`),y(t))}function y(t){return t===null||q(t)?(e.exit(`codeFlowValue`),v(t)):(e.consume(t),y)}function b(n){return e.exit(`codeFenced`),t(n)}function x(e,t,n){let i=0;return a;function a(t){return e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),c}function c(t){return e.enter(`codeFencedFence`),J(t)?Y(e,l,`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(t):l(t)}function l(t){return t===s?(e.enter(`codeFencedFenceSequence`),u(t)):n(t)}function u(t){return t===s?(i++,e.consume(t),u):i>=o?(e.exit(`codeFencedFenceSequence`),J(t)?Y(e,d,`whitespace`)(t):d(t)):n(t)}function d(r){return r===null||q(r)?(e.exit(`codeFencedFence`),t(r)):n(r)}}}function Ns(e,t,n){let r=this;return i;function i(t){return t===null?n(t):(e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),a)}function a(e){return r.parser.lazy[r.now().line]?n(e):t(e)}}var Ps={name:`codeIndented`,tokenize:Is},Fs={partial:!0,tokenize:Ls};function Is(e,t,n){let r=this;return i;function i(t){return e.enter(`codeIndented`),Y(e,a,`linePrefix`,5)(t)}function a(e){let t=r.events[r.events.length-1];return t&&t[1].type===`linePrefix`&&t[2].sliceSerialize(t[1],!0).length>=4?o(e):n(e)}function o(t){return t===null?c(t):q(t)?e.attempt(Fs,o,c)(t):(e.enter(`codeFlowValue`),s(t))}function s(t){return t===null||q(t)?(e.exit(`codeFlowValue`),o(t)):(e.consume(t),s)}function c(n){return e.exit(`codeIndented`),t(n)}}function Ls(e,t,n){let r=this;return i;function i(t){return r.parser.lazy[r.now().line]?n(t):q(t)?(e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),i):Y(e,a,`linePrefix`,5)(t)}function a(e){let a=r.events[r.events.length-1];return a&&a[1].type===`linePrefix`&&a[2].sliceSerialize(a[1],!0).length>=4?t(e):q(e)?i(e):n(e)}}var Rs={name:`codeText`,previous:Bs,resolve:zs,tokenize:Vs};function zs(e){let t=e.length-4,n=3,r,i;if((e[n][1].type===`lineEnding`||e[n][1].type===`space`)&&(e[t][1].type===`lineEnding`||e[t][1].type===`space`)){for(r=n;++r<t;)if(e[r][1].type===`codeTextData`){e[n][1].type=`codeTextPadding`,e[t][1].type=`codeTextPadding`,n+=2,t-=2;break}}for(r=n-1,t++;++r<=t;)i===void 0?r!==t&&e[r][1].type!==`lineEnding`&&(i=r):(r===t||e[r][1].type===`lineEnding`)&&(e[i][1].type=`codeTextData`,r!==i+2&&(e[i][1].end=e[r-1][1].end,e.splice(i+2,r-i-2),t-=r-i-2,r=i+2),i=void 0);return e}function Bs(e){return e!==96||this.events[this.events.length-1][1].type===`characterEscape`}function Vs(e,t,n){let r=0,i,a;return o;function o(t){return e.enter(`codeText`),e.enter(`codeTextSequence`),s(t)}function s(t){return t===96?(e.consume(t),r++,s):(e.exit(`codeTextSequence`),c(t))}function c(t){return t===null?n(t):t===32?(e.enter(`space`),e.consume(t),e.exit(`space`),c):t===96?(a=e.enter(`codeTextSequence`),i=0,u(t)):q(t)?(e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),c):(e.enter(`codeTextData`),l(t))}function l(t){return t===null||t===32||t===96||q(t)?(e.exit(`codeTextData`),c(t)):(e.consume(t),l)}function u(n){return n===96?(e.consume(n),i++,u):i===r?(e.exit(`codeTextSequence`),e.exit(`codeText`),t(n)):(a.type=`codeTextData`,l(n))}}var Hs=class{constructor(e){this.left=e?[...e]:[],this.right=[]}get(e){if(e<0||e>=this.left.length+this.right.length)throw RangeError(\"Cannot access index `\"+e+\"` in a splice buffer of size `\"+(this.left.length+this.right.length)+\"`\");return e<this.left.length?this.left[e]:this.right[this.right.length-e+this.left.length-1]}get length(){return this.left.length+this.right.length}shift(){return this.setCursor(0),this.right.pop()}slice(e,t){let n=t??1/0;return n<this.left.length?this.left.slice(e,n):e>this.left.length?this.right.slice(this.right.length-n+this.left.length,this.right.length-e+this.left.length).reverse():this.left.slice(e).concat(this.right.slice(this.right.length-n+this.left.length).reverse())}splice(e,t,n){let r=t||0;this.setCursor(Math.trunc(e));let i=this.right.splice(this.right.length-r,1/0);return n&&Us(this.left,n),i.reverse()}pop(){return this.setCursor(1/0),this.left.pop()}push(e){this.setCursor(1/0),this.left.push(e)}pushMany(e){this.setCursor(1/0),Us(this.left,e)}unshift(e){this.setCursor(0),this.right.push(e)}unshiftMany(e){this.setCursor(0),Us(this.right,e.reverse())}setCursor(e){if(!(e===this.left.length||e>this.left.length&&this.right.length===0||e<0&&this.left.length===0))if(e<this.left.length){let t=this.left.splice(e,1/0);Us(this.right,t.reverse())}else{let t=this.right.splice(this.left.length+this.right.length-e,1/0);Us(this.left,t.reverse())}}};function Us(e,t){let n=0;if(t.length<1e4)e.push(...t);else for(;n<t.length;)e.push(...t.slice(n,n+1e4)),n+=1e4}function Ws(e){let t={},n=-1,r,i,a,o,s,c,l,u=new Hs(e);for(;++n<u.length;){for(;n in t;)n=t[n];if(r=u.get(n),n&&r[1].type===`chunkFlow`&&u.get(n-1)[1].type===`listItemPrefix`&&(c=r[1]._tokenizer.events,a=0,a<c.length&&c[a][1].type===`lineEndingBlank`&&(a+=2),a<c.length&&c[a][1].type===`content`))for(;++a<c.length&&c[a][1].type!==`content`;)c[a][1].type===`chunkText`&&(c[a][1]._isInFirstContentOfListItem=!0,a++);if(r[0]===`enter`)r[1].contentType&&(Object.assign(t,Gs(u,n)),n=t[n],l=!0);else if(r[1]._container){for(a=n,i=void 0;a--;)if(o=u.get(a),o[1].type===`lineEnding`||o[1].type===`lineEndingBlank`)o[0]===`enter`&&(i&&(u.get(i)[1].type=`lineEndingBlank`),o[1].type=`lineEnding`,i=a);else if(!(o[1].type===`linePrefix`||o[1].type===`listItemIndent`))break;i&&(r[1].end={...u.get(i)[1].start},s=u.slice(i,n),s.unshift(r),u.splice(i,n-i+1,s))}}return jo(e,0,1/0,u.slice(0)),!l}function Gs(e,t){let n=e.get(t)[1],r=e.get(t)[2],i=t-1,a=[],o=n._tokenizer;o||(o=r.parser[n.contentType](n.start),n._contentTypeTextTrailing&&(o._contentTypeTextTrailing=!0));let s=o.events,c=[],l={},u,d,f=-1,p=n,m=0,h=0,g=[h];for(;p;){for(;e.get(++i)[1]!==p;);a.push(i),p._tokenizer||(u=r.sliceStream(p),p.next||u.push(null),d&&o.defineSkip(p.start),p._isInFirstContentOfListItem&&(o._gfmTasklistFirstContentOfListItem=!0),o.write(u),p._isInFirstContentOfListItem&&(o._gfmTasklistFirstContentOfListItem=void 0)),d=p,p=p.next}for(p=n;++f<s.length;)s[f][0]===`exit`&&s[f-1][0]===`enter`&&s[f][1].type===s[f-1][1].type&&s[f][1].start.line!==s[f][1].end.line&&(h=f+1,g.push(h),p._tokenizer=void 0,p.previous=void 0,p=p.next);for(o.events=[],p?(p._tokenizer=void 0,p.previous=void 0):g.pop(),f=g.length;f--;){let t=s.slice(g[f],g[f+1]),n=a.pop();c.push([n,n+t.length-1]),e.splice(n,2,t)}for(c.reverse(),f=-1;++f<c.length;)l[m+c[f][0]]=m+c[f][1],m+=c[f][1]-c[f][0]-1;return l}var Ks={resolve:Js,tokenize:Ys},qs={partial:!0,tokenize:Xs};function Js(e){return Ws(e),e}function Ys(e,t){let n;return r;function r(t){return e.enter(`content`),n=e.enter(`chunkContent`,{contentType:`content`}),i(t)}function i(t){return t===null?a(t):q(t)?e.check(qs,o,a)(t):(e.consume(t),i)}function a(n){return e.exit(`chunkContent`),e.exit(`content`),t(n)}function o(t){return e.consume(t),e.exit(`chunkContent`),n.next=e.enter(`chunkContent`,{contentType:`content`,previous:n}),n=n.next,i}}function Xs(e,t,n){let r=this;return i;function i(t){return e.exit(`chunkContent`),e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),Y(e,a,`linePrefix`)}function a(i){if(i===null||q(i))return n(i);let a=r.events[r.events.length-1];return!r.parser.constructs.disable.null.includes(`codeIndented`)&&a&&a[1].type===`linePrefix`&&a[2].sliceSerialize(a[1],!0).length>=4?t(i):e.interrupt(r.parser.constructs.flow,n,t)(i)}}function Zs(e,t,n,r,i,a,o,s,c){let l=c||1/0,u=0;return d;function d(t){return t===60?(e.enter(r),e.enter(i),e.enter(a),e.consume(t),e.exit(a),f):t===null||t===32||t===41||Ko(t)?n(t):(e.enter(r),e.enter(o),e.enter(s),e.enter(`chunkString`,{contentType:`string`}),h(t))}function f(n){return n===62?(e.enter(a),e.consume(n),e.exit(a),e.exit(i),e.exit(r),t):(e.enter(s),e.enter(`chunkString`,{contentType:`string`}),p(n))}function p(t){return t===62?(e.exit(`chunkString`),e.exit(s),f(t)):t===null||t===60||q(t)?n(t):(e.consume(t),t===92?m:p)}function m(t){return t===60||t===62||t===92?(e.consume(t),p):p(t)}function h(i){return!u&&(i===null||i===41||Xo(i))?(e.exit(`chunkString`),e.exit(s),e.exit(o),e.exit(r),t(i)):u<l&&i===40?(e.consume(i),u++,h):i===41?(e.consume(i),u--,h):i===null||i===32||i===40||Ko(i)?n(i):(e.consume(i),i===92?g:h)}function g(t){return t===40||t===41||t===92?(e.consume(t),h):h(t)}}function Qs(e,t,n,r,i,a){let o=this,s=0,c;return l;function l(t){return e.enter(r),e.enter(i),e.consume(t),e.exit(i),e.enter(a),u}function u(l){return s>999||l===null||l===91||l===93&&!c||l===94&&!s&&`_hiddenFootnoteSupport`in o.parser.constructs?n(l):l===93?(e.exit(a),e.enter(i),e.consume(l),e.exit(i),e.exit(r),t):q(l)?(e.enter(`lineEnding`),e.consume(l),e.exit(`lineEnding`),u):(e.enter(`chunkString`,{contentType:`string`}),d(l))}function d(t){return t===null||t===91||t===93||q(t)||s++>999?(e.exit(`chunkString`),u(t)):(e.consume(t),c||(c=!J(t)),t===92?f:d)}function f(t){return t===91||t===92||t===93?(e.consume(t),s++,d):d(t)}}function $s(e,t,n,r,i,a){let o;return s;function s(t){return t===34||t===39||t===40?(e.enter(r),e.enter(i),e.consume(t),e.exit(i),o=t===40?41:t,c):n(t)}function c(n){return n===o?(e.enter(i),e.consume(n),e.exit(i),e.exit(r),t):(e.enter(a),l(n))}function l(t){return t===o?(e.exit(a),c(o)):t===null?n(t):q(t)?(e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),Y(e,l,`linePrefix`)):(e.enter(`chunkString`,{contentType:`string`}),u(t))}function u(t){return t===o||t===null||q(t)?(e.exit(`chunkString`),l(t)):(e.consume(t),t===92?d:u)}function d(t){return t===o||t===92?(e.consume(t),u):u(t)}}function ec(e,t){let n;return r;function r(i){return q(i)?(e.enter(`lineEnding`),e.consume(i),e.exit(`lineEnding`),n=!0,r):J(i)?Y(e,r,n?`linePrefix`:`lineSuffix`)(i):t(i)}}var tc={name:`definition`,tokenize:rc},nc={partial:!0,tokenize:ic};function rc(e,t,n){let r=this,i;return a;function a(t){return e.enter(`definition`),o(t)}function o(t){return Qs.call(r,e,s,n,`definitionLabel`,`definitionLabelMarker`,`definitionLabelString`)(t)}function s(t){return i=Ho(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),t===58?(e.enter(`definitionMarker`),e.consume(t),e.exit(`definitionMarker`),c):n(t)}function c(t){return Xo(t)?ec(e,l)(t):l(t)}function l(t){return Zs(e,u,n,`definitionDestination`,`definitionDestinationLiteral`,`definitionDestinationLiteralMarker`,`definitionDestinationRaw`,`definitionDestinationString`)(t)}function u(t){return e.attempt(nc,d,d)(t)}function d(t){return J(t)?Y(e,f,`whitespace`)(t):f(t)}function f(a){return a===null||q(a)?(e.exit(`definition`),r.parser.defined.push(i),t(a)):n(a)}}function ic(e,t,n){return r;function r(t){return Xo(t)?ec(e,i)(t):n(t)}function i(t){return $s(e,a,n,`definitionTitle`,`definitionTitleMarker`,`definitionTitleString`)(t)}function a(t){return J(t)?Y(e,o,`whitespace`)(t):o(t)}function o(e){return e===null||q(e)?t(e):n(e)}}var ac={name:`hardBreakEscape`,tokenize:oc};function oc(e,t,n){return r;function r(t){return e.enter(`hardBreakEscape`),e.consume(t),i}function i(r){return q(r)?(e.exit(`hardBreakEscape`),t(r)):n(r)}}var sc={name:`headingAtx`,resolve:cc,tokenize:lc};function cc(e,t){let n=e.length-2,r=3,i,a;return e[r][1].type===`whitespace`&&(r+=2),n-2>r&&e[n][1].type===`whitespace`&&(n-=2),e[n][1].type===`atxHeadingSequence`&&(r===n-1||n-4>r&&e[n-2][1].type===`whitespace`)&&(n-=r+1===n?2:4),n>r&&(i={type:`atxHeadingText`,start:e[r][1].start,end:e[n][1].end},a={type:`chunkText`,start:e[r][1].start,end:e[n][1].end,contentType:`text`},jo(e,r,n-r+1,[[`enter`,i,t],[`enter`,a,t],[`exit`,a,t],[`exit`,i,t]])),e}function lc(e,t,n){let r=0;return i;function i(t){return e.enter(`atxHeading`),a(t)}function a(t){return e.enter(`atxHeadingSequence`),o(t)}function o(t){return t===35&&r++<6?(e.consume(t),o):t===null||Xo(t)?(e.exit(`atxHeadingSequence`),s(t)):n(t)}function s(n){return n===35?(e.enter(`atxHeadingSequence`),c(n)):n===null||q(n)?(e.exit(`atxHeading`),t(n)):J(n)?Y(e,s,`whitespace`)(n):(e.enter(`atxHeadingText`),l(n))}function c(t){return t===35?(e.consume(t),c):(e.exit(`atxHeadingSequence`),s(t))}function l(t){return t===null||t===35||Xo(t)?(e.exit(`atxHeadingText`),s(t)):(e.consume(t),l)}}var uc=`address.article.aside.base.basefont.blockquote.body.caption.center.col.colgroup.dd.details.dialog.dir.div.dl.dt.fieldset.figcaption.figure.footer.form.frame.frameset.h1.h2.h3.h4.h5.h6.head.header.hr.html.iframe.legend.li.link.main.menu.menuitem.nav.noframes.ol.optgroup.option.p.param.search.section.summary.table.tbody.td.tfoot.th.thead.title.tr.track.ul`.split(`.`),dc=[`pre`,`script`,`style`,`textarea`],fc={concrete:!0,name:`htmlFlow`,resolveTo:hc,tokenize:gc},pc={partial:!0,tokenize:vc},mc={partial:!0,tokenize:_c};function hc(e){let t=e.length;for(;t--&&!(e[t][0]===`enter`&&e[t][1].type===`htmlFlow`););return t>1&&e[t-2][1].type===`linePrefix`&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e}function gc(e,t,n){let r=this,i,a,o,s,c;return l;function l(e){return u(e)}function u(t){return e.enter(`htmlFlow`),e.enter(`htmlFlowData`),e.consume(t),d}function d(s){return s===33?(e.consume(s),f):s===47?(e.consume(s),a=!0,h):s===63?(e.consume(s),i=3,r.interrupt?t:re):Uo(s)?(e.consume(s),o=String.fromCharCode(s),g):n(s)}function f(a){return a===45?(e.consume(a),i=2,p):a===91?(e.consume(a),i=5,s=0,m):Uo(a)?(e.consume(a),i=4,r.interrupt?t:re):n(a)}function p(i){return i===45?(e.consume(i),r.interrupt?t:re):n(i)}function m(i){return i===`CDATA[`.charCodeAt(s++)?(e.consume(i),s===6?r.interrupt?t:O:m):n(i)}function h(t){return Uo(t)?(e.consume(t),o=String.fromCharCode(t),g):n(t)}function g(s){if(s===null||s===47||s===62||Xo(s)){let c=s===47,l=o.toLowerCase();return!c&&!a&&dc.includes(l)?(i=1,r.interrupt?t(s):O(s)):uc.includes(o.toLowerCase())?(i=6,c?(e.consume(s),_):r.interrupt?t(s):O(s)):(i=7,r.interrupt&&!r.parser.lazy[r.now().line]?n(s):a?v(s):y(s))}return s===45||Wo(s)?(e.consume(s),o+=String.fromCharCode(s),g):n(s)}function _(i){return i===62?(e.consume(i),r.interrupt?t:O):n(i)}function v(t){return J(t)?(e.consume(t),v):E(t)}function y(t){return t===47?(e.consume(t),E):t===58||t===95||Uo(t)?(e.consume(t),b):J(t)?(e.consume(t),y):E(t)}function b(t){return t===45||t===46||t===58||t===95||Wo(t)?(e.consume(t),b):x(t)}function x(t){return t===61?(e.consume(t),S):J(t)?(e.consume(t),x):y(t)}function S(t){return t===null||t===60||t===61||t===62||t===96?n(t):t===34||t===39?(e.consume(t),c=t,C):J(t)?(e.consume(t),S):w(t)}function C(t){return t===c?(e.consume(t),c=null,T):t===null||q(t)?n(t):(e.consume(t),C)}function w(t){return t===null||t===34||t===39||t===47||t===60||t===61||t===62||t===96||Xo(t)?x(t):(e.consume(t),w)}function T(e){return e===47||e===62||J(e)?y(e):n(e)}function E(t){return t===62?(e.consume(t),D):n(t)}function D(t){return t===null||q(t)?O(t):J(t)?(e.consume(t),D):n(t)}function O(t){return t===45&&i===2?(e.consume(t),j):t===60&&i===1?(e.consume(t),M):t===62&&i===4?(e.consume(t),ie):t===63&&i===3?(e.consume(t),re):t===93&&i===5?(e.consume(t),ne):q(t)&&(i===6||i===7)?(e.exit(`htmlFlowData`),e.check(pc,ae,k)(t)):t===null||q(t)?(e.exit(`htmlFlowData`),k(t)):(e.consume(t),O)}function k(t){return e.check(mc,ee,ae)(t)}function ee(t){return e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),A}function A(t){return t===null||q(t)?k(t):(e.enter(`htmlFlowData`),O(t))}function j(t){return t===45?(e.consume(t),re):O(t)}function M(t){return t===47?(e.consume(t),o=``,te):O(t)}function te(t){if(t===62){let n=o.toLowerCase();return dc.includes(n)?(e.consume(t),ie):O(t)}return Uo(t)&&o.length<8?(e.consume(t),o+=String.fromCharCode(t),te):O(t)}function ne(t){return t===93?(e.consume(t),re):O(t)}function re(t){return t===62?(e.consume(t),ie):t===45&&i===2?(e.consume(t),re):O(t)}function ie(t){return t===null||q(t)?(e.exit(`htmlFlowData`),ae(t)):(e.consume(t),ie)}function ae(n){return e.exit(`htmlFlow`),t(n)}}function _c(e,t,n){let r=this;return i;function i(t){return q(t)?(e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),a):n(t)}function a(e){return r.parser.lazy[r.now().line]?n(e):t(e)}}function vc(e,t,n){return r;function r(r){return e.enter(`lineEnding`),e.consume(r),e.exit(`lineEnding`),e.attempt(bs,t,n)}}var yc={name:`htmlText`,tokenize:bc};function bc(e,t,n){let r=this,i,a,o;return s;function s(t){return e.enter(`htmlText`),e.enter(`htmlTextData`),e.consume(t),c}function c(t){return t===33?(e.consume(t),l):t===47?(e.consume(t),x):t===63?(e.consume(t),y):Uo(t)?(e.consume(t),w):n(t)}function l(t){return t===45?(e.consume(t),u):t===91?(e.consume(t),a=0,m):Uo(t)?(e.consume(t),v):n(t)}function u(t){return t===45?(e.consume(t),p):n(t)}function d(t){return t===null?n(t):t===45?(e.consume(t),f):q(t)?(o=d,M(t)):(e.consume(t),d)}function f(t){return t===45?(e.consume(t),p):d(t)}function p(e){return e===62?j(e):e===45?f(e):d(e)}function m(t){return t===`CDATA[`.charCodeAt(a++)?(e.consume(t),a===6?h:m):n(t)}function h(t){return t===null?n(t):t===93?(e.consume(t),g):q(t)?(o=h,M(t)):(e.consume(t),h)}function g(t){return t===93?(e.consume(t),_):h(t)}function _(t){return t===62?j(t):t===93?(e.consume(t),_):h(t)}function v(t){return t===null||t===62?j(t):q(t)?(o=v,M(t)):(e.consume(t),v)}function y(t){return t===null?n(t):t===63?(e.consume(t),b):q(t)?(o=y,M(t)):(e.consume(t),y)}function b(e){return e===62?j(e):y(e)}function x(t){return Uo(t)?(e.consume(t),S):n(t)}function S(t){return t===45||Wo(t)?(e.consume(t),S):C(t)}function C(t){return q(t)?(o=C,M(t)):J(t)?(e.consume(t),C):j(t)}function w(t){return t===45||Wo(t)?(e.consume(t),w):t===47||t===62||Xo(t)?T(t):n(t)}function T(t){return t===47?(e.consume(t),j):t===58||t===95||Uo(t)?(e.consume(t),E):q(t)?(o=T,M(t)):J(t)?(e.consume(t),T):j(t)}function E(t){return t===45||t===46||t===58||t===95||Wo(t)?(e.consume(t),E):D(t)}function D(t){return t===61?(e.consume(t),O):q(t)?(o=D,M(t)):J(t)?(e.consume(t),D):T(t)}function O(t){return t===null||t===60||t===61||t===62||t===96?n(t):t===34||t===39?(e.consume(t),i=t,k):q(t)?(o=O,M(t)):J(t)?(e.consume(t),O):(e.consume(t),ee)}function k(t){return t===i?(e.consume(t),i=void 0,A):t===null?n(t):q(t)?(o=k,M(t)):(e.consume(t),k)}function ee(t){return t===null||t===34||t===39||t===60||t===61||t===96?n(t):t===47||t===62||Xo(t)?T(t):(e.consume(t),ee)}function A(e){return e===47||e===62||Xo(e)?T(e):n(e)}function j(r){return r===62?(e.consume(r),e.exit(`htmlTextData`),e.exit(`htmlText`),t):n(r)}function M(t){return e.exit(`htmlTextData`),e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),te}function te(t){return J(t)?Y(e,ne,`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(t):ne(t)}function ne(t){return e.enter(`htmlTextData`),o(t)}}var xc={name:`labelEnd`,resolveAll:Tc,resolveTo:Ec,tokenize:Dc},Sc={tokenize:Oc},Cc={tokenize:kc},wc={tokenize:Ac};function Tc(e){let t=-1,n=[];for(;++t<e.length;){let r=e[t][1];if(n.push(e[t]),r.type===`labelImage`||r.type===`labelLink`||r.type===`labelEnd`){let e=r.type===`labelImage`?4:2;r.type=`data`,t+=e}}return e.length!==n.length&&jo(e,0,e.length,n),e}function Ec(e,t){let n=e.length,r=0,i,a,o,s;for(;n--;)if(i=e[n][1],a){if(i.type===`link`||i.type===`labelLink`&&i._inactive)break;e[n][0]===`enter`&&i.type===`labelLink`&&(i._inactive=!0)}else if(o){if(e[n][0]===`enter`&&(i.type===`labelImage`||i.type===`labelLink`)&&!i._balanced&&(a=n,i.type!==`labelLink`)){r=2;break}}else i.type===`labelEnd`&&(o=n);let c={type:e[a][1].type===`labelLink`?`link`:`image`,start:{...e[a][1].start},end:{...e[e.length-1][1].end}},l={type:`label`,start:{...e[a][1].start},end:{...e[o][1].end}},u={type:`labelText`,start:{...e[a+r+2][1].end},end:{...e[o-2][1].start}};return s=[[`enter`,c,t],[`enter`,l,t]],s=Mo(s,e.slice(a+1,a+r+3)),s=Mo(s,[[`enter`,u,t]]),s=Mo(s,ps(t.parser.constructs.insideSpan.null,e.slice(a+r+4,o-3),t)),s=Mo(s,[[`exit`,u,t],e[o-2],e[o-1],[`exit`,l,t]]),s=Mo(s,e.slice(o+1)),s=Mo(s,[[`exit`,c,t]]),jo(e,a,e.length,s),e}function Dc(e,t,n){let r=this,i=r.events.length,a,o;for(;i--;)if((r.events[i][1].type===`labelImage`||r.events[i][1].type===`labelLink`)&&!r.events[i][1]._balanced){a=r.events[i][1];break}return s;function s(t){return a?a._inactive?d(t):(o=r.parser.defined.includes(Ho(r.sliceSerialize({start:a.end,end:r.now()}))),e.enter(`labelEnd`),e.enter(`labelMarker`),e.consume(t),e.exit(`labelMarker`),e.exit(`labelEnd`),c):n(t)}function c(t){return t===40?e.attempt(Sc,u,o?u:d)(t):t===91?e.attempt(Cc,u,o?l:d)(t):o?u(t):d(t)}function l(t){return e.attempt(wc,u,d)(t)}function u(e){return t(e)}function d(e){return a._balanced=!0,n(e)}}function Oc(e,t,n){return r;function r(t){return e.enter(`resource`),e.enter(`resourceMarker`),e.consume(t),e.exit(`resourceMarker`),i}function i(t){return Xo(t)?ec(e,a)(t):a(t)}function a(t){return t===41?u(t):Zs(e,o,s,`resourceDestination`,`resourceDestinationLiteral`,`resourceDestinationLiteralMarker`,`resourceDestinationRaw`,`resourceDestinationString`,32)(t)}function o(t){return Xo(t)?ec(e,c)(t):u(t)}function s(e){return n(e)}function c(t){return t===34||t===39||t===40?$s(e,l,n,`resourceTitle`,`resourceTitleMarker`,`resourceTitleString`)(t):u(t)}function l(t){return Xo(t)?ec(e,u)(t):u(t)}function u(r){return r===41?(e.enter(`resourceMarker`),e.consume(r),e.exit(`resourceMarker`),e.exit(`resource`),t):n(r)}}function kc(e,t,n){let r=this;return i;function i(t){return Qs.call(r,e,a,o,`reference`,`referenceMarker`,`referenceString`)(t)}function a(e){return r.parser.defined.includes(Ho(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)))?t(e):n(e)}function o(e){return n(e)}}function Ac(e,t,n){return r;function r(t){return e.enter(`reference`),e.enter(`referenceMarker`),e.consume(t),e.exit(`referenceMarker`),i}function i(r){return r===93?(e.enter(`referenceMarker`),e.consume(r),e.exit(`referenceMarker`),e.exit(`reference`),t):n(r)}}var jc={name:`labelStartImage`,resolveAll:xc.resolveAll,tokenize:Mc};function Mc(e,t,n){let r=this;return i;function i(t){return e.enter(`labelImage`),e.enter(`labelImageMarker`),e.consume(t),e.exit(`labelImageMarker`),a}function a(t){return t===91?(e.enter(`labelMarker`),e.consume(t),e.exit(`labelMarker`),e.exit(`labelImage`),o):n(t)}function o(e){return e===94&&`_hiddenFootnoteSupport`in r.parser.constructs?n(e):t(e)}}var Nc={name:`labelStartLink`,resolveAll:xc.resolveAll,tokenize:Pc};function Pc(e,t,n){let r=this;return i;function i(t){return e.enter(`labelLink`),e.enter(`labelMarker`),e.consume(t),e.exit(`labelMarker`),e.exit(`labelLink`),a}function a(e){return e===94&&`_hiddenFootnoteSupport`in r.parser.constructs?n(e):t(e)}}var Fc={name:`lineEnding`,tokenize:Ic};function Ic(e,t){return n;function n(n){return e.enter(`lineEnding`),e.consume(n),e.exit(`lineEnding`),Y(e,t,`linePrefix`)}}var Lc={name:`thematicBreak`,tokenize:Rc};function Rc(e,t,n){let r=0,i;return a;function a(t){return e.enter(`thematicBreak`),o(t)}function o(e){return i=e,s(e)}function s(a){return a===i?(e.enter(`thematicBreakSequence`),c(a)):r>=3&&(a===null||q(a))?(e.exit(`thematicBreak`),t(a)):n(a)}function c(t){return t===i?(e.consume(t),r++,c):(e.exit(`thematicBreakSequence`),J(t)?Y(e,s,`whitespace`)(t):s(t))}}var zc={continuation:{tokenize:Uc},exit:Gc,name:`list`,tokenize:Hc},Bc={partial:!0,tokenize:Kc},Vc={partial:!0,tokenize:Wc};function Hc(e,t,n){let r=this,i=r.events[r.events.length-1],a=i&&i[1].type===`linePrefix`?i[2].sliceSerialize(i[1],!0).length:0,o=0;return s;function s(t){let i=r.containerState.type||(t===42||t===43||t===45?`listUnordered`:`listOrdered`);if(i===`listUnordered`?!r.containerState.marker||t===r.containerState.marker:qo(t)){if(r.containerState.type||(r.containerState.type=i,e.enter(i,{_container:!0})),i===`listUnordered`)return e.enter(`listItemPrefix`),t===42||t===45?e.check(Lc,n,l)(t):l(t);if(!r.interrupt||t===49)return e.enter(`listItemPrefix`),e.enter(`listItemValue`),c(t)}return n(t)}function c(t){return qo(t)&&++o<10?(e.consume(t),c):(!r.interrupt||o<2)&&(r.containerState.marker?t===r.containerState.marker:t===41||t===46)?(e.exit(`listItemValue`),l(t)):n(t)}function l(t){return e.enter(`listItemMarker`),e.consume(t),e.exit(`listItemMarker`),r.containerState.marker=r.containerState.marker||t,e.check(bs,r.interrupt?n:u,e.attempt(Bc,f,d))}function u(e){return r.containerState.initialBlankLine=!0,a++,f(e)}function d(t){return J(t)?(e.enter(`listItemPrefixWhitespace`),e.consume(t),e.exit(`listItemPrefixWhitespace`),f):n(t)}function f(n){return r.containerState.size=a+r.sliceSerialize(e.exit(`listItemPrefix`),!0).length,t(n)}}function Uc(e,t,n){let r=this;return r.containerState._closeFlow=void 0,e.check(bs,i,a);function i(n){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,Y(e,t,`listItemIndent`,r.containerState.size+1)(n)}function a(n){return r.containerState.furtherBlankLines||!J(n)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,o(n)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(Vc,t,o)(n))}function o(i){return r.containerState._closeFlow=!0,r.interrupt=void 0,Y(e,e.attempt(zc,t,n),`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(i)}}function Wc(e,t,n){let r=this;return Y(e,i,`listItemIndent`,r.containerState.size+1);function i(e){let i=r.events[r.events.length-1];return i&&i[1].type===`listItemIndent`&&i[2].sliceSerialize(i[1],!0).length===r.containerState.size?t(e):n(e)}}function Gc(e){e.exit(this.containerState.type)}function Kc(e,t,n){let r=this;return Y(e,i,`listItemPrefixWhitespace`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:5);function i(e){let i=r.events[r.events.length-1];return!J(e)&&i&&i[1].type===`listItemPrefixWhitespace`?t(e):n(e)}}var qc={name:`setextUnderline`,resolveTo:Jc,tokenize:Yc};function Jc(e,t){let n=e.length,r,i,a;for(;n--;)if(e[n][0]===`enter`){if(e[n][1].type===`content`){r=n;break}e[n][1].type===`paragraph`&&(i=n)}else e[n][1].type===`content`&&e.splice(n,1),!a&&e[n][1].type===`definition`&&(a=n);let o={type:`setextHeading`,start:{...e[r][1].start},end:{...e[e.length-1][1].end}};return e[i][1].type=`setextHeadingText`,a?(e.splice(i,0,[`enter`,o,t]),e.splice(a+1,0,[`exit`,e[r][1],t]),e[r][1].end={...e[a][1].end}):e[r][1]=o,e.push([`exit`,o,t]),e}function Yc(e,t,n){let r=this,i;return a;function a(t){let a=r.events.length,s;for(;a--;)if(r.events[a][1].type!==`lineEnding`&&r.events[a][1].type!==`linePrefix`&&r.events[a][1].type!==`content`){s=r.events[a][1].type===`paragraph`;break}return!r.parser.lazy[r.now().line]&&(r.interrupt||s)?(e.enter(`setextHeadingLine`),i=t,o(t)):n(t)}function o(t){return e.enter(`setextHeadingLineSequence`),s(t)}function s(t){return t===i?(e.consume(t),s):(e.exit(`setextHeadingLineSequence`),J(t)?Y(e,c,`lineSuffix`)(t):c(t))}function c(r){return r===null||q(r)?(e.exit(`setextHeadingLine`),t(r)):n(r)}}var Xc={tokenize:Zc};function Zc(e){let t=this,n=e.attempt(bs,r,e.attempt(this.parser.constructs.flowInitial,i,Y(e,e.attempt(this.parser.constructs.flow,i,e.attempt(Ks,i)),`linePrefix`)));return n;function r(r){if(r===null){e.consume(r);return}return e.enter(`lineEndingBlank`),e.consume(r),e.exit(`lineEndingBlank`),t.currentConstruct=void 0,n}function i(r){if(r===null){e.consume(r);return}return e.enter(`lineEnding`),e.consume(r),e.exit(`lineEnding`),t.currentConstruct=void 0,n}}var Qc={resolveAll:nl()},$c=tl(`string`),el=tl(`text`);function tl(e){return{resolveAll:nl(e===`text`?rl:void 0),tokenize:t};function t(t){let n=this,r=this.parser.constructs[e],i=t.attempt(r,a,o);return a;function a(e){return c(e)?i(e):o(e)}function o(e){if(e===null){t.consume(e);return}return t.enter(`data`),t.consume(e),s}function s(e){return c(e)?(t.exit(`data`),i(e)):(t.consume(e),s)}function c(e){if(e===null)return!0;let t=r[e],i=-1;if(t)for(;++i<t.length;){let e=t[i];if(!e.previous||e.previous.call(n,n.previous))return!0}return!1}}}function nl(e){return t;function t(t,n){let r=-1,i;for(;++r<=t.length;)i===void 0?t[r]&&t[r][1].type===`data`&&(i=r,r++):(!t[r]||t[r][1].type!==`data`)&&(r!==i+2&&(t[i][1].end=t[r-1][1].end,t.splice(i+2,r-i-2),r=i+2),i=void 0);return e?e(t,n):t}}function rl(e,t){let n=0;for(;++n<=e.length;)if((n===e.length||e[n][1].type===`lineEnding`)&&e[n-1][1].type===`data`){let r=e[n-1][1],i=t.sliceStream(r),a=i.length,o=-1,s=0,c;for(;a--;){let e=i[a];if(typeof e==`string`){for(o=e.length;e.charCodeAt(o-1)===32;)s++,o--;if(o)break;o=-1}else if(e===-2)c=!0,s++;else if(e!==-1){a++;break}}if(t._contentTypeTextTrailing&&n===e.length&&(s=0),s){let i={type:n===e.length||c||s<2?`lineSuffix`:`hardBreakTrailing`,start:{_bufferIndex:a?o:r.start._bufferIndex+o,_index:r.start._index+a,line:r.end.line,column:r.end.column-s,offset:r.end.offset-s},end:{...r.end}};r.end={...i.start},r.start.offset===r.end.offset?Object.assign(r,i):(e.splice(n,0,[`enter`,i,t],[`exit`,i,t]),n+=2)}n++}return e}var il=t({attentionMarkers:()=>fl,contentInitial:()=>ol,disable:()=>pl,document:()=>al,flow:()=>cl,flowInitial:()=>sl,insideSpan:()=>dl,string:()=>ll,text:()=>ul}),al={42:zc,43:zc,45:zc,48:zc,49:zc,50:zc,51:zc,52:zc,53:zc,54:zc,55:zc,56:zc,57:zc,62:Ss},ol={91:tc},sl={[-2]:Ps,[-1]:Ps,32:Ps},cl={35:sc,42:Lc,45:[qc,Lc],60:fc,61:qc,95:Lc,96:js,126:js},ll={38:Os,92:Es},ul={[-5]:Fc,[-4]:Fc,[-3]:Fc,33:jc,38:Os,42:ms,60:[vs,yc],91:Nc,92:[ac,Es],93:xc,95:ms,96:Rs},dl={null:[ms,Qc]},fl={null:[42,95]},pl={null:[]};function ml(e,t,n){let r={_bufferIndex:-1,_index:0,line:n&&n.line||1,column:n&&n.column||1,offset:n&&n.offset||0},i={},a=[],o=[],s=[],c={attempt:C(x),check:C(S),consume:v,enter:y,exit:b,interrupt:C(S,{interrupt:!0})},l={code:null,containerState:{},defineSkip:h,events:[],now:m,parser:e,previous:null,sliceSerialize:f,sliceStream:p,write:d},u=t.tokenize.call(l,c);return t.resolveAll&&a.push(t),l;function d(e){return o=Mo(o,e),g(),o[o.length-1]===null?(w(t,0),l.events=ps(a,l.events,l),l.events):[]}function f(e,t){return gl(p(e),t)}function p(e){return hl(o,e)}function m(){let{_bufferIndex:e,_index:t,line:n,column:i,offset:a}=r;return{_bufferIndex:e,_index:t,line:n,column:i,offset:a}}function h(e){i[e.line]=e.column,E()}function g(){let e;for(;r._index<o.length;){let t=o[r._index];if(typeof t==`string`)for(e=r._index,r._bufferIndex<0&&(r._bufferIndex=0);r._index===e&&r._bufferIndex<t.length;)_(t.charCodeAt(r._bufferIndex));else _(t)}}function _(e){u=u(e)}function v(e){q(e)?(r.line++,r.column=1,r.offset+=e===-3?2:1,E()):e!==-1&&(r.column++,r.offset++),r._bufferIndex<0?r._index++:(r._bufferIndex++,r._bufferIndex===o[r._index].length&&(r._bufferIndex=-1,r._index++)),l.previous=e}function y(e,t){let n=t||{};return n.type=e,n.start=m(),l.events.push([`enter`,n,l]),s.push(n),n}function b(e){let t=s.pop();return t.end=m(),l.events.push([`exit`,t,l]),t}function x(e,t){w(e,t.from)}function S(e,t){t.restore()}function C(e,t){return n;function n(n,r,i){let a,o,s,u;return Array.isArray(n)?f(n):`tokenize`in n?f([n]):d(n);function d(e){return t;function t(t){let n=t!==null&&e[t],r=t!==null&&e.null;return f([...Array.isArray(n)?n:n?[n]:[],...Array.isArray(r)?r:r?[r]:[]])(t)}}function f(e){return a=e,o=0,e.length===0?i:p(e[o])}function p(e){return n;function n(n){return u=T(),s=e,e.partial||(l.currentConstruct=e),e.name&&l.parser.constructs.disable.null.includes(e.name)?h(n):e.tokenize.call(t?Object.assign(Object.create(l),t):l,c,m,h)(n)}}function m(t){return e(s,u),r}function h(e){return u.restore(),++o<a.length?p(a[o]):i}}}function w(e,t){e.resolveAll&&!a.includes(e)&&a.push(e),e.resolve&&jo(l.events,t,l.events.length-t,e.resolve(l.events.slice(t),l)),e.resolveTo&&(l.events=e.resolveTo(l.events,l))}function T(){let e=m(),t=l.previous,n=l.currentConstruct,i=l.events.length,a=Array.from(s);return{from:i,restore:o};function o(){r=e,l.previous=t,l.currentConstruct=n,l.events.length=i,s=a,E()}}function E(){r.line in i&&r.column<2&&(r.column=i[r.line],r.offset+=i[r.line]-1)}}function hl(e,t){let n=t.start._index,r=t.start._bufferIndex,i=t.end._index,a=t.end._bufferIndex,o;if(n===i)o=[e[n].slice(r,a)];else{if(o=e.slice(n,i),r>-1){let e=o[0];typeof e==`string`?o[0]=e.slice(r):o.shift()}a>0&&o.push(e[i].slice(0,a))}return o}function gl(e,t){let n=-1,r=[],i;for(;++n<e.length;){let a=e[n],o;if(typeof a==`string`)o=a;else switch(a){case-5:o=`\\r`;break;case-4:o=`\n`;break;case-3:o=`\\r\n`;break;case-2:o=t?` `:`\t`;break;case-1:if(!t&&i)continue;o=` `;break;default:o=String.fromCharCode(a)}i=a===-2,r.push(o)}return r.join(``)}function _l(e){let t={constructs:Po([il,...(e||{}).extensions||[]]),content:n(os),defined:[],document:n(cs),flow:n(Xc),lazy:{},string:n($c),text:n(el)};return t;function n(e){return n;function n(n){return ml(t,e,n)}}}function vl(e){for(;!Ws(e););return e}var yl=/[\\0\\t\\n\\r]/g;function bl(){let e=1,t=``,n=!0,r;return i;function i(i,a,o){let s=[],c,l,u,d,f;for(i=t+(typeof i==`string`?i.toString():new TextDecoder(a||void 0).decode(i)),u=0,t=``,n&&(i.charCodeAt(0)===65279&&u++,n=void 0);u<i.length;){if(yl.lastIndex=u,c=yl.exec(i),d=c&&c.index!==void 0?c.index:i.length,f=i.charCodeAt(d),!c){t=i.slice(u);break}if(f===10&&u===d&&r)s.push(-3),r=void 0;else switch(r&&(s.push(-5),r=void 0),u<d&&(s.push(i.slice(u,d)),e+=d-u),f){case 0:s.push(65533),e++;break;case 9:for(l=Math.ceil(e/4)*4,s.push(-2);e++<l;)s.push(-1);break;case 10:s.push(-4),e=1;break;default:r=!0,e=1}u=d+1}return o&&(r&&s.push(-5),t&&s.push(t),s.push(null)),s}}function xl(e,t,n){return typeof t!=`string`&&(n=t,t=void 0),as(n)(vl(_l(n).document().write(bl()(e,t,!0))))}var Sl={none:``,left:` align=\"left\"`,right:` align=\"right\"`,center:` align=\"center\"`};function Cl(){return{enter:{table(e){let t=e._align;this.lineEndingIfNeeded(),this.tag(`<table>`),this.setData(`tableAlign`,t)},tableBody(){this.tag(`<tbody>`)},tableData(){let e=Sl[this.getData(`tableAlign`)[this.getData(`tableColumn`)]];e===void 0?this.buffer():(this.lineEndingIfNeeded(),this.tag(`<td`+e+`>`))},tableHead(){this.lineEndingIfNeeded(),this.tag(`<thead>`)},tableHeader(){let e=Sl[this.getData(`tableAlign`)[this.getData(`tableColumn`)]];this.lineEndingIfNeeded(),this.tag(`<th`+e+`>`)},tableRow(){this.setData(`tableColumn`,0),this.lineEndingIfNeeded(),this.tag(`<tr>`)}},exit:{codeTextData(e){let t=this.sliceSerialize(e);this.getData(`tableAlign`)&&(t=t.replace(/\\\\([\\\\|])/g,wl)),this.raw(this.encode(t))},table(){this.setData(`tableAlign`),this.setData(`slurpAllLineEndings`),this.lineEndingIfNeeded(),this.tag(`</table>`)},tableBody(){this.lineEndingIfNeeded(),this.tag(`</tbody>`)},tableData(){let e=this.getData(`tableAlign`),t=this.getData(`tableColumn`);t in e?(this.tag(`</td>`),this.setData(`tableColumn`,t+1)):this.resume()},tableHead(){this.lineEndingIfNeeded(),this.tag(`</thead>`)},tableHeader(){let e=this.getData(`tableColumn`);this.tag(`</th>`),this.setData(`tableColumn`,e+1)},tableRow(){let e=this.getData(`tableAlign`),t=this.getData(`tableColumn`);for(;t<e.length;)this.lineEndingIfNeeded(),this.tag(`<td`+Sl[e[t]]+`></td>`),t++;this.setData(`tableColumn`,t),this.lineEndingIfNeeded(),this.tag(`</tr>`)}}}}function wl(e,t){return t===`|`?t:e}var Tl=class{constructor(){this.map=[]}add(e,t,n){El(this,e,t,n)}consume(e){if(this.map.sort(function(e,t){return e[0]-t[0]}),this.map.length===0)return;let t=this.map.length,n=[];for(;t>0;)--t,n.push(e.slice(this.map[t][0]+this.map[t][1]),this.map[t][2]),e.length=this.map[t][0];n.push(e.slice()),e.length=0;let r=n.pop();for(;r;){for(let t of r)e.push(t);r=n.pop()}this.map.length=0}};function El(e,t,n,r){let i=0;if(!(n===0&&r.length===0)){for(;i<e.map.length;){if(e.map[i][0]===t){e.map[i][1]+=n,e.map[i][2].push(...r);return}i+=1}e.map.push([t,n,r])}}function Dl(e,t){let n=!1,r=[];for(;t<e.length;){let i=e[t];if(n){if(i[0]===`enter`)i[1].type===`tableContent`&&r.push(e[t+1][1].type===`tableDelimiterMarker`?`left`:`none`);else if(i[1].type===`tableContent`){if(e[t-1][1].type===`tableDelimiterMarker`){let e=r.length-1;r[e]=r[e]===`left`?`center`:`right`}}else if(i[1].type===`tableDelimiterRow`)break}else i[0]===`enter`&&i[1].type===`tableDelimiterRow`&&(n=!0);t+=1}return r}function Ol(){return{flow:{null:{name:`table`,tokenize:kl,resolveAll:Al}}}}function kl(e,t,n){let r=this,i=0,a=0,o;return s;function s(e){let t=r.events.length-1;for(;t>-1;){let e=r.events[t][1].type;if(e===`lineEnding`||e===`linePrefix`)t--;else break}let i=t>-1?r.events[t][1].type:null,a=i===`tableHead`||i===`tableRow`?S:c;return a===S&&r.parser.lazy[r.now().line]?n(e):a(e)}function c(t){return e.enter(`tableHead`),e.enter(`tableRow`),l(t)}function l(e){return e===124?u(e):(o=!0,a+=1,u(e))}function u(t){return t===null?n(t):q(t)?a>1?(a=0,r.interrupt=!0,e.exit(`tableRow`),e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),p):n(t):J(t)?Y(e,u,`whitespace`)(t):(a+=1,o&&(o=!1,i+=1),t===124?(e.enter(`tableCellDivider`),e.consume(t),e.exit(`tableCellDivider`),o=!0,u):(e.enter(`data`),d(t)))}function d(t){return t===null||t===124||Xo(t)?(e.exit(`data`),u(t)):(e.consume(t),t===92?f:d)}function f(t){return t===92||t===124?(e.consume(t),d):d(t)}function p(t){return r.interrupt=!1,r.parser.lazy[r.now().line]?n(t):(e.enter(`tableDelimiterRow`),o=!1,J(t)?Y(e,m,`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(t):m(t))}function m(t){return t===45||t===58?g(t):t===124?(o=!0,e.enter(`tableCellDivider`),e.consume(t),e.exit(`tableCellDivider`),h):x(t)}function h(t){return J(t)?Y(e,g,`whitespace`)(t):g(t)}function g(t){return t===58?(a+=1,o=!0,e.enter(`tableDelimiterMarker`),e.consume(t),e.exit(`tableDelimiterMarker`),_):t===45?(a+=1,_(t)):t===null||q(t)?b(t):x(t)}function _(t){return t===45?(e.enter(`tableDelimiterFiller`),v(t)):x(t)}function v(t){return t===45?(e.consume(t),v):t===58?(o=!0,e.exit(`tableDelimiterFiller`),e.enter(`tableDelimiterMarker`),e.consume(t),e.exit(`tableDelimiterMarker`),y):(e.exit(`tableDelimiterFiller`),y(t))}function y(t){return J(t)?Y(e,b,`whitespace`)(t):b(t)}function b(n){return n===124?m(n):n===null||q(n)?!o||i!==a?x(n):(e.exit(`tableDelimiterRow`),e.exit(`tableHead`),t(n)):x(n)}function x(e){return n(e)}function S(t){return e.enter(`tableRow`),C(t)}function C(n){return n===124?(e.enter(`tableCellDivider`),e.consume(n),e.exit(`tableCellDivider`),C):n===null||q(n)?(e.exit(`tableRow`),t(n)):J(n)?Y(e,C,`whitespace`)(n):(e.enter(`data`),w(n))}function w(t){return t===null||t===124||Xo(t)?(e.exit(`data`),C(t)):(e.consume(t),t===92?T:w)}function T(t){return t===92||t===124?(e.consume(t),w):w(t)}}function Al(e,t){let n=-1,r=!0,i=0,a=[0,0,0,0],o=[0,0,0,0],s=!1,c=0,l,u,d,f=new Tl;for(;++n<e.length;){let p=e[n],m=p[1];p[0]===`enter`?m.type===`tableHead`?(s=!1,c!==0&&(Ml(f,t,c,l,u),u=void 0,c=0),l={type:`table`,start:Object.assign({},m.start),end:Object.assign({},m.end)},f.add(n,0,[[`enter`,l,t]])):m.type===`tableRow`||m.type===`tableDelimiterRow`?(r=!0,d=void 0,a=[0,0,0,0],o=[0,n+1,0,0],s&&(s=!1,u={type:`tableBody`,start:Object.assign({},m.start),end:Object.assign({},m.end)},f.add(n,0,[[`enter`,u,t]])),i=m.type===`tableDelimiterRow`?2:u?3:1):i&&(m.type===`data`||m.type===`tableDelimiterMarker`||m.type===`tableDelimiterFiller`)?(r=!1,o[2]===0&&(a[1]!==0&&(o[0]=o[1],d=jl(f,t,a,i,void 0,d),a=[0,0,0,0]),o[2]=n)):m.type===`tableCellDivider`&&(r?r=!1:(a[1]!==0&&(o[0]=o[1],d=jl(f,t,a,i,void 0,d)),a=o,o=[a[1],n,0,0])):m.type===`tableHead`?(s=!0,c=n):m.type===`tableRow`||m.type===`tableDelimiterRow`?(c=n,a[1]===0?o[1]!==0&&(d=jl(f,t,o,i,n,d)):(o[0]=o[1],d=jl(f,t,a,i,n,d)),i=0):i&&(m.type===`data`||m.type===`tableDelimiterMarker`||m.type===`tableDelimiterFiller`)&&(o[3]=n)}for(c!==0&&Ml(f,t,c,l,u),f.consume(t.events),n=-1;++n<t.events.length;){let e=t.events[n];e[0]===`enter`&&e[1].type===`table`&&(e[1]._align=Dl(t.events,n))}return e}function jl(e,t,n,r,i,a){let o=r===1?`tableHeader`:r===2?`tableDelimiter`:`tableData`;n[0]!==0&&(a.end=Object.assign({},Nl(t.events,n[0])),e.add(n[0],0,[[`exit`,a,t]]));let s=Nl(t.events,n[1]);if(a={type:o,start:Object.assign({},s),end:Object.assign({},s)},e.add(n[1],0,[[`enter`,a,t]]),n[2]!==0){let i=Nl(t.events,n[2]),a=Nl(t.events,n[3]),o={type:`tableContent`,start:Object.assign({},i),end:Object.assign({},a)};if(e.add(n[2],0,[[`enter`,o,t]]),r!==2){let r=t.events[n[2]],i=t.events[n[3]];if(r[1].end=Object.assign({},i[1].end),r[1].type=`chunkText`,r[1].contentType=`text`,n[3]>n[2]+1){let t=n[2]+1,r=n[3]-n[2]-1;e.add(t,r,[])}}e.add(n[3]+1,0,[[`exit`,o,t]])}return i!==void 0&&(a.end=Object.assign({},Nl(t.events,i)),e.add(i,0,[[`exit`,a,t]]),a=void 0),a}function Ml(e,t,n,r,i){let a=[],o=Nl(t.events,n);i&&(i.end=Object.assign({},o),a.push([`exit`,i,t])),r.end=Object.assign({},o),a.push([`exit`,r,t]),e.add(n+1,0,a)}function Nl(e,t){let n=e[t],r=n[0]===`enter`?`start`:`end`;return n[1][r]}function Pl(){return{enter:{strikethrough(){this.tag(`<del>`)}},exit:{strikethrough(){this.tag(`</del>`)}}}}function Fl(e){let t=(e||{}).singleTilde,n={name:`strikethrough`,tokenize:i,resolveAll:r};return t??(t=!0),{text:{126:n},insideSpan:{null:[n]},attentionMarkers:{null:[126]}};function r(e,t){let n=-1;for(;++n<e.length;)if(e[n][0]===`enter`&&e[n][1].type===`strikethroughSequenceTemporary`&&e[n][1]._close){let r=n;for(;r--;)if(e[r][0]===`exit`&&e[r][1].type===`strikethroughSequenceTemporary`&&e[r][1]._open&&e[n][1].end.offset-e[n][1].start.offset===e[r][1].end.offset-e[r][1].start.offset){e[n][1].type=`strikethroughSequence`,e[r][1].type=`strikethroughSequence`;let i={type:`strikethrough`,start:Object.assign({},e[r][1].start),end:Object.assign({},e[n][1].end)},a={type:`strikethroughText`,start:Object.assign({},e[r][1].end),end:Object.assign({},e[n][1].start)},o=[[`enter`,i,t],[`enter`,e[r][1],t],[`exit`,e[r][1],t],[`enter`,a,t]],s=t.parser.constructs.insideSpan.null;s&&jo(o,o.length,0,ps(s,e.slice(r+1,n),t)),jo(o,o.length,0,[[`exit`,a,t],[`enter`,e[n][1],t],[`exit`,e[n][1],t],[`exit`,i,t]]),jo(e,r-1,n-r+3,o),n=r+o.length-2;break}}for(n=-1;++n<e.length;)e[n][1].type===`strikethroughSequenceTemporary`&&(e[n][1].type=`data`);return e}function i(e,n,r){let i=this.previous,a=this.events,o=0;return s;function s(t){return i===126&&a[a.length-1][1].type!==`characterEscape`?r(t):(e.enter(`strikethroughSequenceTemporary`),c(t))}function c(a){let s=fs(i);if(a===126)return o>1?r(a):(e.consume(a),o++,c);if(o<2&&!t)return r(a);let l=e.exit(`strikethroughSequenceTemporary`),u=fs(a);return l._open=!u||u===2&&!!s,l._close=!s||s===2&&!!u,n(a)}}}function Il(e){let t=[`codeIndented`];return e?.inline&&t.push(`list`,`headingAtx`,`setextUnderline`,`thematicBreak`,`blockQuote`,`codeFenced`,`table`),{allowDangerousHtml:!0,extensions:[Ol(),Fl(),{disable:{null:t}}],htmlExtensions:[Cl(),Pl()]}}function Ll(e,t){let n=Il(t);return xl(e,{...n,extensions:[...n.extensions??[],Ul(e),zl]})}var Rl=e=>{let t=e.length-2,n=e[t-1];return n&&n[0]===`exit`&&n[1].type===`data`&&(n[1].end=e[t][1].end,e.length=t),e},zl={text:{null:{name:`textData`,tokenize(e,t){let n=this,r=this.parser.constructs.text;function i(e){if(e===null)return!0;let t=r[e]??[];return(Array.isArray(t)?t:[t]).some(e=>!e.previous||e.previous.call(n,n.previous))}function a(n){return i(n)?(e.exit(`data`),t(n)):(e.consume(n),a)}return t=>(e.enter(`data`),e.consume(t),a)},resolveTo:Rl}}},Bl=/[#-'*+\\--9=?A-Z^-~]/,Vl=/[0-9A-Za-z]/,Hl=/[A-Za-z]/;function Ul(e){let t=e.charCodeAt(0)===65279?1:0,n=e.lastIndexOf(`-->`),r=e.lastIndexOf(`?>`),i=e.lastIndexOf(`]]>`),a=e.lastIndexOf(`>`);function o(t){return e[t]===`<`?e.startsWith(`\\x3C!--`,t)?n<t+2:e.startsWith(`<![CDATA[`,t)?i<t+9:e[t+1]===`!`&&Hl.test(e[t+2]??``)?a<t+3:e[t+1]===`?`?r<t+2&&!s(t):!1:!1}function s(t){let n=t+1;for(;Bl.test(e[n]??``);)n++;if(e[n]!==`@`)return!1;n++;let r=0,i=`atSignOrDot`;for(;;){let t=e[n]??``;if(i===`atSignOrDot`){if(!Vl.test(t))return!1;i=`label`}else if(i===`label`){if(t===`>`)return!0;t===`.`?(n++,r=0,i=`atSignOrDot`):i=`value`}else{if(!((t===`-`||Vl.test(t))&&r++<63))return!1;n++,i=t===`-`?`value`:`label`}}}let c={name:`unclosedHtml`,resolveTo:Rl,tokenize(e,n,r){let i=this.now().offset+t;return t=>t!==60||!o(i)?r(t):(e.enter(`data`),e.consume(t),e.exit(`data`),n)}};return{text:{60:c}}}function Wl(e){let t=e.metadata[`data-source-file`],n=e.metadata[`data-source-line`];return t?n?` (${t}:${n})`:` (${t})`:``}function Gl(){let e=Q.getState();if(!e.storyData)return``;let t=e.storyData.passages.get(e.currentPassage);return t?Wl(t):``}function Kl({macro:e,error:t}){return K(`span`,{class:`error`,title:String(t),children:`{${e} error${Gl()}: ${yo(t)}}`})}var ql={update:e=>{throw Error(`Cannot set @${e} — local variables require a {for}, widget, {link}, or {button} scope`)},getValues:()=>aa},Jl=pe(aa),Yl=pe(ql),Xl=pe(!1),Zl=pe(!1),Ql=pe(!1),$l=pe(!1),eu=new Set([`pre`,`textarea`]),tu=pe(null);function nu(e,t){return`<span data-tw=${e}:${t}></span>`}var ru=/(?:(?<=\\\\)\\uE000)?<span data-tw=([0-9a-z]+):(\\d+)><\\/span>/g,iu=``;function au(e,t){if(!e.includes(`<span data-tw=`))return[e];let n=[],r=0;for(let i of e.matchAll(ru))i[1]===t.nonce&&(i.index>r&&n.push(e.slice(r,i.index)),n.push(parseInt(i[2],10)),r=i.index+i[0].length);return r<e.length&&n.push(e.slice(r)),n}function ou(e,t){return au(e,t).map(e=>typeof e==`number`?t.components[e]:e)}function su({tag:e,props:t,attributes:n,children:r}){let i=bo(),a={...t},o=[];for(let[e,t]of Object.entries(n)){let n=ho(t,i);a[e]=n.text;for(let t of n.errors)o.push([e,t])}return cu(o,b(e,a,...r))}function cu(e,t){return e.length===0?t:K(S,{children:[e.map(([e,{macro:t,error:n}],r)=>K(Kl,{macro:t,error:Error(`in attribute \"${e}\": ${yo(n)}`)},r)),t]})}function lu(e,t){if(e==null||e.nodeType!==Node.ELEMENT_NODE)return-1;let n=e.getAttribute(`data-tw`),r=`${t.nonce}:`;return n==null||!n.startsWith(r)?-1:parseInt(n.slice(r.length),10)}function uu(e,t,n=!1){let r=document.createElement(`div`);if(r.innerHTML=e.trim(),n)for(let e of Array.from(r.querySelectorAll(`:scope > p`)))e.replaceWith(...Array.from(e.childNodes));return K(S,{children:Array.from(r.childNodes).map((e,n)=>du(e,n,t))})}function du(e,t,n){if(e.nodeType===Node.TEXT_NODE){let t=e.textContent??``;t.endsWith(`\\\\${iu}`)&&lu(e.nextSibling,n)!==-1&&(t=t.slice(0,-1));let r=ou(t,n);return r.length===1?r[0]:r}if(e.nodeType===Node.ELEMENT_NODE){let r=e,i=r.localName,a=lu(r,n);if(a!==-1)return n.components[a];let o={},s;for(let e of Array.from(r.attributes)){let t=au(e.value,n);if(t.every(e=>typeof e==`string`)){o[e.name]=e.value;continue}s??(s={}),s[e.name]=t.map(e=>typeof e==`string`?{type:`text`,value:e}:n.nodes[e])}let c=Array.from(r.childNodes).map((e,t)=>du(e,t,n));return s?K(su,{tag:i,props:o,attributes:s,children:c},t):b(i,{...o,key:t},...c)}return null}var fu=new Set(`a.abbr.b.bdi.bdo.br.cite.code.data.dfn.em.i.kbd.label.mark.meter.output.progress.q.rp.rt.ruby.s.samp.small.span.strong.sub.sup.time.u.var.wbr`.split(`.`)),pu=new Set([`value`,`checked`,`selected`,`muted`]),mu=new Set([`allowfullscreen`,`async`,`autofocus`,`autoplay`,`checked`,`controls`,`default`,`defer`,`disabled`,`formnovalidate`,`hidden`,`inert`,`ismap`,`itemscope`,`loop`,`multiple`,`muted`,`nomodule`,`novalidate`,`open`,`playsinline`,`readonly`,`required`,`reversed`,`selected`]),hu=new Set([...new Set([`key`,`ref`,`children`,`dangerouslySetInnerHTML`]),`class`,`className`]),gu=/^[A-Za-z_:][\\w:.-]*$/;function _u(e,t,n){if(gu.test(t)){e.setAttribute(t,n);return}let r=document.createElement(`template`);r.innerHTML=`<i ${t}=\"\"></i>`;let i=r.content.firstChild.attributes[0];if(!i)return;let a=i.cloneNode();a.value=n,e.setAttributeNode(a)}function vu(e,t){let n={},r=[];for(let[i,a,o]of e){let e=i.toLowerCase();mu.has(e)&&o!==``&&a===``||(!t&&pu.has(e)?n[e]=e!==`value`&&o===``?!0:a:!gu.test(i)||e.startsWith(`on`)||e===`translate`||t&&(hu.has(i)||i===`__proto__`)?r.push([i,a]):n[t?i:i.toUpperCase()]=a)}return{props:n,direct:r}}var yu=new Map;function bu(e){if(!e.includes(`&`))return e;let t=yu.get(e);if(t===void 0){let n=document.createElement(`template`);n.innerHTML=`<i title=\"${e.replace(/\"/g,`"`)}\"></i>`,t=n.content.firstChild.getAttribute(`title`)??e,yu.set(e,t)}return t}var xu=/\\{[$_@%]\\w/,Su=new Map,Cu=2e3;function wu(e){let t=Su.get(e);return t===void 0&&(t=oo(e),`nodes`in t&&e.includes(`&`)&&(t={nodes:so(t.nodes,bu)}),Su.size>=Cu&&Su.clear(),Su.set(e,t)),t}function Tu(e,t,n,r){if(Xr(e)){if(!t.includes(`&`)&&!xu.test(t))return t;let i=vo(t,n,bu);for(let t of i.errors)r.push([e,t]);return i.text}if(!ro(t))return bu(t);let i=wu(t);if(`error`in i)return r.push([e,{macro:`markup`,error:i.error}]),bu(t);let a=ho(i.nodes,n);for(let t of a.errors)r.push([e,t]);return a.text}function Eu({node:e}){let t=bo(),n=z(Xl),r=z(Jl),i=z(Ql),a=z($l),o=z(Zl),s=e.tag.toLowerCase(),c=s===`svg`,l=!i&&(c||eu.has(s)),u=[],{props:d,direct:f}=vu(Object.entries(e.attributes).map(([e,n])=>[e,Tu(e,n,t,u),n]),a||c),p=L(null);De(()=>{let e=p.current;if(!(!e||f.length===0)){for(let[t,n]of f)_u(e,t,n);return()=>{for(let[t]of f)e.removeAttribute(t)}}},[JSON.stringify(f)]),f.length>0&&(d.ref=p);let m=fu.has(s),h;e.children.length>0&&(i||l?h=Nu(e.children):(h=Vu(e.children,{nobr:n,locals:r,inline:m}),m!==o&&(h=K(Zl.Provider,{value:m,children:h}))));let g=b(e.tag,d,h);return c&&!a&&(g=K($l.Provider,{value:!0,children:g})),cu(u,l?K(Ql.Provider,{value:!0,children:g}):g)}function Du(){let e=z(tu),t=z(Xl),n=z(Zl),r=z(Ql),i=z(Jl);return!e||e.length===0?null:K(S,{children:Vu(e,{nobr:t,locals:i,inline:n,raw:r})})}var Ou=new WeakMap,ku=0;function Au(e){let t=Ou.get(e);return t===void 0&&(t=`n${ku++}`,Ou.set(e,t)),t}function ju(e,t){if(Fa(e.name))return null;let n=Va(e.name);if(n)return K(Oo,{body:n.body,params:n.params,rawArgs:e.rawArgs,invocationChildren:e.children},t);let r=ka(e.name);return r?K(r,{rawArgs:e.rawArgs,className:e.className,id:e.id,children:e.children,branches:e.branches},t):K(`span`,{class:`error`,children:`{unknown macro: ${e.name}}`},t)}function Mu(e){if(e.type===`text`)return e.value;let t=Au(e);switch(e.type){case`variable`:return e.scope===`local`&&e.name===`children`?K(Du,{},t):K(To,{name:e.name,scope:e.scope,className:e.className,id:e.id},t);case`expression`:return K(Eo,{expression:e.expression,className:e.className,id:e.id},t);case`macro`:return ju(e,t);case`html`:return K(Eu,{node:e},t);default:return e}}function Nu(e){return e.length===0?null:e.map(e=>Mu(e))}var Pu=/[*_`#|~\\[>\\\\\\-+=\\r]|!\\[|\\d+[.)]|&#?[a-zA-Z0-9]+;| {2}\\n|<[!?]/,Fu=/(?:\\r\\n|\\r(?!\\n)|\\n)\\s*[\\r\\n]/,Iu=/<span data-tw=[0-9a-z]+:\\d+><\\/span>/g,Lu=` \t\\r\n`;function Ru(e,t,n,r){let i=t;if(n===1)for(;i<e.length&&r.includes(e[i]);)i++;else for(;i>0&&r.includes(e[i-1]);)i--;return i}function zu(e){return e.includes(`\n`)?e.split(`\n`).map((e,t,n)=>{let r=t===0?0:Ru(e,0,1,` \t`),i=t===n.length-1?e.length:Ru(e,e.length,-1,` \t`);return e.slice(r,Math.max(r,i))}).join(`\n`):e}function Bu(e,t,n){let r=ou(zu(e),t).filter(e=>e!==``);return n?K(S,{children:r}):b(`p`,null,...r)}function Vu(e,t){if(e.length===0)return null;if(t?.raw)return Nu(e);if(!e.some(e=>e.type===`text`&&(e.value.trim()!==``||Fu.test(e.value))))return e.map(e=>Mu(e));let n=[],r={nonce:Math.random().toString(36).slice(2,10)||`0`,components:n,nodes:[]},i=``;for(let t=0;t<e.length;t++){let a=e[t];if(a.type===`text`){i+=a.value;continue}let o=n.length;n.push(Mu(a)),r.nodes.push(a),i.endsWith(`\\\\`)&&(i+=iu),i+=nu(r.nonce,o)}let a=!!(t?.nobr||t?.inline),o=i.slice(0,Ru(i,0,1,Lu)),s=o.length===i.length?``:i.slice(Ru(i,i.length,-1,Lu)),c=i.slice(o.length,i.length-s.length),l=e=>a&&(o||s)?K(S,{children:[o,e,s]}):e,u=i.replace(Iu,``);return!Pu.test(u)&&!Fu.test(u)?l(Bu(c,r,a)):l(uu(Ll(i,{inline:t?.inline}),r,a))}function Hu(){let e=e=>structuredClone(e),t=new Map,n=new Map,r=new Map;return{type:`memory`,async putSave(n){t.set(n.meta.id,e(n))},async getSave(n){let r=t.get(n);return r&&e(r)},async deleteSave(e){t.delete(e)},async getSavesByIfid(n){return[...t.values()].filter(e=>e.meta.ifid===n).map(e)},async deleteSavesByIfid(e){for(let n of[...t.keys()]){let r=t.get(n);r&&r.meta.ifid===e&&t.delete(n)}},async deleteSavesByPlaythrough(e){let n=[];for(let r of[...t.keys()]){let i=t.get(r);i&&i.meta.playthroughId===e&&(t.delete(r),n.push(r))}return n},async putPlaythrough(t){n.set(t.id,e(t))},async getPlaythroughsByIfid(t){return[...n.values()].filter(e=>e.ifid===t).map(e)},async deletePlaythroughsByIfid(e){for(let t of[...n.keys()]){let r=n.get(t);r&&r.ifid===e&&n.delete(t)}},async deletePlaythroughById(e){n.delete(e)},async getMeta(t){return e(r.get(t))},async setMeta(t,n){r.set(t,e(n))},async deleteMeta(e){r.delete(e)},async deleteMetaByPrefix(e){for(let t of[...r.keys()])t.startsWith(e)&&r.delete(t)},async deleteMetaByIfid(e){for(let t of[...r.keys()])t.includes(e)&&r.delete(t)},async getAllMetaKeys(){return[...r.keys()]},async destroy(){t.clear(),n.clear(),r.clear()}}}var Uu=`spindle.save.`,Wu=`spindle.pt.`,Gu=`spindle.meta.`,Ku=`spindle.idx.saves.`,qu=`spindle.idx.pt.`,Ju=`spindle.idx.saves-pt.`;function Yu(e){let t=localStorage.getItem(e);if(t!==null)try{return JSON.parse(t)}catch{return}}function Xu(e,t){localStorage.setItem(e,JSON.stringify(t))}function Zu(e){localStorage.removeItem(e)}function Qu(e){return Yu(e)??[]}function $u(e,t){let n=Qu(e);n.includes(t)||(n.push(t),Xu(e,n))}function ed(e,t){Xu(e,Qu(e).filter(e=>e!==t))}function td(){return{type:`localstorage`,async putSave(e){let t=e.meta.id,n=Yu(`${Uu}${t}`);n&&n.meta.playthroughId!==e.meta.playthroughId&&ed(`${Ju}${n.meta.playthroughId}`,t),Xu(`${Uu}${t}`,e),$u(`${Ku}${e.meta.ifid}`,t),$u(`${Ju}${e.meta.playthroughId}`,t)},async getSave(e){return Yu(`${Uu}${e}`)},async deleteSave(e){let t=Yu(`${Uu}${e}`);t&&(ed(`${Ku}${t.meta.ifid}`,e),ed(`${Ju}${t.meta.playthroughId}`,e)),Zu(`${Uu}${e}`)},async getSavesByIfid(e){let t=Qu(`${Ku}${e}`),n=[];for(let e of t){let t=Yu(`${Uu}${e}`);t&&n.push(t)}return n},async deleteSavesByIfid(e){let t=Qu(`${Ku}${e}`);for(let e of t){let t=Yu(`${Uu}${e}`);t&&ed(`${Ju}${t.meta.playthroughId}`,e),Zu(`${Uu}${e}`)}Zu(`${Ku}${e}`)},async deleteSavesByPlaythrough(e){let t=Qu(`${Ju}${e}`);for(let e of t){let t=Yu(`${Uu}${e}`);t&&ed(`${Ku}${t.meta.ifid}`,e),Zu(`${Uu}${e}`)}return Zu(`${Ju}${e}`),t},async putPlaythrough(e){Xu(`${Wu}${e.id}`,e),$u(`${qu}${e.ifid}`,e.id)},async getPlaythroughsByIfid(e){let t=Qu(`${qu}${e}`),n=[];for(let e of t){let t=Yu(`${Wu}${e}`);t&&n.push(t)}return n},async deletePlaythroughsByIfid(e){let t=Qu(`${qu}${e}`);for(let e of t)Zu(`${Wu}${e}`);Zu(`${qu}${e}`)},async deletePlaythroughById(e){let t=Yu(`${Wu}${e}`);t&&ed(`${qu}${t.ifid}`,e),Zu(`${Wu}${e}`)},async getMeta(e){return Yu(`${Gu}${e}`)},async setMeta(e,t){Xu(`${Gu}${e}`,t)},async deleteMeta(e){Zu(`${Gu}${e}`)},async deleteMetaByPrefix(e){let t=`${Gu}${e}`;for(let e of Object.keys(localStorage))e.startsWith(t)&&localStorage.removeItem(e)},async deleteMetaByIfid(e){for(let t of Object.keys(localStorage))t.startsWith(Gu)&&t.includes(e)&&localStorage.removeItem(t)},async getAllMetaKeys(){let e=[];for(let t of Object.keys(localStorage))t.startsWith(Gu)&&e.push(t.slice(13));return e},async destroy(){for(let e of Object.keys(localStorage))e.startsWith(`spindle.`)&&localStorage.removeItem(e)}}}var nd=`spindle`,rd=1;function id(){let e=null;function t(){return e||(e=new Promise((e,t)=>{let n=indexedDB.open(nd,rd);n.onupgradeneeded=()=>{let e=n.result;if(!e.objectStoreNames.contains(`saves`)){let t=e.createObjectStore(`saves`,{keyPath:`meta.id`});t.createIndex(`ifid`,`meta.ifid`,{unique:!1}),t.createIndex(`playthroughId`,`meta.playthroughId`,{unique:!1})}e.objectStoreNames.contains(`playthroughs`)||e.createObjectStore(`playthroughs`,{keyPath:`id`}).createIndex(`ifid`,`ifid`,{unique:!1}),e.objectStoreNames.contains(`meta`)||e.createObjectStore(`meta`,{keyPath:`key`})},n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error)}),e)}function n(e,n){return t().then(t=>t.transaction(e,n).objectStore(e))}function r(e){return new Promise((t,n)=>{e.onsuccess=()=>t(e.result),e.onerror=()=>n(e.error)})}async function i(e,t,i){return await r((await n(e,`readonly`)).index(t).getAll(i))??[]}return{type:`indexeddb`,async putSave(e){await r((await n(`saves`,`readwrite`)).put(e))},async getSave(e){return await r((await n(`saves`,`readonly`)).get(e))??void 0},async deleteSave(e){await r((await n(`saves`,`readwrite`)).delete(e))},async getSavesByIfid(e){return i(`saves`,`ifid`,e)},async deleteSavesByIfid(e){let t=await i(`saves`,`ifid`,e),a=await n(`saves`,`readwrite`);for(let e of t)await r(a.delete(e.meta.id))},async deleteSavesByPlaythrough(e){let t=await i(`saves`,`playthroughId`,e),a=await n(`saves`,`readwrite`),o=[];for(let e of t)await r(a.delete(e.meta.id)),o.push(e.meta.id);return o},async putPlaythrough(e){await r((await n(`playthroughs`,`readwrite`)).put(e))},async getPlaythroughsByIfid(e){return i(`playthroughs`,`ifid`,e)},async deletePlaythroughsByIfid(e){let t=await i(`playthroughs`,`ifid`,e),a=await n(`playthroughs`,`readwrite`);for(let e of t)await r(a.delete(e.id))},async deletePlaythroughById(e){await r((await n(`playthroughs`,`readwrite`)).delete(e))},async getMeta(e){let t=await r((await n(`meta`,`readonly`)).get(e));return t?t.value:void 0},async setMeta(e,t){await r((await n(`meta`,`readwrite`)).put({key:e,value:t}))},async deleteMeta(e){await r((await n(`meta`,`readwrite`)).delete(e))},async deleteMetaByPrefix(e){let t=await r((await n(`meta`,`readwrite`)).getAll());for(let i of t)i.key.startsWith(e)&&await r((await n(`meta`,`readwrite`)).delete(i.key))},async deleteMetaByIfid(e){let t=await r((await n(`meta`,`readwrite`)).getAll());for(let i of t)i.key.includes(e)&&await r((await n(`meta`,`readwrite`)).delete(i.key))},async getAllMetaKeys(){return(await r((await n(`meta`,`readonly`)).getAll())).map(e=>e.key)},async destroy(){(await t()).close(),e=null,await new Promise((e,t)=>{let n=indexedDB.deleteDatabase(nd);n.onsuccess=()=>e(),n.onerror=()=>t(n.error)})}}}var ad=null;async function od(){if(typeof indexedDB<`u`)try{return await new Promise((e,t)=>{let n=indexedDB.open(`__spindle_probe__`,1);n.onsuccess=()=>{n.result.close(),indexedDB.deleteDatabase(`__spindle_probe__`),e()},n.onerror=()=>t(n.error)}),id()}catch{}if(typeof localStorage<`u`)try{let e=`__spindle_probe__`;localStorage.setItem(e,`1`);let t=localStorage.getItem(e);if(localStorage.removeItem(e),t===`1`)return td()}catch{}return Hu()}var sd=null;function X(){if(ad)return Promise.resolve(ad);if(!sd){let e=od().then(t=>(sd===e&&(ad=t),t));sd=e}return sd}function cd(){ad=null,sd=null}function ld(){return ad?.type??`memory`}var ud=new Set([`storyinit`,`beforerestart`,`actionsChanged`,`variableChanged`,`beforesave`,`aftersave`,`beforeload`,`afterload`,`beforenavigate`,`afternavigate`,`passagerender`,`dialogrender`]),dd=new Map;function fd(e,t){if(!ud.has(e))throw Error(`spindle: Unknown event \"${e}\".`);let n=dd.get(e);return n||(n=new Set,dd.set(e,n)),n.add(t),()=>{n.delete(t)}}function pd(e,t){let n=dd.get(e);if(n)for(let e of[...n])t(e)}function md(e,...t){pd(e,e=>e(...t))}function hd(e,...t){pd(e,n=>{try{n(...t)}catch(t){console.error(`spindle: Error in ${e} handler:`,t)}})}var gd=null,_d=null;function vd(e){gd=e}function yd(e){_d=e}function bd(e){if(_d)try{let t=Function(`passage`,`variables`,_d)(e.passage,e.variables);if(typeof t==`string`&&t.trim())return t.trim()}catch{}if(gd)try{let t=gd(e);if(typeof t==`string`&&t.trim())return t.trim()}catch{}let t=new Date().toLocaleTimeString(void 0,{hour:`2-digit`,minute:`2-digit`});return`${e.passage} - ${t}`}var xd=Promise.resolve();function Z(e){let t=xd.then(e);return xd=t.catch(()=>{}),t}function Sd(e,t=crypto.randomUUID()){return Z(()=>Cd(e,t))}async function Cd(e,t){let n=await X(),r=await Ed(e),i={id:t,ifid:e,createdAt:new Date().toISOString(),label:`Playthrough ${r}`};return await n.putPlaythrough(i),await n.setMeta(Td(e),r),await n.setMeta(Dd(e),t),t}var wd=/^Playthrough (\\d+)$/;function Td(e){return`playthroughCount.${e}`}async function Ed(e){let t=await X(),n=await t.getMeta(Td(e))??0;for(let r of await t.getPlaythroughsByIfid(e)){let e=wd.exec(r.label);e&&(n=Math.max(n,Number(e[1])))}return n+1}function Dd(e){return`currentPlaythroughId.${e}`}function Od(e,t){return Z(()=>kd(e,t))}async function kd(e,t){let n=await X();(await n.getPlaythroughsByIfid(e)).some(e=>e.id===t)||await n.putPlaythrough({id:t,ifid:e,createdAt:new Date().toISOString(),label:`Imported`});let r=Dd(e);await n.getMeta(r)!==t&&await n.setMeta(r,t)}function Ad(e){return Z(async()=>({id:await(await X()).getMeta(Dd(e))??await Cd(e,crypto.randomUUID()),knownSaves:await tf(e)}))}function jd(e,t,n,r){try{let i=n();return Wi(()=>md(`beforesave`,e,t)),r(i()).then(t=>(Wi(()=>md(`aftersave`,e)),t))}catch(e){return Promise.reject(e)}}function Md(e,t,n,r={}){return Z(()=>Nd(e,t,n,r))}async function Nd(e,t,n,r){let i=new Date().toISOString(),a={id:crypto.randomUUID(),ifid:e,playthroughId:t,createdAt:i,updatedAt:i,title:bd(n),passage:n.passage,custom:r},o=U(n);o.variables=er(o.variables),o.history=o.history.map(e=>({...e,variables:er(e.variables)}));let s={meta:a,payload:o};return s.meta.estimatedBytes=JSON.stringify(o).length,await(await X()).putSave(s),s}function Pd(e,t,n,r){return Z(()=>Fd(e,t,n,r))}async function Fd(e,t,n,r){let i=await X(),a=await i.getSave(e);if(!a)return;let o=U(t);o.variables=er(o.variables),o.history=o.history.map(e=>({...e,variables:er(e.variables)}));let s={meta:{...a.meta,...r?{playthroughId:r}:{},updatedAt:new Date().toISOString(),title:a.meta.userTitle===!0?a.meta.title:bd(t),passage:t.passage,...n==null?{}:{custom:{...a.meta.custom,...n}}},payload:o};return s.meta.estimatedBytes=JSON.stringify(o).length,await i.putSave(s),s}function Id(e){return{...e,variables:tr(e.variables),history:e.history.map(e=>({...e,variables:tr(e.variables)}))}}function Ld(e){return Z(async()=>{let t=await X(),n=await t.getSave(e);if(await t.deleteSave(e),!n)return;let r=n.meta.ifid,i=[void 0,...await Yd(r)];for(let n of i){let i=Gd(r,n);await t.getMeta(i)===e&&(await t.deleteMeta(i),await Jd(r,n))}})}function Rd(e,t){return Z(async()=>{let n=await X(),r=await n.getSave(e);if(!r)return;let i={...r,meta:{...r.meta,title:t,userTitle:!0,updatedAt:new Date().toISOString()}};await n.putSave(i)})}function zd(e){return Z(()=>Bd(e))}async function Bd(e){let t=await X(),[n,r]=await Promise.all([t.getSavesByIfid(e),t.getPlaythroughsByIfid(e)]),i=new Map;for(let e of r)i.set(e.id,e);let a=new Map;for(let e of n){let t=e.meta.playthroughId,n=a.get(t);n?n.push(e):a.set(t,[e])}for(let e of a.values())e.sort((e,t)=>new Date(t.meta.updatedAt).getTime()-new Date(e.meta.updatedAt).getTime());let o=[],s=[...i.values()].sort((e,t)=>new Date(t.createdAt).getTime()-new Date(e.createdAt).getTime());for(let e of s){let t=a.get(e.id)??[];o.push({playthrough:e,saves:t})}for(let[t,n]of a)i.has(t)||o.push({playthrough:{id:t,ifid:e,createdAt:n[0]?.meta.createdAt??new Date().toISOString(),label:`Unknown Playthrough`},saves:n});return o}var Vd=`autosave.`,Hd=`slot.`,Ud=`slotIndex.`;function Wd(e){return e!=null&&e!==``}function Gd(e,t){return Wd(t)?`${Hd}${t}.${e}`:`${Vd}${e}`}async function Kd(e,t){let n=await X(),r=`${Ud}${e}`,i=await n.getMeta(r)??[],a=t(i);a!==i&&await n.setMeta(r,a)}function qd(e,t){return Wd(t)?Kd(e,e=>e.includes(t)?e:[...e,t]):Promise.resolve()}function Jd(e,t){return Wd(t)?Kd(e,e=>e.filter(e=>e!==t)):Promise.resolve()}async function Yd(e){let t=`${Ud}${e}`;return(await(await X()).getMeta(t)??[]).filter(Wd)}function Xd(e,t){return{slot:Wd(t)?t:``,title:e.meta.title,passage:e.meta.passage,createdAt:e.meta.createdAt,updatedAt:e.meta.updatedAt,custom:e.meta.custom??{}}}function Zd(e,t,n,r,i){let a=Gd(e,r);return Z(async()=>{let o=await t,s=await X(),c=await s.getMeta(a);if(c){let e=await Fd(c,n,i,o);if(e)return e}let l=await Nd(e,o,n,{isAutosave:!Wd(r),...Wd(r)?{slot:r}:{},...i});return await s.setMeta(a,l.meta.id),await qd(e,r),l})}async function Qd(e,t){let n=await X(),r=Gd(e,t),i=await n.getMeta(r);return i?await n.getSave(i)!==void 0:!1}function $d(e,t){let n=Gd(e,t);return Z(async()=>{let t=await X(),r=await t.getMeta(n);if(!r)return;let i=await t.getSave(r);if(!i)return;let a=Id(i.payload),{playthroughId:o}=i.meta;return o&&await kd(e,o),{payload:a,playthroughId:o}})}function ef(e){return Z(()=>tf(e))}async function tf(e){let t=Object.create(null);await Qd(e)&&(t[``]=!0);for(let n of await Yd(e))await Qd(e,n)&&(t[n]=!0);return t}function nf(e,t){return Z(()=>rf(e,t))}async function rf(e,t){let n=await X(),r=Gd(e,t),i=await n.getMeta(r);if(!i)return null;let a=await n.getSave(i);return a?Xd(a,t):null}function af(e){return Z(async()=>{let t=[],n=await rf(e);n&&t.push(n);for(let n of await Yd(e)){let r=await rf(e,n);r&&t.push(r)}return t})}function of(e,t){let n=Gd(e,t);return Z(async()=>{let r=await X(),i=await r.getMeta(n);i&&(await r.deleteSave(i),await r.deleteMeta(n),await Jd(e,t))})}var sf=`spindle.session.`;function cf(e,t){try{sessionStorage.setItem(`${sf}${e}`,JSON.stringify(t))}catch{}}function lf(e){try{let t=sessionStorage.getItem(`${sf}${e}`);if(!t)return;let n=JSON.parse(t);return ur(n)?Id(n):void 0}catch{return}}function uf(e){try{sessionStorage.removeItem(`${sf}${e}`)}catch{}}function df(e){return Z(()=>ff(e))}async function ff(e){let t=await(await X()).getSave(e);if(t)return{version:1,ifid:t.meta.ifid,exportedAt:new Date().toISOString(),save:t}}async function pf(e,t){if(e.version!==1)throw Error(`Unsupported save version: ${e.version}`);if(e.ifid!==t)throw Error(`Save is from a different story (expected IFID ${t}, got ${e.ifid})`);if(!ir(e))throw Error(`Invalid save file format`);let n=await X(),r=U(e.save);if(r.meta.id=crypto.randomUUID(),r.meta.updatedAt=new Date().toISOString(),r.meta.ifid=t,!(await n.getPlaythroughsByIfid(t)).some(e=>e.id===r.meta.playthroughId)){let e={id:r.meta.playthroughId,ifid:t,createdAt:r.meta.createdAt,label:`Imported`};await n.putPlaythrough(e)}return r}function mf(e,t){return Z(async()=>{let n=await pf(e,t);return await(await X()).putSave(n),n})}function hf(e,t){return Z(async()=>{let n=await(await X()).getMeta(Gd(e,t));if(n)return ff(n)})}function gf(e,t,n){let r=Gd(t,n);return Z(async()=>{let i=await pf(e,t),{slot:a,...o}=i.meta.custom??{};i.meta.custom={...o,isAutosave:!Wd(n),...Wd(n)?{slot:n}:{}};let s=await X(),c=await s.getMeta(r);return await s.putSave(i),await s.setMeta(r,i.meta.id),await qd(t,n),c&&await s.deleteSave(c),Xd(i,n)})}function _f(e){return Z(()=>vf(e))}async function vf(e){let t=await X(),n=await t.getSavesByIfid(e),r=await t.getPlaythroughsByIfid(e),i=0;for(let e of n)if(e.meta.estimatedBytes!=null)i+=e.meta.estimatedBytes;else{let n=JSON.stringify(e.payload).length;e.meta.estimatedBytes=n,await t.putSave(e),i+=n}return{saveCount:n.length,playthroughCount:r.length,totalBytes:i,backend:t.type}}function yf(e){return Z(async()=>{let t=await X();await t.deleteSavesByIfid(e),await t.deletePlaythroughsByIfid(e),await t.deleteMetaByIfid(e),uf(e)})}function bf(){return Z(xf)}async function xf(){if(await(await X()).destroy(),cd(),typeof sessionStorage<`u`){let e=[];for(let t=0;t<sessionStorage.length;t++){let n=sessionStorage.key(t);n?.startsWith(`spindle.session.`)&&e.push(n)}for(let t of e)sessionStorage.removeItem(t)}}function Sf(e,t,n){return Z(async()=>{let r=await X(),i=await r.deleteSavesByPlaythrough(t);await r.deletePlaythroughById(t);let a=new Set(i);for(let t of[void 0,...await Yd(e)]){let n=Gd(e,t),i=await r.getMeta(n);i&&a.has(i)&&(await r.deleteMeta(n),await Jd(e,t))}if(n&&await n.current===t)return await Cd(e,n.id),!0;let o=Dd(e);return await r.getMeta(o)===t&&await r.deleteMeta(o),!1})}var Cf=null;function wf(){Cf&&(fe(null,Cf),Cf.remove(),Cf=null)}function Tf(){wf();let e=Q.getState();if(!e.storyData)return;let t=e.storyData.passages.get(`StoryInit`);if(t){let e=wi(vi(t.content)),n=document.createElement(`div`);n.style.display=`none`,document.body.appendChild(n),Cf=n,fe(b(()=>Vu(e),null),n),Qp()}let n=e.storyData.passages.get(`SaveTitle`);n&&yd(n.content)}function Ef(e){Tf(),e&&Q.getState().loadFromPayload(e),md(`storyinit`),e||Qp()}function Df(e,t){let n=e;for(let e of t){if(typeof n!=`object`||!n||e in Object.prototype&&!$i(n,e))return;n=n[e]}return n}var Of=e=>e===`length`||/^(0|[1-9]\\d*)$/.test(e),kf=e=>e instanceof Map?`a Map`:e instanceof Set?`a Set`:e instanceof Date?`a Date`:e instanceof RegExp?`a RegExp`:void 0;function Af(e){let t=Array.isArray(e)?[]:Object.create(Object.getPrototypeOf(e));for(let n of Object.keys(e))Object.defineProperty(t,n,{value:e[n],enumerable:!0,writable:!0,configurable:!0});return t}function jf(e,t,n,r={}){let i=Ff(e,t,r.createMissing??!1);i[t[t.length-1]]=n}function Mf(e,t){let n=t[t.length-1];Nf(t);let r=e;for(let e of t.slice(0,-1)){if(typeof r!=`object`||!r||!$i(r,e))return;r=r[e]}if(typeof r!=`object`||!r||!$i(r,n))return;let i=Ff(e,t,!1);delete i[n]}function Nf(e){if(e.includes(`__proto__`))throw TypeError(`spindle: Cannot use \"__proto__\" in a variable path (\"${e.join(`.`)}\")`)}function Pf(e,t,n,r){let i=kf(e)??(Array.isArray(e)&&!Of(t)?`an array`:``);if(i)throw TypeError(`spindle: Cannot set property \"${t}\" on ${i} (at \"${n.slice(0,r).join(`.`)}\")`)}function Ff(e,t,n){Nf(t);let r=St(e),i=e;for(let e=0;e<t.length-1;e++){let a=t[e];Pf(i,a,t,e);let o=$i(i,a)?i[a]:void 0;if(typeof o!=`object`||!o){if(!n)throw TypeError(`spindle: Cannot set property \"${t[e+1]}\" on ${o===null?`null`:typeof o} (at \"${t.slice(0,e+1).join(`.`)}\")`);o={},i[a]=o}else r&&!St(o)&&!kf(o)&&(o=Af(o),i[a]=o);i=o}return Pf(i,t[t.length-1],t,t.length-1),i}var If=[`variables`,`temporary`,`transient`],Lf=[];function Rf(){return Lf[Lf.length-1]?.work}function zf(){let e=Q.getState(),t=Rf();return t?{...e,...t}:e}var Bf=e=>U(e,{keepUnregistered:!0});function Vf(e){return Wt(Bf(e),!0)}function Hf(e){return typeof e==`object`&&!!e&&!Array.isArray(e)&&!(e instanceof Map)&&!(e instanceof Set)&&!(e instanceof Date)&&!(e instanceof RegExp)}var Uf=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);function Wf(e,t,n,r,i){if(!i.has(t)){i.add(t);for(let a of Object.keys(t)){let o=e[a],s=t[a];if(!Uf(e,a))r.push({path:[...n,a],deleted:!1,value:s});else if(Object.is(o,s))continue;else Hf(o)&&Hf(s)&&Object.getPrototypeOf(o)===Object.getPrototypeOf(s)?Wf(o,s,[...n,a],r,i):Kn(o,s)||r.push({path:[...n,a],deleted:!1,value:s})}for(let i of Object.keys(e))Uf(t,i)||r.push({path:[...n,i],deleted:!0});i.delete(t)}}function Gf(e,t){let n=Df(e,t.path.slice(0,-1));if(typeof n!=`object`||!n)return t.deleted;let r=t.path[t.path.length-1];return Uf(n,r)?!t.deleted&&Kn(n[r],t.value):t.deleted}function Kf(e,t){t.deleted?Mf(e,t.path):jf(e,t.path,t.value)}function qf(e,t,n,r=Lf){let i=n.path[0];for(let a of r)for(let r of[a.work[t],a.base[t]])try{Kf(r,n.deleted?n:{...n,value:Bf(n.value)})}catch{let n=e[t][i];Uf(e[t],i)?r[i]=Bf(St(n)?jn(n):n):delete r[i]}}var Jf=new Set(If),Yf=new kn({autoFreeze:!1}),Xf=!1;function Zf(e,t){let n=[],r=e;for(let e of t){if(!Hf(r))break;let t=String(e);n.push(t),r=Uf(r,t)?r[t]:void 0}return n}function Qf(e,t){let n=Df(e,t.slice(0,-1)),r=t[t.length-1];return Hf(n)&&Uf(n,r)?{path:t,deleted:!1,value:n[r]}:{path:t,deleted:!0}}function $f(e,t,n){if(n.some(e=>e.path.length===1))return[...new Set([...Object.keys(e),...Object.keys(t)])].filter(n=>!Uf(e,n)||e[n]!==t[n]).map(e=>Qf(t,[e]));let r=new Set,i=[];for(let e of n){let n=Zf(t,e.path.slice(1)),a=JSON.stringify(n);r.has(a)||(r.add(a),i.push(Qf(t,n)))}return i}function ep(e){if(Xf){Xf=!1;return}if(Lf.length===0)return;np(rp());let t=Lf[Lf.length-1],n={...Q.getState(),variables:t.work.variables,temporary:t.work.temporary,transient:t.work.transient},[r,i]=Yf.produceWithPatches(n,e),a=If.map(e=>{let t=i.filter(t=>t.path[0]===e);return[e,t.length?$f(n[e],r[e],t):[]]}),o=e=>e.deleted?e:{...e,value:Bf(e.value)};for(let[e,n]of a)for(let r of n)Kf(t.work[e],o(r));return e=>{let i=e;for(let e of Object.keys(r)){let t=r[e];!Jf.has(e)&&t!==n[e]&&(i[e]=t)}let s=e;for(let[e,n]of a)for(let r of n){let n=r.path[0];try{Kf(s[e],o(r))}catch{Uf(t.work[e],n)?s[e][n]=Bf(t.work[e][n]):delete s[e][n]}qf(s,e,r)}}}var tp=e=>({variables:U(e.variables),temporary:U(e.temporary),transient:U(e.transient)});function np(e){let t=e.map(({scope:e,keepRunning:t})=>({scope:e,keepRunning:t,changes:If.map(t=>{let n=[];return Wf(e.base[t],e.work[t],[],n,new Set),[t,n]})})),n=t.filter(({changes:e})=>e.some(([,e])=>e.length>0));if(n.length===0)return;for(let{scope:e,keepRunning:t}of n)t&&(e.base=tp(e.work));Xf=!0;try{Q.getState().updateVariables(r)}finally{Xf=!1}function r(e){t.forEach(({scope:n,keepRunning:r,changes:i},a)=>{let o=e=>r?Bf(e):e;for(let[r,s]of i){let i=new Set;for(let t of s){let a=t.path[0];if(!(i.has(a)||Gf(e[r],t)))try{Kf(e[r],t.deleted?t:{...t,value:o(t.value)})}catch{e[r][a]=o(n.work[r][a]),i.add(a)}}let c=t.slice(0,a).map(e=>e.scope);for(let t of s)qf(e,r,t,c)}})}}var rp=()=>Lf.map(e=>({scope:e,keepRunning:!0}));function ip(e){let t=Q.getState();for(let n of If){let r=e.work[n],i=t[n];for(let e of Object.keys(r))Uf(i,e)||delete r[e];for(let e of Object.keys(i))(!Uf(r,e)||!Kn(r[e],i[e]))&&(r[e]=U(i[e]))}e.base=tp(t)}function ap(e){if(Lf.length===0)return e();np(rp());let t=Lf.splice(0);try{return e()}finally{Lf.push(...t);for(let e of t)ip(e)}}function op(e,t,n){let r=Rf()??Q.getState(),i={work:tp(r),base:tp(r)},a=ra(U(t,{keepUnregistered:!0}));Lf.push(i);try{Ea(e,i.work.variables,i.work.temporary,a,i.work.transient)}finally{Lf.pop()}np([...rp(),{scope:i,keepRunning:!1}]);for(let e of Object.keys(a))Kn(a[e],t[e])||n(e,a[e]);for(let e of Object.keys(t))Uf(a,e)||n(e,void 0)}var sp=[],cp=!1,lp=[],up=null,dp=null;function fp(e){let t=zf();try{return!!Ta(e,t.variables,t.temporary,{},t.transient)}catch{return!1}}function pp(e,t,n){let r=typeof t==`function`,i=r?void 0:t,a=r?t:void 0,o={name:i?.name,condition:e,callback:a,options:i,lastResult:fp(e),priority:i?.priority??0,macroKey:n};return sp.push(o),sp.sort((e,t)=>t.priority-e.priority),()=>{sp=sp.filter(e=>e!==o)}}function mp(e,t){return pp(e,t)}function hp(e,t){let n=Object.fromEntries(Object.entries(t).sort(([e],[t])=>e<t?-1:1)),r=JSON.stringify([e,n]);sp.some(e=>e.macroKey===r)||pp(e,t,r)}function gp(e){sp=sp.filter(t=>t.name!==e)}function _p(e){let{callback:t,options:n}=e;if(t){t();return}if(n){if(n.run)try{op(n.run,{},()=>{})}catch(t){console.error(`spindle: Error in watch run action for \"${e.condition}\":`,t)}n.dialog&&(lp.push({passageName:n.dialog}),up?.()),n.goto&&Q.getState().navigate(n.goto)}}var vp=10;function yp(){for(let e=0;e<vp;e++){let e=!1,t=[...sp];for(let n of t){if(!sp.includes(n))continue;let t=fp(n.condition),r=!n.lastResult;n.lastResult=t,t&&r&&(e=!0,n.options?.once&&(sp=sp.filter(e=>e!==n)),_p(n))}if(!e)break}}function bp(){if(!cp){cp=!0;try{yp()}finally{cp=!1}}}var xp=0;function Sp(){if(xp===0)return;let e=cp;cp=!0;try{yp()}finally{cp=e}}function Cp(){let e=Q.getState();xp++;let t=Q.subscribe(t=>{let n=e;e=t,t.navigationId===n.navigationId&&(t.variables===n.variables&&t.temporary===n.temporary&&t.transient===n.transient||bp())}),n=!0;return()=>{n&&(n=!1,xp--,t())}}function wp(){for(let e of sp)e.lastResult=fp(e.condition)}function Tp(){sp=[],lp=[],dp?.closeAll()}function Ep(e){return up=e,lp.length>0&&e(),()=>{up===e&&(up=null)}}function Dp(){return lp.shift()}function Op(){return lp.length}function kp(e){dp?dp.push(e):(lp.push(e),up?.())}function Ap(){lp=[]}function jp(e){return dp=e,()=>{dp===e&&(dp=null)}}function Mp(){dp?.close()}function Np(){Ap(),dp?.closeAll()}function Pp(){return dp?.isOpen()??!1}Nn(),Pn();var Fp=new Set([`StoryInit`,`StoryInterface`,`StoryVariables`,`StoryTransients`,`StoryLoading`,`SaveTitle`,`PassageReady`,`PassageHeader`,`PassageFooter`,`PassageDone`]),Ip=G(),Lp=[],Rp=G();function zp(e){return e.map(e=>({...e,value:e.value===void 0?void 0:U(e.value)}))}function Bp(e,t){let[,n,r]=Ln(e,e=>{let n=e;for(let e of Object.keys(n))Object.prototype.hasOwnProperty.call(t,e)||delete n[e];for(let[e,r]of Object.entries(t))n[e]=r});return{forward:zp(n),inverse:zp(r)}}function Vp(e){let t=Lp.length-1;t<0?Ip=e:Lp[t]=Bp(Hp(t),e)}function Hp(e){let t=Ip;for(let n=0;n<e;n++)t=Rn(t,Lp[n].forward);return t}var Up=[];function Wp(e){let{storyData:t,currentPassage:n,variables:r,history:i,historyIndex:a,visitCounts:o,renderCounts:s}=e();if(t){if(Up.length>i.length&&(Up.length=i.length),Up.length<i.length)if(i.length-Up.length===1){let e=i.length-1;Up[e]={passage:i[e].passage,variables:er(r),timestamp:i[e].timestamp,prng:i[e].prng}}else{let e=Ip;for(let t=0;t<i.length;t++)t>0&&(e=Rn(e,Lp[t-1].forward)),t>=Up.length&&(Up[t]={passage:i[t].passage,variables:er(e),timestamp:i[t].timestamp,prng:i[t].prng})}cf(t.ifid,{passage:n,variables:er(r),history:Up,historyIndex:a,visitCounts:o,renderCounts:s,prng:Gi()})}}function Gp(e){let t=e.history.length-e.maxHistory;if(t<=0)return!1;let n=Math.min(e.historyIndex,t),r=n+e.maxHistory;for(let e=0;e<n;e++)Ip=Rn(Ip,Lp[e].forward);return e.history=e.history.slice(n,r),Lp=Lp.slice(n,r-1),Up=Up.slice(n,r),e.historyIndex-=n,!0}var Kp=!1,qp=[],Jp=null;function Yp(e,t){let n=Jp;if(Jp=null,!n||e().navigationId!==n.navigationId)return;e().variables!==n.variables&&Vp(e().variables),Rp=e().variables;let r=Gi(),i=e().history[e().historyIndex].prng;(r?.seed!==i?.seed||r?.pull!==i?.pull)&&t(e=>{e.history[e.historyIndex].prng=r})}var Xp=e=>({...U(e)});function Zp(e){Ip=e,Lp=[],Rp=e,Up=[]}function Qp(){let{history:e,historyIndex:t,variables:n}=Q.getState();if(e.length!==1||t!==0)return;Ip=n,Lp=[],Rp=n,Up=[];let r=Gi();Q.setState(e=>{e.history[0].prng=r})}var $p=Promise.resolve(``),em=0,tm=!1;function nm(){return tm?``:Q.getState().playthroughId}function rm(){let e=nm();return $p.then(t=>e||t)}function im(e){Q.getState().playthroughId!==e&&Q.setState(t=>{t.playthroughId=e})}function am(e){let t=++em;return tm=!0,$p=e.then(e=>(t===em&&(tm=!1,im(e)),e)),$p}function om(e,t){++em,tm=!1,$p=t.then(()=>e,()=>e),im(e)}function sm(e){let t=crypto.randomUUID();om(t,Sd(e,t).catch(e=>{console.error(`spindle: failed to start new playthrough`,e)}))}function cm(e,t){nm()!==t&&om(t,Od(e,t).catch(e=>{console.error(`spindle: failed to switch to the loaded playthrough`,e)}))}var lm=0,um=0,dm=null;function fm(){um=++lm}var pm=[],mm=!1;function hm(e){mm&&pm.push(e)}function gm(){mm=!0}function _m(){for(let e of pm)e();pm=[],mm=!1}function vm(e){return typeof e==`string`&&e!==``?e:null}function ym(e){let{history:t,historyIndex:n}=e;if(!Number.isInteger(n))return;let r=t[n];if(!(!r||r.passage!==e.passage)&&!(typeof r.variables!=`object`||r.variables===null))return r}function bm(e,t,n){let r=e.history[e.historyIndex];r&&wm(r.variables,t,n,new Set)}var xm=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);function Sm(e,t){return Array.isArray(e)||Array.isArray(t)?Array.isArray(e)&&Array.isArray(t):Hf(e)&&Hf(t)&&Object.getPrototypeOf(e)===Object.getPrototypeOf(t)}function Cm(e,t,n,r,i){Object.is(n,r)||(Sm(n,r)&&xm(e,t)&&Sm(r,e[t])&&!i.has(r)?wm(e[t],n,r,i):Kn(n,r)||(e[t]=U(r)))}function wm(e,t,n,r){if(r.add(n),Array.isArray(e)){let i=t,a=n,o=Math.min(i.length,a.length,e.length);for(let t=0;t<o;t++)Cm(e,String(t),i[t],a[t],r);a.length<i.length&&(e.length=Math.min(e.length,a.length));for(let t=i.length;t<a.length;t++)e.push(U(a[t]))}else{for(let r of Object.keys(t))xm(n,r)||delete e[r];for(let i of Object.keys(n))xm(t,i)?Cm(e,i,t[i],n[i],r):e[i]=U(n[i])}r.delete(n)}function Tm(e){e?.prng?Vi(e.prng.seed,e.prng.pull):e&&Ui()}var Em=[`variables`,`temporary`,`transient`];function Dm(e){for(let t of Em){let n=e[t];na(n)||(e[t]=G(St(n)?jn(n):n))}}var Om=[`navigate`,`goBack`,`goForward`,`restart`,`save`,`load`,`getSavePayload`,`loadFromPayload`];function km(e){return(t,n,r)=>{let i=((e,n)=>{if(n){t(e,!0);return}let r=typeof e==`function`?e:t=>{Object.assign(t,e)},i=ep(r);t(e=>{(i??r)(e),Dm(e)})});r.setState=i;let a=e(i,n,r);for(let e of Om){let t=a[e];a[e]=(...e)=>ap(()=>t(...e))}return a}}var Am=e=>zn(km(e));function jm(e){return e.catch(()=>{}),e}var Q=dt()(Am((e,t)=>({storyData:null,currentPassage:``,navigationId:0,variables:G(),variableDefaults:{},transient:G(),transientDefaults:{},temporary:G(),history:[],historyIndex:-1,visitCounts:la(),renderCounts:la(),knownSaves:{},playthroughId:``,maxHistory:40,quickSaveKey:`F6`,quickLoadKey:`F9`,saveError:null,loadError:null,transitionConfig:null,nextTransition:null,nobr:!1,renderDeferred:!1,setMaxHistory:n=>{let r=!1;e(e=>{e.maxHistory=Math.max(1,Math.round(n)),r=Gp(e)}),r&&Wp(t)},setQuickSaveKey:t=>{e(e=>{e.quickSaveKey=vm(t)})},setQuickLoadKey:t=>{e(e=>{e.quickLoadKey=vm(t)})},init:(n,r={},i={})=>{let a=n.passagesById.get(n.startNode);if(!a)throw Error(`spindle: Start passage (pid=${n.startNode}) not found.`);let o=G(U(r));Zp(U(o)),e(e=>{e.storyData=n,e.playthroughId=``,e.currentPassage=a.name,e.navigationId++,e.variables=o,e.variableDefaults=r,e.transient=G(U(i)),e.transientDefaults=i,e.temporary=G(),e.history=[{passage:a.name,timestamp:Date.now()}],e.historyIndex=0,e.visitCounts=la(null,a.name),e.renderCounts=la(null,a.name)}),Rp=t().variables,fm(),am(Ad(n.ifid).then(({id:t,knownSaves:n})=>(e(e=>{e.knownSaves=n}),t)).catch(e=>(console.error(`spindle: failed to init save system`,e),``)))},navigate:n=>{if(Kp){qp.push(n);return}let{storyData:r}=t();if(!r)return;if(Fp.has(n)){console.error(`spindle: Cannot navigate to special passage \"${n}\".`);return}if(!r.passages.has(n)){console.error(`spindle: Passage \"${n}\" not found.`);return}let i=t().currentPassage;md(`beforenavigate`,n);let a=Bp(Rp,t().variables);e(e=>{e.temporary=G(),e.currentPassage=n,e.navigationId++,e.history=e.history.slice(0,e.historyIndex+1),Lp.length=e.historyIndex,Up.length>e.historyIndex+1&&(Up.length=e.historyIndex+1),Lp.push(a),e.history.push({passage:n,timestamp:Date.now(),prng:Gi()}),e.historyIndex=e.history.length-1,Gp(e),e.visitCounts=la(e.visitCounts,n),e.renderCounts=la(e.renderCounts,n)}),Jp={navigationId:t().navigationId,variables:t().variables},Kp=!0;try{Sp()}finally{Kp=!1}let o=qp;qp=[],Yp(t,e),Wp(t),md(`afternavigate`,n,i);for(let e of o)t().navigate(e)},goBack:()=>{let{historyIndex:n}=t();if(n<=0)return;Yp(t,e);let r=t().currentPassage,i=t().history[n-1].passage;md(`beforenavigate`,i);let a=U(Hp(n-1));e(e=>{e.historyIndex--,e.currentPassage=e.history[e.historyIndex].passage,e.navigationId++,e.variables=a,e.temporary=G()}),wp(),Rp=t().variables,Tm(t().history[t().historyIndex]),Wp(t),md(`afternavigate`,i,r)},goForward:()=>{let{historyIndex:n,history:r}=t();if(n>=r.length-1)return;Yp(t,e);let i=t().currentPassage,a=r[n+1].passage;md(`beforenavigate`,a);let o=U(Hp(n+1));e(e=>{e.historyIndex++,e.currentPassage=e.history[e.historyIndex].passage,e.navigationId++,e.variables=o,e.temporary=G()}),wp(),Rp=t().variables,Tm(t().history[t().historyIndex]),Wp(t),md(`afternavigate`,a,i)},setVariable:(t,n)=>{e(e=>{W(t,`$${t}`),e.variables[t]=n})},setTemporary:(t,n)=>{e(e=>{W(t,`_${t}`),e.temporary[t]=n})},deleteVariable:t=>{e(e=>{W(t,`$${t}`),delete e.variables[t]})},deleteTemporary:t=>{e(e=>{W(t,`_${t}`),delete e.temporary[t]})},setTransient:(t,n)=>{e(e=>{W(t,`%${t}`),e.transient[t]=n})},deleteTransient:t=>{e(e=>{W(t,`%${t}`),delete e.transient[t]})},updateVariables:t=>{e(e=>{t(e)})},trackRender:t=>{e(e=>{e.renderCounts=la(e.renderCounts,t)})},restart:()=>{let{storyData:n,variableDefaults:r,transientDefaults:i}=t();if(!n)return;let a=n.passagesById.get(n.startNode);if(!a)return;e(e=>{e.renderDeferred=!1}),md(`beforerestart`),sm(n.ifid),fm();let o=t().renderDeferred;_m(),Ui(),Tp();let s=G(U(r));Zp(U(s)),e(e=>{e.currentPassage=a.name,e.navigationId++,e.variables=s,e.transient=G(U(i)),e.temporary=G(),e.history=[{passage:a.name,timestamp:Date.now()}],e.historyIndex=0,e.visitCounts=la(null,a.name),e.renderCounts=la(null,a.name),o||(e.renderDeferred=!1)}),Rp=t().variables,gm(),Tf(),uf(n.ifid),md(`storyinit`),Qp()},save:(n,r)=>{let{storyData:i}=t();if(!i)return Promise.resolve();let a=rm();return jm(jd(n,r,t().beginSave,async t=>{e(e=>{e.saveError=null}),await Zd(i.ifid,a,t,n,r),e(e=>{e.knownSaves={...e.knownSaves,[n??``]:!0}})}).catch(t=>{throw console.error(`spindle: failed to save`,t),e(e=>{e.saveError=yo(t,`Failed to save`)}),t}))},load:n=>{let{storyData:r}=t();if(!r)return Promise.resolve();e(e=>{e.loadError=null});let i=rm(),a=$d(r.ifid,n),o=am(Promise.all([i,a.catch(()=>void 0)]).then(([e,t])=>t?.playthroughId||e)),s=++lm;return jm(a.then(async e=>{await o,e&&(um>s||(dm=s,t().loadFromPayload(e.payload,n)))}).catch(t=>{throw console.error(`spindle: failed to load save`,t),e(e=>{e.loadError=yo(t,`Failed to load`)}),t}))},hasSave:e=>{let{storyData:n,knownSaves:r}=t();return n?Object.prototype.hasOwnProperty.call(r,e??``):!1},getSaveInfo:async e=>{let{storyData:n}=t();return n?nf(n.ifid,e):null},listSaves:async()=>{let{storyData:e}=t();return e?af(e.ifid):[]},deleteSave:n=>{let{storyData:r}=t();return r?jm(of(r.ifid,n).then(()=>{e(e=>{let t=n??``,{[t]:r,...i}=e.knownSaves;e.knownSaves=i})}).catch(e=>{throw console.error(`spindle: failed to delete save`,e),e})):Promise.resolve()},exportSave:async e=>{let{storyData:n}=t();return n?await hf(n.ifid,e)??null:null},importSave:async(n,r)=>{let{storyData:i}=t();if(!i)throw Error(`spindle: Story is not initialized.`);if(!ir(n))throw Error(`Invalid save file format`);let a=await gf(n,i.ifid,r);return e(e=>{e.knownSaves={...e.knownSaves,[r??``]:!0}}),a},clearGameData:()=>{let{storyData:n}=t();if(!n)return Promise.resolve();let r=yf(n.ifid).then(()=>{e(e=>{e.knownSaves={}})});return t().restart(),jm(r.catch(e=>{throw console.error(`spindle: failed to clear game data`,e),e}))},clearAllData:()=>{let n=bf().then(()=>{e(e=>{e.knownSaves={}})});return t().restart(),jm(n.catch(e=>{throw console.error(`spindle: failed to clear all data`,e),e}))},deletePlaythrough:n=>{let{storyData:r}=t();if(!r)return Promise.resolve();let i=r.ifid,a=nm(),o=$p,s=crypto.randomUUID(),c=Sf(i,n,{current:a||o,id:s});return n!==``&&n===a?om(s,c):a===``&&am(c.then(e=>e?s:o,()=>o)),jm(c.then(async()=>{let t=await ef(r.ifid);e(e=>{e.knownSaves=t})}).catch(e=>{throw console.error(`spindle: failed to delete playthrough`,e),e}))},getSavePayload:()=>{let{currentPassage:e,variables:n,history:r,historyIndex:i,visitCounts:a,renderCounts:o}=t(),s=[],c=Ip;for(let e=0;e<r.length;e++)e>0&&(c=Rn(c,Lp[e-1].forward)),s.push({passage:r[e].passage,variables:Xp(c),timestamp:r[e].timestamp,prng:r[e].prng});return{passage:e,variables:Xp(n),history:s,historyIndex:i,visitCounts:{...a},renderCounts:{...o},prng:Gi()}},beginSave:()=>{let e=t().variables;return()=>{let n=t().getSavePayload();return bm(n,e,t().variables),n}},loadFromPayload:(n,r,i)=>{let a=dm??++lm;if(dm=null,n.history.length===0){console.warn(`loadFromPayload: rejecting payload with empty history`);return}um=a,md(`beforeload`,r);let o=t().storyData?.ifid;i&&o&&cm(o,i);let s=ym(n),c=G(U(n.history[0]?.variables??{})),l=[],u=c;for(let e=1;e<n.history.length;e++){let t=G(U(n.history[e].variables));l.push(Bp(u,t)),u=t}Ip=U(c),Lp=l,Up=n.history.map(e=>({passage:e.passage,variables:er(e.variables),timestamp:e.timestamp,prng:e.prng})),e(e=>{e.currentPassage=n.passage,e.navigationId++,e.variables=G(U(s?.variables??n.variables)),e.history=n.history.map(e=>({passage:e.passage,timestamp:e.timestamp,prng:e.prng})),e.historyIndex=Math.max(0,Math.min(n.historyIndex,e.history.length-1)),Gp(e),e.visitCounts=la(n.visitCounts),e.renderCounts=la(n.renderCounts),e.temporary=G(),e.transient=G(U(t().transientDefaults))}),wp(),Rp=Hp(t().historyIndex);let d=s?.prng===void 0?n.prng:s.prng;d?Vi(d.seed,d.pull):Ui(),Wp(t),Wi(()=>md(`afterload`,r))},getHistoryVariables:e=>U(Hp(e)),setTransition:t=>{e(e=>{e.transitionConfig=t})},setNextTransition:t=>{e(e=>{e.nextTransition=t})},consumeNextTransition:()=>{let n=t().nextTransition;return n!==null&&e(e=>{e.nextTransition=null}),n},deferRender:()=>{e(e=>{e.renderDeferred=!0})},clearDeferredRender:()=>{e(e=>{e.renderDeferred=!1})}}))),Mm=`<header class=\"story-menubar\">{story-title}{back}{forward}{restart}{quicksave}{quickload}{saves}{settings}</header>\n{passage}`;function Nm(){let e=Q(e=>e.storyData)?.passages.get(`StoryInterface`),t=e===void 0?Mm:e.content,n=e?.tags.includes(`nobr`)??!1,r=R(()=>{try{return K(S,{children:Nu(wi(vi(t)))})}catch(e){return K(`span`,{class:`error`,children:[`Error in StoryInterface: `,yo(e)]})}},[t]);return n?K(Xl.Provider,{value:!0,children:r}):r}var Pm=[`a[href]`,`area[href]`,`button:not([disabled])`,`input:not([disabled]):not([type=\"hidden\"])`,`select:not([disabled])`,`textarea:not([disabled])`,`iframe`,`[contenteditable=\"true\"]`,`[tabindex]:not([tabindex=\"-1\"])`].join(`,`);function Fm(e){return Array.from(e.querySelectorAll(Pm)).filter(e=>!e.hidden&&!e.closest(`[hidden], [inert]`))}var Im=[];function Lm(e,t,n,r){De(()=>{let n=e.current;if(!n)return;let r=document.activeElement instanceof HTMLElement?document.activeElement:null,i={panel:n};Im.push(i);let a=n.querySelector(t)??n;return(n.querySelector(`[autofocus]`)??Fm(a)[0]??n).focus(),()=>{let e=Im.indexOf(i);e!==-1&&Im.splice(e,1);let t=document.activeElement;(!t||t===document.body||n.contains(t))&&r?.isConnected&&r.focus()}},[]),De(()=>{let t=e.current;if(!t)return;let i=e=>{if(Im[Im.length-1]?.panel!==t)return;if(e.key===`Escape`){if(!n)return;e.preventDefault(),e.stopPropagation(),r();return}if(e.key!==`Tab`)return;let i=Fm(t),a=i[0],o=i[i.length-1],s=document.activeElement,c=s!==t&&t.contains(s);!a||!o?(e.preventDefault(),t.focus()):e.shiftKey&&(s===a||!c)?(e.preventDefault(),o.focus()):!e.shiftKey&&(s===o||!c)&&(e.preventDefault(),a.focus())};return document.addEventListener(`keydown`,i),()=>document.removeEventListener(`keydown`,i)},[n,r])}var Rm=pe(null);function zm({passageName:e,fallbackMarkup:t,panelClass:n,onClose:r,dismissible:i=!0,showCloseButton:a=i}){let o=L(r);o.current=r;let s=Oe(()=>o.current(),[]),c=Q(e=>e.storyData),l=e?c?.passages.get(e):void 0,u=l?.content??t,d=l?.tags.includes(`nobr`)??!1,f=R(()=>{if(!u)return K(`div`,{class:`error`,children:`Dialog: no content available`});try{let e=Vu(wi(vi(u)),d?{nobr:!0}:void 0);return d?K(Xl.Provider,{value:!0,children:e}):e}catch(e){return K(`div`,{class:`error`,children:[`Error in dialog: `,yo(e)]})}},[u,d]),p=L(null);Lm(p,`.dialog-body`,i,s),De(()=>{p.current&&hd(`dialogrender`,e??``,p.current)},[]);let m=e=>{i&&e.target.classList.contains(`dialog-overlay`)&&s()},h=n?`dialog-panel ${n}`:`dialog-panel`;return K(Rm.Provider,{value:s,children:K(`div`,{class:`dialog-overlay`,onClick:m,children:K(`div`,{ref:p,class:h,role:`dialog`,\"aria-modal\":`true`,tabIndex:-1,children:[a&&K(`button`,{class:`dialog-close`,\"aria-label\":`Close`,onClick:s,children:`✕`}),K(`div`,{class:`dialog-body`,children:f})]})})})}function Bm(){let[e,t]=I([]),n=L(e);n.current=e;let r=Oe(e=>{t(t=>[...t,e])},[]),i=Oe(()=>{t(e=>e.slice(0,-1))},[]),a=Oe(()=>{t([])},[]);return Ee(()=>jp({close:i,closeAll:a,push:r,isOpen:()=>n.current.length>0}),[i,a,r]),Ee(()=>Ep(()=>{let e=[];for(;Op()>0;){let t=Dp();t&&e.push(t)}e.length>0&&t(t=>[...t,...e])}),[]),e.length===0?null:K(S,{children:e.map((e,t)=>K(zm,{passageName:e.passageName,panelClass:e.panelClass,onClose:i,showCloseButton:e.showCloseButton,dismissible:e.dismissible},`${e.passageName}-${t}`))})}function Vm(){let{storyData:e,currentPassage:t,nobr:n}=Ai(`storyData`,`currentPassage`,`nobr`);if(Ee(()=>{let e=e=>{let{quickSaveKey:t,quickLoadKey:n,save:r,load:i}=Q.getState();t!==null&&e.key===t?(e.preventDefault(),r()):n!==null&&e.key===n&&(e.preventDefault(),i())};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[]),!e||!t)return K(`div`,{class:`loading`,children:`Loading...`});let r=K(S,{children:[K(Nm,{}),K(Bm,{})]});return n?K(Xl.Provider,{value:!0,children:r}):r}function Hm(e){return e.replace(/</g,`<`).replace(/>/g,`>`).replace(/"/g,`\"`).replace(/'/g,`'`).replace(/&/g,`&`)}function Um(){let e=document.querySelector(`tw-storydata`);if(!e)throw Error(`spindle: No <tw-storydata> element found in the document.`);let t=e.getAttribute(`name`)||`Untitled`,n=parseInt(e.getAttribute(`startnode`)||`1`,10),r=e.getAttribute(`ifid`)||``,i=e.getAttribute(`format`)||``,a=e.getAttribute(`format-version`)||``,o=e.querySelector(`[type=\"text/twine-css\"]`)?.textContent||``,s=e.querySelector(`[type=\"text/twine-javascript\"]`)?.textContent||``,c=new Map,l=new Map;for(let t of e.querySelectorAll(`tw-passagedata`)){let e=parseInt(t.getAttribute(`pid`)||`0`,10),n=t.getAttribute(`name`)||``,r=(t.getAttribute(`tags`)||``).split(/\\s+/).filter(e=>e.length>0),i=Hm(t.innerHTML),a={},o=new Set([`pid`,`name`,`tags`]);for(let e of t.attributes)o.has(e.name)||(a[e.name]=e.value);let s={pid:e,name:n,tags:r,metadata:a,content:i};c.set(n,s),l.set(e,s)}return{name:t,startNode:n,ifid:r,format:i,formatVersion:a,passages:c,passagesById:l,userCSS:o,userScript:s}}var Wm=new Map,Gm=G(),Km=!1,qm=null;function Jm(){return`spindle.${Q.getState().storyData?.ifid||`unknown`}.settings`}function Ym(){localStorage.setItem(Jm(),JSON.stringify(Gm))}function Xm(){if(!Km){if(!Q.getState().storyData?.ifid){qm||(qm=Q.subscribe(e=>{e.storyData?.ifid&&(qm?.(),qm=null,Xm())}));return}Km=!0;try{let e=localStorage.getItem(Jm());if(e){let t=JSON.parse(e);typeof t==`object`&&t&&!Array.isArray(t)&&(Gm=G(Gm,t))}}catch{}}}function Zm(e,t){Wm.set(e,t),$i(Gm,e)||(Gm[e]=t.config.default),Xm()}function Qm(e,t){let n=ea(Gm,e);return typeof n==typeof t?n:t}var $m={addToggle(e,t){Zm(e,{type:`toggle`,config:t})},addList(e,t){Zm(e,{type:`list`,config:t})},addRange(e,t){Zm(e,{type:`range`,config:t})},get(e){return ea(Gm,e)},getToggle(e){return Qm(e,!1)},getList(e){return Qm(e,``)},getRange(e){return Qm(e,0)},set(e,t){Gm[e]=t,Ym()},getAll(){return{...Gm}},getDefinitions(){return Wm},hasAny(){return Wm.size>0}},eh=new Map,th=new Map;function nh(e,t,n){if(n)return n;let r=`${e}:${t}`,i=th.get(r)??0,a;do i++,a=i===1?r:`${r}:${i}`;while(eh.has(a));return th.set(r,i),a}function rh(e){let t=e.id,n={action:e},r=eh.get(t);return r?(console.warn(`spindle: two mounted controls share the action ID \"${t}\"; Story.getActions() lists only the newer one.`),r.push(n)):eh.set(t,[n]),ch(),{update(e){let r=eh.get(t);r?.includes(n)&&(n.action=e,r[r.length-1]===n&&ch())},unregister(){let e=eh.get(t),r=e?e.indexOf(n):-1;!e||r===-1||(e.splice(r,1),e.length===0&&eh.delete(t),r===e.length&&ch())}}}function ih(){return Array.from(eh.values(),oh)}function ah(e){let t=eh.get(e);return t&&oh(t)}function oh(e){return e[e.length-1].action}function sh(){th.clear()}function ch(){md(`actionsChanged`)}function lh(e){let t=L(``),n=L(e.perform);n.current=e.perform,t.current||(t.current=nh(e.type,e.key,e.authorId));let r=t.current,i=()=>{let t={id:r,type:e.type,label:e.label,perform:(...e)=>n.current(...e)};return e.target!==void 0&&(t.target=e.target),e.variable!==void 0&&(t.variable=e.variable),e.options!==void 0&&(t.options=e.options),e.value!==void 0&&(t.value=e.value),e.disabled!==void 0&&(t.disabled=e.disabled),t},a=L(null);De(()=>{let e=rh(i());return a.current=e,()=>e.unregister()},[r]);let o=L(!1);return De(()=>{if(!o.current){o.current=!0;return}a.current?.update(i())},[e.type,e.label,e.target,e.variable,e.disabled,e.value,JSON.stringify(e.options)]),r}function uh(e){return e.map(e=>e.type===`text`?e.value:``).join(``)}function dh(e){let t=e.match(/^\\s*([\"']?\\$[\\w.]+[\"']?)\\s*([\"'].*[\"'])?\\s*$/s);if(!t)return{varName:e.trim(),placeholder:``};let n=t[1].replace(/[\"']/g,``),r=t[2];return{varName:n,placeholder:r?qa(r)??r.slice(1,-1):``}}function fh(e){let t=[];for(let n of e)if(n.type===`macro`&&n.name===`option`){let e=n.rawArgs.trim(),r=qa(e)??e.replace(/^([\"'])(.+)\\1$/s,`$2`);t.push(r)}return t}function ph(e,t){let n=`macro-${e}`;return t?`${n} ${t}`:n}var mh={useState:I,useRef:L,useEffect:Ee,useLayoutEffect:De,useCallback:Oe,useMemo:R,useContext:z};function $(e,t=`builtin`){function n(t){let n=t.className,r=t.id,i;e.interpolate&&(i=xo(),n=i(n),r=i(r));let{update:a,getValues:o}=z(Yl),s=z(Xl),c=z(Zl),l=z(Ql),u=z(Jl),d={collectText:uh,sourceLocation:Gl,parseVarArgs:dh,extractOptions:fh,h:b,renderNodes:(e,t)=>Vu(e,{nobr:s,inline:c,raw:l,locals:u,...t}),renderInlineNodes:Nu,hooks:mh,useAction:lh,className:n,id:r,resolve:i,cls:ph(e.name,n),mutate:e=>op(e,o(),a),update:a,getValues:o,wrap:e=>n||r?b(`span`,{id:r,class:n},e):b(S,null,e)};if(e.merged){d.merged=ji();let e=d.merged;d.evaluate=t=>Ta(t,e[0],e[1],e[2],e[3])}if(e.storeVar){let n=t.rawArgs.trim().split(/\\s+/)[0]?.replace(/[\"']/g,``)??``;if(n.startsWith(`%`))return b(`span`,{class:`error`},`{${e.name}}: transient variables (%${n.slice(1)}) cannot be bound to input macros`);let r=n.replace(/[\"']/g,``).replace(/^\\$/,``),i=r.split(`.`);if(i.includes(`__proto__`))return b(`span`,{class:`error`},`{${e.name}}: \"$${r}\" cannot be bound: ${Zi} is reserved`);d.varName=r,d.value=Q(e=>Df(e.variables,i)),d.getValue=()=>Df(zf().variables,i),d.setValue=e=>{Q.setState(t=>{jf(t.variables,i,e,{createMissing:!0})})}}return e.render(t,d)}Oa(e.name,n),ja(e.name,e.text);let r=e.block===!0||e.block!==!1&&(e.subMacros?.length??0)>0;if(La(e.name,{name:e.name,block:r,subMacros:e.subMacros??[],storeVar:e.storeVar,interpolate:e.interpolate,merged:e.merged,description:e.description,parameters:e.parameters,source:t}),e.subMacros)for(let t of e.subMacros)Pa(t);r&&bi(e.name)}var hh=null;function gh(e){hh=e}function _h(){return hh}var vh=null,yh=null;function bh(){return yh}var xh=!1;function Sh(){if(xh)return;xh=!0;let e=Q.getState().variables,t=Q.getState().transient;Q.subscribe(n=>{let r={},i=(e,t,n)=>{for(let i of oa(e,t))r[n+i]={from:ea(e,i),to:ea(t,i)}};i(e,n.variables,``),i(t,n.transient,`%`),e=n.variables,t=n.transient,Object.keys(r).length>0&&md(`variableChanged`,r)})}var Ch=null,wh=null,Th=new Set;function Eh(e,t=[]){Ch=new Set(e),wh=new Set(t),Th.clear()}function Dh(e){let t=e.startsWith(`%`),n=t||e.startsWith(`$`)?e.slice(1):e;return W(n.split(`.`)[0],e),{isTransient:t,key:n}}function Oh(e,t){let n=e?wh:Ch;if(!n)return;let r=t.split(`.`)[0];if(n.has(r))return;let i=(e?`%`:`$`)+r;Th.has(i)||(Th.add(i),console.warn(`spindle: Story.set() wrote ${i}, which is not declared in ${e?`StoryTransients`:`StoryVariables`}. Passages cannot reference it; check the name or declare it.`))}function kh(e,t,n){let{isTransient:r,key:i}=Dh(t),a=r?e.transient:e.variables;i.includes(`.`)?jf(a,i.split(`.`),n):a[i]=n}function Ah(){let e=ya(()=>Q.getState().visitCounts),t=ya(()=>Q.getState().renderCounts);return{get(e){let{isTransient:t,key:n}=Dh(e),r=Rf(),i=r??Q.getState(),a=t?i.transient:i.variables,o=n.includes(`.`)?Df(a,n.split(`.`)):ea(a,n);return r?Vf(o):o},set(e,t){let n=typeof e==`string`?[[e,t]]:Object.entries(e);for(let[e]of n){let{isTransient:t,key:n}=Dh(e);Oh(t,n)}Q.getState().updateVariables(e=>{for(let[t,r]of n)kh(e,t,r)})},goto(e){Q.getState().navigate(e)},back(){Q.getState().goBack()},forward(){Q.getState().goForward()},restart(){Q.getState().restart()},save(e,t){return Q.getState().save(e,t)},load(e){return Q.getState().load(e)},hasSave(e){return Q.getState().hasSave(e)},getSaveInfo(e){return Q.getState().getSaveInfo(e)},listSaves(){return Q.getState().listSaves()},deleteSave(e){return Q.getState().deleteSave(e)},exportSave(e){return Q.getState().exportSave(e)},importSave(e,t){return Q.getState().importSave(e,t)},visited:e.count,hasVisited:e.has,hasVisitedAny:e.any,hasVisitedAll:e.all,rendered:t.count,hasRendered:t.has,hasRenderedAny:t.any,hasRenderedAll:t.all,currentPassage:_a,previousPassage:va,get title(){return Q.getState().storyData?.name||``},get passage(){return Q.getState().currentPassage},settings:$m,registerClass(e,t){Hn(e,t)},defineMacro(e){$(e,`user`)},getMacroRegistry(){return Ra()},saves:{setTitleGenerator(e){vd(e)}},storage:{async getInfo(){let e=Q.getState().storyData?.ifid;return e?_f(e):{saveCount:0,playthroughCount:0,totalBytes:0,backend:ld()}},async getQuota(){if(typeof navigator<`u`&&navigator.storage?.estimate)try{let e=await navigator.storage.estimate();return{usage:e.usage??0,quota:e.quota??0,estimateSupported:!0}}catch{}return{usage:0,quota:0,estimateSupported:!1}},clearGameData(){return Q.getState().clearGameData()},clearAllData(){return Q.getState().clearAllData()},deletePlaythrough(e){return Q.getState().deletePlaythrough(e)},get backend(){return ld()}},getActions(){return ih()},performAction(e,t){let n=ah(e);if(!n)throw Error(`spindle: Action \"${e}\" not found.`);if(n.disabled)throw Error(`spindle: Action \"${e}\" is disabled.`);n.perform(t)},on(e,t){e===`variableChanged`&&Sh();let n=fd(e,t);return hm(n),n},async waitForActions(){await new Promise(e=>{requestAnimationFrame(()=>requestAnimationFrame(()=>e()))});let e=()=>_h()===Q.getState().navigationId;return _h()!==null&&!e()&&!Q.getState().renderDeferred&&await new Promise(t=>{let n=fd(`passagerender`,()=>{e()&&(n(),t())})}),ih()},watch(e,t){return mp(e,t)},unwatch(e){gp(e)},openDialog(e,t){kp({passageName:e,panelClass:t?.panelClass,showCloseButton:t?.showCloseButton,dismissible:t?.dismissible})},closeDialog(){Mp()},closeAllDialogs(){Np()},isDialogOpen(){return Pp()},setNobr(e){Q.setState({nobr:e})},setCSS(e){let t=document.getElementById(`spindle-styles`);t&&(t.disabled=!e)},setTransition(e){Q.getState().setTransition(e)},setNextTransition(e){Q.getState().setNextTransition(e)},deferRender(){Q.getState().deferRender(),yh=new Promise(e=>{vh=e})},ready(){vh&&(Q.getState().clearDeferredRender(),vh(),vh=null,yh=null)},random(){return Ki()},randomInt(e,t){return qi(e,t)},config:{get maxHistory(){return Q.getState().maxHistory},set maxHistory(e){Q.getState().setMaxHistory(e)},get quickSaveKey(){return Q.getState().quickSaveKey},set quickSaveKey(e){Q.getState().setQuickSaveKey(e)},get quickLoadKey(){return Q.getState().quickLoadKey},set quickLoadKey(e){Q.getState().setQuickLoadKey(e)}},prng:{init(e,t){Bi(e,t);let{historyIndex:n}=Q.getState();Q.setState(e=>{let t=e.history[n];t&&(t.prng=Gi())})},isEnabled(){return Ji()},get seed(){return Yi()},get pull(){return Xi()}}}}function jh(){window.Story=Ah()}function Mh(e){let t=e.replace(/[.*+?^${}()|[\\]\\\\]/g,`\\\\$&`);return RegExp(`^${t}(\\\\w+)\\\\s*=\\\\s*(.+)$`)}var Nh=/\\$(\\w+(?:\\.\\w+)*)/y,Ph=/^[\"']\\$(\\w+(?:\\.\\w+)*)[\"']?$/,Fh=/\\{for\\s+@(\\w+)(?:\\s*,\\s*@(\\w+))?\\s+of\\b/g,Ih=new Set([`number`,`string`,`boolean`]),Lh={string:Object(``),number:Object(0),boolean:Object(!1)};function Rh(e){if(Array.isArray(e))return{type:`array`};if(typeof e==`object`&&e){let t=new Map;for(let[n,r]of Object.entries(e))t.set(n,Rh(r));return{type:`object`,fields:t}}let t=typeof e;if(!Ih.has(t))throw Error(`Unsupported type \"${t}\" for value ${String(e)}. Expected number, string, boolean, array, or object.`);return{type:t}}function zh(e,t=`$`){let n=new Map,r=Mh(t),i=t===`%`?`StoryTransients`:`StoryVariables`;for(let a of e.split(`\n`)){let e=a.trim();if(!e)continue;let o=e.match(r);if(!o)throw Error(`${i}: Invalid declaration: \"${e}\". Expected: ${t}name = value`);let[,s,c]=o,l=Qi(s,t+s);if(l)throw Error(`${i}: ${l}`);let u;try{u=Function(`return (`+c+`)`)()}catch(e){throw Error(`${i}: Failed to evaluate \"${t}${s} = ${c}\": ${yo(e)}`)}let d;try{d=Rh(u)}catch(e){throw Error(`${i}: ${yo(e)}`)}n.set(s,{...d,name:s,default:u})}return n}function Bh(e){let t=new Set,n;for(Fh.lastIndex=0;(n=Fh.exec(e))!==null;)t.add(n[1]),n[2]&&t.add(n[2]);return t}function Vh(e,t,n){let r=e.split(`.`),i=r[0],a=Qi(i,`$`+i);if(a)return a;if(n.has(i))return null;let o=t.get(i);if(!o)return`Undeclared variable: $${e}`;let s=o;for(let e=1;e<r.length;e++){let t=r[e];if(s.type===`array`)return null;let n=Lh[s.type];if(n&&t in n){let e=typeof n[t];if(!Ih.has(e))return null;s={type:e};continue}if(s.type!==`object`||!s.fields)return`Cannot access field \"${t}\" on $${r.slice(0,e).join(`.`)} (type: ${s.type})`;let i=s.fields.get(t);if(!i)return null;s=i}return null}var Hh=[`checkbox`,`cycle`,`listbox`,`numberbox`,`radiobutton`,`textarea`,`textbox`],Uh=new Set;function Wh(e,t){for(let n of Zr(e))`expr`in n&&Kh(n.expr,t)}function Gh(e,t,n=Uh){e.includes(`{`)&&Jh(e,vi(e,{text:!0}),n,t)}function Kh(e,t,n=`expression`){let r=[];qr(e,{variable(n,r,i){n===`$`&&(Nh.lastIndex=i,t(Nh.exec(e)[1]))},literal(e,n,i){let a=r[r.length-1];if(a?.nesting===i)a.text===null?a.text=``:e===\"`\"||e===\"${\"?(Gh(a.text,t),e===\"`\"?r.pop():a.text=null):a.text+=e;else if(e===\"`\")r.push({nesting:i,text:``});else if(e[0]===`\"`||e[0]===`'`){let{closed:n}=Tr(e,0);Gh(e.slice(1,n?-1:void 0),t)}}},n);for(let e of r)e.text&&Gh(e.text,t)}function qh(e,t,n){Jh(e,vi(e),t,n)}function Jh(e,t,n,r){for(let i=0;i<t.length;i++){let a=t[i];if(a.type===`variable`)a.scope===`variable`&&a.name&&r(a.name);else if(a.type===`expression`)Kh(a.expression,r);else if(a.type===`html`)for(let[e,t]of Object.entries(a.attributes))Xr(e)?Wh(t,r):Gh(t,r,n);else if(a.type===`macro`&&!a.isClose){if(Kh(a.rawArgs,r),n.has(a.name.toLowerCase())){let e=a.rawArgs.trim().split(/\\s+/)[0]??``,t=Ph.exec(e);t&&r(t[1])}if(a.name===`do`){let n=i+1;for(;n<t.length;){let e=t[n];if(e.type===`macro`&&e.isClose&&e.name===`do`)break;n++}n<t.length&&(Kh(e.slice(a.end,t[n].start),r,`statements`),i=n)}}}}function Yh(e,t,n=Hh){let r=[],i=new Set(Array.from(n,e=>e.toLowerCase()));for(let[n,a]of e){if(n===`StoryVariables`||n===`StoryTransients`)continue;let e=Bh(a.content);qh(a.content,i,i=>{let a=Vh(i,t,e);a&&r.push(`Passage \"${n}\": ${a}`)})}return r}function Xh(e){let t=G();for(let[n,r]of e)t[n]=r.default;return t}function Zh(e){for(let t of e){if(t.type===`variable`&&t.scope===`local`&&t.name===`children`||t.type===`html`&&Zh(t.children))return!0;if(t.type===`macro`){if(Zh(t.children))return!0;if(t.branches){for(let e of t.branches)if(Zh(e.children))return!0}}}return!1}$({name:`set`,render({rawArgs:e},t){let n=t.hooks.useRef(!1),r=t.hooks.useRef(null);if(!n.current){n.current=!0;try{t.mutate(e)}catch(n){r.current={error:n},console.error(`spindle: Error in {set ${e}}${t.sourceLocation()}:`,n)}}return r.current?K(Kl,{macro:`set`,error:r.current.error}):null}}),$({name:`print`,interpolate:!0,merged:!0,render({rawArgs:e},t){try{let n=t.evaluate(e),r=n==null?``:String(n);return t.wrap(r)}catch(e){return K(Kl,{macro:`print`,error:e})}},text({rawArgs:e},t){let n=t.evaluate(e);return n==null?``:String(n)}});var Qh=Symbol(`unset`);function $h(e){let t=e.trim(),n=0;for(let e=0;e<t.length;e++){let r=t[e];if(r===`(`||r===`[`||r===`{`)n++;else if(r===`)`||r===`]`||r===`}`)n--;else if(r===`=`&&n===0){if(t[e+1]===`=`){e++;continue}if(e>0&&t[e-1]===`!`)continue;let n=t.slice(0,e).trim(),r=t.slice(e+1).trim();if(!n.match(/^[$_@]\\w+$/))throw Error(`{computed}: target must be $name, _name, or @name, got \"${n}\"`);return W(n.slice(1),n),{target:n,expr:r}}}throw Error(`{computed}: expected \"target = expression\", got \"${e}\"`)}function eg(e,t,n,r,i,a,o,s){let c;try{let{variables:t,temporary:n,transient:r}=zf();c=Ta(e,t,n,i(),r)}catch(e){console.error(`spindle: Error in {computed ${a}}${Gl()}:`,e);return}if(!Kn(o.current,c))if(o.current=c,r)try{s(t,c)}catch(e){console.error(`spindle: Error in {computed ${a}}${Gl()}:`,e)}else{let e=Q.getState();n?e.setTemporary(t,c):e.setVariable(t,c)}}$({name:`computed`,merged:!0,render({rawArgs:e},t){let[n,r,i,a]=t.merged,o,s;try{({target:o,expr:s}=$h(e))}catch(e){return K(Kl,{macro:`computed`,error:e})}let c=o.startsWith(`@`),l=o.startsWith(`_`),u=o.slice(1),d=c?t.update:null,f=t.hooks.useRef(Qh),p=t.hooks.useRef(!1);return p.current||(p.current=!0,eg(s,u,l,c,t.getValues,e,f,d)),t.hooks.useLayoutEffect(()=>{eg(s,u,l,c,t.getValues,e,f,d)},[n,r,i,a]),null}});function tg(e){let t=Qa(e.trim(),Ha).filter(Boolean),n=``,r=t.length>=2&&!Xa(t.slice(0,-1).join(` `))?qa(t[t.length-1]):null;if(r!==null&&(n=r,t.pop()),t.length<2)throw Error(`meter requires two arguments: {meter currentExpr maxExpr}`);return{currentExpr:t[0],maxExpr:t.slice(1).join(` `),labelMode:n}}function ng(e,t,n){return n===`none`?null:n===`%`?`${t===0?0:Math.round(e/t*100)}%`:n?`${e} ${n} / ${t} ${n}`:`${e} / ${t}`}$({name:`meter`,interpolate:!0,merged:!0,render({rawArgs:e},t){try{let{currentExpr:n,maxExpr:r,labelMode:i}=tg(e),a=Number(t.evaluate(n)),o=Number(t.evaluate(r)),s=o===0?0:Math.max(0,Math.min(100,a/o*100)),c=ng(a,o,i),l=t.cls;return K(`div`,{class:l,id:t.id,children:[K(`div`,{class:`macro-meter-fill`,style:`width: ${s}%`}),c!=null&&K(`span`,{class:`macro-meter-label`,children:c})]})}catch(e){return K(Kl,{macro:`meter`,error:e})}}}),$({name:`if`,block:!0,interpolate:!0,merged:!0,render({branches:e=[]},t){function n(e){let n=t.renderNodes(e.children),r=t.resolve(e.className),i=t.resolve(e.id);return r||i?K(`span`,{id:i,class:r,children:n}):K(S,{children:n})}for(let r of e){if(r.rawArgs===``)return n(r);try{if(t.evaluate(r.rawArgs))return n(r)}catch(e){return K(Kl,{macro:`if`,error:e})}}return null},text({branches:e=[]},t){for(let n of e)if(n.rawArgs===``||t.evaluate(n.rawArgs))return t.renderText(n.children);return``}});function rg(e){try{return ig(e,[])}catch{return`<unkeyable>`}}function ig(e,t){switch(typeof e){case`string`:return JSON.stringify(e);case`number`:return Number.isFinite(e)?JSON.stringify(e):String(e);case`boolean`:return String(e);case`bigint`:return`${e}n`;case`undefined`:return`undefined`;case`symbol`:return e.description===void 0?`Symbol()`:`Symbol(${JSON.stringify(e.description)})`;case`function`:return`<function ${JSON.stringify(e.name)}>`}if(e===null)return`null`;let n=e,r=t.indexOf(n);if(r!==-1)return`<cycle ${t.length-r}>`;if(e instanceof Date)return`Date(${e.getTime()})`;if(e instanceof RegExp)return`RegExp(${String(e)})`;t.push(n);try{if(Array.isArray(e))return`[${Array.from(e,e=>ig(e,t)).join(`,`)}]`;if(e instanceof Map)return`Map[${[...e].map(([e,n])=>`[${ig(e,t)},${ig(n,t)}]`).join(`,`)}]`;if(e instanceof Set)return`Set[${[...e].map(e=>ig(e,t)).join(`,`)}]`;let r=n,i=Object.keys(r).map(e=>`${JSON.stringify(e)}:${ig(r[e],t)}`).join(`,`),a=Un(n);return a===void 0?`{${i}}`:`Class(${JSON.stringify(a)}){${i}}`}finally{t.pop()}}function ag(e){let t=e.indexOf(` of `);if(t===-1)throw Error(`{for} requires \"of\" keyword: {for ${e}}`);let n=e.slice(0,t).trim(),r=e.slice(t+4).trim(),i=n.split(`,`).map(e=>e.trim()),a=i[0],o=i.length>1?i[1]:null;if(!a.startsWith(`@`))throw Error(`{for} loop variable must use @ prefix: got \"${a}\"`);if(o&&!o.startsWith(`@`))throw Error(`{for} index variable must use @ prefix: got \"${o}\"`);return W(a.slice(1),a),o&&W(o.slice(1),o),{itemVar:a.slice(1),indexVar:o?o.slice(1):null,listExpr:r}}function og({parentValues:e,itemVar:t,itemValue:n,indexVar:r,indexValue:i,children:a}){let[o,s]=I(()=>({})),c=R(()=>({[t]:n,...r?{[r]:i}:void 0}),[t,n,r,i]),l=R(()=>G(e,c,o),[e,c,o]),u=L(l);u.current=l;let d=Oe(()=>u.current,[]),f=Oe((e,t)=>{W(e,`@${e}`),u.current=ia(u.current,e,t),s(n=>({...n,[e]:t}))},[]),p=R(()=>({update:f,getValues:d}),[f,d]),m=z(Xl),h=z(Zl),g=z(Ql);return K(Yl.Provider,{value:p,children:K(Jl.Provider,{value:l,children:Vu(a,{nobr:m,inline:h,raw:g,locals:l})})})}$({name:`for`,block:!0,interpolate:!0,merged:!0,render({rawArgs:e,children:t=[]},n){let r=z(Jl),i;try{i=ag(e)}catch(e){return K(Kl,{macro:`for`,error:e})}let{itemVar:a,indexVar:o,listExpr:s}=i,c;try{let e=n.evaluate(s);if(!Array.isArray(e))return K(`span`,{class:`error`,children:`{for error: expression did not evaluate to an array}`});c=e}catch(e){return K(Kl,{macro:`for`,error:e})}let l=c.map((e,n)=>K(og,{parentValues:r,itemVar:a,itemValue:e,indexVar:o,indexValue:n,children:t},`${n}-${rg(e)}`));return n.wrap(l)},text({rawArgs:e,children:t=[]},n){let{itemVar:r,indexVar:i,listExpr:a}=ag(e),o=n.evaluate(a);if(!Array.isArray(o))throw Error(`expression did not evaluate to an array`);return o.map((e,a)=>n.renderText(t,{[r]:e,...i?{[i]:a}:void 0})).join(``)}}),$({name:`do`,block:!0,render({children:e=[]},t){let n=t.collectText(e);return t.hooks.useLayoutEffect(()=>{try{t.mutate(n)}catch(e){console.error(`spindle: Error in {do}${t.sourceLocation()}:`,e)}},[]),null}});function sg(e){return new Proxy(G(),{get:(t,n)=>typeof n==`string`?ea(e(),n):void 0,has:(t,n)=>typeof n==`string`&&$i(e(),n),ownKeys:()=>Reflect.ownKeys(e()),getOwnPropertyDescriptor:(t,n)=>{let r=Object.getOwnPropertyDescriptor(e(),n);return r?{...r,configurable:!0}:void 0}})}function cg(e){let t=e.trim();return t.endsWith(`ms`)?parseFloat(t.slice(0,-2)):t.endsWith(`s`)?parseFloat(t.slice(0,-1))*1e3:parseFloat(t)}var lg=pe({stop:()=>{}});$({name:`repeat`,block:!0,interpolate:!0,render({rawArgs:e,children:t=[]},n){let{useState:r,useEffect:i,useCallback:a}=n.hooks,o=cg(e),[s,c]=r(0),[l,u]=r(!1),d=a(()=>u(!0),[]);if(i(()=>{if(l)return;let e=setInterval(()=>{c(e=>e+1)},o);return()=>clearInterval(e)},[o,l]),s===0&&!l)return null;let f=K(lg.Provider,{value:{stop:d},children:K(`span`,{children:n.renderNodes(t)},s)});return n.className||n.id?K(`span`,{id:n.id,class:n.cls,children:f}):f}});function ug(){let e=z(Yl),t=z(Xl),n=z(Zl),r=z(tu),i=z(lg),a=z(Rm),o=o=>{let s=sg(e.getValues),c=document.createElement(`div`);fe(K(Yl.Provider,{value:e,children:K(Jl.Provider,{value:s,children:K(Xl.Provider,{value:t,children:K(Zl.Provider,{value:n,children:K(tu.Provider,{value:r,children:K(lg.Provider,{value:i,children:K(Rm.Provider,{value:a,children:Vu(o,{nobr:t,inline:n,locals:s})})})})})})})}),c),fe(null,c)};return e=>ap(()=>o(e))}$({name:`button`,block:!0,interpolate:!0,render({rawArgs:e,children:t=[]},n){let r=qa(e.trim())??e.replace(/^[\"']|[\"']$/g,``),i=n.resolve?.(r)??e,a=ug(),o=()=>a(t);return n.useAction({type:`button`,key:e,authorId:n.id,label:i,perform:o}),K(`button`,{id:n.id,class:n.cls,onClick:o,children:i})}});function dg(e){let t=[],n=/([\"'])((?:\\\\[^]|(?!\\1)[^\\\\])*)\\1/g,r;for(;(r=n.exec(e))!==null;)t.push(Ga(r[2]));return t.length>=2?{display:t[0],passage:t[1]}:t.length===1?{display:t[0],passage:null}:{display:e.trim(),passage:null}}$({name:`link`,block:!0,interpolate:!0,render({rawArgs:e,children:t=[]},n){let{display:r,passage:i}=dg(e),a=ug(),o=()=>{a(t),i&&Q.getState().navigate(i)};return n.useAction({type:`link`,key:i||r,authorId:n.id,label:r,target:i??void 0,perform:o}),K(`a`,{id:n.id,class:n.cls,href:`#`,onClick:e=>{e.preventDefault(),o()},children:r})}}),$({name:`switch`,subMacros:[`case`,`default`],merged:!0,render({rawArgs:e,branches:t=[]},n){let r;try{r=n.evaluate(e)}catch(e){return K(Kl,{macro:`switch`,error:e})}let i=null;for(let e=1;e<t.length;e++){let a=t[e];if(a.rawArgs===``){i=a;continue}try{let e=n.evaluate(a.rawArgs);if(r===e)return K(S,{children:n.renderNodes(a.children)})}catch(e){return K(Kl,{macro:`case`,error:e})}}return i?K(S,{children:n.renderNodes(i.children)}):null},text({rawArgs:e,branches:t=[]},n){let r=n.evaluate(e),i=null;for(let e=1;e<t.length;e++){let a=t[e];if(a.rawArgs===``)i=a;else if(r===n.evaluate(a.rawArgs))return n.renderText(a.children)}return i?n.renderText(i.children):``}}),$({name:`timed`,subMacros:[`next`],interpolate:!0,render({branches:e=[]},t){let{useState:n,useEffect:r,useMemo:i}=t.hooks,a=i(()=>e.map(e=>({delay:e.rawArgs?cg(e.rawArgs):0,nodes:e.children,className:e.className,id:e.id})),[e]),[o,s]=n(-1);if(r(()=>{if(o>=a.length-1)return;let e=o+1,t=a[e].delay,n=setTimeout(()=>{s(e)},t);return()=>clearTimeout(n)},[o,a]),o<0)return t.wrap(null);let c=a[o],l=t.renderNodes(c.nodes),u=t.resolve(c.className),d=t.resolve(c.id),f=u||d?K(`span`,{id:d,class:u,children:l}):l;return t.wrap(f)}}),$({name:`stop`,render(e,t){let{stop:n}=t.hooks.useContext(lg);return t.hooks.useLayoutEffect(()=>{n()},[n]),null}}),$({name:`type`,block:!0,interpolate:!0,render({rawArgs:e,children:t=[]},n){let{useState:r,useEffect:i,useRef:a}=n.hooks,o=cg(e),s=a(null),[c,l]=r(0),[u,d]=r(0),f=a(0);f.current=u,i(()=>{s.current&&l((s.current.textContent||``).length)},[]),i(()=>{if(c===0||f.current>=c)return;let e=setInterval(()=>{d(t=>t>=c?(clearInterval(e),t):t+1)},o);return()=>clearInterval(e)},[c,o]);let p=u>=c&&c>0,m=[`macro-type`,p?`macro-type-done`:``,n.className||``].filter(Boolean).join(` `);return K(`span`,{id:n.id,class:m,ref:s,style:{clipPath:void 0},children:[K(`span`,{class:`macro-type-inner`,style:{display:`inline`,visibility:c===0?`hidden`:`visible`,clipPath:c>0&&!p?`inset(0 ${(c-u)/c*100}% 0 0)`:void 0},children:n.renderInlineNodes(t)}),!p&&c>0&&K(`span`,{class:`macro-type-cursor`})]})}});function fg(e){let t=e.trim().split(/\\s+/),n=t[0].replace(/[\"']/g,``),r=t.slice(1).filter(e=>e.startsWith(`@`));for(let e of r)W(e.slice(1),e);return{name:n,params:r}}$({name:`widget`,block:!0,render({rawArgs:e,children:t=[]},n){let r,i;try{r=fg(e)}catch(e){i=e}let{name:a,params:o}=r??{name:``,params:[]},s=JSON.stringify(t),c=o.join(`,`);return n.hooks.useLayoutEffect(()=>{if(!r)return;let e=Zh(t);Ba(a,t,o,e),e&&bi(a)},[a,s,c]),i?K(Kl,{macro:`widget`,error:i}):null}}),$({name:`story-title`,render(e,t){let n=Q(e=>e.storyData?.name||``),r=t.className?`story-title ${t.className}`:`story-title`;return K(`span`,{id:t.id,class:r,children:n})},text:()=>Q.getState().storyData?.name||``});function pg(e,t){return t?`${e} (${t})`:e}function mg(e){$({name:e.name,render(t,n){if(e.hidden?.())return null;let[r,i]=I(!1),a=e.setup?.()??{perform:()=>{}},{disabled:o,title:s=e.title}=a,c=n.className?`menubar-button ${n.className}`:`menubar-button`,l=e.dialog?()=>i(!0):e.confirm?()=>{confirm(e.confirm)&&a.perform()}:a.perform;return n.useAction({type:e.actionType,key:e.name,authorId:n.id,label:typeof e.label==`string`?e.label:e.name,disabled:o,perform:e.dialog?()=>i(!0):a.perform}),K(S,{children:[K(`button`,{id:n.id,class:c,onClick:l,disabled:o,title:s,children:e.label}),e.dialog&&r&&K(zm,{passageName:e.dialog.passageName,fallbackMarkup:e.dialog.fallbackMarkup,panelClass:e.dialog.panelClass,onClose:()=>i(!1),showCloseButton:e.dialog.showCloseButton})]})}})}mg({name:`back`,label:`← Back`,actionType:`back`,setup:()=>({perform:Q(e=>e.goBack),disabled:!Q(e=>e.historyIndex>0)})}),mg({name:`forward`,label:`Forward →`,actionType:`forward`,setup:()=>({perform:Q(e=>e.goForward),disabled:!Q(e=>e.historyIndex<e.history.length-1)})}),mg({name:`quicksave`,label:`QuickSave`,actionType:`save`,setup:()=>{let{save:e,quickSaveKey:t}=Ai(`save`,`quickSaveKey`);return{perform:e,title:pg(`Quick Save`,t)}}}),mg({name:`quickload`,label:`QuickLoad`,actionType:`load`,confirm:`Load saved game? Current progress will be lost.`,setup:()=>{let{load:e,hasSave:t,quickLoadKey:n}=Ai(`load`,`hasSave`,`quickLoadKey`,`knownSaves`);return{perform:()=>e(),disabled:!t(),title:pg(`Quick Load`,n)}}}),mg({name:`restart`,label:`↺ Restart`,actionType:`restart`,confirm:`Restart the story? All progress will be lost.`,setup:()=>({perform:Q(e=>e.restart)})}),mg({name:`saves`,label:`Saves`,actionType:`dialog`,dialog:{passageName:`SaveLoad`,fallbackMarkup:`{save-manager}`,panelClass:`dialog-saves`}}),mg({name:`settings`,label:`Settings`,actionType:`dialog`,hidden:()=>!$m.hasAny(),dialog:{passageName:`Settings`,fallbackMarkup:`{settings-controls}`,panelClass:`dialog-settings`}}),$({name:`dialog`,block:!0,interpolate:!0,render({rawArgs:e,children:t=[]},n){let[r,i]=n.hooks.useState(!1),a=/\\bnoclose\\s*$/.test(e),o=e.replace(/\\bnoclose\\s*$/,``).trim(),s=n.resolve?.(qa(o)??o.replace(/^[\"']|[\"']$/g,``))??o,c=n.collectText(t).trim().replace(/^[\"']|[\"']$/g,``);return K(S,{children:[K(`button`,{id:n.id,class:n.cls,onClick:()=>i(!0),children:s}),r&&K(zm,{passageName:c,onClose:()=>i(!1),showCloseButton:!a})]})}});function hg(e){let t=Date.now()-new Date(e).getTime(),n=Math.floor(t/1e3);if(n<60)return`just now`;let r=Math.floor(n/60);if(r<60)return`${r}m ago`;let i=Math.floor(r/60);if(i<24)return`${i}h ago`;let a=Math.floor(i/24);return a<30?`${a}d ago`:new Date(e).toLocaleDateString()}function gg(e){return new Date(e).toLocaleDateString(void 0,{month:`short`,day:`numeric`,year:`numeric`})}function _g(){let[e,t]=I(`load`),[n,r]=I([]),[i,a]=I(!0),[o,s]=I(null),[c,l]=I(()=>new Set),[u,d]=I(null),[f,p]=I(``),m=L(null),h=L(null),g=z(Rm),{storyData:_,playthroughId:v,beginSave:y,loadFromPayload:b}=Ai(`storyData`,`playthroughId`,`beginSave`,`loadFromPayload`),x=_?.ifid??``,S=Oe(async()=>{x&&(r(await zd(x)),a(!1))},[x]);Ee(()=>{S()},[S]),Ee(()=>{u&&m.current&&(m.current.focus(),m.current.select())},[u]);let C=L(!0),w=L(),T=L(),E=(e,t=`success`)=>{C.current&&(clearTimeout(w.current),s({text:e,type:t}),w.current=window.setTimeout(()=>s(null),3e3))};Ee(()=>(C.current=!0,()=>{C.current=!1,clearTimeout(w.current),clearTimeout(T.current)}),[]);let D=e=>{l(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},O=async()=>{if(!x)return;let e=rm();try{await jd(void 0,void 0,y,async t=>{let n=await e;if(!n)throw Error(`No playthrough`);return Md(x,n,t)}),E(`Save created`),await S()}catch{E(`Failed to create save`,`error`)}},k=async e=>{let t=rm();try{await jd(void 0,void 0,y,async n=>{if(!await Pd(e,n,void 0,await t||void 0))throw Error(`Save not found`)}),E(`Save overwritten`),await S()}catch{E(`Failed to overwrite save`,`error`)}},ee=async e=>{try{b(Id(e.payload),void 0,e.meta.playthroughId),E(`Game loaded`),g&&(T.current=window.setTimeout(g,500)),await S()}catch{E(`Failed to load save`,`error`)}},A=async e=>{if(confirm(`Delete this save?`))try{await Ld(e);let t=await ef(x);Q.setState(e=>{e.knownSaves=t}),E(`Save deleted`),await S()}catch{E(`Failed to delete save`,`error`)}},j=e=>{d(e.meta.id),p(e.meta.title)},M=async()=>{if(!(!u||!f.trim()))try{await Rd(u,f.trim()),d(null),E(`Save renamed`),await S()}catch{E(`Failed to rename`,`error`)}},te=e=>{e.key===`Enter`?M():e.key===`Escape`&&d(null)},ne=async e=>{try{let t=await df(e);if(!t)return;let n=new Blob([JSON.stringify(t,null,2)],{type:`application/json`}),r=URL.createObjectURL(n),i=document.createElement(`a`);i.href=r,i.download=`save-${t.save.meta.title.replace(/[^a-z0-9]/gi,`_`)}.json`,i.click(),URL.revokeObjectURL(r),E(`Save exported`)}catch{E(`Failed to export save`,`error`)}},re=()=>{h.current?.click()},ie=async e=>{let t=e.target,n=t.files?.[0];if(n){t.value=``;try{let e=await n.text(),t=JSON.parse(e);if(!ir(t))throw Error(`Invalid save file format`);await mf(t,x),E(`Save imported`),await S()}catch(e){E(yo(e,`Failed to import save`),`error`)}}},ae=n.reduce((e,t)=>e+t.saves.length,0);return K(`div`,{class:`save-manager`,children:[K(`div`,{class:`saves-header`,children:K(`div`,{class:`saves-header-left`,children:K(`div`,{class:`saves-mode-toggle`,children:[K(`button`,{class:e===`save`?`active`:``,onClick:()=>t(`save`),children:`Save`}),K(`button`,{class:e===`load`?`active`:``,onClick:()=>t(`load`),children:`Load`})]})})}),K(`div`,{class:`saves-toolbar`,children:[K(`button`,{class:`saves-toolbar-button`,onClick:re,children:`Import`}),K(`input`,{ref:h,type:`file`,accept:`.json`,style:`display:none`,onChange:ie})]}),K(`div`,{class:`saves-body`,children:[i?K(`div`,{class:`saves-empty`,children:`Loading...`}):ae===0&&e===`load`?K(`div`,{class:`saves-empty`,children:`No saves yet`}):n.map(t=>{let n=c.has(t.playthrough.id),r=t.playthrough.id===v;return e===`save`&&!r||e===`load`&&t.saves.length===0&&!r?null:K(`div`,{class:`playthrough-group`,children:[K(`div`,{class:`playthrough-header`,onClick:()=>D(t.playthrough.id),children:[K(`span`,{class:`playthrough-chevron ${n?``:`open`}`,children:`▶`}),K(`span`,{class:`playthrough-label`,children:[t.playthrough.label,r?` (current)`:``]}),K(`span`,{class:`playthrough-date`,children:gg(t.playthrough.createdAt)})]}),!n&&K(`div`,{class:`playthrough-saves`,children:[t.saves.map(t=>K(`div`,{class:`save-slot`,children:[K(`div`,{class:`save-slot-info`,children:[u===t.meta.id?K(`input`,{ref:m,class:`save-rename-input`,value:f,onInput:e=>p(e.target.value),onKeyDown:te,onBlur:M}):K(`div`,{class:`save-slot-title`,children:t.meta.title}),K(`div`,{class:`save-slot-meta`,children:[K(`span`,{children:t.meta.passage}),K(`span`,{children:hg(t.meta.updatedAt)})]})]}),K(`div`,{class:`save-slot-actions`,children:[e===`save`?K(`button`,{class:`save-slot-action primary`,onClick:()=>k(t.meta.id),children:`Save Here`}):K(`button`,{class:`save-slot-action primary`,onClick:()=>ee(t),children:`Load`}),K(`button`,{class:`save-slot-action`,onClick:()=>j(t),children:`Rename`}),K(`button`,{class:`save-slot-action`,onClick:()=>ne(t.meta.id),children:`Export`}),K(`button`,{class:`save-slot-action danger`,onClick:()=>A(t.meta.id),children:`Delete`})]})]},t.meta.id)),e===`save`&&r&&K(`button`,{class:`save-slot-new`,onClick:O,children:`+ New Save`})]})]},t.playthrough.id)}),e===`save`&&!i&&!n.some(e=>e.playthrough.id===v)&&K(`div`,{class:`playthrough-group`,children:K(`div`,{class:`playthrough-saves`,children:K(`button`,{class:`save-slot-new`,onClick:O,children:`+ New Save`})})})]}),o&&K(`div`,{class:`saves-status ${o.type===`error`?`error`:``}`,children:o.text})]})}$({name:`save-manager`,render(){return K(_g,{})}});function vg({name:e,def:t}){let[n,r]=I(()=>$m.get(e)),i=t=>{r(t),$m.set(e,t)};switch(t.type){case`toggle`:return K(`label`,{class:`settings-row`,children:[K(`span`,{children:t.config.label}),K(`input`,{type:`checkbox`,checked:!!n,onChange:e=>i(e.target.checked)})]});case`list`:return K(`label`,{class:`settings-row`,children:[K(`span`,{children:t.config.label}),K(`select`,{value:String(n),onChange:e=>i(e.target.value),children:t.config.options.map(e=>K(`option`,{value:e,children:e},e))})]});case`range`:return K(`label`,{class:`settings-row`,children:[K(`span`,{children:[t.config.label,`: `,String(n)]}),K(`input`,{type:`range`,min:t.config.min,max:t.config.max,step:t.config.step,value:Number(n),onInput:e=>i(parseFloat(e.target.value))})]})}}function yg(){let e=$m.getDefinitions();return K(`div`,{class:`settings-controls`,children:Array.from(e.entries()).map(([e,t])=>K(vg,{name:e,def:t},e))})}$({name:`settings-controls`,render(){return K(yg,{})}});var bg=`inline`;function xg(e){let t=e.trim(),n=Za(t,Ha),r=null,i=null;if(n.length>0){let e=0;for(;e+1<n.length&&n[e+1]===n[e]+1;)e++;r=[n[0],n[e]+1];let t=n.length-1;for(;t>0&&n[t-1]===n[t]-1;)t--;i=[n[t],n[n.length-1]+1]}if(i&&i[1]===t.length-6&&t.endsWith(bg)){let e=t.slice(0,i[0]);if(!Xa(e))return{nameExpr:e,inline:!0}}if(r&&r[0]===6&&t.startsWith(bg)){let e=t.slice(r[1]);if(!/^(?:[-+*/&|^=<>?:,.]|%(?![A-Za-z_]))/.test(e))return{nameExpr:e,inline:!0}}return{nameExpr:t,inline:!1}}$({name:`include`,interpolate:!0,merged:!0,render({rawArgs:e},t){let n=Q(e=>e.storyData),{nameExpr:r,inline:i}=xg(e),a;try{let e=t.evaluate(r);a=String(e)}catch{a=r.replace(/^[\"']|[\"']$/g,``)}let o=n?.passages.get(a),s=t.hooks.useMemo(()=>o?wi(vi(o.content)):null,[o]);if(!n)return null;if(o&&Q.getState().trackRender(a),!o||!s)return K(`span`,{class:`error`,children:`{include${t.sourceLocation()}: passage \"${a}\" not found}`});let c=o.tags.includes(`nobr`),l=i?t.renderInlineNodes(s):t.renderNodes(s,c?{nobr:!0}:void 0);return c?t.wrap(t.h(Xl.Provider,{value:!0},l)):t.wrap(l)}}),$({name:`nobr`,block:!0,render({children:e=[]},t){return t.wrap(t.h(Xl.Provider,{value:!0},t.renderNodes(e,{nobr:!0})))},text:({children:e=[]},t)=>t.renderText(e)}),$({name:`goto`,merged:!0,render({rawArgs:e},t){return t.hooks.useLayoutEffect(()=>{let n;try{let r=t.evaluate(e);n=String(r)}catch{n=e.replace(/^[\"']|[\"']$/g,``)}Q.getState().navigate(n)},[]),null}}),$({name:`unset`,render({rawArgs:e},t){let n=t.hooks.useRef(!1),r=t.hooks.useRef(null);if(!n.current){n.current=!0;let i=Q.getState(),a=e.trim();try{if(a.startsWith(`$`))i.deleteVariable(a.slice(1));else if(a.startsWith(`_`))i.deleteTemporary(a.slice(1));else if(a.startsWith(`%`))i.deleteTransient(a.slice(1));else if(a.startsWith(`@`))t.update(a.slice(1),void 0);else throw Error(`{unset} expects a variable ($name, _name, %name, or @name), got \"${a}\"`)}catch(n){r.current={error:n},console.error(`spindle: Error in {unset ${e}}${t.sourceLocation()}:`,n)}}return r.current?K(Kl,{macro:`unset`,error:r.current.error}):null}}),$({name:`textbox`,storeVar:!0,render({rawArgs:e},t){let{placeholder:n}=t.parseVarArgs(e);return t.useAction({type:`textbox`,key:`$${t.varName}`,authorId:t.id,label:n||t.varName,variable:t.varName,value:t.value,perform:e=>t.setValue(e===void 0?``:String(e))}),K(`input`,{type:`text`,id:t.id,class:t.cls,value:t.value==null?``:String(t.value),placeholder:n,onInput:e=>t.setValue(e.target.value)})}}),$({name:`numberbox`,storeVar:!0,render({rawArgs:e},t){let{placeholder:n}=t.parseVarArgs(e);return t.useAction({type:`numberbox`,key:`$${t.varName}`,authorId:t.id,label:n||t.varName,variable:t.varName,value:t.value,perform:e=>t.setValue(e===void 0?0:Number(e))}),K(`input`,{type:`number`,id:t.id,class:t.cls,value:t.value==null?``:String(t.value),placeholder:n,onInput:e=>{let n=e.target.value;t.setValue(n===``?0:Number(n))}})}}),$({name:`textarea`,storeVar:!0,render({rawArgs:e},t){let{placeholder:n}=t.parseVarArgs(e);return t.useAction({type:`textarea`,key:`$${t.varName}`,authorId:t.id,label:n||t.varName,variable:t.varName,value:t.value,perform:e=>t.setValue(e===void 0?``:String(e))}),K(`textarea`,{id:t.id,class:t.cls,value:t.value==null?``:String(t.value),placeholder:n,onInput:e=>t.setValue(e.target.value)})}});function Sg(e){let t=e.match(/^\\s*[\"']?\\$?[\\w.]+[\"']?\\s+(.+)$/s);if(!t)return``;let n=t[1].trimEnd()||t[1];return qa(n)??Ja(n)}$({name:`checkbox`,storeVar:!0,render({rawArgs:e},t){let n=Sg(e);return t.useAction({type:`checkbox`,key:`$${t.varName}`,authorId:t.id,label:n||t.varName||``,variable:t.varName,value:!!t.value,perform:e=>t.setValue(e===void 0?!t.value:!!e)}),K(`label`,{id:t.id,class:t.cls,children:[K(`input`,{type:`checkbox`,checked:!!t.value,onChange:()=>t.setValue(!t.value)}),n?` ${n}`:null]})}});function Cg(e){let t=e.match(/^\\s*[\"']?\\$?[\\w.]+[\"']?\\s+/);if(t){let n=e.slice(t[0].length).trim(),r=Ka(n,0);if(r&&(r.end===n.length||Ha(n[r.end]))){let e=n.slice(r.end).trim(),t=qa(e)??Ja(e);return{value:r.value,label:t}}}let n=e.match(/^\\s*[\"']?\\$?[\\w.]+[\"']?\\s+[\"'](.+?)[\"']\\s+[\"']?(.+?)[\"']?\\s*$/s);if(!n){let t=e.trim().split(/\\s+/).slice(1);return{value:t[0]??``,label:t.slice(1).join(` `)}}return{value:n[1],label:n[2]}}$({name:`radiobutton`,storeVar:!0,render({rawArgs:e},t){let{value:n,label:r}=Cg(e);return t.useAction({type:`radiobutton`,key:`$${t.varName}:${n}`,authorId:t.id,label:r||n,variable:t.varName,value:t.value,perform:()=>t.setValue(n)}),K(`label`,{id:t.id,class:t.cls,children:[K(`input`,{type:`radio`,name:`radio-${t.varName}`,checked:t.value===n,onChange:()=>t.setValue(n)}),r?` ${r}`:null]})}}),$({name:`listbox`,subMacros:[`option`],storeVar:!0,render({children:e=[]},t){let n=t.extractOptions(e);return t.useAction({type:`listbox`,key:`$${t.varName}`,authorId:t.id,label:t.varName,variable:t.varName,options:n,value:t.value,perform:e=>{e!==void 0&&t.setValue(String(e))}}),K(`select`,{id:t.id,class:t.cls,value:t.value==null?``:String(t.value),onChange:e=>t.setValue(e.target.value),children:n.map(e=>K(`option`,{value:e,children:e},e))})}}),$({name:`cycle`,block:!0,storeVar:!0,render({children:e=[]},t){let n=t.extractOptions(e),r=()=>{if(n.length===0)return;let e=t.getValue(),r=(n.indexOf(String(e))+1)%n.length;t.setValue(n[r])};return t.useAction({type:`cycle`,key:`$${t.varName}`,authorId:t.id,label:t.value==null?n[0]||``:String(t.value),variable:t.varName,options:n,value:t.value,perform:e=>{e===void 0?r():t.setValue(e)}}),K(`button`,{id:t.id,class:t.cls,onClick:r,children:t.value==null?n[0]||``:String(t.value)})}}),$({name:`span`,block:!0,render({children:e=[]},t){return t.wrap(t.renderNodes(e))},text:({children:e=[]},t)=>t.renderText(e)});var wg=new WeakMap;function Tg(e){let t=wg.get(e);if(t&&t.content===e.content)return t.ast;let n=wi(vi(e.content));return wg.set(e,{content:e.content,ast:n}),n}function Eg(e){return Vu(Tg(e),e.tags.includes(`nobr`)?{nobr:!0}:void 0)}var Dg=new Set([`PassageReady`,`PassageHeader`,`PassageFooter`,`PassageDone`]);function Og({passage:e,dataTransition:t,navigationId:n}){let r=Q(e=>e.storyData),i=Dg.has(e.name),[a,o]=I(!1),s=R(()=>{try{return Eg(e)}catch(t){return K(`div`,{class:`error`,children:[`Error parsing passage “`,e.name,`”`,Wl(e),`: `,yo(t)]})}},[e.content,e.name]),c=i?void 0:r?.passages.get(`PassageHeader`),l=i?void 0:r?.passages.get(`PassageFooter`),u=i?void 0:r?.passages.get(`PassageDone`),d=R(()=>{if(!c)return null;try{return Eg(c)}catch(e){return console.error(`spindle: Error in PassageHeader:`,e),null}},[c?.content]),f=R(()=>{if(!l)return null;try{return Eg(l)}catch(e){return console.error(`spindle: Error in PassageFooter:`,e),null}},[l?.content]);Ee(()=>(u&&o(!0),()=>o(!1)),[e.name]);let p=R(()=>{if(!a||!u)return null;try{return Eg(u)}catch(e){return console.error(`spindle: Error in PassageDone:`,e),null}},[a,u?.content]),m=L(null);De(()=>{n!==void 0&&gh(n),m.current&&hd(`passagerender`,e.name,m.current)},[e.name,n]);let h=e.tags.includes(`nobr`),g=K(`div`,{ref:m,class:`passage`,\"data-passage\":e.name,\"data-tags\":e.tags.join(` `),\"data-transition\":t,children:[d&&K(`div`,{class:`passage-header`,children:d}),s,f&&K(`div`,{class:`passage-footer`,children:f}),p&&K(`div`,{hidden:!0,children:p})]});return h?K(Xl.Provider,{value:!0,children:g}):g}var kg=new Set([`none`,`fade`,`fade-through`,`crossfade`]),Ag={type:`fade-through`,duration:300,pause:50};function jg(e){let t=e.find(e=>e.startsWith(`transition:`));if(!t)return null;let n=t.slice(11);if(!kg.has(n))return console.warn(`Unknown transition type: \"${n}\"`),null;let r={type:n};for(let t of e)if(t.startsWith(`duration:`)){let e=Number(t.slice(9));Number.isNaN(e)||(r.duration=e)}else if(t.startsWith(`pause:`)){let e=Number(t.slice(6));Number.isNaN(e)||(r.pause=e)}return r}function Mg(e){return{type:e.type,duration:e.duration??Ag.duration,pause:e.pause??Ag.pause}}function Ng(e,t,n){let r=jg(e);return r?Mg(r):t?Mg(t):n?Mg(n):{...Ag}}function Pg(e,t){let n=e.cloneNode(!0);n.removeAttribute(`id`);let r=n.querySelectorAll(`[id]`);for(let e=0;e<r.length;e++)r[e].removeAttribute(`id`);n.style.pointerEvents=`none`,n.style.userSelect=`none`;let i=n.querySelectorAll(`audio, video`);for(let e=0;e<i.length;e++){let t=i[e];t.pause?.(),t.muted=!0}return n.classList.remove(`passage`),n.classList.add(`passage-snapshot`),n.setAttribute(`data-transition`,t),n}function Fg(e,t){e.style.setProperty(`--passage-in-duration`,`${t.duration/1e3}s`),e.style.setProperty(`--passage-out-duration`,`${t.duration/1e3}s`),e.style.setProperty(`--passage-pause`,`${t.pause/1e3}s`)}function Ig(e){if(!e)return;e.classList.remove(`passage-container--crossfading`);let t=e.querySelectorAll(`.passage-snapshot`);for(let e=0;e<t.length;e++)t[e].remove()}$({name:`passage`,interpolate:!0,render(e,t){let{currentPassage:n,navigationId:r,storyData:i,renderDeferred:a}=Ai(`currentPassage`,`navigationId`,`storyData`,`renderDeferred`),[o,s]=I({passage:n,id:r}),c=o.passage,l=e=>s({passage:e,id:r}),u=L(`fade`),d=L(0),f=L(null),p=L([]),m=Oe(()=>{for(let e of p.current)clearTimeout(e);p.current=[],Ig(f.current)},[]);Ee(()=>m,[m]),Ee(()=>{let e=Q.getState(),{history:t,historyIndex:a,transitionConfig:s}=e,h=e.consumeNextTransition(),g=d.current;d.current=t.length;let _=!c,v=t.length===1&&a===0&&g>1,y=t.length>1&&a===t.length-1&&g>1&&Math.abs(t.length-g)>1;if(r===o.id)return;m();let b=i?.passages.get(n);if(!b){u.current=`none`,l(n);return}if(_||v||y){u.current=`fade`,l(n);return}let x=Ng(b.tags,h,s);u.current=x.type;let S=f.current;if(x.type===`none`){l(n);return}if(x.type===`fade`){S&&Fg(S,x),l(n);return}if(x.type===`fade-through`){if(!S){l(n);return}Fg(S,x);let e=S.querySelector(`.passage`);if(!e){l(n);return}let t=Pg(e,x.type);S.appendChild(t),l(``);let r=x.duration+x.pause,i=setTimeout(()=>{l(n)},r),a=r+x.duration;p.current=[i,setTimeout(()=>{Ig(S)},a)];return}if(x.type===`crossfade`){if(!S){l(n);return}Fg(S,x);let e=S.querySelector(`.passage`);if(!e){l(n);return}let t=Pg(e,x.type);S.classList.add(`passage-container--crossfading`),S.appendChild(t),l(n),p.current=[setTimeout(()=>{Ig(S)},x.duration)];return}l(n)},[r]);let h=a?i?.passages.get(`StoryLoading`)??null:c?i?.passages.get(c):null;if(!h&&c&&!a)return K(`div`,{class:`error`,children:[`Error: Passage “`,c,`” not found.`]});let g=i?.passages.get(`PassageReady`);return K(`div`,{id:t.id??`story`,class:t.className??`story`,children:[!a&&g&&K(`div`,{hidden:!0,children:Eg(g)},`ready-${r}`),K(`div`,{class:`passage-container`,ref:f,children:h&&K(Og,{passage:h,dataTransition:a?`none`:u.current,navigationId:a?void 0:o.id},a?`loading`:`nav-${o.id}`)})]})}});var Lg=/\\w+/y,Rg=/\\d+/y;function zg(e,t,n){return e.lastIndex=n,e.exec(t)?.[0]??null}function Bg(e){let t=e.trim(),n=Ka(t,0);if(!n)return null;let r={},i=n.end;for(;i<t.length;){let e=zg(Lg,t,i);if(!e){i=Ka(t,i)?.end??i+1;continue}i+=e.length;let n,a=i;for(;a<t.length&&Ha(t[a]);)a++;if(a>i){let e=Ka(t,a),r=e?null:zg(Rg,t,a);e?(n=e.value,i=e.end):r&&(n=r,i=a+r.length)}switch(e){case`goto`:r.goto=n;break;case`dialog`:r.dialog=n;break;case`run`:r.run=n;break;case`name`:r.name=n;break;case`priority`:r.priority=n?Number(n):0;break;case`once`:r.once=!0;break}}return{condition:n.value,options:r}}function Vg(e){let t=e.trim();return qa(t)??t.replace(/^['\"]|['\"]$/g,``)}$({name:`watch`,render(e,t){let{hooks:n}=t,r=Bg(e.rawArgs);if(!r)return null;let{condition:i,options:a}=r,o=n.useRef(!1);return o.current||(o.current=!0,hp(i,a)),null}}),$({name:`unwatch`,render(e,t){let n=Vg(e.rawArgs),r=t.hooks.useRef(!1);return r.current||(r.current=!0,gp(n)),null}});var Hg=`*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;font-size:16px}body{color:#e0e0e0;background-color:#1a1a2e;min-height:100vh;margin:0;padding:0;font-family:Georgia,Times New Roman,serif;line-height:1.75}tw-storydata{display:none!important}#story{max-width:42em;margin:0 auto;padding:2em 1.5em}.passage-container{position:relative}.passage-container--crossfading{display:grid}.passage-container--crossfading>*{grid-area:1/1}.passage{animation:passage-fade-in var(--passage-in-duration,.3s) ease}.passage[data-transition=none]{animation:none}.passage-snapshot{animation:passage-fade-out var(--passage-out-duration,.3s) ease forwards;pointer-events:none;-webkit-user-select:none;user-select:none}@keyframes passage-fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes passage-fade-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-8px)}}@media (prefers-reduced-motion:reduce){.passage,.passage-snapshot{animation-duration:10ms!important}}.macro-button{color:#64b5f6;font:inherit;cursor:pointer;background:#64b5f626;border:1px solid #64b5f666;border-radius:4px;padding:.25em .75em;font-size:.95em;transition:background .2s,border-color .2s}.macro-button:hover{background:#64b5f640;border-color:#90caf9}.macro-button:active{background:#64b5f659}.error{color:#ef5350;background:#ef53501a;border:1px solid #ef5350;border-radius:4px;padding:1em;font-family:monospace}.loading{text-align:center;opacity:.6;padding:2em}.story-menubar{z-index:100;background:#16213e;border-bottom:1px solid #ffffff14;align-items:center;gap:.5em;padding:.5em 1.5em;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:.9em;display:flex;position:sticky;top:0}.story-title{color:#e0e0e0;white-space:nowrap;text-overflow:ellipsis;flex:1;font-weight:600;overflow:hidden}.menubar-button{color:#9e9e9e;cursor:pointer;font:inherit;background:0 0;border:1px solid #0000;border-radius:4px;padding:.35em .7em;transition:color .2s,background .2s}.menubar-button:hover{color:#e0e0e0;background:#ffffff14}.menubar-button:disabled{opacity:.4;cursor:default}.menubar-button:disabled:hover{color:#9e9e9e;background:0 0}.dialog-overlay{z-index:200;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.dialog-panel{color:#e0e0e0;background:#16213e;border:1px solid #ffffff1a;border-radius:8px;flex-direction:column;width:90%;max-width:500px;max-height:80vh;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;display:flex;position:relative}.dialog-panel:focus{outline:none}.dialog-saves{max-width:550px}.dialog-settings{max-width:400px}.dialog-close{z-index:1;color:#9e9e9e;cursor:pointer;background:0 0;border:none;padding:.25em;font-size:1.1em;line-height:1;position:absolute;top:.75em;right:.75em}.dialog-close:hover{color:#e0e0e0}.dialog-body{flex:1;min-height:0;overflow-y:auto}.settings-controls{flex-direction:column;gap:1em;padding:1em 1.25em;display:flex}.settings-row{justify-content:space-between;align-items:center;gap:1em;display:flex}.settings-row select,.settings-row input[type=range]{accent-color:#64b5f6}.settings-row select{color:#e0e0e0;font:inherit;background:#1a1a2e;border:1px solid #ffffff26;border-radius:4px;padding:.3em .5em}.settings-row input[type=checkbox]{accent-color:#64b5f6;width:1.1em;height:1.1em}.save-manager{flex-direction:column;flex:1;min-height:0;display:flex}.saves-header{border-bottom:1px solid #ffffff14;flex-shrink:0;justify-content:space-between;align-items:center;padding:1em 3em 1em 1.25em;font-weight:600;display:flex}.saves-header-left{align-items:center;gap:.75em;display:flex}.saves-mode-toggle{border:1px solid #ffffff26;border-radius:4px;gap:0;display:flex;overflow:hidden}.saves-mode-toggle button{color:#9e9e9e;font:inherit;cursor:pointer;background:0 0;border:none;padding:.3em .8em;font-size:.85em;font-weight:600;transition:background .2s,color .2s}.saves-mode-toggle button.active{color:#64b5f6;background:#64b5f633}.saves-mode-toggle button:hover:not(.active){color:#e0e0e0}.saves-body{flex:1;min-height:0;padding:.75em 1.25em;overflow-y:auto}.saves-empty{text-align:center;opacity:.5;padding:2em 1em;font-size:.9em}.saves-toolbar{border-bottom:1px solid #ffffff14;flex-shrink:0;gap:.5em;padding:.5em 1.25em;display:flex}.saves-toolbar-button{color:#9e9e9e;font:inherit;cursor:pointer;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:4px;padding:.3em .7em;font-size:.8em;transition:background .2s,color .2s}.saves-toolbar-button:hover{color:#e0e0e0;background:#ffffff1a}.playthrough-group{margin-bottom:.75em}.playthrough-header{cursor:pointer;-webkit-user-select:none;user-select:none;color:#9e9e9e;align-items:center;gap:.5em;padding:.4em 0;font-size:.85em;transition:color .2s;display:flex}.playthrough-header:hover{color:#e0e0e0}.playthrough-chevron{font-size:.7em;transition:transform .2s;display:inline-block}.playthrough-chevron.open{transform:rotate(90deg)}.playthrough-label{font-weight:600}.playthrough-date{opacity:.6;font-size:.9em}.playthrough-saves{flex-direction:column;gap:.4em;padding-left:.25em;display:flex}.save-slot{background:#ffffff08;border:1px solid #ffffff0f;border-radius:6px;align-items:center;gap:.75em;padding:.5em .6em;transition:background .15s;display:flex}.save-slot:hover{background:#ffffff0f}.save-slot-info{flex:1;min-width:0}.save-slot-title{white-space:nowrap;text-overflow:ellipsis;font-size:.9em;font-weight:500;overflow:hidden}.save-slot-meta{color:#9e9e9e;gap:.75em;font-size:.75em;display:flex}.save-slot-actions{flex-shrink:0;gap:.3em;display:flex}.save-slot-action{color:#9e9e9e;font:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:3px;padding:.2em .5em;font-size:.75em;transition:color .2s,background .2s}.save-slot-action:hover{color:#e0e0e0;background:#ffffff14}.save-slot-action.primary{color:#64b5f6;border-color:#64b5f64d}.save-slot-action.primary:hover{background:#64b5f626}.save-slot-action.danger:hover{color:#ef5350;background:#ef53501a}.save-slot-new{color:#9e9e9e;font:inherit;cursor:pointer;background:0 0;border:1px dashed #ffffff1f;border-radius:6px;justify-content:center;align-items:center;width:100%;margin-top:.25em;padding:.5em;font-size:.8em;transition:color .2s,border-color .2s,background .2s;display:flex}.save-slot-new:hover{color:#64b5f6;background:#64b5f60d;border-color:#64b5f64d}.saves-status{color:#81c784;text-align:center;border-top:1px solid #ffffff14;flex-shrink:0;padding:.5em 1.25em;font-size:.8em}.saves-status.error{color:#ef5350;background:0 0;border:none;border-radius:0;padding:.5em 1.25em;font-family:inherit}.save-rename-input{color:#e0e0e0;font:inherit;background:#1a1a2e;border:1px solid #64b5f666;border-radius:3px;width:100%;padding:.15em .4em;font-size:.9em}.save-rename-input:focus{border-color:#64b5f6;outline:none}.macro-link{color:#64b5f6;cursor:pointer;border-bottom:1px solid #64b5f64d;text-decoration:none;transition:color .2s,border-color .2s}.macro-link:hover{color:#90caf9;border-bottom-color:#90caf9}.macro-link:active{color:#42a5f5}.macro-textbox,.macro-numberbox,.macro-textarea{color:#e0e0e0;font:inherit;background:#1a1a2e;border:1px solid #ffffff26;border-radius:4px;padding:.3em .5em}.macro-textbox:focus,.macro-numberbox:focus,.macro-textarea:focus{border-color:#64b5f6;outline:none}.macro-textarea{resize:vertical;min-height:3em}.macro-checkbox,.macro-radiobutton{cursor:pointer;align-items:center;gap:.3em;display:inline-flex}.macro-checkbox input,.macro-radiobutton input{accent-color:#64b5f6}.macro-listbox{color:#e0e0e0;font:inherit;background:#1a1a2e;border:1px solid #ffffff26;border-radius:4px;padding:.3em .5em}.macro-cycle{color:#64b5f6;font:inherit;cursor:pointer;background:#64b5f626;border:1px solid #64b5f666;border-radius:4px;padding:.25em .75em;transition:background .2s,border-color .2s}.macro-cycle:hover{background:#64b5f640;border-color:#90caf9}.macro-meter{background:#2a2a3e;border:1px solid #444;border-radius:.3em;width:100%;height:1.4em;position:relative;overflow:hidden}.macro-meter-fill{background:#64b5f6;height:100%;transition:width .3s}.macro-meter-label{color:#e0e0e0;text-shadow:0 1px 2px #000c;pointer-events:none;justify-content:center;align-items:center;font-size:.85em;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.md{display:contents}.passage p{margin:.6em 0}.passage p:first-child{margin-top:0}.passage p:last-child{margin-bottom:0}.passage h1,.passage h2,.passage h3,.passage h4,.passage h5,.passage h6{color:#f0f0f0;margin:1em 0 .4em;line-height:1.3}.passage h1{font-size:1.8em}.passage h2{font-size:1.5em}.passage h3{font-size:1.25em}.passage h4{font-size:1.1em}.passage h5{font-size:1em}.passage h6{opacity:.8;font-size:.9em}.passage code{background:#ffffff14;border-radius:3px;padding:.15em .35em;font-family:Fira Code,Cascadia Code,Consolas,monospace;font-size:.9em}.passage pre{background:#0000004d;border:1px solid #ffffff14;border-radius:6px;margin:.8em 0;padding:1em;overflow-x:auto}.passage pre code{background:0 0;border-radius:0;padding:0;font-size:.85em}.passage blockquote{color:#b0b0b0;border-left:3px solid #64b5f680;margin:.8em 0;padding:.4em 1em}.passage blockquote p{margin:.3em 0}.passage ul,.passage ol{margin:.6em 0;padding-left:1.8em}.passage li{margin:.2em 0}.passage hr{border:none;border-top:1px solid #ffffff1f;margin:1.2em 0}.passage table{border-collapse:collapse;width:100%;margin:.8em 0}.passage th,.passage td{text-align:left;border:1px solid #ffffff1f;padding:.5em .75em}.passage th{background:#ffffff0f;font-weight:600}.passage tr:nth-child(2n){background:#ffffff05}.passage del{opacity:.5}.passage strong{color:#f0f0f0}.macro-type-cursor:after{content:\"█\";color:#64b5f6;animation:.7s step-end infinite type-blink}.macro-type-done .macro-type-cursor:after{display:none}@keyframes type-blink{50%{opacity:0}}`;function Ug(e,t){e.innerHTML=``;let n=document.createElement(`div`);n.style.cssText=`font-family:monospace;padding:2rem;max-width:60rem;margin:0 auto`;let r=document.createElement(`h1`);r.style.color=`#c00`,r.textContent=`Story Validation Errors`,n.appendChild(r);let i=document.createElement(`ul`);i.style.cssText=`line-height:1.6`;for(let e of t){let t=document.createElement(`li`);t.textContent=e,i.appendChild(t)}n.appendChild(i),e.appendChild(n)}function Wg(){let e=Um(),t=document.createElement(`style`);if(t.id=`spindle-styles`,t.textContent=Hg,document.head.appendChild(t),jh(),e.userCSS){let t=document.createElement(`style`);t.textContent=e.userCSS,document.head.appendChild(t)}if(e.userScript)try{Function(e.userScript)()}catch(e){console.error(`spindle: Error in story JavaScript:`,e)}document.dispatchEvent(new CustomEvent(`:storystartup`));let n={},r=e.passages.get(`StoryVariables`);if(!r){let e=`Missing StoryVariables passage. Add a :: StoryVariables passage to declare your variables.`,t=document.getElementById(`root`);throw t&&Ug(t,[e]),Error(`spindle: ${e}`)}let i=zh(r.content),a=Ra().filter(e=>e.storeVar).map(e=>e.name),o=Yh(e.passages,i,a),s={},c=e.passages.get(`StoryTransients`);if(c){let e=zh(c.content,`%`);for(let t of e.keys())i.has(t)&&o.push(`StoryTransients: Variable \"${t}\" is already declared in StoryVariables. Names must be unique across scopes.`);s=Xh(e)}if(o.length>0){let e=document.getElementById(`root`);throw e&&Ug(e,o),Error(`spindle: ${o.length} validation error(s):\\n${o.join(`\n`)}`)}n=Xh(i),Eh(Object.keys(n),Object.keys(s)),Q.getState().init(e,n,s),gm();let l=/\\{widget\\s+[\"']?(\\w+)[\"']?[^}]*\\}([\\s\\S]*?)\\{\\/widget\\}/g;for(let[t,n]of e.passages)if(t===`StoryInit`||n.tags.includes(`widget`)){let e;for(;(e=l.exec(n.content))!==null;){let t=e[1],n=e[2];/\\{@children\\}/.test(n)&&bi(t)}l.lastIndex=0}Ef(lf(e.ifid));for(let[,t]of e.passages)if(t.tags.includes(`widget`)){let e=wi(vi(t.content));for(let n of e)if(n.type===`macro`&&n.name===`widget`&&n.rawArgs){let e=n.rawArgs.trim().split(/\\s+/),r=e[0].replace(/[\"']/g,``),i=e.slice(1).filter(e=>e.startsWith(`$`)||e.startsWith(`_`)||e.startsWith(`@`)),a=n.children,o=Zh(a);try{Ba(r,a,i,o)}catch(e){console.error(`spindle: widget \"${r}\" in passage \"${t.name}\" was not registered: ${yo(e)}`);continue}o&&bi(r)}}let u=Q.getState().navigationId;Q.subscribe(e=>{e.navigationId!==u&&(u=e.navigationId,sh())}),Cp();let d=e.passages.get(`StoryInterface`);d&&!d.content.includes(`{passage}`)&&console.warn(`spindle: StoryInterface passage does not contain {passage}. The current passage will not be displayed.`);let f=document.getElementById(`root`);if(!f)throw Error(`spindle: No <div id=\"root\"> element found.`);fe(K(Vm,{}),f);let p=bh();p?p.then(()=>{document.dispatchEvent(new CustomEvent(`:storyready`))}):document.dispatchEvent(new CustomEvent(`:storyready`))}document.readyState===`loading`?document.addEventListener(`DOMContentLoaded`,Wg):Wg();</script>\n </head>\n <body>\n <div id=\"root\"></div>\n {{STORY_DATA}}\n </body>\n</html>\n"})
|
|
1
|
+
window.storyFormat({"name":"spindle","version":"0.52.4","author":"Rohal12","description":"A Preact-based story format for Twine 2.","image":"","url":"","license":"Unlicense","proofing":false,"source":"<!doctype html>\n<html>\n <head>\n <meta charset=\"UTF-8\" />\n <meta\n name=\"viewport\"\n content=\"width=device-width, initial-scale=1\"\n />\n <title>{{STORY_NAME}}</title>\n <link\n id=\"favicon\"\n rel=\"icon\"\n type=\"image/svg+xml\"\n href=\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cdefs%3E%3ClinearGradient id='sg' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0%25' stop-color='%23c4b5fd'/%3E%3Cstop offset='50%25' stop-color='%238b5cf6'/%3E%3Cstop offset='100%25' stop-color='%235b21b6'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cellipse cx='16' cy='16' rx='13' ry='5' stroke='%237c3aed' stroke-width='1.8' fill='none' opacity='.85' transform='rotate(55,16,16)'/%3E%3Cellipse cx='16' cy='16' rx='13' ry='5' stroke='%238b5cf6' stroke-width='1.8' fill='none' opacity='.85' transform='rotate(-55,16,16)'/%3E%3Cpath d='M16 3Q19.5 9 20.5 16 19.5 23 16 29 12.5 23 11.5 16 12.5 9 16 3Z' fill='url(%23sg)'/%3E%3C/svg%3E\"\n />\n <script type=\"module\" crossorigin>var e=Object.defineProperty,t=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],enumerable:!0});return n||e(r,Symbol.toStringTag,{value:`Module`}),r};(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel=\"modulepreload\"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var n,r,i,a,o,s,c,l,u,d,f,p,m={},h=[],g=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,_=Array.isArray;function v(e,t){for(var n in t)e[n]=t[n];return e}function y(e){e&&e.parentNode&&e.parentNode.removeChild(e)}function b(e,t,r){var i,a,o,s={};for(o in t)o==`key`?i=t[o]:o==`ref`?a=t[o]:s[o]=t[o];if(arguments.length>2&&(s.children=arguments.length>3?n.call(arguments,2):r),typeof e==`function`&&e.defaultProps!=null)for(o in e.defaultProps)s[o]===void 0&&(s[o]=e.defaultProps[o]);return x(e,s,i,a,null)}function x(e,t,n,a,o){var s={type:e,props:t,key:n,ref:a,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:o??++i,__i:-1,__u:0};return o==null&&r.vnode!=null&&r.vnode(s),s}function S(e){return e.children}function C(e,t){this.props=e,this.context=t}function w(e,t){if(t==null)return e.__?w(e.__,e.__i+1):null;for(var n;t<e.__k.length;t++)if((n=e.__k[t])!=null&&n.__e!=null)return n.__e;return typeof e.type==`function`?w(e):null}function T(e){if(e.__P&&e.__d){var t=e.__v,n=t.__e,i=[],a=[],o=v({},t);o.__v=t.__v+1,r.vnode&&r.vnode(o),ie(e.__P,o,t,e.__n,e.__P.namespaceURI,32&t.__u?[n]:null,i,n??w(t),!!(32&t.__u),a),o.__v=t.__v,o.__.__k[o.__i]=o,oe(i,o,a),t.__e=t.__=null,o.__e!=n&&E(o)}}function E(e){if((e=e.__)!=null&&e.__c!=null)return e.__e=e.__c.base=null,e.__k.some(function(t){if(t!=null&&t.__e!=null)return e.__e=e.__c.base=t.__e}),E(e)}function D(e){(!e.__d&&(e.__d=!0)&&a.push(e)&&!O.__r++||o!=r.debounceRendering)&&((o=r.debounceRendering)||s)(O)}function O(){try{for(var e,t=1;a.length;)a.length>t&&a.sort(c),e=a.shift(),t=a.length,T(e)}finally{a.length=O.__r=0}}function k(e,t,n,r,i,a,o,s,c,l,u){var d,f,p,g,_,v,y,b=r&&r.__k||h,x=t.length;for(c=ee(n,t,b,c,x),d=0;d<x;d++)(p=n.__k[d])!=null&&(f=p.__i!=-1&&b[p.__i]||m,p.__i=d,v=ie(e,p,f,i,a,o,s,c,l,u),g=p.__e,p.ref&&f.ref!=p.ref&&(f.ref&&le(f.ref,null,p),u.push(p.ref,p.__c||g,p)),_==null&&g!=null&&(_=g),(y=!!(4&p.__u))||f.__k===p.__k?c=A(p,c,e,y):typeof p.type==`function`&&v!==void 0?c=v:g&&(c=g.nextSibling),p.__u&=-7);return n.__e=_,c}function ee(e,t,n,r,i){var a,o,s,c,l,u=n.length,d=u,f=0;for(e.__k=Array(i),a=0;a<i;a++)(o=t[a])!=null&&typeof o!=`boolean`&&typeof o!=`function`?(typeof o==`string`||typeof o==`number`||typeof o==`bigint`||o.constructor==String?o=e.__k[a]=x(null,o,null,null,null):_(o)?o=e.__k[a]=x(S,{children:o},null,null,null):o.constructor===void 0&&o.__b>0?o=e.__k[a]=x(o.type,o.props,o.key,o.ref?o.ref:null,o.__v):e.__k[a]=o,c=a+f,o.__=e,o.__b=e.__b+1,s=null,(l=o.__i=M(o,n,c,d))!=-1&&(d--,(s=n[l])&&(s.__u|=2)),s==null||s.__v==null?(l==-1&&(i>u?f--:i<u&&f++),typeof o.type!=`function`&&(o.__u|=4)):l!=c&&(l==c-1?f--:l==c+1?f++:(l>c?f--:f++,o.__u|=4))):e.__k[a]=null;if(d)for(a=0;a<u;a++)(s=n[a])!=null&&!(2&s.__u)&&(s.__e==r&&(r=w(s)),ue(s,s));return r}function A(e,t,n,r){var i,a;if(typeof e.type==`function`){for(i=e.__k,a=0;i&&a<i.length;a++)i[a]&&(i[a].__=e,t=A(i[a],t,n,r));return t}e.__e!=t&&(r&&(t&&e.type&&!t.parentNode&&(t=w(e)),n.insertBefore(e.__e,t||null)),t=e.__e);do t=t&&t.nextSibling;while(t!=null&&t.nodeType==8);return t}function j(e,t){return t=t||[],e==null||typeof e==`boolean`||(_(e)?e.some(function(e){j(e,t)}):t.push(e)),t}function M(e,t,n,r){var i,a,o,s=e.key,c=e.type,l=t[n],u=l!=null&&(2&l.__u)==0;if(l===null&&s==null||u&&s==l.key&&c==l.type)return n;if(r>(u?1:0)){for(i=n-1,a=n+1;i>=0||a<t.length;)if((l=t[o=i>=0?i--:a++])!=null&&!(2&l.__u)&&s==l.key&&c==l.type)return o}return-1}function te(e,t,n){t[0]==`-`?e.setProperty(t,n??``):e[t]=n==null?``:typeof n!=`number`||g.test(t)?n:n+`px`}function ne(e,t,n,r,i){var a,o;n:if(t==`style`)if(typeof n==`string`)e.style.cssText=n;else{if(typeof r==`string`&&(e.style.cssText=r=``),r)for(t in r)n&&t in n||te(e.style,t,``);if(n)for(t in n)r&&n[t]==r[t]||te(e.style,t,n[t])}else if(t[0]==`o`&&t[1]==`n`)a=t!=(t=t.replace(l,`$1`)),o=t.toLowerCase(),t=o in e||t==`onFocusOut`||t==`onFocusIn`?o.slice(2):t.slice(2),e.l||(e.l={}),e.l[t+a]=n,n?r?n.u=r.u:(n.u=u,e.addEventListener(t,a?f:d,a)):e.removeEventListener(t,a?f:d,a);else{if(i==`http://www.w3.org/2000/svg`)t=t.replace(/xlink(H|:h)/,`h`).replace(/sName$/,`s`);else if(t!=`width`&&t!=`height`&&t!=`href`&&t!=`list`&&t!=`form`&&t!=`tabIndex`&&t!=`download`&&t!=`rowSpan`&&t!=`colSpan`&&t!=`role`&&t!=`popover`&&t in e)try{e[t]=n??``;break n}catch{}typeof n==`function`||(n==null||!1===n&&t[4]!=`-`?e.removeAttribute(t):e.setAttribute(t,t==`popover`&&n==1?``:n))}}function re(e){return function(t){if(this.l){var n=this.l[t.type+e];if(t.t==null)t.t=u++;else if(t.t<n.u)return;return n(r.event?r.event(t):t)}}}function ie(e,t,n,i,a,o,s,c,l,u){var d,f,p,m,g,b,x,w,T,E,D,O,ee,A,j,M=t.type;if(t.constructor!==void 0)return null;128&n.__u&&(l=!!(32&n.__u),o=[c=t.__e=n.__e]),(d=r.__b)&&d(t);n:if(typeof M==`function`)try{if(w=t.props,T=M.prototype&&M.prototype.render,E=(d=M.contextType)&&i[d.__c],D=d?E?E.props.value:d.__:i,n.__c?x=(f=t.__c=n.__c).__=f.__E:(T?t.__c=f=new M(w,D):(t.__c=f=new C(w,D),f.constructor=M,f.render=de),E&&E.sub(f),f.state||(f.state={}),f.__n=i,p=f.__d=!0,f.__h=[],f._sb=[]),T&&f.__s==null&&(f.__s=f.state),T&&M.getDerivedStateFromProps!=null&&(f.__s==f.state&&(f.__s=v({},f.__s)),v(f.__s,M.getDerivedStateFromProps(w,f.__s))),m=f.props,g=f.state,f.__v=t,p)T&&M.getDerivedStateFromProps==null&&f.componentWillMount!=null&&f.componentWillMount(),T&&f.componentDidMount!=null&&f.__h.push(f.componentDidMount);else{if(T&&M.getDerivedStateFromProps==null&&w!==m&&f.componentWillReceiveProps!=null&&f.componentWillReceiveProps(w,D),t.__v==n.__v||!f.__e&&f.shouldComponentUpdate!=null&&!1===f.shouldComponentUpdate(w,f.__s,D)){t.__v!=n.__v&&(f.props=w,f.state=f.__s,f.__d=!1),t.__e=n.__e,t.__k=n.__k,t.__k.some(function(e){e&&(e.__=t)}),h.push.apply(f.__h,f._sb),f._sb=[],f.__h.length&&s.push(f);break n}f.componentWillUpdate!=null&&f.componentWillUpdate(w,f.__s,D),T&&f.componentDidUpdate!=null&&f.__h.push(function(){f.componentDidUpdate(m,g,b)})}if(f.context=D,f.props=w,f.__P=e,f.__e=!1,O=r.__r,ee=0,T)f.state=f.__s,f.__d=!1,O&&O(t),d=f.render(f.props,f.state,f.context),h.push.apply(f.__h,f._sb),f._sb=[];else do f.__d=!1,O&&O(t),d=f.render(f.props,f.state,f.context),f.state=f.__s;while(f.__d&&++ee<25);f.state=f.__s,f.getChildContext!=null&&(i=v(v({},i),f.getChildContext())),T&&!p&&f.getSnapshotBeforeUpdate!=null&&(b=f.getSnapshotBeforeUpdate(m,g)),A=d!=null&&d.type===S&&d.key==null?se(d.props.children):d,c=k(e,_(A)?A:[A],t,n,i,a,o,s,c,l,u),f.base=t.__e,t.__u&=-161,f.__h.length&&s.push(f),x&&(f.__E=f.__=null)}catch(e){if(t.__v=null,l||o!=null)if(e.then){for(t.__u|=l?160:128;c&&c.nodeType==8&&c.nextSibling;)c=c.nextSibling;o[o.indexOf(c)]=null,t.__e=c}else{for(j=o.length;j--;)y(o[j]);ae(t)}else t.__e=n.__e,t.__k=n.__k,e.then||ae(t);r.__e(e,t,n)}else o==null&&t.__v==n.__v?(t.__k=n.__k,t.__e=n.__e):c=t.__e=ce(n.__e,t,n,i,a,o,s,l,u);return(d=r.diffed)&&d(t),128&t.__u?void 0:c}function ae(e){e&&(e.__c&&(e.__c.__e=!0),e.__k&&e.__k.some(ae))}function oe(e,t,n){for(var i=0;i<n.length;i++)le(n[i],n[++i],n[++i]);r.__c&&r.__c(t,e),e.some(function(t){try{e=t.__h,t.__h=[],e.some(function(e){e.call(t)})}catch(e){r.__e(e,t.__v)}})}function se(e){return typeof e!=`object`||!e||e.__b>0?e:_(e)?e.map(se):v({},e)}function ce(e,t,i,a,o,s,c,l,u){var d,f,p,h,g,v,b,x=i.props||m,S=t.props,C=t.type;if(C==`svg`?o=`http://www.w3.org/2000/svg`:C==`math`?o=`http://www.w3.org/1998/Math/MathML`:o||(o=`http://www.w3.org/1999/xhtml`),s!=null){for(d=0;d<s.length;d++)if((g=s[d])&&`setAttribute`in g==!!C&&(C?g.localName==C:g.nodeType==3)){e=g,s[d]=null;break}}if(e==null){if(C==null)return document.createTextNode(S);e=document.createElementNS(o,C,S.is&&S),l&&(r.__m&&r.__m(t,s),l=!1),s=null}if(C==null)x===S||l&&e.data==S||(e.data=S);else{if(s=s&&n.call(e.childNodes),!l&&s!=null)for(x={},d=0;d<e.attributes.length;d++)x[(g=e.attributes[d]).name]=g.value;for(d in x)g=x[d],d==`dangerouslySetInnerHTML`?p=g:d==`children`||d in S||d==`value`&&`defaultValue`in S||d==`checked`&&`defaultChecked`in S||ne(e,d,null,g,o);for(d in S)g=S[d],d==`children`?h=g:d==`dangerouslySetInnerHTML`?f=g:d==`value`?v=g:d==`checked`?b=g:l&&typeof g!=`function`||x[d]===g||ne(e,d,g,x[d],o);if(f)l||p&&(f.__html==p.__html||f.__html==e.innerHTML)||(e.innerHTML=f.__html),t.__k=[];else if(p&&(e.innerHTML=``),k(t.type==`template`?e.content:e,_(h)?h:[h],t,i,a,C==`foreignObject`?`http://www.w3.org/1999/xhtml`:o,s,c,s?s[0]:i.__k&&w(i,0),l,u),s!=null)for(d=s.length;d--;)y(s[d]);l||(d=`value`,C==`progress`&&v==null?e.removeAttribute(`value`):v!=null&&(v!==e[d]||C==`progress`&&!v||C==`option`&&v!=x[d])&&ne(e,d,v,x[d],o),d=`checked`,b!=null&&b!=e[d]&&ne(e,d,b,x[d],o))}return e}function le(e,t,n){try{if(typeof e==`function`){var i=typeof e.__u==`function`;i&&e.__u(),i&&t==null||(e.__u=e(t))}else e.current=t}catch(e){r.__e(e,n)}}function ue(e,t,n){var i,a;if(r.unmount&&r.unmount(e),(i=e.ref)&&(i.current&&i.current!=e.__e||le(i,null,t)),(i=e.__c)!=null){if(i.componentWillUnmount)try{i.componentWillUnmount()}catch(e){r.__e(e,t)}i.base=i.__P=null}if(i=e.__k)for(a=0;a<i.length;a++)i[a]&&ue(i[a],t,n||typeof e.type!=`function`);n||y(e.__e),e.__c=e.__=e.__e=void 0}function de(e,t,n){return this.constructor(e,n)}function fe(e,t,i){var a,o,s,c;t==document&&(t=document.documentElement),r.__&&r.__(e,t),o=(a=typeof i==`function`)?null:i&&i.__k||t.__k,s=[],c=[],ie(t,e=(!a&&i||t).__k=b(S,null,[e]),o||m,m,t.namespaceURI,!a&&i?[i]:o?null:t.firstChild?n.call(t.childNodes):null,s,!a&&i?i:o?o.__e:t.firstChild,a,c),oe(s,e,c)}function pe(e){function t(e){var n,r;return this.getChildContext||(n=new Set,(r={})[t.__c]=this,this.getChildContext=function(){return r},this.componentWillUnmount=function(){n=null},this.shouldComponentUpdate=function(e){this.props.value!=e.value&&n.forEach(function(e){e.__e=!0,D(e)})},this.sub=function(e){n.add(e);var t=e.componentWillUnmount;e.componentWillUnmount=function(){n&&n.delete(e),t&&t.call(e)}}),e.children}return t.__c=`__cC`+ p++,t.__=e,t.Provider=t.__l=(t.Consumer=function(e,t){return e.children(t)}).contextType=t,t}n=h.slice,r={__e:function(e,t,n,r){for(var i,a,o;t=t.__;)if((i=t.__c)&&!i.__)try{if((a=i.constructor)&&a.getDerivedStateFromError!=null&&(i.setState(a.getDerivedStateFromError(e)),o=i.__d),i.componentDidCatch!=null&&(i.componentDidCatch(e,r||{}),o=i.__d),o)return i.__E=i}catch(t){e=t}throw e}},i=0,C.prototype.setState=function(e,t){var n=this.__s!=null&&this.__s!=this.state?this.__s:this.__s=v({},this.state);typeof e==`function`&&(e=e(v({},n),this.props)),e&&v(n,e),e!=null&&this.__v&&(t&&this._sb.push(t),D(this))},C.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),D(this))},C.prototype.render=S,a=[],s=typeof Promise==`function`?Promise.prototype.then.bind(Promise.resolve()):setTimeout,c=function(e,t){return e.__v.__b-t.__v.__b},O.__r=0,l=/(PointerCapture)$|Capture$/i,u=0,d=re(!1),f=re(!0),p=0;var me,N,he,ge,_e=0,ve=[],P=r,F=P.__b,ye=P.__r,be=P.diffed,xe=P.__c,Se=P.unmount,Ce=P.__;function we(e,t){P.__h&&P.__h(N,e,_e||t),_e=0;var n=N.__H||(N.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({}),n.__[e]}function I(e){return _e=1,Te(Fe,e)}function Te(e,t,n){var r=we(me++,2);if(r.t=e,!r.__c&&(r.__=[n?n(t):Fe(void 0,t),function(e){var t=r.__N?r.__N[0]:r.__[0],n=r.t(t,e);t!==n&&(r.__N=[n,r.__[1]],r.__c.setState({}))}],r.__c=N,!N.__f)){var i=function(e,t,n){if(!r.__c.__H)return!0;var i=r.__c.__H.__.filter(function(e){return e.__c});if(i.every(function(e){return!e.__N}))return!a||a.call(this,e,t,n);var o=r.__c.props!==e;return i.some(function(e){if(e.__N){var t=e.__[0];e.__=e.__N,e.__N=void 0,t!==e.__[0]&&(o=!0)}}),a&&a.call(this,e,t,n)||o};N.__f=!0;var a=N.shouldComponentUpdate,o=N.componentWillUpdate;N.componentWillUpdate=function(e,t,n){if(this.__e){var r=a;a=void 0,i(e,t,n),a=r}o&&o.call(this,e,t,n)},N.shouldComponentUpdate=i}return r.__N||r.__}function Ee(e,t){var n=we(me++,3);!P.__s&&Pe(n.__H,t)&&(n.__=e,n.u=t,N.__H.__h.push(n))}function De(e,t){var n=we(me++,4);!P.__s&&Pe(n.__H,t)&&(n.__=e,n.u=t,N.__h.push(n))}function L(e){return _e=5,R(function(){return{current:e}},[])}function R(e,t){var n=we(me++,7);return Pe(n.__H,t)&&(n.__=e(),n.__H=t,n.__h=e),n.__}function Oe(e,t){return _e=8,R(function(){return e},t)}function z(e){var t=N.context[e.__c],n=we(me++,9);return n.c=e,t?(n.__??(n.__=!0,t.sub(N)),t.props.value):e.__}function ke(){for(var e;e=ve.shift();){var t=e.__H;if(e.__P&&t)try{t.__h.some(Me),t.__h.some(Ne),t.__h=[]}catch(n){t.__h=[],P.__e(n,e.__v)}}}P.__b=function(e){N=null,F&&F(e)},P.__=function(e,t){e&&t.__k&&t.__k.__m&&(e.__m=t.__k.__m),Ce&&Ce(e,t)},P.__r=function(e){ye&&ye(e),me=0;var t=(N=e.__c).__H;t&&(he===N?(t.__h=[],N.__h=[],t.__.some(function(e){e.__N&&(e.__=e.__N),e.u=e.__N=void 0})):(t.__h.some(Me),t.__h.some(Ne),t.__h=[],me=0)),he=N},P.diffed=function(e){be&&be(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(ve.push(t)!==1&&ge===P.requestAnimationFrame||((ge=P.requestAnimationFrame)||je)(ke)),t.__H.__.some(function(e){e.u&&(e.__H=e.u),e.u=void 0})),he=N=null},P.__c=function(e,t){t.some(function(e){try{e.__h.some(Me),e.__h=e.__h.filter(function(e){return!e.__||Ne(e)})}catch(n){t.some(function(e){e.__h&&(e.__h=[])}),t=[],P.__e(n,e.__v)}}),xe&&xe(e,t)},P.unmount=function(e){Se&&Se(e);var t,n=e.__c;n&&n.__H&&(n.__H.__.some(function(e){try{Me(e)}catch(e){t=e}}),n.__H=void 0,t&&P.__e(t,n.__v))};var Ae=typeof requestAnimationFrame==`function`;function je(e){var t,n=function(){clearTimeout(r),Ae&&cancelAnimationFrame(t),setTimeout(e)},r=setTimeout(n,35);Ae&&(t=requestAnimationFrame(n))}function Me(e){var t=N,n=e.__c;typeof n==`function`&&(e.__c=void 0,n()),N=t}function Ne(e){var t=N;e.__c=e.__(),N=t}function Pe(e,t){return!e||e.length!==t.length||t.some(function(t,n){return t!==e[n]})}function Fe(e,t){return typeof t==`function`?t(e):t}function Ie(e,t){for(var n in t)e[n]=t[n];return e}function Le(e,t){for(var n in e)if(n!==`__source`&&!(n in t))return!0;for(var r in t)if(r!==`__source`&&e[r]!==t[r])return!0;return!1}function Re(e,t){var n=t(),r=I({t:{__:n,u:t}}),i=r[0].t,a=r[1];return De(function(){i.__=n,i.u=t,ze(i)&&a({t:i})},[e,n,t]),Ee(function(){return ze(i)&&a({t:i}),e(function(){ze(i)&&a({t:i})})},[e]),n}function ze(e){try{return!((t=e.__)===(n=e.u())&&(t!==0||1/t==1/n)||t!=t&&n!=n)}catch{return!0}var t,n}function Be(e,t){this.props=e,this.context=t}(Be.prototype=new C).isPureReactComponent=!0,Be.prototype.shouldComponentUpdate=function(e,t){return Le(this.props,e)||Le(this.state,t)};var Ve=r.__b;r.__b=function(e){e.type&&e.type.__f&&e.ref&&(e.props.ref=e.ref,e.ref=null),Ve&&Ve(e)},typeof Symbol<`u`&&Symbol.for;var He=r.__e;r.__e=function(e,t,n,r){if(e.then){for(var i,a=t;a=a.__;)if((i=a.__c)&&i.__c)return t.__e??(t.__e=n.__e,t.__k=n.__k),i.__c(e,t)}He(e,t,n,r)};var Ue=r.unmount;function We(e,t,n){return e&&(e.__c&&e.__c.__H&&(e.__c.__H.__.forEach(function(e){typeof e.__c==`function`&&e.__c()}),e.__c.__H=null),(e=Ie({},e)).__c!=null&&(e.__c.__P===n&&(e.__c.__P=t),e.__c.__e=!0,e.__c=null),e.__k=e.__k&&e.__k.map(function(e){return We(e,t,n)})),e}function Ge(e,t,n){return e&&n&&(e.__v=null,e.__k=e.__k&&e.__k.map(function(e){return Ge(e,t,n)}),e.__c&&e.__c.__P===t&&(e.__e&&n.appendChild(e.__e),e.__c.__e=!0,e.__c.__P=n)),e}function Ke(){this.__u=0,this.o=null,this.__b=null}function qe(e){var t=e.__&&e.__.__c;return t&&t.__a&&t.__a(e)}function Je(){this.i=null,this.l=null}r.unmount=function(e){var t=e.__c;t&&(t.__z=!0),t&&t.__R&&t.__R(),t&&32&e.__u&&(e.type=null),Ue&&Ue(e)},(Ke.prototype=new C).__c=function(e,t){var n=t.__c,r=this;r.o??(r.o=[]),r.o.push(n);var i=qe(r.__v),a=!1,o=function(){a||r.__z||(a=!0,n.__R=null,i?i(c):c())};n.__R=o;var s=n.__P;n.__P=null;var c=function(){if(!--r.__u){if(r.state.__a){var e=r.state.__a;r.__v.__k[0]=Ge(e,e.__c.__P,e.__c.__O)}var t;for(r.setState({__a:r.__b=null});t=r.o.pop();)t.__P=s,t.forceUpdate()}};r.__u++||32&t.__u||r.setState({__a:r.__b=r.__v.__k[0]}),e.then(o,o)},Ke.prototype.componentWillUnmount=function(){this.o=[]},Ke.prototype.render=function(e,t){if(this.__b){if(this.__v.__k){var n=document.createElement(`div`),r=this.__v.__k[0].__c;this.__v.__k[0]=We(this.__b,n,r.__O=r.__P)}this.__b=null}var i=t.__a&&b(S,null,e.fallback);return i&&(i.__u&=-33),[b(S,null,t.__a?null:e.children),i]};var Ye=function(e,t,n){if(++n[1]===n[0]&&e.l.delete(t),e.props.revealOrder&&(e.props.revealOrder[0]!==`t`||!e.l.size))for(n=e.i;n;){for(;n.length>3;)n.pop()();if(n[1]<n[0])break;e.i=n=n[2]}};(Je.prototype=new C).__a=function(e){var t=this,n=qe(t.__v),r=t.l.get(e);return r[0]++,function(i){var a=function(){t.props.revealOrder?(r.push(i),Ye(t,e,r)):i()};n?n(a):a()}},Je.prototype.render=function(e){this.i=null,this.l=new Map;var t=j(e.children);e.revealOrder&&e.revealOrder[0]===`b`&&t.reverse();for(var n=t.length;n--;)this.l.set(t[n],this.i=[1,0,this.i]);return e.children},Je.prototype.componentDidUpdate=Je.prototype.componentDidMount=function(){var e=this;this.l.forEach(function(t,n){Ye(e,n,t)})};var Xe=typeof Symbol<`u`&&Symbol.for&&Symbol.for(`react.element`)||60103,Ze=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image(!S)|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,Qe=/^on(Ani|Tra|Tou|BeforeInp|Compo)/,$e=/[A-Z0-9]/g,et=typeof document<`u`,tt=function(e){return(typeof Symbol<`u`&&typeof Symbol()==`symbol`?/fil|che|rad/:/fil|che|ra/).test(e)};C.prototype.isReactComponent=!0,[`componentWillMount`,`componentWillReceiveProps`,`componentWillUpdate`].forEach(function(e){Object.defineProperty(C.prototype,e,{configurable:!0,get:function(){return this[`UNSAFE_`+e]},set:function(t){Object.defineProperty(this,e,{configurable:!0,writable:!0,value:t})}})});var nt=r.event;r.event=function(e){return nt&&(e=nt(e)),e.persist=function(){},e.isPropagationStopped=function(){return this.cancelBubble},e.isDefaultPrevented=function(){return this.defaultPrevented},e.nativeEvent=e};var rt={configurable:!0,get:function(){return this.class}},it=r.vnode;r.vnode=function(e){typeof e.type==`string`&&function(e){var t=e.props,n=e.type,r={},i=n.indexOf(`-`)==-1;for(var a in t){var o=t[a];if(!(a===`value`&&`defaultValue`in t&&o==null||et&&a===`children`&&n===`noscript`||a===`class`||a===`className`)){var s=a.toLowerCase();a===`defaultValue`&&`value`in t&&t.value==null?a=`value`:a===`download`&&!0===o?o=``:s===`translate`&&o===`no`?o=!1:s[0]===`o`&&s[1]===`n`?s===`ondoubleclick`?a=`ondblclick`:s!==`onchange`||n!==`input`&&n!==`textarea`||tt(t.type)?s===`onfocus`?a=`onfocusin`:s===`onblur`?a=`onfocusout`:Qe.test(a)&&(a=s):s=a=`oninput`:i&&Ze.test(a)?a=a.replace($e,`-$&`).toLowerCase():o===null&&(o=void 0),s===`oninput`&&r[a=s]&&(a=`oninputCapture`),r[a]=o}}n==`select`&&(r.multiple&&Array.isArray(r.value)&&(r.value=j(t.children).forEach(function(e){e.props.selected=r.value.indexOf(e.props.value)!=-1})),r.defaultValue!=null&&(r.value=j(t.children).forEach(function(e){e.props.selected=r.multiple?r.defaultValue.indexOf(e.props.value)!=-1:r.defaultValue==e.props.value}))),t.class&&!t.className?(r.class=t.class,Object.defineProperty(r,`className`,rt)):t.className&&(r.class=r.className=t.className),e.props=r}(e),e.$$typeof=Xe,it&&it(e)};var at=r.__r;r.__r=function(e){at&&at(e),e.__c};var ot=r.diffed;r.diffed=function(e){ot&&ot(e);var t=e.props,n=e.__e;n!=null&&e.type===`textarea`&&`value`in t&&t.value!==n.value&&(n.value=t.value==null?``:t.value)};var st=e=>{let t,n=new Set,r=(e,r)=>{let i=typeof e==`function`?e(t):e;if(!Object.is(i,t)){let e=t;t=r??(typeof i!=`object`||!i)?i:Object.assign({},t,i),n.forEach(n=>n(t,e))}},i=()=>t,a={setState:r,getState:i,getInitialState:()=>o,subscribe:e=>(n.add(e),()=>n.delete(e))},o=t=e(r,i,a);return a},ct=(e=>e?st(e):st),lt=e=>e;function ut(e){function t(t=lt){let n=Oe(()=>t(e.getState()),[t]);return Re(e.subscribe,n)}return Object.assign(t,e)}function dt(){return e=>ut(ct()(e))}var ft=Symbol.for(`immer-nothing`),pt=Symbol.for(`immer-draftable`),B=Symbol.for(`immer-state`);function V(e,...t){throw Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var mt=Object,ht=mt.getPrototypeOf,gt=`constructor`,_t=`prototype`,vt=`configurable`,yt=`enumerable`,bt=`writable`,xt=`value`,St=e=>!!e&&!!e[B];function Ct(e){return e?Et(e)||Nt(e)||!!e[pt]||!!e[gt]?.[pt]||Pt(e)||Ft(e):!1}var wt=mt[_t][gt].toString(),Tt=new WeakMap;function Et(e){if(!e||!It(e))return!1;let t=ht(e);if(t===null||t===mt[_t])return!0;let n=mt.hasOwnProperty.call(t,gt)&&t[gt];if(n===Object)return!0;if(!Lt(n))return!1;let r=Tt.get(n);return r===void 0&&(r=Function.toString.call(n),Tt.set(n,r)),r===wt}function Dt(e,t,n=!0){Ot(e)===0?(n?Reflect.ownKeys(e):mt.keys(e)).forEach(n=>{t(n,e[n],e)}):e.forEach((n,r)=>t(r,n,e))}function Ot(e){let t=e[B];return t?t.type_:Nt(e)?1:Pt(e)?2:Ft(e)?3:0}var kt=(e,t,n=Ot(e))=>n===2?e.has(t):mt[_t].hasOwnProperty.call(e,t),At=(e,t,n=Ot(e))=>n===2?e.get(t):e[t],jt=(e,t,n,r=Ot(e))=>{r===2?e.set(t,n):r===3?e.add(n):e[t]=n};function Mt(e,t){return e===t?e!==0||1/e==1/t:e!==e&&t!==t}var Nt=Array.isArray,Pt=e=>e instanceof Map,Ft=e=>e instanceof Set,It=e=>typeof e==`object`,Lt=e=>typeof e==`function`,Rt=e=>typeof e==`boolean`;function zt(e){let t=+e;return Number.isInteger(t)&&String(t)===e}var Bt=e=>It(e)?e?.[B]:null,H=e=>e.copy_||e.base_,Vt=e=>{let t=Bt(e);return t?t.copy_??t.base_:e},Ht=e=>e.modified_?e.copy_:e.base_;function Ut(e,t){if(Pt(e))return new Map(e);if(Ft(e))return new Set(e);if(Nt(e))return Array[_t].slice.call(e);let n=Et(e);if(t===!0||t===`class_only`&&!n){let t=mt.getOwnPropertyDescriptors(e);delete t[B];let n=Reflect.ownKeys(t);for(let r=0;r<n.length;r++){let i=n[r],a=t[i];a[bt]===!1&&(a[bt]=!0,a[vt]=!0),(a.get||a.set)&&(t[i]={[vt]:!0,[bt]:!0,[yt]:a[yt],[xt]:e[i]})}return mt.create(ht(e),t)}else{let t=ht(e);if(t!==null&&n)return{...e};let r=mt.create(t);return mt.assign(r,e)}}function Wt(e,t=!1){return qt(e)||St(e)||!Ct(e)?e:(Ot(e)>1&&mt.defineProperties(e,{set:Kt,add:Kt,clear:Kt,delete:Kt}),mt.freeze(e),t&&Dt(e,(e,t)=>{Wt(t,!0)},!1),e)}function Gt(){V(2)}var Kt={[xt]:Gt};function qt(e){return e===null||!It(e)?!0:mt.isFrozen(e)}var Jt=`MapSet`,Yt=`Patches`,Xt=`ArrayMethods`,Zt={};function Qt(e){let t=Zt[e];return t||V(0,e),t}var $t=e=>!!Zt[e];function en(e,t){Zt[e]||(Zt[e]=t)}var tn,nn=()=>tn,rn=(e,t)=>({drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0,handledSet_:new Set,processedForPatches_:new Set,mapSetPlugin_:$t(Jt)?Qt(Jt):void 0,arrayMethodsPlugin_:$t(Xt)?Qt(Xt):void 0});function an(e,t){t&&(e.patchPlugin_=Qt(Yt),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function on(e){sn(e),e.drafts_.forEach(ln),e.drafts_=null}function sn(e){e===tn&&(tn=e.parent_)}var cn=e=>tn=rn(tn,e);function ln(e){let t=e[B];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function un(e,t){t.unfinalizedDrafts_=t.drafts_.length;let n=t.drafts_[0];if(e!==void 0&&e!==n){n[B].modified_&&(on(t),V(4)),Ct(e)&&(e=dn(t,e));let{patchPlugin_:r}=t;r&&r.generateReplacementPatches_(n[B].base_,e,t)}else e=dn(t,n);return fn(t,e,!0),on(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e===ft?void 0:e}function dn(e,t){if(qt(t))return t;let n=t[B];if(!n)return bn(t,e.handledSet_,e);if(!mn(n,e))return t;if(!n.modified_)return n.base_;if(!n.finalized_){let{callbacks_:t}=n;if(t)for(;t.length>0;)t.pop()(e);vn(n,e)}return n.copy_}function fn(e,t,n=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&Wt(t,n)}function pn(e){e.finalized_=!0,e.scope_.unfinalizedDrafts_--}var mn=(e,t)=>e.scope_===t,hn=[];function gn(e,t,n,r){let i=H(e),a=e.type_;if(r!==void 0&&At(i,r,a)===t){jt(i,r,n,a);return}if(!e.draftLocations_){let t=e.draftLocations_=new Map;Dt(i,(e,n)=>{if(St(n)){let r=t.get(n)||[];r.push(e),t.set(n,r)}})}let o=e.draftLocations_.get(t)??hn;for(let e of o)jt(i,e,n,a)}function _n(e,t,n){e.callbacks_.push(function(r){let i=t;if(!i||!mn(i,r))return;r.mapSetPlugin_?.fixSetContents(i);let a=Ht(i);gn(e,i.draft_??i,a,n),vn(i,r)})}function vn(e,t){if(e.modified_&&!e.finalized_&&(e.type_===3||e.type_===1&&e.allIndicesReassigned_||(e.assigned_?.size??0)>0)){let{patchPlugin_:n}=t;if(n){let r=n.getPath(e);r&&n.generatePatches_(e,r,t)}pn(e)}}function yn(e,t,n){let{scope_:r}=e;if(St(n)){let i=n[B];mn(i,r)&&i.callbacks_.push(function(){On(e),gn(e,n,Ht(i),t)})}else Ct(n)&&e.callbacks_.push(function(){let i=H(e);e.type_===3?i.has(n)&&bn(n,r.handledSet_,r):At(i,t,e.type_)===n&&r.drafts_.length>1&&(e.assigned_.get(t)??!1)===!0&&e.copy_&&bn(At(e.copy_,t,e.type_),r.handledSet_,r)})}function bn(e,t,n){return!n.immer_.autoFreeze_&&n.unfinalizedDrafts_<1||St(e)||t.has(e)||!Ct(e)||qt(e)?e:(t.add(e),Dt(e,(r,i)=>{if(St(i)){let t=i[B];mn(t,n)&&(jt(e,r,Ht(t),e.type_),pn(t))}else Ct(i)&&bn(i,t,n)}),e)}function xn(e,t){let n=Nt(e),r={type_:n?1:0,scope_:t?t.scope_:nn(),modified_:!1,finalized_:!1,assigned_:void 0,parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1,callbacks_:void 0},i=r,a=Sn;n&&(i=[r],a=Cn);let{revoke:o,proxy:s}=Proxy.revocable(i,a);return r.draft_=s,r.revoke_=o,[s,r]}var Sn={get(e,t){if(t===B)return e;let n=e.scope_.arrayMethodsPlugin_,r=e.type_===1&&typeof t==`string`;if(r&&n?.isArrayOperationMethod(t))return n.createMethodInterceptor(e,t);let i=H(e);if(!kt(i,t,e.type_))return Tn(e,i,t);let a=i[t];if(e.finalized_||!Ct(a)||r&&e.operationMethod&&n?.isMutatingArrayMethod(e.operationMethod)&&zt(t))return a;if(a===wn(e.base_,t)){On(e);let n=e.type_===1?+t:t,r=An(e.scope_,a,e,n);return e.copy_[n]=r}return a},has(e,t){return t in H(e)},ownKeys(e){return Reflect.ownKeys(H(e))},set(e,t,n){let r=En(H(e),t);if(r?.set)return r.set.call(e.draft_,n),!0;if(!e.modified_){let r=wn(H(e),t),i=r?.[B];if(i&&i.base_===n)return e.copy_[t]=n,e.assigned_.set(t,!1),!0;if(Mt(n,r)&&(n!==void 0||kt(e.base_,t,e.type_)))return!0;On(e),Dn(e)}return e.copy_[t]===n&&(n!==void 0||t in e.copy_)||Number.isNaN(n)&&Number.isNaN(e.copy_[t])?!0:(e.copy_[t]=n,e.assigned_.set(t,!0),yn(e,t,n),!0)},deleteProperty(e,t){return On(e),wn(e.base_,t)!==void 0||t in e.base_?(e.assigned_.set(t,!1),Dn(e)):e.assigned_.delete(t),e.copy_&&delete e.copy_[t],!0},getOwnPropertyDescriptor(e,t){let n=H(e),r=Reflect.getOwnPropertyDescriptor(n,t);return r&&{[bt]:!0,[vt]:e.type_!==1||t!==`length`,[yt]:r[yt],[xt]:n[t]}},defineProperty(){V(11)},getPrototypeOf(e){return ht(e.base_)},setPrototypeOf(){V(12)}},Cn={};for(let e in Sn){let t=Sn[e];Cn[e]=function(){let e=arguments;return e[0]=e[0][0],t.apply(this,e)}}Cn.deleteProperty=function(e,t){return Cn.set.call(this,e,t,void 0)},Cn.set=function(e,t,n){return Sn.set.call(this,e[0],t,n,e[0])};function wn(e,t){let n=e[B];return(n?H(n):e)[t]}function Tn(e,t,n){let r=En(t,n);return r?xt in r?r[xt]:r.get?.call(e.draft_):void 0}function En(e,t){if(!(t in e))return;let n=ht(e);for(;n;){let e=Object.getOwnPropertyDescriptor(n,t);if(e)return e;n=ht(n)}}function Dn(e){e.modified_||(e.modified_=!0,e.parent_&&Dn(e.parent_))}function On(e){e.copy_||(e.assigned_=new Map,e.copy_=Ut(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var kn=class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!1,this.produce=(e,t,n)=>{if(Lt(e)&&!Lt(t)){let n=t;t=e;let r=this;return function(e=n,...i){return r.produce(e,e=>t.call(this,e,...i))}}Lt(t)||V(6),n!==void 0&&!Lt(n)&&V(7);let r;if(Ct(e)){let i=cn(this),a=An(i,e,void 0),o=!0;try{r=t(a),o=!1}finally{o?on(i):sn(i)}return an(i,n),un(r,i)}else if(!e||!It(e)){if(r=t(e),r===void 0&&(r=e),r===ft&&(r=void 0),this.autoFreeze_&&Wt(r,!0),n){let t=[],i=[];Qt(Yt).generateReplacementPatches_(e,r,{patches_:t,inversePatches_:i}),n(t,i)}return r}else V(1,e)},this.produceWithPatches=(e,t)=>{if(Lt(e))return(t,...n)=>this.produceWithPatches(t,t=>e(t,...n));let n,r;return[this.produce(e,t,(e,t)=>{n=e,r=t}),n,r]},Rt(e?.autoFreeze)&&this.setAutoFreeze(e.autoFreeze),Rt(e?.useStrictShallowCopy)&&this.setUseStrictShallowCopy(e.useStrictShallowCopy),Rt(e?.useStrictIteration)&&this.setUseStrictIteration(e.useStrictIteration)}createDraft(e){Ct(e)||V(8),St(e)&&(e=jn(e));let t=cn(this),n=An(t,e,void 0);return n[B].isManual_=!0,sn(t),n}finishDraft(e,t){let n=e&&e[B];(!n||!n.isManual_)&&V(9);let{scope_:r}=n;return an(r,t),un(void 0,r)}setAutoFreeze(e){this.autoFreeze_=e}setUseStrictShallowCopy(e){this.useStrictShallowCopy_=e}setUseStrictIteration(e){this.useStrictIteration_=e}shouldUseStrictIteration(){return this.useStrictIteration_}applyPatches(e,t){let n;for(n=t.length-1;n>=0;n--){let r=t[n];if(r.path.length===0&&r.op===`replace`){e=r.value;break}}n>-1&&(t=t.slice(n+1));let r=Qt(Yt).applyPatches_;return St(e)?r(e,t):this.produce(e,e=>r(e,t))}};function An(e,t,n,r){let[i,a]=Pt(t)?Qt(Jt).proxyMap_(t,n):Ft(t)?Qt(Jt).proxySet_(t,n):xn(t,n);return(n?.scope_??nn()).drafts_.push(i),a.callbacks_=n?.callbacks_??[],a.key_=r,n&&r!==void 0?_n(n,a,r):a.callbacks_.push(function(e){e.mapSetPlugin_?.fixSetContents(a);let{patchPlugin_:t}=e;a.modified_&&t&&t.generatePatches_(a,[],e)}),i}function jn(e){return St(e)||V(10,e),Mn(e)}function Mn(e){if(!Ct(e)||qt(e))return e;let t=e[B],n,r=!0;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,n=Ut(e,t.scope_.immer_.useStrictShallowCopy_),r=t.scope_.immer_.shouldUseStrictIteration()}else n=Ut(e,!0);return Dt(n,(e,t)=>{jt(n,e,Mn(t))},r),t&&(t.finalized_=!1),n}function Nn(){function e(n,r=[]){if(n.key_!==void 0){let e=n.parent_.copy_??n.parent_.base_,t=Bt(At(e,n.key_)),i=At(e,n.key_);if(i===void 0||i!==n.draft_&&i!==n.base_&&i!==n.copy_||t!=null&&t.base_!==n.base_)return null;let a=n.parent_.type_===3,o;if(a){let e=n.parent_;o=Array.from(e.drafts_.keys()).indexOf(n.key_)}else o=n.key_;if(!(a&&e.size>o||kt(e,o)))return null;r.push(o)}if(n.parent_)return e(n.parent_,r);r.reverse();try{t(n.copy_,r)}catch{return null}return r}function t(e,t){let n=e;for(let e=0;e<t.length-1;e++){let r=t[e];if(n=At(n,r),!It(n)||n===null)throw Error(`Cannot resolve path at '${t.join(`/`)}'`)}return n}let n=`replace`,r=`remove`;function i(e,t,n){if(e.scope_.processedForPatches_.has(e))return;e.scope_.processedForPatches_.add(e);let{patches_:r,inversePatches_:i}=n;switch(e.type_){case 0:case 2:return o(e,t,r,i);case 1:return a(e,t,r,i);case 3:return s(e,t,r,i)}}function a(e,t,i,a){let{base_:o,assigned_:s}=e,c=e.copy_;c.length<o.length&&([o,c]=[c,o],[i,a]=[a,i]);let l=e.allIndicesReassigned_===!0;for(let e=0;e<o.length;e++){let r=c[e],u=o[e];if((l||s?.get(e.toString()))&&r!==u){let o=r?.[B];if(o&&o.modified_)continue;let s=t.concat([e]);i.push({op:n,path:s,value:d(r)}),a.push({op:n,path:s,value:d(u)})}}for(let e=o.length;e<c.length;e++){let n=t.concat([e]);i.push({op:`add`,path:n,value:d(c[e])})}for(let e=c.length-1;o.length<=e;--e){let n=t.concat([e]);a.push({op:r,path:n})}}function o(e,t,i,a){let{base_:o,copy_:s,type_:c}=e;Dt(e.assigned_,(e,l)=>{let u=At(o,e,c),f=At(s,e,c),p=l?kt(o,e)?n:`add`:r;if(u===f&&p===n)return;let m=t.concat(e);i.push(p===r?{op:p,path:m}:{op:p,path:m,value:d(f)}),a.push(p===`add`?{op:r,path:m}:p===r?{op:`add`,path:m,value:d(u)}:{op:n,path:m,value:d(u)})})}function s(e,t,n,i){let{base_:a,copy_:o}=e,s=0;a.forEach(e=>{if(!o.has(e)){let a=t.concat([s]);n.push({op:r,path:a,value:e}),i.unshift({op:`add`,path:a,value:e})}s++}),s=0,o.forEach(e=>{if(!a.has(e)){let a=t.concat([s]);n.push({op:`add`,path:a,value:e}),i.unshift({op:r,path:a,value:e})}s++})}function c(e,t,r){let{patches_:i,inversePatches_:a}=r;i.push({op:n,path:[],value:t===ft?void 0:t}),a.push({op:n,path:[],value:e})}function l(e,t){return t.forEach(t=>{let{path:i,op:a}=t,o=e;for(let e=0;e<i.length-1;e++){let t=Ot(o),n=i[e];typeof n!=`string`&&typeof n!=`number`&&(n=``+n),(t===0||t===1)&&(n===`__proto__`||n===gt)&&V(19),Lt(o)&&n===_t&&V(19),o=At(o,n),It(o)||V(18,i.join(`/`))}let s=Ot(o),c=u(t.value),l=i[i.length-1];switch(a){case n:switch(s){case 2:return o.set(l,c);case 3:V(16);default:return o[l]=c}case`add`:switch(s){case 1:return l===`-`?o.push(c):o.splice(l,0,c);case 2:return o.set(l,c);case 3:return o.add(c);default:return o[l]=c}case r:switch(s){case 1:return o.splice(l,1);case 2:return o.delete(l);case 3:return o.delete(t.value);default:return delete o[l]}default:V(17,a)}}),e}function u(e){if(!Ct(e))return e;if(Nt(e))return e.map(u);if(Pt(e))return new Map(Array.from(e.entries()).map(([e,t])=>[e,u(t)]));if(Ft(e))return new Set(Array.from(e).map(u));let t=Object.create(ht(e));for(let n in e)t[n]=u(e[n]);return kt(e,pt)&&(t[pt]=e[pt]),t}function d(e){return St(e)?u(e):e}en(Yt,{applyPatches_:l,generatePatches_:i,generateReplacementPatches_:c,getPath:e})}function Pn(){class e extends Map{constructor(e,t){super(),this[B]={type_:2,parent_:t,scope_:t?t.scope_:nn(),modified_:!1,finalized_:!1,copy_:void 0,assigned_:void 0,base_:e,draft_:this,isManual_:!1,revoked_:!1,callbacks_:[]}}get size(){return H(this[B]).size}has(e){return H(this[B]).has(e)}set(e,t){let r=this[B];return o(r),(!H(r).has(e)||H(r).get(e)!==t)&&(n(r),Dn(r),r.assigned_.set(e,!0),r.copy_.set(e,t),r.assigned_.set(e,!0),yn(r,e,t)),this}delete(e){if(!this.has(e))return!1;let t=this[B];return o(t),n(t),Dn(t),t.base_.has(e)?t.assigned_.set(e,!1):t.assigned_.delete(e),t.copy_.delete(e),!0}clear(){let e=this[B];o(e),H(e).size&&(n(e),Dn(e),e.assigned_=new Map,Dt(e.base_,t=>{e.assigned_.set(t,!1)}),e.copy_.clear())}forEach(e,t){let n=this[B];H(n).forEach((n,r,i)=>{e.call(t,this.get(r),r,this)})}get(e){let t=this[B];o(t);let r=H(t).get(e);if(t.finalized_||!Ct(r)||r!==t.base_.get(e))return r;let i=An(t.scope_,r,t,e);return n(t),t.copy_.set(e,i),i}keys(){return H(this[B]).keys()}values(){let e=this.keys();return{[Symbol.iterator]:()=>this.values(),next:()=>{let t=e.next();return t.done?t:{done:!1,value:this.get(t.value)}}}}entries(){let e=this.keys();return{[Symbol.iterator]:()=>this.entries(),next:()=>{let t=e.next();if(t.done)return t;let n=this.get(t.value);return{done:!1,value:[t.value,n]}}}}[Symbol.iterator](){return this.entries()}}function t(t,n){let r=new e(t,n);return[r,r[B]]}function n(e){e.copy_||(e.assigned_=new Map,e.copy_=new Map(e.base_))}class r extends Set{constructor(e,t){super(),this[B]={type_:3,parent_:t,scope_:t?t.scope_:nn(),modified_:!1,finalized_:!1,copy_:void 0,base_:e,draft_:this,drafts_:new Map,revoked_:!1,isManual_:!1,assigned_:void 0,callbacks_:[]}}get size(){return H(this[B]).size}has(e){let t=this[B];return o(t),t.copy_?!!(t.copy_.has(e)||t.drafts_.has(e)&&t.copy_.has(t.drafts_.get(e))):t.base_.has(e)}add(e){let t=this[B];return o(t),this.has(e)||(a(t),Dn(t),t.copy_.add(e),yn(t,e,e)),this}delete(e){if(!this.has(e))return!1;let t=this[B];return o(t),a(t),Dn(t),t.copy_.delete(e)||(t.drafts_.has(e)?t.copy_.delete(t.drafts_.get(e)):!1)}clear(){let e=this[B];o(e),H(e).size&&(a(e),Dn(e),e.copy_.clear())}values(){let e=this[B];return o(e),a(e),e.copy_.values()}entries(){let e=this[B];return o(e),a(e),e.copy_.entries()}keys(){return this.values()}[Symbol.iterator](){return this.values()}forEach(e,t){let n=this.values(),r=n.next();for(;!r.done;)e.call(t,r.value,r.value,this),r=n.next()}}function i(e,t){let n=new r(e,t);return[n,n[B]]}function a(e){e.copy_||(e.copy_=new Set,e.base_.forEach(t=>{if(Ct(t)){let n=An(e.scope_,t,e,t);e.drafts_.set(t,n),e.copy_.add(n)}else e.copy_.add(t)}))}function o(e){e.revoked_&&V(3,JSON.stringify(H(e)))}function s(e){if(e.type_===3&&e.copy_){let t=new Set(e.copy_);e.copy_.clear(),t.forEach(t=>{e.copy_.add(Vt(t))})}}en(Jt,{proxyMap_:t,proxySet_:i,fixSetContents:s})}var Fn=new kn,In=Fn.produce,Ln=Fn.produceWithPatches.bind(Fn),Rn=Fn.applyPatches.bind(Fn),zn=e=>(t,n,r)=>(r.setState=(e,n,...r)=>t(typeof e==`function`?In(e):e,n,...r),e(r.setState,n,r)),Bn=new Map,Vn=new Map;function Hn(e,t){Bn.set(e,t),Vn.set(t,e)}function Un(e){let t=Object.getPrototypeOf(e);return t===null?void 0:Vn.get(t.constructor)}function Wn(e){if(typeof e!=`object`||!e)return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function Gn(e,t,n){t===`__proto__`?Object.defineProperty(e,t,{value:n,enumerable:!0,writable:!0,configurable:!0}):e[t]=n}function U(e,t={}){let n=new Map;function r(e){if(typeof e!=`object`||!e)return e;let i=e;if(n.has(i))return n.get(i);if(e instanceof Date)return new Date(e.getTime());if(e instanceof RegExp)return new RegExp(e.source,e.flags);if(Array.isArray(e)){let t=[];n.set(i,t);for(let n=0;n<e.length;n++)t[n]=r(e[n]);return t}if(e instanceof Map){let t=new Map;n.set(i,t);for(let[n,i]of e)t.set(r(n),r(i));return t}if(e instanceof Set){let t=new Set;n.set(i,t);for(let n of e)t.add(r(n));return t}if(Un(i)!==void 0){let e=Object.create(Object.getPrototypeOf(i));n.set(i,e);for(let t of Object.keys(i))Gn(e,t,r(i[t]));return e}let a=Wn(e);if(!a&&t.keepUnregistered)return e;let o=a?Object.create(Object.getPrototypeOf(i)):{};n.set(i,o);for(let e of Object.keys(i))Gn(o,e,r(i[e]));return o}return r(e)}function Kn(e,t){return qn(e,t,new Map)}function qn(e,t,n){if(Object.is(e,t))return!0;if(e===null||t===null||typeof e!=`object`||typeof t!=`object`||Object.getPrototypeOf(e)!==Object.getPrototypeOf(t))return!1;let r=n.get(e);if(r?.has(t))return!0;if(r?r.add(t):n.set(e,new Set([t])),e instanceof Date)return Object.is(e.getTime(),t.getTime());if(e instanceof RegExp)return String(e)===String(t);if(e instanceof Map||e instanceof Set){let r=t;if(e.size!==r.size)return!1;let i=e.entries(),a=r.entries();for(let e=i.next(),t=a.next();!e.done;e=i.next(),t=a.next())if(!qn(e.value,t.value,n))return!1;return!0}if(Array.isArray(e)){let r=t;if(e.length!==r.length)return!1;for(let t=0;t<e.length;t++)if(!qn(e[t],r[t],n))return!1;return!0}let i=e,a=t,o=Object.keys(i);if(o.length!==Object.keys(a).length)return!1;for(let e of o)if(!Jn(a,e)||!qn(i[e],a[e],n))return!1;return!0}var Jn=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),Yn=`__spindle_class__`,Xn=`__spindle_data__`,Zn=(e,t)=>({[Yn]:e,[Xn]:t}),Qn={NaN:NaN,Infinity:1/0,\"-Infinity\":-1/0,\"-0\":-0};function $n(e){if(Number.isNaN(e))return`NaN`;if(e===1/0)return`Infinity`;if(e===-1/0)return`-Infinity`;if(Object.is(e,-0))return`-0`}function er(e){let t=new Set;function n(e){if(e===void 0)return Zn(`__Undefined__`,{});if(typeof e==`number`){let t=$n(e);return t===void 0?e:Zn(`__Number__`,{value:t})}if(typeof e==`bigint`)return Zn(`__BigInt__`,{value:e.toString()});if(typeof e!=`object`||!e)return e;if(t.has(e))throw Error(`spindle: Cannot serialize circular references`);t.add(e);try{return i(e)}finally{t.delete(e)}}function r(e){let t={};for(let r of Object.keys(e)){if(r===`__proto__`)throw Error(`spindle: Cannot save a property named \"__proto__\"`);t[r]=n(e[r])}return t}function i(e){if(e instanceof Date)return Zn(`__Date__`,{iso:Number.isNaN(e.getTime())?null:e.toISOString()});if(e instanceof RegExp)return Zn(`__RegExp__`,{source:e.source,flags:e.flags});if(Array.isArray(e)){let t=[];for(let r=0;r<e.length;r++)t.push(n(e[r]));return t}if(e instanceof Map)return Zn(`__Map__`,{entries:[...e].map(([e,t])=>[n(e),n(t)])});if(e instanceof Set)return Zn(`__Set__`,{entries:[...e].map(e=>n(e))});let t=Un(e);if(t!==void 0)return Zn(t,r(e));let i=r(e);return Jn(e,Yn)?Zn(`__Object__`,i):i}return n(e)}function tr(e){function t(e,t){for(let r of Object.keys(t))Gn(e,r,n(t[r]));return e}function n(e){if(typeof e!=`object`||!e)return e;if(Array.isArray(e))return e.map(e=>n(e));let r=e;if(Yn in r&&Xn in r){let e=r[Yn],i=r[Xn];switch(e){case`__Date__`:return new Date(i.iso===null?NaN:i.iso);case`__RegExp__`:return new RegExp(i.source,i.flags);case`__Map__`:{let e=i.entries;return new Map(e.map(([e,t])=>[n(e),n(t)]))}case`__Set__`:return new Set(i.entries.map(e=>n(e)));case`__Undefined__`:return;case`__Number__`:return Qn[i.value];case`__BigInt__`:return BigInt(i.value);case`__Object__`:return t({},i)}let a=Bn.get(e);return a?t(Object.create(a.prototype),i):(console.warn(`spindle: Class \"${e}\" not registered. Falling back to plain object.`),t({},i))}return e instanceof Date||e instanceof RegExp||e instanceof Map||e instanceof Set||Un(r)!==void 0?e:t({},r)}return n(e)}function nr(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function rr(e){let t=new Set;function n(e){if(typeof e!=`object`||!e)return!0;if(t.has(e))return!1;t.add(e);let n=i(e);return t.delete(e),n}let r=e=>Object.keys(e).every(t=>t!==`__proto__`&&n(e[t]));function i(e){if(Array.isArray(e))return Array.from(e).every(n);let t=e;if(!(Yn in t&&Xn in t))return r(t);let i=t[Yn],a=t[Xn];if(typeof i!=`string`||!nr(a))return!1;switch(i){case`__Date__`:return a.iso===null||typeof a.iso==`string`&&!Number.isNaN(new Date(a.iso).getTime());case`__RegExp__`:if(typeof a.source!=`string`||typeof a.flags!=`string`)return!1;try{return new RegExp(a.source,a.flags),!0}catch{return!1}case`__Map__`:return Array.isArray(a.entries)&&Array.from(a.entries).every(e=>Array.isArray(e)&&e.length===2&&n(e[0])&&n(e[1]));case`__Set__`:return Array.isArray(a.entries)&&Array.from(a.entries).every(n);case`__Undefined__`:return!0;case`__Number__`:return typeof a.value==`string`&&Jn(Qn,a.value);case`__BigInt__`:return typeof a.value==`string`&&/^-?\\d+$/.test(a.value);default:return r(a)}}return n(e)}function ir(e){if(typeof e!=`object`||!e)return!1;let t=e;if(t.version!==1||typeof t.ifid!=`string`||typeof t.save!=`object`||t.save===null)return!1;let n=t.save;if(typeof n.meta!=`object`||n.meta===null||typeof n.payload!=`object`||n.payload===null)return!1;let r=n.meta;return typeof r.id!=`string`||typeof r.passage!=`string`||typeof r.ifid!=`string`||typeof r.playthroughId!=`string`||typeof r.createdAt!=`string`||typeof r.updatedAt!=`string`||typeof r.title!=`string`?!1:lr(n.payload)}function ar(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function or(e){return e==null?!0:ar(e)&&typeof e.seed==`string`&&typeof e.pull==`number`&&Number.isInteger(e.pull)&&e.pull>=0}function sr(e){return ar(e)&&rr(e)}function cr(e){return ar(e)&&typeof e.passage==`string`&&sr(e.variables)&&typeof e.timestamp==`number`&&or(e.prng)}function lr(e){if(!ar(e)||typeof e.passage!=`string`||!sr(e.variables))return!1;let{history:t,historyIndex:n}=e;return!Array.isArray(t)||t.length===0||!Array.from(t).every(cr)||typeof n!=`number`||!Number.isInteger(n)||n<0||n>=t.length||t[n].passage!==e.passage||e.visitCounts!==void 0&&!ar(e.visitCounts)||e.renderCounts!==void 0&&!ar(e.renderCounts)?!1:or(e.prng)}function ur(e){if(typeof e!=`object`||!e)return!1;let t=e;return!(typeof t.passage!=`string`||typeof t.variables!=`object`||t.variables===null||!Array.isArray(t.history)||t.history.length===0||typeof t.historyIndex!=`number`)}var dr=/[A-Za-z_]\\w*/y,fr=/(?:\\*\\*|<<|>>>?|&&|\\|\\||\\?\\?|[-+*/%&|^])?=(?![=>])/y,pr=/\\w*/y,mr=/[\\p{ID_Continue}$\\u200c\\u200d\\\\\\ud800-\\udfff]/u,hr=/[\\p{ID_Continue}$\\u200c\\u200d]*/uy,gr=/^\\w+$/,_r=/[\\p{ID_Continue}$\\\\\"'[*#]/u,vr=/\\s/,yr=/[\\n\\r\\u2028\\u2029]/,br=/[\\n\\r\\u2028\\u2029]/g,xr=new Set([`await`,`case`,`const`,`delete`,`do`,`else`,`in`,`instanceof`,`let`,`new`,`return`,`throw`,`typeof`,`var`,`void`,`yield`]),Sr=new Set([`for`,`if`,`while`,`with`]),Cr=new Set([`break`,`continue`,`return`]),wr=new Set([`async`,`get`,`set`,`static`]);function Tr(e,t){let n=e.charAt(t),r=t+1;for(;r<e.length;){let t=e.charAt(r);if(t===`\\\\`)r+=2;else if(t===n)return{end:r+1,closed:!0};else r++}return{end:e.length,closed:!1}}function Er(e,t,n){let r=[],i=(e,t)=>{if(n)for(let i of r)n.regexes.set(i,e*2+ +t);return{end:e,closed:t}},a=t+1;for(;a<e.length;){let t=Or(e,a);if(t!==-1)return i(t,!1);let o=e.charAt(a);if(o===`\\\\`){a+=2;continue}if(o===`[`){if(a=Dr(e,a,n),e.charAt(a)!==`]`)return i(a,!1);a++;let t=n?.regexes.get(a);if(t!==void 0)return i(Math.floor(t/2),t%2==1);r.push(a);continue}if(o===`/`){pr.lastIndex=a+1;let t=pr.exec(e)?.[0].length??0;return i(a+1+t,!0)}a++}return i(e.length,!1)}function Dr(e,t,n){let r=n?.classes.get(t);if(r!==void 0)return r;let i=[t],a=t+1;for(;a<e.length;){let t=Or(e,a);if(t!==-1){a=t;break}let r=e.charAt(a);if(r===`\\\\`){a+=2;continue}if(r===`]`)break;r===`[`&&n&&i.push(a),a++}if(a=Math.min(a,e.length),n)for(let e of i)n.classes.set(e,a);return a}function Or(e,t){let n=e.charAt(t);return yr.test(n)?t:n===`\\\\`&&yr.test(e.charAt(t+1))?t+1:-1}function kr(e,t,n){if(e&&t>=e.from&&(e.at<0||t<=e.at))return e.at;let r=n(t);return e&&(e.from=t,e.at=r),r}function Ar(e,t,n){if(e.charAt(t+1)===`/`){let r=jr(e,t,n);return r<0?e.length:r}let r=kr(n?.commentClose,t+2,t=>e.indexOf(`*/`,t));return r<0?-1:r+2}function jr(e,t,n){return kr(n?.lineEnd,t,t=>(br.lastIndex=t,br.exec(e)?.index??-1))}function Mr(e,t,n,r){if(!r)return yr.test(e.slice(t,n));let i=jr(e,t,r);return i>=0&&i<n}function Nr(e,t){let n=Ar(e,t);return n<0?e.length:n}function Pr(e,t){for(;t<e.length;){let n=e.charAt(t);if(vr.test(n))t++;else if(n===`/`&&`/*`.includes(e.charAt(t+1)))t=Nr(e,t);else break}return t}var Fr=new Set([`}`,`\"`,`'`,\"`\",`/`,`\n`,`\\r`,`\\u2028`,`\\u2029`,` `,`\t`]),Ir=256,Lr=-1,Rr=-2,zr=-3,Br=[`)`,`]`,`}`],Vr=[`block`,`object`,`class`,`template`];function Hr(e){let t=e.interpolation?4:Vr.indexOf(e.kind);return t<0?void 0:e.open*5+t}function Ur(){return{checkpoints:new Map,stacks:new Map,parens:new Map,shareAfter:Ir,braces:new Map,brackets:new Map,classes:new Map,regexes:new Map,lineEnd:{from:1/0,at:-1},commentClose:{from:1/0,at:-1}}}var Wr=()=>({lookahead:!0,brackets:new Map});function Gr(e,t,n){let r=n.brackets.get(t);if(r===void 0){let i={lookahead:!1,brackets:n.brackets};r=Xr(e,{},t+1,0,qr(`expr`,`]`,t),i),n.brackets.set(t,r)}return r}function Kr(e,t,n){for(;;){t=Pr(e,t);let r=e.charAt(t);if(r===`.`&&e.charAt(t+1)!==`.`){if(hr.lastIndex=Pr(e,t+1),!hr.exec(e)?.[0])return!1;t=hr.lastIndex}else if(r===`[`){if(t=Gr(e,t,n),t>=e.length)return!1;t++}else break}return fr.lastIndex=t,fr.test(e)}function qr(e,t,n=-1){return{kind:e,closer:t,open:n,header:!1,operand:!1,ternary:0,interpolation:!1}}function Jr(e,t,n=`expression`){return Xr(e,t,0,0,qr(n===`statements`?`block`:`expr`,``),Wr())}function Yr(e,t,{goal:n=`expression`,stop:r,stopKey:i,cache:a}={}){let o={stop:r,malformed:!1,stopped:!1,passed:[]};if(o.cache=a,a&&!r&&(o.braces=a.braces),a&&(!r||i!==void 0)){let e=`${n} ${r?`stop ${i}`:`}`}`,t=a.checkpoints.get(e);t||a.checkpoints.set(e,t=new Map),o.checkpoints=t;let s=a.parens.get(e);s||a.parens.set(e,s=new Map),o.parens=s}let s={lookahead:!0,brackets:a?.brackets??new Map,strict:o},c=Xr(e,{},t,0,qr(n===`statements`?`block`:`expr`,r?``:`}`,t-1),s);if(o.checkpoints){let t=r?o.stopped:c<e.length,n=o.malformed?Rr:t?c:Lr;for(let e of o.passed)o.checkpoints.set(e,n)}return o.malformed?-1:r?o.stopped?c:-1:c<e.length?c:-1}function Xr(e,t,n,r,i,a){let o=[i],s=()=>o[o.length-1],c={\")\":[],\"]\":[],\"}\":[]},l=e=>{let t=c[e];return t.length?t[t.length-1]:0},u=n,d=!0,f=i.kind===`block`,p=!1,m=!1,h=``,g=!1,_=0,v=!1,y=``,b=``,x=!1,S,C=a.strict,w=C?.braces,T=C?.checkpoints&&C.cache?.stacks,E=T?[0]:void 0;function D(){let e=o.length-1;for(;E[e]===void 0;)e--;for(e++;e<o.length;e++){let t=o[e],n=`${E[e-1]} ${o[e-1].ternary} ${t.kind} ${t.closer} ${+t.header}${+t.operand}${+t.interpolation}`,r=T.get(n);r===void 0&&T.set(n,r=T.size+1),E[e]=r}return E[o.length-1]}let O,k=C?.parens,ee=C?.cache?.shareAfter??Ir,A=k?[[1/0,1/0,1/0]]:void 0,j=0,M=k?[0]:void 0,te;function ne(e,t){if(!A)return;let n=A[A.length-1],r=Br.indexOf(e);t<n[r]&&(n[r]=t)}function re(e){let t=A[e],n=A[e-1];for(let e=0;e<3;e++)t[e]<n[e]&&(n[e]=t[e])}let ie=e=>(e.open*3+(e.closer===`]`?2:+e.header))*8;function ae(e,t){let r=o[e];if(e===0||r.closer!==`)`&&r.closer!==`]`||r.open-n<ee)return;let i=0;for(let t=0;t<3;t++)A[e][t]<e&&(i|=1<<t);k.set(ie(r)+i,t)}function oe(e){if(A)for(let t=o.length-1;t>0;t--)ae(t,e),re(t)}function se(e){if(!k||e.open-n<ee)return;let t=[Math.max(l(`)`),l(`}`)),Math.max(l(`]`),l(`}`)),l(`}`)],r=0;for(let e=0;e<3;e++){let n=t[e];(n===0||e<2&&o[n].closer!==Br[e])&&(r|=1<<e)}let i=ie(e);for(let e=r;;e=e-1&r){let n=k.get(i+e);if(n!==void 0){for(let n=0;n<3;n++)e&1<<n&&ne(Br[n],t[n]);return n}if(e===0)return}}function ce(e){if(w)for(let t=1;t<o.length;t++)le(o[t],e)}function le(e,t){let n=w&&Hr(e);n!==void 0&&w.set(n,t)}let ue=e=>{let t=w&&Hr(e);return t===void 0?void 0:w.get(t)},de=()=>(ce(Rr),oe(Rr),C.malformed=!0,e.length);function fe(e){E?.push(void 0),c[e.closer]?.push(o.length),o.push(e),A?.push([1/0,1/0,1/0]),M?.push(j)}function pe(){let t=s().ternary;if(t>3||!Fr.has(e.charAt(u-1))||o.length>1&&u-n<ee)return;let r=t;d&&(r|=4),f&&(r|=8),m&&(r|=16),S&&(r|=S.frame.kind===`class`?32:64,S.frame.operand&&(r|=128)),p&&(r|=256),g&&(r|=512),v&&(r|=1024),x&&(r|=2048),Cr.has(b)&&(r|=4096),y===`=`&&(r|=8192),y===`.`&&(r|=Math.min(_,4)<<14);let i=u*(1<<17)+r;if(o.length===1)return i;let a=S?o.length-S.depth:``;return`${i} ${D()} ${a}`}function me(){return xr.has(h)||h===`of`&&s().header||m&&wr.has(h)}function N(e){if(A){for(let t=o.length-1;t>=e;t--)re(t);A.length=e,M.length=e}o.length=e,E&&(E.length=e);for(let t of Object.values(c))for(;t.length&&t[t.length-1]>=e;)t.pop();S&&S.depth>e&&(S=void 0)}let he=(e,n)=>t.code?.(e,n,r),ge=(e,n)=>t.literal?.(e,n,r),_e=(n,i)=>t.literal?.(e.slice(n,i),n,r);function ve(){if(!h)return;let t=g||m?``:h,n=d&&!f;if(d=xr.has(t)||t===`of`&&s().header&&!d,v=Sr.has(t),t===`function`||t===`class`){let e=qr(t===`class`?`class`:`block`,`}`);e.operand=n,S={depth:o.length,frame:e},j++}m=m&&wr.has(h)&&_r.test(e.charAt(Pr(e,u))),f=t===`else`||t===`do`||t===`async`&&f,p=!1,g=!1,y=``,b=t,x=!1,h=``}function P(){ve(),d=!1,f=!1,p=!1,m=!1,v=!1,g=!1,y=``,b=``,x=!1}function F(e,t){d=t,f=!1,p=!1,m=!1,g=e===`.`&&!t,v=!1,y=e,b=``,x=!1}function ye(){x=!0,Cr.has(b)&&(d=!0,f=!0,b=``)}function be(e){fe(e),f=e.kind===`block`,m=e.kind===`object`||e.kind===`class`}function xe(){let e;S?.depth===o.length?(e=S.frame,S=void 0):!d||f||p?e=qr(`block`,`}`):(e=qr(`object`,`}`),e.operand=!0),e.open=u,F(`{`,!0);let t=ue(e);t===void 0?be(e):O={frame:e,end:t}}function Se(e){e.operand?F(`}`,!1):(F(`}`,!0),f=s().kind===`block`,m=s().kind===`class`)}function Ce(e){let t=Math.max(l(e),l(`}`));if(ne(e,t),t===0||o[t].closer!==e){F(e,e===`}`);return}let n=o[t];if(A&&e!==`}`){for(let e=o.length-1;e>t;e--)re(e);let e=j!==M[t];ae(t,u*2+ +e)}N(t),e===`]`&&!a.lookahead&&a.brackets.set(n.open,u),e===`)`?(F(e,n.header),f=n.header):e===`]`?F(e,!1):(le(n,u),Se(n))}function we(e){if(mr.test(e)){h+=e;return}if(ve(),yr.test(e)&&ye(),vr.test(e))return;let t=s();switch(e){case`(`:case`[`:{let t=qr(`expr`,e===`(`?`)`:`]`,u);t.header=e===`(`&&v,F(e,!0);let n=se(t);n===void 0?be(t):te={frame:t,result:n};break}case`{`:xe();break;case`)`:case`]`:case`}`:Ce(e);break;case`.`:_=y===`.`?_+1:1,F(e,_===3);break;case`;`:F(e,!0),f=t.kind===`block`,m=t.kind===`class`;break;case`,`:F(e,!0),m=t.kind===`object`;break;case`?`:F(e,!0),t.ternary++;break;case`:`:F(e,!0),t.ternary>0?t.ternary--:f=t.kind===`block`;break;case`#`:F(e,!1),g=!0;break;case`*`:{let t=m;F(e,!0),m=t;break}case`>`:{let t=y===`=`;F(e,!0),p=t;break}default:F(e,!0)}}for(;u<e.length;){let c=e.charAt(u),p=C?.checkpoints,g=p&&pe();if(g!==void 0){let t=p.get(g);if(t===void 0)C.passed.push(g);else if(o.length>1&&t<0)return C.malformed=t===Rr,e.length;else if(t===Rr)return de();else if(t===Lr){u=e.length;break}else return C.stopped=!0,t}if(s().kind===`template`){if(c===`\\\\`)ge(e.slice(u,u+2),u),u+=2;else if(c===\"`\"){if(ge(c,u),o.length===1)return u+1;le(s(),u),u++,N(o.length-1),P()}else if(c===`$`&&e.charAt(u+1)===`{`){let t=qr(`expr`,`}`,u);t.interpolation=!0;let n=ue(t);if(n===Rr)return de();if(n===Lr){u=e.length;break}if(n!==void 0){u=n+1;continue}ge(\"${\",u),u+=2,r++,F(`{`,!0),be(t)}else ge(c,u),u++;continue}if(c===`\"`||c===`'`){if(C&&u>n&&mr.test(e.charAt(u-1))&&!me())return de();ve();let{end:t,closed:r}=Tr(e,u);if(C&&!r)return de();_e(u,t),u=t,P();continue}if(c===\"`\"){ve();let t=qr(`template`,\"`\",u),n=ue(t);if(n===Rr)return de();if(n===Lr){u=e.length;break}if(n!==void 0){u=n+1,P();continue}ge(c,u),fe(t),u++;continue}if(c===`{`&&C?.stop?.(u))return oe(zr-u),C.stopped=!0,u;if(c===`}`){let e=l(`}`);if(ne(`}`,e),o[e].interpolation){ve(),le(o[e],u),N(e),r--,ge(c,u),u++;continue}}if(c===`/`){ve();let t=e.charAt(u+1);if(t===`/`||t===`*`){let n=Ar(e,u,C?.cache);if(n<0){if(C)return de();n=e.length}_e(u,n),t===`*`&&Mr(e,u,n,C?.cache)&&ye(),u=n;continue}if(d){let{end:t,closed:n}=Er(e,u,C?.cache);if(C&&!n)return de();_e(u,t),u=t,P();continue}}if(!h&&x&&!d&&s().kind===`class`){hr.lastIndex=u;let t=hr.exec(e)?.[0];t&&t!==`in`&&t!==`instanceof`&&(m=!0)}if(c===`@`||(c===`$`||c===`_`)&&!h){ve(),hr.lastIndex=u+1;let n=hr.exec(e)?.[0]??``;if(gr.test(n)&&!I(c,u+1+n.length)){t.variable?.(c,n,u,r),u+=1+n.length,P();continue}}if(c===`%`){ve(),dr.lastIndex=u+1;let n=dr.exec(e)?.[0];if(n){let i=u+1+n.length;if(d||x&&a.lookahead&&Kr(e,i,a)){t.variable?.(`%`,n,u,r),u=i,P();continue}}}if((c===`+`||c===`-`)&&e.charAt(u+1)===c){ve();let e=!d&&!x;he(c,u),he(c,u+1),u+=2,F(c,!e);continue}if(c===`?`){let t=e.charAt(u+1);if(t===`?`||t===`.`&&!/\\d/.test(e.charAt(u+2))){ve(),he(c,u),he(t,u+1),u+=2,_=1,F(t,t===`?`);continue}}if(c===i.closer&&o.length===1)break;if(we(c),O){let{frame:t,end:n}=O;if(O=void 0,n===Rr)return de();if(n===Lr){u=e.length;break}u=n,Se(t),u++;continue}if(te){let{frame:t,result:n}=te;if(te=void 0,n===Rr)return de();if(n===Lr){u=e.length;break}if(n<=zr)return oe(n),C.stopped=!0,zr-n;u=Math.floor(n/2),n%2==1&&(S=void 0),t.closer===`)`?(F(`)`,t.header),f=t.header):F(`]`,!1),u++;continue}he(c,u),u++}if(u>=e.length&&(ce(Lr),oe(Lr)),!a.lookahead)for(let e of o)e.closer===`]`&&a.brackets.set(e.open,u);return Math.min(u,e.length);function I(t,n){if(g)return!0;if(!m||t===`@`)return!1;if(s().kind===`class`)return!0;let r=e.charAt(Pr(e,n));return r===`:`||r===`(`}}function Zr(e){let t=e.toLowerCase();return t.startsWith(`on`)||t===`pattern`||t===`srcdoc`}function Qr(e){let t=[],n=hi(),r=``,i=0;for(;i<e.length;){let a=e.indexOf(`{`,i);if(a===-1){r+=e.slice(i);break}r+=e.slice(i,a),i=a+1;let o=ni(e[i])?gi(e,i,n):-1;if(o===-1){r+=`{`;continue}r&&t.push({text:r}),r=``;let s=e.slice(i,o);t.push(/^.\\w/.test(s)?{expr:s}:{verbatim:`{${s}}`}),i=o+1}return r&&t.push({text:r}),t}var $r={$:`variable`,_:`temporary`,\"@\":`local`,\"%\":`transient`},ei=Object.fromEntries(Object.entries($r).map(([e,t])=>[t,e])),ti=new Set(Object.keys($r));function ni(e){return e!==void 0&&ti.has(e)}function ri(e,t){return t.className&&(e.className=t.className),t.id&&(e.id=t.id),e}var ii=/[a-zA-Z]/,ai=new Set([`area`,`base`,`br`,`col`,`embed`,`hr`,`img`,`input`,`link`,`meta`,`param`,`source`,`track`,`wbr`]),oi=new Set([`(`,`!`]),si=new Set([`do`]),ci=[[`|`,!1],[`->`,!1],[`<-`,!0]];function li(e){for(let[t,n]of ci){let r=e.indexOf(t);if(r===-1)continue;let i=e.slice(0,r).trim(),a=e.slice(r+t.length).trim();return n?{display:a,target:i}:{display:i,target:a}}let t=e.trim();return{display:t,target:t}}function ui(e){let t=e.trim(),n=t.startsWith(`/`),r=n?t.slice(1):t,i=r.search(/\\s/);return i===-1?{name:r,rawArgs:``,isClose:n}:{name:r.slice(0,i),rawArgs:r.slice(i+1).trim(),isClose:n}}function di(e,t){let n=[],r=``,i=t;for(;i<e.length&&(e[i]===`.`||e[i]===`#`);){let t=e[i];i++;let a=``;for(;i<e.length;)if(/[a-zA-Z0-9_-]/.test(e[i]))a+=e[i],i++;else if(e[i]===`{`&&ni(e[i+1])){let t=i;for(i+=2;i<e.length&&/[\\w.]/.test(e[i]);)i++;if(i<e.length&&e[i]===`}`)i++,a+=e.slice(t,i);else{i=t;break}}else break;a&&(t===`.`?n.push(a):r=a)}return i>t&&e[i]===` `&&i++,{selectors:ri({},{className:n.join(` `),id:r}),end:i}}function fi(e,t,n){let r={},i=new Set;return{attributes:r,endIdx:pi(e,t,n,(e,t)=>{let n=e.toLowerCase();i.has(n)||(i.add(n),Object.defineProperty(r,e,{value:t,enumerable:!0,writable:!0,configurable:!0}))})}}function pi(e,t,n,r){let i=[];for(;t<e.length;){for(;t<e.length&&/\\s/.test(e[t]);)t++;if(!r){let e=n.tag.get(t);if(e!==void 0){t=e;break}i.push(t)}if(t>=e.length||e[t]===`>`||e[t]===`/`&&e[t+1]===`>`)break;let a=t;for(;t<e.length&&/[a-zA-Z0-9_\\-:@]/.test(e[t]);)t++;let o=e.slice(a,t);if(!o)break;let s=t;for(;s<e.length&&/\\s/.test(e[s]);)s++;if(e[s]===`=`){for(t=s+1;t<e.length&&/\\s/.test(e[t]);)t++;if(e[t]===`\"`||e[t]===`'`){let i=e[t];t++;let a=t;t=mi(e,t,i,Zr(o),n),r?.(o,e.slice(a,t)),t<e.length&&t++}else{let i=t,a=n.unquoted;if(t<a.from||t>a.to){for(a.from=t;t<e.length&&/[^\\s>]/.test(e[t]);)t++;a.to=t}t=a.to,r?.(o,e.slice(i,t))}}else r?.(o,``)}for(let e of i)n.tag.set(e,t);return t}function mi(e,t,n,r,i){let a=(n===`\"`?0:2)+(r?1:0),o=[],s=!0;for(;t<e.length;){if(s){let e=i.value.get(t*4+a);if(e!==void 0){t=e;break}o.push(t*4+a),s=!1}if(!r&&e[t]===`\\\\`){let n=t+1;for(;e[n]===`\\\\`;)n++;t=(e[n]===`{`||e[n]===`}`)&&(n-t)%2==1?n+1:n;continue}if(e[t]===`{`){let n=r?ni(e[t+1])?gi(e,t+1,i):-1:vi(e,t,i);if(n!==-1){t=n+1,s=!0;continue}}else if(e[t]===n)break;t++}for(let e of o)i.value.set(e,t);return t}function hi(){return{code:new Map,js:Ur(),brace:new Map,template:new Map,templateText:new Map,name:{from:0,to:-1},unquoted:{from:0,to:-1},link:new Map,tag:new Map,value:new Map,rawClose:new Map}}function gi(e,t,n=hi()){return yi(e,t,t,n)}function _i(e,t,n){let r=n.name;if(t<r.from||t>r.to){let n=t;for(;n<e.length&&e[n]!==`}`&&!/\\s/.test(e[n]);)n++;r.from=t,r.to=n}return yi(e,r.to,t,n)}function vi(e,t,n){let r=di(e,t+1).end,i=e[r];return i!==void 0&&(i===`/`||/[a-zA-Z]/.test(i))?_i(e,r,n):gi(e,r,n)}function yi(e,t,n,r){let i=r.code.get(n);return i===void 0&&(i=Yr(e,t,{cache:r.js}),i===-1&&(i=Ci(e,n,r)),r.code.set(n,i)),i}function bi(e,t,n){let r=n.link.get(t);if(r!==void 0)return r;let i=[t],a=t;for(;a<e.length;)if(e[a]===`[`&&e[a+1]===`[`){a+=2;let e=n.link.get(a);if(e===void 0)i.push(a);else if(e===-1)break;else a=e+2}else if(e[a]===`]`&&e[a+1]===`]`){if(n.link.set(i.pop(),a),!i.length)return a;a+=2}else a++;for(let e of i)n.link.set(e,-1);return-1}function xi(e,t){let n=e[t],r=t+1;for(;r<e.length;){let t=e[r];if(t===`\\\\`)r+=2;else if(t===n)return r+1;else if(t===`\n`)return-1;else r++}return-1}var Si=/[\\p{L}\\p{N}_\\\\]/u;function Ci(e,t,n){let r=n.brace.get(t);if(r!==void 0)return r;let i=[{template:!1,start:t,levels:[[]]}];for(;;){let r=i[i.length-1],a;if(r.template){let o=!0;for(;a===void 0&&t<e.length;){if(o){let e=n.templateText.get(t);if(e!==void 0){a=e;break}r.passed.push(t),o=!1}let i=e[t];if(i===`\\\\`)t+=2,o=!0;else if(i===\"`\")a=t+1;else if(i===`$`&&e[t+1]===`{`){let e=n.brace.get(t+2);if(e===void 0)break;e===-1?a=-1:(t=e+1,o=!0)}else t++}if(a===void 0&&t<e.length){i.push({template:!1,start:t+2,levels:[[]]}),t+=2;continue}a??(a=-1)}else{let{levels:o}=r,s=e=>{for(let t of o.pop())n.brace.set(t,e);o.length||(a=e)};for(;a===void 0&&t<e.length;){let r=e[t],i=-1;if(r===`{`)o.push([]),i=++t;else if(r===`}`)s(t++);else if((r===`\"`||r===`'`)&&!(t>0&&Si.test(e[t-1]))){let n=xi(e,t);n===-1?t++:i=t=n}else if(r===\"`\"){let e=n.template.get(t);if(e===void 0)break;e===-1?t++:i=t=e}else t++;if(i===-1)continue;let a=n.brace.get(i);a===void 0?o[o.length-1].push(i):a===-1?t=e.length:(s(a),t=a+1)}if(a===void 0&&t<e.length){i.push({template:!0,start:t,levels:[],passed:[]}),t++;continue}if(a===void 0){a=-1;for(let e of o)for(let t of e)n.brace.set(t,-1)}}i.pop(),(r.template?n.template:n.brace).set(r.start,a);for(let e of r.passed??[])n.templateText.set(e,a);let o=i[i.length-1];if(!o)return a;t=o.template?a===-1?e.length:a+1:a===-1?r.start+1:a}}function wi(e,t={}){let n=t.text===!0,r=[],i=hi(),a=0,o=0;function s(t){t>o&&(r.push({type:`text`,value:e.slice(o,t),start:o,end:t}),o=t)}function c(e){r.push(e),a=o=e.end}function l(t,n){let r=t.toLowerCase();if(n||!si.has(r))return;let o=`\\\\{/${r}\\\\s*\\\\}`,l=i.rawClose.get(r);if(!l||a<l.from||l.at>=0&&a>l.at){let t=new RegExp(o,`gi`);t.lastIndex=a,l={from:a,at:t.exec(e)?.index??-1},i.rawClose.set(r,l)}let u=l.at;if(u===-1)return;let d=new RegExp(o,`iy`),f=Yr(e,a,{goal:`statements`,stop:t=>(d.lastIndex=t,d.test(e)),stopKey:r,cache:i.js});f===-1&&(f=u),d.lastIndex=f;let p=f+d.exec(e)[0].length;s(f),c({type:`macro`,...ui(e.slice(f+1,p-1)),start:f,end:p})}function u(t,n,r){let a=gi(e,t,i);return a===-1?!1:(s(n),c(ri({type:`expression`,expression:e.slice(t,a),start:n,end:a+1},r)),!0)}function d(t,n,r){let i=t+1;for(;i<e.length&&/[\\w.]/.test(e[i]);)i++;return e[i]===`}`?(c(ri({type:`variable`,name:e.slice(t+1,i),scope:$r[e[t]],start:n,end:i+1},r)),!0):u(t,n,r)}function f(t,n,r){let a=_i(e,t,i);if(a===-1)return!1;let o=ri({type:`macro`,...ui(e.slice(t,a)),start:n,end:a+1},r);return c(o),l(o.name,o.isClose),!0}for(;a<e.length;){if(e[a]===`\\\\`){let t=a+1;for(;e[t]===`\\\\`;)t++;let i=e[t];if(n&&(i===`{`||i===`}`)){let e=(t-a)%2==1,n=e?t+1:t,c=`\\\\`.repeat(t-a>>1)+(e?i:``);s(a),c&&r.push({type:`text`,value:c,start:a,end:n}),a=o=n;continue}if((i===`{`||i===`}`)&&(t-a)%2==1){s(t-1),c({type:`text`,value:i,start:t-1,end:t+1});continue}a=t;continue}if(!n&&e[a]===`[`&&e[a+1]===`[`){s(a);let t=a,{selectors:n,end:r}=di(e,a+2),o=bi(e,r,i);if(o===-1){a=t+2;continue}c(ri({type:`link`,...li(e.slice(r,o)),start:t,end:o+2},n));continue}if(e[a]===`{`){let t=a,{selectors:n,end:r}=di(e,a+1),i=r>a+1;i&&s(t);let o=e[r];if(ni(o)){if(s(t),d(r,t,n))continue}else if(oi.has(o)){if(u(r,t,n))continue}else if(o!==void 0&&(/[a-zA-Z]/.test(o)||o===`/`&&!i)&&(s(t),f(r,t,n)))continue;a=t+1;continue}if(!n&&e[a]===`<`){let t=a,n=a+1,r=e[n]===`/`;r&&n++;let l=n;for(;n<e.length&&/[a-zA-Z0-9-]/.test(e[n]);)n++;let u=e.slice(l,n),d=u.toLowerCase();if(u&&ii.test(u[0]))if(r){for(;n<e.length&&/\\s/.test(e[n]);)n++;if(e[n]===`>`){if(n++,s(t),ai.has(d)){a=o=n;continue}c({type:`html`,tag:u,attributes:{},isClose:!0,isSelfClose:!1,start:t,end:n});continue}}else{let r=n;n=pi(e,r,i);let a=ai.has(d);if(e[n]===`/`&&(a=!0,n++),e[n]===`>`){n++,s(t),c({type:`html`,tag:u,attributes:fi(e,r,i).attributes,isClose:!1,isSelfClose:a,start:t,end:n});continue}}a++;continue}a++}return s(e.length),r}var Ti=new Set([`if`,`for`,`do`,`button`,`link`,`listbox`,`cycle`,`switch`,`timed`,`repeat`,`type`,`widget`,`span`,`nobr`]);function Ei(e){Ti.add(e.toLowerCase())}var Di={elseif:`if`,else:`if`,case:`switch`,default:`switch`,next:`timed`},Oi=new Set([`if`,`switch`,`timed`]);function ki(e){return`\"${e.replace(/[\\\\\"]/g,`\\\\$&`)}\"`}function Ai(e){return ri({rawArgs:e.rawArgs,children:[]},e)}function ji(e){return e.type===`html`?e.tag:e.name}function Mi(e){return e.type===`html`?`</${e.tag}>`:`{/${e.name}}`}function Ni(e){let t=[],n=[];function r(){if(n.length===0)return t;let e=n[n.length-1].node;return e.type===`macro`&&e.branches&&e.branches.length>0?e.branches[e.branches.length-1].children:e.children}function i(e){let t=Mi(e);if(n.length===0)throw Error(`Unexpected closing ${t} (at character ${e.start})`);let i=n[n.length-1];if(i.node.type!==e.type||ji(i.node).toLowerCase()!==ji(e).toLowerCase())throw Error(`Expected ${Mi(i.node)} but found ${t} (at character ${e.start})`);n.pop(),r().push(i.node)}for(let t of e)switch(t.type){case`text`:r().push({type:`text`,value:t.value});break;case`link`:{let e=`${ki(t.display)} ${ki(t.target)}`;r().push(ri({type:`macro`,name:`link`,rawArgs:e,children:[]},t));break}case`variable`:r().push(ri({type:`variable`,name:t.name,scope:t.scope},t));break;case`expression`:r().push(ri({type:`expression`,expression:t.expression},t));break;case`html`:{let e={type:`html`,tag:t.tag,attributes:t.attributes,children:[]};t.isSelfClose?r().push(e):t.isClose?i(t):n.push({node:e,start:t.start});break}case`macro`:{if(t.isClose){i(t);break}let e=t.name.toLowerCase(),a=Object.prototype.hasOwnProperty.call(Di,e)?Di[e]:void 0;if(a){let e=n.length>0?n[n.length-1].node:null;if(!e||e.type!==`macro`||e.name!==a)throw Error(`{${t.name}} without matching {${a}} (at character ${t.start})`);e.branches.push(Ai(t));break}let o={type:`macro`,name:e,rawArgs:t.rawArgs,children:[]};if(!Ti.has(e)){r().push(ri(o,t));break}Oi.has(e)?o.branches=[Ai(t)]:ri(o,t),n.push({node:o,start:t.start});break}default:throw Error(`Unknown token type: ${t.type}`)}if(n.length>0){let e=n[n.length-1],t=e.node.type===`html`?`<${e.node.tag}>`:`{${e.node.name}} macro`;throw Error(`Unclosed ${t} (opened at character ${e.start})`)}return t}var Pi=e=>Symbol.iterator in e,Fi=e=>`entries`in e,Ii=(e,t)=>{let n=e instanceof Map?e:new Map(e.entries()),r=t instanceof Map?t:new Map(t.entries());if(n.size!==r.size)return!1;for(let[e,t]of n)if(!r.has(e)||!Object.is(t,r.get(e)))return!1;return!0},Li=(e,t)=>{let n=e[Symbol.iterator](),r=t[Symbol.iterator](),i=n.next(),a=r.next();for(;!i.done&&!a.done;){if(!Object.is(i.value,a.value))return!1;i=n.next(),a=r.next()}return!!i.done&&!!a.done};function Ri(e,t){return Object.is(e,t)?!0:typeof e!=`object`||!e||typeof t!=`object`||!t||Object.getPrototypeOf(e)!==Object.getPrototypeOf(t)?!1:Pi(e)&&Pi(t)?Fi(e)&&Fi(t)?Ii(e,t):Li(e,t):Ii({entries:()=>Object.entries(e)},{entries:()=>Object.entries(t)})}function zi(...e){let t=L();return Q(n=>{let r={};for(let t of e)r[t]=n[t];return Ri(t.current,r)?t.current:t.current=r})}function Bi(){let{variables:e,temporary:t,transient:n}=zi(`variables`,`temporary`,`transient`),r=z(tu);return R(()=>[e,t,r,n],[e,t,r,n])}var Vi=1831565813;function Hi(e){let t=e|0;return()=>{t=t+Vi|0;let e=Math.imul(t^t>>>15,t|1);return e^=e+Math.imul(e^e>>>7,e|61),((e^e>>>14)>>>0)/4294967296}}function Ui(e){let t=2166136261;for(let n=0;n<e.length;n++)t^=e.charCodeAt(n),t=Math.imul(t,16777619);return t}var Wi=!1,Gi=``,Ki=0,qi=null,Ji=0;function Yi(e,t=!0){let n;n=e===void 0?String(Date.now())+String(Math.random()):t?e+`|`+Date.now()+`|`+Math.random():e,Gi=n,Ki=0,qi=Hi(Ui(n)),Wi=!0,Ji++}function Xi(e,t){Ji++,Zi(e,t)}function Zi(e,t){Gi=e;let n=Math.imul(t%4294967296,Vi);qi=Hi(Ui(e)+n|0),Wi=!0,Ki=t}function Qi(){Ji++,Wi=!1,Gi=``,Ki=0,qi=null}function $i(e){let t={generation:Ji,seed:Gi,pull:Ki};try{return e()}finally{Wi&&Ji===t.generation&&Ki!==t.pull&&Zi(t.seed,t.pull)}}function ea(){return Wi?{seed:Gi,pull:Ki}:null}function ta(){return!Wi||!qi?Math.random():(Ki++,qi())}function na(e,t){return e>t&&([e,t]=[t,e]),Math.floor(ta()*(t-e+1))+e}function ra(){return Wi}function ia(){return Gi}function aa(){return Ki}var oa=`__proto__`;function sa(e,t=e){return e===`__proto__`?`\"${t}\" cannot be used as a variable name (${oa} is reserved)`:void 0}function W(e,t=e){let n=sa(e,t);if(n)throw TypeError(`spindle: ${n}`)}var ca=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),la=(e,t)=>e&&ca(e,t)?e[t]:void 0;function ua(e,t=()=>!0){let n=Object.create(null);for(let r of e)if(r)for(let e of Object.keys(r)){let i=r[e];t(i)&&(n[e]=i)}return n}var G=(...e)=>ua(e),da=e=>Object.getPrototypeOf(e)===null,fa=e=>da(e)?e:G(e);function pa(e,t,n){let r=G(e);return r[t]=n,r}var ma=Object.freeze(G());function ha(e,t){return[...new Set([...Object.keys(e),...Object.keys(t)])].filter(n=>la(e,n)!==la(t,n))}var ga=e=>typeof e==`number`&&Number.isInteger(e)&&e>=0;function _a(e,t){let n=la(e,t);return ga(n)?n:0}function va(e,t){let n=ua([e],ga);return t!==void 0&&(n[t]=_a(e,t)+1),n}var ya=500,ba=new Map,xa={$:`variables`,_:`temporary`,\"@\":`locals`,\"%\":`transient`},Sa=/[\\p{ID_Continue}$\\u200c\\u200d]$/u;function Ca(e,t=`expression`){let n=``;return Jr(e,{code(e){n+=e},literal(e){n+=e},variable(e,t){let r=sa(t,e+t);if(r)throw SyntaxError(`spindle: ${r}`);Sa.test(n.slice(-2))&&(n+=` `),n+=`${xa[e]}[\"${t}\"]`}},t),n}var wa=`const {currentPassage,previousPassage,visited,hasVisited,hasVisitedAny,hasVisitedAll,rendered,hasRendered,hasRenderedAny,hasRenderedAll,random,randomInt}=__fns;`;function Ta(e,t){let n=ba.get(e);if(n)return ba.delete(e),ba.set(e,n),n;let r=Function(`variables`,`temporary`,`locals`,`__fns`,`transient`,wa+t);if(ba.set(e,r),ba.size>ya){let e=ba.keys().next().value;e!==void 0&&ba.delete(e)}return r}function Ea(){let e=Q.getState();return e.storyData?.passages.get(e.currentPassage)}function Da(){let e=Q.getState();if(e.historyIndex<=0)return;let t=e.history[e.historyIndex-1]?.passage;return t?e.storyData?.passages.get(t):void 0}function Oa(e){let t=t=>_a(e(),t??Q.getState().currentPassage);return{count:t,has:e=>t(e)>0,any:(...e)=>e.some(e=>t(e)>0),all:(...e)=>e.every(e=>t(e)>0)}}var ka=null,Aa=null,ja=null;function Ma(){let{visitCounts:e,renderCounts:t}=Q.getState();if(ka&&Aa===e&&ja===t)return ka;let n=Oa(()=>e),r=Oa(()=>t);return ka={currentPassage:Ea,previousPassage:Da,visited:n.count,hasVisited:n.has,hasVisitedAny:n.any,hasVisitedAll:n.all,rendered:r.count,hasRendered:r.has,hasRenderedAny:r.any,hasRenderedAll:r.all,random:ta,randomInt:na},Aa=e,ja=t,ka}function Na(e){return da(e)?e:Object.isExtensible(e)?(Object.setPrototypeOf(e,null),e):fa(e)}function Pa(e,t,n,r=ma,i=ma){let a=`return (${Ca(e)}\\n);`;return Ta(a,a)(Na(t),Na(n),Na(r),Ma(),Na(i))}function Fa(e,t,n,r=ma,i=ma){let a=Ca(e,`statements`);Ta(`exec:`+a,a)(Na(t),Na(n),Na(r),Ma(),Na(i))}var Ia=new Map;function La(e,t){Ia.set(e.toLowerCase(),t)}function Ra(e){return Ia.get(e.toLowerCase())}var za=new Map;function Ba(e,t){t?za.set(e.toLowerCase(),t):za.delete(e.toLowerCase())}function Va(e){return za.get(e.toLowerCase())}var Ha=new Set;function Ua(e){Ha.add(e.toLowerCase())}function Wa(e){return Ha.has(e.toLowerCase())}var Ga=new Map;function Ka(e,t){Ga.set(e.toLowerCase(),t)}function qa(){return Array.from(Ga.values())}var Ja=new Map;function Ya(e,t,n,r=!1){let i=n.filter(e=>e!==`@children`);for(let e of i)e.startsWith(`@`)&&W(e.slice(1),e);Ja.set(e.toLowerCase(),{body:t,params:i,isBlock:r})}function Xa(e){return Ja.get(e.toLowerCase())}function Za(e){return/\\s/.test(e)}function Qa(e){return e===`(`||e===`[`||e===`{`}function $a(e){return e===`)`||e===`]`||e===`}`}function eo(e){return e.replace(/\\\\([\"'\\\\])/g,`$1`)}function to(e,t){let n=e[t];if(n!==`\"`&&n!==`'`)return null;let{end:r,closed:i}=Tr(e,t);return i?{value:eo(e.slice(t+1,r-1)),end:r}:null}function no(e){let t=to(e,0);return t&&t.end===e.length?t.value:null}function ro(e){return/^[\"']?(.+?)[\"']?$/s.exec(e)?.[1]??e}var io=/(?:[-+*/%&|^!~=<>?:,.]|(?:^|[^\\w$@.])(?:typeof|void|new|delete|in|instanceof|await|yield))$/;function ao(e){let t=-1;if(Jr(e,{code(e,n,r){r===0&&!Za(e)&&(t=n+1)},literal(e,n,r){let i=e.startsWith(`//`)||e.startsWith(`/*`);r===0&&!i&&(t=-1)},variable(e,n,r,i){i===0&&(t=-1)}}),t<0)return!1;let n=e.slice(0,t);return/(?:\\+\\+|--)$/.test(n)?!1:io.test(n)}function oo(e,t){let n=[],r=0;return Jr(e,{code(e,i,a){a>0||(Qa(e)?r++:$a(e)?r--:r===0&&t(e)&&n.push(i))}}),n}function so(e,t){let n=[],r=0;for(let i of oo(e,t))n.push(e.slice(r,i)),r=i+1;return n.push(e.slice(r)),n}function co(e){return lo(e)&&!ao(e)}function lo(e){let t=e[0];return!!(t===`\"`||t===`'`||t===\"`\"||/^[$_@]\\w|^%[A-Za-z_]/.test(e)||/\\d/.test(t)||(t===`-`||t===`+`)&&e.length>1&&/\\d/.test(e[1])||t===`(`||t===`[`||t===`{`||/^(?:true|false|null|undefined)(?![\\w$])/.test(e)||t===`!`&&e.length>1&&e[1]!==`=`)}function uo(e){let t=so(e,Za).filter(Boolean);if(t.length<2)return null;for(let e of t)if(!co(e))return null;return t}function fo(e){let t=so(e,e=>e===`,`).map(e=>e.trim()),n=t.length>1;if(t[t.length-1]===``&&t.pop(),!n&&t.length===1){let e=uo(t[0]);if(e)return e}return t}function po(e){return e.includes(`{`)||e.includes(`}`)}var mo=new Map,ho=2e3;function go(e){let t=mo.get(e);if(t===void 0){try{t={nodes:Ni(wi(e,{text:!0}))}}catch(e){t={error:e}}mo.size>=ho&&mo.clear(),mo.set(e,t)}return t}function _o(e,t){return e.map(e=>{switch(e.type){case`text`:return{type:`text`,value:t(e.value)};case`html`:return{...e,children:_o(e.children,t)};case`macro`:{let n={...e,children:_o(e.children,t)};return e.branches&&(n.branches=e.branches.map(e=>({...e,children:_o(e.children,t)}))),n}default:return e}})}var vo=100;function yo(e){return e==null?``:String(e)}function bo(e,t,n){let r=n.split(`.`),i=r[0];W(i,ei[t]+i);let a=la(t===`variable`?e.variables:t===`temporary`?e.temporary:t===`transient`?e.transient:e.locals,i);for(let e=1;e<r.length;e++){if(a==null)return;a=a[r[e]]}return a}var xo=class{constructor(){this.errors=[]}nodes(e,t,n){let r=``;for(let i of e)r+=this.node(i,t,n);return r}evaluate(e,t){return Pa(e,t.variables,t.temporary,t.locals,t.transient)}node(e,t,n){switch(e.type){case`text`:return e.value;case`variable`:if(e.scope===`local`&&e.name===`children`){let e=t.widgetChildren;return e?this.nested(`children`,e,t,n,{widgetChildren:null}):``}return this.variable(e.scope,e.name,t);case`expression`:try{return yo(this.evaluate(e.expression,t))}catch(e){return this.errors.push({macro:`expression`,error:e}),``}case`html`:return this.nodes(e.children,t,n);case`macro`:return this.macro(e,t,n);default:return e}}variable(e,t,n){try{return yo(bo(n,e,t))}catch(n){return this.errors.push({macro:ei[e]+t,error:n}),``}}nested(e,t,n,r,i={}){return r>=vo?(this.errors.push({macro:e,error:Error(`markup nested too deeply (a widget using itself?)`)}),``):this.nodes(t,{...n,...i},r+1)}macro(e,t,n){if(Wa(e.name))return``;let r=Xa(e.name);if(r){let i=t.locals;if(r.params.length>0){let n=e.rawArgs?fo(e.rawArgs):[];i=G(t.locals),r.params.forEach((e,r)=>{let a,o=n[r];if(o!==void 0)try{a=this.evaluate(o,t)}catch{a=void 0}i[e.startsWith(`@`)?e.slice(1):e]=a})}return this.nested(e.name,r.body,t,n,{locals:i,widgetChildren:e.children.length>0?e.children:null})}let i=Va(e.name);if(!i){let t=Ra(e.name)?`{${e.name}} has no text form, so it can't be used in an attribute value or label`:`unknown macro {${e.name}}`;return this.errors.push({macro:e.name,error:Error(t)}),``}let a={evaluate:e=>this.evaluate(e,t),renderText:(r,i)=>this.nested(e.name,r,t,n,i?{locals:So(t.locals,i)}:{})};try{return i({rawArgs:e.rawArgs,className:e.className,id:e.id,children:e.children,branches:e.branches},a)}catch(t){return this.errors.push({macro:e.name,error:t}),``}}};function So(e,t){for(let e of Object.keys(t))W(e,`@${e}`);return G(e,t)}function Co(e,t){let n=new xo;return{text:n.nodes(e,t,0),errors:n.errors}}function wo(e,t){if(!po(e))return{text:e,errors:[]};let n=go(e);return`error`in n?{text:e,errors:[{macro:`markup`,error:n.error}]}:Co(n.nodes,t)}function To(e,t,n){let r=[],i=``;for(let a of Qr(e))if(`text`in a)i+=n?n(a.text):a.text;else if(`verbatim`in a)i+=a.verbatim;else if(/^[$_@%][\\w.]+$/.test(a.expr)){let e=$r[a.expr[0]];try{i+=yo(bo(t,e,a.expr.slice(1)))}catch(e){r.push({macro:a.expr,error:e})}}else try{i+=yo(Pa(a.expr,t.variables,t.temporary,t.locals,t.transient))}catch(e){r.push({macro:`expression`,error:e})}return{text:i,errors:r}}function Eo(e,t){return e instanceof Error?e.message||t||String(e):typeof e==`string`&&e!==``?e:t??String(e)}function Do(){let[e,t,n,r]=Bi(),i=z(cu);return R(()=>({variables:e,temporary:t,locals:n,transient:r,widgetChildren:i}),[e,t,n,r,i])}function Oo(){let e=Do();return Oe(t=>{if(t===void 0||!po(t))return t;let{text:n,errors:r}=wo(t,e);for(let{macro:e,error:n}of r)console.error(`spindle: {${e}} error in \"${t}\": ${Eo(n)}`);return n},[e])}var ko=0;Array.isArray;function K(e,t,n,i,a,o){t||(t={});var s,c,l=t;if(`ref`in l)for(c in l={},t)c==`ref`?s=t[c]:l[c]=t[c];var u={type:e,props:l,key:n,ref:s,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--ko,__i:-1,__u:0,__source:a,__self:o};if(typeof e==`function`&&(s=e.defaultProps))for(c in s)l[c]===void 0&&(l[c]=s[c]);return r.vnode&&r.vnode(u),u}var Ao={variable:`$`,temporary:`_`,local:`@`,transient:`%`},jo={variable:`variables`,temporary:`temporary`,transient:`transient`};function Mo({name:e,scope:t,className:n,id:r}){let i=Oo();n=i(n),r=i(r);let a=z(tu),o=e.split(`.`),s=o[0],c=Q(e=>t===`local`?void 0:la(e[jo[t]],s)),l=sa(s,Ao[t]+s);if(l)return K(`span`,{class:`error`,children:`{${Ao[t]}${e} error: ${l}}`});let u;u=t===`local`?la(a,s):c;for(let e=1;e<o.length;e++){if(u==null){u=void 0;break}let t=o[e];u=u[t]}let d=u==null?``:String(u);return n||r?K(`span`,{id:r,class:n,children:d}):K(S,{children:d})}function No({expression:e,className:t,id:n}){let r=Oo();t=r(t),n=r(n);let[i,a,o,s]=Bi(),c;try{let t=Pa(e,i,a,o,s);c=t==null?``:String(t)}catch{c=`{error: ${e}}`}return t||n?K(`span`,{id:n,class:t,children:c}):K(S,{children:c})}function Po({body:e,parentValues:t,ownKeys:n}){let r=z(ru),i=z(iu),a=z(au),[o,s]=I({}),c=R(()=>G(t,n,o),[t,n,o]),l=L(c);l.current=c;let u=Oe(()=>l.current,[]),d=Oe((e,t)=>{W(e,`@${e}`),l.current=pa(l.current,e,t),s(n=>({...n,[e]:t}))},[]),f=R(()=>({update:d,getValues:u}),[d,u]);return K(nu.Provider,{value:f,children:K(tu.Provider,{value:c,children:Ju(e,{nobr:r,inline:i,raw:a,locals:c})})})}function Fo({body:e,params:t,rawArgs:n,invocationChildren:r}){let i=z(tu),a=z(ru),o=z(iu),s=z(au),[c,l,u,d]=Bi(),f=r?.length?r:null;if(t.length===0)return K(cu.Provider,{value:f,children:Ju(e,{nobr:a,inline:o,raw:s,locals:i})});let p=n?fo(n):[],m=[];for(let e=0;e<t.length;e++){let t=p[e],n;if(t!==void 0)try{n=Pa(t,c,l,u,d)}catch{n=void 0}m.push(n)}let h=R(()=>{let e=G();for(let n=0;n<t.length;n++)e[t[n].startsWith(`@`)?t[n].slice(1):t[n]]=m[n];return e},m);return K(cu.Provider,{value:f,children:K(Po,{body:e,parentValues:i,ownKeys:h})})}var Io=document.createElement(`i`);function Lo(e){let t=`&`+e+`;`;Io.innerHTML=t;let n=Io.textContent;return n.charCodeAt(n.length-1)===59&&e!==`semi`||n===t?!1:n}function Ro(e,t,n,r){let i=e.length,a=0,o;if(t=t<0?-t>i?0:i+t:t>i?i:t,n=n>0?n:0,r.length<1e4)o=Array.from(r),o.unshift(t,n),e.splice(...o);else for(n&&e.splice(t,n);a<r.length;)o=r.slice(a,a+1e4),o.unshift(t,0),e.splice(...o),a+=1e4,t+=1e4}function zo(e,t){return e.length>0?(Ro(e,e.length,0,t),e):t}var Bo={}.hasOwnProperty;function Vo(e){let t={},n=-1;for(;++n<e.length;)Ho(t,e[n]);return t}function Ho(e,t){let n;for(n in t){let r=(Bo.call(e,n)?e[n]:void 0)||(e[n]={}),i=t[n],a;if(i)for(a in i){Bo.call(r,a)||(r[a]=[]);let e=i[a];Uo(r[a],Array.isArray(e)?e:e?[e]:[])}}}function Uo(e,t){let n=-1,r=[];for(;++n<t.length;)(t[n].add===`after`?e:r).push(t[n]);Ro(e,0,0,r)}function Wo(e){let t={},n=-1;for(;++n<e.length;)Go(t,e[n]);return t}function Go(e,t){let n;for(n in t){let r=(Bo.call(e,n)?e[n]:void 0)||(e[n]={}),i=t[n],a;if(i)for(a in i)r[a]=i[a]}}function Ko(e,t){let n=Number.parseInt(e,t);return n<9||n===11||n>13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||(n&65535)==65535||(n&65535)==65534||n>1114111?`�`:String.fromCodePoint(n)}var qo={'\"':`quot`,\"&\":`amp`,\"<\":`lt`,\">\":`gt`};function Jo(e){return e.replace(/[\"&<>]/g,t);function t(e){return`&`+qo[e]+`;`}}function Yo(e){return e.replace(/[\\t\\n\\r ]+/g,` `).replace(/^ | $/g,``).toLowerCase().toUpperCase()}var Xo=os(/[A-Za-z]/),Zo=os(/[\\dA-Za-z]/),Qo=os(/[#-'*+\\--9=?A-Z^-~]/);function $o(e){return e!==null&&(e<32||e===127)}var es=os(/\\d/),ts=os(/[\\dA-Fa-f]/),ns=os(/[!-/:-@[-`{-~]/);function q(e){return e!==null&&e<-2}function rs(e){return e!==null&&(e<0||e===32)}function J(e){return e===-2||e===-1||e===32}var is=os(/\\p{P}|\\p{S}/u),as=os(/\\s/);function os(e){return t;function t(t){return t!==null&&t>-1&&e.test(String.fromCharCode(t))}}function ss(e,t){let n=Jo(cs(e||``));if(!t)return n;let r=n.indexOf(`:`),i=n.indexOf(`?`),a=n.indexOf(`#`),o=n.indexOf(`/`);return r<0||o>-1&&r>o||i>-1&&r>i||a>-1&&r>a||t.test(n.slice(0,r))?n:``}function cs(e){let t=[],n=-1,r=0,i=0;for(;++n<e.length;){let a=e.charCodeAt(n),o=``;if(a===37&&Zo(e.charCodeAt(n+1))&&Zo(e.charCodeAt(n+2)))i=2;else if(a<128)/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(a))||(o=String.fromCharCode(a));else if(a>55295&&a<57344){let t=e.charCodeAt(n+1);a<56320&&t>56319&&t<57344?(o=String.fromCharCode(a,t),i=1):o=`�`}else o=String.fromCharCode(a);o&&(t.push(e.slice(r,n),encodeURIComponent(o)),r=n+i+1,o=``),i&&(n+=i,i=0)}return t.join(``)+e.slice(r)}var ls={}.hasOwnProperty,us=/^(https?|ircs?|mailto|xmpp)$/i,ds=/^https?$/i;function fs(e){let t=e||{},n=!0,r={},i=[[]],a=[],o=[],s=Wo([{enter:{blockQuote:ee,codeFenced:te,codeFencedFenceInfo:h,codeFencedFenceMeta:h,codeIndented:ie,codeText:je,content:ye,definition:he,definitionDestinationString:_e,definitionLabelString:h,definitionTitleString:h,emphasis:ke,htmlFlow:R,htmlText:z,image:oe,label:h,link:se,listItemMarker:E,listItemValue:T,listOrdered:C,listUnordered:w,paragraph:j,reference:h,resource:de,resourceDestinationString:fe,resourceTitleString:h,setextHeading:xe,strong:Ae},exit:{atxHeading:Ce,atxHeadingSequence:be,autolinkEmail:ze,autolinkProtocol:Re,blockQuote:A,characterEscapeValue:Te,characterReferenceMarkerHexadecimal:Ie,characterReferenceMarkerNumeric:Ie,characterReferenceValue:Le,codeFenced:ae,codeFencedFence:re,codeFencedFenceInfo:ne,codeFencedFenceMeta:S,codeFlowValue:De,codeIndented:ae,codeText:Me,codeTextData:Te,data:Te,definition:F,definitionDestinationString:ve,definitionLabelString:ge,definitionTitleString:P,emphasis:Ne,hardBreakEscape:L,hardBreakTrailing:L,htmlFlow:Oe,htmlFlowData:Te,htmlText:Oe,htmlTextData:Te,image:N,label:le,labelText:ce,lineEnding:Ee,link:N,listOrdered:D,listUnordered:O,paragraph:M,reference:S,referenceString:ue,resource:S,resourceDestinationString:pe,resourceTitleString:me,setextHeading:I,setextHeadingLineSequence:we,setextHeadingText:Se,strong:Pe,thematicBreak:Fe}},...t.htmlExtensions||[]]),c={definitions:r,tightStack:o},l={buffer:h,encode:x,getData:m,lineEndingIfNeeded:b,options:t,raw:v,resume:g,setData:p,tag:_},u=t.defaultLineEnding;return d;function d(e){let t=-1,n=0,r=[],a=[],o=[];for(;++t<e.length;)!u&&(e[t][1].type===`lineEnding`||e[t][1].type===`lineEndingBlank`)&&(u=e[t][2].sliceSerialize(e[t][1])),(e[t][1].type===`listOrdered`||e[t][1].type===`listUnordered`)&&(e[t][0]===`enter`?r.push(t):f(e.slice(r.pop(),t))),e[t][1].type===`definition`&&(e[t][0]===`enter`?(o=zo(o,e.slice(n,t)),n=t):(a=zo(a,e.slice(n,t+1)),n=t+1));a=zo(a,o),a=zo(a,e.slice(n)),t=-1;let c=a;for(s.enter.null&&s.enter.null.call(l);++t<e.length;){let e=s[c[t][0]],n=c[t][1].type,r=e[n];ls.call(e,n)&&r&&r.call({sliceSerialize:c[t][2].sliceSerialize,...l},c[t][1])}return s.exit.null&&s.exit.null.call(l),i[0].join(``)}function f(e){let t=e.length,n=0,r=0,i=!1,a;for(;++n<t;){let t=e[n];if(t[1]._container)a=void 0,t[0]===`enter`?r++:r--;else switch(t[1].type){case`listItemPrefix`:t[0]===`exit`&&(a=!0);break;case`linePrefix`:break;case`lineEndingBlank`:t[0]===`enter`&&!r&&(a?a=void 0:i=!0);break;default:a=void 0}}e[0][1]._loose=i}function p(e,t){c[e]=t}function m(e){return c[e]}function h(){i.push([])}function g(){return i.pop().join(``)}function _(e){n&&(p(`lastWasTag`,!0),i[i.length-1].push(e))}function v(e){p(`lastWasTag`),i[i.length-1].push(e)}function y(){v(u||`\n`)}function b(){let e=i[i.length-1],t=e[e.length-1],n=t?t.charCodeAt(t.length-1):null;n===10||n===13||n===null||y()}function x(e){return m(`ignoreEncode`)?e:Jo(e)}function S(){g()}function C(e){o.push(!e._loose),b(),_(`<ol`),p(`expectFirstItem`,!0)}function w(e){o.push(!e._loose),b(),_(`<ul`),p(`expectFirstItem`,!0)}function T(e){if(m(`expectFirstItem`)){let t=Number.parseInt(this.sliceSerialize(e),10);t!==1&&_(` start=\"`+x(String(t))+`\"`)}}function E(){m(`expectFirstItem`)?_(`>`):k(),b(),_(`<li>`),p(`expectFirstItem`),p(`lastWasTag`)}function D(){k(),o.pop(),y(),_(`</ol>`)}function O(){k(),o.pop(),y(),_(`</ul>`)}function k(){m(`lastWasTag`)&&!m(`slurpAllLineEndings`)&&b(),_(`</li>`),p(`slurpAllLineEndings`)}function ee(){o.push(!1),b(),_(`<blockquote>`)}function A(){o.pop(),b(),_(`</blockquote>`),p(`slurpAllLineEndings`)}function j(){o[o.length-1]||(b(),_(`<p>`)),p(`slurpAllLineEndings`)}function M(){o[o.length-1]?p(`slurpAllLineEndings`,!0):_(`</p>`)}function te(){b(),_(`<pre><code`),p(`fencesCount`,0)}function ne(){_(` class=\"language-`+g()+`\"`)}function re(){let e=m(`fencesCount`)||0;e||(_(`>`),p(`slurpOneLineEnding`,!0)),p(`fencesCount`,e+1)}function ie(){b(),_(`<pre><code>`)}function ae(){let e=m(`fencesCount`);e!==void 0&&e<2&&c.tightStack.length>0&&!m(`lastWasTag`)&&y(),m(`flowCodeSeenData`)&&b(),_(`</code></pre>`),e!==void 0&&e<2&&b(),p(`flowCodeSeenData`),p(`fencesCount`),p(`slurpOneLineEnding`)}function oe(){a.push({image:!0}),n=void 0}function se(){a.push({})}function ce(e){a[a.length-1].labelId=this.sliceSerialize(e)}function le(){a[a.length-1].label=g()}function ue(e){a[a.length-1].referenceId=this.sliceSerialize(e)}function de(){h(),a[a.length-1].destination=``}function fe(){h(),p(`ignoreEncode`,!0)}function pe(){a[a.length-1].destination=g(),p(`ignoreEncode`)}function me(){a[a.length-1].title=g()}function N(){let e=a.length-1,i=a[e],o=i.referenceId||i.labelId,s=i.destination===void 0?r[Yo(o)]:i;for(n=!0;e--;)if(a[e].image){n=void 0;break}i.image?(_(`<img src=\"`+ss(s.destination,t.allowDangerousProtocol?void 0:ds)+`\" alt=\"`),v(i.label),_(`\"`)):_(`<a href=\"`+ss(s.destination,t.allowDangerousProtocol?void 0:us)+`\"`),_(s.title?` title=\"`+s.title+`\"`:``),i.image?_(` />`):(_(`>`),v(i.label),_(`</a>`)),a.pop()}function he(){h(),a.push({})}function ge(e){g(),a[a.length-1].labelId=this.sliceSerialize(e)}function _e(){h(),p(`ignoreEncode`,!0)}function ve(){a[a.length-1].destination=g(),p(`ignoreEncode`)}function P(){a[a.length-1].title=g()}function F(){let e=a[a.length-1],t=Yo(e.labelId);g(),ls.call(r,t)||(r[t]=a[a.length-1]),a.pop()}function ye(){p(`slurpAllLineEndings`,!0)}function be(e){m(`headingRank`)||(p(`headingRank`,this.sliceSerialize(e).length),b(),_(`<h`+m(`headingRank`)+`>`))}function xe(){h(),p(`slurpAllLineEndings`)}function Se(){p(`slurpAllLineEndings`,!0)}function Ce(){_(`</h`+m(`headingRank`)+`>`),p(`headingRank`)}function we(e){p(`headingRank`,this.sliceSerialize(e).charCodeAt(0)===61?1:2)}function I(){let e=g();b(),_(`<h`+m(`headingRank`)+`>`),v(e),_(`</h`+m(`headingRank`)+`>`),p(`slurpAllLineEndings`),p(`headingRank`)}function Te(e){v(x(this.sliceSerialize(e)))}function Ee(e){if(!m(`slurpAllLineEndings`)){if(m(`slurpOneLineEnding`)){p(`slurpOneLineEnding`);return}if(m(`inCodeText`)){v(` `);return}v(x(this.sliceSerialize(e)))}}function De(e){v(x(this.sliceSerialize(e))),p(`flowCodeSeenData`,!0)}function L(){_(`<br />`)}function R(){b(),z()}function Oe(){p(`ignoreEncode`)}function z(){t.allowDangerousHtml&&p(`ignoreEncode`,!0)}function ke(){_(`<em>`)}function Ae(){_(`<strong>`)}function je(){p(`inCodeText`,!0),_(`<code>`)}function Me(){p(`inCodeText`),_(`</code>`)}function Ne(){_(`</em>`)}function Pe(){_(`</strong>`)}function Fe(){b(),_(`<hr />`)}function Ie(e){p(`characterReferenceType`,e.type)}function Le(e){let t=this.sliceSerialize(e);v(x(m(`characterReferenceType`)?Ko(t,m(`characterReferenceType`)===`characterReferenceMarkerNumeric`?10:16):Lo(t))),p(`characterReferenceType`)}function Re(e){let n=this.sliceSerialize(e);_(`<a href=\"`+ss(n,t.allowDangerousProtocol?void 0:us)+`\">`),v(x(n)),_(`</a>`)}function ze(e){let t=this.sliceSerialize(e);_(`<a href=\"`+ss(`mailto:`+t)+`\">`),v(x(t)),_(`</a>`)}}function Y(e,t,n,r){let i=r?r-1:1/0,a=0;return o;function o(r){return J(r)?(e.enter(n),s(r)):t(r)}function s(r){return J(r)&&a++<i?(e.consume(r),s):(e.exit(n),t(r))}}var ps={tokenize:ms};function ms(e){let t=e.attempt(this.parser.constructs.contentInitial,r,i),n;return t;function r(n){if(n===null){e.consume(n);return}return e.enter(`lineEnding`),e.consume(n),e.exit(`lineEnding`),Y(e,t,`linePrefix`)}function i(t){return e.enter(`paragraph`),a(t)}function a(t){let r=e.enter(`chunkText`,{contentType:`text`,previous:n});return n&&(n.next=r),n=r,o(t)}function o(t){if(t===null){e.exit(`chunkText`),e.exit(`paragraph`),e.consume(t);return}return q(t)?(e.consume(t),e.exit(`chunkText`),a):(e.consume(t),o)}}var hs={tokenize:_s},gs={tokenize:vs};function _s(e){let t=this,n=[],r=0,i,a,o;return s;function s(i){if(r<n.length){let a=n[r];return t.containerState=a[1],e.attempt(a[0].continuation,c,l)(i)}return l(i)}function c(e){if(r++,t.containerState._closeFlow){t.containerState._closeFlow=void 0,i&&v();let n=t.events.length,a=n,o;for(;a--;)if(t.events[a][0]===`exit`&&t.events[a][1].type===`chunkFlow`){o=t.events[a][1].end;break}_(r);let s=n;for(;s<t.events.length;)t.events[s][1].end={...o},s++;return Ro(t.events,a+1,0,t.events.slice(n)),t.events.length=s,l(e)}return s(e)}function l(a){if(r===n.length){if(!i)return f(a);if(i.currentConstruct&&i.currentConstruct.concrete)return m(a);t.interrupt=!!(i.currentConstruct&&!i._gfmTableDynamicInterruptHack)}return t.containerState={},e.check(gs,u,d)(a)}function u(e){return i&&v(),_(r),f(e)}function d(e){return t.parser.lazy[t.now().line]=r!==n.length,o=t.now().offset,m(e)}function f(n){return t.containerState={},e.attempt(gs,p,m)(n)}function p(e){return r++,n.push([t.currentConstruct,t.containerState]),f(e)}function m(n){if(n===null){i&&v(),_(0),e.consume(n);return}return i=i||t.parser.flow(t.now()),e.enter(`chunkFlow`,{_tokenizer:i,contentType:`flow`,previous:a}),h(n)}function h(n){if(n===null){g(e.exit(`chunkFlow`),!0),_(0),e.consume(n);return}return q(n)?(e.consume(n),g(e.exit(`chunkFlow`)),r=0,t.interrupt=void 0,s):(e.consume(n),h)}function g(e,n){let s=t.sliceStream(e);if(n&&s.push(null),e.previous=a,a&&(a.next=e),a=e,i.defineSkip(e.start),i.write(s),t.parser.lazy[e.start.line]){let e=i.events.length;for(;e--;)if(i.events[e][1].start.offset<o&&(!i.events[e][1].end||i.events[e][1].end.offset>o))return;let n=t.events.length,a=n,s,c;for(;a--;)if(t.events[a][0]===`exit`&&t.events[a][1].type===`chunkFlow`){if(s){c=t.events[a][1].end;break}s=!0}for(_(r),e=n;e<t.events.length;)t.events[e][1].end={...c},e++;Ro(t.events,a+1,0,t.events.slice(n)),t.events.length=e}}function _(r){let i=n.length;for(;i-- >r;){let r=n[i];t.containerState=r[1],r[0].exit.call(t,e)}n.length=r}function v(){i.write([null]),a=void 0,i=void 0,t.containerState._closeFlow=void 0}}function vs(e,t,n){return Y(e,e.attempt(this.parser.constructs.document,t,n),`linePrefix`,this.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)}function ys(e){if(e===null||rs(e)||as(e))return 1;if(is(e))return 2}function bs(e,t,n){let r=[],i=-1;for(;++i<e.length;){let a=e[i].resolveAll;a&&!r.includes(a)&&(t=a(t,n),r.push(a))}return t}var xs={name:`attention`,resolveAll:Ss,tokenize:Cs};function Ss(e,t){let n=-1,r,i,a,o,s,c,l,u;for(;++n<e.length;)if(e[n][0]===`enter`&&e[n][1].type===`attentionSequence`&&e[n][1]._close){for(r=n;r--;)if(e[r][0]===`exit`&&e[r][1].type===`attentionSequence`&&e[r][1]._open&&t.sliceSerialize(e[r][1]).charCodeAt(0)===t.sliceSerialize(e[n][1]).charCodeAt(0)){if((e[r][1]._close||e[n][1]._open)&&(e[n][1].end.offset-e[n][1].start.offset)%3&&!((e[r][1].end.offset-e[r][1].start.offset+e[n][1].end.offset-e[n][1].start.offset)%3))continue;c=e[r][1].end.offset-e[r][1].start.offset>1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1;let d={...e[r][1].end},f={...e[n][1].start};ws(d,-c),ws(f,c),o={type:c>1?`strongSequence`:`emphasisSequence`,start:d,end:{...e[r][1].end}},s={type:c>1?`strongSequence`:`emphasisSequence`,start:{...e[n][1].start},end:f},a={type:c>1?`strongText`:`emphasisText`,start:{...e[r][1].end},end:{...e[n][1].start}},i={type:c>1?`strong`:`emphasis`,start:{...o.start},end:{...s.end}},e[r][1].end={...o.start},e[n][1].start={...s.end},l=[],e[r][1].end.offset-e[r][1].start.offset&&(l=zo(l,[[`enter`,e[r][1],t],[`exit`,e[r][1],t]])),l=zo(l,[[`enter`,i,t],[`enter`,o,t],[`exit`,o,t],[`enter`,a,t]]),l=zo(l,bs(t.parser.constructs.insideSpan.null,e.slice(r+1,n),t)),l=zo(l,[[`exit`,a,t],[`enter`,s,t],[`exit`,s,t],[`exit`,i,t]]),e[n][1].end.offset-e[n][1].start.offset?(u=2,l=zo(l,[[`enter`,e[n][1],t],[`exit`,e[n][1],t]])):u=0,Ro(e,r-1,n-r+3,l),n=r+l.length-u-2;break}}for(n=-1;++n<e.length;)e[n][1].type===`attentionSequence`&&(e[n][1].type=`data`);return e}function Cs(e,t){let n=this.parser.constructs.attentionMarkers.null,r=this.previous,i=ys(r),a;return o;function o(t){return a=t,e.enter(`attentionSequence`),s(t)}function s(o){if(o===a)return e.consume(o),s;let c=e.exit(`attentionSequence`),l=ys(o),u=!l||l===2&&i||n.includes(o),d=!i||i===2&&l||n.includes(r);return c._open=!!(a===42?u:u&&(i||!d)),c._close=!!(a===42?d:d&&(l||!u)),t(o)}}function ws(e,t){e.column+=t,e.offset+=t,e._bufferIndex+=t}var Ts={name:`autolink`,tokenize:Es};function Es(e,t,n){let r=0;return i;function i(t){return e.enter(`autolink`),e.enter(`autolinkMarker`),e.consume(t),e.exit(`autolinkMarker`),e.enter(`autolinkProtocol`),a}function a(t){return Xo(t)?(e.consume(t),o):t===64?n(t):l(t)}function o(e){return e===43||e===45||e===46||Zo(e)?(r=1,s(e)):l(e)}function s(t){return t===58?(e.consume(t),r=0,c):(t===43||t===45||t===46||Zo(t))&&r++<32?(e.consume(t),s):(r=0,l(t))}function c(r){return r===62?(e.exit(`autolinkProtocol`),e.enter(`autolinkMarker`),e.consume(r),e.exit(`autolinkMarker`),e.exit(`autolink`),t):r===null||r===32||r===60||$o(r)?n(r):(e.consume(r),c)}function l(t){return t===64?(e.consume(t),u):Qo(t)?(e.consume(t),l):n(t)}function u(e){return Zo(e)?d(e):n(e)}function d(n){return n===46?(e.consume(n),r=0,u):n===62?(e.exit(`autolinkProtocol`).type=`autolinkEmail`,e.enter(`autolinkMarker`),e.consume(n),e.exit(`autolinkMarker`),e.exit(`autolink`),t):f(n)}function f(t){if((t===45||Zo(t))&&r++<63){let n=t===45?f:d;return e.consume(t),n}return n(t)}}var Ds={partial:!0,tokenize:Os};function Os(e,t,n){return r;function r(t){return J(t)?Y(e,i,`linePrefix`)(t):i(t)}function i(e){return e===null||q(e)?t(e):n(e)}}var ks={continuation:{tokenize:js},exit:Ms,name:`blockQuote`,tokenize:As};function As(e,t,n){let r=this;return i;function i(t){if(t===62){let n=r.containerState;return n.open||(e.enter(`blockQuote`,{_container:!0}),n.open=!0),e.enter(`blockQuotePrefix`),e.enter(`blockQuoteMarker`),e.consume(t),e.exit(`blockQuoteMarker`),a}return n(t)}function a(n){return J(n)?(e.enter(`blockQuotePrefixWhitespace`),e.consume(n),e.exit(`blockQuotePrefixWhitespace`),e.exit(`blockQuotePrefix`),t):(e.exit(`blockQuotePrefix`),t(n))}}function js(e,t,n){let r=this;return i;function i(t){return J(t)?Y(e,a,`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(t):a(t)}function a(r){return e.attempt(ks,t,n)(r)}}function Ms(e){e.exit(`blockQuote`)}var Ns={name:`characterEscape`,tokenize:Ps};function Ps(e,t,n){return r;function r(t){return e.enter(`characterEscape`),e.enter(`escapeMarker`),e.consume(t),e.exit(`escapeMarker`),i}function i(r){return ns(r)?(e.enter(`characterEscapeValue`),e.consume(r),e.exit(`characterEscapeValue`),e.exit(`characterEscape`),t):n(r)}}var Fs={name:`characterReference`,tokenize:Is};function Is(e,t,n){let r=this,i=0,a,o;return s;function s(t){return e.enter(`characterReference`),e.enter(`characterReferenceMarker`),e.consume(t),e.exit(`characterReferenceMarker`),c}function c(t){return t===35?(e.enter(`characterReferenceMarkerNumeric`),e.consume(t),e.exit(`characterReferenceMarkerNumeric`),l):(e.enter(`characterReferenceValue`),a=31,o=Zo,u(t))}function l(t){return t===88||t===120?(e.enter(`characterReferenceMarkerHexadecimal`),e.consume(t),e.exit(`characterReferenceMarkerHexadecimal`),e.enter(`characterReferenceValue`),a=6,o=ts,u):(e.enter(`characterReferenceValue`),a=7,o=es,u(t))}function u(s){if(s===59&&i){let i=e.exit(`characterReferenceValue`);return o===Zo&&!Lo(r.sliceSerialize(i))?n(s):(e.enter(`characterReferenceMarker`),e.consume(s),e.exit(`characterReferenceMarker`),e.exit(`characterReference`),t)}return o(s)&&i++<a?(e.consume(s),u):n(s)}}var Ls={partial:!0,tokenize:Bs},Rs={concrete:!0,name:`codeFenced`,tokenize:zs};function zs(e,t,n){let r=this,i={partial:!0,tokenize:x},a=0,o=0,s;return c;function c(e){return l(e)}function l(t){let n=r.events[r.events.length-1];return a=n&&n[1].type===`linePrefix`?n[2].sliceSerialize(n[1],!0).length:0,s=t,e.enter(`codeFenced`),e.enter(`codeFencedFence`),e.enter(`codeFencedFenceSequence`),u(t)}function u(t){return t===s?(o++,e.consume(t),u):o<3?n(t):(e.exit(`codeFencedFenceSequence`),J(t)?Y(e,d,`whitespace`)(t):d(t))}function d(n){return n===null||q(n)?(e.exit(`codeFencedFence`),r.interrupt?t(n):e.check(Ls,h,b)(n)):(e.enter(`codeFencedFenceInfo`),e.enter(`chunkString`,{contentType:`string`}),f(n))}function f(t){return t===null||q(t)?(e.exit(`chunkString`),e.exit(`codeFencedFenceInfo`),d(t)):J(t)?(e.exit(`chunkString`),e.exit(`codeFencedFenceInfo`),Y(e,p,`whitespace`)(t)):t===96&&t===s?n(t):(e.consume(t),f)}function p(t){return t===null||q(t)?d(t):(e.enter(`codeFencedFenceMeta`),e.enter(`chunkString`,{contentType:`string`}),m(t))}function m(t){return t===null||q(t)?(e.exit(`chunkString`),e.exit(`codeFencedFenceMeta`),d(t)):t===96&&t===s?n(t):(e.consume(t),m)}function h(t){return e.attempt(i,b,g)(t)}function g(t){return e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),_}function _(t){return a>0&&J(t)?Y(e,v,`linePrefix`,a+1)(t):v(t)}function v(t){return t===null||q(t)?e.check(Ls,h,b)(t):(e.enter(`codeFlowValue`),y(t))}function y(t){return t===null||q(t)?(e.exit(`codeFlowValue`),v(t)):(e.consume(t),y)}function b(n){return e.exit(`codeFenced`),t(n)}function x(e,t,n){let i=0;return a;function a(t){return e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),c}function c(t){return e.enter(`codeFencedFence`),J(t)?Y(e,l,`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(t):l(t)}function l(t){return t===s?(e.enter(`codeFencedFenceSequence`),u(t)):n(t)}function u(t){return t===s?(i++,e.consume(t),u):i>=o?(e.exit(`codeFencedFenceSequence`),J(t)?Y(e,d,`whitespace`)(t):d(t)):n(t)}function d(r){return r===null||q(r)?(e.exit(`codeFencedFence`),t(r)):n(r)}}}function Bs(e,t,n){let r=this;return i;function i(t){return t===null?n(t):(e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),a)}function a(e){return r.parser.lazy[r.now().line]?n(e):t(e)}}var Vs={name:`codeIndented`,tokenize:Us},Hs={partial:!0,tokenize:Ws};function Us(e,t,n){let r=this;return i;function i(t){return e.enter(`codeIndented`),Y(e,a,`linePrefix`,5)(t)}function a(e){let t=r.events[r.events.length-1];return t&&t[1].type===`linePrefix`&&t[2].sliceSerialize(t[1],!0).length>=4?o(e):n(e)}function o(t){return t===null?c(t):q(t)?e.attempt(Hs,o,c)(t):(e.enter(`codeFlowValue`),s(t))}function s(t){return t===null||q(t)?(e.exit(`codeFlowValue`),o(t)):(e.consume(t),s)}function c(n){return e.exit(`codeIndented`),t(n)}}function Ws(e,t,n){let r=this;return i;function i(t){return r.parser.lazy[r.now().line]?n(t):q(t)?(e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),i):Y(e,a,`linePrefix`,5)(t)}function a(e){let a=r.events[r.events.length-1];return a&&a[1].type===`linePrefix`&&a[2].sliceSerialize(a[1],!0).length>=4?t(e):q(e)?i(e):n(e)}}var Gs={name:`codeText`,previous:qs,resolve:Ks,tokenize:Js};function Ks(e){let t=e.length-4,n=3,r,i;if((e[n][1].type===`lineEnding`||e[n][1].type===`space`)&&(e[t][1].type===`lineEnding`||e[t][1].type===`space`)){for(r=n;++r<t;)if(e[r][1].type===`codeTextData`){e[n][1].type=`codeTextPadding`,e[t][1].type=`codeTextPadding`,n+=2,t-=2;break}}for(r=n-1,t++;++r<=t;)i===void 0?r!==t&&e[r][1].type!==`lineEnding`&&(i=r):(r===t||e[r][1].type===`lineEnding`)&&(e[i][1].type=`codeTextData`,r!==i+2&&(e[i][1].end=e[r-1][1].end,e.splice(i+2,r-i-2),t-=r-i-2,r=i+2),i=void 0);return e}function qs(e){return e!==96||this.events[this.events.length-1][1].type===`characterEscape`}function Js(e,t,n){let r=0,i,a;return o;function o(t){return e.enter(`codeText`),e.enter(`codeTextSequence`),s(t)}function s(t){return t===96?(e.consume(t),r++,s):(e.exit(`codeTextSequence`),c(t))}function c(t){return t===null?n(t):t===32?(e.enter(`space`),e.consume(t),e.exit(`space`),c):t===96?(a=e.enter(`codeTextSequence`),i=0,u(t)):q(t)?(e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),c):(e.enter(`codeTextData`),l(t))}function l(t){return t===null||t===32||t===96||q(t)?(e.exit(`codeTextData`),c(t)):(e.consume(t),l)}function u(n){return n===96?(e.consume(n),i++,u):i===r?(e.exit(`codeTextSequence`),e.exit(`codeText`),t(n)):(a.type=`codeTextData`,l(n))}}var Ys=class{constructor(e){this.left=e?[...e]:[],this.right=[]}get(e){if(e<0||e>=this.left.length+this.right.length)throw RangeError(\"Cannot access index `\"+e+\"` in a splice buffer of size `\"+(this.left.length+this.right.length)+\"`\");return e<this.left.length?this.left[e]:this.right[this.right.length-e+this.left.length-1]}get length(){return this.left.length+this.right.length}shift(){return this.setCursor(0),this.right.pop()}slice(e,t){let n=t??1/0;return n<this.left.length?this.left.slice(e,n):e>this.left.length?this.right.slice(this.right.length-n+this.left.length,this.right.length-e+this.left.length).reverse():this.left.slice(e).concat(this.right.slice(this.right.length-n+this.left.length).reverse())}splice(e,t,n){let r=t||0;this.setCursor(Math.trunc(e));let i=this.right.splice(this.right.length-r,1/0);return n&&Xs(this.left,n),i.reverse()}pop(){return this.setCursor(1/0),this.left.pop()}push(e){this.setCursor(1/0),this.left.push(e)}pushMany(e){this.setCursor(1/0),Xs(this.left,e)}unshift(e){this.setCursor(0),this.right.push(e)}unshiftMany(e){this.setCursor(0),Xs(this.right,e.reverse())}setCursor(e){if(!(e===this.left.length||e>this.left.length&&this.right.length===0||e<0&&this.left.length===0))if(e<this.left.length){let t=this.left.splice(e,1/0);Xs(this.right,t.reverse())}else{let t=this.right.splice(this.left.length+this.right.length-e,1/0);Xs(this.left,t.reverse())}}};function Xs(e,t){let n=0;if(t.length<1e4)e.push(...t);else for(;n<t.length;)e.push(...t.slice(n,n+1e4)),n+=1e4}function Zs(e){let t={},n=-1,r,i,a,o,s,c,l,u=new Ys(e);for(;++n<u.length;){for(;n in t;)n=t[n];if(r=u.get(n),n&&r[1].type===`chunkFlow`&&u.get(n-1)[1].type===`listItemPrefix`&&(c=r[1]._tokenizer.events,a=0,a<c.length&&c[a][1].type===`lineEndingBlank`&&(a+=2),a<c.length&&c[a][1].type===`content`))for(;++a<c.length&&c[a][1].type!==`content`;)c[a][1].type===`chunkText`&&(c[a][1]._isInFirstContentOfListItem=!0,a++);if(r[0]===`enter`)r[1].contentType&&(Object.assign(t,Qs(u,n)),n=t[n],l=!0);else if(r[1]._container){for(a=n,i=void 0;a--;)if(o=u.get(a),o[1].type===`lineEnding`||o[1].type===`lineEndingBlank`)o[0]===`enter`&&(i&&(u.get(i)[1].type=`lineEndingBlank`),o[1].type=`lineEnding`,i=a);else if(!(o[1].type===`linePrefix`||o[1].type===`listItemIndent`))break;i&&(r[1].end={...u.get(i)[1].start},s=u.slice(i,n),s.unshift(r),u.splice(i,n-i+1,s))}}return Ro(e,0,1/0,u.slice(0)),!l}function Qs(e,t){let n=e.get(t)[1],r=e.get(t)[2],i=t-1,a=[],o=n._tokenizer;o||(o=r.parser[n.contentType](n.start),n._contentTypeTextTrailing&&(o._contentTypeTextTrailing=!0));let s=o.events,c=[],l={},u,d,f=-1,p=n,m=0,h=0,g=[h];for(;p;){for(;e.get(++i)[1]!==p;);a.push(i),p._tokenizer||(u=r.sliceStream(p),p.next||u.push(null),d&&o.defineSkip(p.start),p._isInFirstContentOfListItem&&(o._gfmTasklistFirstContentOfListItem=!0),o.write(u),p._isInFirstContentOfListItem&&(o._gfmTasklistFirstContentOfListItem=void 0)),d=p,p=p.next}for(p=n;++f<s.length;)s[f][0]===`exit`&&s[f-1][0]===`enter`&&s[f][1].type===s[f-1][1].type&&s[f][1].start.line!==s[f][1].end.line&&(h=f+1,g.push(h),p._tokenizer=void 0,p.previous=void 0,p=p.next);for(o.events=[],p?(p._tokenizer=void 0,p.previous=void 0):g.pop(),f=g.length;f--;){let t=s.slice(g[f],g[f+1]),n=a.pop();c.push([n,n+t.length-1]),e.splice(n,2,t)}for(c.reverse(),f=-1;++f<c.length;)l[m+c[f][0]]=m+c[f][1],m+=c[f][1]-c[f][0]-1;return l}var $s={resolve:tc,tokenize:nc},ec={partial:!0,tokenize:rc};function tc(e){return Zs(e),e}function nc(e,t){let n;return r;function r(t){return e.enter(`content`),n=e.enter(`chunkContent`,{contentType:`content`}),i(t)}function i(t){return t===null?a(t):q(t)?e.check(ec,o,a)(t):(e.consume(t),i)}function a(n){return e.exit(`chunkContent`),e.exit(`content`),t(n)}function o(t){return e.consume(t),e.exit(`chunkContent`),n.next=e.enter(`chunkContent`,{contentType:`content`,previous:n}),n=n.next,i}}function rc(e,t,n){let r=this;return i;function i(t){return e.exit(`chunkContent`),e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),Y(e,a,`linePrefix`)}function a(i){if(i===null||q(i))return n(i);let a=r.events[r.events.length-1];return!r.parser.constructs.disable.null.includes(`codeIndented`)&&a&&a[1].type===`linePrefix`&&a[2].sliceSerialize(a[1],!0).length>=4?t(i):e.interrupt(r.parser.constructs.flow,n,t)(i)}}function ic(e,t,n,r,i,a,o,s,c){let l=c||1/0,u=0;return d;function d(t){return t===60?(e.enter(r),e.enter(i),e.enter(a),e.consume(t),e.exit(a),f):t===null||t===32||t===41||$o(t)?n(t):(e.enter(r),e.enter(o),e.enter(s),e.enter(`chunkString`,{contentType:`string`}),h(t))}function f(n){return n===62?(e.enter(a),e.consume(n),e.exit(a),e.exit(i),e.exit(r),t):(e.enter(s),e.enter(`chunkString`,{contentType:`string`}),p(n))}function p(t){return t===62?(e.exit(`chunkString`),e.exit(s),f(t)):t===null||t===60||q(t)?n(t):(e.consume(t),t===92?m:p)}function m(t){return t===60||t===62||t===92?(e.consume(t),p):p(t)}function h(i){return!u&&(i===null||i===41||rs(i))?(e.exit(`chunkString`),e.exit(s),e.exit(o),e.exit(r),t(i)):u<l&&i===40?(e.consume(i),u++,h):i===41?(e.consume(i),u--,h):i===null||i===32||i===40||$o(i)?n(i):(e.consume(i),i===92?g:h)}function g(t){return t===40||t===41||t===92?(e.consume(t),h):h(t)}}function ac(e,t,n,r,i,a){let o=this,s=0,c;return l;function l(t){return e.enter(r),e.enter(i),e.consume(t),e.exit(i),e.enter(a),u}function u(l){return s>999||l===null||l===91||l===93&&!c||l===94&&!s&&`_hiddenFootnoteSupport`in o.parser.constructs?n(l):l===93?(e.exit(a),e.enter(i),e.consume(l),e.exit(i),e.exit(r),t):q(l)?(e.enter(`lineEnding`),e.consume(l),e.exit(`lineEnding`),u):(e.enter(`chunkString`,{contentType:`string`}),d(l))}function d(t){return t===null||t===91||t===93||q(t)||s++>999?(e.exit(`chunkString`),u(t)):(e.consume(t),c||(c=!J(t)),t===92?f:d)}function f(t){return t===91||t===92||t===93?(e.consume(t),s++,d):d(t)}}function oc(e,t,n,r,i,a){let o;return s;function s(t){return t===34||t===39||t===40?(e.enter(r),e.enter(i),e.consume(t),e.exit(i),o=t===40?41:t,c):n(t)}function c(n){return n===o?(e.enter(i),e.consume(n),e.exit(i),e.exit(r),t):(e.enter(a),l(n))}function l(t){return t===o?(e.exit(a),c(o)):t===null?n(t):q(t)?(e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),Y(e,l,`linePrefix`)):(e.enter(`chunkString`,{contentType:`string`}),u(t))}function u(t){return t===o||t===null||q(t)?(e.exit(`chunkString`),l(t)):(e.consume(t),t===92?d:u)}function d(t){return t===o||t===92?(e.consume(t),u):u(t)}}function sc(e,t){let n;return r;function r(i){return q(i)?(e.enter(`lineEnding`),e.consume(i),e.exit(`lineEnding`),n=!0,r):J(i)?Y(e,r,n?`linePrefix`:`lineSuffix`)(i):t(i)}}var cc={name:`definition`,tokenize:uc},lc={partial:!0,tokenize:dc};function uc(e,t,n){let r=this,i;return a;function a(t){return e.enter(`definition`),o(t)}function o(t){return ac.call(r,e,s,n,`definitionLabel`,`definitionLabelMarker`,`definitionLabelString`)(t)}function s(t){return i=Yo(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),t===58?(e.enter(`definitionMarker`),e.consume(t),e.exit(`definitionMarker`),c):n(t)}function c(t){return rs(t)?sc(e,l)(t):l(t)}function l(t){return ic(e,u,n,`definitionDestination`,`definitionDestinationLiteral`,`definitionDestinationLiteralMarker`,`definitionDestinationRaw`,`definitionDestinationString`)(t)}function u(t){return e.attempt(lc,d,d)(t)}function d(t){return J(t)?Y(e,f,`whitespace`)(t):f(t)}function f(a){return a===null||q(a)?(e.exit(`definition`),r.parser.defined.push(i),t(a)):n(a)}}function dc(e,t,n){return r;function r(t){return rs(t)?sc(e,i)(t):n(t)}function i(t){return oc(e,a,n,`definitionTitle`,`definitionTitleMarker`,`definitionTitleString`)(t)}function a(t){return J(t)?Y(e,o,`whitespace`)(t):o(t)}function o(e){return e===null||q(e)?t(e):n(e)}}var fc={name:`hardBreakEscape`,tokenize:pc};function pc(e,t,n){return r;function r(t){return e.enter(`hardBreakEscape`),e.consume(t),i}function i(r){return q(r)?(e.exit(`hardBreakEscape`),t(r)):n(r)}}var mc={name:`headingAtx`,resolve:hc,tokenize:gc};function hc(e,t){let n=e.length-2,r=3,i,a;return e[r][1].type===`whitespace`&&(r+=2),n-2>r&&e[n][1].type===`whitespace`&&(n-=2),e[n][1].type===`atxHeadingSequence`&&(r===n-1||n-4>r&&e[n-2][1].type===`whitespace`)&&(n-=r+1===n?2:4),n>r&&(i={type:`atxHeadingText`,start:e[r][1].start,end:e[n][1].end},a={type:`chunkText`,start:e[r][1].start,end:e[n][1].end,contentType:`text`},Ro(e,r,n-r+1,[[`enter`,i,t],[`enter`,a,t],[`exit`,a,t],[`exit`,i,t]])),e}function gc(e,t,n){let r=0;return i;function i(t){return e.enter(`atxHeading`),a(t)}function a(t){return e.enter(`atxHeadingSequence`),o(t)}function o(t){return t===35&&r++<6?(e.consume(t),o):t===null||rs(t)?(e.exit(`atxHeadingSequence`),s(t)):n(t)}function s(n){return n===35?(e.enter(`atxHeadingSequence`),c(n)):n===null||q(n)?(e.exit(`atxHeading`),t(n)):J(n)?Y(e,s,`whitespace`)(n):(e.enter(`atxHeadingText`),l(n))}function c(t){return t===35?(e.consume(t),c):(e.exit(`atxHeadingSequence`),s(t))}function l(t){return t===null||t===35||rs(t)?(e.exit(`atxHeadingText`),s(t)):(e.consume(t),l)}}var _c=`address.article.aside.base.basefont.blockquote.body.caption.center.col.colgroup.dd.details.dialog.dir.div.dl.dt.fieldset.figcaption.figure.footer.form.frame.frameset.h1.h2.h3.h4.h5.h6.head.header.hr.html.iframe.legend.li.link.main.menu.menuitem.nav.noframes.ol.optgroup.option.p.param.search.section.summary.table.tbody.td.tfoot.th.thead.title.tr.track.ul`.split(`.`),vc=[`pre`,`script`,`style`,`textarea`],yc={concrete:!0,name:`htmlFlow`,resolveTo:Sc,tokenize:Cc},bc={partial:!0,tokenize:Tc},xc={partial:!0,tokenize:wc};function Sc(e){let t=e.length;for(;t--&&!(e[t][0]===`enter`&&e[t][1].type===`htmlFlow`););return t>1&&e[t-2][1].type===`linePrefix`&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e}function Cc(e,t,n){let r=this,i,a,o,s,c;return l;function l(e){return u(e)}function u(t){return e.enter(`htmlFlow`),e.enter(`htmlFlowData`),e.consume(t),d}function d(s){return s===33?(e.consume(s),f):s===47?(e.consume(s),a=!0,h):s===63?(e.consume(s),i=3,r.interrupt?t:re):Xo(s)?(e.consume(s),o=String.fromCharCode(s),g):n(s)}function f(a){return a===45?(e.consume(a),i=2,p):a===91?(e.consume(a),i=5,s=0,m):Xo(a)?(e.consume(a),i=4,r.interrupt?t:re):n(a)}function p(i){return i===45?(e.consume(i),r.interrupt?t:re):n(i)}function m(i){return i===`CDATA[`.charCodeAt(s++)?(e.consume(i),s===6?r.interrupt?t:O:m):n(i)}function h(t){return Xo(t)?(e.consume(t),o=String.fromCharCode(t),g):n(t)}function g(s){if(s===null||s===47||s===62||rs(s)){let c=s===47,l=o.toLowerCase();return!c&&!a&&vc.includes(l)?(i=1,r.interrupt?t(s):O(s)):_c.includes(o.toLowerCase())?(i=6,c?(e.consume(s),_):r.interrupt?t(s):O(s)):(i=7,r.interrupt&&!r.parser.lazy[r.now().line]?n(s):a?v(s):y(s))}return s===45||Zo(s)?(e.consume(s),o+=String.fromCharCode(s),g):n(s)}function _(i){return i===62?(e.consume(i),r.interrupt?t:O):n(i)}function v(t){return J(t)?(e.consume(t),v):E(t)}function y(t){return t===47?(e.consume(t),E):t===58||t===95||Xo(t)?(e.consume(t),b):J(t)?(e.consume(t),y):E(t)}function b(t){return t===45||t===46||t===58||t===95||Zo(t)?(e.consume(t),b):x(t)}function x(t){return t===61?(e.consume(t),S):J(t)?(e.consume(t),x):y(t)}function S(t){return t===null||t===60||t===61||t===62||t===96?n(t):t===34||t===39?(e.consume(t),c=t,C):J(t)?(e.consume(t),S):w(t)}function C(t){return t===c?(e.consume(t),c=null,T):t===null||q(t)?n(t):(e.consume(t),C)}function w(t){return t===null||t===34||t===39||t===47||t===60||t===61||t===62||t===96||rs(t)?x(t):(e.consume(t),w)}function T(e){return e===47||e===62||J(e)?y(e):n(e)}function E(t){return t===62?(e.consume(t),D):n(t)}function D(t){return t===null||q(t)?O(t):J(t)?(e.consume(t),D):n(t)}function O(t){return t===45&&i===2?(e.consume(t),j):t===60&&i===1?(e.consume(t),M):t===62&&i===4?(e.consume(t),ie):t===63&&i===3?(e.consume(t),re):t===93&&i===5?(e.consume(t),ne):q(t)&&(i===6||i===7)?(e.exit(`htmlFlowData`),e.check(bc,ae,k)(t)):t===null||q(t)?(e.exit(`htmlFlowData`),k(t)):(e.consume(t),O)}function k(t){return e.check(xc,ee,ae)(t)}function ee(t){return e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),A}function A(t){return t===null||q(t)?k(t):(e.enter(`htmlFlowData`),O(t))}function j(t){return t===45?(e.consume(t),re):O(t)}function M(t){return t===47?(e.consume(t),o=``,te):O(t)}function te(t){if(t===62){let n=o.toLowerCase();return vc.includes(n)?(e.consume(t),ie):O(t)}return Xo(t)&&o.length<8?(e.consume(t),o+=String.fromCharCode(t),te):O(t)}function ne(t){return t===93?(e.consume(t),re):O(t)}function re(t){return t===62?(e.consume(t),ie):t===45&&i===2?(e.consume(t),re):O(t)}function ie(t){return t===null||q(t)?(e.exit(`htmlFlowData`),ae(t)):(e.consume(t),ie)}function ae(n){return e.exit(`htmlFlow`),t(n)}}function wc(e,t,n){let r=this;return i;function i(t){return q(t)?(e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),a):n(t)}function a(e){return r.parser.lazy[r.now().line]?n(e):t(e)}}function Tc(e,t,n){return r;function r(r){return e.enter(`lineEnding`),e.consume(r),e.exit(`lineEnding`),e.attempt(Ds,t,n)}}var Ec={name:`htmlText`,tokenize:Dc};function Dc(e,t,n){let r=this,i,a,o;return s;function s(t){return e.enter(`htmlText`),e.enter(`htmlTextData`),e.consume(t),c}function c(t){return t===33?(e.consume(t),l):t===47?(e.consume(t),x):t===63?(e.consume(t),y):Xo(t)?(e.consume(t),w):n(t)}function l(t){return t===45?(e.consume(t),u):t===91?(e.consume(t),a=0,m):Xo(t)?(e.consume(t),v):n(t)}function u(t){return t===45?(e.consume(t),p):n(t)}function d(t){return t===null?n(t):t===45?(e.consume(t),f):q(t)?(o=d,M(t)):(e.consume(t),d)}function f(t){return t===45?(e.consume(t),p):d(t)}function p(e){return e===62?j(e):e===45?f(e):d(e)}function m(t){return t===`CDATA[`.charCodeAt(a++)?(e.consume(t),a===6?h:m):n(t)}function h(t){return t===null?n(t):t===93?(e.consume(t),g):q(t)?(o=h,M(t)):(e.consume(t),h)}function g(t){return t===93?(e.consume(t),_):h(t)}function _(t){return t===62?j(t):t===93?(e.consume(t),_):h(t)}function v(t){return t===null||t===62?j(t):q(t)?(o=v,M(t)):(e.consume(t),v)}function y(t){return t===null?n(t):t===63?(e.consume(t),b):q(t)?(o=y,M(t)):(e.consume(t),y)}function b(e){return e===62?j(e):y(e)}function x(t){return Xo(t)?(e.consume(t),S):n(t)}function S(t){return t===45||Zo(t)?(e.consume(t),S):C(t)}function C(t){return q(t)?(o=C,M(t)):J(t)?(e.consume(t),C):j(t)}function w(t){return t===45||Zo(t)?(e.consume(t),w):t===47||t===62||rs(t)?T(t):n(t)}function T(t){return t===47?(e.consume(t),j):t===58||t===95||Xo(t)?(e.consume(t),E):q(t)?(o=T,M(t)):J(t)?(e.consume(t),T):j(t)}function E(t){return t===45||t===46||t===58||t===95||Zo(t)?(e.consume(t),E):D(t)}function D(t){return t===61?(e.consume(t),O):q(t)?(o=D,M(t)):J(t)?(e.consume(t),D):T(t)}function O(t){return t===null||t===60||t===61||t===62||t===96?n(t):t===34||t===39?(e.consume(t),i=t,k):q(t)?(o=O,M(t)):J(t)?(e.consume(t),O):(e.consume(t),ee)}function k(t){return t===i?(e.consume(t),i=void 0,A):t===null?n(t):q(t)?(o=k,M(t)):(e.consume(t),k)}function ee(t){return t===null||t===34||t===39||t===60||t===61||t===96?n(t):t===47||t===62||rs(t)?T(t):(e.consume(t),ee)}function A(e){return e===47||e===62||rs(e)?T(e):n(e)}function j(r){return r===62?(e.consume(r),e.exit(`htmlTextData`),e.exit(`htmlText`),t):n(r)}function M(t){return e.exit(`htmlTextData`),e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),te}function te(t){return J(t)?Y(e,ne,`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(t):ne(t)}function ne(t){return e.enter(`htmlTextData`),o(t)}}var Oc={name:`labelEnd`,resolveAll:Mc,resolveTo:Nc,tokenize:Pc},kc={tokenize:Fc},Ac={tokenize:Ic},jc={tokenize:Lc};function Mc(e){let t=-1,n=[];for(;++t<e.length;){let r=e[t][1];if(n.push(e[t]),r.type===`labelImage`||r.type===`labelLink`||r.type===`labelEnd`){let e=r.type===`labelImage`?4:2;r.type=`data`,t+=e}}return e.length!==n.length&&Ro(e,0,e.length,n),e}function Nc(e,t){let n=e.length,r=0,i,a,o,s;for(;n--;)if(i=e[n][1],a){if(i.type===`link`||i.type===`labelLink`&&i._inactive)break;e[n][0]===`enter`&&i.type===`labelLink`&&(i._inactive=!0)}else if(o){if(e[n][0]===`enter`&&(i.type===`labelImage`||i.type===`labelLink`)&&!i._balanced&&(a=n,i.type!==`labelLink`)){r=2;break}}else i.type===`labelEnd`&&(o=n);let c={type:e[a][1].type===`labelLink`?`link`:`image`,start:{...e[a][1].start},end:{...e[e.length-1][1].end}},l={type:`label`,start:{...e[a][1].start},end:{...e[o][1].end}},u={type:`labelText`,start:{...e[a+r+2][1].end},end:{...e[o-2][1].start}};return s=[[`enter`,c,t],[`enter`,l,t]],s=zo(s,e.slice(a+1,a+r+3)),s=zo(s,[[`enter`,u,t]]),s=zo(s,bs(t.parser.constructs.insideSpan.null,e.slice(a+r+4,o-3),t)),s=zo(s,[[`exit`,u,t],e[o-2],e[o-1],[`exit`,l,t]]),s=zo(s,e.slice(o+1)),s=zo(s,[[`exit`,c,t]]),Ro(e,a,e.length,s),e}function Pc(e,t,n){let r=this,i=r.events.length,a,o;for(;i--;)if((r.events[i][1].type===`labelImage`||r.events[i][1].type===`labelLink`)&&!r.events[i][1]._balanced){a=r.events[i][1];break}return s;function s(t){return a?a._inactive?d(t):(o=r.parser.defined.includes(Yo(r.sliceSerialize({start:a.end,end:r.now()}))),e.enter(`labelEnd`),e.enter(`labelMarker`),e.consume(t),e.exit(`labelMarker`),e.exit(`labelEnd`),c):n(t)}function c(t){return t===40?e.attempt(kc,u,o?u:d)(t):t===91?e.attempt(Ac,u,o?l:d)(t):o?u(t):d(t)}function l(t){return e.attempt(jc,u,d)(t)}function u(e){return t(e)}function d(e){return a._balanced=!0,n(e)}}function Fc(e,t,n){return r;function r(t){return e.enter(`resource`),e.enter(`resourceMarker`),e.consume(t),e.exit(`resourceMarker`),i}function i(t){return rs(t)?sc(e,a)(t):a(t)}function a(t){return t===41?u(t):ic(e,o,s,`resourceDestination`,`resourceDestinationLiteral`,`resourceDestinationLiteralMarker`,`resourceDestinationRaw`,`resourceDestinationString`,32)(t)}function o(t){return rs(t)?sc(e,c)(t):u(t)}function s(e){return n(e)}function c(t){return t===34||t===39||t===40?oc(e,l,n,`resourceTitle`,`resourceTitleMarker`,`resourceTitleString`)(t):u(t)}function l(t){return rs(t)?sc(e,u)(t):u(t)}function u(r){return r===41?(e.enter(`resourceMarker`),e.consume(r),e.exit(`resourceMarker`),e.exit(`resource`),t):n(r)}}function Ic(e,t,n){let r=this;return i;function i(t){return ac.call(r,e,a,o,`reference`,`referenceMarker`,`referenceString`)(t)}function a(e){return r.parser.defined.includes(Yo(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)))?t(e):n(e)}function o(e){return n(e)}}function Lc(e,t,n){return r;function r(t){return e.enter(`reference`),e.enter(`referenceMarker`),e.consume(t),e.exit(`referenceMarker`),i}function i(r){return r===93?(e.enter(`referenceMarker`),e.consume(r),e.exit(`referenceMarker`),e.exit(`reference`),t):n(r)}}var Rc={name:`labelStartImage`,resolveAll:Oc.resolveAll,tokenize:zc};function zc(e,t,n){let r=this;return i;function i(t){return e.enter(`labelImage`),e.enter(`labelImageMarker`),e.consume(t),e.exit(`labelImageMarker`),a}function a(t){return t===91?(e.enter(`labelMarker`),e.consume(t),e.exit(`labelMarker`),e.exit(`labelImage`),o):n(t)}function o(e){return e===94&&`_hiddenFootnoteSupport`in r.parser.constructs?n(e):t(e)}}var Bc={name:`labelStartLink`,resolveAll:Oc.resolveAll,tokenize:Vc};function Vc(e,t,n){let r=this;return i;function i(t){return e.enter(`labelLink`),e.enter(`labelMarker`),e.consume(t),e.exit(`labelMarker`),e.exit(`labelLink`),a}function a(e){return e===94&&`_hiddenFootnoteSupport`in r.parser.constructs?n(e):t(e)}}var Hc={name:`lineEnding`,tokenize:Uc};function Uc(e,t){return n;function n(n){return e.enter(`lineEnding`),e.consume(n),e.exit(`lineEnding`),Y(e,t,`linePrefix`)}}var Wc={name:`thematicBreak`,tokenize:Gc};function Gc(e,t,n){let r=0,i;return a;function a(t){return e.enter(`thematicBreak`),o(t)}function o(e){return i=e,s(e)}function s(a){return a===i?(e.enter(`thematicBreakSequence`),c(a)):r>=3&&(a===null||q(a))?(e.exit(`thematicBreak`),t(a)):n(a)}function c(t){return t===i?(e.consume(t),r++,c):(e.exit(`thematicBreakSequence`),J(t)?Y(e,s,`whitespace`)(t):s(t))}}var Kc={continuation:{tokenize:Xc},exit:Qc,name:`list`,tokenize:Yc},qc={partial:!0,tokenize:$c},Jc={partial:!0,tokenize:Zc};function Yc(e,t,n){let r=this,i=r.events[r.events.length-1],a=i&&i[1].type===`linePrefix`?i[2].sliceSerialize(i[1],!0).length:0,o=0;return s;function s(t){let i=r.containerState.type||(t===42||t===43||t===45?`listUnordered`:`listOrdered`);if(i===`listUnordered`?!r.containerState.marker||t===r.containerState.marker:es(t)){if(r.containerState.type||(r.containerState.type=i,e.enter(i,{_container:!0})),i===`listUnordered`)return e.enter(`listItemPrefix`),t===42||t===45?e.check(Wc,n,l)(t):l(t);if(!r.interrupt||t===49)return e.enter(`listItemPrefix`),e.enter(`listItemValue`),c(t)}return n(t)}function c(t){return es(t)&&++o<10?(e.consume(t),c):(!r.interrupt||o<2)&&(r.containerState.marker?t===r.containerState.marker:t===41||t===46)?(e.exit(`listItemValue`),l(t)):n(t)}function l(t){return e.enter(`listItemMarker`),e.consume(t),e.exit(`listItemMarker`),r.containerState.marker=r.containerState.marker||t,e.check(Ds,r.interrupt?n:u,e.attempt(qc,f,d))}function u(e){return r.containerState.initialBlankLine=!0,a++,f(e)}function d(t){return J(t)?(e.enter(`listItemPrefixWhitespace`),e.consume(t),e.exit(`listItemPrefixWhitespace`),f):n(t)}function f(n){return r.containerState.size=a+r.sliceSerialize(e.exit(`listItemPrefix`),!0).length,t(n)}}function Xc(e,t,n){let r=this;return r.containerState._closeFlow=void 0,e.check(Ds,i,a);function i(n){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,Y(e,t,`listItemIndent`,r.containerState.size+1)(n)}function a(n){return r.containerState.furtherBlankLines||!J(n)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,o(n)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(Jc,t,o)(n))}function o(i){return r.containerState._closeFlow=!0,r.interrupt=void 0,Y(e,e.attempt(Kc,t,n),`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(i)}}function Zc(e,t,n){let r=this;return Y(e,i,`listItemIndent`,r.containerState.size+1);function i(e){let i=r.events[r.events.length-1];return i&&i[1].type===`listItemIndent`&&i[2].sliceSerialize(i[1],!0).length===r.containerState.size?t(e):n(e)}}function Qc(e){e.exit(this.containerState.type)}function $c(e,t,n){let r=this;return Y(e,i,`listItemPrefixWhitespace`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:5);function i(e){let i=r.events[r.events.length-1];return!J(e)&&i&&i[1].type===`listItemPrefixWhitespace`?t(e):n(e)}}var el={name:`setextUnderline`,resolveTo:tl,tokenize:nl};function tl(e,t){let n=e.length,r,i,a;for(;n--;)if(e[n][0]===`enter`){if(e[n][1].type===`content`){r=n;break}e[n][1].type===`paragraph`&&(i=n)}else e[n][1].type===`content`&&e.splice(n,1),!a&&e[n][1].type===`definition`&&(a=n);let o={type:`setextHeading`,start:{...e[r][1].start},end:{...e[e.length-1][1].end}};return e[i][1].type=`setextHeadingText`,a?(e.splice(i,0,[`enter`,o,t]),e.splice(a+1,0,[`exit`,e[r][1],t]),e[r][1].end={...e[a][1].end}):e[r][1]=o,e.push([`exit`,o,t]),e}function nl(e,t,n){let r=this,i;return a;function a(t){let a=r.events.length,s;for(;a--;)if(r.events[a][1].type!==`lineEnding`&&r.events[a][1].type!==`linePrefix`&&r.events[a][1].type!==`content`){s=r.events[a][1].type===`paragraph`;break}return!r.parser.lazy[r.now().line]&&(r.interrupt||s)?(e.enter(`setextHeadingLine`),i=t,o(t)):n(t)}function o(t){return e.enter(`setextHeadingLineSequence`),s(t)}function s(t){return t===i?(e.consume(t),s):(e.exit(`setextHeadingLineSequence`),J(t)?Y(e,c,`lineSuffix`)(t):c(t))}function c(r){return r===null||q(r)?(e.exit(`setextHeadingLine`),t(r)):n(r)}}var rl={tokenize:il};function il(e){let t=this,n=e.attempt(Ds,r,e.attempt(this.parser.constructs.flowInitial,i,Y(e,e.attempt(this.parser.constructs.flow,i,e.attempt($s,i)),`linePrefix`)));return n;function r(r){if(r===null){e.consume(r);return}return e.enter(`lineEndingBlank`),e.consume(r),e.exit(`lineEndingBlank`),t.currentConstruct=void 0,n}function i(r){if(r===null){e.consume(r);return}return e.enter(`lineEnding`),e.consume(r),e.exit(`lineEnding`),t.currentConstruct=void 0,n}}var al={resolveAll:ll()},ol=cl(`string`),sl=cl(`text`);function cl(e){return{resolveAll:ll(e===`text`?ul:void 0),tokenize:t};function t(t){let n=this,r=this.parser.constructs[e],i=t.attempt(r,a,o);return a;function a(e){return c(e)?i(e):o(e)}function o(e){if(e===null){t.consume(e);return}return t.enter(`data`),t.consume(e),s}function s(e){return c(e)?(t.exit(`data`),i(e)):(t.consume(e),s)}function c(e){if(e===null)return!0;let t=r[e],i=-1;if(t)for(;++i<t.length;){let e=t[i];if(!e.previous||e.previous.call(n,n.previous))return!0}return!1}}}function ll(e){return t;function t(t,n){let r=-1,i;for(;++r<=t.length;)i===void 0?t[r]&&t[r][1].type===`data`&&(i=r,r++):(!t[r]||t[r][1].type!==`data`)&&(r!==i+2&&(t[i][1].end=t[r-1][1].end,t.splice(i+2,r-i-2),r=i+2),i=void 0);return e?e(t,n):t}}function ul(e,t){let n=0;for(;++n<=e.length;)if((n===e.length||e[n][1].type===`lineEnding`)&&e[n-1][1].type===`data`){let r=e[n-1][1],i=t.sliceStream(r),a=i.length,o=-1,s=0,c;for(;a--;){let e=i[a];if(typeof e==`string`){for(o=e.length;e.charCodeAt(o-1)===32;)s++,o--;if(o)break;o=-1}else if(e===-2)c=!0,s++;else if(e!==-1){a++;break}}if(t._contentTypeTextTrailing&&n===e.length&&(s=0),s){let i={type:n===e.length||c||s<2?`lineSuffix`:`hardBreakTrailing`,start:{_bufferIndex:a?o:r.start._bufferIndex+o,_index:r.start._index+a,line:r.end.line,column:r.end.column-s,offset:r.end.offset-s},end:{...r.end}};r.end={...i.start},r.start.offset===r.end.offset?Object.assign(r,i):(e.splice(n,0,[`enter`,i,t],[`exit`,i,t]),n+=2)}n++}return e}var dl=t({attentionMarkers:()=>yl,contentInitial:()=>pl,disable:()=>bl,document:()=>fl,flow:()=>hl,flowInitial:()=>ml,insideSpan:()=>vl,string:()=>gl,text:()=>_l}),fl={42:Kc,43:Kc,45:Kc,48:Kc,49:Kc,50:Kc,51:Kc,52:Kc,53:Kc,54:Kc,55:Kc,56:Kc,57:Kc,62:ks},pl={91:cc},ml={[-2]:Vs,[-1]:Vs,32:Vs},hl={35:mc,42:Wc,45:[el,Wc],60:yc,61:el,95:Wc,96:Rs,126:Rs},gl={38:Fs,92:Ns},_l={[-5]:Hc,[-4]:Hc,[-3]:Hc,33:Rc,38:Fs,42:xs,60:[Ts,Ec],91:Bc,92:[fc,Ns],93:Oc,95:xs,96:Gs},vl={null:[xs,al]},yl={null:[42,95]},bl={null:[]};function xl(e,t,n){let r={_bufferIndex:-1,_index:0,line:n&&n.line||1,column:n&&n.column||1,offset:n&&n.offset||0},i={},a=[],o=[],s=[],c={attempt:C(x),check:C(S),consume:v,enter:y,exit:b,interrupt:C(S,{interrupt:!0})},l={code:null,containerState:{},defineSkip:h,events:[],now:m,parser:e,previous:null,sliceSerialize:f,sliceStream:p,write:d},u=t.tokenize.call(l,c);return t.resolveAll&&a.push(t),l;function d(e){return o=zo(o,e),g(),o[o.length-1]===null?(w(t,0),l.events=bs(a,l.events,l),l.events):[]}function f(e,t){return Cl(p(e),t)}function p(e){return Sl(o,e)}function m(){let{_bufferIndex:e,_index:t,line:n,column:i,offset:a}=r;return{_bufferIndex:e,_index:t,line:n,column:i,offset:a}}function h(e){i[e.line]=e.column,E()}function g(){let e;for(;r._index<o.length;){let t=o[r._index];if(typeof t==`string`)for(e=r._index,r._bufferIndex<0&&(r._bufferIndex=0);r._index===e&&r._bufferIndex<t.length;)_(t.charCodeAt(r._bufferIndex));else _(t)}}function _(e){u=u(e)}function v(e){q(e)?(r.line++,r.column=1,r.offset+=e===-3?2:1,E()):e!==-1&&(r.column++,r.offset++),r._bufferIndex<0?r._index++:(r._bufferIndex++,r._bufferIndex===o[r._index].length&&(r._bufferIndex=-1,r._index++)),l.previous=e}function y(e,t){let n=t||{};return n.type=e,n.start=m(),l.events.push([`enter`,n,l]),s.push(n),n}function b(e){let t=s.pop();return t.end=m(),l.events.push([`exit`,t,l]),t}function x(e,t){w(e,t.from)}function S(e,t){t.restore()}function C(e,t){return n;function n(n,r,i){let a,o,s,u;return Array.isArray(n)?f(n):`tokenize`in n?f([n]):d(n);function d(e){return t;function t(t){let n=t!==null&&e[t],r=t!==null&&e.null;return f([...Array.isArray(n)?n:n?[n]:[],...Array.isArray(r)?r:r?[r]:[]])(t)}}function f(e){return a=e,o=0,e.length===0?i:p(e[o])}function p(e){return n;function n(n){return u=T(),s=e,e.partial||(l.currentConstruct=e),e.name&&l.parser.constructs.disable.null.includes(e.name)?h(n):e.tokenize.call(t?Object.assign(Object.create(l),t):l,c,m,h)(n)}}function m(t){return e(s,u),r}function h(e){return u.restore(),++o<a.length?p(a[o]):i}}}function w(e,t){e.resolveAll&&!a.includes(e)&&a.push(e),e.resolve&&Ro(l.events,t,l.events.length-t,e.resolve(l.events.slice(t),l)),e.resolveTo&&(l.events=e.resolveTo(l.events,l))}function T(){let e=m(),t=l.previous,n=l.currentConstruct,i=l.events.length,a=Array.from(s);return{from:i,restore:o};function o(){r=e,l.previous=t,l.currentConstruct=n,l.events.length=i,s=a,E()}}function E(){r.line in i&&r.column<2&&(r.column=i[r.line],r.offset+=i[r.line]-1)}}function Sl(e,t){let n=t.start._index,r=t.start._bufferIndex,i=t.end._index,a=t.end._bufferIndex,o;if(n===i)o=[e[n].slice(r,a)];else{if(o=e.slice(n,i),r>-1){let e=o[0];typeof e==`string`?o[0]=e.slice(r):o.shift()}a>0&&o.push(e[i].slice(0,a))}return o}function Cl(e,t){let n=-1,r=[],i;for(;++n<e.length;){let a=e[n],o;if(typeof a==`string`)o=a;else switch(a){case-5:o=`\\r`;break;case-4:o=`\n`;break;case-3:o=`\\r\n`;break;case-2:o=t?` `:`\t`;break;case-1:if(!t&&i)continue;o=` `;break;default:o=String.fromCharCode(a)}i=a===-2,r.push(o)}return r.join(``)}function wl(e){let t={constructs:Vo([dl,...(e||{}).extensions||[]]),content:n(ps),defined:[],document:n(hs),flow:n(rl),lazy:{},string:n(ol),text:n(sl)};return t;function n(e){return n;function n(n){return xl(t,e,n)}}}function Tl(e){for(;!Zs(e););return e}var El=/[\\0\\t\\n\\r]/g;function Dl(){let e=1,t=``,n=!0,r;return i;function i(i,a,o){let s=[],c,l,u,d,f;for(i=t+(typeof i==`string`?i.toString():new TextDecoder(a||void 0).decode(i)),u=0,t=``,n&&(i.charCodeAt(0)===65279&&u++,n=void 0);u<i.length;){if(El.lastIndex=u,c=El.exec(i),d=c&&c.index!==void 0?c.index:i.length,f=i.charCodeAt(d),!c){t=i.slice(u);break}if(f===10&&u===d&&r)s.push(-3),r=void 0;else switch(r&&(s.push(-5),r=void 0),u<d&&(s.push(i.slice(u,d)),e+=d-u),f){case 0:s.push(65533),e++;break;case 9:for(l=Math.ceil(e/4)*4,s.push(-2);e++<l;)s.push(-1);break;case 10:s.push(-4),e=1;break;default:r=!0,e=1}u=d+1}return o&&(r&&s.push(-5),t&&s.push(t),s.push(null)),s}}function Ol(e,t,n){return typeof t!=`string`&&(n=t,t=void 0),fs(n)(Tl(wl(n).document().write(Dl()(e,t,!0))))}var kl={none:``,left:` align=\"left\"`,right:` align=\"right\"`,center:` align=\"center\"`};function Al(){return{enter:{table(e){let t=e._align;this.lineEndingIfNeeded(),this.tag(`<table>`),this.setData(`tableAlign`,t)},tableBody(){this.tag(`<tbody>`)},tableData(){let e=kl[this.getData(`tableAlign`)[this.getData(`tableColumn`)]];e===void 0?this.buffer():(this.lineEndingIfNeeded(),this.tag(`<td`+e+`>`))},tableHead(){this.lineEndingIfNeeded(),this.tag(`<thead>`)},tableHeader(){let e=kl[this.getData(`tableAlign`)[this.getData(`tableColumn`)]];this.lineEndingIfNeeded(),this.tag(`<th`+e+`>`)},tableRow(){this.setData(`tableColumn`,0),this.lineEndingIfNeeded(),this.tag(`<tr>`)}},exit:{codeTextData(e){let t=this.sliceSerialize(e);this.getData(`tableAlign`)&&(t=t.replace(/\\\\([\\\\|])/g,jl)),this.raw(this.encode(t))},table(){this.setData(`tableAlign`),this.setData(`slurpAllLineEndings`),this.lineEndingIfNeeded(),this.tag(`</table>`)},tableBody(){this.lineEndingIfNeeded(),this.tag(`</tbody>`)},tableData(){let e=this.getData(`tableAlign`),t=this.getData(`tableColumn`);t in e?(this.tag(`</td>`),this.setData(`tableColumn`,t+1)):this.resume()},tableHead(){this.lineEndingIfNeeded(),this.tag(`</thead>`)},tableHeader(){let e=this.getData(`tableColumn`);this.tag(`</th>`),this.setData(`tableColumn`,e+1)},tableRow(){let e=this.getData(`tableAlign`),t=this.getData(`tableColumn`);for(;t<e.length;)this.lineEndingIfNeeded(),this.tag(`<td`+kl[e[t]]+`></td>`),t++;this.setData(`tableColumn`,t),this.lineEndingIfNeeded(),this.tag(`</tr>`)}}}}function jl(e,t){return t===`|`?t:e}var Ml=class{constructor(){this.map=[]}add(e,t,n){Nl(this,e,t,n)}consume(e){if(this.map.sort(function(e,t){return e[0]-t[0]}),this.map.length===0)return;let t=this.map.length,n=[];for(;t>0;)--t,n.push(e.slice(this.map[t][0]+this.map[t][1]),this.map[t][2]),e.length=this.map[t][0];n.push(e.slice()),e.length=0;let r=n.pop();for(;r;){for(let t of r)e.push(t);r=n.pop()}this.map.length=0}};function Nl(e,t,n,r){let i=0;if(!(n===0&&r.length===0)){for(;i<e.map.length;){if(e.map[i][0]===t){e.map[i][1]+=n,e.map[i][2].push(...r);return}i+=1}e.map.push([t,n,r])}}function Pl(e,t){let n=!1,r=[];for(;t<e.length;){let i=e[t];if(n){if(i[0]===`enter`)i[1].type===`tableContent`&&r.push(e[t+1][1].type===`tableDelimiterMarker`?`left`:`none`);else if(i[1].type===`tableContent`){if(e[t-1][1].type===`tableDelimiterMarker`){let e=r.length-1;r[e]=r[e]===`left`?`center`:`right`}}else if(i[1].type===`tableDelimiterRow`)break}else i[0]===`enter`&&i[1].type===`tableDelimiterRow`&&(n=!0);t+=1}return r}function Fl(){return{flow:{null:{name:`table`,tokenize:Il,resolveAll:Ll}}}}function Il(e,t,n){let r=this,i=0,a=0,o;return s;function s(e){let t=r.events.length-1;for(;t>-1;){let e=r.events[t][1].type;if(e===`lineEnding`||e===`linePrefix`)t--;else break}let i=t>-1?r.events[t][1].type:null,a=i===`tableHead`||i===`tableRow`?S:c;return a===S&&r.parser.lazy[r.now().line]?n(e):a(e)}function c(t){return e.enter(`tableHead`),e.enter(`tableRow`),l(t)}function l(e){return e===124?u(e):(o=!0,a+=1,u(e))}function u(t){return t===null?n(t):q(t)?a>1?(a=0,r.interrupt=!0,e.exit(`tableRow`),e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),p):n(t):J(t)?Y(e,u,`whitespace`)(t):(a+=1,o&&(o=!1,i+=1),t===124?(e.enter(`tableCellDivider`),e.consume(t),e.exit(`tableCellDivider`),o=!0,u):(e.enter(`data`),d(t)))}function d(t){return t===null||t===124||rs(t)?(e.exit(`data`),u(t)):(e.consume(t),t===92?f:d)}function f(t){return t===92||t===124?(e.consume(t),d):d(t)}function p(t){return r.interrupt=!1,r.parser.lazy[r.now().line]?n(t):(e.enter(`tableDelimiterRow`),o=!1,J(t)?Y(e,m,`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(t):m(t))}function m(t){return t===45||t===58?g(t):t===124?(o=!0,e.enter(`tableCellDivider`),e.consume(t),e.exit(`tableCellDivider`),h):x(t)}function h(t){return J(t)?Y(e,g,`whitespace`)(t):g(t)}function g(t){return t===58?(a+=1,o=!0,e.enter(`tableDelimiterMarker`),e.consume(t),e.exit(`tableDelimiterMarker`),_):t===45?(a+=1,_(t)):t===null||q(t)?b(t):x(t)}function _(t){return t===45?(e.enter(`tableDelimiterFiller`),v(t)):x(t)}function v(t){return t===45?(e.consume(t),v):t===58?(o=!0,e.exit(`tableDelimiterFiller`),e.enter(`tableDelimiterMarker`),e.consume(t),e.exit(`tableDelimiterMarker`),y):(e.exit(`tableDelimiterFiller`),y(t))}function y(t){return J(t)?Y(e,b,`whitespace`)(t):b(t)}function b(n){return n===124?m(n):n===null||q(n)?!o||i!==a?x(n):(e.exit(`tableDelimiterRow`),e.exit(`tableHead`),t(n)):x(n)}function x(e){return n(e)}function S(t){return e.enter(`tableRow`),C(t)}function C(n){return n===124?(e.enter(`tableCellDivider`),e.consume(n),e.exit(`tableCellDivider`),C):n===null||q(n)?(e.exit(`tableRow`),t(n)):J(n)?Y(e,C,`whitespace`)(n):(e.enter(`data`),w(n))}function w(t){return t===null||t===124||rs(t)?(e.exit(`data`),C(t)):(e.consume(t),t===92?T:w)}function T(t){return t===92||t===124?(e.consume(t),w):w(t)}}function Ll(e,t){let n=-1,r=!0,i=0,a=[0,0,0,0],o=[0,0,0,0],s=!1,c=0,l,u,d,f=new Ml;for(;++n<e.length;){let p=e[n],m=p[1];p[0]===`enter`?m.type===`tableHead`?(s=!1,c!==0&&(zl(f,t,c,l,u),u=void 0,c=0),l={type:`table`,start:Object.assign({},m.start),end:Object.assign({},m.end)},f.add(n,0,[[`enter`,l,t]])):m.type===`tableRow`||m.type===`tableDelimiterRow`?(r=!0,d=void 0,a=[0,0,0,0],o=[0,n+1,0,0],s&&(s=!1,u={type:`tableBody`,start:Object.assign({},m.start),end:Object.assign({},m.end)},f.add(n,0,[[`enter`,u,t]])),i=m.type===`tableDelimiterRow`?2:u?3:1):i&&(m.type===`data`||m.type===`tableDelimiterMarker`||m.type===`tableDelimiterFiller`)?(r=!1,o[2]===0&&(a[1]!==0&&(o[0]=o[1],d=Rl(f,t,a,i,void 0,d),a=[0,0,0,0]),o[2]=n)):m.type===`tableCellDivider`&&(r?r=!1:(a[1]!==0&&(o[0]=o[1],d=Rl(f,t,a,i,void 0,d)),a=o,o=[a[1],n,0,0])):m.type===`tableHead`?(s=!0,c=n):m.type===`tableRow`||m.type===`tableDelimiterRow`?(c=n,a[1]===0?o[1]!==0&&(d=Rl(f,t,o,i,n,d)):(o[0]=o[1],d=Rl(f,t,a,i,n,d)),i=0):i&&(m.type===`data`||m.type===`tableDelimiterMarker`||m.type===`tableDelimiterFiller`)&&(o[3]=n)}for(c!==0&&zl(f,t,c,l,u),f.consume(t.events),n=-1;++n<t.events.length;){let e=t.events[n];e[0]===`enter`&&e[1].type===`table`&&(e[1]._align=Pl(t.events,n))}return e}function Rl(e,t,n,r,i,a){let o=r===1?`tableHeader`:r===2?`tableDelimiter`:`tableData`;n[0]!==0&&(a.end=Object.assign({},Bl(t.events,n[0])),e.add(n[0],0,[[`exit`,a,t]]));let s=Bl(t.events,n[1]);if(a={type:o,start:Object.assign({},s),end:Object.assign({},s)},e.add(n[1],0,[[`enter`,a,t]]),n[2]!==0){let i=Bl(t.events,n[2]),a=Bl(t.events,n[3]),o={type:`tableContent`,start:Object.assign({},i),end:Object.assign({},a)};if(e.add(n[2],0,[[`enter`,o,t]]),r!==2){let r=t.events[n[2]],i=t.events[n[3]];if(r[1].end=Object.assign({},i[1].end),r[1].type=`chunkText`,r[1].contentType=`text`,n[3]>n[2]+1){let t=n[2]+1,r=n[3]-n[2]-1;e.add(t,r,[])}}e.add(n[3]+1,0,[[`exit`,o,t]])}return i!==void 0&&(a.end=Object.assign({},Bl(t.events,i)),e.add(i,0,[[`exit`,a,t]]),a=void 0),a}function zl(e,t,n,r,i){let a=[],o=Bl(t.events,n);i&&(i.end=Object.assign({},o),a.push([`exit`,i,t])),r.end=Object.assign({},o),a.push([`exit`,r,t]),e.add(n+1,0,a)}function Bl(e,t){let n=e[t],r=n[0]===`enter`?`start`:`end`;return n[1][r]}function Vl(){return{enter:{strikethrough(){this.tag(`<del>`)}},exit:{strikethrough(){this.tag(`</del>`)}}}}function Hl(e){let t=(e||{}).singleTilde,n={name:`strikethrough`,tokenize:i,resolveAll:r};return t??(t=!0),{text:{126:n},insideSpan:{null:[n]},attentionMarkers:{null:[126]}};function r(e,t){let n=-1;for(;++n<e.length;)if(e[n][0]===`enter`&&e[n][1].type===`strikethroughSequenceTemporary`&&e[n][1]._close){let r=n;for(;r--;)if(e[r][0]===`exit`&&e[r][1].type===`strikethroughSequenceTemporary`&&e[r][1]._open&&e[n][1].end.offset-e[n][1].start.offset===e[r][1].end.offset-e[r][1].start.offset){e[n][1].type=`strikethroughSequence`,e[r][1].type=`strikethroughSequence`;let i={type:`strikethrough`,start:Object.assign({},e[r][1].start),end:Object.assign({},e[n][1].end)},a={type:`strikethroughText`,start:Object.assign({},e[r][1].end),end:Object.assign({},e[n][1].start)},o=[[`enter`,i,t],[`enter`,e[r][1],t],[`exit`,e[r][1],t],[`enter`,a,t]],s=t.parser.constructs.insideSpan.null;s&&Ro(o,o.length,0,bs(s,e.slice(r+1,n),t)),Ro(o,o.length,0,[[`exit`,a,t],[`enter`,e[n][1],t],[`exit`,e[n][1],t],[`exit`,i,t]]),Ro(e,r-1,n-r+3,o),n=r+o.length-2;break}}for(n=-1;++n<e.length;)e[n][1].type===`strikethroughSequenceTemporary`&&(e[n][1].type=`data`);return e}function i(e,n,r){let i=this.previous,a=this.events,o=0;return s;function s(t){return i===126&&a[a.length-1][1].type!==`characterEscape`?r(t):(e.enter(`strikethroughSequenceTemporary`),c(t))}function c(a){let s=ys(i);if(a===126)return o>1?r(a):(e.consume(a),o++,c);if(o<2&&!t)return r(a);let l=e.exit(`strikethroughSequenceTemporary`),u=ys(a);return l._open=!u||u===2&&!!s,l._close=!s||s===2&&!!u,n(a)}}}function Ul(e){let t=[`codeIndented`];return e?.inline&&t.push(`list`,`headingAtx`,`setextUnderline`,`thematicBreak`,`blockQuote`,`codeFenced`,`table`),{allowDangerousHtml:!0,extensions:[Fl(),Hl(),{disable:{null:t}}],htmlExtensions:[Al(),Vl()]}}function Wl(e,t){let n=Ul(t);return Ol(e,{...n,extensions:[...n.extensions??[],Xl(e),Kl]})}var Gl=e=>{let t=e.length-2,n=e[t-1];return n&&n[0]===`exit`&&n[1].type===`data`&&(n[1].end=e[t][1].end,e.length=t),e},Kl={text:{null:{name:`textData`,tokenize(e,t){let n=this,r=this.parser.constructs.text;function i(e){if(e===null)return!0;let t=r[e]??[];return(Array.isArray(t)?t:[t]).some(e=>!e.previous||e.previous.call(n,n.previous))}function a(n){return i(n)?(e.exit(`data`),t(n)):(e.consume(n),a)}return t=>(e.enter(`data`),e.consume(t),a)},resolveTo:Gl}}},ql=/[#-'*+\\--9=?A-Z^-~]/,Jl=/[0-9A-Za-z]/,Yl=/[A-Za-z]/;function Xl(e){let t=e.charCodeAt(0)===65279?1:0,n=e.lastIndexOf(`-->`),r=e.lastIndexOf(`?>`),i=e.lastIndexOf(`]]>`),a=e.lastIndexOf(`>`);function o(t){return e[t]===`<`?e.startsWith(`\\x3C!--`,t)?n<t+2:e.startsWith(`<![CDATA[`,t)?i<t+9:e[t+1]===`!`&&Yl.test(e[t+2]??``)?a<t+3:e[t+1]===`?`?r<t+2&&!s(t):!1:!1}function s(t){let n=t+1;for(;ql.test(e[n]??``);)n++;if(e[n]!==`@`)return!1;n++;let r=0,i=`atSignOrDot`;for(;;){let t=e[n]??``;if(i===`atSignOrDot`){if(!Jl.test(t))return!1;i=`label`}else if(i===`label`){if(t===`>`)return!0;t===`.`?(n++,r=0,i=`atSignOrDot`):i=`value`}else{if(!((t===`-`||Jl.test(t))&&r++<63))return!1;n++,i=t===`-`?`value`:`label`}}}let c={name:`unclosedHtml`,resolveTo:Gl,tokenize(e,n,r){let i=this.now().offset+t;return t=>t!==60||!o(i)?r(t):(e.enter(`data`),e.consume(t),e.exit(`data`),n)}};return{text:{60:c}}}function Zl(e){let t=e.metadata[`data-source-file`],n=e.metadata[`data-source-line`];return t?n?` (${t}:${n})`:` (${t})`:``}function Ql(){let e=Q.getState();if(!e.storyData)return``;let t=e.storyData.passages.get(e.currentPassage);return t?Zl(t):``}function $l({macro:e,error:t}){return K(`span`,{class:`error`,title:String(t),children:`{${e} error${Ql()}: ${Eo(t)}}`})}var eu={update:e=>{throw Error(`Cannot set @${e} — local variables require a {for}, widget, {link}, or {button} scope`)},getValues:()=>ma},tu=pe(ma),nu=pe(eu),ru=pe(!1),iu=pe(!1),au=pe(!1),ou=pe(!1),su=new Set([`pre`,`textarea`]),cu=pe(null);function lu(e,t){return`<span data-tw=${e}:${t}></span>`}var uu=/(?:(?<=\\\\)\\uE000)?<span data-tw=([0-9a-z]+):(\\d+)><\\/span>/g,du=``;function fu(e,t){if(!e.includes(`<span data-tw=`))return[e];let n=[],r=0;for(let i of e.matchAll(uu))i[1]===t.nonce&&(i.index>r&&n.push(e.slice(r,i.index)),n.push(parseInt(i[2],10)),r=i.index+i[0].length);return r<e.length&&n.push(e.slice(r)),n}function pu(e,t){return fu(e,t).map(e=>typeof e==`number`?t.components[e]:e)}function mu({tag:e,props:t,attributes:n,children:r}){let i=Do(),a={...t},o=[];for(let[e,t]of Object.entries(n)){let n=Co(t,i);a[e]=n.text;for(let t of n.errors)o.push([e,t])}return hu(o,b(e,a,...r))}function hu(e,t){return e.length===0?t:K(S,{children:[e.map(([e,{macro:t,error:n}],r)=>K($l,{macro:t,error:Error(`in attribute \"${e}\": ${Eo(n)}`)},r)),t]})}function gu(e,t){if(e==null||e.nodeType!==Node.ELEMENT_NODE)return-1;let n=e.getAttribute(`data-tw`),r=`${t.nonce}:`;return n==null||!n.startsWith(r)?-1:parseInt(n.slice(r.length),10)}function _u(e,t,n=!1){let r=document.createElement(`div`);if(r.innerHTML=e.trim(),n)for(let e of Array.from(r.querySelectorAll(`:scope > p`)))e.replaceWith(...Array.from(e.childNodes));return K(S,{children:Array.from(r.childNodes).map((e,n)=>vu(e,n,t))})}function vu(e,t,n){if(e.nodeType===Node.TEXT_NODE){let t=e.textContent??``;t.endsWith(`\\\\${du}`)&&gu(e.nextSibling,n)!==-1&&(t=t.slice(0,-1));let r=pu(t,n);return r.length===1?r[0]:r}if(e.nodeType===Node.ELEMENT_NODE){let r=e,i=r.localName,a=gu(r,n);if(a!==-1)return n.components[a];let o={},s;for(let e of Array.from(r.attributes)){let t=fu(e.value,n);if(t.every(e=>typeof e==`string`)){o[e.name]=e.value;continue}s??(s={}),s[e.name]=t.map(e=>typeof e==`string`?{type:`text`,value:e}:n.nodes[e])}let c=Array.from(r.childNodes).map((e,t)=>vu(e,t,n));return s?K(mu,{tag:i,props:o,attributes:s,children:c},t):b(i,{...o,key:t},...c)}return null}var yu=new Set(`a.abbr.b.bdi.bdo.br.cite.code.data.dfn.em.i.kbd.label.mark.meter.output.progress.q.rp.rt.ruby.s.samp.small.span.strong.sub.sup.time.u.var.wbr`.split(`.`)),bu=new Set([`value`,`checked`,`selected`,`muted`]),xu=new Set([`allowfullscreen`,`async`,`autofocus`,`autoplay`,`checked`,`controls`,`default`,`defer`,`disabled`,`formnovalidate`,`hidden`,`inert`,`ismap`,`itemscope`,`loop`,`multiple`,`muted`,`nomodule`,`novalidate`,`open`,`playsinline`,`readonly`,`required`,`reversed`,`selected`]),Su=new Set([...new Set([`key`,`ref`,`children`,`dangerouslySetInnerHTML`]),`class`,`className`]),Cu=/^[A-Za-z_:][\\w:.-]*$/;function wu(e,t,n){if(Cu.test(t)){e.setAttribute(t,n);return}let r=document.createElement(`template`);r.innerHTML=`<i ${t}=\"\"></i>`;let i=r.content.firstChild.attributes[0];if(!i)return;let a=i.cloneNode();a.value=n,e.setAttributeNode(a)}function Tu(e,t){let n={},r=[];for(let[i,a,o]of e){let e=i.toLowerCase();xu.has(e)&&o!==``&&a===``||(!t&&bu.has(e)?n[e]=e!==`value`&&o===``?!0:a:!Cu.test(i)||e.startsWith(`on`)||e===`translate`||t&&(Su.has(i)||i===`__proto__`)?r.push([i,a]):n[t?i:i.toUpperCase()]=a)}return{props:n,direct:r}}var Eu=new Map;function Du(e){if(!e.includes(`&`))return e;let t=Eu.get(e);if(t===void 0){let n=document.createElement(`template`);n.innerHTML=`<i title=\"${e.replace(/\"/g,`"`)}\"></i>`,t=n.content.firstChild.getAttribute(`title`)??e,Eu.set(e,t)}return t}var Ou=/\\{[$_@%]\\w/,ku=new Map,Au=2e3;function ju(e){let t=ku.get(e);return t===void 0&&(t=go(e),`nodes`in t&&e.includes(`&`)&&(t={nodes:_o(t.nodes,Du)}),ku.size>=Au&&ku.clear(),ku.set(e,t)),t}function Mu(e,t,n,r){if(Zr(e)){if(!t.includes(`&`)&&!Ou.test(t))return t;let i=To(t,n,Du);for(let t of i.errors)r.push([e,t]);return i.text}if(!po(t))return Du(t);let i=ju(t);if(`error`in i)return r.push([e,{macro:`markup`,error:i.error}]),Du(t);let a=Co(i.nodes,n);for(let t of a.errors)r.push([e,t]);return a.text}function Nu({node:e}){let t=Do(),n=z(ru),r=z(tu),i=z(au),a=z(ou),o=z(iu),s=e.tag.toLowerCase(),c=s===`svg`,l=!i&&(c||su.has(s)),u=[],{props:d,direct:f}=Tu(Object.entries(e.attributes).map(([e,n])=>[e,Mu(e,n,t,u),n]),a||c),p=L(null);De(()=>{let e=p.current;if(!(!e||f.length===0)){for(let[t,n]of f)wu(e,t,n);return()=>{for(let[t]of f)e.removeAttribute(t)}}},[JSON.stringify(f)]),f.length>0&&(d.ref=p);let m=yu.has(s),h;e.children.length>0&&(i||l?h=Bu(e.children):(h=Ju(e.children,{nobr:n,locals:r,inline:m}),m!==o&&(h=K(iu.Provider,{value:m,children:h}))));let g=b(e.tag,d,h);return c&&!a&&(g=K(ou.Provider,{value:!0,children:g})),hu(u,l?K(au.Provider,{value:!0,children:g}):g)}function Pu(){let e=z(cu),t=z(ru),n=z(iu),r=z(au),i=z(tu);return!e||e.length===0?null:K(S,{children:Ju(e,{nobr:t,locals:i,inline:n,raw:r})})}var Fu=new WeakMap,Iu=0;function Lu(e){let t=Fu.get(e);return t===void 0&&(t=`n${Iu++}`,Fu.set(e,t)),t}function Ru(e,t){if(Wa(e.name))return null;let n=Xa(e.name);if(n)return K(Fo,{body:n.body,params:n.params,rawArgs:e.rawArgs,invocationChildren:e.children},t);let r=Ra(e.name);return r?K(r,{rawArgs:e.rawArgs,className:e.className,id:e.id,children:e.children,branches:e.branches},t):K(`span`,{class:`error`,children:`{unknown macro: ${e.name}}`},t)}function zu(e){if(e.type===`text`)return e.value;let t=Lu(e);switch(e.type){case`variable`:return e.scope===`local`&&e.name===`children`?K(Pu,{},t):K(Mo,{name:e.name,scope:e.scope,className:e.className,id:e.id},t);case`expression`:return K(No,{expression:e.expression,className:e.className,id:e.id},t);case`macro`:return Ru(e,t);case`html`:return K(Nu,{node:e},t);default:return e}}function Bu(e){return e.length===0?null:e.map(e=>zu(e))}var Vu=/[*_`#|~\\[>\\\\\\-+=\\r]|!\\[|\\d+[.)]|&#?[a-zA-Z0-9]+;| {2}\\n|<[!?]/,Hu=/(?:\\r\\n|\\r(?!\\n)|\\n)\\s*[\\r\\n]/,Uu=/<span data-tw=[0-9a-z]+:\\d+><\\/span>/g,Wu=` \t\\r\n`;function Gu(e,t,n,r){let i=t;if(n===1)for(;i<e.length&&r.includes(e[i]);)i++;else for(;i>0&&r.includes(e[i-1]);)i--;return i}function Ku(e){return e.includes(`\n`)?e.split(`\n`).map((e,t,n)=>{let r=t===0?0:Gu(e,0,1,` \t`),i=t===n.length-1?e.length:Gu(e,e.length,-1,` \t`);return e.slice(r,Math.max(r,i))}).join(`\n`):e}function qu(e,t,n){let r=pu(Ku(e),t).filter(e=>e!==``);return n?K(S,{children:r}):b(`p`,null,...r)}function Ju(e,t){if(e.length===0)return null;if(t?.raw)return Bu(e);if(!e.some(e=>e.type===`text`&&(e.value.trim()!==``||Hu.test(e.value))))return e.map(e=>zu(e));let n=[],r={nonce:Math.random().toString(36).slice(2,10)||`0`,components:n,nodes:[]},i=``;for(let t=0;t<e.length;t++){let a=e[t];if(a.type===`text`){i+=a.value;continue}let o=n.length;n.push(zu(a)),r.nodes.push(a),i.endsWith(`\\\\`)&&(i+=du),i+=lu(r.nonce,o)}let a=!!(t?.nobr||t?.inline),o=i.slice(0,Gu(i,0,1,Wu)),s=o.length===i.length?``:i.slice(Gu(i,i.length,-1,Wu)),c=i.slice(o.length,i.length-s.length),l=e=>a&&(o||s)?K(S,{children:[o,e,s]}):e,u=i.replace(Uu,``);return!Vu.test(u)&&!Hu.test(u)?l(qu(c,r,a)):l(_u(Wl(i,{inline:t?.inline}),r,a))}function Yu(){let e=e=>structuredClone(e),t=new Map,n=new Map,r=new Map;return{type:`memory`,async putSave(n){t.set(n.meta.id,e(n))},async getSave(n){let r=t.get(n);return r&&e(r)},async deleteSave(e){t.delete(e)},async getSavesByIfid(n){return[...t.values()].filter(e=>e.meta.ifid===n).map(e)},async deleteSavesByIfid(e){for(let n of[...t.keys()]){let r=t.get(n);r&&r.meta.ifid===e&&t.delete(n)}},async deleteSavesByPlaythrough(e){let n=[];for(let r of[...t.keys()]){let i=t.get(r);i&&i.meta.playthroughId===e&&(t.delete(r),n.push(r))}return n},async putPlaythrough(t){n.set(t.id,e(t))},async getPlaythroughsByIfid(t){return[...n.values()].filter(e=>e.ifid===t).map(e)},async deletePlaythroughsByIfid(e){for(let t of[...n.keys()]){let r=n.get(t);r&&r.ifid===e&&n.delete(t)}},async deletePlaythroughById(e){n.delete(e)},async getMeta(t){return e(r.get(t))},async setMeta(t,n){r.set(t,e(n))},async deleteMeta(e){r.delete(e)},async deleteMetaByPrefix(e){for(let t of[...r.keys()])t.startsWith(e)&&r.delete(t)},async deleteMetaByIfid(e){for(let t of[...r.keys()])t.includes(e)&&r.delete(t)},async getAllMetaKeys(){return[...r.keys()]},async destroy(){t.clear(),n.clear(),r.clear()}}}var Xu=`spindle.save.`,Zu=`spindle.pt.`,Qu=`spindle.meta.`,$u=`spindle.idx.saves.`,ed=`spindle.idx.pt.`,td=`spindle.idx.saves-pt.`;function nd(e){let t=localStorage.getItem(e);if(t!==null)try{return JSON.parse(t)}catch{return}}function rd(e,t){localStorage.setItem(e,JSON.stringify(t))}function id(e){localStorage.removeItem(e)}function ad(e){return nd(e)??[]}function od(e,t){let n=ad(e);n.includes(t)||(n.push(t),rd(e,n))}function sd(e,t){rd(e,ad(e).filter(e=>e!==t))}function cd(){return{type:`localstorage`,async putSave(e){let t=e.meta.id,n=nd(`${Xu}${t}`);n&&n.meta.playthroughId!==e.meta.playthroughId&&sd(`${td}${n.meta.playthroughId}`,t),rd(`${Xu}${t}`,e),od(`${$u}${e.meta.ifid}`,t),od(`${td}${e.meta.playthroughId}`,t)},async getSave(e){return nd(`${Xu}${e}`)},async deleteSave(e){let t=nd(`${Xu}${e}`);t&&(sd(`${$u}${t.meta.ifid}`,e),sd(`${td}${t.meta.playthroughId}`,e)),id(`${Xu}${e}`)},async getSavesByIfid(e){let t=ad(`${$u}${e}`),n=[];for(let e of t){let t=nd(`${Xu}${e}`);t&&n.push(t)}return n},async deleteSavesByIfid(e){let t=ad(`${$u}${e}`);for(let e of t){let t=nd(`${Xu}${e}`);t&&sd(`${td}${t.meta.playthroughId}`,e),id(`${Xu}${e}`)}id(`${$u}${e}`)},async deleteSavesByPlaythrough(e){let t=ad(`${td}${e}`);for(let e of t){let t=nd(`${Xu}${e}`);t&&sd(`${$u}${t.meta.ifid}`,e),id(`${Xu}${e}`)}return id(`${td}${e}`),t},async putPlaythrough(e){rd(`${Zu}${e.id}`,e),od(`${ed}${e.ifid}`,e.id)},async getPlaythroughsByIfid(e){let t=ad(`${ed}${e}`),n=[];for(let e of t){let t=nd(`${Zu}${e}`);t&&n.push(t)}return n},async deletePlaythroughsByIfid(e){let t=ad(`${ed}${e}`);for(let e of t)id(`${Zu}${e}`);id(`${ed}${e}`)},async deletePlaythroughById(e){let t=nd(`${Zu}${e}`);t&&sd(`${ed}${t.ifid}`,e),id(`${Zu}${e}`)},async getMeta(e){return nd(`${Qu}${e}`)},async setMeta(e,t){rd(`${Qu}${e}`,t)},async deleteMeta(e){id(`${Qu}${e}`)},async deleteMetaByPrefix(e){let t=`${Qu}${e}`;for(let e of Object.keys(localStorage))e.startsWith(t)&&localStorage.removeItem(e)},async deleteMetaByIfid(e){for(let t of Object.keys(localStorage))t.startsWith(Qu)&&t.includes(e)&&localStorage.removeItem(t)},async getAllMetaKeys(){let e=[];for(let t of Object.keys(localStorage))t.startsWith(Qu)&&e.push(t.slice(13));return e},async destroy(){for(let e of Object.keys(localStorage))e.startsWith(`spindle.`)&&localStorage.removeItem(e)}}}var ld=`spindle`,ud=1;function dd(){let e=null;function t(){return e||(e=new Promise((e,t)=>{let n=indexedDB.open(ld,ud);n.onupgradeneeded=()=>{let e=n.result;if(!e.objectStoreNames.contains(`saves`)){let t=e.createObjectStore(`saves`,{keyPath:`meta.id`});t.createIndex(`ifid`,`meta.ifid`,{unique:!1}),t.createIndex(`playthroughId`,`meta.playthroughId`,{unique:!1})}e.objectStoreNames.contains(`playthroughs`)||e.createObjectStore(`playthroughs`,{keyPath:`id`}).createIndex(`ifid`,`ifid`,{unique:!1}),e.objectStoreNames.contains(`meta`)||e.createObjectStore(`meta`,{keyPath:`key`})},n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error)}),e)}function n(e,n){return t().then(t=>t.transaction(e,n).objectStore(e))}function r(e){return new Promise((t,n)=>{e.onsuccess=()=>t(e.result),e.onerror=()=>n(e.error)})}async function i(e,t,i){return await r((await n(e,`readonly`)).index(t).getAll(i))??[]}return{type:`indexeddb`,async putSave(e){await r((await n(`saves`,`readwrite`)).put(e))},async getSave(e){return await r((await n(`saves`,`readonly`)).get(e))??void 0},async deleteSave(e){await r((await n(`saves`,`readwrite`)).delete(e))},async getSavesByIfid(e){return i(`saves`,`ifid`,e)},async deleteSavesByIfid(e){let t=await i(`saves`,`ifid`,e),a=await n(`saves`,`readwrite`);for(let e of t)await r(a.delete(e.meta.id))},async deleteSavesByPlaythrough(e){let t=await i(`saves`,`playthroughId`,e),a=await n(`saves`,`readwrite`),o=[];for(let e of t)await r(a.delete(e.meta.id)),o.push(e.meta.id);return o},async putPlaythrough(e){await r((await n(`playthroughs`,`readwrite`)).put(e))},async getPlaythroughsByIfid(e){return i(`playthroughs`,`ifid`,e)},async deletePlaythroughsByIfid(e){let t=await i(`playthroughs`,`ifid`,e),a=await n(`playthroughs`,`readwrite`);for(let e of t)await r(a.delete(e.id))},async deletePlaythroughById(e){await r((await n(`playthroughs`,`readwrite`)).delete(e))},async getMeta(e){let t=await r((await n(`meta`,`readonly`)).get(e));return t?t.value:void 0},async setMeta(e,t){await r((await n(`meta`,`readwrite`)).put({key:e,value:t}))},async deleteMeta(e){await r((await n(`meta`,`readwrite`)).delete(e))},async deleteMetaByPrefix(e){let t=await r((await n(`meta`,`readwrite`)).getAll());for(let i of t)i.key.startsWith(e)&&await r((await n(`meta`,`readwrite`)).delete(i.key))},async deleteMetaByIfid(e){let t=await r((await n(`meta`,`readwrite`)).getAll());for(let i of t)i.key.includes(e)&&await r((await n(`meta`,`readwrite`)).delete(i.key))},async getAllMetaKeys(){return(await r((await n(`meta`,`readonly`)).getAll())).map(e=>e.key)},async destroy(){(await t()).close(),e=null,await new Promise((e,t)=>{let n=indexedDB.deleteDatabase(ld);n.onsuccess=()=>e(),n.onerror=()=>t(n.error)})}}}var fd=null;async function pd(){if(typeof indexedDB<`u`)try{return await new Promise((e,t)=>{let n=indexedDB.open(`__spindle_probe__`,1);n.onsuccess=()=>{n.result.close(),indexedDB.deleteDatabase(`__spindle_probe__`),e()},n.onerror=()=>t(n.error)}),dd()}catch{}if(typeof localStorage<`u`)try{let e=`__spindle_probe__`;localStorage.setItem(e,`1`);let t=localStorage.getItem(e);if(localStorage.removeItem(e),t===`1`)return cd()}catch{}return Yu()}var md=null;function X(){if(fd)return Promise.resolve(fd);if(!md){let e=pd().then(t=>(md===e&&(fd=t),t));md=e}return md}function hd(){fd=null,md=null}function gd(){return fd?.type??`memory`}var _d=new Set([`storyinit`,`beforerestart`,`actionsChanged`,`variableChanged`,`beforesave`,`aftersave`,`beforeload`,`afterload`,`beforenavigate`,`afternavigate`,`passagerender`,`dialogrender`]),vd=new Map;function yd(e,t){if(!_d.has(e))throw Error(`spindle: Unknown event \"${e}\".`);let n=vd.get(e);return n||(n=new Set,vd.set(e,n)),n.add(t),()=>{n.delete(t)}}function bd(e,t){let n=vd.get(e);if(n)for(let e of[...n])t(e)}function xd(e,...t){bd(e,e=>e(...t))}function Sd(e,...t){bd(e,n=>{try{n(...t)}catch(t){console.error(`spindle: Error in ${e} handler:`,t)}})}var Cd=null,wd=null;function Td(e){Cd=e}function Ed(e){wd=e}function Dd(e){if(wd)try{let t=Function(`passage`,`variables`,wd)(e.passage,e.variables);if(typeof t==`string`&&t.trim())return t.trim()}catch{}if(Cd)try{let t=Cd(e);if(typeof t==`string`&&t.trim())return t.trim()}catch{}let t=new Date().toLocaleTimeString(void 0,{hour:`2-digit`,minute:`2-digit`});return`${e.passage} - ${t}`}var Od=Promise.resolve();function Z(e){let t=Od.then(e);return Od=t.catch(()=>{}),t}function kd(e,t=crypto.randomUUID()){return Z(()=>Ad(e,t))}async function Ad(e,t){let n=await X(),r=await Nd(e),i={id:t,ifid:e,createdAt:new Date().toISOString(),label:`Playthrough ${r}`};return await n.putPlaythrough(i),await n.setMeta(Md(e),r),await n.setMeta(Pd(e),t),t}var jd=/^Playthrough (\\d+)$/;function Md(e){return`playthroughCount.${e}`}async function Nd(e){let t=await X(),n=await t.getMeta(Md(e))??0;for(let r of await t.getPlaythroughsByIfid(e)){let e=jd.exec(r.label);e&&(n=Math.max(n,Number(e[1])))}return n+1}function Pd(e){return`currentPlaythroughId.${e}`}function Fd(e,t){return Z(()=>Id(e,t))}async function Id(e,t){let n=await X();(await n.getPlaythroughsByIfid(e)).some(e=>e.id===t)||await n.putPlaythrough({id:t,ifid:e,createdAt:new Date().toISOString(),label:`Imported`});let r=Pd(e);await n.getMeta(r)!==t&&await n.setMeta(r,t)}function Ld(e){return Z(async()=>({id:await(await X()).getMeta(Pd(e))??await Ad(e,crypto.randomUUID()),knownSaves:await lf(e)}))}function Rd(e,t,n,r){try{let i=n();return $i(()=>xd(`beforesave`,e,t)),r(i()).then(t=>($i(()=>xd(`aftersave`,e)),t))}catch(e){return Promise.reject(e)}}function zd(e,t,n,r={}){return Z(()=>Bd(e,t,n,r))}async function Bd(e,t,n,r){let i=new Date().toISOString(),a={id:crypto.randomUUID(),ifid:e,playthroughId:t,createdAt:i,updatedAt:i,title:Dd(n),passage:n.passage,custom:r},o=U(n);o.variables=er(o.variables),o.history=o.history.map(e=>({...e,variables:er(e.variables)}));let s={meta:a,payload:o};return s.meta.estimatedBytes=JSON.stringify(o).length,await(await X()).putSave(s),s}function Vd(e,t,n,r){return Z(()=>Hd(e,t,n,r))}async function Hd(e,t,n,r){let i=await X(),a=await i.getSave(e);if(!a)return;let o=U(t);o.variables=er(o.variables),o.history=o.history.map(e=>({...e,variables:er(e.variables)}));let s={meta:{...a.meta,...r?{playthroughId:r}:{},updatedAt:new Date().toISOString(),title:a.meta.userTitle===!0?a.meta.title:Dd(t),passage:t.passage,...n==null?{}:{custom:{...a.meta.custom,...n}}},payload:o};return s.meta.estimatedBytes=JSON.stringify(o).length,await i.putSave(s),s}function Ud(e){return{...e,variables:tr(e.variables),history:e.history.map(e=>({...e,variables:tr(e.variables)}))}}function Wd(e){return Z(async()=>{let t=await X(),n=await t.getSave(e);if(await t.deleteSave(e),!n)return;let r=n.meta.ifid,i=[void 0,...await nf(r)];for(let n of i){let i=Qd(r,n);await t.getMeta(i)===e&&(await t.deleteMeta(i),await tf(r,n))}})}function Gd(e,t){return Z(async()=>{let n=await X(),r=await n.getSave(e);if(!r)return;let i={...r,meta:{...r.meta,title:t,userTitle:!0,updatedAt:new Date().toISOString()}};await n.putSave(i)})}function Kd(e){return Z(()=>qd(e))}async function qd(e){let t=await X(),[n,r]=await Promise.all([t.getSavesByIfid(e),t.getPlaythroughsByIfid(e)]),i=new Map;for(let e of r)i.set(e.id,e);let a=new Map;for(let e of n){let t=e.meta.playthroughId,n=a.get(t);n?n.push(e):a.set(t,[e])}for(let e of a.values())e.sort((e,t)=>new Date(t.meta.updatedAt).getTime()-new Date(e.meta.updatedAt).getTime());let o=[],s=[...i.values()].sort((e,t)=>new Date(t.createdAt).getTime()-new Date(e.createdAt).getTime());for(let e of s){let t=a.get(e.id)??[];o.push({playthrough:e,saves:t})}for(let[t,n]of a)i.has(t)||o.push({playthrough:{id:t,ifid:e,createdAt:n[0]?.meta.createdAt??new Date().toISOString(),label:`Unknown Playthrough`},saves:n});return o}var Jd=`autosave.`,Yd=`slot.`,Xd=`slotIndex.`;function Zd(e){return e!=null&&e!==``}function Qd(e,t){return Zd(t)?`${Yd}${t}.${e}`:`${Jd}${e}`}async function $d(e,t){let n=await X(),r=`${Xd}${e}`,i=await n.getMeta(r)??[],a=t(i);a!==i&&await n.setMeta(r,a)}function ef(e,t){return Zd(t)?$d(e,e=>e.includes(t)?e:[...e,t]):Promise.resolve()}function tf(e,t){return Zd(t)?$d(e,e=>e.filter(e=>e!==t)):Promise.resolve()}async function nf(e){let t=`${Xd}${e}`;return(await(await X()).getMeta(t)??[]).filter(Zd)}function rf(e,t){return{slot:Zd(t)?t:``,title:e.meta.title,passage:e.meta.passage,createdAt:e.meta.createdAt,updatedAt:e.meta.updatedAt,custom:e.meta.custom??{}}}function af(e,t,n,r,i){let a=Qd(e,r);return Z(async()=>{let o=await t,s=await X(),c=await s.getMeta(a);if(c){let e=await Hd(c,n,i,o);if(e)return e}let l=await Bd(e,o,n,{isAutosave:!Zd(r),...Zd(r)?{slot:r}:{},...i});return await s.setMeta(a,l.meta.id),await ef(e,r),l})}async function of(e,t){let n=await X(),r=Qd(e,t),i=await n.getMeta(r);return i?await n.getSave(i)!==void 0:!1}function sf(e,t){let n=Qd(e,t);return Z(async()=>{let t=await X(),r=await t.getMeta(n);if(!r)return;let i=await t.getSave(r);if(!i)return;let a=Ud(i.payload),{playthroughId:o}=i.meta;return o&&await Id(e,o),{payload:a,playthroughId:o}})}function cf(e){return Z(()=>lf(e))}async function lf(e){let t=Object.create(null);await of(e)&&(t[``]=!0);for(let n of await nf(e))await of(e,n)&&(t[n]=!0);return t}function uf(e,t){return Z(()=>df(e,t))}async function df(e,t){let n=await X(),r=Qd(e,t),i=await n.getMeta(r);if(!i)return null;let a=await n.getSave(i);return a?rf(a,t):null}function ff(e){return Z(async()=>{let t=[],n=await df(e);n&&t.push(n);for(let n of await nf(e)){let r=await df(e,n);r&&t.push(r)}return t})}function pf(e,t){let n=Qd(e,t);return Z(async()=>{let r=await X(),i=await r.getMeta(n);i&&(await r.deleteSave(i),await r.deleteMeta(n),await tf(e,t))})}var mf=`spindle.session.`;function hf(e,t){try{sessionStorage.setItem(`${mf}${e}`,JSON.stringify(t))}catch{}}function gf(e){try{let t=sessionStorage.getItem(`${mf}${e}`);if(!t)return;let n=JSON.parse(t);return ur(n)?Ud(n):void 0}catch{return}}function _f(e){try{sessionStorage.removeItem(`${mf}${e}`)}catch{}}function vf(e){return Z(()=>yf(e))}async function yf(e){let t=await(await X()).getSave(e);if(t)return{version:1,ifid:t.meta.ifid,exportedAt:new Date().toISOString(),save:t}}async function bf(e,t){if(e.version!==1)throw Error(`Unsupported save version: ${e.version}`);if(e.ifid!==t)throw Error(`Save is from a different story (expected IFID ${t}, got ${e.ifid})`);if(!ir(e))throw Error(`Invalid save file format`);let n=await X(),r=U(e.save);if(r.meta.id=crypto.randomUUID(),r.meta.updatedAt=new Date().toISOString(),r.meta.ifid=t,!(await n.getPlaythroughsByIfid(t)).some(e=>e.id===r.meta.playthroughId)){let e={id:r.meta.playthroughId,ifid:t,createdAt:r.meta.createdAt,label:`Imported`};await n.putPlaythrough(e)}return r}function xf(e,t){return Z(async()=>{let n=await bf(e,t);return await(await X()).putSave(n),n})}function Sf(e,t){return Z(async()=>{let n=await(await X()).getMeta(Qd(e,t));if(n)return yf(n)})}function Cf(e,t,n){let r=Qd(t,n);return Z(async()=>{let i=await bf(e,t),{slot:a,...o}=i.meta.custom??{};i.meta.custom={...o,isAutosave:!Zd(n),...Zd(n)?{slot:n}:{}};let s=await X(),c=await s.getMeta(r);return await s.putSave(i),await s.setMeta(r,i.meta.id),await ef(t,n),c&&await s.deleteSave(c),rf(i,n)})}function wf(e){return Z(()=>Tf(e))}async function Tf(e){let t=await X(),n=await t.getSavesByIfid(e),r=await t.getPlaythroughsByIfid(e),i=0;for(let e of n)if(e.meta.estimatedBytes!=null)i+=e.meta.estimatedBytes;else{let n=JSON.stringify(e.payload).length;e.meta.estimatedBytes=n,await t.putSave(e),i+=n}return{saveCount:n.length,playthroughCount:r.length,totalBytes:i,backend:t.type}}function Ef(e){return Z(async()=>{let t=await X();await t.deleteSavesByIfid(e),await t.deletePlaythroughsByIfid(e),await t.deleteMetaByIfid(e),_f(e)})}function Df(){return Z(Of)}async function Of(){if(await(await X()).destroy(),hd(),typeof sessionStorage<`u`){let e=[];for(let t=0;t<sessionStorage.length;t++){let n=sessionStorage.key(t);n?.startsWith(`spindle.session.`)&&e.push(n)}for(let t of e)sessionStorage.removeItem(t)}}function kf(e,t,n){return Z(async()=>{let r=await X(),i=await r.deleteSavesByPlaythrough(t);await r.deletePlaythroughById(t);let a=new Set(i);for(let t of[void 0,...await nf(e)]){let n=Qd(e,t),i=await r.getMeta(n);i&&a.has(i)&&(await r.deleteMeta(n),await tf(e,t))}if(n&&await n.current===t)return await Ad(e,n.id),!0;let o=Pd(e);return await r.getMeta(o)===t&&await r.deleteMeta(o),!1})}var Af=null;function jf(){Af&&(fe(null,Af),Af.remove(),Af=null)}function Mf(){jf();let e=Q.getState();if(!e.storyData)return;let t=e.storyData.passages.get(`StoryInit`);if(t){let e=Ni(wi(t.content)),n=document.createElement(`div`);n.style.display=`none`,document.body.appendChild(n),Af=n,fe(b(()=>Ju(e),null),n),am()}let n=e.storyData.passages.get(`SaveTitle`);n&&Ed(n.content)}function Nf(e){Mf(),e&&Q.getState().loadFromPayload(e),xd(`storyinit`),e||am()}function Pf(e,t){let n=e;for(let e of t){if(typeof n!=`object`||!n||e in Object.prototype&&!ca(n,e))return;n=n[e]}return n}var Ff=e=>e===`length`||/^(0|[1-9]\\d*)$/.test(e),If=e=>e instanceof Map?`a Map`:e instanceof Set?`a Set`:e instanceof Date?`a Date`:e instanceof RegExp?`a RegExp`:void 0;function Lf(e){let t=Array.isArray(e)?[]:Object.create(Object.getPrototypeOf(e));for(let n of Object.keys(e))Object.defineProperty(t,n,{value:e[n],enumerable:!0,writable:!0,configurable:!0});return t}function Rf(e,t,n,r={}){let i=Hf(e,t,r.createMissing??!1);i[t[t.length-1]]=n}function zf(e,t){let n=t[t.length-1];Bf(t);let r=e;for(let e of t.slice(0,-1)){if(typeof r!=`object`||!r||!ca(r,e))return;r=r[e]}if(typeof r!=`object`||!r||!ca(r,n))return;let i=Hf(e,t,!1);delete i[n]}function Bf(e){if(e.includes(`__proto__`))throw TypeError(`spindle: Cannot use \"__proto__\" in a variable path (\"${e.join(`.`)}\")`)}function Vf(e,t,n,r){let i=If(e)??(Array.isArray(e)&&!Ff(t)?`an array`:``);if(i)throw TypeError(`spindle: Cannot set property \"${t}\" on ${i} (at \"${n.slice(0,r).join(`.`)}\")`)}function Hf(e,t,n){Bf(t);let r=St(e),i=e;for(let e=0;e<t.length-1;e++){let a=t[e];Vf(i,a,t,e);let o=ca(i,a)?i[a]:void 0;if(typeof o!=`object`||!o){if(!n)throw TypeError(`spindle: Cannot set property \"${t[e+1]}\" on ${o===null?`null`:typeof o} (at \"${t.slice(0,e+1).join(`.`)}\")`);o={},i[a]=o}else r&&!St(o)&&!If(o)&&(o=Lf(o),i[a]=o);i=o}return Vf(i,t[t.length-1],t,t.length-1),i}var Uf=[`variables`,`temporary`,`transient`],Wf=[];function Gf(){return Wf[Wf.length-1]?.work}function Kf(){let e=Q.getState(),t=Gf();return t?{...e,...t}:e}var qf=e=>U(e,{keepUnregistered:!0});function Jf(e){return Wt(qf(e),!0)}function Yf(e){return typeof e==`object`&&!!e&&!Array.isArray(e)&&!(e instanceof Map)&&!(e instanceof Set)&&!(e instanceof Date)&&!(e instanceof RegExp)}var Xf=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);function Zf(e,t,n,r,i){if(!i.has(t)){i.add(t);for(let a of Object.keys(t)){let o=e[a],s=t[a];if(!Xf(e,a))r.push({path:[...n,a],deleted:!1,value:s});else if(Object.is(o,s))continue;else Yf(o)&&Yf(s)&&Object.getPrototypeOf(o)===Object.getPrototypeOf(s)?Zf(o,s,[...n,a],r,i):Kn(o,s)||r.push({path:[...n,a],deleted:!1,value:s})}for(let i of Object.keys(e))Xf(t,i)||r.push({path:[...n,i],deleted:!0});i.delete(t)}}function Qf(e,t){let n=Pf(e,t.path.slice(0,-1));if(typeof n!=`object`||!n)return t.deleted;let r=t.path[t.path.length-1];return Xf(n,r)?!t.deleted&&Kn(n[r],t.value):t.deleted}function $f(e,t){t.deleted?zf(e,t.path):Rf(e,t.path,t.value)}function ep(e,t,n,r=Wf){let i=n.path[0];for(let a of r)for(let r of[a.work[t],a.base[t]])try{$f(r,n.deleted?n:{...n,value:qf(n.value)})}catch{let n=e[t][i];Xf(e[t],i)?r[i]=qf(St(n)?jn(n):n):delete r[i]}}var tp=new Set(Uf),np=new kn({autoFreeze:!1}),rp=!1;function ip(e,t){let n=[],r=e;for(let e of t){if(!Yf(r))break;let t=String(e);n.push(t),r=Xf(r,t)?r[t]:void 0}return n}function ap(e,t){let n=Pf(e,t.slice(0,-1)),r=t[t.length-1];return Yf(n)&&Xf(n,r)?{path:t,deleted:!1,value:n[r]}:{path:t,deleted:!0}}function op(e,t,n){if(n.some(e=>e.path.length===1))return[...new Set([...Object.keys(e),...Object.keys(t)])].filter(n=>!Xf(e,n)||e[n]!==t[n]).map(e=>ap(t,[e]));let r=new Set,i=[];for(let e of n){let n=ip(t,e.path.slice(1)),a=JSON.stringify(n);r.has(a)||(r.add(a),i.push(ap(t,n)))}return i}function sp(e){if(rp){rp=!1;return}if(Wf.length===0)return;lp(up());let t=Wf[Wf.length-1],n={...Q.getState(),variables:t.work.variables,temporary:t.work.temporary,transient:t.work.transient},[r,i]=np.produceWithPatches(n,e),a=Uf.map(e=>{let t=i.filter(t=>t.path[0]===e);return[e,t.length?op(n[e],r[e],t):[]]}),o=e=>e.deleted?e:{...e,value:qf(e.value)};for(let[e,n]of a)for(let r of n)$f(t.work[e],o(r));return e=>{let i=e;for(let e of Object.keys(r)){let t=r[e];!tp.has(e)&&t!==n[e]&&(i[e]=t)}let s=e;for(let[e,n]of a)for(let r of n){let n=r.path[0];try{$f(s[e],o(r))}catch{Xf(t.work[e],n)?s[e][n]=qf(t.work[e][n]):delete s[e][n]}ep(s,e,r)}}}var cp=e=>({variables:U(e.variables),temporary:U(e.temporary),transient:U(e.transient)});function lp(e){let t=e.map(({scope:e,keepRunning:t})=>({scope:e,keepRunning:t,changes:Uf.map(t=>{let n=[];return Zf(e.base[t],e.work[t],[],n,new Set),[t,n]})})),n=t.filter(({changes:e})=>e.some(([,e])=>e.length>0));if(n.length===0)return;for(let{scope:e,keepRunning:t}of n)t&&(e.base=cp(e.work));rp=!0;try{Q.getState().updateVariables(r)}finally{rp=!1}function r(e){t.forEach(({scope:n,keepRunning:r,changes:i},a)=>{let o=e=>r?qf(e):e;for(let[r,s]of i){let i=new Set;for(let t of s){let a=t.path[0];if(!(i.has(a)||Qf(e[r],t)))try{$f(e[r],t.deleted?t:{...t,value:o(t.value)})}catch{e[r][a]=o(n.work[r][a]),i.add(a)}}let c=t.slice(0,a).map(e=>e.scope);for(let t of s)ep(e,r,t,c)}})}}var up=()=>Wf.map(e=>({scope:e,keepRunning:!0}));function dp(e){let t=Q.getState();for(let n of Uf){let r=e.work[n],i=t[n];for(let e of Object.keys(r))Xf(i,e)||delete r[e];for(let e of Object.keys(i))(!Xf(r,e)||!Kn(r[e],i[e]))&&(r[e]=U(i[e]))}e.base=cp(t)}function fp(e){if(Wf.length===0)return e();lp(up());let t=Wf.splice(0);try{return e()}finally{Wf.push(...t);for(let e of t)dp(e)}}function pp(e,t,n){let r=Gf()??Q.getState(),i={work:cp(r),base:cp(r)},a=fa(U(t,{keepUnregistered:!0}));Wf.push(i);try{Fa(e,i.work.variables,i.work.temporary,a,i.work.transient)}finally{Wf.pop()}lp([...up(),{scope:i,keepRunning:!1}]);for(let e of Object.keys(a))Kn(a[e],t[e])||n(e,a[e]);for(let e of Object.keys(t))Xf(a,e)||n(e,void 0)}var mp=[],hp=!1,gp=[],_p=null,vp=null;function yp(e){let t=Kf();try{return!!Pa(e,t.variables,t.temporary,{},t.transient)}catch{return!1}}function bp(e,t,n){let r=typeof t==`function`,i=r?void 0:t,a=r?t:void 0,o={name:i?.name,condition:e,callback:a,options:i,lastResult:yp(e),priority:i?.priority??0,macroKey:n};return mp.push(o),mp.sort((e,t)=>t.priority-e.priority),()=>{mp=mp.filter(e=>e!==o)}}function xp(e,t){return bp(e,t)}function Sp(e,t){let n=Object.fromEntries(Object.entries(t).sort(([e],[t])=>e<t?-1:1)),r=JSON.stringify([e,n]);mp.some(e=>e.macroKey===r)||bp(e,t,r)}function Cp(e){mp=mp.filter(t=>t.name!==e)}function wp(e){let{callback:t,options:n}=e;if(t){t();return}if(n){if(n.run)try{pp(n.run,{},()=>{})}catch(t){console.error(`spindle: Error in watch run action for \"${e.condition}\":`,t)}n.dialog&&(gp.push({passageName:n.dialog}),_p?.()),n.goto&&Q.getState().navigate(n.goto)}}var Tp=10;function Ep(){for(let e=0;e<Tp;e++){let e=!1,t=[...mp];for(let n of t){if(!mp.includes(n))continue;let t=yp(n.condition),r=!n.lastResult;n.lastResult=t,t&&r&&(e=!0,n.options?.once&&(mp=mp.filter(e=>e!==n)),wp(n))}if(!e)break}}function Dp(){if(!hp){hp=!0;try{Ep()}finally{hp=!1}}}var Op=0;function kp(){if(Op===0)return;let e=hp;hp=!0;try{Ep()}finally{hp=e}}function Ap(){let e=Q.getState();Op++;let t=Q.subscribe(t=>{let n=e;e=t,t.navigationId===n.navigationId&&(t.variables===n.variables&&t.temporary===n.temporary&&t.transient===n.transient||Dp())}),n=!0;return()=>{n&&(n=!1,Op--,t())}}function jp(){for(let e of mp)e.lastResult=yp(e.condition)}function Mp(){mp=[],gp=[],vp?.closeAll()}function Np(e){return _p=e,gp.length>0&&e(),()=>{_p===e&&(_p=null)}}function Pp(){return gp.shift()}function Fp(){return gp.length}function Ip(e){vp?vp.push(e):(gp.push(e),_p?.())}function Lp(){gp=[]}function Rp(e){return vp=e,()=>{vp===e&&(vp=null)}}function zp(){vp?.close()}function Bp(){Lp(),vp?.closeAll()}function Vp(){return vp?.isOpen()??!1}Nn(),Pn();var Hp=new Set([`StoryInit`,`StoryInterface`,`StoryVariables`,`StoryTransients`,`StoryLoading`,`SaveTitle`,`PassageReady`,`PassageHeader`,`PassageFooter`,`PassageDone`]),Up=G(),Wp=[],Gp=G();function Kp(e){return e.map(e=>({...e,value:e.value===void 0?void 0:U(e.value)}))}function qp(e,t){let[,n,r]=Ln(e,e=>{let n=e;for(let e of Object.keys(n))Object.prototype.hasOwnProperty.call(t,e)||delete n[e];for(let[e,r]of Object.entries(t))n[e]=r});return{forward:Kp(n),inverse:Kp(r)}}function Jp(e){let t=Wp.length-1;t<0?Up=e:Wp[t]=qp(Yp(t),e)}function Yp(e){let t=Up;for(let n=0;n<e;n++)t=Rn(t,Wp[n].forward);return t}var Xp=[];function Zp(e){let{storyData:t,currentPassage:n,variables:r,history:i,historyIndex:a,visitCounts:o,renderCounts:s}=e();if(t){if(Xp.length>i.length&&(Xp.length=i.length),Xp.length<i.length)if(i.length-Xp.length===1){let e=i.length-1;Xp[e]={passage:i[e].passage,variables:er(r),timestamp:i[e].timestamp,prng:i[e].prng}}else{let e=Up;for(let t=0;t<i.length;t++)t>0&&(e=Rn(e,Wp[t-1].forward)),t>=Xp.length&&(Xp[t]={passage:i[t].passage,variables:er(e),timestamp:i[t].timestamp,prng:i[t].prng})}hf(t.ifid,{passage:n,variables:er(r),history:Xp,historyIndex:a,visitCounts:o,renderCounts:s,prng:ea()})}}function Qp(e){let t=e.history.length-e.maxHistory;if(t<=0)return!1;let n=Math.min(e.historyIndex,t),r=n+e.maxHistory;for(let e=0;e<n;e++)Up=Rn(Up,Wp[e].forward);return e.history=e.history.slice(n,r),Wp=Wp.slice(n,r-1),Xp=Xp.slice(n,r),e.historyIndex-=n,!0}var $p=!1,em=[],tm=null;function nm(e,t){let n=tm;if(tm=null,!n||e().navigationId!==n.navigationId)return;e().variables!==n.variables&&Jp(e().variables),Gp=e().variables;let r=ea(),i=e().history[e().historyIndex].prng;(r?.seed!==i?.seed||r?.pull!==i?.pull)&&t(e=>{e.history[e.historyIndex].prng=r})}var rm=e=>({...U(e)});function im(e){Up=e,Wp=[],Gp=e,Xp=[]}function am(){let{history:e,historyIndex:t,variables:n}=Q.getState();if(e.length!==1||t!==0)return;Up=n,Wp=[],Gp=n,Xp=[];let r=ea();Q.setState(e=>{e.history[0].prng=r})}var om=Promise.resolve(``),sm=0,cm=!1;function lm(){return cm?``:Q.getState().playthroughId}function um(){let e=lm();return om.then(t=>e||t)}function dm(e){Q.getState().playthroughId!==e&&Q.setState(t=>{t.playthroughId=e})}function fm(e){let t=++sm;return cm=!0,om=e.then(e=>(t===sm&&(cm=!1,dm(e)),e)),om}function pm(e,t){++sm,cm=!1,om=t.then(()=>e,()=>e),dm(e)}function mm(e){let t=crypto.randomUUID();pm(t,kd(e,t).catch(e=>{console.error(`spindle: failed to start new playthrough`,e)}))}function hm(e,t){lm()!==t&&pm(t,Fd(e,t).catch(e=>{console.error(`spindle: failed to switch to the loaded playthrough`,e)}))}var gm=0,_m=0,vm=null;function ym(){_m=++gm}var bm=[],xm=!1;function Sm(e){xm&&bm.push(e)}function Cm(){xm=!0}function wm(){for(let e of bm)e();bm=[],xm=!1}function Tm(e){return typeof e==`string`&&e!==``?e:null}function Em(e){let{history:t,historyIndex:n}=e;if(!Number.isInteger(n))return;let r=t[n];if(!(!r||r.passage!==e.passage)&&!(typeof r.variables!=`object`||r.variables===null))return r}function Dm(e,t,n){let r=e.history[e.historyIndex];r&&jm(r.variables,t,n,new Set)}var Om=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);function km(e,t){return Array.isArray(e)||Array.isArray(t)?Array.isArray(e)&&Array.isArray(t):Yf(e)&&Yf(t)&&Object.getPrototypeOf(e)===Object.getPrototypeOf(t)}function Am(e,t,n,r,i){Object.is(n,r)||(km(n,r)&&Om(e,t)&&km(r,e[t])&&!i.has(r)?jm(e[t],n,r,i):Kn(n,r)||(e[t]=U(r)))}function jm(e,t,n,r){if(r.add(n),Array.isArray(e)){let i=t,a=n,o=Math.min(i.length,a.length,e.length);for(let t=0;t<o;t++)Am(e,String(t),i[t],a[t],r);a.length<i.length&&(e.length=Math.min(e.length,a.length));for(let t=i.length;t<a.length;t++)e.push(U(a[t]))}else{for(let r of Object.keys(t))Om(n,r)||delete e[r];for(let i of Object.keys(n))Om(t,i)?Am(e,i,t[i],n[i],r):e[i]=U(n[i])}r.delete(n)}function Mm(e){e?.prng?Xi(e.prng.seed,e.prng.pull):e&&Qi()}var Nm=[`variables`,`temporary`,`transient`];function Pm(e){for(let t of Nm){let n=e[t];da(n)||(e[t]=G(St(n)?jn(n):n))}}var Fm=[`navigate`,`goBack`,`goForward`,`restart`,`save`,`load`,`getSavePayload`,`loadFromPayload`];function Im(e){return(t,n,r)=>{let i=((e,n)=>{if(n){t(e,!0);return}let r=typeof e==`function`?e:t=>{Object.assign(t,e)},i=sp(r);t(e=>{(i??r)(e),Pm(e)})});r.setState=i;let a=e(i,n,r);for(let e of Fm){let t=a[e];a[e]=(...e)=>fp(()=>t(...e))}return a}}var Lm=e=>zn(Im(e));function Rm(e){return e.catch(()=>{}),e}var Q=dt()(Lm((e,t)=>({storyData:null,currentPassage:``,navigationId:0,variables:G(),variableDefaults:{},transient:G(),transientDefaults:{},temporary:G(),history:[],historyIndex:-1,visitCounts:va(),renderCounts:va(),knownSaves:{},playthroughId:``,maxHistory:40,quickSaveKey:`F6`,quickLoadKey:`F9`,saveError:null,loadError:null,transitionConfig:null,nextTransition:null,nobr:!1,renderDeferred:!1,setMaxHistory:n=>{let r=!1;e(e=>{e.maxHistory=Math.max(1,Math.round(n)),r=Qp(e)}),r&&Zp(t)},setQuickSaveKey:t=>{e(e=>{e.quickSaveKey=Tm(t)})},setQuickLoadKey:t=>{e(e=>{e.quickLoadKey=Tm(t)})},init:(n,r={},i={})=>{let a=n.passagesById.get(n.startNode);if(!a)throw Error(`spindle: Start passage (pid=${n.startNode}) not found.`);let o=G(U(r));im(U(o)),e(e=>{e.storyData=n,e.playthroughId=``,e.currentPassage=a.name,e.navigationId++,e.variables=o,e.variableDefaults=r,e.transient=G(U(i)),e.transientDefaults=i,e.temporary=G(),e.history=[{passage:a.name,timestamp:Date.now()}],e.historyIndex=0,e.visitCounts=va(null,a.name),e.renderCounts=va(null,a.name)}),Gp=t().variables,ym(),fm(Ld(n.ifid).then(({id:t,knownSaves:n})=>(e(e=>{e.knownSaves=n}),t)).catch(e=>(console.error(`spindle: failed to init save system`,e),``)))},navigate:n=>{if($p){em.push(n);return}let{storyData:r}=t();if(!r)return;if(Hp.has(n)){console.error(`spindle: Cannot navigate to special passage \"${n}\".`);return}if(!r.passages.has(n)){console.error(`spindle: Passage \"${n}\" not found.`);return}let i=t().currentPassage;xd(`beforenavigate`,n);let a=qp(Gp,t().variables);e(e=>{e.temporary=G(),e.currentPassage=n,e.navigationId++,e.history=e.history.slice(0,e.historyIndex+1),Wp.length=e.historyIndex,Xp.length>e.historyIndex+1&&(Xp.length=e.historyIndex+1),Wp.push(a),e.history.push({passage:n,timestamp:Date.now(),prng:ea()}),e.historyIndex=e.history.length-1,Qp(e),e.visitCounts=va(e.visitCounts,n),e.renderCounts=va(e.renderCounts,n)}),tm={navigationId:t().navigationId,variables:t().variables},$p=!0;try{kp()}finally{$p=!1}let o=em;em=[],nm(t,e),Zp(t),xd(`afternavigate`,n,i);for(let e of o)t().navigate(e)},goBack:()=>{let{historyIndex:n}=t();if(n<=0)return;nm(t,e);let r=t().currentPassage,i=t().history[n-1].passage;xd(`beforenavigate`,i);let a=U(Yp(n-1));e(e=>{e.historyIndex--,e.currentPassage=e.history[e.historyIndex].passage,e.navigationId++,e.variables=a,e.temporary=G()}),jp(),Gp=t().variables,Mm(t().history[t().historyIndex]),Zp(t),xd(`afternavigate`,i,r)},goForward:()=>{let{historyIndex:n,history:r}=t();if(n>=r.length-1)return;nm(t,e);let i=t().currentPassage,a=r[n+1].passage;xd(`beforenavigate`,a);let o=U(Yp(n+1));e(e=>{e.historyIndex++,e.currentPassage=e.history[e.historyIndex].passage,e.navigationId++,e.variables=o,e.temporary=G()}),jp(),Gp=t().variables,Mm(t().history[t().historyIndex]),Zp(t),xd(`afternavigate`,a,i)},setVariable:(t,n)=>{e(e=>{W(t,`$${t}`),e.variables[t]=n})},setTemporary:(t,n)=>{e(e=>{W(t,`_${t}`),e.temporary[t]=n})},deleteVariable:t=>{e(e=>{W(t,`$${t}`),delete e.variables[t]})},deleteTemporary:t=>{e(e=>{W(t,`_${t}`),delete e.temporary[t]})},setTransient:(t,n)=>{e(e=>{W(t,`%${t}`),e.transient[t]=n})},deleteTransient:t=>{e(e=>{W(t,`%${t}`),delete e.transient[t]})},updateVariables:t=>{e(e=>{t(e)})},trackRender:t=>{e(e=>{e.renderCounts=va(e.renderCounts,t)})},restart:()=>{let{storyData:n,variableDefaults:r,transientDefaults:i}=t();if(!n)return;let a=n.passagesById.get(n.startNode);if(!a)return;e(e=>{e.renderDeferred=!1}),xd(`beforerestart`),mm(n.ifid),ym();let o=t().renderDeferred;wm(),Qi(),Mp();let s=G(U(r));im(U(s)),e(e=>{e.currentPassage=a.name,e.navigationId++,e.variables=s,e.transient=G(U(i)),e.temporary=G(),e.history=[{passage:a.name,timestamp:Date.now()}],e.historyIndex=0,e.visitCounts=va(null,a.name),e.renderCounts=va(null,a.name),o||(e.renderDeferred=!1)}),Gp=t().variables,Cm(),Mf(),_f(n.ifid),xd(`storyinit`),am()},save:(n,r)=>{let{storyData:i}=t();if(!i)return Promise.resolve();let a=um();return Rm(Rd(n,r,t().beginSave,async t=>{e(e=>{e.saveError=null}),await af(i.ifid,a,t,n,r),e(e=>{e.knownSaves={...e.knownSaves,[n??``]:!0}})}).catch(t=>{throw console.error(`spindle: failed to save`,t),e(e=>{e.saveError=Eo(t,`Failed to save`)}),t}))},load:n=>{let{storyData:r}=t();if(!r)return Promise.resolve();e(e=>{e.loadError=null});let i=um(),a=sf(r.ifid,n),o=fm(Promise.all([i,a.catch(()=>void 0)]).then(([e,t])=>t?.playthroughId||e)),s=++gm;return Rm(a.then(async e=>{await o,e&&(_m>s||(vm=s,t().loadFromPayload(e.payload,n)))}).catch(t=>{throw console.error(`spindle: failed to load save`,t),e(e=>{e.loadError=Eo(t,`Failed to load`)}),t}))},hasSave:e=>{let{storyData:n,knownSaves:r}=t();return n?Object.prototype.hasOwnProperty.call(r,e??``):!1},getSaveInfo:async e=>{let{storyData:n}=t();return n?uf(n.ifid,e):null},listSaves:async()=>{let{storyData:e}=t();return e?ff(e.ifid):[]},deleteSave:n=>{let{storyData:r}=t();return r?Rm(pf(r.ifid,n).then(()=>{e(e=>{let t=n??``,{[t]:r,...i}=e.knownSaves;e.knownSaves=i})}).catch(e=>{throw console.error(`spindle: failed to delete save`,e),e})):Promise.resolve()},exportSave:async e=>{let{storyData:n}=t();return n?await Sf(n.ifid,e)??null:null},importSave:async(n,r)=>{let{storyData:i}=t();if(!i)throw Error(`spindle: Story is not initialized.`);if(!ir(n))throw Error(`Invalid save file format`);let a=await Cf(n,i.ifid,r);return e(e=>{e.knownSaves={...e.knownSaves,[r??``]:!0}}),a},clearGameData:()=>{let{storyData:n}=t();if(!n)return Promise.resolve();let r=Ef(n.ifid).then(()=>{e(e=>{e.knownSaves={}})});return t().restart(),Rm(r.catch(e=>{throw console.error(`spindle: failed to clear game data`,e),e}))},clearAllData:()=>{let n=Df().then(()=>{e(e=>{e.knownSaves={}})});return t().restart(),Rm(n.catch(e=>{throw console.error(`spindle: failed to clear all data`,e),e}))},deletePlaythrough:n=>{let{storyData:r}=t();if(!r)return Promise.resolve();let i=r.ifid,a=lm(),o=om,s=crypto.randomUUID(),c=kf(i,n,{current:a||o,id:s});return n!==``&&n===a?pm(s,c):a===``&&fm(c.then(e=>e?s:o,()=>o)),Rm(c.then(async()=>{let t=await cf(r.ifid);e(e=>{e.knownSaves=t})}).catch(e=>{throw console.error(`spindle: failed to delete playthrough`,e),e}))},getSavePayload:()=>{let{currentPassage:e,variables:n,history:r,historyIndex:i,visitCounts:a,renderCounts:o}=t(),s=[],c=Up;for(let e=0;e<r.length;e++)e>0&&(c=Rn(c,Wp[e-1].forward)),s.push({passage:r[e].passage,variables:rm(c),timestamp:r[e].timestamp,prng:r[e].prng});return{passage:e,variables:rm(n),history:s,historyIndex:i,visitCounts:{...a},renderCounts:{...o},prng:ea()}},beginSave:()=>{let e=t().variables;return()=>{let n=t().getSavePayload();return Dm(n,e,t().variables),n}},loadFromPayload:(n,r,i)=>{let a=vm??++gm;if(vm=null,n.history.length===0){console.warn(`loadFromPayload: rejecting payload with empty history`);return}_m=a,xd(`beforeload`,r);let o=t().storyData?.ifid;i&&o&&hm(o,i);let s=Em(n),c=G(U(n.history[0]?.variables??{})),l=[],u=c;for(let e=1;e<n.history.length;e++){let t=G(U(n.history[e].variables));l.push(qp(u,t)),u=t}Up=U(c),Wp=l,Xp=n.history.map(e=>({passage:e.passage,variables:er(e.variables),timestamp:e.timestamp,prng:e.prng})),e(e=>{e.currentPassage=n.passage,e.navigationId++,e.variables=G(U(s?.variables??n.variables)),e.history=n.history.map(e=>({passage:e.passage,timestamp:e.timestamp,prng:e.prng})),e.historyIndex=Math.max(0,Math.min(n.historyIndex,e.history.length-1)),Qp(e),e.visitCounts=va(n.visitCounts),e.renderCounts=va(n.renderCounts),e.temporary=G(),e.transient=G(U(t().transientDefaults))}),jp(),Gp=Yp(t().historyIndex);let d=s?.prng===void 0?n.prng:s.prng;d?Xi(d.seed,d.pull):Qi(),Zp(t),$i(()=>xd(`afterload`,r))},getHistoryVariables:e=>U(Yp(e)),setTransition:t=>{e(e=>{e.transitionConfig=t})},setNextTransition:t=>{e(e=>{e.nextTransition=t})},consumeNextTransition:()=>{let n=t().nextTransition;return n!==null&&e(e=>{e.nextTransition=null}),n},deferRender:()=>{e(e=>{e.renderDeferred=!0})},clearDeferredRender:()=>{e(e=>{e.renderDeferred=!1})}}))),zm=`<header class=\"story-menubar\">{story-title}{back}{forward}{restart}{quicksave}{quickload}{saves}{settings}</header>\n{passage}`;function Bm(){let e=Q(e=>e.storyData)?.passages.get(`StoryInterface`),t=e===void 0?zm:e.content,n=e?.tags.includes(`nobr`)??!1,r=R(()=>{try{return K(S,{children:Bu(Ni(wi(t)))})}catch(e){return K(`span`,{class:`error`,children:[`Error in StoryInterface: `,Eo(e)]})}},[t]);return n?K(ru.Provider,{value:!0,children:r}):r}var Vm=[`a[href]`,`area[href]`,`button:not([disabled])`,`input:not([disabled]):not([type=\"hidden\"])`,`select:not([disabled])`,`textarea:not([disabled])`,`iframe`,`[contenteditable=\"true\"]`,`[tabindex]:not([tabindex=\"-1\"])`].join(`,`);function Hm(e){return Array.from(e.querySelectorAll(Vm)).filter(e=>!e.hidden&&!e.closest(`[hidden], [inert]`))}var Um=[];function Wm(e,t,n,r){De(()=>{let n=e.current;if(!n)return;let r=document.activeElement instanceof HTMLElement?document.activeElement:null,i={panel:n};Um.push(i);let a=n.querySelector(t)??n;return(n.querySelector(`[autofocus]`)??Hm(a)[0]??n).focus(),()=>{let e=Um.indexOf(i);e!==-1&&Um.splice(e,1);let t=document.activeElement;(!t||t===document.body||n.contains(t))&&r?.isConnected&&r.focus()}},[]),De(()=>{let t=e.current;if(!t)return;let i=e=>{if(Um[Um.length-1]?.panel!==t)return;if(e.key===`Escape`){if(!n)return;e.preventDefault(),e.stopPropagation(),r();return}if(e.key!==`Tab`)return;let i=Hm(t),a=i[0],o=i[i.length-1],s=document.activeElement,c=s!==t&&t.contains(s);!a||!o?(e.preventDefault(),t.focus()):e.shiftKey&&(s===a||!c)?(e.preventDefault(),o.focus()):!e.shiftKey&&(s===o||!c)&&(e.preventDefault(),a.focus())};return document.addEventListener(`keydown`,i),()=>document.removeEventListener(`keydown`,i)},[n,r])}var Gm=pe(null);function Km({passageName:e,fallbackMarkup:t,panelClass:n,onClose:r,dismissible:i=!0,showCloseButton:a=i}){let o=L(r);o.current=r;let s=Oe(()=>o.current(),[]),c=Q(e=>e.storyData),l=e?c?.passages.get(e):void 0,u=l?.content??t,d=l?.tags.includes(`nobr`)??!1,f=R(()=>{if(!u)return K(`div`,{class:`error`,children:`Dialog: no content available`});try{let e=Ju(Ni(wi(u)),d?{nobr:!0}:void 0);return d?K(ru.Provider,{value:!0,children:e}):e}catch(e){return K(`div`,{class:`error`,children:[`Error in dialog: `,Eo(e)]})}},[u,d]),p=L(null);Wm(p,`.dialog-body`,i,s),De(()=>{p.current&&Sd(`dialogrender`,e??``,p.current)},[]);let m=e=>{i&&e.target.classList.contains(`dialog-overlay`)&&s()},h=n?`dialog-panel ${n}`:`dialog-panel`;return K(Gm.Provider,{value:s,children:K(`div`,{class:`dialog-overlay`,onClick:m,children:K(`div`,{ref:p,class:h,role:`dialog`,\"aria-modal\":`true`,tabIndex:-1,children:[a&&K(`button`,{class:`dialog-close`,\"aria-label\":`Close`,onClick:s,children:`✕`}),K(`div`,{class:`dialog-body`,children:f})]})})})}function qm(){let[e,t]=I([]),n=L(e);n.current=e;let r=Oe(e=>{t(t=>[...t,e])},[]),i=Oe(()=>{t(e=>e.slice(0,-1))},[]),a=Oe(()=>{t([])},[]);return Ee(()=>Rp({close:i,closeAll:a,push:r,isOpen:()=>n.current.length>0}),[i,a,r]),Ee(()=>Np(()=>{let e=[];for(;Fp()>0;){let t=Pp();t&&e.push(t)}e.length>0&&t(t=>[...t,...e])}),[]),e.length===0?null:K(S,{children:e.map((e,t)=>K(Km,{passageName:e.passageName,panelClass:e.panelClass,onClose:i,showCloseButton:e.showCloseButton,dismissible:e.dismissible},`${e.passageName}-${t}`))})}function Jm(){let{storyData:e,currentPassage:t,nobr:n}=zi(`storyData`,`currentPassage`,`nobr`);if(Ee(()=>{let e=e=>{let{quickSaveKey:t,quickLoadKey:n,save:r,load:i}=Q.getState();t!==null&&e.key===t?(e.preventDefault(),r()):n!==null&&e.key===n&&(e.preventDefault(),i())};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[]),!e||!t)return K(`div`,{class:`loading`,children:`Loading...`});let r=K(S,{children:[K(Bm,{}),K(qm,{})]});return n?K(ru.Provider,{value:!0,children:r}):r}function Ym(e){return e.replace(/</g,`<`).replace(/>/g,`>`).replace(/"/g,`\"`).replace(/'/g,`'`).replace(/&/g,`&`)}function Xm(){let e=document.querySelector(`tw-storydata`);if(!e)throw Error(`spindle: No <tw-storydata> element found in the document.`);let t=e.getAttribute(`name`)||`Untitled`,n=parseInt(e.getAttribute(`startnode`)||`1`,10),r=e.getAttribute(`ifid`)||``,i=e.getAttribute(`format`)||``,a=e.getAttribute(`format-version`)||``,o=e.querySelector(`[type=\"text/twine-css\"]`)?.textContent||``,s=e.querySelector(`[type=\"text/twine-javascript\"]`)?.textContent||``,c=new Map,l=new Map;for(let t of e.querySelectorAll(`tw-passagedata`)){let e=parseInt(t.getAttribute(`pid`)||`0`,10),n=t.getAttribute(`name`)||``,r=(t.getAttribute(`tags`)||``).split(/\\s+/).filter(e=>e.length>0),i=Ym(t.innerHTML),a={},o=new Set([`pid`,`name`,`tags`]);for(let e of t.attributes)o.has(e.name)||(a[e.name]=e.value);let s={pid:e,name:n,tags:r,metadata:a,content:i};c.set(n,s),l.set(e,s)}return{name:t,startNode:n,ifid:r,format:i,formatVersion:a,passages:c,passagesById:l,userCSS:o,userScript:s}}var Zm=new Map,Qm=G(),$m=!1,eh=null;function th(){return`spindle.${Q.getState().storyData?.ifid||`unknown`}.settings`}function nh(){localStorage.setItem(th(),JSON.stringify(Qm))}function rh(){if(!$m){if(!Q.getState().storyData?.ifid){eh||(eh=Q.subscribe(e=>{e.storyData?.ifid&&(eh?.(),eh=null,rh())}));return}$m=!0;try{let e=localStorage.getItem(th());if(e){let t=JSON.parse(e);typeof t==`object`&&t&&!Array.isArray(t)&&(Qm=G(Qm,t))}}catch{}}}function ih(e,t){Zm.set(e,t),ca(Qm,e)||(Qm[e]=t.config.default),rh()}function ah(e,t){let n=la(Qm,e);return typeof n==typeof t?n:t}var oh={addToggle(e,t){ih(e,{type:`toggle`,config:t})},addList(e,t){ih(e,{type:`list`,config:t})},addRange(e,t){ih(e,{type:`range`,config:t})},get(e){return la(Qm,e)},getToggle(e){return ah(e,!1)},getList(e){return ah(e,``)},getRange(e){return ah(e,0)},set(e,t){Qm[e]=t,nh()},getAll(){return{...Qm}},getDefinitions(){return Zm},hasAny(){return Zm.size>0}},sh=new Map,ch=new Map;function lh(e,t,n){if(n)return n;let r=`${e}:${t}`,i=ch.get(r)??0,a;do i++,a=i===1?r:`${r}:${i}`;while(sh.has(a));return ch.set(r,i),a}function uh(e){let t=e.id,n={action:e},r=sh.get(t);return r?(console.warn(`spindle: two mounted controls share the action ID \"${t}\"; Story.getActions() lists only the newer one.`),r.push(n)):sh.set(t,[n]),hh(),{update(e){let r=sh.get(t);r?.includes(n)&&(n.action=e,r[r.length-1]===n&&hh())},unregister(){let e=sh.get(t),r=e?e.indexOf(n):-1;!e||r===-1||(e.splice(r,1),e.length===0&&sh.delete(t),r===e.length&&hh())}}}function dh(){return Array.from(sh.values(),ph)}function fh(e){let t=sh.get(e);return t&&ph(t)}function ph(e){return e[e.length-1].action}function mh(){ch.clear()}function hh(){xd(`actionsChanged`)}function gh(e){let t=L(``),n=L(e.perform);n.current=e.perform,t.current||(t.current=lh(e.type,e.key,e.authorId));let r=t.current,i=()=>{let t={id:r,type:e.type,label:e.label,perform:(...e)=>n.current(...e)};return e.target!==void 0&&(t.target=e.target),e.variable!==void 0&&(t.variable=e.variable),e.options!==void 0&&(t.options=e.options),e.value!==void 0&&(t.value=e.value),e.disabled!==void 0&&(t.disabled=e.disabled),t},a=L(null);De(()=>{let e=uh(i());return a.current=e,()=>e.unregister()},[r]);let o=L(!1);return De(()=>{if(!o.current){o.current=!0;return}a.current?.update(i())},[e.type,e.label,e.target,e.variable,e.disabled,e.value,JSON.stringify(e.options)]),r}function _h(e){return e.map(e=>e.type===`text`?e.value:``).join(``)}function vh(e){let t=e.match(/^\\s*([\"']?\\$[\\w.]+[\"']?)\\s*([\"'].*[\"'])?\\s*$/s);if(!t)return{varName:e.trim(),placeholder:``};let n=t[1].replace(/[\"']/g,``),r=t[2];return{varName:n,placeholder:r?no(r)??r.slice(1,-1):``}}function yh(e){let t=[];for(let n of e)if(n.type===`macro`&&n.name===`option`){let e=n.rawArgs.trim(),r=no(e)??e.replace(/^([\"'])(.+)\\1$/s,`$2`);t.push(r)}return t}function bh(e,t){let n=`macro-${e}`;return t?`${n} ${t}`:n}var xh={useState:I,useRef:L,useEffect:Ee,useLayoutEffect:De,useCallback:Oe,useMemo:R,useContext:z};function $(e,t=`builtin`){function n(t){let n=t.className,r=t.id,i;e.interpolate&&(i=Oo(),n=i(n),r=i(r));let{update:a,getValues:o}=z(nu),s=z(ru),c=z(iu),l=z(au),u=z(tu),d={collectText:_h,sourceLocation:Ql,parseVarArgs:vh,extractOptions:yh,h:b,renderNodes:(e,t)=>Ju(e,{nobr:s,inline:c,raw:l,locals:u,...t}),renderInlineNodes:Bu,hooks:xh,useAction:gh,className:n,id:r,resolve:i,cls:bh(e.name,n),mutate:e=>pp(e,o(),a),update:a,getValues:o,wrap:e=>n||r?b(`span`,{id:r,class:n},e):b(S,null,e)};if(e.merged){d.merged=Bi();let e=d.merged;d.evaluate=t=>Pa(t,e[0],e[1],e[2],e[3])}if(e.storeVar){let n=t.rawArgs.trim().split(/\\s+/)[0]?.replace(/[\"']/g,``)??``;if(n.startsWith(`%`))return b(`span`,{class:`error`},`{${e.name}}: transient variables (%${n.slice(1)}) cannot be bound to input macros`);let r=n.replace(/[\"']/g,``).replace(/^\\$/,``),i=r.split(`.`);if(i.includes(`__proto__`))return b(`span`,{class:`error`},`{${e.name}}: \"$${r}\" cannot be bound: ${oa} is reserved`);d.varName=r,d.value=Q(e=>Pf(e.variables,i)),d.getValue=()=>Pf(Kf().variables,i),d.setValue=e=>{Q.setState(t=>{Rf(t.variables,i,e,{createMissing:!0})})}}return e.render(t,d)}La(e.name,n),Ba(e.name,e.text);let r=e.block===!0||e.block!==!1&&(e.subMacros?.length??0)>0;if(Ka(e.name,{name:e.name,block:r,subMacros:e.subMacros??[],storeVar:e.storeVar,interpolate:e.interpolate,merged:e.merged,description:e.description,parameters:e.parameters,source:t}),e.subMacros)for(let t of e.subMacros)Ua(t);r&&Ei(e.name)}var Sh=null;function Ch(e){Sh=e}function wh(){return Sh}var Th=null,Eh=null;function Dh(){return Eh}var Oh=!1;function kh(){if(Oh)return;Oh=!0;let e=Q.getState().variables,t=Q.getState().transient;Q.subscribe(n=>{let r={},i=(e,t,n)=>{for(let i of ha(e,t))r[n+i]={from:la(e,i),to:la(t,i)}};i(e,n.variables,``),i(t,n.transient,`%`),e=n.variables,t=n.transient,Object.keys(r).length>0&&xd(`variableChanged`,r)})}var Ah=null,jh=null,Mh=new Set;function Nh(e,t=[]){Ah=new Set(e),jh=new Set(t),Mh.clear()}function Ph(e){let t=e.startsWith(`%`),n=t||e.startsWith(`$`)?e.slice(1):e;return W(n.split(`.`)[0],e),{isTransient:t,key:n}}function Fh(e,t){let n=e?jh:Ah;if(!n)return;let r=t.split(`.`)[0];if(n.has(r))return;let i=(e?`%`:`$`)+r;Mh.has(i)||(Mh.add(i),console.warn(`spindle: Story.set() wrote ${i}, which is not declared in ${e?`StoryTransients`:`StoryVariables`}. Passages cannot reference it; check the name or declare it.`))}function Ih(e,t,n){let{isTransient:r,key:i}=Ph(t),a=r?e.transient:e.variables;i.includes(`.`)?Rf(a,i.split(`.`),n):a[i]=n}function Lh(){let e=Oa(()=>Q.getState().visitCounts),t=Oa(()=>Q.getState().renderCounts);return{get(e){let{isTransient:t,key:n}=Ph(e),r=Gf(),i=r??Q.getState(),a=t?i.transient:i.variables,o=n.includes(`.`)?Pf(a,n.split(`.`)):la(a,n);return r?Jf(o):o},set(e,t){let n=typeof e==`string`?[[e,t]]:Object.entries(e);for(let[e]of n){let{isTransient:t,key:n}=Ph(e);Fh(t,n)}Q.getState().updateVariables(e=>{for(let[t,r]of n)Ih(e,t,r)})},goto(e){Q.getState().navigate(e)},back(){Q.getState().goBack()},forward(){Q.getState().goForward()},restart(){Q.getState().restart()},save(e,t){return Q.getState().save(e,t)},load(e){return Q.getState().load(e)},hasSave(e){return Q.getState().hasSave(e)},getSaveInfo(e){return Q.getState().getSaveInfo(e)},listSaves(){return Q.getState().listSaves()},deleteSave(e){return Q.getState().deleteSave(e)},exportSave(e){return Q.getState().exportSave(e)},importSave(e,t){return Q.getState().importSave(e,t)},visited:e.count,hasVisited:e.has,hasVisitedAny:e.any,hasVisitedAll:e.all,rendered:t.count,hasRendered:t.has,hasRenderedAny:t.any,hasRenderedAll:t.all,currentPassage:Ea,previousPassage:Da,get title(){return Q.getState().storyData?.name||``},get passage(){return Q.getState().currentPassage},settings:oh,registerClass(e,t){Hn(e,t)},defineMacro(e){$(e,`user`)},getMacroRegistry(){return qa()},saves:{setTitleGenerator(e){Td(e)}},storage:{async getInfo(){let e=Q.getState().storyData?.ifid;return e?wf(e):{saveCount:0,playthroughCount:0,totalBytes:0,backend:gd()}},async getQuota(){if(typeof navigator<`u`&&navigator.storage?.estimate)try{let e=await navigator.storage.estimate();return{usage:e.usage??0,quota:e.quota??0,estimateSupported:!0}}catch{}return{usage:0,quota:0,estimateSupported:!1}},clearGameData(){return Q.getState().clearGameData()},clearAllData(){return Q.getState().clearAllData()},deletePlaythrough(e){return Q.getState().deletePlaythrough(e)},get backend(){return gd()}},getActions(){return dh()},performAction(e,t){let n=fh(e);if(!n)throw Error(`spindle: Action \"${e}\" not found.`);if(n.disabled)throw Error(`spindle: Action \"${e}\" is disabled.`);n.perform(t)},on(e,t){e===`variableChanged`&&kh();let n=yd(e,t);return Sm(n),n},async waitForActions(){await new Promise(e=>{requestAnimationFrame(()=>requestAnimationFrame(()=>e()))});let e=()=>wh()===Q.getState().navigationId;return wh()!==null&&!e()&&!Q.getState().renderDeferred&&await new Promise(t=>{let n=yd(`passagerender`,()=>{e()&&(n(),t())})}),dh()},watch(e,t){return xp(e,t)},unwatch(e){Cp(e)},openDialog(e,t){Ip({passageName:e,panelClass:t?.panelClass,showCloseButton:t?.showCloseButton,dismissible:t?.dismissible})},closeDialog(){zp()},closeAllDialogs(){Bp()},isDialogOpen(){return Vp()},setNobr(e){Q.setState({nobr:e})},setCSS(e){let t=document.getElementById(`spindle-styles`);t&&(t.disabled=!e)},setTransition(e){Q.getState().setTransition(e)},setNextTransition(e){Q.getState().setNextTransition(e)},deferRender(){Q.getState().deferRender(),Eh=new Promise(e=>{Th=e})},ready(){Th&&(Q.getState().clearDeferredRender(),Th(),Th=null,Eh=null)},random(){return ta()},randomInt(e,t){return na(e,t)},config:{get maxHistory(){return Q.getState().maxHistory},set maxHistory(e){Q.getState().setMaxHistory(e)},get quickSaveKey(){return Q.getState().quickSaveKey},set quickSaveKey(e){Q.getState().setQuickSaveKey(e)},get quickLoadKey(){return Q.getState().quickLoadKey},set quickLoadKey(e){Q.getState().setQuickLoadKey(e)}},prng:{init(e,t){Yi(e,t);let{historyIndex:n}=Q.getState();Q.setState(e=>{let t=e.history[n];t&&(t.prng=ea())})},isEnabled(){return ra()},get seed(){return ia()},get pull(){return aa()}}}}function Rh(){window.Story=Lh()}function zh(e){let t=e.replace(/[.*+?^${}()|[\\]\\\\]/g,`\\\\$&`);return RegExp(`^${t}(\\\\w+)\\\\s*=\\\\s*(.+)$`)}var Bh=/\\$(\\w+(?:\\.\\w+)*)/y,Vh=/^[\"']\\$(\\w+(?:\\.\\w+)*)[\"']?$/,Hh=/\\{for\\s+@(\\w+)(?:\\s*,\\s*@(\\w+))?\\s+of\\b/g,Uh=new Set([`number`,`string`,`boolean`]),Wh={string:Object(``),number:Object(0),boolean:Object(!1)};function Gh(e){if(Array.isArray(e))return{type:`array`};if(typeof e==`object`&&e){let t=new Map;for(let[n,r]of Object.entries(e))t.set(n,Gh(r));return{type:`object`,fields:t}}let t=typeof e;if(!Uh.has(t))throw Error(`Unsupported type \"${t}\" for value ${String(e)}. Expected number, string, boolean, array, or object.`);return{type:t}}function Kh(e,t=`$`){let n=new Map,r=zh(t),i=t===`%`?`StoryTransients`:`StoryVariables`;for(let a of e.split(`\n`)){let e=a.trim();if(!e)continue;let o=e.match(r);if(!o)throw Error(`${i}: Invalid declaration: \"${e}\". Expected: ${t}name = value`);let[,s,c]=o,l=sa(s,t+s);if(l)throw Error(`${i}: ${l}`);let u;try{u=Function(`return (`+c+`)`)()}catch(e){throw Error(`${i}: Failed to evaluate \"${t}${s} = ${c}\": ${Eo(e)}`)}let d;try{d=Gh(u)}catch(e){throw Error(`${i}: ${Eo(e)}`)}n.set(s,{...d,name:s,default:u})}return n}function qh(e){let t=new Set,n;for(Hh.lastIndex=0;(n=Hh.exec(e))!==null;)t.add(n[1]),n[2]&&t.add(n[2]);return t}function Jh(e,t,n){let r=e.split(`.`),i=r[0],a=sa(i,`$`+i);if(a)return a;if(n.has(i))return null;let o=t.get(i);if(!o)return`Undeclared variable: $${e}`;let s=o;for(let e=1;e<r.length;e++){let t=r[e];if(s.type===`array`)return null;let n=Wh[s.type];if(n&&t in n){let e=typeof n[t];if(!Uh.has(e))return null;s={type:e};continue}if(s.type!==`object`||!s.fields)return`Cannot access field \"${t}\" on $${r.slice(0,e).join(`.`)} (type: ${s.type})`;let i=s.fields.get(t);if(!i)return null;s=i}return null}var Yh=[`checkbox`,`cycle`,`listbox`,`numberbox`,`radiobutton`,`textarea`,`textbox`],Xh=new Set;function Zh(e,t){for(let n of Qr(e))`expr`in n&&$h(n.expr,t)}function Qh(e,t,n=Xh){e.includes(`{`)&&tg(e,wi(e,{text:!0}),n,t)}function $h(e,t,n=`expression`){let r=[];Jr(e,{variable(n,r,i){n===`$`&&(Bh.lastIndex=i,t(Bh.exec(e)[1]))},literal(e,n,i){let a=r[r.length-1];if(a?.nesting===i)a.text===null?a.text=``:e===\"`\"||e===\"${\"?(Qh(a.text,t),e===\"`\"?r.pop():a.text=null):a.text+=e;else if(e===\"`\")r.push({nesting:i,text:``});else if(e[0]===`\"`||e[0]===`'`){let{closed:n}=Tr(e,0);Qh(e.slice(1,n?-1:void 0),t)}}},n);for(let e of r)e.text&&Qh(e.text,t)}function eg(e,t,n){tg(e,wi(e),t,n)}function tg(e,t,n,r){for(let i=0;i<t.length;i++){let a=t[i];if(a.type===`variable`)a.scope===`variable`&&a.name&&r(a.name);else if(a.type===`expression`)$h(a.expression,r);else if(a.type===`html`)for(let[e,t]of Object.entries(a.attributes))Zr(e)?Zh(t,r):Qh(t,r,n);else if(a.type===`macro`&&!a.isClose){if($h(a.rawArgs,r),n.has(a.name.toLowerCase())){let e=a.rawArgs.trim().split(/\\s+/)[0]??``,t=Vh.exec(e);t&&r(t[1])}if(a.name===`do`){let n=i+1;for(;n<t.length;){let e=t[n];if(e.type===`macro`&&e.isClose&&e.name===`do`)break;n++}n<t.length&&($h(e.slice(a.end,t[n].start),r,`statements`),i=n)}}}}function ng(e,t,n=Yh){let r=[],i=new Set(Array.from(n,e=>e.toLowerCase()));for(let[n,a]of e){if(n===`StoryVariables`||n===`StoryTransients`)continue;let e=qh(a.content);eg(a.content,i,i=>{let a=Jh(i,t,e);a&&r.push(`Passage \"${n}\": ${a}`)})}return r}function rg(e){let t=G();for(let[n,r]of e)t[n]=r.default;return t}function ig(e){for(let t of e){if(t.type===`variable`&&t.scope===`local`&&t.name===`children`||t.type===`html`&&ig(t.children))return!0;if(t.type===`macro`){if(ig(t.children))return!0;if(t.branches){for(let e of t.branches)if(ig(e.children))return!0}}}return!1}function ag(e,t=`@`){let[n,...r]=e.trim().split(/\\s+/);return{name:n.replace(/[\"']/g,``),params:r.filter(e=>t.includes(e[0]))}}$({name:`widget`,block:!0,render({rawArgs:e,children:t=[]},n){let r,i;try{let t=ag(e);for(let e of t.params)W(e.slice(1),e);r=t}catch(e){i=e}let{name:a,params:o}=r??{name:``,params:[]},s=JSON.stringify(t),c=o.join(`,`);return n.hooks.useLayoutEffect(()=>{if(!r)return;let e=ig(t);Ya(a,t,o,e),e&&Ei(a)},[a,s,c]),i?K($l,{macro:`widget`,error:i}):null}}),$({name:`set`,render({rawArgs:e},t){let n=t.hooks.useRef(!1),r=t.hooks.useRef(null);if(!n.current){n.current=!0;try{t.mutate(e)}catch(n){r.current={error:n},console.error(`spindle: Error in {set ${e}}${t.sourceLocation()}:`,n)}}return r.current?K($l,{macro:`set`,error:r.current.error}):null}}),$({name:`print`,interpolate:!0,merged:!0,render({rawArgs:e},t){try{let n=t.evaluate(e),r=n==null?``:String(n);return t.wrap(r)}catch(e){return K($l,{macro:`print`,error:e})}},text({rawArgs:e},t){let n=t.evaluate(e);return n==null?``:String(n)}});var og=Symbol(`unset`);function sg(e){let t=e.trim(),n=0;for(let e=0;e<t.length;e++){let r=t[e];if(r===`(`||r===`[`||r===`{`)n++;else if(r===`)`||r===`]`||r===`}`)n--;else if(r===`=`&&n===0){if(t[e+1]===`=`){e++;continue}if(e>0&&t[e-1]===`!`)continue;let n=t.slice(0,e).trim(),r=t.slice(e+1).trim();if(!n.match(/^[$_@]\\w+$/))throw Error(`{computed}: target must be $name, _name, or @name, got \"${n}\"`);return W(n.slice(1),n),{target:n,expr:r}}}throw Error(`{computed}: expected \"target = expression\", got \"${e}\"`)}function cg(e,t,n,r,i,a,o,s){let c;try{let{variables:t,temporary:n,transient:r}=Kf();c=Pa(e,t,n,i(),r)}catch(e){console.error(`spindle: Error in {computed ${a}}${Ql()}:`,e);return}if(!Kn(o.current,c))if(o.current=c,r)try{s(t,c)}catch(e){console.error(`spindle: Error in {computed ${a}}${Ql()}:`,e)}else{let e=Q.getState();n?e.setTemporary(t,c):e.setVariable(t,c)}}$({name:`computed`,merged:!0,render({rawArgs:e},t){let[n,r,i,a]=t.merged,o,s;try{({target:o,expr:s}=sg(e))}catch(e){return K($l,{macro:`computed`,error:e})}let c=o.startsWith(`@`),l=o.startsWith(`_`),u=o.slice(1),d=c?t.update:null,f=t.hooks.useRef(og),p=t.hooks.useRef(!1);return p.current||(p.current=!0,cg(s,u,l,c,t.getValues,e,f,d)),t.hooks.useLayoutEffect(()=>{cg(s,u,l,c,t.getValues,e,f,d)},[n,r,i,a]),null}});function lg(e){let t=so(e.trim(),Za).filter(Boolean),n=``,r=t.length>=2&&!ao(t.slice(0,-1).join(` `))?no(t[t.length-1]):null;if(r!==null&&(n=r,t.pop()),t.length<2)throw Error(`meter requires two arguments: {meter currentExpr maxExpr}`);return{currentExpr:t[0],maxExpr:t.slice(1).join(` `),labelMode:n}}function ug(e,t,n){return n===`none`?null:n===`%`?`${t===0?0:Math.round(e/t*100)}%`:n?`${e} ${n} / ${t} ${n}`:`${e} / ${t}`}$({name:`meter`,interpolate:!0,merged:!0,render({rawArgs:e},t){try{let{currentExpr:n,maxExpr:r,labelMode:i}=lg(e),a=Number(t.evaluate(n)),o=Number(t.evaluate(r)),s=o===0?0:Math.max(0,Math.min(100,a/o*100)),c=ug(a,o,i),l=t.cls;return K(`div`,{class:l,id:t.id,children:[K(`div`,{class:`macro-meter-fill`,style:`width: ${s}%`}),c!=null&&K(`span`,{class:`macro-meter-label`,children:c})]})}catch(e){return K($l,{macro:`meter`,error:e})}}}),$({name:`if`,block:!0,interpolate:!0,merged:!0,render({branches:e=[]},t){function n(e){let n=t.renderNodes(e.children),r=t.resolve(e.className),i=t.resolve(e.id);return r||i?K(`span`,{id:i,class:r,children:n}):K(S,{children:n})}for(let r of e){if(r.rawArgs===``)return n(r);try{if(t.evaluate(r.rawArgs))return n(r)}catch(e){return K($l,{macro:`if`,error:e})}}return null},text({branches:e=[]},t){for(let n of e)if(n.rawArgs===``||t.evaluate(n.rawArgs))return t.renderText(n.children);return``}});function dg(e){try{return fg(e,[])}catch{return`<unkeyable>`}}function fg(e,t){switch(typeof e){case`string`:return JSON.stringify(e);case`number`:return Number.isFinite(e)?JSON.stringify(e):String(e);case`boolean`:return String(e);case`bigint`:return`${e}n`;case`undefined`:return`undefined`;case`symbol`:return e.description===void 0?`Symbol()`:`Symbol(${JSON.stringify(e.description)})`;case`function`:return`<function ${JSON.stringify(e.name)}>`}if(e===null)return`null`;let n=e,r=t.indexOf(n);if(r!==-1)return`<cycle ${t.length-r}>`;if(e instanceof Date)return`Date(${e.getTime()})`;if(e instanceof RegExp)return`RegExp(${String(e)})`;t.push(n);try{if(Array.isArray(e))return`[${Array.from(e,e=>fg(e,t)).join(`,`)}]`;if(e instanceof Map)return`Map[${[...e].map(([e,n])=>`[${fg(e,t)},${fg(n,t)}]`).join(`,`)}]`;if(e instanceof Set)return`Set[${[...e].map(e=>fg(e,t)).join(`,`)}]`;let r=n,i=Object.keys(r).map(e=>`${JSON.stringify(e)}:${fg(r[e],t)}`).join(`,`),a=Un(n);return a===void 0?`{${i}}`:`Class(${JSON.stringify(a)}){${i}}`}finally{t.pop()}}function pg(e){let t=e.indexOf(` of `);if(t===-1)throw Error(`{for} requires \"of\" keyword: {for ${e}}`);let n=e.slice(0,t).trim(),r=e.slice(t+4).trim(),i=n.split(`,`).map(e=>e.trim()),a=i[0],o=i.length>1?i[1]:null;if(!a.startsWith(`@`))throw Error(`{for} loop variable must use @ prefix: got \"${a}\"`);if(o&&!o.startsWith(`@`))throw Error(`{for} index variable must use @ prefix: got \"${o}\"`);return W(a.slice(1),a),o&&W(o.slice(1),o),{itemVar:a.slice(1),indexVar:o?o.slice(1):null,listExpr:r}}function mg({parentValues:e,itemVar:t,itemValue:n,indexVar:r,indexValue:i,children:a}){let[o,s]=I(()=>({})),c=R(()=>({[t]:n,...r?{[r]:i}:void 0}),[t,n,r,i]),l=R(()=>G(e,c,o),[e,c,o]),u=L(l);u.current=l;let d=Oe(()=>u.current,[]),f=Oe((e,t)=>{W(e,`@${e}`),u.current=pa(u.current,e,t),s(n=>({...n,[e]:t}))},[]),p=R(()=>({update:f,getValues:d}),[f,d]),m=z(ru),h=z(iu),g=z(au);return K(nu.Provider,{value:p,children:K(tu.Provider,{value:l,children:Ju(a,{nobr:m,inline:h,raw:g,locals:l})})})}$({name:`for`,block:!0,interpolate:!0,merged:!0,render({rawArgs:e,children:t=[]},n){let r=z(tu),i;try{i=pg(e)}catch(e){return K($l,{macro:`for`,error:e})}let{itemVar:a,indexVar:o,listExpr:s}=i,c;try{let e=n.evaluate(s);if(!Array.isArray(e))return K(`span`,{class:`error`,children:`{for error: expression did not evaluate to an array}`});c=e}catch(e){return K($l,{macro:`for`,error:e})}let l=c.map((e,n)=>K(mg,{parentValues:r,itemVar:a,itemValue:e,indexVar:o,indexValue:n,children:t},`${n}-${dg(e)}`));return n.wrap(l)},text({rawArgs:e,children:t=[]},n){let{itemVar:r,indexVar:i,listExpr:a}=pg(e),o=n.evaluate(a);if(!Array.isArray(o))throw Error(`expression did not evaluate to an array`);return o.map((e,a)=>n.renderText(t,{[r]:e,...i?{[i]:a}:void 0})).join(``)}}),$({name:`do`,block:!0,render({children:e=[]},t){let n=t.collectText(e);return t.hooks.useLayoutEffect(()=>{try{t.mutate(n)}catch(e){console.error(`spindle: Error in {do}${t.sourceLocation()}:`,e)}},[]),null}});function hg(e){return new Proxy(G(),{get:(t,n)=>typeof n==`string`?la(e(),n):void 0,has:(t,n)=>typeof n==`string`&&ca(e(),n),ownKeys:()=>Reflect.ownKeys(e()),getOwnPropertyDescriptor:(t,n)=>{let r=Object.getOwnPropertyDescriptor(e(),n);return r?{...r,configurable:!0}:void 0}})}function gg(e){let t=e.trim();return t.endsWith(`ms`)?parseFloat(t.slice(0,-2)):t.endsWith(`s`)?parseFloat(t.slice(0,-1))*1e3:parseFloat(t)}var _g=pe({stop:()=>{}});$({name:`repeat`,block:!0,interpolate:!0,render({rawArgs:e,children:t=[]},n){let{useState:r,useEffect:i,useCallback:a}=n.hooks,o=gg(e),[s,c]=r(0),[l,u]=r(!1),d=a(()=>u(!0),[]);if(i(()=>{if(l)return;let e=setInterval(()=>{c(e=>e+1)},o);return()=>clearInterval(e)},[o,l]),s===0&&!l)return null;let f=K(_g.Provider,{value:{stop:d},children:K(`span`,{children:n.renderNodes(t)},s)});return n.className||n.id?K(`span`,{id:n.id,class:n.cls,children:f}):f}});function vg(){let e=z(nu),t=z(ru),n=z(iu),r=z(cu),i=z(_g),a=z(Gm),o=o=>{let s=hg(e.getValues),c=document.createElement(`div`);fe(K(nu.Provider,{value:e,children:K(tu.Provider,{value:s,children:K(ru.Provider,{value:t,children:K(iu.Provider,{value:n,children:K(cu.Provider,{value:r,children:K(_g.Provider,{value:i,children:K(Gm.Provider,{value:a,children:Ju(o,{nobr:t,inline:n,locals:s})})})})})})})}),c),fe(null,c)};return e=>fp(()=>o(e))}$({name:`button`,block:!0,interpolate:!0,render({rawArgs:e,children:t=[]},n){let r=no(e.trim())??e.replace(/^[\"']|[\"']$/g,``),i=n.resolve?.(r)??e,a=vg(),o=()=>a(t);return n.useAction({type:`button`,key:e,authorId:n.id,label:i,perform:o}),K(`button`,{id:n.id,class:n.cls,onClick:o,children:i})}});function yg(e){let t=[],n=/([\"'])((?:\\\\[^]|(?!\\1)[^\\\\])*)\\1/g,r;for(;(r=n.exec(e))!==null;)t.push(eo(r[2]));return t.length>=2?{display:t[0],passage:t[1]}:t.length===1?{display:t[0],passage:null}:{display:e.trim(),passage:null}}$({name:`link`,block:!0,interpolate:!0,render({rawArgs:e,children:t=[]},n){let{display:r,passage:i}=yg(e),a=vg(),o=()=>{a(t),i&&Q.getState().navigate(i)};return n.useAction({type:`link`,key:i||r,authorId:n.id,label:r,target:i??void 0,perform:o}),K(`a`,{id:n.id,class:n.cls,href:`#`,onClick:e=>{e.preventDefault(),o()},children:r})}}),$({name:`switch`,subMacros:[`case`,`default`],merged:!0,render({rawArgs:e,branches:t=[]},n){let r;try{r=n.evaluate(e)}catch(e){return K($l,{macro:`switch`,error:e})}let i=null;for(let e=1;e<t.length;e++){let a=t[e];if(a.rawArgs===``){i=a;continue}try{let e=n.evaluate(a.rawArgs);if(r===e)return K(S,{children:n.renderNodes(a.children)})}catch(e){return K($l,{macro:`case`,error:e})}}return i?K(S,{children:n.renderNodes(i.children)}):null},text({rawArgs:e,branches:t=[]},n){let r=n.evaluate(e),i=null;for(let e=1;e<t.length;e++){let a=t[e];if(a.rawArgs===``)i=a;else if(r===n.evaluate(a.rawArgs))return n.renderText(a.children)}return i?n.renderText(i.children):``}}),$({name:`timed`,subMacros:[`next`],interpolate:!0,render({branches:e=[]},t){let{useState:n,useEffect:r,useMemo:i}=t.hooks,a=i(()=>e.map(e=>({delay:e.rawArgs?gg(e.rawArgs):0,nodes:e.children,className:e.className,id:e.id})),[e]),[o,s]=n(-1);if(r(()=>{if(o>=a.length-1)return;let e=o+1,t=a[e].delay,n=setTimeout(()=>{s(e)},t);return()=>clearTimeout(n)},[o,a]),o<0)return t.wrap(null);let c=a[o],l=t.renderNodes(c.nodes),u=t.resolve(c.className),d=t.resolve(c.id),f=u||d?K(`span`,{id:d,class:u,children:l}):l;return t.wrap(f)}}),$({name:`stop`,render(e,t){let{stop:n}=t.hooks.useContext(_g);return t.hooks.useLayoutEffect(()=>{n()},[n]),null}}),$({name:`type`,block:!0,interpolate:!0,render({rawArgs:e,children:t=[]},n){let{useState:r,useEffect:i,useRef:a}=n.hooks,o=gg(e),s=a(null),[c,l]=r(0),[u,d]=r(0),f=a(0);f.current=u,i(()=>{s.current&&l((s.current.textContent||``).length)},[]),i(()=>{if(c===0||f.current>=c)return;let e=setInterval(()=>{d(t=>t>=c?(clearInterval(e),t):t+1)},o);return()=>clearInterval(e)},[c,o]);let p=u>=c&&c>0,m=[`macro-type`,p?`macro-type-done`:``,n.className||``].filter(Boolean).join(` `);return K(`span`,{id:n.id,class:m,ref:s,style:{clipPath:void 0},children:[K(`span`,{class:`macro-type-inner`,style:{display:`inline`,visibility:c===0?`hidden`:`visible`,clipPath:c>0&&!p?`inset(0 ${(c-u)/c*100}% 0 0)`:void 0},children:n.renderInlineNodes(t)}),!p&&c>0&&K(`span`,{class:`macro-type-cursor`})]})}}),$({name:`story-title`,render(e,t){let n=Q(e=>e.storyData?.name||``),r=t.className?`story-title ${t.className}`:`story-title`;return K(`span`,{id:t.id,class:r,children:n})},text:()=>Q.getState().storyData?.name||``});function bg(e,t){return t?`${e} (${t})`:e}function xg(e){$({name:e.name,render(t,n){if(e.hidden?.())return null;let[r,i]=I(!1),a=e.setup?.()??{perform:()=>{}},{disabled:o,title:s=e.title}=a,c=n.className?`menubar-button ${n.className}`:`menubar-button`,l=e.dialog?()=>i(!0):e.confirm?()=>{confirm(e.confirm)&&a.perform()}:a.perform;return n.useAction({type:e.actionType,key:e.name,authorId:n.id,label:typeof e.label==`string`?e.label:e.name,disabled:o,perform:e.dialog?()=>i(!0):a.perform}),K(S,{children:[K(`button`,{id:n.id,class:c,onClick:l,disabled:o,title:s,children:e.label}),e.dialog&&r&&K(Km,{passageName:e.dialog.passageName,fallbackMarkup:e.dialog.fallbackMarkup,panelClass:e.dialog.panelClass,onClose:()=>i(!1),showCloseButton:e.dialog.showCloseButton})]})}})}xg({name:`back`,label:`← Back`,actionType:`back`,setup:()=>({perform:Q(e=>e.goBack),disabled:!Q(e=>e.historyIndex>0)})}),xg({name:`forward`,label:`Forward →`,actionType:`forward`,setup:()=>({perform:Q(e=>e.goForward),disabled:!Q(e=>e.historyIndex<e.history.length-1)})}),xg({name:`quicksave`,label:`QuickSave`,actionType:`save`,setup:()=>{let{save:e,quickSaveKey:t}=zi(`save`,`quickSaveKey`);return{perform:e,title:bg(`Quick Save`,t)}}}),xg({name:`quickload`,label:`QuickLoad`,actionType:`load`,confirm:`Load saved game? Current progress will be lost.`,setup:()=>{let{load:e,hasSave:t,quickLoadKey:n}=zi(`load`,`hasSave`,`quickLoadKey`,`knownSaves`);return{perform:()=>e(),disabled:!t(),title:bg(`Quick Load`,n)}}}),xg({name:`restart`,label:`↺ Restart`,actionType:`restart`,confirm:`Restart the story? All progress will be lost.`,setup:()=>({perform:Q(e=>e.restart)})}),xg({name:`saves`,label:`Saves`,actionType:`dialog`,dialog:{passageName:`SaveLoad`,fallbackMarkup:`{save-manager}`,panelClass:`dialog-saves`}}),xg({name:`settings`,label:`Settings`,actionType:`dialog`,hidden:()=>!oh.hasAny(),dialog:{passageName:`Settings`,fallbackMarkup:`{settings-controls}`,panelClass:`dialog-settings`}}),$({name:`dialog`,block:!0,interpolate:!0,render({rawArgs:e,children:t=[]},n){let[r,i]=n.hooks.useState(!1),a=/\\bnoclose\\s*$/.test(e),o=e.replace(/\\bnoclose\\s*$/,``).trim(),s=n.resolve?.(no(o)??o.replace(/^[\"']|[\"']$/g,``))??o,c=n.collectText(t).trim().replace(/^[\"']|[\"']$/g,``);return K(S,{children:[K(`button`,{id:n.id,class:n.cls,onClick:()=>i(!0),children:s}),r&&K(Km,{passageName:c,onClose:()=>i(!1),showCloseButton:!a})]})}});function Sg(e){let t=Date.now()-new Date(e).getTime(),n=Math.floor(t/1e3);if(n<60)return`just now`;let r=Math.floor(n/60);if(r<60)return`${r}m ago`;let i=Math.floor(r/60);if(i<24)return`${i}h ago`;let a=Math.floor(i/24);return a<30?`${a}d ago`:new Date(e).toLocaleDateString()}function Cg(e){return new Date(e).toLocaleDateString(void 0,{month:`short`,day:`numeric`,year:`numeric`})}function wg(){let[e,t]=I(`load`),[n,r]=I([]),[i,a]=I(!0),[o,s]=I(null),[c,l]=I(()=>new Set),[u,d]=I(null),[f,p]=I(``),m=L(null),h=L(null),g=z(Gm),{storyData:_,playthroughId:v,beginSave:y,loadFromPayload:b}=zi(`storyData`,`playthroughId`,`beginSave`,`loadFromPayload`),x=_?.ifid??``,S=Oe(async()=>{x&&(r(await Kd(x)),a(!1))},[x]);Ee(()=>{S()},[S]),Ee(()=>{u&&m.current&&(m.current.focus(),m.current.select())},[u]);let C=L(!0),w=L(),T=L(),E=(e,t=`success`)=>{C.current&&(clearTimeout(w.current),s({text:e,type:t}),w.current=window.setTimeout(()=>s(null),3e3))};Ee(()=>(C.current=!0,()=>{C.current=!1,clearTimeout(w.current),clearTimeout(T.current)}),[]);let D=e=>{l(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},O=async()=>{if(!x)return;let e=um();try{await Rd(void 0,void 0,y,async t=>{let n=await e;if(!n)throw Error(`No playthrough`);return zd(x,n,t)}),E(`Save created`),await S()}catch{E(`Failed to create save`,`error`)}},k=async e=>{let t=um();try{await Rd(void 0,void 0,y,async n=>{if(!await Vd(e,n,void 0,await t||void 0))throw Error(`Save not found`)}),E(`Save overwritten`),await S()}catch{E(`Failed to overwrite save`,`error`)}},ee=async e=>{try{b(Ud(e.payload),void 0,e.meta.playthroughId),E(`Game loaded`),g&&(T.current=window.setTimeout(g,500)),await S()}catch{E(`Failed to load save`,`error`)}},A=async e=>{if(confirm(`Delete this save?`))try{await Wd(e);let t=await cf(x);Q.setState(e=>{e.knownSaves=t}),E(`Save deleted`),await S()}catch{E(`Failed to delete save`,`error`)}},j=e=>{d(e.meta.id),p(e.meta.title)},M=async()=>{if(!(!u||!f.trim()))try{await Gd(u,f.trim()),d(null),E(`Save renamed`),await S()}catch{E(`Failed to rename`,`error`)}},te=e=>{e.key===`Enter`?M():e.key===`Escape`&&d(null)},ne=async e=>{try{let t=await vf(e);if(!t)return;let n=new Blob([JSON.stringify(t,null,2)],{type:`application/json`}),r=URL.createObjectURL(n),i=document.createElement(`a`);i.href=r,i.download=`save-${t.save.meta.title.replace(/[^a-z0-9]/gi,`_`)}.json`,i.click(),URL.revokeObjectURL(r),E(`Save exported`)}catch{E(`Failed to export save`,`error`)}},re=()=>{h.current?.click()},ie=async e=>{let t=e.target,n=t.files?.[0];if(n){t.value=``;try{let e=await n.text(),t=JSON.parse(e);if(!ir(t))throw Error(`Invalid save file format`);await xf(t,x),E(`Save imported`),await S()}catch(e){E(Eo(e,`Failed to import save`),`error`)}}},ae=n.reduce((e,t)=>e+t.saves.length,0);return K(`div`,{class:`save-manager`,children:[K(`div`,{class:`saves-header`,children:K(`div`,{class:`saves-header-left`,children:K(`div`,{class:`saves-mode-toggle`,children:[K(`button`,{class:e===`save`?`active`:``,onClick:()=>t(`save`),children:`Save`}),K(`button`,{class:e===`load`?`active`:``,onClick:()=>t(`load`),children:`Load`})]})})}),K(`div`,{class:`saves-toolbar`,children:[K(`button`,{class:`saves-toolbar-button`,onClick:re,children:`Import`}),K(`input`,{ref:h,type:`file`,accept:`.json`,style:`display:none`,onChange:ie})]}),K(`div`,{class:`saves-body`,children:[i?K(`div`,{class:`saves-empty`,children:`Loading...`}):ae===0&&e===`load`?K(`div`,{class:`saves-empty`,children:`No saves yet`}):n.map(t=>{let n=c.has(t.playthrough.id),r=t.playthrough.id===v;return e===`save`&&!r||e===`load`&&t.saves.length===0&&!r?null:K(`div`,{class:`playthrough-group`,children:[K(`div`,{class:`playthrough-header`,onClick:()=>D(t.playthrough.id),children:[K(`span`,{class:`playthrough-chevron ${n?``:`open`}`,children:`▶`}),K(`span`,{class:`playthrough-label`,children:[t.playthrough.label,r?` (current)`:``]}),K(`span`,{class:`playthrough-date`,children:Cg(t.playthrough.createdAt)})]}),!n&&K(`div`,{class:`playthrough-saves`,children:[t.saves.map(t=>K(`div`,{class:`save-slot`,children:[K(`div`,{class:`save-slot-info`,children:[u===t.meta.id?K(`input`,{ref:m,class:`save-rename-input`,value:f,onInput:e=>p(e.target.value),onKeyDown:te,onBlur:M}):K(`div`,{class:`save-slot-title`,children:t.meta.title}),K(`div`,{class:`save-slot-meta`,children:[K(`span`,{children:t.meta.passage}),K(`span`,{children:Sg(t.meta.updatedAt)})]})]}),K(`div`,{class:`save-slot-actions`,children:[e===`save`?K(`button`,{class:`save-slot-action primary`,onClick:()=>k(t.meta.id),children:`Save Here`}):K(`button`,{class:`save-slot-action primary`,onClick:()=>ee(t),children:`Load`}),K(`button`,{class:`save-slot-action`,onClick:()=>j(t),children:`Rename`}),K(`button`,{class:`save-slot-action`,onClick:()=>ne(t.meta.id),children:`Export`}),K(`button`,{class:`save-slot-action danger`,onClick:()=>A(t.meta.id),children:`Delete`})]})]},t.meta.id)),e===`save`&&r&&K(`button`,{class:`save-slot-new`,onClick:O,children:`+ New Save`})]})]},t.playthrough.id)}),e===`save`&&!i&&!n.some(e=>e.playthrough.id===v)&&K(`div`,{class:`playthrough-group`,children:K(`div`,{class:`playthrough-saves`,children:K(`button`,{class:`save-slot-new`,onClick:O,children:`+ New Save`})})})]}),o&&K(`div`,{class:`saves-status ${o.type===`error`?`error`:``}`,children:o.text})]})}$({name:`save-manager`,render(){return K(wg,{})}});function Tg({name:e,def:t}){let[n,r]=I(()=>oh.get(e)),i=t=>{r(t),oh.set(e,t)};switch(t.type){case`toggle`:return K(`label`,{class:`settings-row`,children:[K(`span`,{children:t.config.label}),K(`input`,{type:`checkbox`,checked:!!n,onChange:e=>i(e.target.checked)})]});case`list`:return K(`label`,{class:`settings-row`,children:[K(`span`,{children:t.config.label}),K(`select`,{value:String(n),onChange:e=>i(e.target.value),children:t.config.options.map(e=>K(`option`,{value:e,children:e},e))})]});case`range`:return K(`label`,{class:`settings-row`,children:[K(`span`,{children:[t.config.label,`: `,String(n)]}),K(`input`,{type:`range`,min:t.config.min,max:t.config.max,step:t.config.step,value:Number(n),onInput:e=>i(parseFloat(e.target.value))})]})}}function Eg(){let e=oh.getDefinitions();return K(`div`,{class:`settings-controls`,children:Array.from(e.entries()).map(([e,t])=>K(Tg,{name:e,def:t},e))})}$({name:`settings-controls`,render(){return K(Eg,{})}});var Dg=`inline`;function Og(e){let t=e.trim(),n=oo(t,Za),r=null,i=null;if(n.length>0){let e=0;for(;e+1<n.length&&n[e+1]===n[e]+1;)e++;r=[n[0],n[e]+1];let t=n.length-1;for(;t>0&&n[t-1]===n[t]-1;)t--;i=[n[t],n[n.length-1]+1]}if(i&&i[1]===t.length-6&&t.endsWith(Dg)){let e=t.slice(0,i[0]);if(!ao(e))return{nameExpr:e,inline:!0}}if(r&&r[0]===6&&t.startsWith(Dg)){let e=t.slice(r[1]);if(!/^(?:[-+*/&|^=<>?:,.]|%(?![A-Za-z_]))/.test(e))return{nameExpr:e,inline:!0}}return{nameExpr:t,inline:!1}}$({name:`include`,interpolate:!0,merged:!0,render({rawArgs:e},t){let n=Q(e=>e.storyData),{nameExpr:r,inline:i}=Og(e),a;try{let e=t.evaluate(r);a=String(e)}catch{a=r.replace(/^[\"']|[\"']$/g,``)}let o=n?.passages.get(a),s=t.hooks.useMemo(()=>o?Ni(wi(o.content)):null,[o]);if(!n)return null;if(o&&Q.getState().trackRender(a),!o||!s)return K(`span`,{class:`error`,children:`{include${t.sourceLocation()}: passage \"${a}\" not found}`});let c=o.tags.includes(`nobr`),l=i?t.renderInlineNodes(s):t.renderNodes(s,c?{nobr:!0}:void 0);return c?t.wrap(t.h(ru.Provider,{value:!0},l)):t.wrap(l)}}),$({name:`nobr`,block:!0,render({children:e=[]},t){return t.wrap(t.h(ru.Provider,{value:!0},t.renderNodes(e,{nobr:!0})))},text:({children:e=[]},t)=>t.renderText(e)}),$({name:`goto`,merged:!0,render({rawArgs:e},t){return t.hooks.useLayoutEffect(()=>{let n;try{let r=t.evaluate(e);n=String(r)}catch{n=e.replace(/^[\"']|[\"']$/g,``)}Q.getState().navigate(n)},[]),null}}),$({name:`unset`,render({rawArgs:e},t){let n=t.hooks.useRef(!1),r=t.hooks.useRef(null);if(!n.current){n.current=!0;let i=Q.getState(),a=e.trim();try{if(a.startsWith(`$`))i.deleteVariable(a.slice(1));else if(a.startsWith(`_`))i.deleteTemporary(a.slice(1));else if(a.startsWith(`%`))i.deleteTransient(a.slice(1));else if(a.startsWith(`@`))t.update(a.slice(1),void 0);else throw Error(`{unset} expects a variable ($name, _name, %name, or @name), got \"${a}\"`)}catch(n){r.current={error:n},console.error(`spindle: Error in {unset ${e}}${t.sourceLocation()}:`,n)}}return r.current?K($l,{macro:`unset`,error:r.current.error}):null}}),$({name:`textbox`,storeVar:!0,render({rawArgs:e},t){let{placeholder:n}=t.parseVarArgs(e);return t.useAction({type:`textbox`,key:`$${t.varName}`,authorId:t.id,label:n||t.varName,variable:t.varName,value:t.value,perform:e=>t.setValue(e===void 0?``:String(e))}),K(`input`,{type:`text`,id:t.id,class:t.cls,value:t.value==null?``:String(t.value),placeholder:n,onInput:e=>t.setValue(e.target.value)})}}),$({name:`numberbox`,storeVar:!0,render({rawArgs:e},t){let{placeholder:n}=t.parseVarArgs(e);return t.useAction({type:`numberbox`,key:`$${t.varName}`,authorId:t.id,label:n||t.varName,variable:t.varName,value:t.value,perform:e=>t.setValue(e===void 0?0:Number(e))}),K(`input`,{type:`number`,id:t.id,class:t.cls,value:t.value==null?``:String(t.value),placeholder:n,onInput:e=>{let n=e.target.value;t.setValue(n===``?0:Number(n))}})}}),$({name:`textarea`,storeVar:!0,render({rawArgs:e},t){let{placeholder:n}=t.parseVarArgs(e);return t.useAction({type:`textarea`,key:`$${t.varName}`,authorId:t.id,label:n||t.varName,variable:t.varName,value:t.value,perform:e=>t.setValue(e===void 0?``:String(e))}),K(`textarea`,{id:t.id,class:t.cls,value:t.value==null?``:String(t.value),placeholder:n,onInput:e=>t.setValue(e.target.value)})}});function kg(e){let t=e.match(/^\\s*[\"']?\\$?[\\w.]+[\"']?\\s+(.+)$/s);if(!t)return``;let n=t[1].trimEnd()||t[1];return no(n)??ro(n)}$({name:`checkbox`,storeVar:!0,render({rawArgs:e},t){let n=kg(e);return t.useAction({type:`checkbox`,key:`$${t.varName}`,authorId:t.id,label:n||t.varName||``,variable:t.varName,value:!!t.value,perform:e=>t.setValue(e===void 0?!t.value:!!e)}),K(`label`,{id:t.id,class:t.cls,children:[K(`input`,{type:`checkbox`,checked:!!t.value,onChange:()=>t.setValue(!t.value)}),n?` ${n}`:null]})}});function Ag(e){let t=e.match(/^\\s*[\"']?\\$?[\\w.]+[\"']?\\s+/);if(t){let n=e.slice(t[0].length).trim(),r=to(n,0);if(r&&(r.end===n.length||Za(n[r.end]))){let e=n.slice(r.end).trim(),t=no(e)??ro(e);return{value:r.value,label:t}}}let n=e.match(/^\\s*[\"']?\\$?[\\w.]+[\"']?\\s+[\"'](.+?)[\"']\\s+[\"']?(.+?)[\"']?\\s*$/s);if(!n){let t=e.trim().split(/\\s+/).slice(1);return{value:t[0]??``,label:t.slice(1).join(` `)}}return{value:n[1],label:n[2]}}$({name:`radiobutton`,storeVar:!0,render({rawArgs:e},t){let{value:n,label:r}=Ag(e);return t.useAction({type:`radiobutton`,key:`$${t.varName}:${n}`,authorId:t.id,label:r||n,variable:t.varName,value:t.value,perform:()=>t.setValue(n)}),K(`label`,{id:t.id,class:t.cls,children:[K(`input`,{type:`radio`,name:`radio-${t.varName}`,checked:t.value===n,onChange:()=>t.setValue(n)}),r?` ${r}`:null]})}}),$({name:`listbox`,subMacros:[`option`],storeVar:!0,render({children:e=[]},t){let n=t.extractOptions(e);return t.useAction({type:`listbox`,key:`$${t.varName}`,authorId:t.id,label:t.varName,variable:t.varName,options:n,value:t.value,perform:e=>{e!==void 0&&t.setValue(String(e))}}),K(`select`,{id:t.id,class:t.cls,value:t.value==null?``:String(t.value),onChange:e=>t.setValue(e.target.value),children:n.map(e=>K(`option`,{value:e,children:e},e))})}}),$({name:`cycle`,block:!0,storeVar:!0,render({children:e=[]},t){let n=t.extractOptions(e),r=()=>{if(n.length===0)return;let e=t.getValue(),r=(n.indexOf(String(e))+1)%n.length;t.setValue(n[r])};return t.useAction({type:`cycle`,key:`$${t.varName}`,authorId:t.id,label:t.value==null?n[0]||``:String(t.value),variable:t.varName,options:n,value:t.value,perform:e=>{e===void 0?r():t.setValue(e)}}),K(`button`,{id:t.id,class:t.cls,onClick:r,children:t.value==null?n[0]||``:String(t.value)})}}),$({name:`span`,block:!0,render({children:e=[]},t){return t.wrap(t.renderNodes(e))},text:({children:e=[]},t)=>t.renderText(e)});var jg=new WeakMap;function Mg(e){let t=jg.get(e);if(t&&t.content===e.content)return t.ast;let n=Ni(wi(e.content));return jg.set(e,{content:e.content,ast:n}),n}function Ng(e){return Ju(Mg(e),e.tags.includes(`nobr`)?{nobr:!0}:void 0)}var Pg=new Set([`PassageReady`,`PassageHeader`,`PassageFooter`,`PassageDone`]);function Fg({passage:e,dataTransition:t,navigationId:n}){let r=Q(e=>e.storyData),i=Pg.has(e.name),[a,o]=I(!1),s=R(()=>{try{return Ng(e)}catch(t){return K(`div`,{class:`error`,children:[`Error parsing passage “`,e.name,`”`,Zl(e),`: `,Eo(t)]})}},[e.content,e.name]),c=i?void 0:r?.passages.get(`PassageHeader`),l=i?void 0:r?.passages.get(`PassageFooter`),u=i?void 0:r?.passages.get(`PassageDone`),d=R(()=>{if(!c)return null;try{return Ng(c)}catch(e){return console.error(`spindle: Error in PassageHeader:`,e),null}},[c?.content]),f=R(()=>{if(!l)return null;try{return Ng(l)}catch(e){return console.error(`spindle: Error in PassageFooter:`,e),null}},[l?.content]);Ee(()=>(u&&o(!0),()=>o(!1)),[e.name]);let p=R(()=>{if(!a||!u)return null;try{return Ng(u)}catch(e){return console.error(`spindle: Error in PassageDone:`,e),null}},[a,u?.content]),m=L(null);De(()=>{n!==void 0&&Ch(n),m.current&&Sd(`passagerender`,e.name,m.current)},[e.name,n]);let h=e.tags.includes(`nobr`),g=K(`div`,{ref:m,class:`passage`,\"data-passage\":e.name,\"data-tags\":e.tags.join(` `),\"data-transition\":t,children:[d&&K(`div`,{class:`passage-header`,children:d}),s,f&&K(`div`,{class:`passage-footer`,children:f}),p&&K(`div`,{hidden:!0,children:p})]});return h?K(ru.Provider,{value:!0,children:g}):g}var Ig=new Set([`none`,`fade`,`fade-through`,`crossfade`]),Lg={type:`fade-through`,duration:300,pause:50};function Rg(e){let t=e.find(e=>e.startsWith(`transition:`));if(!t)return null;let n=t.slice(11);if(!Ig.has(n))return console.warn(`Unknown transition type: \"${n}\"`),null;let r={type:n};for(let t of e)if(t.startsWith(`duration:`)){let e=Number(t.slice(9));Number.isNaN(e)||(r.duration=e)}else if(t.startsWith(`pause:`)){let e=Number(t.slice(6));Number.isNaN(e)||(r.pause=e)}return r}function zg(e){return{type:e.type,duration:e.duration??Lg.duration,pause:e.pause??Lg.pause}}function Bg(e,t,n){let r=Rg(e);return r?zg(r):t?zg(t):n?zg(n):{...Lg}}function Vg(e,t){let n=e.cloneNode(!0);n.removeAttribute(`id`);let r=n.querySelectorAll(`[id]`);for(let e=0;e<r.length;e++)r[e].removeAttribute(`id`);n.style.pointerEvents=`none`,n.style.userSelect=`none`;let i=n.querySelectorAll(`audio, video`);for(let e=0;e<i.length;e++){let t=i[e];t.pause?.(),t.muted=!0}return n.classList.remove(`passage`),n.classList.add(`passage-snapshot`),n.setAttribute(`data-transition`,t),n}function Hg(e,t){e.style.setProperty(`--passage-in-duration`,`${t.duration/1e3}s`),e.style.setProperty(`--passage-out-duration`,`${t.duration/1e3}s`),e.style.setProperty(`--passage-pause`,`${t.pause/1e3}s`)}function Ug(e){if(!e)return;e.classList.remove(`passage-container--crossfading`);let t=e.querySelectorAll(`.passage-snapshot`);for(let e=0;e<t.length;e++)t[e].remove()}$({name:`passage`,interpolate:!0,render(e,t){let{currentPassage:n,navigationId:r,storyData:i,renderDeferred:a}=zi(`currentPassage`,`navigationId`,`storyData`,`renderDeferred`),[o,s]=I({passage:n,id:r}),c=o.passage,l=e=>s({passage:e,id:r}),u=L(`fade`),d=L(0),f=L(null),p=L([]),m=Oe(()=>{for(let e of p.current)clearTimeout(e);p.current=[],Ug(f.current)},[]);Ee(()=>m,[m]),Ee(()=>{let e=Q.getState(),{history:t,historyIndex:a,transitionConfig:s}=e,h=e.consumeNextTransition(),g=d.current;d.current=t.length;let _=!c,v=t.length===1&&a===0&&g>1,y=t.length>1&&a===t.length-1&&g>1&&Math.abs(t.length-g)>1;if(r===o.id)return;m();let b=i?.passages.get(n);if(!b){u.current=`none`,l(n);return}if(_||v||y){u.current=`fade`,l(n);return}let x=Bg(b.tags,h,s);u.current=x.type;let S=f.current;if(x.type===`none`){l(n);return}if(x.type===`fade`){S&&Hg(S,x),l(n);return}if(x.type===`fade-through`){if(!S){l(n);return}Hg(S,x);let e=S.querySelector(`.passage`);if(!e){l(n);return}let t=Vg(e,x.type);S.appendChild(t),l(``);let r=x.duration+x.pause,i=setTimeout(()=>{l(n)},r),a=r+x.duration;p.current=[i,setTimeout(()=>{Ug(S)},a)];return}if(x.type===`crossfade`){if(!S){l(n);return}Hg(S,x);let e=S.querySelector(`.passage`);if(!e){l(n);return}let t=Vg(e,x.type);S.classList.add(`passage-container--crossfading`),S.appendChild(t),l(n),p.current=[setTimeout(()=>{Ug(S)},x.duration)];return}l(n)},[r]);let h=a?i?.passages.get(`StoryLoading`)??null:c?i?.passages.get(c):null;if(!h&&c&&!a)return K(`div`,{class:`error`,children:[`Error: Passage “`,c,`” not found.`]});let g=i?.passages.get(`PassageReady`);return K(`div`,{id:t.id??`story`,class:t.className??`story`,children:[!a&&g&&K(`div`,{hidden:!0,children:Ng(g)},`ready-${r}`),K(`div`,{class:`passage-container`,ref:f,children:h&&K(Fg,{passage:h,dataTransition:a?`none`:u.current,navigationId:a?void 0:o.id},a?`loading`:`nav-${o.id}`)})]})}});var Wg=/\\w+/y,Gg=/\\d+/y;function Kg(e,t,n){return e.lastIndex=n,e.exec(t)?.[0]??null}function qg(e){let t=e.trim(),n=to(t,0);if(!n)return null;let r={},i=n.end;for(;i<t.length;){let e=Kg(Wg,t,i);if(!e){i=to(t,i)?.end??i+1;continue}i+=e.length;let n,a=i;for(;a<t.length&&Za(t[a]);)a++;if(a>i){let e=to(t,a),r=e?null:Kg(Gg,t,a);e?(n=e.value,i=e.end):r&&(n=r,i=a+r.length)}switch(e){case`goto`:r.goto=n;break;case`dialog`:r.dialog=n;break;case`run`:r.run=n;break;case`name`:r.name=n;break;case`priority`:r.priority=n?Number(n):0;break;case`once`:r.once=!0;break}}return{condition:n.value,options:r}}function Jg(e){let t=e.trim();return no(t)??t.replace(/^['\"]|['\"]$/g,``)}$({name:`watch`,render(e,t){let{hooks:n}=t,r=qg(e.rawArgs);if(!r)return null;let{condition:i,options:a}=r,o=n.useRef(!1);return o.current||(o.current=!0,Sp(i,a)),null}}),$({name:`unwatch`,render(e,t){let n=Jg(e.rawArgs),r=t.hooks.useRef(!1);return r.current||(r.current=!0,Cp(n)),null}});var Yg=`*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;font-size:16px}body{color:#e0e0e0;background-color:#1a1a2e;min-height:100vh;margin:0;padding:0;font-family:Georgia,Times New Roman,serif;line-height:1.75}tw-storydata{display:none!important}#story{max-width:42em;margin:0 auto;padding:2em 1.5em}.passage-container{position:relative}.passage-container--crossfading{display:grid}.passage-container--crossfading>*{grid-area:1/1}.passage{animation:passage-fade-in var(--passage-in-duration,.3s) ease}.passage[data-transition=none]{animation:none}.passage-snapshot{animation:passage-fade-out var(--passage-out-duration,.3s) ease forwards;pointer-events:none;-webkit-user-select:none;user-select:none}@keyframes passage-fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes passage-fade-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-8px)}}@media (prefers-reduced-motion:reduce){.passage,.passage-snapshot{animation-duration:10ms!important}}.macro-button{color:#64b5f6;font:inherit;cursor:pointer;background:#64b5f626;border:1px solid #64b5f666;border-radius:4px;padding:.25em .75em;font-size:.95em;transition:background .2s,border-color .2s}.macro-button:hover{background:#64b5f640;border-color:#90caf9}.macro-button:active{background:#64b5f659}.error{color:#ef5350;background:#ef53501a;border:1px solid #ef5350;border-radius:4px;padding:1em;font-family:monospace}.loading{text-align:center;opacity:.6;padding:2em}.story-menubar{z-index:100;background:#16213e;border-bottom:1px solid #ffffff14;align-items:center;gap:.5em;padding:.5em 1.5em;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:.9em;display:flex;position:sticky;top:0}.story-title{color:#e0e0e0;white-space:nowrap;text-overflow:ellipsis;flex:1;font-weight:600;overflow:hidden}.menubar-button{color:#9e9e9e;cursor:pointer;font:inherit;background:0 0;border:1px solid #0000;border-radius:4px;padding:.35em .7em;transition:color .2s,background .2s}.menubar-button:hover{color:#e0e0e0;background:#ffffff14}.menubar-button:disabled{opacity:.4;cursor:default}.menubar-button:disabled:hover{color:#9e9e9e;background:0 0}.dialog-overlay{z-index:200;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.dialog-panel{color:#e0e0e0;background:#16213e;border:1px solid #ffffff1a;border-radius:8px;flex-direction:column;width:90%;max-width:500px;max-height:80vh;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;display:flex;position:relative}.dialog-panel:focus{outline:none}.dialog-saves{max-width:550px}.dialog-settings{max-width:400px}.dialog-close{z-index:1;color:#9e9e9e;cursor:pointer;background:0 0;border:none;padding:.25em;font-size:1.1em;line-height:1;position:absolute;top:.75em;right:.75em}.dialog-close:hover{color:#e0e0e0}.dialog-body{flex:1;min-height:0;overflow-y:auto}.settings-controls{flex-direction:column;gap:1em;padding:1em 1.25em;display:flex}.settings-row{justify-content:space-between;align-items:center;gap:1em;display:flex}.settings-row select,.settings-row input[type=range]{accent-color:#64b5f6}.settings-row select{color:#e0e0e0;font:inherit;background:#1a1a2e;border:1px solid #ffffff26;border-radius:4px;padding:.3em .5em}.settings-row input[type=checkbox]{accent-color:#64b5f6;width:1.1em;height:1.1em}.save-manager{flex-direction:column;flex:1;min-height:0;display:flex}.saves-header{border-bottom:1px solid #ffffff14;flex-shrink:0;justify-content:space-between;align-items:center;padding:1em 3em 1em 1.25em;font-weight:600;display:flex}.saves-header-left{align-items:center;gap:.75em;display:flex}.saves-mode-toggle{border:1px solid #ffffff26;border-radius:4px;gap:0;display:flex;overflow:hidden}.saves-mode-toggle button{color:#9e9e9e;font:inherit;cursor:pointer;background:0 0;border:none;padding:.3em .8em;font-size:.85em;font-weight:600;transition:background .2s,color .2s}.saves-mode-toggle button.active{color:#64b5f6;background:#64b5f633}.saves-mode-toggle button:hover:not(.active){color:#e0e0e0}.saves-body{flex:1;min-height:0;padding:.75em 1.25em;overflow-y:auto}.saves-empty{text-align:center;opacity:.5;padding:2em 1em;font-size:.9em}.saves-toolbar{border-bottom:1px solid #ffffff14;flex-shrink:0;gap:.5em;padding:.5em 1.25em;display:flex}.saves-toolbar-button{color:#9e9e9e;font:inherit;cursor:pointer;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:4px;padding:.3em .7em;font-size:.8em;transition:background .2s,color .2s}.saves-toolbar-button:hover{color:#e0e0e0;background:#ffffff1a}.playthrough-group{margin-bottom:.75em}.playthrough-header{cursor:pointer;-webkit-user-select:none;user-select:none;color:#9e9e9e;align-items:center;gap:.5em;padding:.4em 0;font-size:.85em;transition:color .2s;display:flex}.playthrough-header:hover{color:#e0e0e0}.playthrough-chevron{font-size:.7em;transition:transform .2s;display:inline-block}.playthrough-chevron.open{transform:rotate(90deg)}.playthrough-label{font-weight:600}.playthrough-date{opacity:.6;font-size:.9em}.playthrough-saves{flex-direction:column;gap:.4em;padding-left:.25em;display:flex}.save-slot{background:#ffffff08;border:1px solid #ffffff0f;border-radius:6px;align-items:center;gap:.75em;padding:.5em .6em;transition:background .15s;display:flex}.save-slot:hover{background:#ffffff0f}.save-slot-info{flex:1;min-width:0}.save-slot-title{white-space:nowrap;text-overflow:ellipsis;font-size:.9em;font-weight:500;overflow:hidden}.save-slot-meta{color:#9e9e9e;gap:.75em;font-size:.75em;display:flex}.save-slot-actions{flex-shrink:0;gap:.3em;display:flex}.save-slot-action{color:#9e9e9e;font:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:3px;padding:.2em .5em;font-size:.75em;transition:color .2s,background .2s}.save-slot-action:hover{color:#e0e0e0;background:#ffffff14}.save-slot-action.primary{color:#64b5f6;border-color:#64b5f64d}.save-slot-action.primary:hover{background:#64b5f626}.save-slot-action.danger:hover{color:#ef5350;background:#ef53501a}.save-slot-new{color:#9e9e9e;font:inherit;cursor:pointer;background:0 0;border:1px dashed #ffffff1f;border-radius:6px;justify-content:center;align-items:center;width:100%;margin-top:.25em;padding:.5em;font-size:.8em;transition:color .2s,border-color .2s,background .2s;display:flex}.save-slot-new:hover{color:#64b5f6;background:#64b5f60d;border-color:#64b5f64d}.saves-status{color:#81c784;text-align:center;border-top:1px solid #ffffff14;flex-shrink:0;padding:.5em 1.25em;font-size:.8em}.saves-status.error{color:#ef5350;background:0 0;border:none;border-radius:0;padding:.5em 1.25em;font-family:inherit}.save-rename-input{color:#e0e0e0;font:inherit;background:#1a1a2e;border:1px solid #64b5f666;border-radius:3px;width:100%;padding:.15em .4em;font-size:.9em}.save-rename-input:focus{border-color:#64b5f6;outline:none}.macro-link{color:#64b5f6;cursor:pointer;border-bottom:1px solid #64b5f64d;text-decoration:none;transition:color .2s,border-color .2s}.macro-link:hover{color:#90caf9;border-bottom-color:#90caf9}.macro-link:active{color:#42a5f5}.macro-textbox,.macro-numberbox,.macro-textarea{color:#e0e0e0;font:inherit;background:#1a1a2e;border:1px solid #ffffff26;border-radius:4px;padding:.3em .5em}.macro-textbox:focus,.macro-numberbox:focus,.macro-textarea:focus{border-color:#64b5f6;outline:none}.macro-textarea{resize:vertical;min-height:3em}.macro-checkbox,.macro-radiobutton{cursor:pointer;align-items:center;gap:.3em;display:inline-flex}.macro-checkbox input,.macro-radiobutton input{accent-color:#64b5f6}.macro-listbox{color:#e0e0e0;font:inherit;background:#1a1a2e;border:1px solid #ffffff26;border-radius:4px;padding:.3em .5em}.macro-cycle{color:#64b5f6;font:inherit;cursor:pointer;background:#64b5f626;border:1px solid #64b5f666;border-radius:4px;padding:.25em .75em;transition:background .2s,border-color .2s}.macro-cycle:hover{background:#64b5f640;border-color:#90caf9}.macro-meter{background:#2a2a3e;border:1px solid #444;border-radius:.3em;width:100%;height:1.4em;position:relative;overflow:hidden}.macro-meter-fill{background:#64b5f6;height:100%;transition:width .3s}.macro-meter-label{color:#e0e0e0;text-shadow:0 1px 2px #000c;pointer-events:none;justify-content:center;align-items:center;font-size:.85em;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.md{display:contents}.passage p{margin:.6em 0}.passage p:first-child{margin-top:0}.passage p:last-child{margin-bottom:0}.passage h1,.passage h2,.passage h3,.passage h4,.passage h5,.passage h6{color:#f0f0f0;margin:1em 0 .4em;line-height:1.3}.passage h1{font-size:1.8em}.passage h2{font-size:1.5em}.passage h3{font-size:1.25em}.passage h4{font-size:1.1em}.passage h5{font-size:1em}.passage h6{opacity:.8;font-size:.9em}.passage code{background:#ffffff14;border-radius:3px;padding:.15em .35em;font-family:Fira Code,Cascadia Code,Consolas,monospace;font-size:.9em}.passage pre{background:#0000004d;border:1px solid #ffffff14;border-radius:6px;margin:.8em 0;padding:1em;overflow-x:auto}.passage pre code{background:0 0;border-radius:0;padding:0;font-size:.85em}.passage blockquote{color:#b0b0b0;border-left:3px solid #64b5f680;margin:.8em 0;padding:.4em 1em}.passage blockquote p{margin:.3em 0}.passage ul,.passage ol{margin:.6em 0;padding-left:1.8em}.passage li{margin:.2em 0}.passage hr{border:none;border-top:1px solid #ffffff1f;margin:1.2em 0}.passage table{border-collapse:collapse;width:100%;margin:.8em 0}.passage th,.passage td{text-align:left;border:1px solid #ffffff1f;padding:.5em .75em}.passage th{background:#ffffff0f;font-weight:600}.passage tr:nth-child(2n){background:#ffffff05}.passage del{opacity:.5}.passage strong{color:#f0f0f0}.macro-type-cursor:after{content:\"█\";color:#64b5f6;animation:.7s step-end infinite type-blink}.macro-type-done .macro-type-cursor:after{display:none}@keyframes type-blink{50%{opacity:0}}`;function Xg(e,t){e.innerHTML=``;let n=document.createElement(`div`);n.style.cssText=`font-family:monospace;padding:2rem;max-width:60rem;margin:0 auto`;let r=document.createElement(`h1`);r.style.color=`#c00`,r.textContent=`Story Validation Errors`,n.appendChild(r);let i=document.createElement(`ul`);i.style.cssText=`line-height:1.6`;for(let e of t){let t=document.createElement(`li`);t.textContent=e,i.appendChild(t)}n.appendChild(i),e.appendChild(n)}function Zg(){let e=Xm(),t=document.createElement(`style`);if(t.id=`spindle-styles`,t.textContent=Yg,document.head.appendChild(t),Rh(),e.userCSS){let t=document.createElement(`style`);t.textContent=e.userCSS,document.head.appendChild(t)}if(e.userScript)try{Function(e.userScript)()}catch(e){console.error(`spindle: Error in story JavaScript:`,e)}document.dispatchEvent(new CustomEvent(`:storystartup`));let n={},r=e.passages.get(`StoryVariables`);if(!r){let e=`Missing StoryVariables passage. Add a :: StoryVariables passage to declare your variables.`,t=document.getElementById(`root`);throw t&&Xg(t,[e]),Error(`spindle: ${e}`)}let i=Kh(r.content),a=qa().filter(e=>e.storeVar).map(e=>e.name),o=ng(e.passages,i,a),s={},c=e.passages.get(`StoryTransients`);if(c){let e=Kh(c.content,`%`);for(let t of e.keys())i.has(t)&&o.push(`StoryTransients: Variable \"${t}\" is already declared in StoryVariables. Names must be unique across scopes.`);s=rg(e)}if(o.length>0){let e=document.getElementById(`root`);throw e&&Xg(e,o),Error(`spindle: ${o.length} validation error(s):\\n${o.join(`\n`)}`)}n=rg(i),Nh(Object.keys(n),Object.keys(s)),Q.getState().init(e,n,s),Cm();let l=/\\{widget\\s+[\"']?(\\w+)[\"']?[^}]*\\}([\\s\\S]*?)\\{\\/widget\\}/g;for(let[t,n]of e.passages)if(t===`StoryInit`||n.tags.includes(`widget`)){let e;for(;(e=l.exec(n.content))!==null;){let t=e[1],n=e[2];/\\{@children\\}/.test(n)&&Ei(t)}l.lastIndex=0}Nf(gf(e.ifid));for(let[,t]of e.passages)if(t.tags.includes(`widget`)){let e=Ni(wi(t.content));for(let n of e)if(n.type===`macro`&&n.name===`widget`&&n.rawArgs){let{name:e,params:r}=ag(n.rawArgs,`$_@`),i=n.children,a=ig(i);try{Ya(e,i,r,a)}catch(n){console.error(`spindle: widget \"${e}\" in passage \"${t.name}\" was not registered: ${Eo(n)}`);continue}a&&Ei(e)}}let u=Q.getState().navigationId;Q.subscribe(e=>{e.navigationId!==u&&(u=e.navigationId,mh())}),Ap();let d=e.passages.get(`StoryInterface`);d&&!d.content.includes(`{passage}`)&&console.warn(`spindle: StoryInterface passage does not contain {passage}. The current passage will not be displayed.`);let f=document.getElementById(`root`);if(!f)throw Error(`spindle: No <div id=\"root\"> element found.`);fe(K(Jm,{}),f);let p=Dh();p?p.then(()=>{document.dispatchEvent(new CustomEvent(`:storyready`))}):document.dispatchEvent(new CustomEvent(`:storyready`))}document.readyState===`loading`?document.addEventListener(`DOMContentLoaded`,Zg):Zg();</script>\n </head>\n <body>\n <div id=\"root\"></div>\n {{STORY_DATA}}\n </body>\n</html>\n"})
|