extwee 2.3.2 → 2.3.3
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/build/extwee.core.min.js +1 -0
- package/build/extwee.twine1html.min.js +1 -0
- package/build/extwee.twine2archive.min.js +1 -0
- package/build/extwee.tws.min.js +1 -0
- package/build/test-modular.html +126 -0
- package/eslint.config.js +4 -1
- package/package.json +20 -18
- package/src/IFID/generate.js +2 -2
- package/src/Story.js +1 -1
- package/src/Twine1HTML/parse-web.js +255 -0
- package/src/Twine2ArchiveHTML/parse-web.js +134 -0
- package/src/Twine2HTML/parse-web.js +428 -0
- package/src/Web/web-core.js +31 -0
- package/src/Web/web-index.js +31 -0
- package/src/Web/web-twine1html.js +15 -0
- package/src/Web/web-twine2archive.js +15 -0
- package/src/Web/web-tws.js +12 -0
- package/test/Config/Config.test.js +1 -1
- package/test/Config/isDirectory.test.js +15 -9
- package/test/Config/isFile.test.js +14 -11
- package/test/Config/loadStoryFormat.test.js +49 -33
- package/test/Config/readDirectories.test.js +25 -15
- package/test/Objects/Story.test.js +1 -0
- package/test/StoryFormat/StoryFormat.Parse.test.js +1 -0
- package/test/Twine2ArchiveHTML/Twine2ArchiveHTML.Parse.test.js +1 -0
- package/test/Twine2HTML/Twine2HTML.Parse.test.js +1 -0
- package/test/Web/window.Extwee.test.js +20 -13
- package/types/src/Story.d.ts +1 -1
- package/types/src/Twine1HTML/parse-web.d.ts +10 -0
- package/types/src/Twine2ArchiveHTML/parse-web.d.ts +37 -0
- package/types/src/Twine2HTML/parse-web.d.ts +21 -0
- package/types/src/Web/html-entities-lite.d.ts +12 -0
- package/types/src/Web/semver-lite.d.ts +10 -0
- package/types/src/Web/uuid-lite.d.ts +6 -0
- package/types/src/Web/web-core.d.ts +1 -0
- package/types/src/Web/web-index.d.ts +1 -0
- package/types/src/Web/web-twine1html.d.ts +3 -0
- package/types/src/Web/web-twine2archive.d.ts +3 -0
- package/types/src/Web/web-tws.d.ts +2 -0
- package/webpack.config.js +22 -2
- package/build/extwee.web.min.js +0 -2
- package/build/extwee.web.min.js.LICENSE.txt +0 -1
- package/web-index.js +0 -31
|
@@ -0,0 +1 @@
|
|
|
1
|
+
!function(e,r){"object"==typeof exports&&"object"==typeof module?module.exports=r():"function"==typeof define&&define.amd?define([],r):"object"==typeof exports?exports.Extwee=r():e.Extwee=r()}(this,(()=>(()=>{"use strict";var e={7:(e,r,t)=>{const s=t(908);e.exports=(e,r,t,o,a)=>{"string"==typeof t&&(a=o,o=t,t=void 0);try{return new s(e instanceof s?e.version:e,t).inc(r,o,a).version}catch(e){return null}}},32:(e,r,t)=>{const s=t(311),o=t(904),{ANY:a}=o,n=t(638),i=t(560),l=[new o(">=0.0.0-0")],c=[new o(">=0.0.0")],p=(e,r,t)=>{if(e===r)return!0;if(1===e.length&&e[0].semver===a){if(1===r.length&&r[0].semver===a)return!0;e=t.includePrerelease?l:c}if(1===r.length&&r[0].semver===a){if(t.includePrerelease)return!0;r=c}const s=new Set;let o,p,g,m,f,d,E;for(const r of e)">"===r.operator||">="===r.operator?o=u(o,r,t):"<"===r.operator||"<="===r.operator?p=h(p,r,t):s.add(r.semver);if(s.size>1)return null;if(o&&p){if(g=i(o.semver,p.semver,t),g>0)return null;if(0===g&&(">="!==o.operator||"<="!==p.operator))return null}for(const e of s){if(o&&!n(e,String(o),t))return null;if(p&&!n(e,String(p),t))return null;for(const s of r)if(!n(e,String(s),t))return!1;return!0}let w=!(!p||t.includePrerelease||!p.semver.prerelease.length)&&p.semver,y=!(!o||t.includePrerelease||!o.semver.prerelease.length)&&o.semver;w&&1===w.prerelease.length&&"<"===p.operator&&0===w.prerelease[0]&&(w=!1);for(const e of r){if(E=E||">"===e.operator||">="===e.operator,d=d||"<"===e.operator||"<="===e.operator,o)if(y&&e.semver.prerelease&&e.semver.prerelease.length&&e.semver.major===y.major&&e.semver.minor===y.minor&&e.semver.patch===y.patch&&(y=!1),">"===e.operator||">="===e.operator){if(m=u(o,e,t),m===e&&m!==o)return!1}else if(">="===o.operator&&!n(o.semver,String(e),t))return!1;if(p)if(w&&e.semver.prerelease&&e.semver.prerelease.length&&e.semver.major===w.major&&e.semver.minor===w.minor&&e.semver.patch===w.patch&&(w=!1),"<"===e.operator||"<="===e.operator){if(f=h(p,e,t),f===e&&f!==p)return!1}else if("<="===p.operator&&!n(p.semver,String(e),t))return!1;if(!e.operator&&(p||o)&&0!==g)return!1}return!(o&&d&&!p&&0!==g||p&&E&&!o&&0!==g||y||w)},u=(e,r,t)=>{if(!e)return r;const s=i(e.semver,r.semver,t);return s>0?e:s<0||">"===r.operator&&">="===e.operator?r:e},h=(e,r,t)=>{if(!e)return r;const s=i(e.semver,r.semver,t);return s<0?e:s>0||"<"===r.operator&&"<="===e.operator?r:e};e.exports=(e,r,t={})=>{if(e===r)return!0;e=new s(e,t),r=new s(r,t);let o=!1;e:for(const s of e.set){for(const e of r.set){const r=p(s,e,t);if(o=o||null!==r,r)continue e}if(o)return!1}return!0}},59:(e,r,t)=>{const s=t(560);e.exports=(e,r,t)=>s(e,r,t)<0},75:(e,r,t)=>{const s=t(908),o=t(904),{ANY:a}=o,n=t(311),i=t(638),l=t(580),c=t(59),p=t(200),u=t(89);e.exports=(e,r,t,h)=>{let g,m,f,d,E;switch(e=new s(e,h),r=new n(r,h),t){case">":g=l,m=p,f=c,d=">",E=">=";break;case"<":g=c,m=u,f=l,d="<",E="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(i(e,r,h))return!1;for(let t=0;t<r.set.length;++t){const s=r.set[t];let n=null,i=null;if(s.forEach((e=>{e.semver===a&&(e=new o(">=0.0.0")),n=n||e,i=i||e,g(e.semver,n.semver,h)?n=e:f(e.semver,i.semver,h)&&(i=e)})),n.operator===d||n.operator===E)return!1;if((!i.operator||i.operator===d)&&m(e,i.semver))return!1;if(i.operator===E&&f(e,i.semver))return!1}return!0}},89:(e,r,t)=>{const s=t(560);e.exports=(e,r,t)=>s(e,r,t)>=0},111:(e,r,t)=>{const s=t(641),o=t(999),a=t(580),n=t(89),i=t(59),l=t(200);e.exports=(e,r,t,c)=>{switch(r){case"===":return"object"==typeof e&&(e=e.version),"object"==typeof t&&(t=t.version),e===t;case"!==":return"object"==typeof e&&(e=e.version),"object"==typeof t&&(t=t.version),e!==t;case"":case"=":case"==":return s(e,t,c);case"!=":return o(e,t,c);case">":return a(e,t,c);case">=":return n(e,t,c);case"<":return i(e,t,c);case"<=":return l(e,t,c);default:throw new TypeError(`Invalid operator: ${r}`)}}},123:e=>{const r=/^[0-9]+$/,t=(e,t)=>{const s=r.test(e),o=r.test(t);return s&&o&&(e=+e,t=+t),e===t?0:s&&!o?-1:o&&!s?1:e<t?-1:1};e.exports={compareIdentifiers:t,rcompareIdentifiers:(e,r)=>t(r,e)}},144:(e,r,t)=>{const s=t(908);e.exports=(e,r,t=!1)=>{if(e instanceof s)return e;try{return new s(e,r)}catch(e){if(!t)return null;throw e}}},170:(e,r,t)=>{const s=t(908),o=t(144),{safeRe:a,t:n}=t(718);e.exports=(e,r)=>{if(e instanceof s)return e;if("number"==typeof e&&(e=String(e)),"string"!=typeof e)return null;let t=null;if((r=r||{}).rtl){const s=r.includePrerelease?a[n.COERCERTLFULL]:a[n.COERCERTL];let o;for(;(o=s.exec(e))&&(!t||t.index+t[0].length!==e.length);)t&&o.index+o[0].length===t.index+t[0].length||(t=o),s.lastIndex=o.index+o[1].length+o[2].length;s.lastIndex=-1}else t=e.match(r.includePrerelease?a[n.COERCEFULL]:a[n.COERCE]);if(null===t)return null;const i=t[2],l=t[3]||"0",c=t[4]||"0",p=r.includePrerelease&&t[5]?`-${t[5]}`:"",u=r.includePrerelease&&t[6]?`+${t[6]}`:"";return o(`${i}.${l}.${c}${p}${u}`,r)}},200:(e,r,t)=>{const s=t(560);e.exports=(e,r,t)=>s(e,r,t)<=0},254:(e,r,t)=>{const s=t(908);e.exports=(e,r)=>new s(e,r).minor},261:(e,r,t)=>{const s=t(908),o=t(311),a=t(580);e.exports=(e,r)=>{e=new o(e,r);let t=new s("0.0.0");if(e.test(t))return t;if(t=new s("0.0.0-0"),e.test(t))return t;t=null;for(let r=0;r<e.set.length;++r){const o=e.set[r];let n=null;o.forEach((e=>{const r=new s(e.semver.version);switch(e.operator){case">":0===r.prerelease.length?r.patch++:r.prerelease.push(0),r.raw=r.format();case"":case">=":n&&!a(r,n)||(n=r);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${e.operator}`)}})),!n||t&&!a(t,n)||(t=n)}return t&&e.test(t)?t:null}},270:(e,r,t)=>{const s=t(908),o=t(311);e.exports=(e,r,t)=>{let a=null,n=null,i=null;try{i=new o(r,t)}catch(e){return null}return e.forEach((e=>{i.test(e)&&(a&&1!==n.compare(e)||(a=e,n=new s(a,t)))})),a}},272:e=>{const r="object"==typeof process&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};e.exports=r},277:(e,r,t)=>{const s=t(909);e.exports=(e,r)=>e.sort(((e,t)=>s(t,e,r)))},311:(e,r,t)=>{const s=/\s+/g;class o{constructor(e,r){if(r=n(r),e instanceof o)return e.loose===!!r.loose&&e.includePrerelease===!!r.includePrerelease?e:new o(e.raw,r);if(e instanceof i)return this.raw=e.value,this.set=[[e]],this.formatted=void 0,this;if(this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease,this.raw=e.trim().replace(s," "),this.set=this.raw.split("||").map((e=>this.parseRange(e.trim()))).filter((e=>e.length)),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){const e=this.set[0];if(this.set=this.set.filter((e=>!E(e[0]))),0===this.set.length)this.set=[e];else if(this.set.length>1)for(const e of this.set)if(1===e.length&&w(e[0])){this.set=[e];break}}this.formatted=void 0}get range(){if(void 0===this.formatted){this.formatted="";for(let e=0;e<this.set.length;e++){e>0&&(this.formatted+="||");const r=this.set[e];for(let e=0;e<r.length;e++)e>0&&(this.formatted+=" "),this.formatted+=r[e].toString().trim()}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange(e){const r=((this.options.includePrerelease&&f)|(this.options.loose&&d))+":"+e,t=a.get(r);if(t)return t;const s=this.options.loose,o=s?p[u.HYPHENRANGELOOSE]:p[u.HYPHENRANGE];e=e.replace(o,N(this.options.includePrerelease)),l("hyphen replace",e),e=e.replace(p[u.COMPARATORTRIM],h),l("comparator trim",e),e=e.replace(p[u.TILDETRIM],g),l("tilde trim",e),e=e.replace(p[u.CARETTRIM],m),l("caret trim",e);let n=e.split(" ").map((e=>b(e,this.options))).join(" ").split(/\s+/).map((e=>T(e,this.options)));s&&(n=n.filter((e=>(l("loose invalid filter",e,this.options),!!e.match(p[u.COMPARATORLOOSE]))))),l("range list",n);const c=new Map,w=n.map((e=>new i(e,this.options)));for(const e of w){if(E(e))return[e];c.set(e.value,e)}c.size>1&&c.has("")&&c.delete("");const y=[...c.values()];return a.set(r,y),y}intersects(e,r){if(!(e instanceof o))throw new TypeError("a Range is required");return this.set.some((t=>y(t,r)&&e.set.some((e=>y(e,r)&&t.every((t=>e.every((e=>t.intersects(e,r)))))))))}test(e){if(!e)return!1;if("string"==typeof e)try{e=new c(e,this.options)}catch(e){return!1}for(let r=0;r<this.set.length;r++)if($(this.set[r],e,this.options))return!0;return!1}}e.exports=o;const a=new(t(794)),n=t(587),i=t(904),l=t(272),c=t(908),{safeRe:p,t:u,comparatorTrimReplace:h,tildeTrimReplace:g,caretTrimReplace:m}=t(718),{FLAG_INCLUDE_PRERELEASE:f,FLAG_LOOSE:d}=t(874),E=e=>"<0.0.0-0"===e.value,w=e=>""===e.value,y=(e,r)=>{let t=!0;const s=e.slice();let o=s.pop();for(;t&&s.length;)t=s.every((e=>o.intersects(e,r))),o=s.pop();return t},b=(e,r)=>(l("comp",e,r),e=I(e,r),l("caret",e),e=O(e,r),l("tildes",e),e=R(e,r),l("xrange",e),e=x(e,r),l("stars",e),e),v=e=>!e||"x"===e.toLowerCase()||"*"===e,O=(e,r)=>e.trim().split(/\s+/).map((e=>S(e,r))).join(" "),S=(e,r)=>{const t=r.loose?p[u.TILDELOOSE]:p[u.TILDE];return e.replace(t,((r,t,s,o,a)=>{let n;return l("tilde",e,r,t,s,o,a),v(t)?n="":v(s)?n=`>=${t}.0.0 <${+t+1}.0.0-0`:v(o)?n=`>=${t}.${s}.0 <${t}.${+s+1}.0-0`:a?(l("replaceTilde pr",a),n=`>=${t}.${s}.${o}-${a} <${t}.${+s+1}.0-0`):n=`>=${t}.${s}.${o} <${t}.${+s+1}.0-0`,l("tilde return",n),n}))},I=(e,r)=>e.trim().split(/\s+/).map((e=>A(e,r))).join(" "),A=(e,r)=>{l("caret",e,r);const t=r.loose?p[u.CARETLOOSE]:p[u.CARET],s=r.includePrerelease?"-0":"";return e.replace(t,((r,t,o,a,n)=>{let i;return l("caret",e,r,t,o,a,n),v(t)?i="":v(o)?i=`>=${t}.0.0${s} <${+t+1}.0.0-0`:v(a)?i="0"===t?`>=${t}.${o}.0${s} <${t}.${+o+1}.0-0`:`>=${t}.${o}.0${s} <${+t+1}.0.0-0`:n?(l("replaceCaret pr",n),i="0"===t?"0"===o?`>=${t}.${o}.${a}-${n} <${t}.${o}.${+a+1}-0`:`>=${t}.${o}.${a}-${n} <${t}.${+o+1}.0-0`:`>=${t}.${o}.${a}-${n} <${+t+1}.0.0-0`):(l("no pr"),i="0"===t?"0"===o?`>=${t}.${o}.${a}${s} <${t}.${o}.${+a+1}-0`:`>=${t}.${o}.${a}${s} <${t}.${+o+1}.0-0`:`>=${t}.${o}.${a} <${+t+1}.0.0-0`),l("caret return",i),i}))},R=(e,r)=>(l("replaceXRanges",e,r),e.split(/\s+/).map((e=>L(e,r))).join(" ")),L=(e,r)=>{e=e.trim();const t=r.loose?p[u.XRANGELOOSE]:p[u.XRANGE];return e.replace(t,((t,s,o,a,n,i)=>{l("xRange",e,t,s,o,a,n,i);const c=v(o),p=c||v(a),u=p||v(n),h=u;return"="===s&&h&&(s=""),i=r.includePrerelease?"-0":"",c?t=">"===s||"<"===s?"<0.0.0-0":"*":s&&h?(p&&(a=0),n=0,">"===s?(s=">=",p?(o=+o+1,a=0,n=0):(a=+a+1,n=0)):"<="===s&&(s="<",p?o=+o+1:a=+a+1),"<"===s&&(i="-0"),t=`${s+o}.${a}.${n}${i}`):p?t=`>=${o}.0.0${i} <${+o+1}.0.0-0`:u&&(t=`>=${o}.${a}.0${i} <${o}.${+a+1}.0-0`),l("xRange return",t),t}))},x=(e,r)=>(l("replaceStars",e,r),e.trim().replace(p[u.STAR],"")),T=(e,r)=>(l("replaceGTE0",e,r),e.trim().replace(p[r.includePrerelease?u.GTE0PRE:u.GTE0],"")),N=e=>(r,t,s,o,a,n,i,l,c,p,u,h)=>`${t=v(s)?"":v(o)?`>=${s}.0.0${e?"-0":""}`:v(a)?`>=${s}.${o}.0${e?"-0":""}`:n?`>=${t}`:`>=${t}${e?"-0":""}`} ${l=v(c)?"":v(p)?`<${+c+1}.0.0-0`:v(u)?`<${c}.${+p+1}.0-0`:h?`<=${c}.${p}.${u}-${h}`:e?`<${c}.${p}.${+u+1}-0`:`<=${l}`}`.trim(),$=(e,r,t)=>{for(let t=0;t<e.length;t++)if(!e[t].test(r))return!1;if(r.prerelease.length&&!t.includePrerelease){for(let t=0;t<e.length;t++)if(l(e[t].semver),e[t].semver!==i.ANY&&e[t].semver.prerelease.length>0){const s=e[t].semver;if(s.major===r.major&&s.minor===r.minor&&s.patch===r.patch)return!0}return!1}return!0}},342:(e,r,t)=>{const s=t(75);e.exports=(e,r,t)=>s(e,r,"<",t)},414:(e,r,t)=>{const s=t(144);e.exports=(e,r)=>{const t=s(e.trim().replace(/^[=v]+/,""),r);return t?t.version:null}},493:(e,r,t)=>{const s=t(908);e.exports=(e,r)=>new s(e,r).patch},525:(e,r,t)=>{const s=t(638),o=t(560);e.exports=(e,r,t)=>{const a=[];let n=null,i=null;const l=e.sort(((e,r)=>o(e,r,t)));for(const e of l)s(e,r,t)?(i=e,n||(n=e)):(i&&a.push([n,i]),i=null,n=null);n&&a.push([n,null]);const c=[];for(const[e,r]of a)e===r?c.push(e):r||e!==l[0]?r?e===l[0]?c.push(`<=${r}`):c.push(`${e} - ${r}`):c.push(`>=${e}`):c.push("*");const p=c.join(" || "),u="string"==typeof r.raw?r.raw:String(r);return p.length<u.length?p:r}},560:(e,r,t)=>{const s=t(908);e.exports=(e,r,t)=>new s(e,t).compare(new s(r,t))},571:(e,r,t)=>{const s=t(75);e.exports=(e,r,t)=>s(e,r,">",t)},580:(e,r,t)=>{const s=t(560);e.exports=(e,r,t)=>s(e,r,t)>0},587:e=>{const r=Object.freeze({loose:!0}),t=Object.freeze({});e.exports=e=>e?"object"!=typeof e?r:e:t},589:(e,r,t)=>{const s=t(718),o=t(874),a=t(908),n=t(123),i=t(144),l=t(953),c=t(414),p=t(7),u=t(832),h=t(938),g=t(254),m=t(493),f=t(729),d=t(560),E=t(970),w=t(763),y=t(909),b=t(927),v=t(277),O=t(580),S=t(59),I=t(641),A=t(999),R=t(89),L=t(200),x=t(111),T=t(170),N=t(904),$=t(311),D=t(638),q=t(631),P=t(628),F=t(270),C=t(261),U=t(636),_=t(75),j=t(571),k=t(342),V=t(780),G=t(525),M=t(32);e.exports={parse:i,valid:l,clean:c,inc:p,diff:u,major:h,minor:g,patch:m,prerelease:f,compare:d,rcompare:E,compareLoose:w,compareBuild:y,sort:b,rsort:v,gt:O,lt:S,eq:I,neq:A,gte:R,lte:L,cmp:x,coerce:T,Comparator:N,Range:$,satisfies:D,toComparators:q,maxSatisfying:P,minSatisfying:F,minVersion:C,validRange:U,outside:_,gtr:j,ltr:k,intersects:V,simplifyRange:G,subset:M,SemVer:a,re:s.re,src:s.src,tokens:s.t,SEMVER_SPEC_VERSION:o.SEMVER_SPEC_VERSION,RELEASE_TYPES:o.RELEASE_TYPES,compareIdentifiers:n.compareIdentifiers,rcompareIdentifiers:n.rcompareIdentifiers}},628:(e,r,t)=>{const s=t(908),o=t(311);e.exports=(e,r,t)=>{let a=null,n=null,i=null;try{i=new o(r,t)}catch(e){return null}return e.forEach((e=>{i.test(e)&&(a&&-1!==n.compare(e)||(a=e,n=new s(a,t)))})),a}},631:(e,r,t)=>{const s=t(311);e.exports=(e,r)=>new s(e,r).set.map((e=>e.map((e=>e.value)).join(" ").trim().split(" ")))},636:(e,r,t)=>{const s=t(311);e.exports=(e,r)=>{try{return new s(e,r).range||"*"}catch(e){return null}}},638:(e,r,t)=>{const s=t(311);e.exports=(e,r,t)=>{try{r=new s(r,t)}catch(e){return!1}return r.test(e)}},641:(e,r,t)=>{const s=t(560);e.exports=(e,r,t)=>0===s(e,r,t)},718:(e,r,t)=>{const{MAX_SAFE_COMPONENT_LENGTH:s,MAX_SAFE_BUILD_LENGTH:o,MAX_LENGTH:a}=t(874),n=t(272),i=(r=e.exports={}).re=[],l=r.safeRe=[],c=r.src=[],p=r.safeSrc=[],u=r.t={};let h=0;const g="[a-zA-Z0-9-]",m=[["\\s",1],["\\d",a],[g,o]],f=(e,r,t)=>{const s=(e=>{for(const[r,t]of m)e=e.split(`${r}*`).join(`${r}{0,${t}}`).split(`${r}+`).join(`${r}{1,${t}}`);return e})(r),o=h++;n(e,o,r),u[e]=o,c[o]=r,p[o]=s,i[o]=new RegExp(r,t?"g":void 0),l[o]=new RegExp(s,t?"g":void 0)};f("NUMERICIDENTIFIER","0|[1-9]\\d*"),f("NUMERICIDENTIFIERLOOSE","\\d+"),f("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${g}*`),f("MAINVERSION",`(${c[u.NUMERICIDENTIFIER]})\\.(${c[u.NUMERICIDENTIFIER]})\\.(${c[u.NUMERICIDENTIFIER]})`),f("MAINVERSIONLOOSE",`(${c[u.NUMERICIDENTIFIERLOOSE]})\\.(${c[u.NUMERICIDENTIFIERLOOSE]})\\.(${c[u.NUMERICIDENTIFIERLOOSE]})`),f("PRERELEASEIDENTIFIER",`(?:${c[u.NONNUMERICIDENTIFIER]}|${c[u.NUMERICIDENTIFIER]})`),f("PRERELEASEIDENTIFIERLOOSE",`(?:${c[u.NONNUMERICIDENTIFIER]}|${c[u.NUMERICIDENTIFIERLOOSE]})`),f("PRERELEASE",`(?:-(${c[u.PRERELEASEIDENTIFIER]}(?:\\.${c[u.PRERELEASEIDENTIFIER]})*))`),f("PRERELEASELOOSE",`(?:-?(${c[u.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${c[u.PRERELEASEIDENTIFIERLOOSE]})*))`),f("BUILDIDENTIFIER",`${g}+`),f("BUILD",`(?:\\+(${c[u.BUILDIDENTIFIER]}(?:\\.${c[u.BUILDIDENTIFIER]})*))`),f("FULLPLAIN",`v?${c[u.MAINVERSION]}${c[u.PRERELEASE]}?${c[u.BUILD]}?`),f("FULL",`^${c[u.FULLPLAIN]}$`),f("LOOSEPLAIN",`[v=\\s]*${c[u.MAINVERSIONLOOSE]}${c[u.PRERELEASELOOSE]}?${c[u.BUILD]}?`),f("LOOSE",`^${c[u.LOOSEPLAIN]}$`),f("GTLT","((?:<|>)?=?)"),f("XRANGEIDENTIFIERLOOSE",`${c[u.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),f("XRANGEIDENTIFIER",`${c[u.NUMERICIDENTIFIER]}|x|X|\\*`),f("XRANGEPLAIN",`[v=\\s]*(${c[u.XRANGEIDENTIFIER]})(?:\\.(${c[u.XRANGEIDENTIFIER]})(?:\\.(${c[u.XRANGEIDENTIFIER]})(?:${c[u.PRERELEASE]})?${c[u.BUILD]}?)?)?`),f("XRANGEPLAINLOOSE",`[v=\\s]*(${c[u.XRANGEIDENTIFIERLOOSE]})(?:\\.(${c[u.XRANGEIDENTIFIERLOOSE]})(?:\\.(${c[u.XRANGEIDENTIFIERLOOSE]})(?:${c[u.PRERELEASELOOSE]})?${c[u.BUILD]}?)?)?`),f("XRANGE",`^${c[u.GTLT]}\\s*${c[u.XRANGEPLAIN]}$`),f("XRANGELOOSE",`^${c[u.GTLT]}\\s*${c[u.XRANGEPLAINLOOSE]}$`),f("COERCEPLAIN",`(^|[^\\d])(\\d{1,${s}})(?:\\.(\\d{1,${s}}))?(?:\\.(\\d{1,${s}}))?`),f("COERCE",`${c[u.COERCEPLAIN]}(?:$|[^\\d])`),f("COERCEFULL",c[u.COERCEPLAIN]+`(?:${c[u.PRERELEASE]})?`+`(?:${c[u.BUILD]})?(?:$|[^\\d])`),f("COERCERTL",c[u.COERCE],!0),f("COERCERTLFULL",c[u.COERCEFULL],!0),f("LONETILDE","(?:~>?)"),f("TILDETRIM",`(\\s*)${c[u.LONETILDE]}\\s+`,!0),r.tildeTrimReplace="$1~",f("TILDE",`^${c[u.LONETILDE]}${c[u.XRANGEPLAIN]}$`),f("TILDELOOSE",`^${c[u.LONETILDE]}${c[u.XRANGEPLAINLOOSE]}$`),f("LONECARET","(?:\\^)"),f("CARETTRIM",`(\\s*)${c[u.LONECARET]}\\s+`,!0),r.caretTrimReplace="$1^",f("CARET",`^${c[u.LONECARET]}${c[u.XRANGEPLAIN]}$`),f("CARETLOOSE",`^${c[u.LONECARET]}${c[u.XRANGEPLAINLOOSE]}$`),f("COMPARATORLOOSE",`^${c[u.GTLT]}\\s*(${c[u.LOOSEPLAIN]})$|^$`),f("COMPARATOR",`^${c[u.GTLT]}\\s*(${c[u.FULLPLAIN]})$|^$`),f("COMPARATORTRIM",`(\\s*)${c[u.GTLT]}\\s*(${c[u.LOOSEPLAIN]}|${c[u.XRANGEPLAIN]})`,!0),r.comparatorTrimReplace="$1$2$3",f("HYPHENRANGE",`^\\s*(${c[u.XRANGEPLAIN]})\\s+-\\s+(${c[u.XRANGEPLAIN]})\\s*$`),f("HYPHENRANGELOOSE",`^\\s*(${c[u.XRANGEPLAINLOOSE]})\\s+-\\s+(${c[u.XRANGEPLAINLOOSE]})\\s*$`),f("STAR","(<|>)?=?\\s*\\*"),f("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),f("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")},729:(e,r,t)=>{const s=t(144);e.exports=(e,r)=>{const t=s(e,r);return t&&t.prerelease.length?t.prerelease:null}},763:(e,r,t)=>{const s=t(560);e.exports=(e,r)=>s(e,r,!0)},780:(e,r,t)=>{const s=t(311);e.exports=(e,r,t)=>(e=new s(e,t),r=new s(r,t),e.intersects(r,t))},794:e=>{e.exports=class{constructor(){this.max=1e3,this.map=new Map}get(e){const r=this.map.get(e);return void 0===r?void 0:(this.map.delete(e),this.map.set(e,r),r)}delete(e){return this.map.delete(e)}set(e,r){if(!this.delete(e)&&void 0!==r){if(this.map.size>=this.max){const e=this.map.keys().next().value;this.delete(e)}this.map.set(e,r)}return this}}},832:(e,r,t)=>{const s=t(144);e.exports=(e,r)=>{const t=s(e,null,!0),o=s(r,null,!0),a=t.compare(o);if(0===a)return null;const n=a>0,i=n?t:o,l=n?o:t,c=!!i.prerelease.length;if(l.prerelease.length&&!c){if(!l.patch&&!l.minor)return"major";if(0===l.compareMain(i))return l.minor&&!l.patch?"minor":"patch"}const p=c?"pre":"";return t.major!==o.major?p+"major":t.minor!==o.minor?p+"minor":t.patch!==o.patch?p+"patch":"prerelease"}},874:e=>{const r=Number.MAX_SAFE_INTEGER||9007199254740991;e.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:16,MAX_SAFE_BUILD_LENGTH:250,MAX_SAFE_INTEGER:r,RELEASE_TYPES:["major","premajor","minor","preminor","patch","prepatch","prerelease"],SEMVER_SPEC_VERSION:"2.0.0",FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}},904:(e,r,t)=>{const s=Symbol("SemVer ANY");class o{static get ANY(){return s}constructor(e,r){if(r=a(r),e instanceof o){if(e.loose===!!r.loose)return e;e=e.value}e=e.trim().split(/\s+/).join(" "),c("comparator",e,r),this.options=r,this.loose=!!r.loose,this.parse(e),this.semver===s?this.value="":this.value=this.operator+this.semver.version,c("comp",this)}parse(e){const r=this.options.loose?n[i.COMPARATORLOOSE]:n[i.COMPARATOR],t=e.match(r);if(!t)throw new TypeError(`Invalid comparator: ${e}`);this.operator=void 0!==t[1]?t[1]:"","="===this.operator&&(this.operator=""),t[2]?this.semver=new p(t[2],this.options.loose):this.semver=s}toString(){return this.value}test(e){if(c("Comparator.test",e,this.options.loose),this.semver===s||e===s)return!0;if("string"==typeof e)try{e=new p(e,this.options)}catch(e){return!1}return l(e,this.operator,this.semver,this.options)}intersects(e,r){if(!(e instanceof o))throw new TypeError("a Comparator is required");return""===this.operator?""===this.value||new u(e.value,r).test(this.value):""===e.operator?""===e.value||new u(this.value,r).test(e.semver):!((r=a(r)).includePrerelease&&("<0.0.0-0"===this.value||"<0.0.0-0"===e.value)||!r.includePrerelease&&(this.value.startsWith("<0.0.0")||e.value.startsWith("<0.0.0"))||(!this.operator.startsWith(">")||!e.operator.startsWith(">"))&&(!this.operator.startsWith("<")||!e.operator.startsWith("<"))&&(this.semver.version!==e.semver.version||!this.operator.includes("=")||!e.operator.includes("="))&&!(l(this.semver,"<",e.semver,r)&&this.operator.startsWith(">")&&e.operator.startsWith("<"))&&!(l(this.semver,">",e.semver,r)&&this.operator.startsWith("<")&&e.operator.startsWith(">")))}}e.exports=o;const a=t(587),{safeRe:n,t:i}=t(718),l=t(111),c=t(272),p=t(908),u=t(311)},908:(e,r,t)=>{const s=t(272),{MAX_LENGTH:o,MAX_SAFE_INTEGER:a}=t(874),{safeRe:n,t:i}=t(718),l=t(587),{compareIdentifiers:c}=t(123);class p{constructor(e,r){if(r=l(r),e instanceof p){if(e.loose===!!r.loose&&e.includePrerelease===!!r.includePrerelease)return e;e=e.version}else if("string"!=typeof e)throw new TypeError(`Invalid version. Must be a string. Got type "${typeof e}".`);if(e.length>o)throw new TypeError(`version is longer than ${o} characters`);s("SemVer",e,r),this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease;const t=e.trim().match(r.loose?n[i.LOOSE]:n[i.FULL]);if(!t)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+t[1],this.minor=+t[2],this.patch=+t[3],this.major>a||this.major<0)throw new TypeError("Invalid major version");if(this.minor>a||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>a||this.patch<0)throw new TypeError("Invalid patch version");t[4]?this.prerelease=t[4].split(".").map((e=>{if(/^[0-9]+$/.test(e)){const r=+e;if(r>=0&&r<a)return r}return e})):this.prerelease=[],this.build=t[5]?t[5].split("."):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+=`-${this.prerelease.join(".")}`),this.version}toString(){return this.version}compare(e){if(s("SemVer.compare",this.version,this.options,e),!(e instanceof p)){if("string"==typeof e&&e===this.version)return 0;e=new p(e,this.options)}return e.version===this.version?0:this.compareMain(e)||this.comparePre(e)}compareMain(e){return e instanceof p||(e=new p(e,this.options)),c(this.major,e.major)||c(this.minor,e.minor)||c(this.patch,e.patch)}comparePre(e){if(e instanceof p||(e=new p(e,this.options)),this.prerelease.length&&!e.prerelease.length)return-1;if(!this.prerelease.length&&e.prerelease.length)return 1;if(!this.prerelease.length&&!e.prerelease.length)return 0;let r=0;do{const t=this.prerelease[r],o=e.prerelease[r];if(s("prerelease compare",r,t,o),void 0===t&&void 0===o)return 0;if(void 0===o)return 1;if(void 0===t)return-1;if(t!==o)return c(t,o)}while(++r)}compareBuild(e){e instanceof p||(e=new p(e,this.options));let r=0;do{const t=this.build[r],o=e.build[r];if(s("build compare",r,t,o),void 0===t&&void 0===o)return 0;if(void 0===o)return 1;if(void 0===t)return-1;if(t!==o)return c(t,o)}while(++r)}inc(e,r,t){if(e.startsWith("pre")){if(!r&&!1===t)throw new Error("invalid increment argument: identifier is empty");if(r){const e=`-${r}`.match(this.options.loose?n[i.PRERELEASELOOSE]:n[i.PRERELEASE]);if(!e||e[1]!==r)throw new Error(`invalid identifier: ${r}`)}}switch(e){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",r,t);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",r,t);break;case"prepatch":this.prerelease.length=0,this.inc("patch",r,t),this.inc("pre",r,t);break;case"prerelease":0===this.prerelease.length&&this.inc("patch",r,t),this.inc("pre",r,t);break;case"release":if(0===this.prerelease.length)throw new Error(`version ${this.raw} is not a prerelease`);this.prerelease.length=0;break;case"major":0===this.minor&&0===this.patch&&0!==this.prerelease.length||this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":0===this.patch&&0!==this.prerelease.length||this.minor++,this.patch=0,this.prerelease=[];break;case"patch":0===this.prerelease.length&&this.patch++,this.prerelease=[];break;case"pre":{const e=Number(t)?1:0;if(0===this.prerelease.length)this.prerelease=[e];else{let s=this.prerelease.length;for(;--s>=0;)"number"==typeof this.prerelease[s]&&(this.prerelease[s]++,s=-2);if(-1===s){if(r===this.prerelease.join(".")&&!1===t)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(e)}}if(r){let s=[r,e];!1===t&&(s=[r]),0===c(this.prerelease[0],r)?isNaN(this.prerelease[1])&&(this.prerelease=s):this.prerelease=s}break}default:throw new Error(`invalid increment argument: ${e}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}}e.exports=p},909:(e,r,t)=>{const s=t(908);e.exports=(e,r,t)=>{const o=new s(e,t),a=new s(r,t);return o.compare(a)||o.compareBuild(a)}},927:(e,r,t)=>{const s=t(909);e.exports=(e,r)=>e.sort(((e,t)=>s(e,t,r)))},938:(e,r,t)=>{const s=t(908);e.exports=(e,r)=>new s(e,r).major},953:(e,r,t)=>{const s=t(144);e.exports=(e,r)=>{const t=s(e,r);return t?t.version:null}},970:(e,r,t)=>{const s=t(560);e.exports=(e,r,t)=>s(r,e,t)},999:(e,r,t)=>{const s=t(560);e.exports=(e,r,t)=>0!==s(e,r,t)}},r={},t=function(){return t=Object.assign||function(e){for(var r,t=1,s=arguments.length;t<s;t++)for(var o in r=arguments[t])Object.prototype.hasOwnProperty.call(r,o)&&(e[o]=r[o]);return e},t.apply(this,arguments)};function s(e,r){for(var s={},o={},a=e.split("~~"),n=!1,i=0;a.length>i;i++){for(var l=a[i].split("~"),c=0;c<l.length;c+=2){var p=l[c],u=l[c+1],h="&"+p+";";s[h]=u,n&&(s["&"+p]=u),o[u]=h}n=!0}return r?{entities:t(t({},s),r.entities),characters:t(t({},o),r.characters)}:{entities:s,characters:o}}var o={xml:/&(?:#\d+|#[xX][\da-fA-F]+|[0-9a-zA-Z]+);?/g,html4:/∉|&(?:nbsp|iexcl|cent|pound|curren|yen|brvbar|sect|uml|copy|ordf|laquo|not|shy|reg|macr|deg|plusmn|sup2|sup3|acute|micro|para|middot|cedil|sup1|ordm|raquo|frac14|frac12|frac34|iquest|Agrave|Aacute|Acirc|Atilde|Auml|Aring|AElig|Ccedil|Egrave|Eacute|Ecirc|Euml|Igrave|Iacute|Icirc|Iuml|ETH|Ntilde|Ograve|Oacute|Ocirc|Otilde|Ouml|times|Oslash|Ugrave|Uacute|Ucirc|Uuml|Yacute|THORN|szlig|agrave|aacute|acirc|atilde|auml|aring|aelig|ccedil|egrave|eacute|ecirc|euml|igrave|iacute|icirc|iuml|eth|ntilde|ograve|oacute|ocirc|otilde|ouml|divide|oslash|ugrave|uacute|ucirc|uuml|yacute|thorn|yuml|quot|amp|lt|gt|#\d+|#[xX][\da-fA-F]+|[0-9a-zA-Z]+);?/g,html5:/·|℗|⋇|⪧|⩺|⋗|⦕|⩼|⪆|⥸|⋗|⋛|⪌|≷|≳|⪦|⩹|⋖|⋋|⋉|⥶|⩻|⦖|◃|⊴|◂|∉|⋹̸|⋵̸|∉|⋷|⋶|∌|∌|⋾|⋽|∥|⊠|⨱|⨰|&(?:AElig|AMP|Aacute|Acirc|Agrave|Aring|Atilde|Auml|COPY|Ccedil|ETH|Eacute|Ecirc|Egrave|Euml|GT|Iacute|Icirc|Igrave|Iuml|LT|Ntilde|Oacute|Ocirc|Ograve|Oslash|Otilde|Ouml|QUOT|REG|THORN|Uacute|Ucirc|Ugrave|Uuml|Yacute|aacute|acirc|acute|aelig|agrave|amp|aring|atilde|auml|brvbar|ccedil|cedil|cent|copy|curren|deg|divide|eacute|ecirc|egrave|eth|euml|frac12|frac14|frac34|gt|iacute|icirc|iexcl|igrave|iquest|iuml|laquo|lt|macr|micro|middot|nbsp|not|ntilde|oacute|ocirc|ograve|ordf|ordm|oslash|otilde|ouml|para|plusmn|pound|quot|raquo|reg|sect|shy|sup1|sup2|sup3|szlig|thorn|times|uacute|ucirc|ugrave|uml|uuml|yacute|yen|yuml|#\d+|#[xX][\da-fA-F]+|[0-9a-zA-Z]+);?/g},a={};a.xml=s("lt~<~gt~>~quot~\"~apos~'~amp~&"),a.html4=s("apos~'~OElig~Œ~oelig~œ~Scaron~Š~scaron~š~Yuml~Ÿ~circ~ˆ~tilde~˜~ensp~ ~emsp~ ~thinsp~ ~zwnj~~zwj~~lrm~~rlm~~ndash~–~mdash~—~lsquo~‘~rsquo~’~sbquo~‚~ldquo~“~rdquo~”~bdquo~„~dagger~†~Dagger~‡~permil~‰~lsaquo~‹~rsaquo~›~euro~€~fnof~ƒ~Alpha~Α~Beta~Β~Gamma~Γ~Delta~Δ~Epsilon~Ε~Zeta~Ζ~Eta~Η~Theta~Θ~Iota~Ι~Kappa~Κ~Lambda~Λ~Mu~Μ~Nu~Ν~Xi~Ξ~Omicron~Ο~Pi~Π~Rho~Ρ~Sigma~Σ~Tau~Τ~Upsilon~Υ~Phi~Φ~Chi~Χ~Psi~Ψ~Omega~Ω~alpha~α~beta~β~gamma~γ~delta~δ~epsilon~ε~zeta~ζ~eta~η~theta~θ~iota~ι~kappa~κ~lambda~λ~mu~μ~nu~ν~xi~ξ~omicron~ο~pi~π~rho~ρ~sigmaf~ς~sigma~σ~tau~τ~upsilon~υ~phi~φ~chi~χ~psi~ψ~omega~ω~thetasym~ϑ~upsih~ϒ~piv~ϖ~bull~•~hellip~…~prime~′~Prime~″~oline~‾~frasl~⁄~weierp~℘~image~ℑ~real~ℜ~trade~™~alefsym~ℵ~larr~←~uarr~↑~rarr~→~darr~↓~harr~↔~crarr~↵~lArr~⇐~uArr~⇑~rArr~⇒~dArr~⇓~hArr~⇔~forall~∀~part~∂~exist~∃~empty~∅~nabla~∇~isin~∈~notin~∉~ni~∋~prod~∏~sum~∑~minus~−~lowast~∗~radic~√~prop~∝~infin~∞~ang~∠~and~∧~or~∨~cap~∩~cup~∪~int~∫~there4~∴~sim~∼~cong~≅~asymp~≈~ne~≠~equiv~≡~le~≤~ge~≥~sub~⊂~sup~⊃~nsub~⊄~sube~⊆~supe~⊇~oplus~⊕~otimes~⊗~perp~⊥~sdot~⋅~lceil~⌈~rceil~⌉~lfloor~⌊~rfloor~⌋~lang~〈~rang~〉~loz~◊~spades~♠~clubs~♣~hearts~♥~diams~♦~~nbsp~ ~iexcl~¡~cent~¢~pound~£~curren~¤~yen~¥~brvbar~¦~sect~§~uml~¨~copy~©~ordf~ª~laquo~«~not~¬~shy~~reg~®~macr~¯~deg~°~plusmn~±~sup2~²~sup3~³~acute~´~micro~µ~para~¶~middot~·~cedil~¸~sup1~¹~ordm~º~raquo~»~frac14~¼~frac12~½~frac34~¾~iquest~¿~Agrave~À~Aacute~Á~Acirc~Â~Atilde~Ã~Auml~Ä~Aring~Å~AElig~Æ~Ccedil~Ç~Egrave~È~Eacute~É~Ecirc~Ê~Euml~Ë~Igrave~Ì~Iacute~Í~Icirc~Î~Iuml~Ï~ETH~Ð~Ntilde~Ñ~Ograve~Ò~Oacute~Ó~Ocirc~Ô~Otilde~Õ~Ouml~Ö~times~×~Oslash~Ø~Ugrave~Ù~Uacute~Ú~Ucirc~Û~Uuml~Ü~Yacute~Ý~THORN~Þ~szlig~ß~agrave~à~aacute~á~acirc~â~atilde~ã~auml~ä~aring~å~aelig~æ~ccedil~ç~egrave~è~eacute~é~ecirc~ê~euml~ë~igrave~ì~iacute~í~icirc~î~iuml~ï~eth~ð~ntilde~ñ~ograve~ò~oacute~ó~ocirc~ô~otilde~õ~ouml~ö~divide~÷~oslash~ø~ugrave~ù~uacute~ú~ucirc~û~uuml~ü~yacute~ý~thorn~þ~yuml~ÿ~quot~\"~amp~&~lt~<~gt~>"),a.html5=s('Abreve~Ă~Acy~А~Afr~𝔄~Amacr~Ā~And~⩓~Aogon~Ą~Aopf~𝔸~ApplyFunction~~Ascr~𝒜~Assign~≔~Backslash~∖~Barv~⫧~Barwed~⌆~Bcy~Б~Because~∵~Bernoullis~ℬ~Bfr~𝔅~Bopf~𝔹~Breve~˘~Bscr~ℬ~Bumpeq~≎~CHcy~Ч~Cacute~Ć~Cap~⋒~CapitalDifferentialD~ⅅ~Cayleys~ℭ~Ccaron~Č~Ccirc~Ĉ~Cconint~∰~Cdot~Ċ~Cedilla~¸~CenterDot~·~Cfr~ℭ~CircleDot~⊙~CircleMinus~⊖~CirclePlus~⊕~CircleTimes~⊗~ClockwiseContourIntegral~∲~CloseCurlyDoubleQuote~”~CloseCurlyQuote~’~Colon~∷~Colone~⩴~Congruent~≡~Conint~∯~ContourIntegral~∮~Copf~ℂ~Coproduct~∐~CounterClockwiseContourIntegral~∳~Cross~⨯~Cscr~𝒞~Cup~⋓~CupCap~≍~DD~ⅅ~DDotrahd~⤑~DJcy~Ђ~DScy~Ѕ~DZcy~Џ~Darr~↡~Dashv~⫤~Dcaron~Ď~Dcy~Д~Del~∇~Dfr~𝔇~DiacriticalAcute~´~DiacriticalDot~˙~DiacriticalDoubleAcute~˝~DiacriticalGrave~`~DiacriticalTilde~˜~Diamond~⋄~DifferentialD~ⅆ~Dopf~𝔻~Dot~¨~DotDot~⃜~DotEqual~≐~DoubleContourIntegral~∯~DoubleDot~¨~DoubleDownArrow~⇓~DoubleLeftArrow~⇐~DoubleLeftRightArrow~⇔~DoubleLeftTee~⫤~DoubleLongLeftArrow~⟸~DoubleLongLeftRightArrow~⟺~DoubleLongRightArrow~⟹~DoubleRightArrow~⇒~DoubleRightTee~⊨~DoubleUpArrow~⇑~DoubleUpDownArrow~⇕~DoubleVerticalBar~∥~DownArrow~↓~DownArrowBar~⤓~DownArrowUpArrow~⇵~DownBreve~̑~DownLeftRightVector~⥐~DownLeftTeeVector~⥞~DownLeftVector~↽~DownLeftVectorBar~⥖~DownRightTeeVector~⥟~DownRightVector~⇁~DownRightVectorBar~⥗~DownTee~⊤~DownTeeArrow~↧~Downarrow~⇓~Dscr~𝒟~Dstrok~Đ~ENG~Ŋ~Ecaron~Ě~Ecy~Э~Edot~Ė~Efr~𝔈~Element~∈~Emacr~Ē~EmptySmallSquare~◻~EmptyVerySmallSquare~▫~Eogon~Ę~Eopf~𝔼~Equal~⩵~EqualTilde~≂~Equilibrium~⇌~Escr~ℰ~Esim~⩳~Exists~∃~ExponentialE~ⅇ~Fcy~Ф~Ffr~𝔉~FilledSmallSquare~◼~FilledVerySmallSquare~▪~Fopf~𝔽~ForAll~∀~Fouriertrf~ℱ~Fscr~ℱ~GJcy~Ѓ~Gammad~Ϝ~Gbreve~Ğ~Gcedil~Ģ~Gcirc~Ĝ~Gcy~Г~Gdot~Ġ~Gfr~𝔊~Gg~⋙~Gopf~𝔾~GreaterEqual~≥~GreaterEqualLess~⋛~GreaterFullEqual~≧~GreaterGreater~⪢~GreaterLess~≷~GreaterSlantEqual~⩾~GreaterTilde~≳~Gscr~𝒢~Gt~≫~HARDcy~Ъ~Hacek~ˇ~Hat~^~Hcirc~Ĥ~Hfr~ℌ~HilbertSpace~ℋ~Hopf~ℍ~HorizontalLine~─~Hscr~ℋ~Hstrok~Ħ~HumpDownHump~≎~HumpEqual~≏~IEcy~Е~IJlig~IJ~IOcy~Ё~Icy~И~Idot~İ~Ifr~ℑ~Im~ℑ~Imacr~Ī~ImaginaryI~ⅈ~Implies~⇒~Int~∬~Integral~∫~Intersection~⋂~InvisibleComma~~InvisibleTimes~~Iogon~Į~Iopf~𝕀~Iscr~ℐ~Itilde~Ĩ~Iukcy~І~Jcirc~Ĵ~Jcy~Й~Jfr~𝔍~Jopf~𝕁~Jscr~𝒥~Jsercy~Ј~Jukcy~Є~KHcy~Х~KJcy~Ќ~Kcedil~Ķ~Kcy~К~Kfr~𝔎~Kopf~𝕂~Kscr~𝒦~LJcy~Љ~Lacute~Ĺ~Lang~⟪~Laplacetrf~ℒ~Larr~↞~Lcaron~Ľ~Lcedil~Ļ~Lcy~Л~LeftAngleBracket~⟨~LeftArrow~←~LeftArrowBar~⇤~LeftArrowRightArrow~⇆~LeftCeiling~⌈~LeftDoubleBracket~⟦~LeftDownTeeVector~⥡~LeftDownVector~⇃~LeftDownVectorBar~⥙~LeftFloor~⌊~LeftRightArrow~↔~LeftRightVector~⥎~LeftTee~⊣~LeftTeeArrow~↤~LeftTeeVector~⥚~LeftTriangle~⊲~LeftTriangleBar~⧏~LeftTriangleEqual~⊴~LeftUpDownVector~⥑~LeftUpTeeVector~⥠~LeftUpVector~↿~LeftUpVectorBar~⥘~LeftVector~↼~LeftVectorBar~⥒~Leftarrow~⇐~Leftrightarrow~⇔~LessEqualGreater~⋚~LessFullEqual~≦~LessGreater~≶~LessLess~⪡~LessSlantEqual~⩽~LessTilde~≲~Lfr~𝔏~Ll~⋘~Lleftarrow~⇚~Lmidot~Ŀ~LongLeftArrow~⟵~LongLeftRightArrow~⟷~LongRightArrow~⟶~Longleftarrow~⟸~Longleftrightarrow~⟺~Longrightarrow~⟹~Lopf~𝕃~LowerLeftArrow~↙~LowerRightArrow~↘~Lscr~ℒ~Lsh~↰~Lstrok~Ł~Lt~≪~Map~⤅~Mcy~М~MediumSpace~ ~Mellintrf~ℳ~Mfr~𝔐~MinusPlus~∓~Mopf~𝕄~Mscr~ℳ~NJcy~Њ~Nacute~Ń~Ncaron~Ň~Ncedil~Ņ~Ncy~Н~NegativeMediumSpace~~NegativeThickSpace~~NegativeThinSpace~~NegativeVeryThinSpace~~NestedGreaterGreater~≫~NestedLessLess~≪~NewLine~\n~Nfr~𝔑~NoBreak~~NonBreakingSpace~ ~Nopf~ℕ~Not~⫬~NotCongruent~≢~NotCupCap~≭~NotDoubleVerticalBar~∦~NotElement~∉~NotEqual~≠~NotEqualTilde~≂̸~NotExists~∄~NotGreater~≯~NotGreaterEqual~≱~NotGreaterFullEqual~≧̸~NotGreaterGreater~≫̸~NotGreaterLess~≹~NotGreaterSlantEqual~⩾̸~NotGreaterTilde~≵~NotHumpDownHump~≎̸~NotHumpEqual~≏̸~NotLeftTriangle~⋪~NotLeftTriangleBar~⧏̸~NotLeftTriangleEqual~⋬~NotLess~≮~NotLessEqual~≰~NotLessGreater~≸~NotLessLess~≪̸~NotLessSlantEqual~⩽̸~NotLessTilde~≴~NotNestedGreaterGreater~⪢̸~NotNestedLessLess~⪡̸~NotPrecedes~⊀~NotPrecedesEqual~⪯̸~NotPrecedesSlantEqual~⋠~NotReverseElement~∌~NotRightTriangle~⋫~NotRightTriangleBar~⧐̸~NotRightTriangleEqual~⋭~NotSquareSubset~⊏̸~NotSquareSubsetEqual~⋢~NotSquareSuperset~⊐̸~NotSquareSupersetEqual~⋣~NotSubset~⊂⃒~NotSubsetEqual~⊈~NotSucceeds~⊁~NotSucceedsEqual~⪰̸~NotSucceedsSlantEqual~⋡~NotSucceedsTilde~≿̸~NotSuperset~⊃⃒~NotSupersetEqual~⊉~NotTilde~≁~NotTildeEqual~≄~NotTildeFullEqual~≇~NotTildeTilde~≉~NotVerticalBar~∤~Nscr~𝒩~Ocy~О~Odblac~Ő~Ofr~𝔒~Omacr~Ō~Oopf~𝕆~OpenCurlyDoubleQuote~“~OpenCurlyQuote~‘~Or~⩔~Oscr~𝒪~Otimes~⨷~OverBar~‾~OverBrace~⏞~OverBracket~⎴~OverParenthesis~⏜~PartialD~∂~Pcy~П~Pfr~𝔓~PlusMinus~±~Poincareplane~ℌ~Popf~ℙ~Pr~⪻~Precedes~≺~PrecedesEqual~⪯~PrecedesSlantEqual~≼~PrecedesTilde~≾~Product~∏~Proportion~∷~Proportional~∝~Pscr~𝒫~Qfr~𝔔~Qopf~ℚ~Qscr~𝒬~RBarr~⤐~Racute~Ŕ~Rang~⟫~Rarr~↠~Rarrtl~⤖~Rcaron~Ř~Rcedil~Ŗ~Rcy~Р~Re~ℜ~ReverseElement~∋~ReverseEquilibrium~⇋~ReverseUpEquilibrium~⥯~Rfr~ℜ~RightAngleBracket~⟩~RightArrow~→~RightArrowBar~⇥~RightArrowLeftArrow~⇄~RightCeiling~⌉~RightDoubleBracket~⟧~RightDownTeeVector~⥝~RightDownVector~⇂~RightDownVectorBar~⥕~RightFloor~⌋~RightTee~⊢~RightTeeArrow~↦~RightTeeVector~⥛~RightTriangle~⊳~RightTriangleBar~⧐~RightTriangleEqual~⊵~RightUpDownVector~⥏~RightUpTeeVector~⥜~RightUpVector~↾~RightUpVectorBar~⥔~RightVector~⇀~RightVectorBar~⥓~Rightarrow~⇒~Ropf~ℝ~RoundImplies~⥰~Rrightarrow~⇛~Rscr~ℛ~Rsh~↱~RuleDelayed~⧴~SHCHcy~Щ~SHcy~Ш~SOFTcy~Ь~Sacute~Ś~Sc~⪼~Scedil~Ş~Scirc~Ŝ~Scy~С~Sfr~𝔖~ShortDownArrow~↓~ShortLeftArrow~←~ShortRightArrow~→~ShortUpArrow~↑~SmallCircle~∘~Sopf~𝕊~Sqrt~√~Square~□~SquareIntersection~⊓~SquareSubset~⊏~SquareSubsetEqual~⊑~SquareSuperset~⊐~SquareSupersetEqual~⊒~SquareUnion~⊔~Sscr~𝒮~Star~⋆~Sub~⋐~Subset~⋐~SubsetEqual~⊆~Succeeds~≻~SucceedsEqual~⪰~SucceedsSlantEqual~≽~SucceedsTilde~≿~SuchThat~∋~Sum~∑~Sup~⋑~Superset~⊃~SupersetEqual~⊇~Supset~⋑~TRADE~™~TSHcy~Ћ~TScy~Ц~Tab~\t~Tcaron~Ť~Tcedil~Ţ~Tcy~Т~Tfr~𝔗~Therefore~∴~ThickSpace~ ~ThinSpace~ ~Tilde~∼~TildeEqual~≃~TildeFullEqual~≅~TildeTilde~≈~Topf~𝕋~TripleDot~⃛~Tscr~𝒯~Tstrok~Ŧ~Uarr~↟~Uarrocir~⥉~Ubrcy~Ў~Ubreve~Ŭ~Ucy~У~Udblac~Ű~Ufr~𝔘~Umacr~Ū~UnderBar~_~UnderBrace~⏟~UnderBracket~⎵~UnderParenthesis~⏝~Union~⋃~UnionPlus~⊎~Uogon~Ų~Uopf~𝕌~UpArrow~↑~UpArrowBar~⤒~UpArrowDownArrow~⇅~UpDownArrow~↕~UpEquilibrium~⥮~UpTee~⊥~UpTeeArrow~↥~Uparrow~⇑~Updownarrow~⇕~UpperLeftArrow~↖~UpperRightArrow~↗~Upsi~ϒ~Uring~Ů~Uscr~𝒰~Utilde~Ũ~VDash~⊫~Vbar~⫫~Vcy~В~Vdash~⊩~Vdashl~⫦~Vee~⋁~Verbar~‖~Vert~‖~VerticalBar~∣~VerticalLine~|~VerticalSeparator~❘~VerticalTilde~≀~VeryThinSpace~ ~Vfr~𝔙~Vopf~𝕍~Vscr~𝒱~Vvdash~⊪~Wcirc~Ŵ~Wedge~⋀~Wfr~𝔚~Wopf~𝕎~Wscr~𝒲~Xfr~𝔛~Xopf~𝕏~Xscr~𝒳~YAcy~Я~YIcy~Ї~YUcy~Ю~Ycirc~Ŷ~Ycy~Ы~Yfr~𝔜~Yopf~𝕐~Yscr~𝒴~ZHcy~Ж~Zacute~Ź~Zcaron~Ž~Zcy~З~Zdot~Ż~ZeroWidthSpace~~Zfr~ℨ~Zopf~ℤ~Zscr~𝒵~abreve~ă~ac~∾~acE~∾̳~acd~∿~acy~а~af~~afr~𝔞~aleph~ℵ~amacr~ā~amalg~⨿~andand~⩕~andd~⩜~andslope~⩘~andv~⩚~ange~⦤~angle~∠~angmsd~∡~angmsdaa~⦨~angmsdab~⦩~angmsdac~⦪~angmsdad~⦫~angmsdae~⦬~angmsdaf~⦭~angmsdag~⦮~angmsdah~⦯~angrt~∟~angrtvb~⊾~angrtvbd~⦝~angsph~∢~angst~Å~angzarr~⍼~aogon~ą~aopf~𝕒~ap~≈~apE~⩰~apacir~⩯~ape~≊~apid~≋~approx~≈~approxeq~≊~ascr~𝒶~ast~*~asympeq~≍~awconint~∳~awint~⨑~bNot~⫭~backcong~≌~backepsilon~϶~backprime~‵~backsim~∽~backsimeq~⋍~barvee~⊽~barwed~⌅~barwedge~⌅~bbrk~⎵~bbrktbrk~⎶~bcong~≌~bcy~б~becaus~∵~because~∵~bemptyv~⦰~bepsi~϶~bernou~ℬ~beth~ℶ~between~≬~bfr~𝔟~bigcap~⋂~bigcirc~◯~bigcup~⋃~bigodot~⨀~bigoplus~⨁~bigotimes~⨂~bigsqcup~⨆~bigstar~★~bigtriangledown~▽~bigtriangleup~△~biguplus~⨄~bigvee~⋁~bigwedge~⋀~bkarow~⤍~blacklozenge~⧫~blacksquare~▪~blacktriangle~▴~blacktriangledown~▾~blacktriangleleft~◂~blacktriangleright~▸~blank~␣~blk12~▒~blk14~░~blk34~▓~block~█~bne~=⃥~bnequiv~≡⃥~bnot~⌐~bopf~𝕓~bot~⊥~bottom~⊥~bowtie~⋈~boxDL~╗~boxDR~╔~boxDl~╖~boxDr~╓~boxH~═~boxHD~╦~boxHU~╩~boxHd~╤~boxHu~╧~boxUL~╝~boxUR~╚~boxUl~╜~boxUr~╙~boxV~║~boxVH~╬~boxVL~╣~boxVR~╠~boxVh~╫~boxVl~╢~boxVr~╟~boxbox~⧉~boxdL~╕~boxdR~╒~boxdl~┐~boxdr~┌~boxh~─~boxhD~╥~boxhU~╨~boxhd~┬~boxhu~┴~boxminus~⊟~boxplus~⊞~boxtimes~⊠~boxuL~╛~boxuR~╘~boxul~┘~boxur~└~boxv~│~boxvH~╪~boxvL~╡~boxvR~╞~boxvh~┼~boxvl~┤~boxvr~├~bprime~‵~breve~˘~bscr~𝒷~bsemi~⁏~bsim~∽~bsime~⋍~bsol~\\~bsolb~⧅~bsolhsub~⟈~bullet~•~bump~≎~bumpE~⪮~bumpe~≏~bumpeq~≏~cacute~ć~capand~⩄~capbrcup~⩉~capcap~⩋~capcup~⩇~capdot~⩀~caps~∩︀~caret~⁁~caron~ˇ~ccaps~⩍~ccaron~č~ccirc~ĉ~ccups~⩌~ccupssm~⩐~cdot~ċ~cemptyv~⦲~centerdot~·~cfr~𝔠~chcy~ч~check~✓~checkmark~✓~cir~○~cirE~⧃~circeq~≗~circlearrowleft~↺~circlearrowright~↻~circledR~®~circledS~Ⓢ~circledast~⊛~circledcirc~⊚~circleddash~⊝~cire~≗~cirfnint~⨐~cirmid~⫯~cirscir~⧂~clubsuit~♣~colon~:~colone~≔~coloneq~≔~comma~,~commat~@~comp~∁~compfn~∘~complement~∁~complexes~ℂ~congdot~⩭~conint~∮~copf~𝕔~coprod~∐~copysr~℗~cross~✗~cscr~𝒸~csub~⫏~csube~⫑~csup~⫐~csupe~⫒~ctdot~⋯~cudarrl~⤸~cudarrr~⤵~cuepr~⋞~cuesc~⋟~cularr~↶~cularrp~⤽~cupbrcap~⩈~cupcap~⩆~cupcup~⩊~cupdot~⊍~cupor~⩅~cups~∪︀~curarr~↷~curarrm~⤼~curlyeqprec~⋞~curlyeqsucc~⋟~curlyvee~⋎~curlywedge~⋏~curvearrowleft~↶~curvearrowright~↷~cuvee~⋎~cuwed~⋏~cwconint~∲~cwint~∱~cylcty~⌭~dHar~⥥~daleth~ℸ~dash~‐~dashv~⊣~dbkarow~⤏~dblac~˝~dcaron~ď~dcy~д~dd~ⅆ~ddagger~‡~ddarr~⇊~ddotseq~⩷~demptyv~⦱~dfisht~⥿~dfr~𝔡~dharl~⇃~dharr~⇂~diam~⋄~diamond~⋄~diamondsuit~♦~die~¨~digamma~ϝ~disin~⋲~div~÷~divideontimes~⋇~divonx~⋇~djcy~ђ~dlcorn~⌞~dlcrop~⌍~dollar~$~dopf~𝕕~dot~˙~doteq~≐~doteqdot~≑~dotminus~∸~dotplus~∔~dotsquare~⊡~doublebarwedge~⌆~downarrow~↓~downdownarrows~⇊~downharpoonleft~⇃~downharpoonright~⇂~drbkarow~⤐~drcorn~⌟~drcrop~⌌~dscr~𝒹~dscy~ѕ~dsol~⧶~dstrok~đ~dtdot~⋱~dtri~▿~dtrif~▾~duarr~⇵~duhar~⥯~dwangle~⦦~dzcy~џ~dzigrarr~⟿~eDDot~⩷~eDot~≑~easter~⩮~ecaron~ě~ecir~≖~ecolon~≕~ecy~э~edot~ė~ee~ⅇ~efDot~≒~efr~𝔢~eg~⪚~egs~⪖~egsdot~⪘~el~⪙~elinters~⏧~ell~ℓ~els~⪕~elsdot~⪗~emacr~ē~emptyset~∅~emptyv~∅~emsp13~ ~emsp14~ ~eng~ŋ~eogon~ę~eopf~𝕖~epar~⋕~eparsl~⧣~eplus~⩱~epsi~ε~epsiv~ϵ~eqcirc~≖~eqcolon~≕~eqsim~≂~eqslantgtr~⪖~eqslantless~⪕~equals~=~equest~≟~equivDD~⩸~eqvparsl~⧥~erDot~≓~erarr~⥱~escr~ℯ~esdot~≐~esim~≂~excl~!~expectation~ℰ~exponentiale~ⅇ~fallingdotseq~≒~fcy~ф~female~♀~ffilig~ffi~fflig~ff~ffllig~ffl~ffr~𝔣~filig~fi~fjlig~fj~flat~♭~fllig~fl~fltns~▱~fopf~𝕗~fork~⋔~forkv~⫙~fpartint~⨍~frac13~⅓~frac15~⅕~frac16~⅙~frac18~⅛~frac23~⅔~frac25~⅖~frac35~⅗~frac38~⅜~frac45~⅘~frac56~⅚~frac58~⅝~frac78~⅞~frown~⌢~fscr~𝒻~gE~≧~gEl~⪌~gacute~ǵ~gammad~ϝ~gap~⪆~gbreve~ğ~gcirc~ĝ~gcy~г~gdot~ġ~gel~⋛~geq~≥~geqq~≧~geqslant~⩾~ges~⩾~gescc~⪩~gesdot~⪀~gesdoto~⪂~gesdotol~⪄~gesl~⋛︀~gesles~⪔~gfr~𝔤~gg~≫~ggg~⋙~gimel~ℷ~gjcy~ѓ~gl~≷~glE~⪒~gla~⪥~glj~⪤~gnE~≩~gnap~⪊~gnapprox~⪊~gne~⪈~gneq~⪈~gneqq~≩~gnsim~⋧~gopf~𝕘~grave~`~gscr~ℊ~gsim~≳~gsime~⪎~gsiml~⪐~gtcc~⪧~gtcir~⩺~gtdot~⋗~gtlPar~⦕~gtquest~⩼~gtrapprox~⪆~gtrarr~⥸~gtrdot~⋗~gtreqless~⋛~gtreqqless~⪌~gtrless~≷~gtrsim~≳~gvertneqq~≩︀~gvnE~≩︀~hairsp~ ~half~½~hamilt~ℋ~hardcy~ъ~harrcir~⥈~harrw~↭~hbar~ℏ~hcirc~ĥ~heartsuit~♥~hercon~⊹~hfr~𝔥~hksearow~⤥~hkswarow~⤦~hoarr~⇿~homtht~∻~hookleftarrow~↩~hookrightarrow~↪~hopf~𝕙~horbar~―~hscr~𝒽~hslash~ℏ~hstrok~ħ~hybull~⁃~hyphen~‐~ic~~icy~и~iecy~е~iff~⇔~ifr~𝔦~ii~ⅈ~iiiint~⨌~iiint~∭~iinfin~⧜~iiota~℩~ijlig~ij~imacr~ī~imagline~ℐ~imagpart~ℑ~imath~ı~imof~⊷~imped~Ƶ~in~∈~incare~℅~infintie~⧝~inodot~ı~intcal~⊺~integers~ℤ~intercal~⊺~intlarhk~⨗~intprod~⨼~iocy~ё~iogon~į~iopf~𝕚~iprod~⨼~iscr~𝒾~isinE~⋹~isindot~⋵~isins~⋴~isinsv~⋳~isinv~∈~it~~itilde~ĩ~iukcy~і~jcirc~ĵ~jcy~й~jfr~𝔧~jmath~ȷ~jopf~𝕛~jscr~𝒿~jsercy~ј~jukcy~є~kappav~ϰ~kcedil~ķ~kcy~к~kfr~𝔨~kgreen~ĸ~khcy~х~kjcy~ќ~kopf~𝕜~kscr~𝓀~lAarr~⇚~lAtail~⤛~lBarr~⤎~lE~≦~lEg~⪋~lHar~⥢~lacute~ĺ~laemptyv~⦴~lagran~ℒ~langd~⦑~langle~⟨~lap~⪅~larrb~⇤~larrbfs~⤟~larrfs~⤝~larrhk~↩~larrlp~↫~larrpl~⤹~larrsim~⥳~larrtl~↢~lat~⪫~latail~⤙~late~⪭~lates~⪭︀~lbarr~⤌~lbbrk~❲~lbrace~{~lbrack~[~lbrke~⦋~lbrksld~⦏~lbrkslu~⦍~lcaron~ľ~lcedil~ļ~lcub~{~lcy~л~ldca~⤶~ldquor~„~ldrdhar~⥧~ldrushar~⥋~ldsh~↲~leftarrow~←~leftarrowtail~↢~leftharpoondown~↽~leftharpoonup~↼~leftleftarrows~⇇~leftrightarrow~↔~leftrightarrows~⇆~leftrightharpoons~⇋~leftrightsquigarrow~↭~leftthreetimes~⋋~leg~⋚~leq~≤~leqq~≦~leqslant~⩽~les~⩽~lescc~⪨~lesdot~⩿~lesdoto~⪁~lesdotor~⪃~lesg~⋚︀~lesges~⪓~lessapprox~⪅~lessdot~⋖~lesseqgtr~⋚~lesseqqgtr~⪋~lessgtr~≶~lesssim~≲~lfisht~⥼~lfr~𝔩~lg~≶~lgE~⪑~lhard~↽~lharu~↼~lharul~⥪~lhblk~▄~ljcy~љ~ll~≪~llarr~⇇~llcorner~⌞~llhard~⥫~lltri~◺~lmidot~ŀ~lmoust~⎰~lmoustache~⎰~lnE~≨~lnap~⪉~lnapprox~⪉~lne~⪇~lneq~⪇~lneqq~≨~lnsim~⋦~loang~⟬~loarr~⇽~lobrk~⟦~longleftarrow~⟵~longleftrightarrow~⟷~longmapsto~⟼~longrightarrow~⟶~looparrowleft~↫~looparrowright~↬~lopar~⦅~lopf~𝕝~loplus~⨭~lotimes~⨴~lowbar~_~lozenge~◊~lozf~⧫~lpar~(~lparlt~⦓~lrarr~⇆~lrcorner~⌟~lrhar~⇋~lrhard~⥭~lrtri~⊿~lscr~𝓁~lsh~↰~lsim~≲~lsime~⪍~lsimg~⪏~lsqb~[~lsquor~‚~lstrok~ł~ltcc~⪦~ltcir~⩹~ltdot~⋖~lthree~⋋~ltimes~⋉~ltlarr~⥶~ltquest~⩻~ltrPar~⦖~ltri~◃~ltrie~⊴~ltrif~◂~lurdshar~⥊~luruhar~⥦~lvertneqq~≨︀~lvnE~≨︀~mDDot~∺~male~♂~malt~✠~maltese~✠~map~↦~mapsto~↦~mapstodown~↧~mapstoleft~↤~mapstoup~↥~marker~▮~mcomma~⨩~mcy~м~measuredangle~∡~mfr~𝔪~mho~℧~mid~∣~midast~*~midcir~⫰~minusb~⊟~minusd~∸~minusdu~⨪~mlcp~⫛~mldr~…~mnplus~∓~models~⊧~mopf~𝕞~mp~∓~mscr~𝓂~mstpos~∾~multimap~⊸~mumap~⊸~nGg~⋙̸~nGt~≫⃒~nGtv~≫̸~nLeftarrow~⇍~nLeftrightarrow~⇎~nLl~⋘̸~nLt~≪⃒~nLtv~≪̸~nRightarrow~⇏~nVDash~⊯~nVdash~⊮~nacute~ń~nang~∠⃒~nap~≉~napE~⩰̸~napid~≋̸~napos~ʼn~napprox~≉~natur~♮~natural~♮~naturals~ℕ~nbump~≎̸~nbumpe~≏̸~ncap~⩃~ncaron~ň~ncedil~ņ~ncong~≇~ncongdot~⩭̸~ncup~⩂~ncy~н~neArr~⇗~nearhk~⤤~nearr~↗~nearrow~↗~nedot~≐̸~nequiv~≢~nesear~⤨~nesim~≂̸~nexist~∄~nexists~∄~nfr~𝔫~ngE~≧̸~nge~≱~ngeq~≱~ngeqq~≧̸~ngeqslant~⩾̸~nges~⩾̸~ngsim~≵~ngt~≯~ngtr~≯~nhArr~⇎~nharr~↮~nhpar~⫲~nis~⋼~nisd~⋺~niv~∋~njcy~њ~nlArr~⇍~nlE~≦̸~nlarr~↚~nldr~‥~nle~≰~nleftarrow~↚~nleftrightarrow~↮~nleq~≰~nleqq~≦̸~nleqslant~⩽̸~nles~⩽̸~nless~≮~nlsim~≴~nlt~≮~nltri~⋪~nltrie~⋬~nmid~∤~nopf~𝕟~notinE~⋹̸~notindot~⋵̸~notinva~∉~notinvb~⋷~notinvc~⋶~notni~∌~notniva~∌~notnivb~⋾~notnivc~⋽~npar~∦~nparallel~∦~nparsl~⫽⃥~npart~∂̸~npolint~⨔~npr~⊀~nprcue~⋠~npre~⪯̸~nprec~⊀~npreceq~⪯̸~nrArr~⇏~nrarr~↛~nrarrc~⤳̸~nrarrw~↝̸~nrightarrow~↛~nrtri~⋫~nrtrie~⋭~nsc~⊁~nsccue~⋡~nsce~⪰̸~nscr~𝓃~nshortmid~∤~nshortparallel~∦~nsim~≁~nsime~≄~nsimeq~≄~nsmid~∤~nspar~∦~nsqsube~⋢~nsqsupe~⋣~nsubE~⫅̸~nsube~⊈~nsubset~⊂⃒~nsubseteq~⊈~nsubseteqq~⫅̸~nsucc~⊁~nsucceq~⪰̸~nsup~⊅~nsupE~⫆̸~nsupe~⊉~nsupset~⊃⃒~nsupseteq~⊉~nsupseteqq~⫆̸~ntgl~≹~ntlg~≸~ntriangleleft~⋪~ntrianglelefteq~⋬~ntriangleright~⋫~ntrianglerighteq~⋭~num~#~numero~№~numsp~ ~nvDash~⊭~nvHarr~⤄~nvap~≍⃒~nvdash~⊬~nvge~≥⃒~nvgt~>⃒~nvinfin~⧞~nvlArr~⤂~nvle~≤⃒~nvlt~<⃒~nvltrie~⊴⃒~nvrArr~⤃~nvrtrie~⊵⃒~nvsim~∼⃒~nwArr~⇖~nwarhk~⤣~nwarr~↖~nwarrow~↖~nwnear~⤧~oS~Ⓢ~oast~⊛~ocir~⊚~ocy~о~odash~⊝~odblac~ő~odiv~⨸~odot~⊙~odsold~⦼~ofcir~⦿~ofr~𝔬~ogon~˛~ogt~⧁~ohbar~⦵~ohm~Ω~oint~∮~olarr~↺~olcir~⦾~olcross~⦻~olt~⧀~omacr~ō~omid~⦶~ominus~⊖~oopf~𝕠~opar~⦷~operp~⦹~orarr~↻~ord~⩝~order~ℴ~orderof~ℴ~origof~⊶~oror~⩖~orslope~⩗~orv~⩛~oscr~ℴ~osol~⊘~otimesas~⨶~ovbar~⌽~par~∥~parallel~∥~parsim~⫳~parsl~⫽~pcy~п~percnt~%~period~.~pertenk~‱~pfr~𝔭~phiv~ϕ~phmmat~ℳ~phone~☎~pitchfork~⋔~planck~ℏ~planckh~ℎ~plankv~ℏ~plus~+~plusacir~⨣~plusb~⊞~pluscir~⨢~plusdo~∔~plusdu~⨥~pluse~⩲~plussim~⨦~plustwo~⨧~pm~±~pointint~⨕~popf~𝕡~pr~≺~prE~⪳~prap~⪷~prcue~≼~pre~⪯~prec~≺~precapprox~⪷~preccurlyeq~≼~preceq~⪯~precnapprox~⪹~precneqq~⪵~precnsim~⋨~precsim~≾~primes~ℙ~prnE~⪵~prnap~⪹~prnsim~⋨~profalar~⌮~profline~⌒~profsurf~⌓~propto~∝~prsim~≾~prurel~⊰~pscr~𝓅~puncsp~ ~qfr~𝔮~qint~⨌~qopf~𝕢~qprime~⁗~qscr~𝓆~quaternions~ℍ~quatint~⨖~quest~?~questeq~≟~rAarr~⇛~rAtail~⤜~rBarr~⤏~rHar~⥤~race~∽̱~racute~ŕ~raemptyv~⦳~rangd~⦒~range~⦥~rangle~⟩~rarrap~⥵~rarrb~⇥~rarrbfs~⤠~rarrc~⤳~rarrfs~⤞~rarrhk~↪~rarrlp~↬~rarrpl~⥅~rarrsim~⥴~rarrtl~↣~rarrw~↝~ratail~⤚~ratio~∶~rationals~ℚ~rbarr~⤍~rbbrk~❳~rbrace~}~rbrack~]~rbrke~⦌~rbrksld~⦎~rbrkslu~⦐~rcaron~ř~rcedil~ŗ~rcub~}~rcy~р~rdca~⤷~rdldhar~⥩~rdquor~”~rdsh~↳~realine~ℛ~realpart~ℜ~reals~ℝ~rect~▭~rfisht~⥽~rfr~𝔯~rhard~⇁~rharu~⇀~rharul~⥬~rhov~ϱ~rightarrow~→~rightarrowtail~↣~rightharpoondown~⇁~rightharpoonup~⇀~rightleftarrows~⇄~rightleftharpoons~⇌~rightrightarrows~⇉~rightsquigarrow~↝~rightthreetimes~⋌~ring~˚~risingdotseq~≓~rlarr~⇄~rlhar~⇌~rmoust~⎱~rmoustache~⎱~rnmid~⫮~roang~⟭~roarr~⇾~robrk~⟧~ropar~⦆~ropf~𝕣~roplus~⨮~rotimes~⨵~rpar~)~rpargt~⦔~rppolint~⨒~rrarr~⇉~rscr~𝓇~rsh~↱~rsqb~]~rsquor~’~rthree~⋌~rtimes~⋊~rtri~▹~rtrie~⊵~rtrif~▸~rtriltri~⧎~ruluhar~⥨~rx~℞~sacute~ś~sc~≻~scE~⪴~scap~⪸~sccue~≽~sce~⪰~scedil~ş~scirc~ŝ~scnE~⪶~scnap~⪺~scnsim~⋩~scpolint~⨓~scsim~≿~scy~с~sdotb~⊡~sdote~⩦~seArr~⇘~searhk~⤥~searr~↘~searrow~↘~semi~;~seswar~⤩~setminus~∖~setmn~∖~sext~✶~sfr~𝔰~sfrown~⌢~sharp~♯~shchcy~щ~shcy~ш~shortmid~∣~shortparallel~∥~sigmav~ς~simdot~⩪~sime~≃~simeq~≃~simg~⪞~simgE~⪠~siml~⪝~simlE~⪟~simne~≆~simplus~⨤~simrarr~⥲~slarr~←~smallsetminus~∖~smashp~⨳~smeparsl~⧤~smid~∣~smile~⌣~smt~⪪~smte~⪬~smtes~⪬︀~softcy~ь~sol~/~solb~⧄~solbar~⌿~sopf~𝕤~spadesuit~♠~spar~∥~sqcap~⊓~sqcaps~⊓︀~sqcup~⊔~sqcups~⊔︀~sqsub~⊏~sqsube~⊑~sqsubset~⊏~sqsubseteq~⊑~sqsup~⊐~sqsupe~⊒~sqsupset~⊐~sqsupseteq~⊒~squ~□~square~□~squarf~▪~squf~▪~srarr~→~sscr~𝓈~ssetmn~∖~ssmile~⌣~sstarf~⋆~star~☆~starf~★~straightepsilon~ϵ~straightphi~ϕ~strns~¯~subE~⫅~subdot~⪽~subedot~⫃~submult~⫁~subnE~⫋~subne~⊊~subplus~⪿~subrarr~⥹~subset~⊂~subseteq~⊆~subseteqq~⫅~subsetneq~⊊~subsetneqq~⫋~subsim~⫇~subsub~⫕~subsup~⫓~succ~≻~succapprox~⪸~succcurlyeq~≽~succeq~⪰~succnapprox~⪺~succneqq~⪶~succnsim~⋩~succsim~≿~sung~♪~supE~⫆~supdot~⪾~supdsub~⫘~supedot~⫄~suphsol~⟉~suphsub~⫗~suplarr~⥻~supmult~⫂~supnE~⫌~supne~⊋~supplus~⫀~supset~⊃~supseteq~⊇~supseteqq~⫆~supsetneq~⊋~supsetneqq~⫌~supsim~⫈~supsub~⫔~supsup~⫖~swArr~⇙~swarhk~⤦~swarr~↙~swarrow~↙~swnwar~⤪~target~⌖~tbrk~⎴~tcaron~ť~tcedil~ţ~tcy~т~tdot~⃛~telrec~⌕~tfr~𝔱~therefore~∴~thetav~ϑ~thickapprox~≈~thicksim~∼~thkap~≈~thksim~∼~timesb~⊠~timesbar~⨱~timesd~⨰~tint~∭~toea~⤨~top~⊤~topbot~⌶~topcir~⫱~topf~𝕥~topfork~⫚~tosa~⤩~tprime~‴~triangle~▵~triangledown~▿~triangleleft~◃~trianglelefteq~⊴~triangleq~≜~triangleright~▹~trianglerighteq~⊵~tridot~◬~trie~≜~triminus~⨺~triplus~⨹~trisb~⧍~tritime~⨻~trpezium~⏢~tscr~𝓉~tscy~ц~tshcy~ћ~tstrok~ŧ~twixt~≬~twoheadleftarrow~↞~twoheadrightarrow~↠~uHar~⥣~ubrcy~ў~ubreve~ŭ~ucy~у~udarr~⇅~udblac~ű~udhar~⥮~ufisht~⥾~ufr~𝔲~uharl~↿~uharr~↾~uhblk~▀~ulcorn~⌜~ulcorner~⌜~ulcrop~⌏~ultri~◸~umacr~ū~uogon~ų~uopf~𝕦~uparrow~↑~updownarrow~↕~upharpoonleft~↿~upharpoonright~↾~uplus~⊎~upsi~υ~upuparrows~⇈~urcorn~⌝~urcorner~⌝~urcrop~⌎~uring~ů~urtri~◹~uscr~𝓊~utdot~⋰~utilde~ũ~utri~▵~utrif~▴~uuarr~⇈~uwangle~⦧~vArr~⇕~vBar~⫨~vBarv~⫩~vDash~⊨~vangrt~⦜~varepsilon~ϵ~varkappa~ϰ~varnothing~∅~varphi~ϕ~varpi~ϖ~varpropto~∝~varr~↕~varrho~ϱ~varsigma~ς~varsubsetneq~⊊︀~varsubsetneqq~⫋︀~varsupsetneq~⊋︀~varsupsetneqq~⫌︀~vartheta~ϑ~vartriangleleft~⊲~vartriangleright~⊳~vcy~в~vdash~⊢~vee~∨~veebar~⊻~veeeq~≚~vellip~⋮~verbar~|~vert~|~vfr~𝔳~vltri~⊲~vnsub~⊂⃒~vnsup~⊃⃒~vopf~𝕧~vprop~∝~vrtri~⊳~vscr~𝓋~vsubnE~⫋︀~vsubne~⊊︀~vsupnE~⫌︀~vsupne~⊋︀~vzigzag~⦚~wcirc~ŵ~wedbar~⩟~wedge~∧~wedgeq~≙~wfr~𝔴~wopf~𝕨~wp~℘~wr~≀~wreath~≀~wscr~𝓌~xcap~⋂~xcirc~◯~xcup~⋃~xdtri~▽~xfr~𝔵~xhArr~⟺~xharr~⟷~xlArr~⟸~xlarr~⟵~xmap~⟼~xnis~⋻~xodot~⨀~xopf~𝕩~xoplus~⨁~xotime~⨂~xrArr~⟹~xrarr~⟶~xscr~𝓍~xsqcup~⨆~xuplus~⨄~xutri~△~xvee~⋁~xwedge~⋀~yacy~я~ycirc~ŷ~ycy~ы~yfr~𝔶~yicy~ї~yopf~𝕪~yscr~𝓎~yucy~ю~zacute~ź~zcaron~ž~zcy~з~zdot~ż~zeetrf~ℨ~zfr~𝔷~zhcy~ж~zigrarr~⇝~zopf~𝕫~zscr~𝓏~~AMP~&~COPY~©~GT~>~LT~<~QUOT~"~REG~®',a.html4);var n={0:65533,128:8364,130:8218,131:402,132:8222,133:8230,134:8224,135:8225,136:710,137:8240,138:352,139:8249,140:338,142:381,145:8216,146:8217,147:8220,148:8221,149:8226,150:8211,151:8212,152:732,153:8482,154:353,155:8250,156:339,158:382,159:376},i=String.fromCodePoint||function(e){return String.fromCharCode(Math.floor((e-65536)/1024)+55296,(e-65536)%1024+56320)},l=String.prototype.codePointAt?function(e,r){return e.codePointAt(r)}:function(e,r){return 1024*(e.charCodeAt(r)-55296)+e.charCodeAt(r+1)-56320+65536},c=function(){return c=Object.assign||function(e){for(var r,t=1,s=arguments.length;t<s;t++)for(var o in r=arguments[t])Object.prototype.hasOwnProperty.call(r,o)&&(e[o]=r[o]);return e},c.apply(this,arguments)},p=c(c({},a),{all:a.html5}),u={specialChars:/[<>'"&]/g,nonAscii:/[<>'"&\u0080-\uD7FF\uE000-\uFFFF\uDC00-\uDFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]?/g,nonAsciiPrintable:/[<>'"&\x01-\x08\x11-\x15\x17-\x1F\x7f-\uD7FF\uE000-\uFFFF\uDC00-\uDFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]?/g,nonAsciiPrintableOnly:/[\x01-\x08\x11-\x15\x17-\x1F\x7f-\uD7FF\uE000-\uFFFF\uDC00-\uDFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]?/g,extensive:/[\x01-\x0c\x0e-\x1f\x21-\x2c\x2e-\x2f\x3a-\x40\x5b-\x60\x7b-\x7d\x7f-\uD7FF\uE000-\uFFFF\uDC00-\uDFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]?/g},h={mode:"specialChars",level:"all",numeric:"decimal"};function g(e,r){var t=void 0===r?h:r,s=t.mode,o=void 0===s?"specialChars":s,a=t.numeric,n=void 0===a?"decimal":a,i=t.level;if(!e)return"";var c=u[o],g=p[void 0===i?"all":i].characters,m="hexadecimal"===n;return String.prototype.replace.call(e,c,(function(e){var r=g[e];if(!r){var t=e.length>1?l(e,0):e.charCodeAt(0);r=(m?"&#x"+t.toString(16):"&#"+t)+";"}return r}))}var m={scope:"body",level:"all"},f=/&(?:#\d+|#[xX][\da-fA-F]+|[0-9a-zA-Z]+);/g,d=/&(?:#\d+|#[xX][\da-fA-F]+|[0-9a-zA-Z]+)[;=]?/g,E={xml:{strict:f,attribute:d,body:o.xml},html4:{strict:f,attribute:d,body:o.html4},html5:{strict:f,attribute:d,body:o.html5}},w=c(c({},E),{all:E.html5}),y=String.fromCharCode,b=y(65533);class v{#e="";#r=[];#t={};#s="";constructor(e="",r="",t=[],s={}){this.name=e,this.tags=t,this.metadata=s,this.text=r}get name(){return this.#e}set name(e){if("string"!=typeof e)throw new Error("Name must be a String!");this.#e=e}get tags(){return this.#r}set tags(e){if(!Array.isArray(e))throw new Error("Tags must be an array!");this.#r=e}get metadata(){return this.#t}set metadata(e){if("object"!=typeof e)throw new Error("Metadata should be an object literal!");this.#t=e}get text(){return this.#s}set text(e){if("string"!=typeof e)throw new Error("Text should be a String!");this.#s=e}toTwee(){let e="";e+=`:: ${this.name}`,this.tags.length>0&&(e+=` [${this.tags.join(" ")}]`),Object.keys(this.metadata).length>0&&(e+=` ${JSON.stringify(this.metadata)}`);const r=this.text.split("\n");for(let e=0;e<r.length;e++)r[e].startsWith("::")&&(r[e]=`\\${r[e]}`);return e+=`\n${r.join("\n")}\n\n`,e}toJSON(){const e={name:this.name,tags:this.tags,metadata:this.metadata,text:this.text};return JSON.stringify(e)}toTwine2HTML(e=1){let r="\t<tw-passagedata";return r+=` pid="${e}"`,r+=` name="${g(this.name)}"`,r+=` tags="${g(this.#r.join(" "))}" `,Object.prototype.hasOwnProperty.call(this.#t,"position")&&(r+=` position="${this.#t.position}" `),Object.prototype.hasOwnProperty.call(this.#t,"size")&&(r+=`size="${this.#t.size}" `),r+=`>${g(this.text)}</tw-passagedata>\n`,r}toTwine1HTML(){let e="\t<div";return e+=` tiddler="${g(this.name)}"`,e+=` tags="${g(this.#r.join(" "))}" `,e+=' modifier="extwee"',Object.prototype.hasOwnProperty.call(this.#t,"position")?e+=` twine-position="${this.#t.position}"`:e+=' twine-position="10,10"',e+=`>${g(this.#s)}</div>`,e}}const O=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i,S=function(e){if(!function(e){return"string"==typeof e&&O.test(e)}(e))throw TypeError("Invalid UUID");let r;return Uint8Array.of((r=parseInt(e.slice(0,8),16))>>>24,r>>>16&255,r>>>8&255,255&r,(r=parseInt(e.slice(9,13),16))>>>8,255&r,(r=parseInt(e.slice(14,18),16))>>>8,255&r,(r=parseInt(e.slice(19,23),16))>>>8,255&r,(r=parseInt(e.slice(24,36),16))/1099511627776&255,r/4294967296&255,r>>>24&255,r>>>16&255,r>>>8&255,255&r)},I=[];for(let e=0;e<256;++e)I.push((e+256).toString(16).slice(1));function A(e,r=0){return(I[e[r+0]]+I[e[r+1]]+I[e[r+2]]+I[e[r+3]]+"-"+I[e[r+4]]+I[e[r+5]]+"-"+I[e[r+6]]+I[e[r+7]]+"-"+I[e[r+8]]+I[e[r+9]]+"-"+I[e[r+10]]+I[e[r+11]]+I[e[r+12]]+I[e[r+13]]+I[e[r+14]]+I[e[r+15]]).toLowerCase()}let R;const L=new Uint8Array(16);function x(e){return 14+(e+64>>>9<<4)+1}function T(e,r){const t=(65535&e)+(65535&r);return(e>>16)+(r>>16)+(t>>16)<<16|65535&t}function N(e,r,t,s,o,a){return T((n=T(T(r,e),T(s,a)))<<(i=o)|n>>>32-i,t);var n,i}function $(e,r,t,s,o,a,n){return N(r&t|~r&s,e,r,o,a,n)}function D(e,r,t,s,o,a,n){return N(r&s|t&~s,e,r,o,a,n)}function q(e,r,t,s,o,a,n){return N(r^t^s,e,r,o,a,n)}function P(e,r,t,s,o,a,n){return N(t^(r|~s),e,r,o,a,n)}const F=function(e){return function(e){const r=new Uint8Array(4*e.length);for(let t=0;t<4*e.length;t++)r[t]=e[t>>2]>>>t%4*8&255;return r}(function(e,r){const t=new Uint32Array(x(r)).fill(0);t.set(e),t[r>>5]|=128<<r%32,t[t.length-1]=r,e=t;let s=1732584193,o=-271733879,a=-1732584194,n=271733878;for(let r=0;r<e.length;r+=16){const t=s,i=o,l=a,c=n;s=$(s,o,a,n,e[r],7,-680876936),n=$(n,s,o,a,e[r+1],12,-389564586),a=$(a,n,s,o,e[r+2],17,606105819),o=$(o,a,n,s,e[r+3],22,-1044525330),s=$(s,o,a,n,e[r+4],7,-176418897),n=$(n,s,o,a,e[r+5],12,1200080426),a=$(a,n,s,o,e[r+6],17,-1473231341),o=$(o,a,n,s,e[r+7],22,-45705983),s=$(s,o,a,n,e[r+8],7,1770035416),n=$(n,s,o,a,e[r+9],12,-1958414417),a=$(a,n,s,o,e[r+10],17,-42063),o=$(o,a,n,s,e[r+11],22,-1990404162),s=$(s,o,a,n,e[r+12],7,1804603682),n=$(n,s,o,a,e[r+13],12,-40341101),a=$(a,n,s,o,e[r+14],17,-1502002290),o=$(o,a,n,s,e[r+15],22,1236535329),s=D(s,o,a,n,e[r+1],5,-165796510),n=D(n,s,o,a,e[r+6],9,-1069501632),a=D(a,n,s,o,e[r+11],14,643717713),o=D(o,a,n,s,e[r],20,-373897302),s=D(s,o,a,n,e[r+5],5,-701558691),n=D(n,s,o,a,e[r+10],9,38016083),a=D(a,n,s,o,e[r+15],14,-660478335),o=D(o,a,n,s,e[r+4],20,-405537848),s=D(s,o,a,n,e[r+9],5,568446438),n=D(n,s,o,a,e[r+14],9,-1019803690),a=D(a,n,s,o,e[r+3],14,-187363961),o=D(o,a,n,s,e[r+8],20,1163531501),s=D(s,o,a,n,e[r+13],5,-1444681467),n=D(n,s,o,a,e[r+2],9,-51403784),a=D(a,n,s,o,e[r+7],14,1735328473),o=D(o,a,n,s,e[r+12],20,-1926607734),s=q(s,o,a,n,e[r+5],4,-378558),n=q(n,s,o,a,e[r+8],11,-2022574463),a=q(a,n,s,o,e[r+11],16,1839030562),o=q(o,a,n,s,e[r+14],23,-35309556),s=q(s,o,a,n,e[r+1],4,-1530992060),n=q(n,s,o,a,e[r+4],11,1272893353),a=q(a,n,s,o,e[r+7],16,-155497632),o=q(o,a,n,s,e[r+10],23,-1094730640),s=q(s,o,a,n,e[r+13],4,681279174),n=q(n,s,o,a,e[r],11,-358537222),a=q(a,n,s,o,e[r+3],16,-722521979),o=q(o,a,n,s,e[r+6],23,76029189),s=q(s,o,a,n,e[r+9],4,-640364487),n=q(n,s,o,a,e[r+12],11,-421815835),a=q(a,n,s,o,e[r+15],16,530742520),o=q(o,a,n,s,e[r+2],23,-995338651),s=P(s,o,a,n,e[r],6,-198630844),n=P(n,s,o,a,e[r+7],10,1126891415),a=P(a,n,s,o,e[r+14],15,-1416354905),o=P(o,a,n,s,e[r+5],21,-57434055),s=P(s,o,a,n,e[r+12],6,1700485571),n=P(n,s,o,a,e[r+3],10,-1894986606),a=P(a,n,s,o,e[r+10],15,-1051523),o=P(o,a,n,s,e[r+1],21,-2054922799),s=P(s,o,a,n,e[r+8],6,1873313359),n=P(n,s,o,a,e[r+15],10,-30611744),a=P(a,n,s,o,e[r+6],15,-1560198380),o=P(o,a,n,s,e[r+13],21,1309151649),s=P(s,o,a,n,e[r+4],6,-145523070),n=P(n,s,o,a,e[r+11],10,-1120210379),a=P(a,n,s,o,e[r+2],15,718787259),o=P(o,a,n,s,e[r+9],21,-343485551),s=T(s,t),o=T(o,i),a=T(a,l),n=T(n,c)}return Uint32Array.of(s,o,a,n)}(function(e){if(0===e.length)return new Uint32Array;const r=new Uint32Array(x(8*e.length)).fill(0);for(let t=0;t<e.length;t++)r[t>>2]|=(255&e[t])<<t%4*8;return r}(e),8*e.length))},C="6ba7b810-9dad-11d1-80b4-00c04fd430c8",U="6ba7b811-9dad-11d1-80b4-00c04fd430c8";function _(e,r,t,s,o,a){const n="string"==typeof t?function(e){e=unescape(encodeURIComponent(e));const r=new Uint8Array(e.length);for(let t=0;t<e.length;++t)r[t]=e.charCodeAt(t);return r}(t):t,i="string"==typeof s?S(s):s;if("string"==typeof s&&(s=S(s)),16!==s?.length)throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");let l=new Uint8Array(16+n.length);if(l.set(i),l.set(n,i.length),l=r(l),l[6]=15&l[6]|e,l[8]=63&l[8]|128,o){a=a||0;for(let e=0;e<16;++e)o[a+e]=l[e];return o}return A(l)}function j(e,r,t,s){return _(48,F,e,r,t,s)}j.DNS=C,j.URL=U;const k={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};const V=function(e,r,t){return!k.randomUUID||r||e?function(e,r,t){const s=(e=e||{}).random??e.rng?.()??function(){if(!R){if("undefined"==typeof crypto||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");R=crypto.getRandomValues.bind(crypto)}return R(L)}();if(s.length<16)throw new Error("Random bytes length must be >= 16");if(s[6]=15&s[6]|64,s[8]=63&s[8]|128,r){if((t=t||0)<0||t+16>r.length)throw new RangeError(`UUID byte range ${t}:${t+15} is out of buffer bounds`);for(let e=0;e<16;++e)r[t+e]=s[e];return r}return A(s)}(e,r,t):k.randomUUID()};function G(e,r,t,s){switch(e){case 0:return r&t^~r&s;case 1:case 3:return r^t^s;case 2:return r&t^r&s^t&s}}function M(e,r){return e<<r|e>>>32-r}const B=function(e){const r=[1518500249,1859775393,2400959708,3395469782],t=[1732584193,4023233417,2562383102,271733878,3285377520],s=new Uint8Array(e.length+1);s.set(e),s[e.length]=128;const o=(e=s).length/4+2,a=Math.ceil(o/16),n=new Array(a);for(let r=0;r<a;++r){const t=new Uint32Array(16);for(let s=0;s<16;++s)t[s]=e[64*r+4*s]<<24|e[64*r+4*s+1]<<16|e[64*r+4*s+2]<<8|e[64*r+4*s+3];n[r]=t}n[a-1][14]=8*(e.length-1)/Math.pow(2,32),n[a-1][14]=Math.floor(n[a-1][14]),n[a-1][15]=8*(e.length-1)&4294967295;for(let e=0;e<a;++e){const s=new Uint32Array(80);for(let r=0;r<16;++r)s[r]=n[e][r];for(let e=16;e<80;++e)s[e]=M(s[e-3]^s[e-8]^s[e-14]^s[e-16],1);let o=t[0],a=t[1],i=t[2],l=t[3],c=t[4];for(let e=0;e<80;++e){const t=Math.floor(e/20),n=M(o,5)+G(t,a,i,l)+c+r[t]+s[e]>>>0;c=l,l=i,i=M(a,30)>>>0,a=o,o=n}t[0]=t[0]+o>>>0,t[1]=t[1]+a>>>0,t[2]=t[2]+i>>>0,t[3]=t[3]+l>>>0,t[4]=t[4]+c>>>0}return Uint8Array.of(t[0]>>24,t[0]>>16,t[0]>>8,t[0],t[1]>>24,t[1]>>16,t[1]>>8,t[1],t[2]>>24,t[2]>>16,t[2]>>8,t[2],t[3]>>24,t[3]>>16,t[3]>>8,t[3],t[4]>>24,t[4]>>16,t[4]>>8,t[4])};function H(e,r,t,s){return _(80,B,e,r,t,s)}function z(){return V().toUpperCase()}H.DNS=C,H.URL=U;class X{#e="Untitled Story";#o="";#a="";#n="";#i="";#l=1;#c=[];#p="";#u="";#t=null;#h={};#g="";#m="";constructor(e="Untitled Story"){this.name=e,this.#p="extwee",this.#u="2.3.3",this.#t={}}get name(){return this.#e}set name(e){if("string"!=typeof e)throw new Error("Story name must be a string");this.#e=e}get tagColors(){return this.#h}set tagColors(e){if(!(e instanceof Object))throw new Error("Tag colors must be an object!");this.#h=e}get IFID(){return this.#a}set IFID(e){if("string"!=typeof e)throw new Error("IFID must be a String!");this.#a=e}get start(){return this.#o}set start(e){if("string"!=typeof e)throw new Error("start (passage name) must be a String!");this.#o=e}get formatVersion(){return this.#i}set formatVersion(e){if("string"!=typeof e)throw new Error("Story format version must be a String!");this.#i=e}get metadata(){return this.#t}set metadata(e){if("object"!=typeof e)throw new Error("Story metadata must be Object!");this.#t=e}get format(){return this.#n}set format(e){if("string"!=typeof e)throw new Error("Story format must be a String!");this.#n=e}get creator(){return this.#p}set creator(e){if("string"!=typeof e)throw new Error("Creator must be String");this.#p=e}get creatorVersion(){return this.#u}set creatorVersion(e){if("string"!=typeof e)throw new Error("Creator version must be a string!");this.#u=e}get zoom(){return this.#l}set zoom(e){if("number"!=typeof e)throw new Error("Zoom level must be a Number!");this.#l=Number(Number.parseFloat(e).toFixed(2))}get passages(){return this.#c}set passages(e){if(!Array.isArray(e))throw new Error("Passages must be an Array!");if(!e.every((e=>e instanceof v)))throw new Error("Passages must be an Array of Passage objects!");this.#c=e}get storyStylesheet(){return this.#m}set storyStylesheet(e){if("string"!=typeof e)throw new Error("Story stylesheet must be a string!");this.#m=e}get storyJavaScript(){return this.#g}set storyJavaScript(e){if("string"!=typeof e)throw new Error("Story JavaScript must be a string!");this.#g=e}addPassage(e){if(!(e instanceof v))throw new Error("Can only add Passages to the story!");if(null!==this.getPassageByName(e.name))return console.warn(`Warning: A passage with the name "${e.name}" already exists!`),this.#c.length;if("StoryData"===e.name){try{const r=JSON.parse(e.text);Object.prototype.hasOwnProperty.call(r,"ifid")&&(this.IFID=r.ifid),Object.prototype.hasOwnProperty.call(r,"format")&&(this.format=r.format),Object.prototype.hasOwnProperty.call(r,"format-version")&&(this.formatVersion=r["format-version"]),Object.prototype.hasOwnProperty.call(r,"zoom")&&(this.zoom=r.zoom),Object.prototype.hasOwnProperty.call(r,"start")&&(this.start=r.start),Object.prototype.hasOwnProperty.call(r,"tag-colors")&&(this.tagColors=r["tag-colors"])}catch(e){}return this.#c.length}return"StoryTitle"===e.name?(this.name=e.text,this.#c.length):("Start"===e.name&&""==this.start&&(this.start=e.name),this.#c.push(e))}removePassageByName(e){return this.#c=this.#c.filter((r=>r.name!==e)),this.#c.length}getPassagesByTag(e){return this.#c.filter((r=>r.tags.some((r=>e===r))))}getPassageByName(e){const r=this.#c.find((r=>r.name===e));return void 0!==r?r:null}size(){return this.#c.length}toJSON(){const e={name:this.name,tagColors:this.tagColors,ifid:this.IFID,start:this.start,formatVersion:this.formatVersion,metadata:this.metadata,format:this.format,creator:this.creator,creatorVersion:this.creatorVersion,zoom:this.zoom,style:this.storyStylesheet,script:this.storyJavaScript,passages:[]};return this.passages.forEach((r=>{e.passages.push({name:r.name,tags:r.tags,metadata:r.metadata,text:r.text})})),JSON.stringify(e,null,4)}toTwee(){let e=":: StoryData\n";const r={};return null===this.IFID.match(/^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/)?(r.ifid=z(),console.warn("Warning: IFID is not in UUIDv4 format! A new IFID was generated.")):r.ifid=this.IFID,""!==this.format&&(r.format=this.format),""!==this.formatVersion&&(r["format-version"]=this.formatVersion),0!==this.zoom&&(r.zoom=this.zoom),""!==this.start&&(r.start=this.start),Object.keys(this.tagColors).length>0&&(r["tag-colors"]=this.tagColors),e+=`${JSON.stringify(r,void 0,2)}`,e+="\n\n",e+=":: StoryTitle\n"+this.name,e+="\n\n",this.#m.length>0&&(e+=":: StoryStylesheet [stylesheet]\n"+this.#m+"\n\n"),this.#g.length>0&&(e+=":: StoryJavaScript [script]\n"+this.#g+"\n\n"),this.passages.forEach((r=>{e+=r.toTwee()})),e}toTwine2HTML(){let e=this.passages,r=`<tw-storydata name="${g(this.name)}"`;""!==this.IFID?r+=` ifid="${this.IFID}"`:r+=` ifid="${z()}"`;let t=1,s=1;e.forEach((e=>{e.name===this.start&&(s=t),t++})),0===e.length&&(s=0),r+=` startnode="${s}"`,""!==this.creator&&(r+=` creator="${g(this.creator)}"`),""!==this.creatorVersion&&(r+=` creator-version="${this.creatorVersion}"`),1!==this.zoom&&(r+=` zoom="${this.zoom}"`),""!==this.format&&(r+=` format="${this.format}"`),""!==this.formatVersion&&(r+=` format-version="${this.formatVersion}"`),r+=" options hidden>\n";const o=e.filter((e=>e.tags.includes("stylesheet")));e=e.filter((e=>!e.tags.includes("stylesheet"))),o.length>0&&(r+='\t<style role="stylesheet" id="twine-user-stylesheet" type="text/twine-css">',o.forEach((e=>{r+=e.text})),r+="</style>\n"),this.#m.length>0&&(r+=`\t<style role="stylesheet" id="twine-user-stylesheet" type="text/twine-css">${this.#m}</style>\n`);const a=e.filter((e=>e.tags.includes("script")));return e=e.filter((e=>!e.tags.includes("script"))),a.length>0&&(r+='\t<script role="script" id="twine-user-script" type="text/twine-javascript">',a.forEach((e=>{r+=e.text})),r+="<\/script>\n"),this.#g.length>0&&(r+=`\t<script role="script" id="twine-user-script" type="text/twine-javascript">${this.#g}<\/script>\n`),t=1,this.passages.forEach((e=>{r+=e.toTwine2HTML(t),t++})),Object.keys(this.tagColors).forEach((e=>{r+=`\t<tw-tag name="${e}" color="${this.tagColors[e]}"></tw-tag>\n`})),r+="</tw-storydata>",r}toTwine1HTML(){let e="";return this.passages.forEach((r=>{e+=`\t${r.toTwine1HTML()}`})),e}}var J=function t(s){var o=r[s];if(void 0!==o)return o.exports;var a=r[s]={exports:{}};return e[s](a,a.exports,t),a.exports}(589);class W{#e="Untitled Story Format";#f="";#d="";#E="";#w="";#y="";#b="";#v=!1;#O="";constructor(e="Untitled Story Format",r="",t="",s="",o="",a="",n="",i=!1,l=""){this.name=e,this.version=r,this.description=t,this.author=s,this.image=o,this.url=a,this.license=n,this.proofing=i,this.source=l}get name(){return this.#e}set name(e){if("string"!=typeof e)throw new TypeError("Name must be a string!");this.#e=e}get version(){return this.#f}set version(e){if("string"!=typeof e)throw new TypeError("Version must be a string!");this.#f=e}get description(){return this.#d}set description(e){if("string"!=typeof e)throw new TypeError("Description must be a string!");this.#d=e}get author(){return this.#E}set author(e){if("string"!=typeof e)throw new TypeError("Author must be a string!");this.#E=e}get image(){return this.#w}set image(e){if("string"!=typeof e)throw new TypeError("Image must be a string!");this.#w=e}get url(){return this.#y}set url(e){if("string"!=typeof e)throw new TypeError("URL must be a string!");this.#y=e}get license(){return this.#b}set license(e){if("string"!=typeof e)throw new TypeError("License must be a string!");this.#b=e}get proofing(){return this.#v}set proofing(e){if("boolean"!=typeof e)throw new TypeError("Proofing must be a Boolean!");this.#v=e}get source(){return this.#O}set source(e){if("string"!=typeof e)throw new TypeError("Source must be a String!");this.#O=e}toString(){return JSON.stringify(this,null,"\t")}toJSON(){let e="Untitled Story Format";if(this.name.length>0&&(e=this.name),!(0,J.valid)(this.version))throw new TypeError("ERROR: Version must be a valid semantic version!");return JSON.stringify({name:e,version:this.version,description:this.description,author:this.author,image:this.image,url:this.url,license:this.license,proofing:this.proofing,source:this.source})}}class Y{constructor(e){if(this.html=e,this.doc=null,"undefined"!=typeof DOMParser){const r=new DOMParser;this.doc=r.parseFromString(e,"text/html")}else this.doc=this.createSimpleDOM(e)}getElementsByTagName(e){return this.doc&&this.doc.getElementsByTagName?Array.from(this.doc.getElementsByTagName(e)):"tw-storydata"===e?this.extractStoryDataElements():"tw-passagedata"===e?this.extractPassageDataElements():"style"===e?this.extractStyleElements():[]}extractStoryDataElements(){const e=/<tw-storydata[^>]*>([\s\S]*?)<\/tw-storydata>/gi,r=[];let t;for(;null!==(t=e.exec(this.html));){const e=t[0],s=this.parseAttributes(e),o=t[1];r.push({attributes:s,innerHTML:o,rawText:o})}return r}extractPassageDataElements(){const e=/<tw-passagedata[^>]*>([\s\S]*?)<\/tw-passagedata>/gi,r=[];let t;for(;null!==(t=e.exec(this.html));){const e=t[0],s=this.parseAttributes(e),o=this.extractTextContent(t[1]);r.push({attributes:s,rawText:o})}return r}extractStyleElements(){const e=/<style[^>]*>([\s\S]*?)<\/style>/gi,r=[];let t;for(;null!==(t=e.exec(this.html));){const e=t[0],s=this.parseAttributes(e),o=t[1];r.push({attributes:s,rawText:o,innerHTML:o})}return r}parseAttributes(e){const r={},t=/(\w+(?:-\w+)*)=["']([^"']*)["']/g;let s;for(;null!==(s=t.exec(e));)r[s[1]]=s[2];return r}extractTextContent(e){return e.replace(/<[^>]*>/g,"").replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/'/g,"'").replace(/&/g,"&").trim()}createSimpleDOM(e){return{getElementsByTagName:e=>"tw-storydata"===e?this.extractStoryDataElements():"tw-passagedata"===e?this.extractPassageDataElements():"style"===e?this.extractStyleElements():[]}}}return window.Extwee={parseTwee:function(e){const r=new X;if("[object String]"!==Object.prototype.toString.call(e))throw new Error("Contents not a String");let t="";t=":"!==e[0]&&":"!==e[1]?e.slice(e.indexOf("::"),e.length):e;const s=t.split("\n::");s[0]=s[0].slice(2,s[0].length);let o=1;return s.forEach((e=>{let t="",s="",a="",n="",i=e.slice(0,e.indexOf("\n"));a=e.substring(i.length+1,e.length).trim();const l=i.lastIndexOf("{"),c=i.lastIndexOf("}");if(-1!==l&&-1!==c&&(s=i.slice(l,c+1),i=i.substring(0,l)+i.substring(c+1)),s.length>0)try{s=JSON.parse(s)}catch(e){console.info(`Info: Metadata could not be parsed. Setting to empty object. Reported error: ${e.message}`),s={}}else s={};const p=i.lastIndexOf("["),u=i.lastIndexOf("]");if(-1!==p&&-1!==u&&(t=i.slice(p,u+1),i=i.substring(0,p)+i.substring(u+1)),t.length>0){t=t.substring(1,t.length-1);let e=[];if(""!==t&&(e=t.split(" ")),e.length>1){const r=[];e.forEach((e=>{r.push(e.trim())})),t=r}else if(1===e.length){const e=t;t=[],t.push(e)}else t=[]}else t=[];if(t=t.filter((e=>""!==e)),i=i.trim(),!(i.length>0))throw new Error("Malformed passage header!");n=i,r.addPassage(new v(n,a,t,s,o)),o++})),r},parseJSON:function(e){let r={};const t=new X;try{r=JSON.parse(e)}catch(e){throw new Error(`Error: JSON could not be parsed! ${e.message}`)}return Object.prototype.hasOwnProperty.call(r,"name")&&(t.name=String(r.name)),Object.prototype.hasOwnProperty.call(r,"start")&&(t.start=String(r.start)),Object.prototype.hasOwnProperty.call(r,"ifid")&&(t.IFID=String(r.ifid).toUpperCase()),Object.prototype.hasOwnProperty.call(r,"format")&&(t.format=String(r.format)),Object.prototype.hasOwnProperty.call(r,"formatVersion")&&(t.formatVersion=String(r.formatVersion)),Object.prototype.hasOwnProperty.call(r,"creator")&&(t.creator=String(r.creator)),Object.prototype.hasOwnProperty.call(r,"creatorVersion")&&(t.creatorVersion=String(r.creatorVersion)),Object.prototype.hasOwnProperty.call(r,"zoom")&&(t.zoom=r.zoom),Object.prototype.hasOwnProperty.call(r,"tagColors")&&(t.tagColors=r.tagColors),Object.prototype.hasOwnProperty.call(r,"metadata")&&(t.metadata=r.metadata),Object.prototype.hasOwnProperty.call(r,"passages")&&Array.isArray(r.passages)&&r.passages.forEach((e=>{const r=new v;Object.prototype.hasOwnProperty.call(e,"name")&&(r.name=e.name),Object.prototype.hasOwnProperty.call(e,"tags")&&(r.tags=e.tags),Object.prototype.hasOwnProperty.call(e,"metadata")&&(r.metadata=e.metadata),Object.prototype.hasOwnProperty.call(e,"text")&&(r.text=e.text),t.addPassage(r)})),t},parseStoryFormat:function(e){const r=new W;if(-1!==e.indexOf("harlowe")){const r=e.lastIndexOf(',"setup": function');e=e.slice(0,r)+"}"}const t=e.indexOf("{"),s=e.lastIndexOf("}");if(-1===t||-1===s)throw new Error("Error: Unable to find Twine 2 JSON chunk!");e=e.slice(t,s+1);let o={};try{o=JSON.parse(e)}catch(e){throw new Error(`Error: Unable to parse Twine 2 JSON chunk! ${e.message}`)}return Object.prototype.hasOwnProperty.call(o,"name")&&("string"!=typeof o.name?console.warn("Warning: Processed story format's name is not a string. It will be ignored."):r.name=o.name),Object.prototype.hasOwnProperty.call(o,"author")&&("string"!=typeof o.author?console.warn("Warning: Processed story format's author is not a string. It will be ignored."):r.author=o.author),Object.prototype.hasOwnProperty.call(o,"description")&&("string"!=typeof o.description?console.warn("Warning: Processed story format's description is not a string. It will be ignored."):r.description=o.description),Object.prototype.hasOwnProperty.call(o,"image")&&("string"!=typeof o.image?console.warn("Warning: Processed story format's image is not a string. It will be ignored."):r.image=o.image),Object.prototype.hasOwnProperty.call(o,"url")&&("string"!=typeof o.url?console.warn("Warning: Processed story format's url is not a string. It will be ignored."):r.url=o.url),Object.prototype.hasOwnProperty.call(o,"license")&&("string"!=typeof o.license?console.warn("Warning: Processed story format's license is not a string. It will be ignored."):r.license=o.license),Object.prototype.hasOwnProperty.call(o,"proofing")&&("boolean"!=typeof o.proofing?console.warn("Warning: Processed story format's proofing is not a boolean. It will be ignored."):r.proofing=o.proofing),Object.prototype.hasOwnProperty.call(o,"version")?"string"!=typeof o.version?console.warn("Warning: Processed story format's version is not a string! It will be ignored."):(0,J.valid)(o.version)?r.version=o.version:console.warn("Warning: Processed story format's version is not semantic! It will be ignored."):console.warn("Warning: Processed story format does not have version property!"),Object.prototype.hasOwnProperty.call(o,"source")?"string"!=typeof o.source?console.warn("Warning: Processed story format's source is not a string! It will be ignored."):r.source=o.source:console.warn("Warning: Processed story format does not have source property!"),r},parseTwine2HTML:function(e){const r=new X;if("string"!=typeof e)throw new TypeError("TypeError: Content is not a string!");let t=null;const s=new Y(e),o=s.getElementsByTagName("tw-storydata");if(0===o.length)throw new TypeError("TypeError: Not Twine 2 HTML content!");const a=o[0];if(Object.prototype.hasOwnProperty.call(a.attributes,"name")?r.name=a.attributes.name:console.warn("Warning: The name attribute is missing from tw-storydata!"),Object.prototype.hasOwnProperty.call(a.attributes,"ifid")?r.IFID=a.attributes.ifid:console.warn("Warning: The ifid attribute is missing from tw-storydata!"),null===r.IFID.match(/^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$/)&&console.warn("Warning: The IFID is not in valid UUIDv4 formatting on tw-storydata!"),Object.prototype.hasOwnProperty.call(a.attributes,"creator")&&(r.creator=a.attributes.creator),Object.prototype.hasOwnProperty.call(a.attributes,"creator-version")&&(r.creatorVersion=a.attributes["creator-version"]),Object.prototype.hasOwnProperty.call(a.attributes,"format")&&(r.format=a.attributes.format),Object.prototype.hasOwnProperty.call(a.attributes,"format-version")&&(r.formatVersion=a.attributes["format-version"]),Object.prototype.hasOwnProperty.call(a.attributes,"startnode")&&(t=a.attributes.startnode),Object.prototype.hasOwnProperty.call(a.attributes,"zoom")&&(r.zoom=Number(a.attributes.zoom)),Object.prototype.hasOwnProperty.call(a.attributes,"options")){const e=a.attributes.options;e.length>0&&e.split(",").forEach((e=>{const[t,s]=e.split(":");t&&s&&(r.metadata[t.trim()]=s.trim())}))}return Object.prototype.hasOwnProperty.call(a.attributes,"hidden")&&(r.metadata.hidden=a.attributes.hidden),s.getElementsByTagName("style").forEach((e=>{const t=e.innerHTML||e.rawText||"",s=/tw-story-tag-(.+?)\s*{\s*color:\s*(.+?)\s*}/g;let o;for(;null!==(o=s.exec(t));){const e=o[1],t=o[2];r.tagColors[e]=t}})),s.getElementsByTagName("tw-passagedata").forEach((e=>{const s=e.attributes,o=function(e){var r=m.level,t=void 0===r?"all":r,s=m.scope,o=void 0===s?"xml"===t?"strict":"body":s;if(!e)return"";var a=w[t][o],l=p[t].entities,c="attribute"===o,u="strict"===o;return e.replace(a,(function(e){return function(e,r,t,s){var o=e,a=e[e.length-1];if(t&&"="===a)o=e;else if(s&&";"!==a)o=e;else{var l=r[e];if(l)o=l;else if("&"===e[0]&&"#"===e[1]){var c=e[2],p="x"==c||"X"==c?parseInt(e.substr(3),16):parseInt(e.substr(2));o=p>=1114111?b:p>65535?i(p):y(n[p]||p)}}return o}(e,l,c,u)}))}(e.rawText);if(!Object.prototype.hasOwnProperty.call(s,"name"))return void console.warn("Warning: Cannot parse passage data without name!");const a=s.name;if(!Object.prototype.hasOwnProperty.call(s,"pid"))throw new Error("Error: Passages are required to have PID!");let l=null;Object.prototype.hasOwnProperty.call(s,"position")&&(l=s.position);let c=null;Object.prototype.hasOwnProperty.call(s,"size")&&(c=s.size);let u=[];Object.prototype.hasOwnProperty.call(s,"tags")&&s.tags.length>0&&'""'!==s.tags&&(u=s.tags.split(" ").filter((e=>""!==e)));const h={};null!==l&&(h.position=l),null!==c&&(h.size=c);const g=s.pid;t===g&&(r.start=a),r.addPassage(new v(a,o,u,h))})),r},compileTwine2HTML:function(e,r){if(!(e instanceof X))throw new Error("Error: story must be a Story object!");if(!(r instanceof W))throw new Error("storyFormat must be a StoryFormat object!");if(""===r.source)throw new Error("StoryFormat source empty string!");if(null===e.IFID.match(/^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[89ABab][0-9A-F]{3}-[0-9A-F]{12}$/))throw new Error("Story IFID is invalid!");if(""===e.name)throw new Error("Story name empty string!");const t=e.toTwine2HTML();return r.source=r.source.replaceAll(/{{STORY_NAME}}/gm,e.name),r.source=r.source.replaceAll(/{{STORY_DATA}}/gm,t),r.source},generateIFID:z,Story:X,Passage:v,StoryFormat:W,version:"2.3.2"},{}})()));
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
!function(r,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.Extwee=t():r.Extwee=t()}(this,(()=>(()=>{"use strict";var r={d:(t,e)=>{for(var a in e)r.o(e,a)&&!r.o(t,a)&&Object.defineProperty(t,a,{enumerable:!0,get:e[a]})},o:(r,t)=>Object.prototype.hasOwnProperty.call(r,t),r:r=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(r,"__esModule",{value:!0})}},t={};r.r(t),r.d(t,{compile:()=>G,parse:()=>H});var e=function(){return e=Object.assign||function(r){for(var t,e=1,a=arguments.length;e<a;e++)for(var o in t=arguments[e])Object.prototype.hasOwnProperty.call(t,o)&&(r[o]=t[o]);return r},e.apply(this,arguments)};function a(r,t){for(var a={},o={},s=r.split("~~"),i=!1,n=0;s.length>n;n++){for(var l=s[n].split("~"),c=0;c<l.length;c+=2){var u=l[c],p=l[c+1],g="&"+u+";";a[g]=p,i&&(a["&"+u]=p),o[p]=g}i=!0}return t?{entities:e(e({},a),t.entities),characters:e(e({},o),t.characters)}:{entities:a,characters:o}}var o={xml:/&(?:#\d+|#[xX][\da-fA-F]+|[0-9a-zA-Z]+);?/g,html4:/∉|&(?:nbsp|iexcl|cent|pound|curren|yen|brvbar|sect|uml|copy|ordf|laquo|not|shy|reg|macr|deg|plusmn|sup2|sup3|acute|micro|para|middot|cedil|sup1|ordm|raquo|frac14|frac12|frac34|iquest|Agrave|Aacute|Acirc|Atilde|Auml|Aring|AElig|Ccedil|Egrave|Eacute|Ecirc|Euml|Igrave|Iacute|Icirc|Iuml|ETH|Ntilde|Ograve|Oacute|Ocirc|Otilde|Ouml|times|Oslash|Ugrave|Uacute|Ucirc|Uuml|Yacute|THORN|szlig|agrave|aacute|acirc|atilde|auml|aring|aelig|ccedil|egrave|eacute|ecirc|euml|igrave|iacute|icirc|iuml|eth|ntilde|ograve|oacute|ocirc|otilde|ouml|divide|oslash|ugrave|uacute|ucirc|uuml|yacute|thorn|yuml|quot|amp|lt|gt|#\d+|#[xX][\da-fA-F]+|[0-9a-zA-Z]+);?/g,html5:/·|℗|⋇|⪧|⩺|⋗|⦕|⩼|⪆|⥸|⋗|⋛|⪌|≷|≳|⪦|⩹|⋖|⋋|⋉|⥶|⩻|⦖|◃|⊴|◂|∉|⋹̸|⋵̸|∉|⋷|⋶|∌|∌|⋾|⋽|∥|⊠|⨱|⨰|&(?:AElig|AMP|Aacute|Acirc|Agrave|Aring|Atilde|Auml|COPY|Ccedil|ETH|Eacute|Ecirc|Egrave|Euml|GT|Iacute|Icirc|Igrave|Iuml|LT|Ntilde|Oacute|Ocirc|Ograve|Oslash|Otilde|Ouml|QUOT|REG|THORN|Uacute|Ucirc|Ugrave|Uuml|Yacute|aacute|acirc|acute|aelig|agrave|amp|aring|atilde|auml|brvbar|ccedil|cedil|cent|copy|curren|deg|divide|eacute|ecirc|egrave|eth|euml|frac12|frac14|frac34|gt|iacute|icirc|iexcl|igrave|iquest|iuml|laquo|lt|macr|micro|middot|nbsp|not|ntilde|oacute|ocirc|ograve|ordf|ordm|oslash|otilde|ouml|para|plusmn|pound|quot|raquo|reg|sect|shy|sup1|sup2|sup3|szlig|thorn|times|uacute|ucirc|ugrave|uml|uuml|yacute|yen|yuml|#\d+|#[xX][\da-fA-F]+|[0-9a-zA-Z]+);?/g},s={};s.xml=a("lt~<~gt~>~quot~\"~apos~'~amp~&"),s.html4=a("apos~'~OElig~Œ~oelig~œ~Scaron~Š~scaron~š~Yuml~Ÿ~circ~ˆ~tilde~˜~ensp~ ~emsp~ ~thinsp~ ~zwnj~~zwj~~lrm~~rlm~~ndash~–~mdash~—~lsquo~‘~rsquo~’~sbquo~‚~ldquo~“~rdquo~”~bdquo~„~dagger~†~Dagger~‡~permil~‰~lsaquo~‹~rsaquo~›~euro~€~fnof~ƒ~Alpha~Α~Beta~Β~Gamma~Γ~Delta~Δ~Epsilon~Ε~Zeta~Ζ~Eta~Η~Theta~Θ~Iota~Ι~Kappa~Κ~Lambda~Λ~Mu~Μ~Nu~Ν~Xi~Ξ~Omicron~Ο~Pi~Π~Rho~Ρ~Sigma~Σ~Tau~Τ~Upsilon~Υ~Phi~Φ~Chi~Χ~Psi~Ψ~Omega~Ω~alpha~α~beta~β~gamma~γ~delta~δ~epsilon~ε~zeta~ζ~eta~η~theta~θ~iota~ι~kappa~κ~lambda~λ~mu~μ~nu~ν~xi~ξ~omicron~ο~pi~π~rho~ρ~sigmaf~ς~sigma~σ~tau~τ~upsilon~υ~phi~φ~chi~χ~psi~ψ~omega~ω~thetasym~ϑ~upsih~ϒ~piv~ϖ~bull~•~hellip~…~prime~′~Prime~″~oline~‾~frasl~⁄~weierp~℘~image~ℑ~real~ℜ~trade~™~alefsym~ℵ~larr~←~uarr~↑~rarr~→~darr~↓~harr~↔~crarr~↵~lArr~⇐~uArr~⇑~rArr~⇒~dArr~⇓~hArr~⇔~forall~∀~part~∂~exist~∃~empty~∅~nabla~∇~isin~∈~notin~∉~ni~∋~prod~∏~sum~∑~minus~−~lowast~∗~radic~√~prop~∝~infin~∞~ang~∠~and~∧~or~∨~cap~∩~cup~∪~int~∫~there4~∴~sim~∼~cong~≅~asymp~≈~ne~≠~equiv~≡~le~≤~ge~≥~sub~⊂~sup~⊃~nsub~⊄~sube~⊆~supe~⊇~oplus~⊕~otimes~⊗~perp~⊥~sdot~⋅~lceil~⌈~rceil~⌉~lfloor~⌊~rfloor~⌋~lang~〈~rang~〉~loz~◊~spades~♠~clubs~♣~hearts~♥~diams~♦~~nbsp~ ~iexcl~¡~cent~¢~pound~£~curren~¤~yen~¥~brvbar~¦~sect~§~uml~¨~copy~©~ordf~ª~laquo~«~not~¬~shy~~reg~®~macr~¯~deg~°~plusmn~±~sup2~²~sup3~³~acute~´~micro~µ~para~¶~middot~·~cedil~¸~sup1~¹~ordm~º~raquo~»~frac14~¼~frac12~½~frac34~¾~iquest~¿~Agrave~À~Aacute~Á~Acirc~Â~Atilde~Ã~Auml~Ä~Aring~Å~AElig~Æ~Ccedil~Ç~Egrave~È~Eacute~É~Ecirc~Ê~Euml~Ë~Igrave~Ì~Iacute~Í~Icirc~Î~Iuml~Ï~ETH~Ð~Ntilde~Ñ~Ograve~Ò~Oacute~Ó~Ocirc~Ô~Otilde~Õ~Ouml~Ö~times~×~Oslash~Ø~Ugrave~Ù~Uacute~Ú~Ucirc~Û~Uuml~Ü~Yacute~Ý~THORN~Þ~szlig~ß~agrave~à~aacute~á~acirc~â~atilde~ã~auml~ä~aring~å~aelig~æ~ccedil~ç~egrave~è~eacute~é~ecirc~ê~euml~ë~igrave~ì~iacute~í~icirc~î~iuml~ï~eth~ð~ntilde~ñ~ograve~ò~oacute~ó~ocirc~ô~otilde~õ~ouml~ö~divide~÷~oslash~ø~ugrave~ù~uacute~ú~ucirc~û~uuml~ü~yacute~ý~thorn~þ~yuml~ÿ~quot~\"~amp~&~lt~<~gt~>"),s.html5=a('Abreve~Ă~Acy~А~Afr~𝔄~Amacr~Ā~And~⩓~Aogon~Ą~Aopf~𝔸~ApplyFunction~~Ascr~𝒜~Assign~≔~Backslash~∖~Barv~⫧~Barwed~⌆~Bcy~Б~Because~∵~Bernoullis~ℬ~Bfr~𝔅~Bopf~𝔹~Breve~˘~Bscr~ℬ~Bumpeq~≎~CHcy~Ч~Cacute~Ć~Cap~⋒~CapitalDifferentialD~ⅅ~Cayleys~ℭ~Ccaron~Č~Ccirc~Ĉ~Cconint~∰~Cdot~Ċ~Cedilla~¸~CenterDot~·~Cfr~ℭ~CircleDot~⊙~CircleMinus~⊖~CirclePlus~⊕~CircleTimes~⊗~ClockwiseContourIntegral~∲~CloseCurlyDoubleQuote~”~CloseCurlyQuote~’~Colon~∷~Colone~⩴~Congruent~≡~Conint~∯~ContourIntegral~∮~Copf~ℂ~Coproduct~∐~CounterClockwiseContourIntegral~∳~Cross~⨯~Cscr~𝒞~Cup~⋓~CupCap~≍~DD~ⅅ~DDotrahd~⤑~DJcy~Ђ~DScy~Ѕ~DZcy~Џ~Darr~↡~Dashv~⫤~Dcaron~Ď~Dcy~Д~Del~∇~Dfr~𝔇~DiacriticalAcute~´~DiacriticalDot~˙~DiacriticalDoubleAcute~˝~DiacriticalGrave~`~DiacriticalTilde~˜~Diamond~⋄~DifferentialD~ⅆ~Dopf~𝔻~Dot~¨~DotDot~⃜~DotEqual~≐~DoubleContourIntegral~∯~DoubleDot~¨~DoubleDownArrow~⇓~DoubleLeftArrow~⇐~DoubleLeftRightArrow~⇔~DoubleLeftTee~⫤~DoubleLongLeftArrow~⟸~DoubleLongLeftRightArrow~⟺~DoubleLongRightArrow~⟹~DoubleRightArrow~⇒~DoubleRightTee~⊨~DoubleUpArrow~⇑~DoubleUpDownArrow~⇕~DoubleVerticalBar~∥~DownArrow~↓~DownArrowBar~⤓~DownArrowUpArrow~⇵~DownBreve~̑~DownLeftRightVector~⥐~DownLeftTeeVector~⥞~DownLeftVector~↽~DownLeftVectorBar~⥖~DownRightTeeVector~⥟~DownRightVector~⇁~DownRightVectorBar~⥗~DownTee~⊤~DownTeeArrow~↧~Downarrow~⇓~Dscr~𝒟~Dstrok~Đ~ENG~Ŋ~Ecaron~Ě~Ecy~Э~Edot~Ė~Efr~𝔈~Element~∈~Emacr~Ē~EmptySmallSquare~◻~EmptyVerySmallSquare~▫~Eogon~Ę~Eopf~𝔼~Equal~⩵~EqualTilde~≂~Equilibrium~⇌~Escr~ℰ~Esim~⩳~Exists~∃~ExponentialE~ⅇ~Fcy~Ф~Ffr~𝔉~FilledSmallSquare~◼~FilledVerySmallSquare~▪~Fopf~𝔽~ForAll~∀~Fouriertrf~ℱ~Fscr~ℱ~GJcy~Ѓ~Gammad~Ϝ~Gbreve~Ğ~Gcedil~Ģ~Gcirc~Ĝ~Gcy~Г~Gdot~Ġ~Gfr~𝔊~Gg~⋙~Gopf~𝔾~GreaterEqual~≥~GreaterEqualLess~⋛~GreaterFullEqual~≧~GreaterGreater~⪢~GreaterLess~≷~GreaterSlantEqual~⩾~GreaterTilde~≳~Gscr~𝒢~Gt~≫~HARDcy~Ъ~Hacek~ˇ~Hat~^~Hcirc~Ĥ~Hfr~ℌ~HilbertSpace~ℋ~Hopf~ℍ~HorizontalLine~─~Hscr~ℋ~Hstrok~Ħ~HumpDownHump~≎~HumpEqual~≏~IEcy~Е~IJlig~IJ~IOcy~Ё~Icy~И~Idot~İ~Ifr~ℑ~Im~ℑ~Imacr~Ī~ImaginaryI~ⅈ~Implies~⇒~Int~∬~Integral~∫~Intersection~⋂~InvisibleComma~~InvisibleTimes~~Iogon~Į~Iopf~𝕀~Iscr~ℐ~Itilde~Ĩ~Iukcy~І~Jcirc~Ĵ~Jcy~Й~Jfr~𝔍~Jopf~𝕁~Jscr~𝒥~Jsercy~Ј~Jukcy~Є~KHcy~Х~KJcy~Ќ~Kcedil~Ķ~Kcy~К~Kfr~𝔎~Kopf~𝕂~Kscr~𝒦~LJcy~Љ~Lacute~Ĺ~Lang~⟪~Laplacetrf~ℒ~Larr~↞~Lcaron~Ľ~Lcedil~Ļ~Lcy~Л~LeftAngleBracket~⟨~LeftArrow~←~LeftArrowBar~⇤~LeftArrowRightArrow~⇆~LeftCeiling~⌈~LeftDoubleBracket~⟦~LeftDownTeeVector~⥡~LeftDownVector~⇃~LeftDownVectorBar~⥙~LeftFloor~⌊~LeftRightArrow~↔~LeftRightVector~⥎~LeftTee~⊣~LeftTeeArrow~↤~LeftTeeVector~⥚~LeftTriangle~⊲~LeftTriangleBar~⧏~LeftTriangleEqual~⊴~LeftUpDownVector~⥑~LeftUpTeeVector~⥠~LeftUpVector~↿~LeftUpVectorBar~⥘~LeftVector~↼~LeftVectorBar~⥒~Leftarrow~⇐~Leftrightarrow~⇔~LessEqualGreater~⋚~LessFullEqual~≦~LessGreater~≶~LessLess~⪡~LessSlantEqual~⩽~LessTilde~≲~Lfr~𝔏~Ll~⋘~Lleftarrow~⇚~Lmidot~Ŀ~LongLeftArrow~⟵~LongLeftRightArrow~⟷~LongRightArrow~⟶~Longleftarrow~⟸~Longleftrightarrow~⟺~Longrightarrow~⟹~Lopf~𝕃~LowerLeftArrow~↙~LowerRightArrow~↘~Lscr~ℒ~Lsh~↰~Lstrok~Ł~Lt~≪~Map~⤅~Mcy~М~MediumSpace~ ~Mellintrf~ℳ~Mfr~𝔐~MinusPlus~∓~Mopf~𝕄~Mscr~ℳ~NJcy~Њ~Nacute~Ń~Ncaron~Ň~Ncedil~Ņ~Ncy~Н~NegativeMediumSpace~~NegativeThickSpace~~NegativeThinSpace~~NegativeVeryThinSpace~~NestedGreaterGreater~≫~NestedLessLess~≪~NewLine~\n~Nfr~𝔑~NoBreak~~NonBreakingSpace~ ~Nopf~ℕ~Not~⫬~NotCongruent~≢~NotCupCap~≭~NotDoubleVerticalBar~∦~NotElement~∉~NotEqual~≠~NotEqualTilde~≂̸~NotExists~∄~NotGreater~≯~NotGreaterEqual~≱~NotGreaterFullEqual~≧̸~NotGreaterGreater~≫̸~NotGreaterLess~≹~NotGreaterSlantEqual~⩾̸~NotGreaterTilde~≵~NotHumpDownHump~≎̸~NotHumpEqual~≏̸~NotLeftTriangle~⋪~NotLeftTriangleBar~⧏̸~NotLeftTriangleEqual~⋬~NotLess~≮~NotLessEqual~≰~NotLessGreater~≸~NotLessLess~≪̸~NotLessSlantEqual~⩽̸~NotLessTilde~≴~NotNestedGreaterGreater~⪢̸~NotNestedLessLess~⪡̸~NotPrecedes~⊀~NotPrecedesEqual~⪯̸~NotPrecedesSlantEqual~⋠~NotReverseElement~∌~NotRightTriangle~⋫~NotRightTriangleBar~⧐̸~NotRightTriangleEqual~⋭~NotSquareSubset~⊏̸~NotSquareSubsetEqual~⋢~NotSquareSuperset~⊐̸~NotSquareSupersetEqual~⋣~NotSubset~⊂⃒~NotSubsetEqual~⊈~NotSucceeds~⊁~NotSucceedsEqual~⪰̸~NotSucceedsSlantEqual~⋡~NotSucceedsTilde~≿̸~NotSuperset~⊃⃒~NotSupersetEqual~⊉~NotTilde~≁~NotTildeEqual~≄~NotTildeFullEqual~≇~NotTildeTilde~≉~NotVerticalBar~∤~Nscr~𝒩~Ocy~О~Odblac~Ő~Ofr~𝔒~Omacr~Ō~Oopf~𝕆~OpenCurlyDoubleQuote~“~OpenCurlyQuote~‘~Or~⩔~Oscr~𝒪~Otimes~⨷~OverBar~‾~OverBrace~⏞~OverBracket~⎴~OverParenthesis~⏜~PartialD~∂~Pcy~П~Pfr~𝔓~PlusMinus~±~Poincareplane~ℌ~Popf~ℙ~Pr~⪻~Precedes~≺~PrecedesEqual~⪯~PrecedesSlantEqual~≼~PrecedesTilde~≾~Product~∏~Proportion~∷~Proportional~∝~Pscr~𝒫~Qfr~𝔔~Qopf~ℚ~Qscr~𝒬~RBarr~⤐~Racute~Ŕ~Rang~⟫~Rarr~↠~Rarrtl~⤖~Rcaron~Ř~Rcedil~Ŗ~Rcy~Р~Re~ℜ~ReverseElement~∋~ReverseEquilibrium~⇋~ReverseUpEquilibrium~⥯~Rfr~ℜ~RightAngleBracket~⟩~RightArrow~→~RightArrowBar~⇥~RightArrowLeftArrow~⇄~RightCeiling~⌉~RightDoubleBracket~⟧~RightDownTeeVector~⥝~RightDownVector~⇂~RightDownVectorBar~⥕~RightFloor~⌋~RightTee~⊢~RightTeeArrow~↦~RightTeeVector~⥛~RightTriangle~⊳~RightTriangleBar~⧐~RightTriangleEqual~⊵~RightUpDownVector~⥏~RightUpTeeVector~⥜~RightUpVector~↾~RightUpVectorBar~⥔~RightVector~⇀~RightVectorBar~⥓~Rightarrow~⇒~Ropf~ℝ~RoundImplies~⥰~Rrightarrow~⇛~Rscr~ℛ~Rsh~↱~RuleDelayed~⧴~SHCHcy~Щ~SHcy~Ш~SOFTcy~Ь~Sacute~Ś~Sc~⪼~Scedil~Ş~Scirc~Ŝ~Scy~С~Sfr~𝔖~ShortDownArrow~↓~ShortLeftArrow~←~ShortRightArrow~→~ShortUpArrow~↑~SmallCircle~∘~Sopf~𝕊~Sqrt~√~Square~□~SquareIntersection~⊓~SquareSubset~⊏~SquareSubsetEqual~⊑~SquareSuperset~⊐~SquareSupersetEqual~⊒~SquareUnion~⊔~Sscr~𝒮~Star~⋆~Sub~⋐~Subset~⋐~SubsetEqual~⊆~Succeeds~≻~SucceedsEqual~⪰~SucceedsSlantEqual~≽~SucceedsTilde~≿~SuchThat~∋~Sum~∑~Sup~⋑~Superset~⊃~SupersetEqual~⊇~Supset~⋑~TRADE~™~TSHcy~Ћ~TScy~Ц~Tab~\t~Tcaron~Ť~Tcedil~Ţ~Tcy~Т~Tfr~𝔗~Therefore~∴~ThickSpace~ ~ThinSpace~ ~Tilde~∼~TildeEqual~≃~TildeFullEqual~≅~TildeTilde~≈~Topf~𝕋~TripleDot~⃛~Tscr~𝒯~Tstrok~Ŧ~Uarr~↟~Uarrocir~⥉~Ubrcy~Ў~Ubreve~Ŭ~Ucy~У~Udblac~Ű~Ufr~𝔘~Umacr~Ū~UnderBar~_~UnderBrace~⏟~UnderBracket~⎵~UnderParenthesis~⏝~Union~⋃~UnionPlus~⊎~Uogon~Ų~Uopf~𝕌~UpArrow~↑~UpArrowBar~⤒~UpArrowDownArrow~⇅~UpDownArrow~↕~UpEquilibrium~⥮~UpTee~⊥~UpTeeArrow~↥~Uparrow~⇑~Updownarrow~⇕~UpperLeftArrow~↖~UpperRightArrow~↗~Upsi~ϒ~Uring~Ů~Uscr~𝒰~Utilde~Ũ~VDash~⊫~Vbar~⫫~Vcy~В~Vdash~⊩~Vdashl~⫦~Vee~⋁~Verbar~‖~Vert~‖~VerticalBar~∣~VerticalLine~|~VerticalSeparator~❘~VerticalTilde~≀~VeryThinSpace~ ~Vfr~𝔙~Vopf~𝕍~Vscr~𝒱~Vvdash~⊪~Wcirc~Ŵ~Wedge~⋀~Wfr~𝔚~Wopf~𝕎~Wscr~𝒲~Xfr~𝔛~Xopf~𝕏~Xscr~𝒳~YAcy~Я~YIcy~Ї~YUcy~Ю~Ycirc~Ŷ~Ycy~Ы~Yfr~𝔜~Yopf~𝕐~Yscr~𝒴~ZHcy~Ж~Zacute~Ź~Zcaron~Ž~Zcy~З~Zdot~Ż~ZeroWidthSpace~~Zfr~ℨ~Zopf~ℤ~Zscr~𝒵~abreve~ă~ac~∾~acE~∾̳~acd~∿~acy~а~af~~afr~𝔞~aleph~ℵ~amacr~ā~amalg~⨿~andand~⩕~andd~⩜~andslope~⩘~andv~⩚~ange~⦤~angle~∠~angmsd~∡~angmsdaa~⦨~angmsdab~⦩~angmsdac~⦪~angmsdad~⦫~angmsdae~⦬~angmsdaf~⦭~angmsdag~⦮~angmsdah~⦯~angrt~∟~angrtvb~⊾~angrtvbd~⦝~angsph~∢~angst~Å~angzarr~⍼~aogon~ą~aopf~𝕒~ap~≈~apE~⩰~apacir~⩯~ape~≊~apid~≋~approx~≈~approxeq~≊~ascr~𝒶~ast~*~asympeq~≍~awconint~∳~awint~⨑~bNot~⫭~backcong~≌~backepsilon~϶~backprime~‵~backsim~∽~backsimeq~⋍~barvee~⊽~barwed~⌅~barwedge~⌅~bbrk~⎵~bbrktbrk~⎶~bcong~≌~bcy~б~becaus~∵~because~∵~bemptyv~⦰~bepsi~϶~bernou~ℬ~beth~ℶ~between~≬~bfr~𝔟~bigcap~⋂~bigcirc~◯~bigcup~⋃~bigodot~⨀~bigoplus~⨁~bigotimes~⨂~bigsqcup~⨆~bigstar~★~bigtriangledown~▽~bigtriangleup~△~biguplus~⨄~bigvee~⋁~bigwedge~⋀~bkarow~⤍~blacklozenge~⧫~blacksquare~▪~blacktriangle~▴~blacktriangledown~▾~blacktriangleleft~◂~blacktriangleright~▸~blank~␣~blk12~▒~blk14~░~blk34~▓~block~█~bne~=⃥~bnequiv~≡⃥~bnot~⌐~bopf~𝕓~bot~⊥~bottom~⊥~bowtie~⋈~boxDL~╗~boxDR~╔~boxDl~╖~boxDr~╓~boxH~═~boxHD~╦~boxHU~╩~boxHd~╤~boxHu~╧~boxUL~╝~boxUR~╚~boxUl~╜~boxUr~╙~boxV~║~boxVH~╬~boxVL~╣~boxVR~╠~boxVh~╫~boxVl~╢~boxVr~╟~boxbox~⧉~boxdL~╕~boxdR~╒~boxdl~┐~boxdr~┌~boxh~─~boxhD~╥~boxhU~╨~boxhd~┬~boxhu~┴~boxminus~⊟~boxplus~⊞~boxtimes~⊠~boxuL~╛~boxuR~╘~boxul~┘~boxur~└~boxv~│~boxvH~╪~boxvL~╡~boxvR~╞~boxvh~┼~boxvl~┤~boxvr~├~bprime~‵~breve~˘~bscr~𝒷~bsemi~⁏~bsim~∽~bsime~⋍~bsol~\\~bsolb~⧅~bsolhsub~⟈~bullet~•~bump~≎~bumpE~⪮~bumpe~≏~bumpeq~≏~cacute~ć~capand~⩄~capbrcup~⩉~capcap~⩋~capcup~⩇~capdot~⩀~caps~∩︀~caret~⁁~caron~ˇ~ccaps~⩍~ccaron~č~ccirc~ĉ~ccups~⩌~ccupssm~⩐~cdot~ċ~cemptyv~⦲~centerdot~·~cfr~𝔠~chcy~ч~check~✓~checkmark~✓~cir~○~cirE~⧃~circeq~≗~circlearrowleft~↺~circlearrowright~↻~circledR~®~circledS~Ⓢ~circledast~⊛~circledcirc~⊚~circleddash~⊝~cire~≗~cirfnint~⨐~cirmid~⫯~cirscir~⧂~clubsuit~♣~colon~:~colone~≔~coloneq~≔~comma~,~commat~@~comp~∁~compfn~∘~complement~∁~complexes~ℂ~congdot~⩭~conint~∮~copf~𝕔~coprod~∐~copysr~℗~cross~✗~cscr~𝒸~csub~⫏~csube~⫑~csup~⫐~csupe~⫒~ctdot~⋯~cudarrl~⤸~cudarrr~⤵~cuepr~⋞~cuesc~⋟~cularr~↶~cularrp~⤽~cupbrcap~⩈~cupcap~⩆~cupcup~⩊~cupdot~⊍~cupor~⩅~cups~∪︀~curarr~↷~curarrm~⤼~curlyeqprec~⋞~curlyeqsucc~⋟~curlyvee~⋎~curlywedge~⋏~curvearrowleft~↶~curvearrowright~↷~cuvee~⋎~cuwed~⋏~cwconint~∲~cwint~∱~cylcty~⌭~dHar~⥥~daleth~ℸ~dash~‐~dashv~⊣~dbkarow~⤏~dblac~˝~dcaron~ď~dcy~д~dd~ⅆ~ddagger~‡~ddarr~⇊~ddotseq~⩷~demptyv~⦱~dfisht~⥿~dfr~𝔡~dharl~⇃~dharr~⇂~diam~⋄~diamond~⋄~diamondsuit~♦~die~¨~digamma~ϝ~disin~⋲~div~÷~divideontimes~⋇~divonx~⋇~djcy~ђ~dlcorn~⌞~dlcrop~⌍~dollar~$~dopf~𝕕~dot~˙~doteq~≐~doteqdot~≑~dotminus~∸~dotplus~∔~dotsquare~⊡~doublebarwedge~⌆~downarrow~↓~downdownarrows~⇊~downharpoonleft~⇃~downharpoonright~⇂~drbkarow~⤐~drcorn~⌟~drcrop~⌌~dscr~𝒹~dscy~ѕ~dsol~⧶~dstrok~đ~dtdot~⋱~dtri~▿~dtrif~▾~duarr~⇵~duhar~⥯~dwangle~⦦~dzcy~џ~dzigrarr~⟿~eDDot~⩷~eDot~≑~easter~⩮~ecaron~ě~ecir~≖~ecolon~≕~ecy~э~edot~ė~ee~ⅇ~efDot~≒~efr~𝔢~eg~⪚~egs~⪖~egsdot~⪘~el~⪙~elinters~⏧~ell~ℓ~els~⪕~elsdot~⪗~emacr~ē~emptyset~∅~emptyv~∅~emsp13~ ~emsp14~ ~eng~ŋ~eogon~ę~eopf~𝕖~epar~⋕~eparsl~⧣~eplus~⩱~epsi~ε~epsiv~ϵ~eqcirc~≖~eqcolon~≕~eqsim~≂~eqslantgtr~⪖~eqslantless~⪕~equals~=~equest~≟~equivDD~⩸~eqvparsl~⧥~erDot~≓~erarr~⥱~escr~ℯ~esdot~≐~esim~≂~excl~!~expectation~ℰ~exponentiale~ⅇ~fallingdotseq~≒~fcy~ф~female~♀~ffilig~ffi~fflig~ff~ffllig~ffl~ffr~𝔣~filig~fi~fjlig~fj~flat~♭~fllig~fl~fltns~▱~fopf~𝕗~fork~⋔~forkv~⫙~fpartint~⨍~frac13~⅓~frac15~⅕~frac16~⅙~frac18~⅛~frac23~⅔~frac25~⅖~frac35~⅗~frac38~⅜~frac45~⅘~frac56~⅚~frac58~⅝~frac78~⅞~frown~⌢~fscr~𝒻~gE~≧~gEl~⪌~gacute~ǵ~gammad~ϝ~gap~⪆~gbreve~ğ~gcirc~ĝ~gcy~г~gdot~ġ~gel~⋛~geq~≥~geqq~≧~geqslant~⩾~ges~⩾~gescc~⪩~gesdot~⪀~gesdoto~⪂~gesdotol~⪄~gesl~⋛︀~gesles~⪔~gfr~𝔤~gg~≫~ggg~⋙~gimel~ℷ~gjcy~ѓ~gl~≷~glE~⪒~gla~⪥~glj~⪤~gnE~≩~gnap~⪊~gnapprox~⪊~gne~⪈~gneq~⪈~gneqq~≩~gnsim~⋧~gopf~𝕘~grave~`~gscr~ℊ~gsim~≳~gsime~⪎~gsiml~⪐~gtcc~⪧~gtcir~⩺~gtdot~⋗~gtlPar~⦕~gtquest~⩼~gtrapprox~⪆~gtrarr~⥸~gtrdot~⋗~gtreqless~⋛~gtreqqless~⪌~gtrless~≷~gtrsim~≳~gvertneqq~≩︀~gvnE~≩︀~hairsp~ ~half~½~hamilt~ℋ~hardcy~ъ~harrcir~⥈~harrw~↭~hbar~ℏ~hcirc~ĥ~heartsuit~♥~hercon~⊹~hfr~𝔥~hksearow~⤥~hkswarow~⤦~hoarr~⇿~homtht~∻~hookleftarrow~↩~hookrightarrow~↪~hopf~𝕙~horbar~―~hscr~𝒽~hslash~ℏ~hstrok~ħ~hybull~⁃~hyphen~‐~ic~~icy~и~iecy~е~iff~⇔~ifr~𝔦~ii~ⅈ~iiiint~⨌~iiint~∭~iinfin~⧜~iiota~℩~ijlig~ij~imacr~ī~imagline~ℐ~imagpart~ℑ~imath~ı~imof~⊷~imped~Ƶ~in~∈~incare~℅~infintie~⧝~inodot~ı~intcal~⊺~integers~ℤ~intercal~⊺~intlarhk~⨗~intprod~⨼~iocy~ё~iogon~į~iopf~𝕚~iprod~⨼~iscr~𝒾~isinE~⋹~isindot~⋵~isins~⋴~isinsv~⋳~isinv~∈~it~~itilde~ĩ~iukcy~і~jcirc~ĵ~jcy~й~jfr~𝔧~jmath~ȷ~jopf~𝕛~jscr~𝒿~jsercy~ј~jukcy~є~kappav~ϰ~kcedil~ķ~kcy~к~kfr~𝔨~kgreen~ĸ~khcy~х~kjcy~ќ~kopf~𝕜~kscr~𝓀~lAarr~⇚~lAtail~⤛~lBarr~⤎~lE~≦~lEg~⪋~lHar~⥢~lacute~ĺ~laemptyv~⦴~lagran~ℒ~langd~⦑~langle~⟨~lap~⪅~larrb~⇤~larrbfs~⤟~larrfs~⤝~larrhk~↩~larrlp~↫~larrpl~⤹~larrsim~⥳~larrtl~↢~lat~⪫~latail~⤙~late~⪭~lates~⪭︀~lbarr~⤌~lbbrk~❲~lbrace~{~lbrack~[~lbrke~⦋~lbrksld~⦏~lbrkslu~⦍~lcaron~ľ~lcedil~ļ~lcub~{~lcy~л~ldca~⤶~ldquor~„~ldrdhar~⥧~ldrushar~⥋~ldsh~↲~leftarrow~←~leftarrowtail~↢~leftharpoondown~↽~leftharpoonup~↼~leftleftarrows~⇇~leftrightarrow~↔~leftrightarrows~⇆~leftrightharpoons~⇋~leftrightsquigarrow~↭~leftthreetimes~⋋~leg~⋚~leq~≤~leqq~≦~leqslant~⩽~les~⩽~lescc~⪨~lesdot~⩿~lesdoto~⪁~lesdotor~⪃~lesg~⋚︀~lesges~⪓~lessapprox~⪅~lessdot~⋖~lesseqgtr~⋚~lesseqqgtr~⪋~lessgtr~≶~lesssim~≲~lfisht~⥼~lfr~𝔩~lg~≶~lgE~⪑~lhard~↽~lharu~↼~lharul~⥪~lhblk~▄~ljcy~љ~ll~≪~llarr~⇇~llcorner~⌞~llhard~⥫~lltri~◺~lmidot~ŀ~lmoust~⎰~lmoustache~⎰~lnE~≨~lnap~⪉~lnapprox~⪉~lne~⪇~lneq~⪇~lneqq~≨~lnsim~⋦~loang~⟬~loarr~⇽~lobrk~⟦~longleftarrow~⟵~longleftrightarrow~⟷~longmapsto~⟼~longrightarrow~⟶~looparrowleft~↫~looparrowright~↬~lopar~⦅~lopf~𝕝~loplus~⨭~lotimes~⨴~lowbar~_~lozenge~◊~lozf~⧫~lpar~(~lparlt~⦓~lrarr~⇆~lrcorner~⌟~lrhar~⇋~lrhard~⥭~lrtri~⊿~lscr~𝓁~lsh~↰~lsim~≲~lsime~⪍~lsimg~⪏~lsqb~[~lsquor~‚~lstrok~ł~ltcc~⪦~ltcir~⩹~ltdot~⋖~lthree~⋋~ltimes~⋉~ltlarr~⥶~ltquest~⩻~ltrPar~⦖~ltri~◃~ltrie~⊴~ltrif~◂~lurdshar~⥊~luruhar~⥦~lvertneqq~≨︀~lvnE~≨︀~mDDot~∺~male~♂~malt~✠~maltese~✠~map~↦~mapsto~↦~mapstodown~↧~mapstoleft~↤~mapstoup~↥~marker~▮~mcomma~⨩~mcy~м~measuredangle~∡~mfr~𝔪~mho~℧~mid~∣~midast~*~midcir~⫰~minusb~⊟~minusd~∸~minusdu~⨪~mlcp~⫛~mldr~…~mnplus~∓~models~⊧~mopf~𝕞~mp~∓~mscr~𝓂~mstpos~∾~multimap~⊸~mumap~⊸~nGg~⋙̸~nGt~≫⃒~nGtv~≫̸~nLeftarrow~⇍~nLeftrightarrow~⇎~nLl~⋘̸~nLt~≪⃒~nLtv~≪̸~nRightarrow~⇏~nVDash~⊯~nVdash~⊮~nacute~ń~nang~∠⃒~nap~≉~napE~⩰̸~napid~≋̸~napos~ʼn~napprox~≉~natur~♮~natural~♮~naturals~ℕ~nbump~≎̸~nbumpe~≏̸~ncap~⩃~ncaron~ň~ncedil~ņ~ncong~≇~ncongdot~⩭̸~ncup~⩂~ncy~н~neArr~⇗~nearhk~⤤~nearr~↗~nearrow~↗~nedot~≐̸~nequiv~≢~nesear~⤨~nesim~≂̸~nexist~∄~nexists~∄~nfr~𝔫~ngE~≧̸~nge~≱~ngeq~≱~ngeqq~≧̸~ngeqslant~⩾̸~nges~⩾̸~ngsim~≵~ngt~≯~ngtr~≯~nhArr~⇎~nharr~↮~nhpar~⫲~nis~⋼~nisd~⋺~niv~∋~njcy~њ~nlArr~⇍~nlE~≦̸~nlarr~↚~nldr~‥~nle~≰~nleftarrow~↚~nleftrightarrow~↮~nleq~≰~nleqq~≦̸~nleqslant~⩽̸~nles~⩽̸~nless~≮~nlsim~≴~nlt~≮~nltri~⋪~nltrie~⋬~nmid~∤~nopf~𝕟~notinE~⋹̸~notindot~⋵̸~notinva~∉~notinvb~⋷~notinvc~⋶~notni~∌~notniva~∌~notnivb~⋾~notnivc~⋽~npar~∦~nparallel~∦~nparsl~⫽⃥~npart~∂̸~npolint~⨔~npr~⊀~nprcue~⋠~npre~⪯̸~nprec~⊀~npreceq~⪯̸~nrArr~⇏~nrarr~↛~nrarrc~⤳̸~nrarrw~↝̸~nrightarrow~↛~nrtri~⋫~nrtrie~⋭~nsc~⊁~nsccue~⋡~nsce~⪰̸~nscr~𝓃~nshortmid~∤~nshortparallel~∦~nsim~≁~nsime~≄~nsimeq~≄~nsmid~∤~nspar~∦~nsqsube~⋢~nsqsupe~⋣~nsubE~⫅̸~nsube~⊈~nsubset~⊂⃒~nsubseteq~⊈~nsubseteqq~⫅̸~nsucc~⊁~nsucceq~⪰̸~nsup~⊅~nsupE~⫆̸~nsupe~⊉~nsupset~⊃⃒~nsupseteq~⊉~nsupseteqq~⫆̸~ntgl~≹~ntlg~≸~ntriangleleft~⋪~ntrianglelefteq~⋬~ntriangleright~⋫~ntrianglerighteq~⋭~num~#~numero~№~numsp~ ~nvDash~⊭~nvHarr~⤄~nvap~≍⃒~nvdash~⊬~nvge~≥⃒~nvgt~>⃒~nvinfin~⧞~nvlArr~⤂~nvle~≤⃒~nvlt~<⃒~nvltrie~⊴⃒~nvrArr~⤃~nvrtrie~⊵⃒~nvsim~∼⃒~nwArr~⇖~nwarhk~⤣~nwarr~↖~nwarrow~↖~nwnear~⤧~oS~Ⓢ~oast~⊛~ocir~⊚~ocy~о~odash~⊝~odblac~ő~odiv~⨸~odot~⊙~odsold~⦼~ofcir~⦿~ofr~𝔬~ogon~˛~ogt~⧁~ohbar~⦵~ohm~Ω~oint~∮~olarr~↺~olcir~⦾~olcross~⦻~olt~⧀~omacr~ō~omid~⦶~ominus~⊖~oopf~𝕠~opar~⦷~operp~⦹~orarr~↻~ord~⩝~order~ℴ~orderof~ℴ~origof~⊶~oror~⩖~orslope~⩗~orv~⩛~oscr~ℴ~osol~⊘~otimesas~⨶~ovbar~⌽~par~∥~parallel~∥~parsim~⫳~parsl~⫽~pcy~п~percnt~%~period~.~pertenk~‱~pfr~𝔭~phiv~ϕ~phmmat~ℳ~phone~☎~pitchfork~⋔~planck~ℏ~planckh~ℎ~plankv~ℏ~plus~+~plusacir~⨣~plusb~⊞~pluscir~⨢~plusdo~∔~plusdu~⨥~pluse~⩲~plussim~⨦~plustwo~⨧~pm~±~pointint~⨕~popf~𝕡~pr~≺~prE~⪳~prap~⪷~prcue~≼~pre~⪯~prec~≺~precapprox~⪷~preccurlyeq~≼~preceq~⪯~precnapprox~⪹~precneqq~⪵~precnsim~⋨~precsim~≾~primes~ℙ~prnE~⪵~prnap~⪹~prnsim~⋨~profalar~⌮~profline~⌒~profsurf~⌓~propto~∝~prsim~≾~prurel~⊰~pscr~𝓅~puncsp~ ~qfr~𝔮~qint~⨌~qopf~𝕢~qprime~⁗~qscr~𝓆~quaternions~ℍ~quatint~⨖~quest~?~questeq~≟~rAarr~⇛~rAtail~⤜~rBarr~⤏~rHar~⥤~race~∽̱~racute~ŕ~raemptyv~⦳~rangd~⦒~range~⦥~rangle~⟩~rarrap~⥵~rarrb~⇥~rarrbfs~⤠~rarrc~⤳~rarrfs~⤞~rarrhk~↪~rarrlp~↬~rarrpl~⥅~rarrsim~⥴~rarrtl~↣~rarrw~↝~ratail~⤚~ratio~∶~rationals~ℚ~rbarr~⤍~rbbrk~❳~rbrace~}~rbrack~]~rbrke~⦌~rbrksld~⦎~rbrkslu~⦐~rcaron~ř~rcedil~ŗ~rcub~}~rcy~р~rdca~⤷~rdldhar~⥩~rdquor~”~rdsh~↳~realine~ℛ~realpart~ℜ~reals~ℝ~rect~▭~rfisht~⥽~rfr~𝔯~rhard~⇁~rharu~⇀~rharul~⥬~rhov~ϱ~rightarrow~→~rightarrowtail~↣~rightharpoondown~⇁~rightharpoonup~⇀~rightleftarrows~⇄~rightleftharpoons~⇌~rightrightarrows~⇉~rightsquigarrow~↝~rightthreetimes~⋌~ring~˚~risingdotseq~≓~rlarr~⇄~rlhar~⇌~rmoust~⎱~rmoustache~⎱~rnmid~⫮~roang~⟭~roarr~⇾~robrk~⟧~ropar~⦆~ropf~𝕣~roplus~⨮~rotimes~⨵~rpar~)~rpargt~⦔~rppolint~⨒~rrarr~⇉~rscr~𝓇~rsh~↱~rsqb~]~rsquor~’~rthree~⋌~rtimes~⋊~rtri~▹~rtrie~⊵~rtrif~▸~rtriltri~⧎~ruluhar~⥨~rx~℞~sacute~ś~sc~≻~scE~⪴~scap~⪸~sccue~≽~sce~⪰~scedil~ş~scirc~ŝ~scnE~⪶~scnap~⪺~scnsim~⋩~scpolint~⨓~scsim~≿~scy~с~sdotb~⊡~sdote~⩦~seArr~⇘~searhk~⤥~searr~↘~searrow~↘~semi~;~seswar~⤩~setminus~∖~setmn~∖~sext~✶~sfr~𝔰~sfrown~⌢~sharp~♯~shchcy~щ~shcy~ш~shortmid~∣~shortparallel~∥~sigmav~ς~simdot~⩪~sime~≃~simeq~≃~simg~⪞~simgE~⪠~siml~⪝~simlE~⪟~simne~≆~simplus~⨤~simrarr~⥲~slarr~←~smallsetminus~∖~smashp~⨳~smeparsl~⧤~smid~∣~smile~⌣~smt~⪪~smte~⪬~smtes~⪬︀~softcy~ь~sol~/~solb~⧄~solbar~⌿~sopf~𝕤~spadesuit~♠~spar~∥~sqcap~⊓~sqcaps~⊓︀~sqcup~⊔~sqcups~⊔︀~sqsub~⊏~sqsube~⊑~sqsubset~⊏~sqsubseteq~⊑~sqsup~⊐~sqsupe~⊒~sqsupset~⊐~sqsupseteq~⊒~squ~□~square~□~squarf~▪~squf~▪~srarr~→~sscr~𝓈~ssetmn~∖~ssmile~⌣~sstarf~⋆~star~☆~starf~★~straightepsilon~ϵ~straightphi~ϕ~strns~¯~subE~⫅~subdot~⪽~subedot~⫃~submult~⫁~subnE~⫋~subne~⊊~subplus~⪿~subrarr~⥹~subset~⊂~subseteq~⊆~subseteqq~⫅~subsetneq~⊊~subsetneqq~⫋~subsim~⫇~subsub~⫕~subsup~⫓~succ~≻~succapprox~⪸~succcurlyeq~≽~succeq~⪰~succnapprox~⪺~succneqq~⪶~succnsim~⋩~succsim~≿~sung~♪~supE~⫆~supdot~⪾~supdsub~⫘~supedot~⫄~suphsol~⟉~suphsub~⫗~suplarr~⥻~supmult~⫂~supnE~⫌~supne~⊋~supplus~⫀~supset~⊃~supseteq~⊇~supseteqq~⫆~supsetneq~⊋~supsetneqq~⫌~supsim~⫈~supsub~⫔~supsup~⫖~swArr~⇙~swarhk~⤦~swarr~↙~swarrow~↙~swnwar~⤪~target~⌖~tbrk~⎴~tcaron~ť~tcedil~ţ~tcy~т~tdot~⃛~telrec~⌕~tfr~𝔱~therefore~∴~thetav~ϑ~thickapprox~≈~thicksim~∼~thkap~≈~thksim~∼~timesb~⊠~timesbar~⨱~timesd~⨰~tint~∭~toea~⤨~top~⊤~topbot~⌶~topcir~⫱~topf~𝕥~topfork~⫚~tosa~⤩~tprime~‴~triangle~▵~triangledown~▿~triangleleft~◃~trianglelefteq~⊴~triangleq~≜~triangleright~▹~trianglerighteq~⊵~tridot~◬~trie~≜~triminus~⨺~triplus~⨹~trisb~⧍~tritime~⨻~trpezium~⏢~tscr~𝓉~tscy~ц~tshcy~ћ~tstrok~ŧ~twixt~≬~twoheadleftarrow~↞~twoheadrightarrow~↠~uHar~⥣~ubrcy~ў~ubreve~ŭ~ucy~у~udarr~⇅~udblac~ű~udhar~⥮~ufisht~⥾~ufr~𝔲~uharl~↿~uharr~↾~uhblk~▀~ulcorn~⌜~ulcorner~⌜~ulcrop~⌏~ultri~◸~umacr~ū~uogon~ų~uopf~𝕦~uparrow~↑~updownarrow~↕~upharpoonleft~↿~upharpoonright~↾~uplus~⊎~upsi~υ~upuparrows~⇈~urcorn~⌝~urcorner~⌝~urcrop~⌎~uring~ů~urtri~◹~uscr~𝓊~utdot~⋰~utilde~ũ~utri~▵~utrif~▴~uuarr~⇈~uwangle~⦧~vArr~⇕~vBar~⫨~vBarv~⫩~vDash~⊨~vangrt~⦜~varepsilon~ϵ~varkappa~ϰ~varnothing~∅~varphi~ϕ~varpi~ϖ~varpropto~∝~varr~↕~varrho~ϱ~varsigma~ς~varsubsetneq~⊊︀~varsubsetneqq~⫋︀~varsupsetneq~⊋︀~varsupsetneqq~⫌︀~vartheta~ϑ~vartriangleleft~⊲~vartriangleright~⊳~vcy~в~vdash~⊢~vee~∨~veebar~⊻~veeeq~≚~vellip~⋮~verbar~|~vert~|~vfr~𝔳~vltri~⊲~vnsub~⊂⃒~vnsup~⊃⃒~vopf~𝕧~vprop~∝~vrtri~⊳~vscr~𝓋~vsubnE~⫋︀~vsubne~⊊︀~vsupnE~⫌︀~vsupne~⊋︀~vzigzag~⦚~wcirc~ŵ~wedbar~⩟~wedge~∧~wedgeq~≙~wfr~𝔴~wopf~𝕨~wp~℘~wr~≀~wreath~≀~wscr~𝓌~xcap~⋂~xcirc~◯~xcup~⋃~xdtri~▽~xfr~𝔵~xhArr~⟺~xharr~⟷~xlArr~⟸~xlarr~⟵~xmap~⟼~xnis~⋻~xodot~⨀~xopf~𝕩~xoplus~⨁~xotime~⨂~xrArr~⟹~xrarr~⟶~xscr~𝓍~xsqcup~⨆~xuplus~⨄~xutri~△~xvee~⋁~xwedge~⋀~yacy~я~ycirc~ŷ~ycy~ы~yfr~𝔶~yicy~ї~yopf~𝕪~yscr~𝓎~yucy~ю~zacute~ź~zcaron~ž~zcy~з~zdot~ż~zeetrf~ℨ~zfr~𝔷~zhcy~ж~zigrarr~⇝~zopf~𝕫~zscr~𝓏~~AMP~&~COPY~©~GT~>~LT~<~QUOT~"~REG~®',s.html4),String.fromCodePoint;var i=String.prototype.codePointAt?function(r,t){return r.codePointAt(t)}:function(r,t){return 1024*(r.charCodeAt(t)-55296)+r.charCodeAt(t+1)-56320+65536},n=function(){return n=Object.assign||function(r){for(var t,e=1,a=arguments.length;e<a;e++)for(var o in t=arguments[e])Object.prototype.hasOwnProperty.call(t,o)&&(r[o]=t[o]);return r},n.apply(this,arguments)},l=n(n({},s),{all:s.html5}),c={specialChars:/[<>'"&]/g,nonAscii:/[<>'"&\u0080-\uD7FF\uE000-\uFFFF\uDC00-\uDFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]?/g,nonAsciiPrintable:/[<>'"&\x01-\x08\x11-\x15\x17-\x1F\x7f-\uD7FF\uE000-\uFFFF\uDC00-\uDFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]?/g,nonAsciiPrintableOnly:/[\x01-\x08\x11-\x15\x17-\x1F\x7f-\uD7FF\uE000-\uFFFF\uDC00-\uDFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]?/g,extensive:/[\x01-\x0c\x0e-\x1f\x21-\x2c\x2e-\x2f\x3a-\x40\x5b-\x60\x7b-\x7d\x7f-\uD7FF\uE000-\uFFFF\uDC00-\uDFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]?/g},u={mode:"specialChars",level:"all",numeric:"decimal"};function p(r,t){var e=void 0===t?u:t,a=e.mode,o=void 0===a?"specialChars":a,s=e.numeric,n=void 0===s?"decimal":s,p=e.level;if(!r)return"";var g=c[o],h=l[void 0===p?"all":p].characters,d="hexadecimal"===n;return String.prototype.replace.call(r,g,(function(r){var t=h[r];if(!t){var e=r.length>1?i(r,0):r.charCodeAt(0);t=(d?"&#x"+e.toString(16):"&#"+e)+";"}return t}))}var g=/&(?:#\d+|#[xX][\da-fA-F]+|[0-9a-zA-Z]+);/g,h=/&(?:#\d+|#[xX][\da-fA-F]+|[0-9a-zA-Z]+)[;=]?/g,d={xml:{strict:g,attribute:h,body:o.xml},html4:{strict:g,attribute:h,body:o.html4},html5:{strict:g,attribute:h,body:o.html5}};(n(n({},d),{all:d.html5}),String.fromCharCode)(65533);class m{#r="";#t=[];#e={};#a="";constructor(r="",t="",e=[],a={}){this.name=r,this.tags=e,this.metadata=a,this.text=t}get name(){return this.#r}set name(r){if("string"!=typeof r)throw new Error("Name must be a String!");this.#r=r}get tags(){return this.#t}set tags(r){if(!Array.isArray(r))throw new Error("Tags must be an array!");this.#t=r}get metadata(){return this.#e}set metadata(r){if("object"!=typeof r)throw new Error("Metadata should be an object literal!");this.#e=r}get text(){return this.#a}set text(r){if("string"!=typeof r)throw new Error("Text should be a String!");this.#a=r}toTwee(){let r="";r+=`:: ${this.name}`,this.tags.length>0&&(r+=` [${this.tags.join(" ")}]`),Object.keys(this.metadata).length>0&&(r+=` ${JSON.stringify(this.metadata)}`);const t=this.text.split("\n");for(let r=0;r<t.length;r++)t[r].startsWith("::")&&(t[r]=`\\${t[r]}`);return r+=`\n${t.join("\n")}\n\n`,r}toJSON(){const r={name:this.name,tags:this.tags,metadata:this.metadata,text:this.text};return JSON.stringify(r)}toTwine2HTML(r=1){let t="\t<tw-passagedata";return t+=` pid="${r}"`,t+=` name="${p(this.name)}"`,t+=` tags="${p(this.#t.join(" "))}" `,Object.prototype.hasOwnProperty.call(this.#e,"position")&&(t+=` position="${this.#e.position}" `),Object.prototype.hasOwnProperty.call(this.#e,"size")&&(t+=`size="${this.#e.size}" `),t+=`>${p(this.text)}</tw-passagedata>\n`,t}toTwine1HTML(){let r="\t<div";return r+=` tiddler="${p(this.name)}"`,r+=` tags="${p(this.#t.join(" "))}" `,r+=' modifier="extwee"',Object.prototype.hasOwnProperty.call(this.#e,"position")?r+=` twine-position="${this.#e.position}"`:r+=' twine-position="10,10"',r+=`>${p(this.#a)}</div>`,r}}const f=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i,b=function(r){if(!function(r){return"string"==typeof r&&f.test(r)}(r))throw TypeError("Invalid UUID");let t;return Uint8Array.of((t=parseInt(r.slice(0,8),16))>>>24,t>>>16&255,t>>>8&255,255&t,(t=parseInt(r.slice(9,13),16))>>>8,255&t,(t=parseInt(r.slice(14,18),16))>>>8,255&t,(t=parseInt(r.slice(19,23),16))>>>8,255&t,(t=parseInt(r.slice(24,36),16))/1099511627776&255,t/4294967296&255,t>>>24&255,t>>>16&255,t>>>8&255,255&t)},y=[];for(let r=0;r<256;++r)y.push((r+256).toString(16).slice(1));function w(r,t=0){return(y[r[t+0]]+y[r[t+1]]+y[r[t+2]]+y[r[t+3]]+"-"+y[r[t+4]]+y[r[t+5]]+"-"+y[r[t+6]]+y[r[t+7]]+"-"+y[r[t+8]]+y[r[t+9]]+"-"+y[r[t+10]]+y[r[t+11]]+y[r[t+12]]+y[r[t+13]]+y[r[t+14]]+y[r[t+15]]).toLowerCase()}let v;const q=new Uint8Array(16);function x(r){return 14+(r+64>>>9<<4)+1}function S(r,t){const e=(65535&r)+(65535&t);return(r>>16)+(t>>16)+(e>>16)<<16|65535&e}function E(r,t,e,a,o,s){return S((i=S(S(t,r),S(a,s)))<<(n=o)|i>>>32-n,e);var i,n}function A(r,t,e,a,o,s,i){return E(t&e|~t&a,r,t,o,s,i)}function D(r,t,e,a,o,s,i){return E(t&a|e&~a,r,t,o,s,i)}function T(r,t,e,a,o,s,i){return E(t^e^a,r,t,o,s,i)}function L(r,t,e,a,o,s,i){return E(e^(t|~a),r,t,o,s,i)}const k=function(r){return function(r){const t=new Uint8Array(4*r.length);for(let e=0;e<4*r.length;e++)t[e]=r[e>>2]>>>e%4*8&255;return t}(function(r,t){const e=new Uint32Array(x(t)).fill(0);e.set(r),e[t>>5]|=128<<t%32,e[e.length-1]=t,r=e;let a=1732584193,o=-271733879,s=-1732584194,i=271733878;for(let t=0;t<r.length;t+=16){const e=a,n=o,l=s,c=i;a=A(a,o,s,i,r[t],7,-680876936),i=A(i,a,o,s,r[t+1],12,-389564586),s=A(s,i,a,o,r[t+2],17,606105819),o=A(o,s,i,a,r[t+3],22,-1044525330),a=A(a,o,s,i,r[t+4],7,-176418897),i=A(i,a,o,s,r[t+5],12,1200080426),s=A(s,i,a,o,r[t+6],17,-1473231341),o=A(o,s,i,a,r[t+7],22,-45705983),a=A(a,o,s,i,r[t+8],7,1770035416),i=A(i,a,o,s,r[t+9],12,-1958414417),s=A(s,i,a,o,r[t+10],17,-42063),o=A(o,s,i,a,r[t+11],22,-1990404162),a=A(a,o,s,i,r[t+12],7,1804603682),i=A(i,a,o,s,r[t+13],12,-40341101),s=A(s,i,a,o,r[t+14],17,-1502002290),o=A(o,s,i,a,r[t+15],22,1236535329),a=D(a,o,s,i,r[t+1],5,-165796510),i=D(i,a,o,s,r[t+6],9,-1069501632),s=D(s,i,a,o,r[t+11],14,643717713),o=D(o,s,i,a,r[t],20,-373897302),a=D(a,o,s,i,r[t+5],5,-701558691),i=D(i,a,o,s,r[t+10],9,38016083),s=D(s,i,a,o,r[t+15],14,-660478335),o=D(o,s,i,a,r[t+4],20,-405537848),a=D(a,o,s,i,r[t+9],5,568446438),i=D(i,a,o,s,r[t+14],9,-1019803690),s=D(s,i,a,o,r[t+3],14,-187363961),o=D(o,s,i,a,r[t+8],20,1163531501),a=D(a,o,s,i,r[t+13],5,-1444681467),i=D(i,a,o,s,r[t+2],9,-51403784),s=D(s,i,a,o,r[t+7],14,1735328473),o=D(o,s,i,a,r[t+12],20,-1926607734),a=T(a,o,s,i,r[t+5],4,-378558),i=T(i,a,o,s,r[t+8],11,-2022574463),s=T(s,i,a,o,r[t+11],16,1839030562),o=T(o,s,i,a,r[t+14],23,-35309556),a=T(a,o,s,i,r[t+1],4,-1530992060),i=T(i,a,o,s,r[t+4],11,1272893353),s=T(s,i,a,o,r[t+7],16,-155497632),o=T(o,s,i,a,r[t+10],23,-1094730640),a=T(a,o,s,i,r[t+13],4,681279174),i=T(i,a,o,s,r[t],11,-358537222),s=T(s,i,a,o,r[t+3],16,-722521979),o=T(o,s,i,a,r[t+6],23,76029189),a=T(a,o,s,i,r[t+9],4,-640364487),i=T(i,a,o,s,r[t+12],11,-421815835),s=T(s,i,a,o,r[t+15],16,530742520),o=T(o,s,i,a,r[t+2],23,-995338651),a=L(a,o,s,i,r[t],6,-198630844),i=L(i,a,o,s,r[t+7],10,1126891415),s=L(s,i,a,o,r[t+14],15,-1416354905),o=L(o,s,i,a,r[t+5],21,-57434055),a=L(a,o,s,i,r[t+12],6,1700485571),i=L(i,a,o,s,r[t+3],10,-1894986606),s=L(s,i,a,o,r[t+10],15,-1051523),o=L(o,s,i,a,r[t+1],21,-2054922799),a=L(a,o,s,i,r[t+8],6,1873313359),i=L(i,a,o,s,r[t+15],10,-30611744),s=L(s,i,a,o,r[t+6],15,-1560198380),o=L(o,s,i,a,r[t+13],21,1309151649),a=L(a,o,s,i,r[t+4],6,-145523070),i=L(i,a,o,s,r[t+11],10,-1120210379),s=L(s,i,a,o,r[t+2],15,718787259),o=L(o,s,i,a,r[t+9],21,-343485551),a=S(a,e),o=S(o,n),s=S(s,l),i=S(i,c)}return Uint32Array.of(a,o,s,i)}(function(r){if(0===r.length)return new Uint32Array;const t=new Uint32Array(x(8*r.length)).fill(0);for(let e=0;e<r.length;e++)t[e>>2]|=(255&r[e])<<e%4*8;return t}(r),8*r.length))},O="6ba7b810-9dad-11d1-80b4-00c04fd430c8",U="6ba7b811-9dad-11d1-80b4-00c04fd430c8";function F(r,t,e,a,o,s){const i="string"==typeof e?function(r){r=unescape(encodeURIComponent(r));const t=new Uint8Array(r.length);for(let e=0;e<r.length;++e)t[e]=r.charCodeAt(e);return t}(e):e,n="string"==typeof a?b(a):a;if("string"==typeof a&&(a=b(a)),16!==a?.length)throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");let l=new Uint8Array(16+i.length);if(l.set(n),l.set(i,n.length),l=t(l),l[6]=15&l[6]|r,l[8]=63&l[8]|128,o){s=s||0;for(let r=0;r<16;++r)o[s+r]=l[r];return o}return w(l)}function N(r,t,e,a){return F(48,k,r,t,e,a)}N.DNS=O,N.URL=U;const C={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};const R=function(r,t,e){return!C.randomUUID||t||r?function(r,t,e){const a=(r=r||{}).random??r.rng?.()??function(){if(!v){if("undefined"==typeof crypto||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");v=crypto.getRandomValues.bind(crypto)}return v(q)}();if(a.length<16)throw new Error("Random bytes length must be >= 16");if(a[6]=15&a[6]|64,a[8]=63&a[8]|128,t){if((e=e||0)<0||e+16>t.length)throw new RangeError(`UUID byte range ${e}:${e+15} is out of buffer bounds`);for(let r=0;r<16;++r)t[e+r]=a[r];return t}return w(a)}(r,t,e):C.randomUUID()};function I(r,t,e,a){switch(r){case 0:return t&e^~t&a;case 1:case 3:return t^e^a;case 2:return t&e^t&a^e&a}}function _(r,t){return r<<t|r>>>32-t}const V=function(r){const t=[1518500249,1859775393,2400959708,3395469782],e=[1732584193,4023233417,2562383102,271733878,3285377520],a=new Uint8Array(r.length+1);a.set(r),a[r.length]=128;const o=(r=a).length/4+2,s=Math.ceil(o/16),i=new Array(s);for(let t=0;t<s;++t){const e=new Uint32Array(16);for(let a=0;a<16;++a)e[a]=r[64*t+4*a]<<24|r[64*t+4*a+1]<<16|r[64*t+4*a+2]<<8|r[64*t+4*a+3];i[t]=e}i[s-1][14]=8*(r.length-1)/Math.pow(2,32),i[s-1][14]=Math.floor(i[s-1][14]),i[s-1][15]=8*(r.length-1)&4294967295;for(let r=0;r<s;++r){const a=new Uint32Array(80);for(let t=0;t<16;++t)a[t]=i[r][t];for(let r=16;r<80;++r)a[r]=_(a[r-3]^a[r-8]^a[r-14]^a[r-16],1);let o=e[0],s=e[1],n=e[2],l=e[3],c=e[4];for(let r=0;r<80;++r){const e=Math.floor(r/20),i=_(o,5)+I(e,s,n,l)+c+t[e]+a[r]>>>0;c=l,l=n,n=_(s,30)>>>0,s=o,o=i}e[0]=e[0]+o>>>0,e[1]=e[1]+s>>>0,e[2]=e[2]+n>>>0,e[3]=e[3]+l>>>0,e[4]=e[4]+c>>>0}return Uint8Array.of(e[0]>>24,e[0]>>16,e[0]>>8,e[0],e[1]>>24,e[1]>>16,e[1]>>8,e[1],e[2]>>24,e[2]>>16,e[2]>>8,e[2],e[3]>>24,e[3]>>16,e[3]>>8,e[3],e[4]>>24,e[4]>>16,e[4]>>8,e[4])};function P(r,t,e,a){return F(80,V,r,t,e,a)}function j(){return R().toUpperCase()}P.DNS=O,P.URL=U;class B{#r="Untitled Story";#o="";#s="";#i="";#n="";#l=1;#c=[];#u="";#p="";#e=null;#g={};#h="";#d="";constructor(r="Untitled Story"){this.name=r,this.#u="extwee",this.#p="2.3.3",this.#e={}}get name(){return this.#r}set name(r){if("string"!=typeof r)throw new Error("Story name must be a string");this.#r=r}get tagColors(){return this.#g}set tagColors(r){if(!(r instanceof Object))throw new Error("Tag colors must be an object!");this.#g=r}get IFID(){return this.#s}set IFID(r){if("string"!=typeof r)throw new Error("IFID must be a String!");this.#s=r}get start(){return this.#o}set start(r){if("string"!=typeof r)throw new Error("start (passage name) must be a String!");this.#o=r}get formatVersion(){return this.#n}set formatVersion(r){if("string"!=typeof r)throw new Error("Story format version must be a String!");this.#n=r}get metadata(){return this.#e}set metadata(r){if("object"!=typeof r)throw new Error("Story metadata must be Object!");this.#e=r}get format(){return this.#i}set format(r){if("string"!=typeof r)throw new Error("Story format must be a String!");this.#i=r}get creator(){return this.#u}set creator(r){if("string"!=typeof r)throw new Error("Creator must be String");this.#u=r}get creatorVersion(){return this.#p}set creatorVersion(r){if("string"!=typeof r)throw new Error("Creator version must be a string!");this.#p=r}get zoom(){return this.#l}set zoom(r){if("number"!=typeof r)throw new Error("Zoom level must be a Number!");this.#l=Number(Number.parseFloat(r).toFixed(2))}get passages(){return this.#c}set passages(r){if(!Array.isArray(r))throw new Error("Passages must be an Array!");if(!r.every((r=>r instanceof m)))throw new Error("Passages must be an Array of Passage objects!");this.#c=r}get storyStylesheet(){return this.#d}set storyStylesheet(r){if("string"!=typeof r)throw new Error("Story stylesheet must be a string!");this.#d=r}get storyJavaScript(){return this.#h}set storyJavaScript(r){if("string"!=typeof r)throw new Error("Story JavaScript must be a string!");this.#h=r}addPassage(r){if(!(r instanceof m))throw new Error("Can only add Passages to the story!");if(null!==this.getPassageByName(r.name))return console.warn(`Warning: A passage with the name "${r.name}" already exists!`),this.#c.length;if("StoryData"===r.name){try{const t=JSON.parse(r.text);Object.prototype.hasOwnProperty.call(t,"ifid")&&(this.IFID=t.ifid),Object.prototype.hasOwnProperty.call(t,"format")&&(this.format=t.format),Object.prototype.hasOwnProperty.call(t,"format-version")&&(this.formatVersion=t["format-version"]),Object.prototype.hasOwnProperty.call(t,"zoom")&&(this.zoom=t.zoom),Object.prototype.hasOwnProperty.call(t,"start")&&(this.start=t.start),Object.prototype.hasOwnProperty.call(t,"tag-colors")&&(this.tagColors=t["tag-colors"])}catch(r){}return this.#c.length}return"StoryTitle"===r.name?(this.name=r.text,this.#c.length):("Start"===r.name&&""==this.start&&(this.start=r.name),this.#c.push(r))}removePassageByName(r){return this.#c=this.#c.filter((t=>t.name!==r)),this.#c.length}getPassagesByTag(r){return this.#c.filter((t=>t.tags.some((t=>r===t))))}getPassageByName(r){const t=this.#c.find((t=>t.name===r));return void 0!==t?t:null}size(){return this.#c.length}toJSON(){const r={name:this.name,tagColors:this.tagColors,ifid:this.IFID,start:this.start,formatVersion:this.formatVersion,metadata:this.metadata,format:this.format,creator:this.creator,creatorVersion:this.creatorVersion,zoom:this.zoom,style:this.storyStylesheet,script:this.storyJavaScript,passages:[]};return this.passages.forEach((t=>{r.passages.push({name:t.name,tags:t.tags,metadata:t.metadata,text:t.text})})),JSON.stringify(r,null,4)}toTwee(){let r=":: StoryData\n";const t={};return null===this.IFID.match(/^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/)?(t.ifid=j(),console.warn("Warning: IFID is not in UUIDv4 format! A new IFID was generated.")):t.ifid=this.IFID,""!==this.format&&(t.format=this.format),""!==this.formatVersion&&(t["format-version"]=this.formatVersion),0!==this.zoom&&(t.zoom=this.zoom),""!==this.start&&(t.start=this.start),Object.keys(this.tagColors).length>0&&(t["tag-colors"]=this.tagColors),r+=`${JSON.stringify(t,void 0,2)}`,r+="\n\n",r+=":: StoryTitle\n"+this.name,r+="\n\n",this.#d.length>0&&(r+=":: StoryStylesheet [stylesheet]\n"+this.#d+"\n\n"),this.#h.length>0&&(r+=":: StoryJavaScript [script]\n"+this.#h+"\n\n"),this.passages.forEach((t=>{r+=t.toTwee()})),r}toTwine2HTML(){let r=this.passages,t=`<tw-storydata name="${p(this.name)}"`;""!==this.IFID?t+=` ifid="${this.IFID}"`:t+=` ifid="${j()}"`;let e=1,a=1;r.forEach((r=>{r.name===this.start&&(a=e),e++})),0===r.length&&(a=0),t+=` startnode="${a}"`,""!==this.creator&&(t+=` creator="${p(this.creator)}"`),""!==this.creatorVersion&&(t+=` creator-version="${this.creatorVersion}"`),1!==this.zoom&&(t+=` zoom="${this.zoom}"`),""!==this.format&&(t+=` format="${this.format}"`),""!==this.formatVersion&&(t+=` format-version="${this.formatVersion}"`),t+=" options hidden>\n";const o=r.filter((r=>r.tags.includes("stylesheet")));r=r.filter((r=>!r.tags.includes("stylesheet"))),o.length>0&&(t+='\t<style role="stylesheet" id="twine-user-stylesheet" type="text/twine-css">',o.forEach((r=>{t+=r.text})),t+="</style>\n"),this.#d.length>0&&(t+=`\t<style role="stylesheet" id="twine-user-stylesheet" type="text/twine-css">${this.#d}</style>\n`);const s=r.filter((r=>r.tags.includes("script")));return r=r.filter((r=>!r.tags.includes("script"))),s.length>0&&(t+='\t<script role="script" id="twine-user-script" type="text/twine-javascript">',s.forEach((r=>{t+=r.text})),t+="<\/script>\n"),this.#h.length>0&&(t+=`\t<script role="script" id="twine-user-script" type="text/twine-javascript">${this.#h}<\/script>\n`),e=1,this.passages.forEach((r=>{t+=r.toTwine2HTML(e),e++})),Object.keys(this.tagColors).forEach((r=>{t+=`\t<tw-tag name="${r}" color="${this.tagColors[r]}"></tw-tag>\n`})),t+="</tw-storydata>",t}toTwine1HTML(){let r="";return this.passages.forEach((t=>{r+=`\t${t.toTwine1HTML()}`})),r}}class z{constructor(r){if(this.html=r,this.doc=null,"undefined"!=typeof DOMParser){const t=new DOMParser;this.doc=t.parseFromString(r,"text/html")}else this.doc=this.createSimpleDOM(r)}querySelector(r){return this.doc&&this.doc.querySelector?this.doc.querySelector(r):"#storeArea"===r?this.html.match(/<div[^>]*id=["']storeArea["'][^>]*>/i)?{found:!0}:null:"#store-area"===r&&this.html.match(/<div[^>]*id=["']store-area["'][^>]*>/i)?{found:!0}:null}querySelectorAll(r){return this.doc&&this.doc.querySelectorAll?Array.from(this.doc.querySelectorAll(r)):"[tiddler]"===r?this.extractTiddlerElements():[]}extractTiddlerElements(){const r=/<div[^>]*tiddler=["']([^"']+)["'][^>]*>([\s\S]*?)<\/div>/gi,t=[];let e;for(;null!==(e=r.exec(this.html));){const r=e[0],a=this.parseAttributes(r),o=this.extractTextContent(e[2]);t.push({attributes:a,rawText:o})}return t}parseAttributes(r){const t={},e=r.match(/tiddler=["']([^"']+)["']/i);e&&(t.tiddler=e[1]);const a=r.match(/tags=["']([^"']*)["']/i);a&&(t.tags=a[1]);const o=r.match(/twine-position=["']([^"']+)["']/i);o&&(t["twine-position"]=o[1]);const s=r.match(/modifier=["']([^"']+)["']/i);return s&&(t.modifier=s[1]),t}extractTextContent(r){return r.replace(/<[^>]*>/g,"").replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/'/g,"'").replace(/&/g,"&").trim()}createSimpleDOM(r){return{querySelector:t=>"#storeArea"===t&&r.includes('id="storeArea"')||"#store-area"===t&&r.includes('id="store-area"')?{found:!0}:null,querySelectorAll:r=>"[tiddler]"===r?this.extractTiddlerElements():[]}}}function H(r){const t=new B,e=new z(r);let a=e.querySelector("#storeArea");if(null===a&&(a=e.querySelector("#store-area"),null==a))throw new Error("Cannot find #storeArea or #store-area!");const o=e.querySelectorAll("[tiddler]");for(const r of o){const e=r.attributes,a=r.rawText;let o=null;Object.prototype.hasOwnProperty.call(e,"twine-position")&&(o=e["twine-position"]);const s=e.tiddler;"StoryTitle"===s&&(t.name=a);let i=[];Object.prototype.hasOwnProperty.call(e,"tags")&&(e.tags.length>0&&'""'!==e.tags&&(i=e.tags,i=i.split(" ")),i=i.filter((r=>""!==r)));const n={};null!==o&&(n.position=o),Object.prototype.hasOwnProperty.call(e,"modifier")&&(t.creator=e.modifier),t.addPassage(new m(s,a,i,n))}return t}function G(r,t="",e="",a="",o="",s={jquery:"",modernizr:""}){if(!(r instanceof B))throw new TypeError("Error: story must be a Story object!");return e=(e=(e=(e=(e=(e=(e=e.replaceAll(/"VERSION"/gm,r.creator)).replaceAll(/"TIME"/gm,new Date)).replaceAll(/"ENGINE"/gm,t)).replaceAll(`"${a.toUpperCase()}"`,o)).replaceAll(/"STORY_SIZE"/gm,`"${r.size()}"`)).replaceAll(/"STORY"/gm,r.toTwine1HTML())).replaceAll(/"START_AT"/gm,"''"),Object.prototype.hasOwnProperty.call(s,"jquery")&&(e=e.replaceAll(/"JQUERY"/gm,s.jquery)),Object.prototype.hasOwnProperty.call(s,"modernizr")&&(e=e.replaceAll(/"MODERNIZR"/gm,s.modernizr)),e}return"undefined"!=typeof window&&window.Extwee&&(window.Extwee.parseTwine1HTML=H,window.Extwee.compileTwine1HTML=G),t})()));
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
!function(t,r){"object"==typeof exports&&"object"==typeof module?module.exports=r():"function"==typeof define&&define.amd?define([],r):"object"==typeof exports?exports.Extwee=r():t.Extwee=r()}(this,(()=>(()=>{"use strict";var t={d:(r,e)=>{for(var a in e)t.o(e,a)&&!t.o(r,a)&&Object.defineProperty(r,a,{enumerable:!0,get:e[a]})},o:(t,r)=>Object.prototype.hasOwnProperty.call(t,r),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},r={};t.r(r),t.d(r,{compile:()=>Q,parse:()=>X});var e=function(){return e=Object.assign||function(t){for(var r,e=1,a=arguments.length;e<a;e++)for(var o in r=arguments[e])Object.prototype.hasOwnProperty.call(r,o)&&(t[o]=r[o]);return t},e.apply(this,arguments)};function a(t,r){for(var a={},o={},s=t.split("~~"),i=!1,n=0;s.length>n;n++){for(var l=s[n].split("~"),c=0;c<l.length;c+=2){var u=l[c],p=l[c+1],g="&"+u+";";a[g]=p,i&&(a["&"+u]=p),o[p]=g}i=!0}return r?{entities:e(e({},a),r.entities),characters:e(e({},o),r.characters)}:{entities:a,characters:o}}var o={xml:/&(?:#\d+|#[xX][\da-fA-F]+|[0-9a-zA-Z]+);?/g,html4:/∉|&(?:nbsp|iexcl|cent|pound|curren|yen|brvbar|sect|uml|copy|ordf|laquo|not|shy|reg|macr|deg|plusmn|sup2|sup3|acute|micro|para|middot|cedil|sup1|ordm|raquo|frac14|frac12|frac34|iquest|Agrave|Aacute|Acirc|Atilde|Auml|Aring|AElig|Ccedil|Egrave|Eacute|Ecirc|Euml|Igrave|Iacute|Icirc|Iuml|ETH|Ntilde|Ograve|Oacute|Ocirc|Otilde|Ouml|times|Oslash|Ugrave|Uacute|Ucirc|Uuml|Yacute|THORN|szlig|agrave|aacute|acirc|atilde|auml|aring|aelig|ccedil|egrave|eacute|ecirc|euml|igrave|iacute|icirc|iuml|eth|ntilde|ograve|oacute|ocirc|otilde|ouml|divide|oslash|ugrave|uacute|ucirc|uuml|yacute|thorn|yuml|quot|amp|lt|gt|#\d+|#[xX][\da-fA-F]+|[0-9a-zA-Z]+);?/g,html5:/·|℗|⋇|⪧|⩺|⋗|⦕|⩼|⪆|⥸|⋗|⋛|⪌|≷|≳|⪦|⩹|⋖|⋋|⋉|⥶|⩻|⦖|◃|⊴|◂|∉|⋹̸|⋵̸|∉|⋷|⋶|∌|∌|⋾|⋽|∥|⊠|⨱|⨰|&(?:AElig|AMP|Aacute|Acirc|Agrave|Aring|Atilde|Auml|COPY|Ccedil|ETH|Eacute|Ecirc|Egrave|Euml|GT|Iacute|Icirc|Igrave|Iuml|LT|Ntilde|Oacute|Ocirc|Ograve|Oslash|Otilde|Ouml|QUOT|REG|THORN|Uacute|Ucirc|Ugrave|Uuml|Yacute|aacute|acirc|acute|aelig|agrave|amp|aring|atilde|auml|brvbar|ccedil|cedil|cent|copy|curren|deg|divide|eacute|ecirc|egrave|eth|euml|frac12|frac14|frac34|gt|iacute|icirc|iexcl|igrave|iquest|iuml|laquo|lt|macr|micro|middot|nbsp|not|ntilde|oacute|ocirc|ograve|ordf|ordm|oslash|otilde|ouml|para|plusmn|pound|quot|raquo|reg|sect|shy|sup1|sup2|sup3|szlig|thorn|times|uacute|ucirc|ugrave|uml|uuml|yacute|yen|yuml|#\d+|#[xX][\da-fA-F]+|[0-9a-zA-Z]+);?/g},s={};s.xml=a("lt~<~gt~>~quot~\"~apos~'~amp~&"),s.html4=a("apos~'~OElig~Œ~oelig~œ~Scaron~Š~scaron~š~Yuml~Ÿ~circ~ˆ~tilde~˜~ensp~ ~emsp~ ~thinsp~ ~zwnj~~zwj~~lrm~~rlm~~ndash~–~mdash~—~lsquo~‘~rsquo~’~sbquo~‚~ldquo~“~rdquo~”~bdquo~„~dagger~†~Dagger~‡~permil~‰~lsaquo~‹~rsaquo~›~euro~€~fnof~ƒ~Alpha~Α~Beta~Β~Gamma~Γ~Delta~Δ~Epsilon~Ε~Zeta~Ζ~Eta~Η~Theta~Θ~Iota~Ι~Kappa~Κ~Lambda~Λ~Mu~Μ~Nu~Ν~Xi~Ξ~Omicron~Ο~Pi~Π~Rho~Ρ~Sigma~Σ~Tau~Τ~Upsilon~Υ~Phi~Φ~Chi~Χ~Psi~Ψ~Omega~Ω~alpha~α~beta~β~gamma~γ~delta~δ~epsilon~ε~zeta~ζ~eta~η~theta~θ~iota~ι~kappa~κ~lambda~λ~mu~μ~nu~ν~xi~ξ~omicron~ο~pi~π~rho~ρ~sigmaf~ς~sigma~σ~tau~τ~upsilon~υ~phi~φ~chi~χ~psi~ψ~omega~ω~thetasym~ϑ~upsih~ϒ~piv~ϖ~bull~•~hellip~…~prime~′~Prime~″~oline~‾~frasl~⁄~weierp~℘~image~ℑ~real~ℜ~trade~™~alefsym~ℵ~larr~←~uarr~↑~rarr~→~darr~↓~harr~↔~crarr~↵~lArr~⇐~uArr~⇑~rArr~⇒~dArr~⇓~hArr~⇔~forall~∀~part~∂~exist~∃~empty~∅~nabla~∇~isin~∈~notin~∉~ni~∋~prod~∏~sum~∑~minus~−~lowast~∗~radic~√~prop~∝~infin~∞~ang~∠~and~∧~or~∨~cap~∩~cup~∪~int~∫~there4~∴~sim~∼~cong~≅~asymp~≈~ne~≠~equiv~≡~le~≤~ge~≥~sub~⊂~sup~⊃~nsub~⊄~sube~⊆~supe~⊇~oplus~⊕~otimes~⊗~perp~⊥~sdot~⋅~lceil~⌈~rceil~⌉~lfloor~⌊~rfloor~⌋~lang~〈~rang~〉~loz~◊~spades~♠~clubs~♣~hearts~♥~diams~♦~~nbsp~ ~iexcl~¡~cent~¢~pound~£~curren~¤~yen~¥~brvbar~¦~sect~§~uml~¨~copy~©~ordf~ª~laquo~«~not~¬~shy~~reg~®~macr~¯~deg~°~plusmn~±~sup2~²~sup3~³~acute~´~micro~µ~para~¶~middot~·~cedil~¸~sup1~¹~ordm~º~raquo~»~frac14~¼~frac12~½~frac34~¾~iquest~¿~Agrave~À~Aacute~Á~Acirc~Â~Atilde~Ã~Auml~Ä~Aring~Å~AElig~Æ~Ccedil~Ç~Egrave~È~Eacute~É~Ecirc~Ê~Euml~Ë~Igrave~Ì~Iacute~Í~Icirc~Î~Iuml~Ï~ETH~Ð~Ntilde~Ñ~Ograve~Ò~Oacute~Ó~Ocirc~Ô~Otilde~Õ~Ouml~Ö~times~×~Oslash~Ø~Ugrave~Ù~Uacute~Ú~Ucirc~Û~Uuml~Ü~Yacute~Ý~THORN~Þ~szlig~ß~agrave~à~aacute~á~acirc~â~atilde~ã~auml~ä~aring~å~aelig~æ~ccedil~ç~egrave~è~eacute~é~ecirc~ê~euml~ë~igrave~ì~iacute~í~icirc~î~iuml~ï~eth~ð~ntilde~ñ~ograve~ò~oacute~ó~ocirc~ô~otilde~õ~ouml~ö~divide~÷~oslash~ø~ugrave~ù~uacute~ú~ucirc~û~uuml~ü~yacute~ý~thorn~þ~yuml~ÿ~quot~\"~amp~&~lt~<~gt~>"),s.html5=a('Abreve~Ă~Acy~А~Afr~𝔄~Amacr~Ā~And~⩓~Aogon~Ą~Aopf~𝔸~ApplyFunction~~Ascr~𝒜~Assign~≔~Backslash~∖~Barv~⫧~Barwed~⌆~Bcy~Б~Because~∵~Bernoullis~ℬ~Bfr~𝔅~Bopf~𝔹~Breve~˘~Bscr~ℬ~Bumpeq~≎~CHcy~Ч~Cacute~Ć~Cap~⋒~CapitalDifferentialD~ⅅ~Cayleys~ℭ~Ccaron~Č~Ccirc~Ĉ~Cconint~∰~Cdot~Ċ~Cedilla~¸~CenterDot~·~Cfr~ℭ~CircleDot~⊙~CircleMinus~⊖~CirclePlus~⊕~CircleTimes~⊗~ClockwiseContourIntegral~∲~CloseCurlyDoubleQuote~”~CloseCurlyQuote~’~Colon~∷~Colone~⩴~Congruent~≡~Conint~∯~ContourIntegral~∮~Copf~ℂ~Coproduct~∐~CounterClockwiseContourIntegral~∳~Cross~⨯~Cscr~𝒞~Cup~⋓~CupCap~≍~DD~ⅅ~DDotrahd~⤑~DJcy~Ђ~DScy~Ѕ~DZcy~Џ~Darr~↡~Dashv~⫤~Dcaron~Ď~Dcy~Д~Del~∇~Dfr~𝔇~DiacriticalAcute~´~DiacriticalDot~˙~DiacriticalDoubleAcute~˝~DiacriticalGrave~`~DiacriticalTilde~˜~Diamond~⋄~DifferentialD~ⅆ~Dopf~𝔻~Dot~¨~DotDot~⃜~DotEqual~≐~DoubleContourIntegral~∯~DoubleDot~¨~DoubleDownArrow~⇓~DoubleLeftArrow~⇐~DoubleLeftRightArrow~⇔~DoubleLeftTee~⫤~DoubleLongLeftArrow~⟸~DoubleLongLeftRightArrow~⟺~DoubleLongRightArrow~⟹~DoubleRightArrow~⇒~DoubleRightTee~⊨~DoubleUpArrow~⇑~DoubleUpDownArrow~⇕~DoubleVerticalBar~∥~DownArrow~↓~DownArrowBar~⤓~DownArrowUpArrow~⇵~DownBreve~̑~DownLeftRightVector~⥐~DownLeftTeeVector~⥞~DownLeftVector~↽~DownLeftVectorBar~⥖~DownRightTeeVector~⥟~DownRightVector~⇁~DownRightVectorBar~⥗~DownTee~⊤~DownTeeArrow~↧~Downarrow~⇓~Dscr~𝒟~Dstrok~Đ~ENG~Ŋ~Ecaron~Ě~Ecy~Э~Edot~Ė~Efr~𝔈~Element~∈~Emacr~Ē~EmptySmallSquare~◻~EmptyVerySmallSquare~▫~Eogon~Ę~Eopf~𝔼~Equal~⩵~EqualTilde~≂~Equilibrium~⇌~Escr~ℰ~Esim~⩳~Exists~∃~ExponentialE~ⅇ~Fcy~Ф~Ffr~𝔉~FilledSmallSquare~◼~FilledVerySmallSquare~▪~Fopf~𝔽~ForAll~∀~Fouriertrf~ℱ~Fscr~ℱ~GJcy~Ѓ~Gammad~Ϝ~Gbreve~Ğ~Gcedil~Ģ~Gcirc~Ĝ~Gcy~Г~Gdot~Ġ~Gfr~𝔊~Gg~⋙~Gopf~𝔾~GreaterEqual~≥~GreaterEqualLess~⋛~GreaterFullEqual~≧~GreaterGreater~⪢~GreaterLess~≷~GreaterSlantEqual~⩾~GreaterTilde~≳~Gscr~𝒢~Gt~≫~HARDcy~Ъ~Hacek~ˇ~Hat~^~Hcirc~Ĥ~Hfr~ℌ~HilbertSpace~ℋ~Hopf~ℍ~HorizontalLine~─~Hscr~ℋ~Hstrok~Ħ~HumpDownHump~≎~HumpEqual~≏~IEcy~Е~IJlig~IJ~IOcy~Ё~Icy~И~Idot~İ~Ifr~ℑ~Im~ℑ~Imacr~Ī~ImaginaryI~ⅈ~Implies~⇒~Int~∬~Integral~∫~Intersection~⋂~InvisibleComma~~InvisibleTimes~~Iogon~Į~Iopf~𝕀~Iscr~ℐ~Itilde~Ĩ~Iukcy~І~Jcirc~Ĵ~Jcy~Й~Jfr~𝔍~Jopf~𝕁~Jscr~𝒥~Jsercy~Ј~Jukcy~Є~KHcy~Х~KJcy~Ќ~Kcedil~Ķ~Kcy~К~Kfr~𝔎~Kopf~𝕂~Kscr~𝒦~LJcy~Љ~Lacute~Ĺ~Lang~⟪~Laplacetrf~ℒ~Larr~↞~Lcaron~Ľ~Lcedil~Ļ~Lcy~Л~LeftAngleBracket~⟨~LeftArrow~←~LeftArrowBar~⇤~LeftArrowRightArrow~⇆~LeftCeiling~⌈~LeftDoubleBracket~⟦~LeftDownTeeVector~⥡~LeftDownVector~⇃~LeftDownVectorBar~⥙~LeftFloor~⌊~LeftRightArrow~↔~LeftRightVector~⥎~LeftTee~⊣~LeftTeeArrow~↤~LeftTeeVector~⥚~LeftTriangle~⊲~LeftTriangleBar~⧏~LeftTriangleEqual~⊴~LeftUpDownVector~⥑~LeftUpTeeVector~⥠~LeftUpVector~↿~LeftUpVectorBar~⥘~LeftVector~↼~LeftVectorBar~⥒~Leftarrow~⇐~Leftrightarrow~⇔~LessEqualGreater~⋚~LessFullEqual~≦~LessGreater~≶~LessLess~⪡~LessSlantEqual~⩽~LessTilde~≲~Lfr~𝔏~Ll~⋘~Lleftarrow~⇚~Lmidot~Ŀ~LongLeftArrow~⟵~LongLeftRightArrow~⟷~LongRightArrow~⟶~Longleftarrow~⟸~Longleftrightarrow~⟺~Longrightarrow~⟹~Lopf~𝕃~LowerLeftArrow~↙~LowerRightArrow~↘~Lscr~ℒ~Lsh~↰~Lstrok~Ł~Lt~≪~Map~⤅~Mcy~М~MediumSpace~ ~Mellintrf~ℳ~Mfr~𝔐~MinusPlus~∓~Mopf~𝕄~Mscr~ℳ~NJcy~Њ~Nacute~Ń~Ncaron~Ň~Ncedil~Ņ~Ncy~Н~NegativeMediumSpace~~NegativeThickSpace~~NegativeThinSpace~~NegativeVeryThinSpace~~NestedGreaterGreater~≫~NestedLessLess~≪~NewLine~\n~Nfr~𝔑~NoBreak~~NonBreakingSpace~ ~Nopf~ℕ~Not~⫬~NotCongruent~≢~NotCupCap~≭~NotDoubleVerticalBar~∦~NotElement~∉~NotEqual~≠~NotEqualTilde~≂̸~NotExists~∄~NotGreater~≯~NotGreaterEqual~≱~NotGreaterFullEqual~≧̸~NotGreaterGreater~≫̸~NotGreaterLess~≹~NotGreaterSlantEqual~⩾̸~NotGreaterTilde~≵~NotHumpDownHump~≎̸~NotHumpEqual~≏̸~NotLeftTriangle~⋪~NotLeftTriangleBar~⧏̸~NotLeftTriangleEqual~⋬~NotLess~≮~NotLessEqual~≰~NotLessGreater~≸~NotLessLess~≪̸~NotLessSlantEqual~⩽̸~NotLessTilde~≴~NotNestedGreaterGreater~⪢̸~NotNestedLessLess~⪡̸~NotPrecedes~⊀~NotPrecedesEqual~⪯̸~NotPrecedesSlantEqual~⋠~NotReverseElement~∌~NotRightTriangle~⋫~NotRightTriangleBar~⧐̸~NotRightTriangleEqual~⋭~NotSquareSubset~⊏̸~NotSquareSubsetEqual~⋢~NotSquareSuperset~⊐̸~NotSquareSupersetEqual~⋣~NotSubset~⊂⃒~NotSubsetEqual~⊈~NotSucceeds~⊁~NotSucceedsEqual~⪰̸~NotSucceedsSlantEqual~⋡~NotSucceedsTilde~≿̸~NotSuperset~⊃⃒~NotSupersetEqual~⊉~NotTilde~≁~NotTildeEqual~≄~NotTildeFullEqual~≇~NotTildeTilde~≉~NotVerticalBar~∤~Nscr~𝒩~Ocy~О~Odblac~Ő~Ofr~𝔒~Omacr~Ō~Oopf~𝕆~OpenCurlyDoubleQuote~“~OpenCurlyQuote~‘~Or~⩔~Oscr~𝒪~Otimes~⨷~OverBar~‾~OverBrace~⏞~OverBracket~⎴~OverParenthesis~⏜~PartialD~∂~Pcy~П~Pfr~𝔓~PlusMinus~±~Poincareplane~ℌ~Popf~ℙ~Pr~⪻~Precedes~≺~PrecedesEqual~⪯~PrecedesSlantEqual~≼~PrecedesTilde~≾~Product~∏~Proportion~∷~Proportional~∝~Pscr~𝒫~Qfr~𝔔~Qopf~ℚ~Qscr~𝒬~RBarr~⤐~Racute~Ŕ~Rang~⟫~Rarr~↠~Rarrtl~⤖~Rcaron~Ř~Rcedil~Ŗ~Rcy~Р~Re~ℜ~ReverseElement~∋~ReverseEquilibrium~⇋~ReverseUpEquilibrium~⥯~Rfr~ℜ~RightAngleBracket~⟩~RightArrow~→~RightArrowBar~⇥~RightArrowLeftArrow~⇄~RightCeiling~⌉~RightDoubleBracket~⟧~RightDownTeeVector~⥝~RightDownVector~⇂~RightDownVectorBar~⥕~RightFloor~⌋~RightTee~⊢~RightTeeArrow~↦~RightTeeVector~⥛~RightTriangle~⊳~RightTriangleBar~⧐~RightTriangleEqual~⊵~RightUpDownVector~⥏~RightUpTeeVector~⥜~RightUpVector~↾~RightUpVectorBar~⥔~RightVector~⇀~RightVectorBar~⥓~Rightarrow~⇒~Ropf~ℝ~RoundImplies~⥰~Rrightarrow~⇛~Rscr~ℛ~Rsh~↱~RuleDelayed~⧴~SHCHcy~Щ~SHcy~Ш~SOFTcy~Ь~Sacute~Ś~Sc~⪼~Scedil~Ş~Scirc~Ŝ~Scy~С~Sfr~𝔖~ShortDownArrow~↓~ShortLeftArrow~←~ShortRightArrow~→~ShortUpArrow~↑~SmallCircle~∘~Sopf~𝕊~Sqrt~√~Square~□~SquareIntersection~⊓~SquareSubset~⊏~SquareSubsetEqual~⊑~SquareSuperset~⊐~SquareSupersetEqual~⊒~SquareUnion~⊔~Sscr~𝒮~Star~⋆~Sub~⋐~Subset~⋐~SubsetEqual~⊆~Succeeds~≻~SucceedsEqual~⪰~SucceedsSlantEqual~≽~SucceedsTilde~≿~SuchThat~∋~Sum~∑~Sup~⋑~Superset~⊃~SupersetEqual~⊇~Supset~⋑~TRADE~™~TSHcy~Ћ~TScy~Ц~Tab~\t~Tcaron~Ť~Tcedil~Ţ~Tcy~Т~Tfr~𝔗~Therefore~∴~ThickSpace~ ~ThinSpace~ ~Tilde~∼~TildeEqual~≃~TildeFullEqual~≅~TildeTilde~≈~Topf~𝕋~TripleDot~⃛~Tscr~𝒯~Tstrok~Ŧ~Uarr~↟~Uarrocir~⥉~Ubrcy~Ў~Ubreve~Ŭ~Ucy~У~Udblac~Ű~Ufr~𝔘~Umacr~Ū~UnderBar~_~UnderBrace~⏟~UnderBracket~⎵~UnderParenthesis~⏝~Union~⋃~UnionPlus~⊎~Uogon~Ų~Uopf~𝕌~UpArrow~↑~UpArrowBar~⤒~UpArrowDownArrow~⇅~UpDownArrow~↕~UpEquilibrium~⥮~UpTee~⊥~UpTeeArrow~↥~Uparrow~⇑~Updownarrow~⇕~UpperLeftArrow~↖~UpperRightArrow~↗~Upsi~ϒ~Uring~Ů~Uscr~𝒰~Utilde~Ũ~VDash~⊫~Vbar~⫫~Vcy~В~Vdash~⊩~Vdashl~⫦~Vee~⋁~Verbar~‖~Vert~‖~VerticalBar~∣~VerticalLine~|~VerticalSeparator~❘~VerticalTilde~≀~VeryThinSpace~ ~Vfr~𝔙~Vopf~𝕍~Vscr~𝒱~Vvdash~⊪~Wcirc~Ŵ~Wedge~⋀~Wfr~𝔚~Wopf~𝕎~Wscr~𝒲~Xfr~𝔛~Xopf~𝕏~Xscr~𝒳~YAcy~Я~YIcy~Ї~YUcy~Ю~Ycirc~Ŷ~Ycy~Ы~Yfr~𝔜~Yopf~𝕐~Yscr~𝒴~ZHcy~Ж~Zacute~Ź~Zcaron~Ž~Zcy~З~Zdot~Ż~ZeroWidthSpace~~Zfr~ℨ~Zopf~ℤ~Zscr~𝒵~abreve~ă~ac~∾~acE~∾̳~acd~∿~acy~а~af~~afr~𝔞~aleph~ℵ~amacr~ā~amalg~⨿~andand~⩕~andd~⩜~andslope~⩘~andv~⩚~ange~⦤~angle~∠~angmsd~∡~angmsdaa~⦨~angmsdab~⦩~angmsdac~⦪~angmsdad~⦫~angmsdae~⦬~angmsdaf~⦭~angmsdag~⦮~angmsdah~⦯~angrt~∟~angrtvb~⊾~angrtvbd~⦝~angsph~∢~angst~Å~angzarr~⍼~aogon~ą~aopf~𝕒~ap~≈~apE~⩰~apacir~⩯~ape~≊~apid~≋~approx~≈~approxeq~≊~ascr~𝒶~ast~*~asympeq~≍~awconint~∳~awint~⨑~bNot~⫭~backcong~≌~backepsilon~϶~backprime~‵~backsim~∽~backsimeq~⋍~barvee~⊽~barwed~⌅~barwedge~⌅~bbrk~⎵~bbrktbrk~⎶~bcong~≌~bcy~б~becaus~∵~because~∵~bemptyv~⦰~bepsi~϶~bernou~ℬ~beth~ℶ~between~≬~bfr~𝔟~bigcap~⋂~bigcirc~◯~bigcup~⋃~bigodot~⨀~bigoplus~⨁~bigotimes~⨂~bigsqcup~⨆~bigstar~★~bigtriangledown~▽~bigtriangleup~△~biguplus~⨄~bigvee~⋁~bigwedge~⋀~bkarow~⤍~blacklozenge~⧫~blacksquare~▪~blacktriangle~▴~blacktriangledown~▾~blacktriangleleft~◂~blacktriangleright~▸~blank~␣~blk12~▒~blk14~░~blk34~▓~block~█~bne~=⃥~bnequiv~≡⃥~bnot~⌐~bopf~𝕓~bot~⊥~bottom~⊥~bowtie~⋈~boxDL~╗~boxDR~╔~boxDl~╖~boxDr~╓~boxH~═~boxHD~╦~boxHU~╩~boxHd~╤~boxHu~╧~boxUL~╝~boxUR~╚~boxUl~╜~boxUr~╙~boxV~║~boxVH~╬~boxVL~╣~boxVR~╠~boxVh~╫~boxVl~╢~boxVr~╟~boxbox~⧉~boxdL~╕~boxdR~╒~boxdl~┐~boxdr~┌~boxh~─~boxhD~╥~boxhU~╨~boxhd~┬~boxhu~┴~boxminus~⊟~boxplus~⊞~boxtimes~⊠~boxuL~╛~boxuR~╘~boxul~┘~boxur~└~boxv~│~boxvH~╪~boxvL~╡~boxvR~╞~boxvh~┼~boxvl~┤~boxvr~├~bprime~‵~breve~˘~bscr~𝒷~bsemi~⁏~bsim~∽~bsime~⋍~bsol~\\~bsolb~⧅~bsolhsub~⟈~bullet~•~bump~≎~bumpE~⪮~bumpe~≏~bumpeq~≏~cacute~ć~capand~⩄~capbrcup~⩉~capcap~⩋~capcup~⩇~capdot~⩀~caps~∩︀~caret~⁁~caron~ˇ~ccaps~⩍~ccaron~č~ccirc~ĉ~ccups~⩌~ccupssm~⩐~cdot~ċ~cemptyv~⦲~centerdot~·~cfr~𝔠~chcy~ч~check~✓~checkmark~✓~cir~○~cirE~⧃~circeq~≗~circlearrowleft~↺~circlearrowright~↻~circledR~®~circledS~Ⓢ~circledast~⊛~circledcirc~⊚~circleddash~⊝~cire~≗~cirfnint~⨐~cirmid~⫯~cirscir~⧂~clubsuit~♣~colon~:~colone~≔~coloneq~≔~comma~,~commat~@~comp~∁~compfn~∘~complement~∁~complexes~ℂ~congdot~⩭~conint~∮~copf~𝕔~coprod~∐~copysr~℗~cross~✗~cscr~𝒸~csub~⫏~csube~⫑~csup~⫐~csupe~⫒~ctdot~⋯~cudarrl~⤸~cudarrr~⤵~cuepr~⋞~cuesc~⋟~cularr~↶~cularrp~⤽~cupbrcap~⩈~cupcap~⩆~cupcup~⩊~cupdot~⊍~cupor~⩅~cups~∪︀~curarr~↷~curarrm~⤼~curlyeqprec~⋞~curlyeqsucc~⋟~curlyvee~⋎~curlywedge~⋏~curvearrowleft~↶~curvearrowright~↷~cuvee~⋎~cuwed~⋏~cwconint~∲~cwint~∱~cylcty~⌭~dHar~⥥~daleth~ℸ~dash~‐~dashv~⊣~dbkarow~⤏~dblac~˝~dcaron~ď~dcy~д~dd~ⅆ~ddagger~‡~ddarr~⇊~ddotseq~⩷~demptyv~⦱~dfisht~⥿~dfr~𝔡~dharl~⇃~dharr~⇂~diam~⋄~diamond~⋄~diamondsuit~♦~die~¨~digamma~ϝ~disin~⋲~div~÷~divideontimes~⋇~divonx~⋇~djcy~ђ~dlcorn~⌞~dlcrop~⌍~dollar~$~dopf~𝕕~dot~˙~doteq~≐~doteqdot~≑~dotminus~∸~dotplus~∔~dotsquare~⊡~doublebarwedge~⌆~downarrow~↓~downdownarrows~⇊~downharpoonleft~⇃~downharpoonright~⇂~drbkarow~⤐~drcorn~⌟~drcrop~⌌~dscr~𝒹~dscy~ѕ~dsol~⧶~dstrok~đ~dtdot~⋱~dtri~▿~dtrif~▾~duarr~⇵~duhar~⥯~dwangle~⦦~dzcy~џ~dzigrarr~⟿~eDDot~⩷~eDot~≑~easter~⩮~ecaron~ě~ecir~≖~ecolon~≕~ecy~э~edot~ė~ee~ⅇ~efDot~≒~efr~𝔢~eg~⪚~egs~⪖~egsdot~⪘~el~⪙~elinters~⏧~ell~ℓ~els~⪕~elsdot~⪗~emacr~ē~emptyset~∅~emptyv~∅~emsp13~ ~emsp14~ ~eng~ŋ~eogon~ę~eopf~𝕖~epar~⋕~eparsl~⧣~eplus~⩱~epsi~ε~epsiv~ϵ~eqcirc~≖~eqcolon~≕~eqsim~≂~eqslantgtr~⪖~eqslantless~⪕~equals~=~equest~≟~equivDD~⩸~eqvparsl~⧥~erDot~≓~erarr~⥱~escr~ℯ~esdot~≐~esim~≂~excl~!~expectation~ℰ~exponentiale~ⅇ~fallingdotseq~≒~fcy~ф~female~♀~ffilig~ffi~fflig~ff~ffllig~ffl~ffr~𝔣~filig~fi~fjlig~fj~flat~♭~fllig~fl~fltns~▱~fopf~𝕗~fork~⋔~forkv~⫙~fpartint~⨍~frac13~⅓~frac15~⅕~frac16~⅙~frac18~⅛~frac23~⅔~frac25~⅖~frac35~⅗~frac38~⅜~frac45~⅘~frac56~⅚~frac58~⅝~frac78~⅞~frown~⌢~fscr~𝒻~gE~≧~gEl~⪌~gacute~ǵ~gammad~ϝ~gap~⪆~gbreve~ğ~gcirc~ĝ~gcy~г~gdot~ġ~gel~⋛~geq~≥~geqq~≧~geqslant~⩾~ges~⩾~gescc~⪩~gesdot~⪀~gesdoto~⪂~gesdotol~⪄~gesl~⋛︀~gesles~⪔~gfr~𝔤~gg~≫~ggg~⋙~gimel~ℷ~gjcy~ѓ~gl~≷~glE~⪒~gla~⪥~glj~⪤~gnE~≩~gnap~⪊~gnapprox~⪊~gne~⪈~gneq~⪈~gneqq~≩~gnsim~⋧~gopf~𝕘~grave~`~gscr~ℊ~gsim~≳~gsime~⪎~gsiml~⪐~gtcc~⪧~gtcir~⩺~gtdot~⋗~gtlPar~⦕~gtquest~⩼~gtrapprox~⪆~gtrarr~⥸~gtrdot~⋗~gtreqless~⋛~gtreqqless~⪌~gtrless~≷~gtrsim~≳~gvertneqq~≩︀~gvnE~≩︀~hairsp~ ~half~½~hamilt~ℋ~hardcy~ъ~harrcir~⥈~harrw~↭~hbar~ℏ~hcirc~ĥ~heartsuit~♥~hercon~⊹~hfr~𝔥~hksearow~⤥~hkswarow~⤦~hoarr~⇿~homtht~∻~hookleftarrow~↩~hookrightarrow~↪~hopf~𝕙~horbar~―~hscr~𝒽~hslash~ℏ~hstrok~ħ~hybull~⁃~hyphen~‐~ic~~icy~и~iecy~е~iff~⇔~ifr~𝔦~ii~ⅈ~iiiint~⨌~iiint~∭~iinfin~⧜~iiota~℩~ijlig~ij~imacr~ī~imagline~ℐ~imagpart~ℑ~imath~ı~imof~⊷~imped~Ƶ~in~∈~incare~℅~infintie~⧝~inodot~ı~intcal~⊺~integers~ℤ~intercal~⊺~intlarhk~⨗~intprod~⨼~iocy~ё~iogon~į~iopf~𝕚~iprod~⨼~iscr~𝒾~isinE~⋹~isindot~⋵~isins~⋴~isinsv~⋳~isinv~∈~it~~itilde~ĩ~iukcy~і~jcirc~ĵ~jcy~й~jfr~𝔧~jmath~ȷ~jopf~𝕛~jscr~𝒿~jsercy~ј~jukcy~є~kappav~ϰ~kcedil~ķ~kcy~к~kfr~𝔨~kgreen~ĸ~khcy~х~kjcy~ќ~kopf~𝕜~kscr~𝓀~lAarr~⇚~lAtail~⤛~lBarr~⤎~lE~≦~lEg~⪋~lHar~⥢~lacute~ĺ~laemptyv~⦴~lagran~ℒ~langd~⦑~langle~⟨~lap~⪅~larrb~⇤~larrbfs~⤟~larrfs~⤝~larrhk~↩~larrlp~↫~larrpl~⤹~larrsim~⥳~larrtl~↢~lat~⪫~latail~⤙~late~⪭~lates~⪭︀~lbarr~⤌~lbbrk~❲~lbrace~{~lbrack~[~lbrke~⦋~lbrksld~⦏~lbrkslu~⦍~lcaron~ľ~lcedil~ļ~lcub~{~lcy~л~ldca~⤶~ldquor~„~ldrdhar~⥧~ldrushar~⥋~ldsh~↲~leftarrow~←~leftarrowtail~↢~leftharpoondown~↽~leftharpoonup~↼~leftleftarrows~⇇~leftrightarrow~↔~leftrightarrows~⇆~leftrightharpoons~⇋~leftrightsquigarrow~↭~leftthreetimes~⋋~leg~⋚~leq~≤~leqq~≦~leqslant~⩽~les~⩽~lescc~⪨~lesdot~⩿~lesdoto~⪁~lesdotor~⪃~lesg~⋚︀~lesges~⪓~lessapprox~⪅~lessdot~⋖~lesseqgtr~⋚~lesseqqgtr~⪋~lessgtr~≶~lesssim~≲~lfisht~⥼~lfr~𝔩~lg~≶~lgE~⪑~lhard~↽~lharu~↼~lharul~⥪~lhblk~▄~ljcy~љ~ll~≪~llarr~⇇~llcorner~⌞~llhard~⥫~lltri~◺~lmidot~ŀ~lmoust~⎰~lmoustache~⎰~lnE~≨~lnap~⪉~lnapprox~⪉~lne~⪇~lneq~⪇~lneqq~≨~lnsim~⋦~loang~⟬~loarr~⇽~lobrk~⟦~longleftarrow~⟵~longleftrightarrow~⟷~longmapsto~⟼~longrightarrow~⟶~looparrowleft~↫~looparrowright~↬~lopar~⦅~lopf~𝕝~loplus~⨭~lotimes~⨴~lowbar~_~lozenge~◊~lozf~⧫~lpar~(~lparlt~⦓~lrarr~⇆~lrcorner~⌟~lrhar~⇋~lrhard~⥭~lrtri~⊿~lscr~𝓁~lsh~↰~lsim~≲~lsime~⪍~lsimg~⪏~lsqb~[~lsquor~‚~lstrok~ł~ltcc~⪦~ltcir~⩹~ltdot~⋖~lthree~⋋~ltimes~⋉~ltlarr~⥶~ltquest~⩻~ltrPar~⦖~ltri~◃~ltrie~⊴~ltrif~◂~lurdshar~⥊~luruhar~⥦~lvertneqq~≨︀~lvnE~≨︀~mDDot~∺~male~♂~malt~✠~maltese~✠~map~↦~mapsto~↦~mapstodown~↧~mapstoleft~↤~mapstoup~↥~marker~▮~mcomma~⨩~mcy~м~measuredangle~∡~mfr~𝔪~mho~℧~mid~∣~midast~*~midcir~⫰~minusb~⊟~minusd~∸~minusdu~⨪~mlcp~⫛~mldr~…~mnplus~∓~models~⊧~mopf~𝕞~mp~∓~mscr~𝓂~mstpos~∾~multimap~⊸~mumap~⊸~nGg~⋙̸~nGt~≫⃒~nGtv~≫̸~nLeftarrow~⇍~nLeftrightarrow~⇎~nLl~⋘̸~nLt~≪⃒~nLtv~≪̸~nRightarrow~⇏~nVDash~⊯~nVdash~⊮~nacute~ń~nang~∠⃒~nap~≉~napE~⩰̸~napid~≋̸~napos~ʼn~napprox~≉~natur~♮~natural~♮~naturals~ℕ~nbump~≎̸~nbumpe~≏̸~ncap~⩃~ncaron~ň~ncedil~ņ~ncong~≇~ncongdot~⩭̸~ncup~⩂~ncy~н~neArr~⇗~nearhk~⤤~nearr~↗~nearrow~↗~nedot~≐̸~nequiv~≢~nesear~⤨~nesim~≂̸~nexist~∄~nexists~∄~nfr~𝔫~ngE~≧̸~nge~≱~ngeq~≱~ngeqq~≧̸~ngeqslant~⩾̸~nges~⩾̸~ngsim~≵~ngt~≯~ngtr~≯~nhArr~⇎~nharr~↮~nhpar~⫲~nis~⋼~nisd~⋺~niv~∋~njcy~њ~nlArr~⇍~nlE~≦̸~nlarr~↚~nldr~‥~nle~≰~nleftarrow~↚~nleftrightarrow~↮~nleq~≰~nleqq~≦̸~nleqslant~⩽̸~nles~⩽̸~nless~≮~nlsim~≴~nlt~≮~nltri~⋪~nltrie~⋬~nmid~∤~nopf~𝕟~notinE~⋹̸~notindot~⋵̸~notinva~∉~notinvb~⋷~notinvc~⋶~notni~∌~notniva~∌~notnivb~⋾~notnivc~⋽~npar~∦~nparallel~∦~nparsl~⫽⃥~npart~∂̸~npolint~⨔~npr~⊀~nprcue~⋠~npre~⪯̸~nprec~⊀~npreceq~⪯̸~nrArr~⇏~nrarr~↛~nrarrc~⤳̸~nrarrw~↝̸~nrightarrow~↛~nrtri~⋫~nrtrie~⋭~nsc~⊁~nsccue~⋡~nsce~⪰̸~nscr~𝓃~nshortmid~∤~nshortparallel~∦~nsim~≁~nsime~≄~nsimeq~≄~nsmid~∤~nspar~∦~nsqsube~⋢~nsqsupe~⋣~nsubE~⫅̸~nsube~⊈~nsubset~⊂⃒~nsubseteq~⊈~nsubseteqq~⫅̸~nsucc~⊁~nsucceq~⪰̸~nsup~⊅~nsupE~⫆̸~nsupe~⊉~nsupset~⊃⃒~nsupseteq~⊉~nsupseteqq~⫆̸~ntgl~≹~ntlg~≸~ntriangleleft~⋪~ntrianglelefteq~⋬~ntriangleright~⋫~ntrianglerighteq~⋭~num~#~numero~№~numsp~ ~nvDash~⊭~nvHarr~⤄~nvap~≍⃒~nvdash~⊬~nvge~≥⃒~nvgt~>⃒~nvinfin~⧞~nvlArr~⤂~nvle~≤⃒~nvlt~<⃒~nvltrie~⊴⃒~nvrArr~⤃~nvrtrie~⊵⃒~nvsim~∼⃒~nwArr~⇖~nwarhk~⤣~nwarr~↖~nwarrow~↖~nwnear~⤧~oS~Ⓢ~oast~⊛~ocir~⊚~ocy~о~odash~⊝~odblac~ő~odiv~⨸~odot~⊙~odsold~⦼~ofcir~⦿~ofr~𝔬~ogon~˛~ogt~⧁~ohbar~⦵~ohm~Ω~oint~∮~olarr~↺~olcir~⦾~olcross~⦻~olt~⧀~omacr~ō~omid~⦶~ominus~⊖~oopf~𝕠~opar~⦷~operp~⦹~orarr~↻~ord~⩝~order~ℴ~orderof~ℴ~origof~⊶~oror~⩖~orslope~⩗~orv~⩛~oscr~ℴ~osol~⊘~otimesas~⨶~ovbar~⌽~par~∥~parallel~∥~parsim~⫳~parsl~⫽~pcy~п~percnt~%~period~.~pertenk~‱~pfr~𝔭~phiv~ϕ~phmmat~ℳ~phone~☎~pitchfork~⋔~planck~ℏ~planckh~ℎ~plankv~ℏ~plus~+~plusacir~⨣~plusb~⊞~pluscir~⨢~plusdo~∔~plusdu~⨥~pluse~⩲~plussim~⨦~plustwo~⨧~pm~±~pointint~⨕~popf~𝕡~pr~≺~prE~⪳~prap~⪷~prcue~≼~pre~⪯~prec~≺~precapprox~⪷~preccurlyeq~≼~preceq~⪯~precnapprox~⪹~precneqq~⪵~precnsim~⋨~precsim~≾~primes~ℙ~prnE~⪵~prnap~⪹~prnsim~⋨~profalar~⌮~profline~⌒~profsurf~⌓~propto~∝~prsim~≾~prurel~⊰~pscr~𝓅~puncsp~ ~qfr~𝔮~qint~⨌~qopf~𝕢~qprime~⁗~qscr~𝓆~quaternions~ℍ~quatint~⨖~quest~?~questeq~≟~rAarr~⇛~rAtail~⤜~rBarr~⤏~rHar~⥤~race~∽̱~racute~ŕ~raemptyv~⦳~rangd~⦒~range~⦥~rangle~⟩~rarrap~⥵~rarrb~⇥~rarrbfs~⤠~rarrc~⤳~rarrfs~⤞~rarrhk~↪~rarrlp~↬~rarrpl~⥅~rarrsim~⥴~rarrtl~↣~rarrw~↝~ratail~⤚~ratio~∶~rationals~ℚ~rbarr~⤍~rbbrk~❳~rbrace~}~rbrack~]~rbrke~⦌~rbrksld~⦎~rbrkslu~⦐~rcaron~ř~rcedil~ŗ~rcub~}~rcy~р~rdca~⤷~rdldhar~⥩~rdquor~”~rdsh~↳~realine~ℛ~realpart~ℜ~reals~ℝ~rect~▭~rfisht~⥽~rfr~𝔯~rhard~⇁~rharu~⇀~rharul~⥬~rhov~ϱ~rightarrow~→~rightarrowtail~↣~rightharpoondown~⇁~rightharpoonup~⇀~rightleftarrows~⇄~rightleftharpoons~⇌~rightrightarrows~⇉~rightsquigarrow~↝~rightthreetimes~⋌~ring~˚~risingdotseq~≓~rlarr~⇄~rlhar~⇌~rmoust~⎱~rmoustache~⎱~rnmid~⫮~roang~⟭~roarr~⇾~robrk~⟧~ropar~⦆~ropf~𝕣~roplus~⨮~rotimes~⨵~rpar~)~rpargt~⦔~rppolint~⨒~rrarr~⇉~rscr~𝓇~rsh~↱~rsqb~]~rsquor~’~rthree~⋌~rtimes~⋊~rtri~▹~rtrie~⊵~rtrif~▸~rtriltri~⧎~ruluhar~⥨~rx~℞~sacute~ś~sc~≻~scE~⪴~scap~⪸~sccue~≽~sce~⪰~scedil~ş~scirc~ŝ~scnE~⪶~scnap~⪺~scnsim~⋩~scpolint~⨓~scsim~≿~scy~с~sdotb~⊡~sdote~⩦~seArr~⇘~searhk~⤥~searr~↘~searrow~↘~semi~;~seswar~⤩~setminus~∖~setmn~∖~sext~✶~sfr~𝔰~sfrown~⌢~sharp~♯~shchcy~щ~shcy~ш~shortmid~∣~shortparallel~∥~sigmav~ς~simdot~⩪~sime~≃~simeq~≃~simg~⪞~simgE~⪠~siml~⪝~simlE~⪟~simne~≆~simplus~⨤~simrarr~⥲~slarr~←~smallsetminus~∖~smashp~⨳~smeparsl~⧤~smid~∣~smile~⌣~smt~⪪~smte~⪬~smtes~⪬︀~softcy~ь~sol~/~solb~⧄~solbar~⌿~sopf~𝕤~spadesuit~♠~spar~∥~sqcap~⊓~sqcaps~⊓︀~sqcup~⊔~sqcups~⊔︀~sqsub~⊏~sqsube~⊑~sqsubset~⊏~sqsubseteq~⊑~sqsup~⊐~sqsupe~⊒~sqsupset~⊐~sqsupseteq~⊒~squ~□~square~□~squarf~▪~squf~▪~srarr~→~sscr~𝓈~ssetmn~∖~ssmile~⌣~sstarf~⋆~star~☆~starf~★~straightepsilon~ϵ~straightphi~ϕ~strns~¯~subE~⫅~subdot~⪽~subedot~⫃~submult~⫁~subnE~⫋~subne~⊊~subplus~⪿~subrarr~⥹~subset~⊂~subseteq~⊆~subseteqq~⫅~subsetneq~⊊~subsetneqq~⫋~subsim~⫇~subsub~⫕~subsup~⫓~succ~≻~succapprox~⪸~succcurlyeq~≽~succeq~⪰~succnapprox~⪺~succneqq~⪶~succnsim~⋩~succsim~≿~sung~♪~supE~⫆~supdot~⪾~supdsub~⫘~supedot~⫄~suphsol~⟉~suphsub~⫗~suplarr~⥻~supmult~⫂~supnE~⫌~supne~⊋~supplus~⫀~supset~⊃~supseteq~⊇~supseteqq~⫆~supsetneq~⊋~supsetneqq~⫌~supsim~⫈~supsub~⫔~supsup~⫖~swArr~⇙~swarhk~⤦~swarr~↙~swarrow~↙~swnwar~⤪~target~⌖~tbrk~⎴~tcaron~ť~tcedil~ţ~tcy~т~tdot~⃛~telrec~⌕~tfr~𝔱~therefore~∴~thetav~ϑ~thickapprox~≈~thicksim~∼~thkap~≈~thksim~∼~timesb~⊠~timesbar~⨱~timesd~⨰~tint~∭~toea~⤨~top~⊤~topbot~⌶~topcir~⫱~topf~𝕥~topfork~⫚~tosa~⤩~tprime~‴~triangle~▵~triangledown~▿~triangleleft~◃~trianglelefteq~⊴~triangleq~≜~triangleright~▹~trianglerighteq~⊵~tridot~◬~trie~≜~triminus~⨺~triplus~⨹~trisb~⧍~tritime~⨻~trpezium~⏢~tscr~𝓉~tscy~ц~tshcy~ћ~tstrok~ŧ~twixt~≬~twoheadleftarrow~↞~twoheadrightarrow~↠~uHar~⥣~ubrcy~ў~ubreve~ŭ~ucy~у~udarr~⇅~udblac~ű~udhar~⥮~ufisht~⥾~ufr~𝔲~uharl~↿~uharr~↾~uhblk~▀~ulcorn~⌜~ulcorner~⌜~ulcrop~⌏~ultri~◸~umacr~ū~uogon~ų~uopf~𝕦~uparrow~↑~updownarrow~↕~upharpoonleft~↿~upharpoonright~↾~uplus~⊎~upsi~υ~upuparrows~⇈~urcorn~⌝~urcorner~⌝~urcrop~⌎~uring~ů~urtri~◹~uscr~𝓊~utdot~⋰~utilde~ũ~utri~▵~utrif~▴~uuarr~⇈~uwangle~⦧~vArr~⇕~vBar~⫨~vBarv~⫩~vDash~⊨~vangrt~⦜~varepsilon~ϵ~varkappa~ϰ~varnothing~∅~varphi~ϕ~varpi~ϖ~varpropto~∝~varr~↕~varrho~ϱ~varsigma~ς~varsubsetneq~⊊︀~varsubsetneqq~⫋︀~varsupsetneq~⊋︀~varsupsetneqq~⫌︀~vartheta~ϑ~vartriangleleft~⊲~vartriangleright~⊳~vcy~в~vdash~⊢~vee~∨~veebar~⊻~veeeq~≚~vellip~⋮~verbar~|~vert~|~vfr~𝔳~vltri~⊲~vnsub~⊂⃒~vnsup~⊃⃒~vopf~𝕧~vprop~∝~vrtri~⊳~vscr~𝓋~vsubnE~⫋︀~vsubne~⊊︀~vsupnE~⫌︀~vsupne~⊋︀~vzigzag~⦚~wcirc~ŵ~wedbar~⩟~wedge~∧~wedgeq~≙~wfr~𝔴~wopf~𝕨~wp~℘~wr~≀~wreath~≀~wscr~𝓌~xcap~⋂~xcirc~◯~xcup~⋃~xdtri~▽~xfr~𝔵~xhArr~⟺~xharr~⟷~xlArr~⟸~xlarr~⟵~xmap~⟼~xnis~⋻~xodot~⨀~xopf~𝕩~xoplus~⨁~xotime~⨂~xrArr~⟹~xrarr~⟶~xscr~𝓍~xsqcup~⨆~xuplus~⨄~xutri~△~xvee~⋁~xwedge~⋀~yacy~я~ycirc~ŷ~ycy~ы~yfr~𝔶~yicy~ї~yopf~𝕪~yscr~𝓎~yucy~ю~zacute~ź~zcaron~ž~zcy~з~zdot~ż~zeetrf~ℨ~zfr~𝔷~zhcy~ж~zigrarr~⇝~zopf~𝕫~zscr~𝓏~~AMP~&~COPY~©~GT~>~LT~<~QUOT~"~REG~®',s.html4);var i={0:65533,128:8364,130:8218,131:402,132:8222,133:8230,134:8224,135:8225,136:710,137:8240,138:352,139:8249,140:338,142:381,145:8216,146:8217,147:8220,148:8221,149:8226,150:8211,151:8212,152:732,153:8482,154:353,155:8250,156:339,158:382,159:376},n=String.fromCodePoint||function(t){return String.fromCharCode(Math.floor((t-65536)/1024)+55296,(t-65536)%1024+56320)},l=String.prototype.codePointAt?function(t,r){return t.codePointAt(r)}:function(t,r){return 1024*(t.charCodeAt(r)-55296)+t.charCodeAt(r+1)-56320+65536},c=function(){return c=Object.assign||function(t){for(var r,e=1,a=arguments.length;e<a;e++)for(var o in r=arguments[e])Object.prototype.hasOwnProperty.call(r,o)&&(t[o]=r[o]);return t},c.apply(this,arguments)},u=c(c({},s),{all:s.html5}),p={specialChars:/[<>'"&]/g,nonAscii:/[<>'"&\u0080-\uD7FF\uE000-\uFFFF\uDC00-\uDFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]?/g,nonAsciiPrintable:/[<>'"&\x01-\x08\x11-\x15\x17-\x1F\x7f-\uD7FF\uE000-\uFFFF\uDC00-\uDFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]?/g,nonAsciiPrintableOnly:/[\x01-\x08\x11-\x15\x17-\x1F\x7f-\uD7FF\uE000-\uFFFF\uDC00-\uDFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]?/g,extensive:/[\x01-\x0c\x0e-\x1f\x21-\x2c\x2e-\x2f\x3a-\x40\x5b-\x60\x7b-\x7d\x7f-\uD7FF\uE000-\uFFFF\uDC00-\uDFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]?/g},g={mode:"specialChars",level:"all",numeric:"decimal"};function h(t,r){var e=void 0===r?g:r,a=e.mode,o=void 0===a?"specialChars":a,s=e.numeric,i=void 0===s?"decimal":s,n=e.level;if(!t)return"";var c=p[o],h=u[void 0===n?"all":n].characters,m="hexadecimal"===i;return String.prototype.replace.call(t,c,(function(t){var r=h[t];if(!r){var e=t.length>1?l(t,0):t.charCodeAt(0);r=(m?"&#x"+e.toString(16):"&#"+e)+";"}return r}))}var m={scope:"body",level:"all"},d=/&(?:#\d+|#[xX][\da-fA-F]+|[0-9a-zA-Z]+);/g,f=/&(?:#\d+|#[xX][\da-fA-F]+|[0-9a-zA-Z]+)[;=]?/g,b={xml:{strict:d,attribute:f,body:o.xml},html4:{strict:d,attribute:f,body:o.html4},html5:{strict:d,attribute:f,body:o.html5}},y=c(c({},b),{all:b.html5}),w=String.fromCharCode,v=w(65533);class q{#t="";#r=[];#e={};#a="";constructor(t="",r="",e=[],a={}){this.name=t,this.tags=e,this.metadata=a,this.text=r}get name(){return this.#t}set name(t){if("string"!=typeof t)throw new Error("Name must be a String!");this.#t=t}get tags(){return this.#r}set tags(t){if(!Array.isArray(t))throw new Error("Tags must be an array!");this.#r=t}get metadata(){return this.#e}set metadata(t){if("object"!=typeof t)throw new Error("Metadata should be an object literal!");this.#e=t}get text(){return this.#a}set text(t){if("string"!=typeof t)throw new Error("Text should be a String!");this.#a=t}toTwee(){let t="";t+=`:: ${this.name}`,this.tags.length>0&&(t+=` [${this.tags.join(" ")}]`),Object.keys(this.metadata).length>0&&(t+=` ${JSON.stringify(this.metadata)}`);const r=this.text.split("\n");for(let t=0;t<r.length;t++)r[t].startsWith("::")&&(r[t]=`\\${r[t]}`);return t+=`\n${r.join("\n")}\n\n`,t}toJSON(){const t={name:this.name,tags:this.tags,metadata:this.metadata,text:this.text};return JSON.stringify(t)}toTwine2HTML(t=1){let r="\t<tw-passagedata";return r+=` pid="${t}"`,r+=` name="${h(this.name)}"`,r+=` tags="${h(this.#r.join(" "))}" `,Object.prototype.hasOwnProperty.call(this.#e,"position")&&(r+=` position="${this.#e.position}" `),Object.prototype.hasOwnProperty.call(this.#e,"size")&&(r+=`size="${this.#e.size}" `),r+=`>${h(this.text)}</tw-passagedata>\n`,r}toTwine1HTML(){let t="\t<div";return t+=` tiddler="${h(this.name)}"`,t+=` tags="${h(this.#r.join(" "))}" `,t+=' modifier="extwee"',Object.prototype.hasOwnProperty.call(this.#e,"position")?t+=` twine-position="${this.#e.position}"`:t+=' twine-position="10,10"',t+=`>${h(this.#a)}</div>`,t}}const x=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i,E=function(t){if(!function(t){return"string"==typeof t&&x.test(t)}(t))throw TypeError("Invalid UUID");let r;return Uint8Array.of((r=parseInt(t.slice(0,8),16))>>>24,r>>>16&255,r>>>8&255,255&r,(r=parseInt(t.slice(9,13),16))>>>8,255&r,(r=parseInt(t.slice(14,18),16))>>>8,255&r,(r=parseInt(t.slice(19,23),16))>>>8,255&r,(r=parseInt(t.slice(24,36),16))/1099511627776&255,r/4294967296&255,r>>>24&255,r>>>16&255,r>>>8&255,255&r)},D=[];for(let t=0;t<256;++t)D.push((t+256).toString(16).slice(1));function S(t,r=0){return(D[t[r+0]]+D[t[r+1]]+D[t[r+2]]+D[t[r+3]]+"-"+D[t[r+4]]+D[t[r+5]]+"-"+D[t[r+6]]+D[t[r+7]]+"-"+D[t[r+8]]+D[t[r+9]]+"-"+D[t[r+10]]+D[t[r+11]]+D[t[r+12]]+D[t[r+13]]+D[t[r+14]]+D[t[r+15]]).toLowerCase()}let A;const T=new Uint8Array(16);function L(t){return 14+(t+64>>>9<<4)+1}function O(t,r){const e=(65535&t)+(65535&r);return(t>>16)+(r>>16)+(e>>16)<<16|65535&e}function N(t,r,e,a,o,s){return O((i=O(O(r,t),O(a,s)))<<(n=o)|i>>>32-n,e);var i,n}function F(t,r,e,a,o,s,i){return N(r&e|~r&a,t,r,o,s,i)}function k(t,r,e,a,o,s,i){return N(r&a|e&~a,t,r,o,s,i)}function U(t,r,e,a,o,s,i){return N(r^e^a,t,r,o,s,i)}function C(t,r,e,a,o,s,i){return N(e^(r|~a),t,r,o,s,i)}const I=function(t){return function(t){const r=new Uint8Array(4*t.length);for(let e=0;e<4*t.length;e++)r[e]=t[e>>2]>>>e%4*8&255;return r}(function(t,r){const e=new Uint32Array(L(r)).fill(0);e.set(t),e[r>>5]|=128<<r%32,e[e.length-1]=r,t=e;let a=1732584193,o=-271733879,s=-1732584194,i=271733878;for(let r=0;r<t.length;r+=16){const e=a,n=o,l=s,c=i;a=F(a,o,s,i,t[r],7,-680876936),i=F(i,a,o,s,t[r+1],12,-389564586),s=F(s,i,a,o,t[r+2],17,606105819),o=F(o,s,i,a,t[r+3],22,-1044525330),a=F(a,o,s,i,t[r+4],7,-176418897),i=F(i,a,o,s,t[r+5],12,1200080426),s=F(s,i,a,o,t[r+6],17,-1473231341),o=F(o,s,i,a,t[r+7],22,-45705983),a=F(a,o,s,i,t[r+8],7,1770035416),i=F(i,a,o,s,t[r+9],12,-1958414417),s=F(s,i,a,o,t[r+10],17,-42063),o=F(o,s,i,a,t[r+11],22,-1990404162),a=F(a,o,s,i,t[r+12],7,1804603682),i=F(i,a,o,s,t[r+13],12,-40341101),s=F(s,i,a,o,t[r+14],17,-1502002290),o=F(o,s,i,a,t[r+15],22,1236535329),a=k(a,o,s,i,t[r+1],5,-165796510),i=k(i,a,o,s,t[r+6],9,-1069501632),s=k(s,i,a,o,t[r+11],14,643717713),o=k(o,s,i,a,t[r],20,-373897302),a=k(a,o,s,i,t[r+5],5,-701558691),i=k(i,a,o,s,t[r+10],9,38016083),s=k(s,i,a,o,t[r+15],14,-660478335),o=k(o,s,i,a,t[r+4],20,-405537848),a=k(a,o,s,i,t[r+9],5,568446438),i=k(i,a,o,s,t[r+14],9,-1019803690),s=k(s,i,a,o,t[r+3],14,-187363961),o=k(o,s,i,a,t[r+8],20,1163531501),a=k(a,o,s,i,t[r+13],5,-1444681467),i=k(i,a,o,s,t[r+2],9,-51403784),s=k(s,i,a,o,t[r+7],14,1735328473),o=k(o,s,i,a,t[r+12],20,-1926607734),a=U(a,o,s,i,t[r+5],4,-378558),i=U(i,a,o,s,t[r+8],11,-2022574463),s=U(s,i,a,o,t[r+11],16,1839030562),o=U(o,s,i,a,t[r+14],23,-35309556),a=U(a,o,s,i,t[r+1],4,-1530992060),i=U(i,a,o,s,t[r+4],11,1272893353),s=U(s,i,a,o,t[r+7],16,-155497632),o=U(o,s,i,a,t[r+10],23,-1094730640),a=U(a,o,s,i,t[r+13],4,681279174),i=U(i,a,o,s,t[r],11,-358537222),s=U(s,i,a,o,t[r+3],16,-722521979),o=U(o,s,i,a,t[r+6],23,76029189),a=U(a,o,s,i,t[r+9],4,-640364487),i=U(i,a,o,s,t[r+12],11,-421815835),s=U(s,i,a,o,t[r+15],16,530742520),o=U(o,s,i,a,t[r+2],23,-995338651),a=C(a,o,s,i,t[r],6,-198630844),i=C(i,a,o,s,t[r+7],10,1126891415),s=C(s,i,a,o,t[r+14],15,-1416354905),o=C(o,s,i,a,t[r+5],21,-57434055),a=C(a,o,s,i,t[r+12],6,1700485571),i=C(i,a,o,s,t[r+3],10,-1894986606),s=C(s,i,a,o,t[r+10],15,-1051523),o=C(o,s,i,a,t[r+1],21,-2054922799),a=C(a,o,s,i,t[r+8],6,1873313359),i=C(i,a,o,s,t[r+15],10,-30611744),s=C(s,i,a,o,t[r+6],15,-1560198380),o=C(o,s,i,a,t[r+13],21,1309151649),a=C(a,o,s,i,t[r+4],6,-145523070),i=C(i,a,o,s,t[r+11],10,-1120210379),s=C(s,i,a,o,t[r+2],15,718787259),o=C(o,s,i,a,t[r+9],21,-343485551),a=O(a,e),o=O(o,n),s=O(s,l),i=O(i,c)}return Uint32Array.of(a,o,s,i)}(function(t){if(0===t.length)return new Uint32Array;const r=new Uint32Array(L(8*t.length)).fill(0);for(let e=0;e<t.length;e++)r[e>>2]|=(255&t[e])<<e%4*8;return r}(t),8*t.length))},P="6ba7b810-9dad-11d1-80b4-00c04fd430c8",R="6ba7b811-9dad-11d1-80b4-00c04fd430c8";function V(t,r,e,a,o,s){const i="string"==typeof e?function(t){t=unescape(encodeURIComponent(t));const r=new Uint8Array(t.length);for(let e=0;e<t.length;++e)r[e]=t.charCodeAt(e);return r}(e):e,n="string"==typeof a?E(a):a;if("string"==typeof a&&(a=E(a)),16!==a?.length)throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");let l=new Uint8Array(16+i.length);if(l.set(n),l.set(i,n.length),l=r(l),l[6]=15&l[6]|t,l[8]=63&l[8]|128,o){s=s||0;for(let t=0;t<16;++t)o[s+t]=l[t];return o}return S(l)}function _(t,r,e,a){return V(48,I,t,r,e,a)}_.DNS=P,_.URL=R;const j={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};const B=function(t,r,e){return!j.randomUUID||r||t?function(t,r,e){const a=(t=t||{}).random??t.rng?.()??function(){if(!A){if("undefined"==typeof crypto||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");A=crypto.getRandomValues.bind(crypto)}return A(T)}();if(a.length<16)throw new Error("Random bytes length must be >= 16");if(a[6]=15&a[6]|64,a[8]=63&a[8]|128,r){if((e=e||0)<0||e+16>r.length)throw new RangeError(`UUID byte range ${e}:${e+15} is out of buffer bounds`);for(let t=0;t<16;++t)r[e+t]=a[t];return r}return S(a)}(t,r,e):j.randomUUID()};function z(t,r,e,a){switch(t){case 0:return r&e^~r&a;case 1:case 3:return r^e^a;case 2:return r&e^r&a^e&a}}function H(t,r){return t<<r|t>>>32-r}const M=function(t){const r=[1518500249,1859775393,2400959708,3395469782],e=[1732584193,4023233417,2562383102,271733878,3285377520],a=new Uint8Array(t.length+1);a.set(t),a[t.length]=128;const o=(t=a).length/4+2,s=Math.ceil(o/16),i=new Array(s);for(let r=0;r<s;++r){const e=new Uint32Array(16);for(let a=0;a<16;++a)e[a]=t[64*r+4*a]<<24|t[64*r+4*a+1]<<16|t[64*r+4*a+2]<<8|t[64*r+4*a+3];i[r]=e}i[s-1][14]=8*(t.length-1)/Math.pow(2,32),i[s-1][14]=Math.floor(i[s-1][14]),i[s-1][15]=8*(t.length-1)&4294967295;for(let t=0;t<s;++t){const a=new Uint32Array(80);for(let r=0;r<16;++r)a[r]=i[t][r];for(let t=16;t<80;++t)a[t]=H(a[t-3]^a[t-8]^a[t-14]^a[t-16],1);let o=e[0],s=e[1],n=e[2],l=e[3],c=e[4];for(let t=0;t<80;++t){const e=Math.floor(t/20),i=H(o,5)+z(e,s,n,l)+c+r[e]+a[t]>>>0;c=l,l=n,n=H(s,30)>>>0,s=o,o=i}e[0]=e[0]+o>>>0,e[1]=e[1]+s>>>0,e[2]=e[2]+n>>>0,e[3]=e[3]+l>>>0,e[4]=e[4]+c>>>0}return Uint8Array.of(e[0]>>24,e[0]>>16,e[0]>>8,e[0],e[1]>>24,e[1]>>16,e[1]>>8,e[1],e[2]>>24,e[2]>>16,e[2]>>8,e[2],e[3]>>24,e[3]>>16,e[3]>>8,e[3],e[4]>>24,e[4]>>16,e[4]>>8,e[4])};function G(t,r,e,a){return V(80,M,t,r,e,a)}function $(){return B().toUpperCase()}G.DNS=P,G.URL=R;class J{#t="Untitled Story";#o="";#s="";#i="";#n="";#l=1;#c=[];#u="";#p="";#e=null;#g={};#h="";#m="";constructor(t="Untitled Story"){this.name=t,this.#u="extwee",this.#p="2.3.3",this.#e={}}get name(){return this.#t}set name(t){if("string"!=typeof t)throw new Error("Story name must be a string");this.#t=t}get tagColors(){return this.#g}set tagColors(t){if(!(t instanceof Object))throw new Error("Tag colors must be an object!");this.#g=t}get IFID(){return this.#s}set IFID(t){if("string"!=typeof t)throw new Error("IFID must be a String!");this.#s=t}get start(){return this.#o}set start(t){if("string"!=typeof t)throw new Error("start (passage name) must be a String!");this.#o=t}get formatVersion(){return this.#n}set formatVersion(t){if("string"!=typeof t)throw new Error("Story format version must be a String!");this.#n=t}get metadata(){return this.#e}set metadata(t){if("object"!=typeof t)throw new Error("Story metadata must be Object!");this.#e=t}get format(){return this.#i}set format(t){if("string"!=typeof t)throw new Error("Story format must be a String!");this.#i=t}get creator(){return this.#u}set creator(t){if("string"!=typeof t)throw new Error("Creator must be String");this.#u=t}get creatorVersion(){return this.#p}set creatorVersion(t){if("string"!=typeof t)throw new Error("Creator version must be a string!");this.#p=t}get zoom(){return this.#l}set zoom(t){if("number"!=typeof t)throw new Error("Zoom level must be a Number!");this.#l=Number(Number.parseFloat(t).toFixed(2))}get passages(){return this.#c}set passages(t){if(!Array.isArray(t))throw new Error("Passages must be an Array!");if(!t.every((t=>t instanceof q)))throw new Error("Passages must be an Array of Passage objects!");this.#c=t}get storyStylesheet(){return this.#m}set storyStylesheet(t){if("string"!=typeof t)throw new Error("Story stylesheet must be a string!");this.#m=t}get storyJavaScript(){return this.#h}set storyJavaScript(t){if("string"!=typeof t)throw new Error("Story JavaScript must be a string!");this.#h=t}addPassage(t){if(!(t instanceof q))throw new Error("Can only add Passages to the story!");if(null!==this.getPassageByName(t.name))return console.warn(`Warning: A passage with the name "${t.name}" already exists!`),this.#c.length;if("StoryData"===t.name){try{const r=JSON.parse(t.text);Object.prototype.hasOwnProperty.call(r,"ifid")&&(this.IFID=r.ifid),Object.prototype.hasOwnProperty.call(r,"format")&&(this.format=r.format),Object.prototype.hasOwnProperty.call(r,"format-version")&&(this.formatVersion=r["format-version"]),Object.prototype.hasOwnProperty.call(r,"zoom")&&(this.zoom=r.zoom),Object.prototype.hasOwnProperty.call(r,"start")&&(this.start=r.start),Object.prototype.hasOwnProperty.call(r,"tag-colors")&&(this.tagColors=r["tag-colors"])}catch(t){}return this.#c.length}return"StoryTitle"===t.name?(this.name=t.text,this.#c.length):("Start"===t.name&&""==this.start&&(this.start=t.name),this.#c.push(t))}removePassageByName(t){return this.#c=this.#c.filter((r=>r.name!==t)),this.#c.length}getPassagesByTag(t){return this.#c.filter((r=>r.tags.some((r=>t===r))))}getPassageByName(t){const r=this.#c.find((r=>r.name===t));return void 0!==r?r:null}size(){return this.#c.length}toJSON(){const t={name:this.name,tagColors:this.tagColors,ifid:this.IFID,start:this.start,formatVersion:this.formatVersion,metadata:this.metadata,format:this.format,creator:this.creator,creatorVersion:this.creatorVersion,zoom:this.zoom,style:this.storyStylesheet,script:this.storyJavaScript,passages:[]};return this.passages.forEach((r=>{t.passages.push({name:r.name,tags:r.tags,metadata:r.metadata,text:r.text})})),JSON.stringify(t,null,4)}toTwee(){let t=":: StoryData\n";const r={};return null===this.IFID.match(/^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/)?(r.ifid=$(),console.warn("Warning: IFID is not in UUIDv4 format! A new IFID was generated.")):r.ifid=this.IFID,""!==this.format&&(r.format=this.format),""!==this.formatVersion&&(r["format-version"]=this.formatVersion),0!==this.zoom&&(r.zoom=this.zoom),""!==this.start&&(r.start=this.start),Object.keys(this.tagColors).length>0&&(r["tag-colors"]=this.tagColors),t+=`${JSON.stringify(r,void 0,2)}`,t+="\n\n",t+=":: StoryTitle\n"+this.name,t+="\n\n",this.#m.length>0&&(t+=":: StoryStylesheet [stylesheet]\n"+this.#m+"\n\n"),this.#h.length>0&&(t+=":: StoryJavaScript [script]\n"+this.#h+"\n\n"),this.passages.forEach((r=>{t+=r.toTwee()})),t}toTwine2HTML(){let t=this.passages,r=`<tw-storydata name="${h(this.name)}"`;""!==this.IFID?r+=` ifid="${this.IFID}"`:r+=` ifid="${$()}"`;let e=1,a=1;t.forEach((t=>{t.name===this.start&&(a=e),e++})),0===t.length&&(a=0),r+=` startnode="${a}"`,""!==this.creator&&(r+=` creator="${h(this.creator)}"`),""!==this.creatorVersion&&(r+=` creator-version="${this.creatorVersion}"`),1!==this.zoom&&(r+=` zoom="${this.zoom}"`),""!==this.format&&(r+=` format="${this.format}"`),""!==this.formatVersion&&(r+=` format-version="${this.formatVersion}"`),r+=" options hidden>\n";const o=t.filter((t=>t.tags.includes("stylesheet")));t=t.filter((t=>!t.tags.includes("stylesheet"))),o.length>0&&(r+='\t<style role="stylesheet" id="twine-user-stylesheet" type="text/twine-css">',o.forEach((t=>{r+=t.text})),r+="</style>\n"),this.#m.length>0&&(r+=`\t<style role="stylesheet" id="twine-user-stylesheet" type="text/twine-css">${this.#m}</style>\n`);const s=t.filter((t=>t.tags.includes("script")));return t=t.filter((t=>!t.tags.includes("script"))),s.length>0&&(r+='\t<script role="script" id="twine-user-script" type="text/twine-javascript">',s.forEach((t=>{r+=t.text})),r+="<\/script>\n"),this.#h.length>0&&(r+=`\t<script role="script" id="twine-user-script" type="text/twine-javascript">${this.#h}<\/script>\n`),e=1,this.passages.forEach((t=>{r+=t.toTwine2HTML(e),e++})),Object.keys(this.tagColors).forEach((t=>{r+=`\t<tw-tag name="${t}" color="${this.tagColors[t]}"></tw-tag>\n`})),r+="</tw-storydata>",r}toTwine1HTML(){let t="";return this.passages.forEach((r=>{t+=`\t${r.toTwine1HTML()}`})),t}}class Z{constructor(t){if(this.html=t,this.doc=null,"undefined"!=typeof DOMParser){const r=new DOMParser;this.doc=r.parseFromString(t,"text/html")}else this.doc=this.createSimpleDOM(t)}getElementsByTagName(t){return this.doc&&this.doc.getElementsByTagName?Array.from(this.doc.getElementsByTagName(t)):"tw-storydata"===t?this.extractStoryDataElements():"tw-passagedata"===t?this.extractPassageDataElements():"style"===t?this.extractStyleElements():[]}extractStoryDataElements(){const t=/<tw-storydata[^>]*>([\s\S]*?)<\/tw-storydata>/gi,r=[];let e;for(;null!==(e=t.exec(this.html));){const t=e[0],a=this.parseAttributes(t),o=e[1];r.push({attributes:a,innerHTML:o,rawText:o})}return r}extractPassageDataElements(){const t=/<tw-passagedata[^>]*>([\s\S]*?)<\/tw-passagedata>/gi,r=[];let e;for(;null!==(e=t.exec(this.html));){const t=e[0],a=this.parseAttributes(t),o=this.extractTextContent(e[1]);r.push({attributes:a,rawText:o})}return r}extractStyleElements(){const t=/<style[^>]*>([\s\S]*?)<\/style>/gi,r=[];let e;for(;null!==(e=t.exec(this.html));){const t=e[0],a=this.parseAttributes(t),o=e[1];r.push({attributes:a,rawText:o,innerHTML:o})}return r}parseAttributes(t){const r={},e=/(\w+(?:-\w+)*)=["']([^"']*)["']/g;let a;for(;null!==(a=e.exec(t));)r[a[1]]=a[2];return r}extractTextContent(t){return t.replace(/<[^>]*>/g,"").replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/'/g,"'").replace(/&/g,"&").trim()}createSimpleDOM(t){return{getElementsByTagName:t=>"tw-storydata"===t?this.extractStoryDataElements():"tw-passagedata"===t?this.extractPassageDataElements():"style"===t?this.extractStyleElements():[]}}}function W(t){const r=new J;if("string"!=typeof t)throw new TypeError("TypeError: Content is not a string!");let e=null;const a=new Z(t),o=a.getElementsByTagName("tw-storydata");if(0===o.length)throw new TypeError("TypeError: Not Twine 2 HTML content!");const s=o[0];if(Object.prototype.hasOwnProperty.call(s.attributes,"name")?r.name=s.attributes.name:console.warn("Warning: The name attribute is missing from tw-storydata!"),Object.prototype.hasOwnProperty.call(s.attributes,"ifid")?r.IFID=s.attributes.ifid:console.warn("Warning: The ifid attribute is missing from tw-storydata!"),null===r.IFID.match(/^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$/)&&console.warn("Warning: The IFID is not in valid UUIDv4 formatting on tw-storydata!"),Object.prototype.hasOwnProperty.call(s.attributes,"creator")&&(r.creator=s.attributes.creator),Object.prototype.hasOwnProperty.call(s.attributes,"creator-version")&&(r.creatorVersion=s.attributes["creator-version"]),Object.prototype.hasOwnProperty.call(s.attributes,"format")&&(r.format=s.attributes.format),Object.prototype.hasOwnProperty.call(s.attributes,"format-version")&&(r.formatVersion=s.attributes["format-version"]),Object.prototype.hasOwnProperty.call(s.attributes,"startnode")&&(e=s.attributes.startnode),Object.prototype.hasOwnProperty.call(s.attributes,"zoom")&&(r.zoom=Number(s.attributes.zoom)),Object.prototype.hasOwnProperty.call(s.attributes,"options")){const t=s.attributes.options;t.length>0&&t.split(",").forEach((t=>{const[e,a]=t.split(":");e&&a&&(r.metadata[e.trim()]=a.trim())}))}return Object.prototype.hasOwnProperty.call(s.attributes,"hidden")&&(r.metadata.hidden=s.attributes.hidden),a.getElementsByTagName("style").forEach((t=>{const e=t.innerHTML||t.rawText||"",a=/tw-story-tag-(.+?)\s*{\s*color:\s*(.+?)\s*}/g;let o;for(;null!==(o=a.exec(e));){const t=o[1],e=o[2];r.tagColors[t]=e}})),a.getElementsByTagName("tw-passagedata").forEach((t=>{const a=t.attributes,o=function(t){var r=m,e=r.level,a=void 0===e?"all":e,o=r.scope,s=void 0===o?"xml"===a?"strict":"body":o;if(!t)return"";var l=y[a][s],c=u[a].entities,p="attribute"===s,g="strict"===s;return t.replace(l,(function(t){return function(t,r,e,a){var o=t,s=t[t.length-1];if(e&&"="===s)o=t;else if(a&&";"!==s)o=t;else{var l=r[t];if(l)o=l;else if("&"===t[0]&&"#"===t[1]){var c=t[2],u="x"==c||"X"==c?parseInt(t.substr(3),16):parseInt(t.substr(2));o=u>=1114111?v:u>65535?n(u):w(i[u]||u)}}return o}(t,c,p,g)}))}(t.rawText);if(!Object.prototype.hasOwnProperty.call(a,"name"))return void console.warn("Warning: Cannot parse passage data without name!");const s=a.name;if(!Object.prototype.hasOwnProperty.call(a,"pid"))throw new Error("Error: Passages are required to have PID!");let l=null;Object.prototype.hasOwnProperty.call(a,"position")&&(l=a.position);let c=null;Object.prototype.hasOwnProperty.call(a,"size")&&(c=a.size);let p=[];Object.prototype.hasOwnProperty.call(a,"tags")&&a.tags.length>0&&'""'!==a.tags&&(p=a.tags.split(" ").filter((t=>""!==t)));const g={};null!==l&&(g.position=l),null!==c&&(g.size=c);const h=a.pid;e===h&&(r.start=s),r.addPassage(new q(s,o,p,g))})),r}class Y{constructor(t){if(this.html=t,this.doc=null,"undefined"!=typeof DOMParser){const r=new DOMParser;this.doc=r.parseFromString(t,"text/html")}else this.doc=this.createSimpleDOM(t)}getElementsByTagName(t){return this.doc&&this.doc.getElementsByTagName?Array.from(this.doc.getElementsByTagName(t)):"tw-storydata"===t?this.extractStoryDataElements():[]}extractStoryDataElements(){const t=/<tw-storydata[^>]*>[\s\S]*?<\/tw-storydata>/gi,r=[];let e;for(;null!==(e=t.exec(this.html));){const t=e[0];r.push({outerHTML:t,toString:()=>t})}return r}createSimpleDOM(t){return{getElementsByTagName:t=>"tw-storydata"===t?this.extractStoryDataElements(this.htmlContent):[]}}}function X(t){if("string"!=typeof t)throw new TypeError("Content is not a string!");const r=[],e=new Y(t).getElementsByTagName("tw-storydata");0===e.length&&console.warn("Warning: No Twine 2 HTML content found!");for(const t of e)r.push(W(t.outerHTML));return r}function Q(t){if(!Array.isArray(t))throw new TypeError("Stories is not array!");let r="";for(const e of t){if(!(e instanceof J))throw new TypeError("Error: story must be a Story object!");r+=e.toTwine2HTML(),r+="\n\n"}return r}return"undefined"!=typeof window&&window.Extwee&&(window.Extwee.parseTwine2ArchiveHTML=X,window.Extwee.compileTwine2ArchiveHTML=Q),r})()));
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
!function(e,r){"object"==typeof exports&&"object"==typeof module?module.exports=r():"function"==typeof define&&define.amd?define([],r):"object"==typeof exports?exports.Extwee=r():e.Extwee=r()}(this,(()=>(()=>{var e={117:function(e,r){!function(e){"use strict";class r{constructor(e){this._utf8Decoder=new TextDecoder("utf-8"),this._asciiDecoder=new TextDecoder("ascii"),this._buffer=e,this._dataView=new DataView(e.buffer,e.byteOffset,e.byteLength),this._position=0}get length(){return this._buffer.byteLength}get position(){return this._position}byte(){const e=this._position;return this.skip(1),this._dataView.getUint8(e)}bytes(e){const r=this._position;return this.skip(e),this._buffer.subarray(r,this._position)}uint16(){const e=this.position;return this.skip(2),this._dataView.getUint16(e,!0)}int32(){const e=this.position;return this.skip(4),this._dataView.getInt32(e,!0)}uint32(){const e=this.position;return this.skip(4),this._dataView.getUint32(e,!0)}uint64(){const e=this.position;this.skip(8);const r=this._dataView.getUint32(e,!0)+2**32*this._dataView.getUint32(e+4,!0);return Number.isSafeInteger(r)||console.warn(r,"exceeds MAX_SAFE_INTEGER. Precision may be lost"),r}float64(){const e=this.position;return this.skip(8),this._dataView.getFloat64(e,!1)}skip(e){if(this._position+=e,this._position>this._buffer.length)throw new Error("Expected "+(this._position-this._buffer.length)+" more bytes. The file might be corrupted. Unexpected end of file.")}string(e,r){const t=this.bytes(e);return"utf-8"==r?this._utf8Decoder.decode(t):this._asciiDecoder.decode(t)}line(){const e=this._buffer.indexOf(10,this._position);if(-1==e)throw new Error("Could not find end of line.");const r=e-this._position,t=this.string(r,"ascii");return this.skip(1),t}hasNext(){return this.position<this.length}}function t(e){if(e.length>8)throw new Error("Value too large to unpickling");const t=new ArrayBuffer(8),s=new Uint8Array(t);return s.set(e),new r(s).uint64()}function s(e){let r=0,t=0;for(;r<e.length;)r+=4,t+=1;const s=new ArrayBuffer(r);new Uint8Array(s).set(e);const a=new DataView(s,0,r);let o=BigInt(0);for(let e=0;e<t;e++)o|=BigInt(a.getUint32(4*e,!0))<<BigInt(32*e);return o}const a={create:()=>[],createWithItems:e=>Array.from(e),addMethod:function(e,r){e.push(r)}},o={create:()=>new Set,createWithItems:e=>new Set(e),addMethod:function(e,r){e.add(r)}},i={create:()=>({}),setMethod:function(e,r,t){e[r]=t}},n={create:()=>new Map,setMethod:function(e,r,t){e.set(r,t)}};function c(e,r){const t=function(...t){if(!new.target){const s=function(...e){Object.defineProperty(this,"args",{value:e,enumerable:!1,configurable:!1,writable:!1})};return s.prototype.__module__=e,s.prototype.__name__=r,Reflect.construct(s,t)}Object.defineProperty(this,"args",{value:t,enumerable:!1,configurable:!1,writable:!1})};return t.prototype.__module__=e,t.prototype.__name__=r,t.prototype.__setnewargs_ex__=function(...e){Object.defineProperty(this,"kwargs",{value:e,enumerable:!1,configurable:!1,writable:!1})},t}const l={nameResolver:{resolve:(e,r)=>c(e,r)},persistentResolver:{resolve:e=>{throw new Error(`Unregistered persistent id: \`${e}\`.`)}},extensionResolver:{resolve:e=>{throw new Error(`Unregistered extension code: \`${e.toString(16)}\`.`)}},unpicklingTypeOfSet:"array",unpicklingTypeOfDictionary:"object"};class u{constructor(){this._registry=new Map}register(e,r,t){const s=u.getFullyQualifiedName(e,r);if(this._registry.has(s))throw new Error(`'${s}' is already registered.`);return this._registry.set(s,t),this}resolve(e,r){const t=u.getFullyQualifiedName(e,r);return this._registry.get(t)??this.onMissingName(e,r)}onMissingName(e,r){return c(e,r)}static getFullyQualifiedName(e,r){return e+"."+r}}e.BufferReader=r,e.NameRegistry=u,e.Parser=class{constructor(e){this._options={...l,...e},this._nameResolver=this._options.nameResolver,this._persistentResolver=this._options.persistentResolver,this._extensionResolver=this._options.extensionResolver,this._setProvider=(e=>{switch(e){case"Set":return o;case"array":return a;default:throw new Error(`Unknown unpickling type [${e}] of Set.`)}})(this._options.unpicklingTypeOfSet),this._dictionaryProvider=(e=>{switch(e){case"Map":return n;case"object":return i;default:throw new Error(`Unknown unpickling type [${e}] of Dictionary.`)}})(this._options.unpicklingTypeOfDictionary),this._buffers=e?.buffers}parse(e){const t=new r(e);return this.read(t)}read(e){let r=[];const a=[],o=new Map;for(;e.hasNext();){const i=e.byte();switch(i){case 128:{const r=e.byte();if(r>5)throw new Error(`Unsupported protocol version '${r}'.`);break}case 46:return r.pop();case 149:e.skip(8);break;case 40:a.push(r),r=[];break;case 49:r=a.pop();break;case 48:r.pop();break;case 50:r.push(r[r.length-1]);break;case 112:{const t=parseInt(e.line(),10);o.set(t,r[r.length-1]);break}case 113:o.set(e.byte(),r[r.length-1]);break;case 114:o.set(e.uint32(),r[r.length-1]);break;case 148:o.set(o.size,r[r.length-1]);break;case 103:{const t=parseInt(e.line(),10);r.push(o.get(t));break}case 104:r.push(o.get(e.byte()));break;case 106:r.push(o.get(e.uint32()));break;case 78:r.push(null);break;case 136:r.push(!0);break;case 137:r.push(!1);break;case 73:{const t=e.line();"01"==t?r.push(!0):"00"==t?r.push(!1):r.push(parseInt(t,10));break}case 76:r.push(parseInt(e.line(),10));break;case 70:r.push(parseFloat(e.line()));break;case 83:{const t=e.line();if(t.length>=2&&t[0]==t.slice(-1)&&['"',"'"].includes(t[0])){r.push(t.slice(1,-1));break}throw new Error("Insecure string pickle.")}case 86:r.push(e.line());break;case 74:r.push(e.int32());break;case 75:r.push(e.byte());break;case 77:r.push(e.uint16());break;case 138:{const s=e.byte(),a=t(e.bytes(s));r.push(a);break}case 139:{const t=e.uint32(),a=s(e.bytes(t));r.push(a);break}case 71:r.push(e.float64());break;case 66:r.push(e.bytes(e.int32()));break;case 67:r.push(e.bytes(e.byte()));break;case 142:case 150:r.push(e.bytes(e.uint64()));break;case 84:r.push(e.string(e.uint32(),"ascii"));break;case 85:r.push(e.string(e.byte(),"ascii"));break;case 88:r.push(e.string(e.uint32(),"utf-8"));break;case 140:r.push(e.string(e.byte(),"utf-8"));break;case 141:r.push(e.string(e.uint64(),"utf-8"));break;case 41:case 93:r.push([]);break;case 116:{const e=r;r=a.pop(),r.push(e);break}case 133:r.push([r.pop()]);break;case 134:{const e=r.pop(),t=r.pop();r.push([t,e]);break}case 135:{const e=r.pop(),t=r.pop(),s=r.pop();r.push([s,t,e]);break}case 108:{const e=r;r=a.pop(),r.push(e);break}case 97:{const e=r.pop();r[r.length-1].push(e);break}case 101:{const e=r;r=a.pop(),r[r.length-1].push(...e);break}case 125:{const e=this._dictionaryProvider.create();r.push(e);break}case 100:{const e=r;r=a.pop();const t=this._dictionaryProvider.create();for(let r=0;r<e.length;r+=2)t[e[r]]=e[r+1];r.push(t);break}case 115:{const e=r.pop(),t=r.pop(),s=r[r.length-1];this._dictionaryProvider.setMethod(s,t,e);break}case 117:{const e=r;r=a.pop();const t=r[r.length-1];for(let r=0;r<e.length;r+=2)this._dictionaryProvider.setMethod(t,e[r],e[r+1]);break}case 143:{const e=this._setProvider.create();r.push(e);break}case 145:{const e=r;r=a.pop();const t=this._setProvider.createWithItems(e);r.push(t);break}case 144:{const e=r;r=a.pop();const t=r[r.length-1];for(let r=0;r<e.length;r++)this._setProvider.addMethod(t,e[r]);break}case 130:{const t=e.byte(),s=this._extensionResolver.resolve(t);r.push(s);break}case 131:{const t=e.uint16(),s=this._extensionResolver.resolve(t);r.push(s);break}case 132:{const t=e.uint32(),s=this._extensionResolver.resolve(t);r.push(s);break}case 99:{const t=e.line(),s=e.line(),a=this._nameResolver.resolve(t,s);r.push(a);break}case 147:{const e=r.pop(),t=r.pop(),s=this._nameResolver.resolve(t,e);r.push(s);break}case 105:{const t=e.line(),s=e.line(),o=r;r=a.pop();const i=this._nameResolver.resolve(t,s),n=Reflect.construct(i,o);r.push(n);break}case 111:{const e=r,t=e.pop();r=a.pop();const s=Reflect.construct(t,e);r.push(s);break}case 129:{const e=r.pop(),t=r.pop(),s=Reflect.construct(t,e);r.push(s);break}case 146:{const e=r.pop(),t=r.pop(),s=r.pop(),a=Reflect.construct(s,t);a.__setnewargs_ex__&&a.__setnewargs_ex__(e),r.push(a);break}case 80:{const t=e.line(),s=this._persistentResolver.resolve(t);r.push(s);break}case 81:{const e=r.pop(),t=this._persistentResolver.resolve(e);r.push(t);break}case 82:{const e=r.pop(),t=r.pop();r.push(t(...e));break}case 98:{const e=r.pop(),t=r[r.length-1];if(t.__setstate__){t.__setstate__(e);break}if(t instanceof Map){if(e instanceof Map&&e.has("__dict__")){for(const[r,s]of e.get("__dict__"))t.set(r,s);break}if(e.__dict__){for(const r in e.__dict__)t.set(r,e.__dict__[r]);break}}else e instanceof Map?Object.assign(t,Object.fromEntries(e)):Object.assign(t,e);break}case 151:{if(null==this._buffers)throw new Error("pickle stream refers to out-of-band data but no *buffers* argument was given");const e=this._buffers.next();if(e.done)throw new Error("not enough out-of-band buffers");r.push(e.value);break}case 152:r.push(r.pop());break;default:throw new Error(`Unsupported opcode '${i}'.`)}}throw new Error("Unexpected end of file.")}}}(r)}},r={};function t(s){var a=r[s];if(void 0!==a)return a.exports;var o=r[s]={exports:{}};return e[s].call(o.exports,o,o.exports,t),o.exports}t.d=(e,r)=>{for(var s in r)t.o(r,s)&&!t.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:r[s]})},t.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),t.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var s={};return(()=>{"use strict";t.r(s),t.d(s,{parse:()=>H});var e=function(){return e=Object.assign||function(e){for(var r,t=1,s=arguments.length;t<s;t++)for(var a in r=arguments[t])Object.prototype.hasOwnProperty.call(r,a)&&(e[a]=r[a]);return e},e.apply(this,arguments)};function r(r,t){for(var s={},a={},o=r.split("~~"),i=!1,n=0;o.length>n;n++){for(var c=o[n].split("~"),l=0;l<c.length;l+=2){var u=c[l],p=c[l+1],h="&"+u+";";s[h]=p,i&&(s["&"+u]=p),a[p]=h}i=!0}return t?{entities:e(e({},s),t.entities),characters:e(e({},a),t.characters)}:{entities:s,characters:a}}var a={xml:/&(?:#\d+|#[xX][\da-fA-F]+|[0-9a-zA-Z]+);?/g,html4:/∉|&(?:nbsp|iexcl|cent|pound|curren|yen|brvbar|sect|uml|copy|ordf|laquo|not|shy|reg|macr|deg|plusmn|sup2|sup3|acute|micro|para|middot|cedil|sup1|ordm|raquo|frac14|frac12|frac34|iquest|Agrave|Aacute|Acirc|Atilde|Auml|Aring|AElig|Ccedil|Egrave|Eacute|Ecirc|Euml|Igrave|Iacute|Icirc|Iuml|ETH|Ntilde|Ograve|Oacute|Ocirc|Otilde|Ouml|times|Oslash|Ugrave|Uacute|Ucirc|Uuml|Yacute|THORN|szlig|agrave|aacute|acirc|atilde|auml|aring|aelig|ccedil|egrave|eacute|ecirc|euml|igrave|iacute|icirc|iuml|eth|ntilde|ograve|oacute|ocirc|otilde|ouml|divide|oslash|ugrave|uacute|ucirc|uuml|yacute|thorn|yuml|quot|amp|lt|gt|#\d+|#[xX][\da-fA-F]+|[0-9a-zA-Z]+);?/g,html5:/·|℗|⋇|⪧|⩺|⋗|⦕|⩼|⪆|⥸|⋗|⋛|⪌|≷|≳|⪦|⩹|⋖|⋋|⋉|⥶|⩻|⦖|◃|⊴|◂|∉|⋹̸|⋵̸|∉|⋷|⋶|∌|∌|⋾|⋽|∥|⊠|⨱|⨰|&(?:AElig|AMP|Aacute|Acirc|Agrave|Aring|Atilde|Auml|COPY|Ccedil|ETH|Eacute|Ecirc|Egrave|Euml|GT|Iacute|Icirc|Igrave|Iuml|LT|Ntilde|Oacute|Ocirc|Ograve|Oslash|Otilde|Ouml|QUOT|REG|THORN|Uacute|Ucirc|Ugrave|Uuml|Yacute|aacute|acirc|acute|aelig|agrave|amp|aring|atilde|auml|brvbar|ccedil|cedil|cent|copy|curren|deg|divide|eacute|ecirc|egrave|eth|euml|frac12|frac14|frac34|gt|iacute|icirc|iexcl|igrave|iquest|iuml|laquo|lt|macr|micro|middot|nbsp|not|ntilde|oacute|ocirc|ograve|ordf|ordm|oslash|otilde|ouml|para|plusmn|pound|quot|raquo|reg|sect|shy|sup1|sup2|sup3|szlig|thorn|times|uacute|ucirc|ugrave|uml|uuml|yacute|yen|yuml|#\d+|#[xX][\da-fA-F]+|[0-9a-zA-Z]+);?/g},o={};o.xml=r("lt~<~gt~>~quot~\"~apos~'~amp~&"),o.html4=r("apos~'~OElig~Œ~oelig~œ~Scaron~Š~scaron~š~Yuml~Ÿ~circ~ˆ~tilde~˜~ensp~ ~emsp~ ~thinsp~ ~zwnj~~zwj~~lrm~~rlm~~ndash~–~mdash~—~lsquo~‘~rsquo~’~sbquo~‚~ldquo~“~rdquo~”~bdquo~„~dagger~†~Dagger~‡~permil~‰~lsaquo~‹~rsaquo~›~euro~€~fnof~ƒ~Alpha~Α~Beta~Β~Gamma~Γ~Delta~Δ~Epsilon~Ε~Zeta~Ζ~Eta~Η~Theta~Θ~Iota~Ι~Kappa~Κ~Lambda~Λ~Mu~Μ~Nu~Ν~Xi~Ξ~Omicron~Ο~Pi~Π~Rho~Ρ~Sigma~Σ~Tau~Τ~Upsilon~Υ~Phi~Φ~Chi~Χ~Psi~Ψ~Omega~Ω~alpha~α~beta~β~gamma~γ~delta~δ~epsilon~ε~zeta~ζ~eta~η~theta~θ~iota~ι~kappa~κ~lambda~λ~mu~μ~nu~ν~xi~ξ~omicron~ο~pi~π~rho~ρ~sigmaf~ς~sigma~σ~tau~τ~upsilon~υ~phi~φ~chi~χ~psi~ψ~omega~ω~thetasym~ϑ~upsih~ϒ~piv~ϖ~bull~•~hellip~…~prime~′~Prime~″~oline~‾~frasl~⁄~weierp~℘~image~ℑ~real~ℜ~trade~™~alefsym~ℵ~larr~←~uarr~↑~rarr~→~darr~↓~harr~↔~crarr~↵~lArr~⇐~uArr~⇑~rArr~⇒~dArr~⇓~hArr~⇔~forall~∀~part~∂~exist~∃~empty~∅~nabla~∇~isin~∈~notin~∉~ni~∋~prod~∏~sum~∑~minus~−~lowast~∗~radic~√~prop~∝~infin~∞~ang~∠~and~∧~or~∨~cap~∩~cup~∪~int~∫~there4~∴~sim~∼~cong~≅~asymp~≈~ne~≠~equiv~≡~le~≤~ge~≥~sub~⊂~sup~⊃~nsub~⊄~sube~⊆~supe~⊇~oplus~⊕~otimes~⊗~perp~⊥~sdot~⋅~lceil~⌈~rceil~⌉~lfloor~⌊~rfloor~⌋~lang~〈~rang~〉~loz~◊~spades~♠~clubs~♣~hearts~♥~diams~♦~~nbsp~ ~iexcl~¡~cent~¢~pound~£~curren~¤~yen~¥~brvbar~¦~sect~§~uml~¨~copy~©~ordf~ª~laquo~«~not~¬~shy~~reg~®~macr~¯~deg~°~plusmn~±~sup2~²~sup3~³~acute~´~micro~µ~para~¶~middot~·~cedil~¸~sup1~¹~ordm~º~raquo~»~frac14~¼~frac12~½~frac34~¾~iquest~¿~Agrave~À~Aacute~Á~Acirc~Â~Atilde~Ã~Auml~Ä~Aring~Å~AElig~Æ~Ccedil~Ç~Egrave~È~Eacute~É~Ecirc~Ê~Euml~Ë~Igrave~Ì~Iacute~Í~Icirc~Î~Iuml~Ï~ETH~Ð~Ntilde~Ñ~Ograve~Ò~Oacute~Ó~Ocirc~Ô~Otilde~Õ~Ouml~Ö~times~×~Oslash~Ø~Ugrave~Ù~Uacute~Ú~Ucirc~Û~Uuml~Ü~Yacute~Ý~THORN~Þ~szlig~ß~agrave~à~aacute~á~acirc~â~atilde~ã~auml~ä~aring~å~aelig~æ~ccedil~ç~egrave~è~eacute~é~ecirc~ê~euml~ë~igrave~ì~iacute~í~icirc~î~iuml~ï~eth~ð~ntilde~ñ~ograve~ò~oacute~ó~ocirc~ô~otilde~õ~ouml~ö~divide~÷~oslash~ø~ugrave~ù~uacute~ú~ucirc~û~uuml~ü~yacute~ý~thorn~þ~yuml~ÿ~quot~\"~amp~&~lt~<~gt~>"),o.html5=r('Abreve~Ă~Acy~А~Afr~𝔄~Amacr~Ā~And~⩓~Aogon~Ą~Aopf~𝔸~ApplyFunction~~Ascr~𝒜~Assign~≔~Backslash~∖~Barv~⫧~Barwed~⌆~Bcy~Б~Because~∵~Bernoullis~ℬ~Bfr~𝔅~Bopf~𝔹~Breve~˘~Bscr~ℬ~Bumpeq~≎~CHcy~Ч~Cacute~Ć~Cap~⋒~CapitalDifferentialD~ⅅ~Cayleys~ℭ~Ccaron~Č~Ccirc~Ĉ~Cconint~∰~Cdot~Ċ~Cedilla~¸~CenterDot~·~Cfr~ℭ~CircleDot~⊙~CircleMinus~⊖~CirclePlus~⊕~CircleTimes~⊗~ClockwiseContourIntegral~∲~CloseCurlyDoubleQuote~”~CloseCurlyQuote~’~Colon~∷~Colone~⩴~Congruent~≡~Conint~∯~ContourIntegral~∮~Copf~ℂ~Coproduct~∐~CounterClockwiseContourIntegral~∳~Cross~⨯~Cscr~𝒞~Cup~⋓~CupCap~≍~DD~ⅅ~DDotrahd~⤑~DJcy~Ђ~DScy~Ѕ~DZcy~Џ~Darr~↡~Dashv~⫤~Dcaron~Ď~Dcy~Д~Del~∇~Dfr~𝔇~DiacriticalAcute~´~DiacriticalDot~˙~DiacriticalDoubleAcute~˝~DiacriticalGrave~`~DiacriticalTilde~˜~Diamond~⋄~DifferentialD~ⅆ~Dopf~𝔻~Dot~¨~DotDot~⃜~DotEqual~≐~DoubleContourIntegral~∯~DoubleDot~¨~DoubleDownArrow~⇓~DoubleLeftArrow~⇐~DoubleLeftRightArrow~⇔~DoubleLeftTee~⫤~DoubleLongLeftArrow~⟸~DoubleLongLeftRightArrow~⟺~DoubleLongRightArrow~⟹~DoubleRightArrow~⇒~DoubleRightTee~⊨~DoubleUpArrow~⇑~DoubleUpDownArrow~⇕~DoubleVerticalBar~∥~DownArrow~↓~DownArrowBar~⤓~DownArrowUpArrow~⇵~DownBreve~̑~DownLeftRightVector~⥐~DownLeftTeeVector~⥞~DownLeftVector~↽~DownLeftVectorBar~⥖~DownRightTeeVector~⥟~DownRightVector~⇁~DownRightVectorBar~⥗~DownTee~⊤~DownTeeArrow~↧~Downarrow~⇓~Dscr~𝒟~Dstrok~Đ~ENG~Ŋ~Ecaron~Ě~Ecy~Э~Edot~Ė~Efr~𝔈~Element~∈~Emacr~Ē~EmptySmallSquare~◻~EmptyVerySmallSquare~▫~Eogon~Ę~Eopf~𝔼~Equal~⩵~EqualTilde~≂~Equilibrium~⇌~Escr~ℰ~Esim~⩳~Exists~∃~ExponentialE~ⅇ~Fcy~Ф~Ffr~𝔉~FilledSmallSquare~◼~FilledVerySmallSquare~▪~Fopf~𝔽~ForAll~∀~Fouriertrf~ℱ~Fscr~ℱ~GJcy~Ѓ~Gammad~Ϝ~Gbreve~Ğ~Gcedil~Ģ~Gcirc~Ĝ~Gcy~Г~Gdot~Ġ~Gfr~𝔊~Gg~⋙~Gopf~𝔾~GreaterEqual~≥~GreaterEqualLess~⋛~GreaterFullEqual~≧~GreaterGreater~⪢~GreaterLess~≷~GreaterSlantEqual~⩾~GreaterTilde~≳~Gscr~𝒢~Gt~≫~HARDcy~Ъ~Hacek~ˇ~Hat~^~Hcirc~Ĥ~Hfr~ℌ~HilbertSpace~ℋ~Hopf~ℍ~HorizontalLine~─~Hscr~ℋ~Hstrok~Ħ~HumpDownHump~≎~HumpEqual~≏~IEcy~Е~IJlig~IJ~IOcy~Ё~Icy~И~Idot~İ~Ifr~ℑ~Im~ℑ~Imacr~Ī~ImaginaryI~ⅈ~Implies~⇒~Int~∬~Integral~∫~Intersection~⋂~InvisibleComma~~InvisibleTimes~~Iogon~Į~Iopf~𝕀~Iscr~ℐ~Itilde~Ĩ~Iukcy~І~Jcirc~Ĵ~Jcy~Й~Jfr~𝔍~Jopf~𝕁~Jscr~𝒥~Jsercy~Ј~Jukcy~Є~KHcy~Х~KJcy~Ќ~Kcedil~Ķ~Kcy~К~Kfr~𝔎~Kopf~𝕂~Kscr~𝒦~LJcy~Љ~Lacute~Ĺ~Lang~⟪~Laplacetrf~ℒ~Larr~↞~Lcaron~Ľ~Lcedil~Ļ~Lcy~Л~LeftAngleBracket~⟨~LeftArrow~←~LeftArrowBar~⇤~LeftArrowRightArrow~⇆~LeftCeiling~⌈~LeftDoubleBracket~⟦~LeftDownTeeVector~⥡~LeftDownVector~⇃~LeftDownVectorBar~⥙~LeftFloor~⌊~LeftRightArrow~↔~LeftRightVector~⥎~LeftTee~⊣~LeftTeeArrow~↤~LeftTeeVector~⥚~LeftTriangle~⊲~LeftTriangleBar~⧏~LeftTriangleEqual~⊴~LeftUpDownVector~⥑~LeftUpTeeVector~⥠~LeftUpVector~↿~LeftUpVectorBar~⥘~LeftVector~↼~LeftVectorBar~⥒~Leftarrow~⇐~Leftrightarrow~⇔~LessEqualGreater~⋚~LessFullEqual~≦~LessGreater~≶~LessLess~⪡~LessSlantEqual~⩽~LessTilde~≲~Lfr~𝔏~Ll~⋘~Lleftarrow~⇚~Lmidot~Ŀ~LongLeftArrow~⟵~LongLeftRightArrow~⟷~LongRightArrow~⟶~Longleftarrow~⟸~Longleftrightarrow~⟺~Longrightarrow~⟹~Lopf~𝕃~LowerLeftArrow~↙~LowerRightArrow~↘~Lscr~ℒ~Lsh~↰~Lstrok~Ł~Lt~≪~Map~⤅~Mcy~М~MediumSpace~ ~Mellintrf~ℳ~Mfr~𝔐~MinusPlus~∓~Mopf~𝕄~Mscr~ℳ~NJcy~Њ~Nacute~Ń~Ncaron~Ň~Ncedil~Ņ~Ncy~Н~NegativeMediumSpace~~NegativeThickSpace~~NegativeThinSpace~~NegativeVeryThinSpace~~NestedGreaterGreater~≫~NestedLessLess~≪~NewLine~\n~Nfr~𝔑~NoBreak~~NonBreakingSpace~ ~Nopf~ℕ~Not~⫬~NotCongruent~≢~NotCupCap~≭~NotDoubleVerticalBar~∦~NotElement~∉~NotEqual~≠~NotEqualTilde~≂̸~NotExists~∄~NotGreater~≯~NotGreaterEqual~≱~NotGreaterFullEqual~≧̸~NotGreaterGreater~≫̸~NotGreaterLess~≹~NotGreaterSlantEqual~⩾̸~NotGreaterTilde~≵~NotHumpDownHump~≎̸~NotHumpEqual~≏̸~NotLeftTriangle~⋪~NotLeftTriangleBar~⧏̸~NotLeftTriangleEqual~⋬~NotLess~≮~NotLessEqual~≰~NotLessGreater~≸~NotLessLess~≪̸~NotLessSlantEqual~⩽̸~NotLessTilde~≴~NotNestedGreaterGreater~⪢̸~NotNestedLessLess~⪡̸~NotPrecedes~⊀~NotPrecedesEqual~⪯̸~NotPrecedesSlantEqual~⋠~NotReverseElement~∌~NotRightTriangle~⋫~NotRightTriangleBar~⧐̸~NotRightTriangleEqual~⋭~NotSquareSubset~⊏̸~NotSquareSubsetEqual~⋢~NotSquareSuperset~⊐̸~NotSquareSupersetEqual~⋣~NotSubset~⊂⃒~NotSubsetEqual~⊈~NotSucceeds~⊁~NotSucceedsEqual~⪰̸~NotSucceedsSlantEqual~⋡~NotSucceedsTilde~≿̸~NotSuperset~⊃⃒~NotSupersetEqual~⊉~NotTilde~≁~NotTildeEqual~≄~NotTildeFullEqual~≇~NotTildeTilde~≉~NotVerticalBar~∤~Nscr~𝒩~Ocy~О~Odblac~Ő~Ofr~𝔒~Omacr~Ō~Oopf~𝕆~OpenCurlyDoubleQuote~“~OpenCurlyQuote~‘~Or~⩔~Oscr~𝒪~Otimes~⨷~OverBar~‾~OverBrace~⏞~OverBracket~⎴~OverParenthesis~⏜~PartialD~∂~Pcy~П~Pfr~𝔓~PlusMinus~±~Poincareplane~ℌ~Popf~ℙ~Pr~⪻~Precedes~≺~PrecedesEqual~⪯~PrecedesSlantEqual~≼~PrecedesTilde~≾~Product~∏~Proportion~∷~Proportional~∝~Pscr~𝒫~Qfr~𝔔~Qopf~ℚ~Qscr~𝒬~RBarr~⤐~Racute~Ŕ~Rang~⟫~Rarr~↠~Rarrtl~⤖~Rcaron~Ř~Rcedil~Ŗ~Rcy~Р~Re~ℜ~ReverseElement~∋~ReverseEquilibrium~⇋~ReverseUpEquilibrium~⥯~Rfr~ℜ~RightAngleBracket~⟩~RightArrow~→~RightArrowBar~⇥~RightArrowLeftArrow~⇄~RightCeiling~⌉~RightDoubleBracket~⟧~RightDownTeeVector~⥝~RightDownVector~⇂~RightDownVectorBar~⥕~RightFloor~⌋~RightTee~⊢~RightTeeArrow~↦~RightTeeVector~⥛~RightTriangle~⊳~RightTriangleBar~⧐~RightTriangleEqual~⊵~RightUpDownVector~⥏~RightUpTeeVector~⥜~RightUpVector~↾~RightUpVectorBar~⥔~RightVector~⇀~RightVectorBar~⥓~Rightarrow~⇒~Ropf~ℝ~RoundImplies~⥰~Rrightarrow~⇛~Rscr~ℛ~Rsh~↱~RuleDelayed~⧴~SHCHcy~Щ~SHcy~Ш~SOFTcy~Ь~Sacute~Ś~Sc~⪼~Scedil~Ş~Scirc~Ŝ~Scy~С~Sfr~𝔖~ShortDownArrow~↓~ShortLeftArrow~←~ShortRightArrow~→~ShortUpArrow~↑~SmallCircle~∘~Sopf~𝕊~Sqrt~√~Square~□~SquareIntersection~⊓~SquareSubset~⊏~SquareSubsetEqual~⊑~SquareSuperset~⊐~SquareSupersetEqual~⊒~SquareUnion~⊔~Sscr~𝒮~Star~⋆~Sub~⋐~Subset~⋐~SubsetEqual~⊆~Succeeds~≻~SucceedsEqual~⪰~SucceedsSlantEqual~≽~SucceedsTilde~≿~SuchThat~∋~Sum~∑~Sup~⋑~Superset~⊃~SupersetEqual~⊇~Supset~⋑~TRADE~™~TSHcy~Ћ~TScy~Ц~Tab~\t~Tcaron~Ť~Tcedil~Ţ~Tcy~Т~Tfr~𝔗~Therefore~∴~ThickSpace~ ~ThinSpace~ ~Tilde~∼~TildeEqual~≃~TildeFullEqual~≅~TildeTilde~≈~Topf~𝕋~TripleDot~⃛~Tscr~𝒯~Tstrok~Ŧ~Uarr~↟~Uarrocir~⥉~Ubrcy~Ў~Ubreve~Ŭ~Ucy~У~Udblac~Ű~Ufr~𝔘~Umacr~Ū~UnderBar~_~UnderBrace~⏟~UnderBracket~⎵~UnderParenthesis~⏝~Union~⋃~UnionPlus~⊎~Uogon~Ų~Uopf~𝕌~UpArrow~↑~UpArrowBar~⤒~UpArrowDownArrow~⇅~UpDownArrow~↕~UpEquilibrium~⥮~UpTee~⊥~UpTeeArrow~↥~Uparrow~⇑~Updownarrow~⇕~UpperLeftArrow~↖~UpperRightArrow~↗~Upsi~ϒ~Uring~Ů~Uscr~𝒰~Utilde~Ũ~VDash~⊫~Vbar~⫫~Vcy~В~Vdash~⊩~Vdashl~⫦~Vee~⋁~Verbar~‖~Vert~‖~VerticalBar~∣~VerticalLine~|~VerticalSeparator~❘~VerticalTilde~≀~VeryThinSpace~ ~Vfr~𝔙~Vopf~𝕍~Vscr~𝒱~Vvdash~⊪~Wcirc~Ŵ~Wedge~⋀~Wfr~𝔚~Wopf~𝕎~Wscr~𝒲~Xfr~𝔛~Xopf~𝕏~Xscr~𝒳~YAcy~Я~YIcy~Ї~YUcy~Ю~Ycirc~Ŷ~Ycy~Ы~Yfr~𝔜~Yopf~𝕐~Yscr~𝒴~ZHcy~Ж~Zacute~Ź~Zcaron~Ž~Zcy~З~Zdot~Ż~ZeroWidthSpace~~Zfr~ℨ~Zopf~ℤ~Zscr~𝒵~abreve~ă~ac~∾~acE~∾̳~acd~∿~acy~а~af~~afr~𝔞~aleph~ℵ~amacr~ā~amalg~⨿~andand~⩕~andd~⩜~andslope~⩘~andv~⩚~ange~⦤~angle~∠~angmsd~∡~angmsdaa~⦨~angmsdab~⦩~angmsdac~⦪~angmsdad~⦫~angmsdae~⦬~angmsdaf~⦭~angmsdag~⦮~angmsdah~⦯~angrt~∟~angrtvb~⊾~angrtvbd~⦝~angsph~∢~angst~Å~angzarr~⍼~aogon~ą~aopf~𝕒~ap~≈~apE~⩰~apacir~⩯~ape~≊~apid~≋~approx~≈~approxeq~≊~ascr~𝒶~ast~*~asympeq~≍~awconint~∳~awint~⨑~bNot~⫭~backcong~≌~backepsilon~϶~backprime~‵~backsim~∽~backsimeq~⋍~barvee~⊽~barwed~⌅~barwedge~⌅~bbrk~⎵~bbrktbrk~⎶~bcong~≌~bcy~б~becaus~∵~because~∵~bemptyv~⦰~bepsi~϶~bernou~ℬ~beth~ℶ~between~≬~bfr~𝔟~bigcap~⋂~bigcirc~◯~bigcup~⋃~bigodot~⨀~bigoplus~⨁~bigotimes~⨂~bigsqcup~⨆~bigstar~★~bigtriangledown~▽~bigtriangleup~△~biguplus~⨄~bigvee~⋁~bigwedge~⋀~bkarow~⤍~blacklozenge~⧫~blacksquare~▪~blacktriangle~▴~blacktriangledown~▾~blacktriangleleft~◂~blacktriangleright~▸~blank~␣~blk12~▒~blk14~░~blk34~▓~block~█~bne~=⃥~bnequiv~≡⃥~bnot~⌐~bopf~𝕓~bot~⊥~bottom~⊥~bowtie~⋈~boxDL~╗~boxDR~╔~boxDl~╖~boxDr~╓~boxH~═~boxHD~╦~boxHU~╩~boxHd~╤~boxHu~╧~boxUL~╝~boxUR~╚~boxUl~╜~boxUr~╙~boxV~║~boxVH~╬~boxVL~╣~boxVR~╠~boxVh~╫~boxVl~╢~boxVr~╟~boxbox~⧉~boxdL~╕~boxdR~╒~boxdl~┐~boxdr~┌~boxh~─~boxhD~╥~boxhU~╨~boxhd~┬~boxhu~┴~boxminus~⊟~boxplus~⊞~boxtimes~⊠~boxuL~╛~boxuR~╘~boxul~┘~boxur~└~boxv~│~boxvH~╪~boxvL~╡~boxvR~╞~boxvh~┼~boxvl~┤~boxvr~├~bprime~‵~breve~˘~bscr~𝒷~bsemi~⁏~bsim~∽~bsime~⋍~bsol~\\~bsolb~⧅~bsolhsub~⟈~bullet~•~bump~≎~bumpE~⪮~bumpe~≏~bumpeq~≏~cacute~ć~capand~⩄~capbrcup~⩉~capcap~⩋~capcup~⩇~capdot~⩀~caps~∩︀~caret~⁁~caron~ˇ~ccaps~⩍~ccaron~č~ccirc~ĉ~ccups~⩌~ccupssm~⩐~cdot~ċ~cemptyv~⦲~centerdot~·~cfr~𝔠~chcy~ч~check~✓~checkmark~✓~cir~○~cirE~⧃~circeq~≗~circlearrowleft~↺~circlearrowright~↻~circledR~®~circledS~Ⓢ~circledast~⊛~circledcirc~⊚~circleddash~⊝~cire~≗~cirfnint~⨐~cirmid~⫯~cirscir~⧂~clubsuit~♣~colon~:~colone~≔~coloneq~≔~comma~,~commat~@~comp~∁~compfn~∘~complement~∁~complexes~ℂ~congdot~⩭~conint~∮~copf~𝕔~coprod~∐~copysr~℗~cross~✗~cscr~𝒸~csub~⫏~csube~⫑~csup~⫐~csupe~⫒~ctdot~⋯~cudarrl~⤸~cudarrr~⤵~cuepr~⋞~cuesc~⋟~cularr~↶~cularrp~⤽~cupbrcap~⩈~cupcap~⩆~cupcup~⩊~cupdot~⊍~cupor~⩅~cups~∪︀~curarr~↷~curarrm~⤼~curlyeqprec~⋞~curlyeqsucc~⋟~curlyvee~⋎~curlywedge~⋏~curvearrowleft~↶~curvearrowright~↷~cuvee~⋎~cuwed~⋏~cwconint~∲~cwint~∱~cylcty~⌭~dHar~⥥~daleth~ℸ~dash~‐~dashv~⊣~dbkarow~⤏~dblac~˝~dcaron~ď~dcy~д~dd~ⅆ~ddagger~‡~ddarr~⇊~ddotseq~⩷~demptyv~⦱~dfisht~⥿~dfr~𝔡~dharl~⇃~dharr~⇂~diam~⋄~diamond~⋄~diamondsuit~♦~die~¨~digamma~ϝ~disin~⋲~div~÷~divideontimes~⋇~divonx~⋇~djcy~ђ~dlcorn~⌞~dlcrop~⌍~dollar~$~dopf~𝕕~dot~˙~doteq~≐~doteqdot~≑~dotminus~∸~dotplus~∔~dotsquare~⊡~doublebarwedge~⌆~downarrow~↓~downdownarrows~⇊~downharpoonleft~⇃~downharpoonright~⇂~drbkarow~⤐~drcorn~⌟~drcrop~⌌~dscr~𝒹~dscy~ѕ~dsol~⧶~dstrok~đ~dtdot~⋱~dtri~▿~dtrif~▾~duarr~⇵~duhar~⥯~dwangle~⦦~dzcy~џ~dzigrarr~⟿~eDDot~⩷~eDot~≑~easter~⩮~ecaron~ě~ecir~≖~ecolon~≕~ecy~э~edot~ė~ee~ⅇ~efDot~≒~efr~𝔢~eg~⪚~egs~⪖~egsdot~⪘~el~⪙~elinters~⏧~ell~ℓ~els~⪕~elsdot~⪗~emacr~ē~emptyset~∅~emptyv~∅~emsp13~ ~emsp14~ ~eng~ŋ~eogon~ę~eopf~𝕖~epar~⋕~eparsl~⧣~eplus~⩱~epsi~ε~epsiv~ϵ~eqcirc~≖~eqcolon~≕~eqsim~≂~eqslantgtr~⪖~eqslantless~⪕~equals~=~equest~≟~equivDD~⩸~eqvparsl~⧥~erDot~≓~erarr~⥱~escr~ℯ~esdot~≐~esim~≂~excl~!~expectation~ℰ~exponentiale~ⅇ~fallingdotseq~≒~fcy~ф~female~♀~ffilig~ffi~fflig~ff~ffllig~ffl~ffr~𝔣~filig~fi~fjlig~fj~flat~♭~fllig~fl~fltns~▱~fopf~𝕗~fork~⋔~forkv~⫙~fpartint~⨍~frac13~⅓~frac15~⅕~frac16~⅙~frac18~⅛~frac23~⅔~frac25~⅖~frac35~⅗~frac38~⅜~frac45~⅘~frac56~⅚~frac58~⅝~frac78~⅞~frown~⌢~fscr~𝒻~gE~≧~gEl~⪌~gacute~ǵ~gammad~ϝ~gap~⪆~gbreve~ğ~gcirc~ĝ~gcy~г~gdot~ġ~gel~⋛~geq~≥~geqq~≧~geqslant~⩾~ges~⩾~gescc~⪩~gesdot~⪀~gesdoto~⪂~gesdotol~⪄~gesl~⋛︀~gesles~⪔~gfr~𝔤~gg~≫~ggg~⋙~gimel~ℷ~gjcy~ѓ~gl~≷~glE~⪒~gla~⪥~glj~⪤~gnE~≩~gnap~⪊~gnapprox~⪊~gne~⪈~gneq~⪈~gneqq~≩~gnsim~⋧~gopf~𝕘~grave~`~gscr~ℊ~gsim~≳~gsime~⪎~gsiml~⪐~gtcc~⪧~gtcir~⩺~gtdot~⋗~gtlPar~⦕~gtquest~⩼~gtrapprox~⪆~gtrarr~⥸~gtrdot~⋗~gtreqless~⋛~gtreqqless~⪌~gtrless~≷~gtrsim~≳~gvertneqq~≩︀~gvnE~≩︀~hairsp~ ~half~½~hamilt~ℋ~hardcy~ъ~harrcir~⥈~harrw~↭~hbar~ℏ~hcirc~ĥ~heartsuit~♥~hercon~⊹~hfr~𝔥~hksearow~⤥~hkswarow~⤦~hoarr~⇿~homtht~∻~hookleftarrow~↩~hookrightarrow~↪~hopf~𝕙~horbar~―~hscr~𝒽~hslash~ℏ~hstrok~ħ~hybull~⁃~hyphen~‐~ic~~icy~и~iecy~е~iff~⇔~ifr~𝔦~ii~ⅈ~iiiint~⨌~iiint~∭~iinfin~⧜~iiota~℩~ijlig~ij~imacr~ī~imagline~ℐ~imagpart~ℑ~imath~ı~imof~⊷~imped~Ƶ~in~∈~incare~℅~infintie~⧝~inodot~ı~intcal~⊺~integers~ℤ~intercal~⊺~intlarhk~⨗~intprod~⨼~iocy~ё~iogon~į~iopf~𝕚~iprod~⨼~iscr~𝒾~isinE~⋹~isindot~⋵~isins~⋴~isinsv~⋳~isinv~∈~it~~itilde~ĩ~iukcy~і~jcirc~ĵ~jcy~й~jfr~𝔧~jmath~ȷ~jopf~𝕛~jscr~𝒿~jsercy~ј~jukcy~є~kappav~ϰ~kcedil~ķ~kcy~к~kfr~𝔨~kgreen~ĸ~khcy~х~kjcy~ќ~kopf~𝕜~kscr~𝓀~lAarr~⇚~lAtail~⤛~lBarr~⤎~lE~≦~lEg~⪋~lHar~⥢~lacute~ĺ~laemptyv~⦴~lagran~ℒ~langd~⦑~langle~⟨~lap~⪅~larrb~⇤~larrbfs~⤟~larrfs~⤝~larrhk~↩~larrlp~↫~larrpl~⤹~larrsim~⥳~larrtl~↢~lat~⪫~latail~⤙~late~⪭~lates~⪭︀~lbarr~⤌~lbbrk~❲~lbrace~{~lbrack~[~lbrke~⦋~lbrksld~⦏~lbrkslu~⦍~lcaron~ľ~lcedil~ļ~lcub~{~lcy~л~ldca~⤶~ldquor~„~ldrdhar~⥧~ldrushar~⥋~ldsh~↲~leftarrow~←~leftarrowtail~↢~leftharpoondown~↽~leftharpoonup~↼~leftleftarrows~⇇~leftrightarrow~↔~leftrightarrows~⇆~leftrightharpoons~⇋~leftrightsquigarrow~↭~leftthreetimes~⋋~leg~⋚~leq~≤~leqq~≦~leqslant~⩽~les~⩽~lescc~⪨~lesdot~⩿~lesdoto~⪁~lesdotor~⪃~lesg~⋚︀~lesges~⪓~lessapprox~⪅~lessdot~⋖~lesseqgtr~⋚~lesseqqgtr~⪋~lessgtr~≶~lesssim~≲~lfisht~⥼~lfr~𝔩~lg~≶~lgE~⪑~lhard~↽~lharu~↼~lharul~⥪~lhblk~▄~ljcy~љ~ll~≪~llarr~⇇~llcorner~⌞~llhard~⥫~lltri~◺~lmidot~ŀ~lmoust~⎰~lmoustache~⎰~lnE~≨~lnap~⪉~lnapprox~⪉~lne~⪇~lneq~⪇~lneqq~≨~lnsim~⋦~loang~⟬~loarr~⇽~lobrk~⟦~longleftarrow~⟵~longleftrightarrow~⟷~longmapsto~⟼~longrightarrow~⟶~looparrowleft~↫~looparrowright~↬~lopar~⦅~lopf~𝕝~loplus~⨭~lotimes~⨴~lowbar~_~lozenge~◊~lozf~⧫~lpar~(~lparlt~⦓~lrarr~⇆~lrcorner~⌟~lrhar~⇋~lrhard~⥭~lrtri~⊿~lscr~𝓁~lsh~↰~lsim~≲~lsime~⪍~lsimg~⪏~lsqb~[~lsquor~‚~lstrok~ł~ltcc~⪦~ltcir~⩹~ltdot~⋖~lthree~⋋~ltimes~⋉~ltlarr~⥶~ltquest~⩻~ltrPar~⦖~ltri~◃~ltrie~⊴~ltrif~◂~lurdshar~⥊~luruhar~⥦~lvertneqq~≨︀~lvnE~≨︀~mDDot~∺~male~♂~malt~✠~maltese~✠~map~↦~mapsto~↦~mapstodown~↧~mapstoleft~↤~mapstoup~↥~marker~▮~mcomma~⨩~mcy~м~measuredangle~∡~mfr~𝔪~mho~℧~mid~∣~midast~*~midcir~⫰~minusb~⊟~minusd~∸~minusdu~⨪~mlcp~⫛~mldr~…~mnplus~∓~models~⊧~mopf~𝕞~mp~∓~mscr~𝓂~mstpos~∾~multimap~⊸~mumap~⊸~nGg~⋙̸~nGt~≫⃒~nGtv~≫̸~nLeftarrow~⇍~nLeftrightarrow~⇎~nLl~⋘̸~nLt~≪⃒~nLtv~≪̸~nRightarrow~⇏~nVDash~⊯~nVdash~⊮~nacute~ń~nang~∠⃒~nap~≉~napE~⩰̸~napid~≋̸~napos~ʼn~napprox~≉~natur~♮~natural~♮~naturals~ℕ~nbump~≎̸~nbumpe~≏̸~ncap~⩃~ncaron~ň~ncedil~ņ~ncong~≇~ncongdot~⩭̸~ncup~⩂~ncy~н~neArr~⇗~nearhk~⤤~nearr~↗~nearrow~↗~nedot~≐̸~nequiv~≢~nesear~⤨~nesim~≂̸~nexist~∄~nexists~∄~nfr~𝔫~ngE~≧̸~nge~≱~ngeq~≱~ngeqq~≧̸~ngeqslant~⩾̸~nges~⩾̸~ngsim~≵~ngt~≯~ngtr~≯~nhArr~⇎~nharr~↮~nhpar~⫲~nis~⋼~nisd~⋺~niv~∋~njcy~њ~nlArr~⇍~nlE~≦̸~nlarr~↚~nldr~‥~nle~≰~nleftarrow~↚~nleftrightarrow~↮~nleq~≰~nleqq~≦̸~nleqslant~⩽̸~nles~⩽̸~nless~≮~nlsim~≴~nlt~≮~nltri~⋪~nltrie~⋬~nmid~∤~nopf~𝕟~notinE~⋹̸~notindot~⋵̸~notinva~∉~notinvb~⋷~notinvc~⋶~notni~∌~notniva~∌~notnivb~⋾~notnivc~⋽~npar~∦~nparallel~∦~nparsl~⫽⃥~npart~∂̸~npolint~⨔~npr~⊀~nprcue~⋠~npre~⪯̸~nprec~⊀~npreceq~⪯̸~nrArr~⇏~nrarr~↛~nrarrc~⤳̸~nrarrw~↝̸~nrightarrow~↛~nrtri~⋫~nrtrie~⋭~nsc~⊁~nsccue~⋡~nsce~⪰̸~nscr~𝓃~nshortmid~∤~nshortparallel~∦~nsim~≁~nsime~≄~nsimeq~≄~nsmid~∤~nspar~∦~nsqsube~⋢~nsqsupe~⋣~nsubE~⫅̸~nsube~⊈~nsubset~⊂⃒~nsubseteq~⊈~nsubseteqq~⫅̸~nsucc~⊁~nsucceq~⪰̸~nsup~⊅~nsupE~⫆̸~nsupe~⊉~nsupset~⊃⃒~nsupseteq~⊉~nsupseteqq~⫆̸~ntgl~≹~ntlg~≸~ntriangleleft~⋪~ntrianglelefteq~⋬~ntriangleright~⋫~ntrianglerighteq~⋭~num~#~numero~№~numsp~ ~nvDash~⊭~nvHarr~⤄~nvap~≍⃒~nvdash~⊬~nvge~≥⃒~nvgt~>⃒~nvinfin~⧞~nvlArr~⤂~nvle~≤⃒~nvlt~<⃒~nvltrie~⊴⃒~nvrArr~⤃~nvrtrie~⊵⃒~nvsim~∼⃒~nwArr~⇖~nwarhk~⤣~nwarr~↖~nwarrow~↖~nwnear~⤧~oS~Ⓢ~oast~⊛~ocir~⊚~ocy~о~odash~⊝~odblac~ő~odiv~⨸~odot~⊙~odsold~⦼~ofcir~⦿~ofr~𝔬~ogon~˛~ogt~⧁~ohbar~⦵~ohm~Ω~oint~∮~olarr~↺~olcir~⦾~olcross~⦻~olt~⧀~omacr~ō~omid~⦶~ominus~⊖~oopf~𝕠~opar~⦷~operp~⦹~orarr~↻~ord~⩝~order~ℴ~orderof~ℴ~origof~⊶~oror~⩖~orslope~⩗~orv~⩛~oscr~ℴ~osol~⊘~otimesas~⨶~ovbar~⌽~par~∥~parallel~∥~parsim~⫳~parsl~⫽~pcy~п~percnt~%~period~.~pertenk~‱~pfr~𝔭~phiv~ϕ~phmmat~ℳ~phone~☎~pitchfork~⋔~planck~ℏ~planckh~ℎ~plankv~ℏ~plus~+~plusacir~⨣~plusb~⊞~pluscir~⨢~plusdo~∔~plusdu~⨥~pluse~⩲~plussim~⨦~plustwo~⨧~pm~±~pointint~⨕~popf~𝕡~pr~≺~prE~⪳~prap~⪷~prcue~≼~pre~⪯~prec~≺~precapprox~⪷~preccurlyeq~≼~preceq~⪯~precnapprox~⪹~precneqq~⪵~precnsim~⋨~precsim~≾~primes~ℙ~prnE~⪵~prnap~⪹~prnsim~⋨~profalar~⌮~profline~⌒~profsurf~⌓~propto~∝~prsim~≾~prurel~⊰~pscr~𝓅~puncsp~ ~qfr~𝔮~qint~⨌~qopf~𝕢~qprime~⁗~qscr~𝓆~quaternions~ℍ~quatint~⨖~quest~?~questeq~≟~rAarr~⇛~rAtail~⤜~rBarr~⤏~rHar~⥤~race~∽̱~racute~ŕ~raemptyv~⦳~rangd~⦒~range~⦥~rangle~⟩~rarrap~⥵~rarrb~⇥~rarrbfs~⤠~rarrc~⤳~rarrfs~⤞~rarrhk~↪~rarrlp~↬~rarrpl~⥅~rarrsim~⥴~rarrtl~↣~rarrw~↝~ratail~⤚~ratio~∶~rationals~ℚ~rbarr~⤍~rbbrk~❳~rbrace~}~rbrack~]~rbrke~⦌~rbrksld~⦎~rbrkslu~⦐~rcaron~ř~rcedil~ŗ~rcub~}~rcy~р~rdca~⤷~rdldhar~⥩~rdquor~”~rdsh~↳~realine~ℛ~realpart~ℜ~reals~ℝ~rect~▭~rfisht~⥽~rfr~𝔯~rhard~⇁~rharu~⇀~rharul~⥬~rhov~ϱ~rightarrow~→~rightarrowtail~↣~rightharpoondown~⇁~rightharpoonup~⇀~rightleftarrows~⇄~rightleftharpoons~⇌~rightrightarrows~⇉~rightsquigarrow~↝~rightthreetimes~⋌~ring~˚~risingdotseq~≓~rlarr~⇄~rlhar~⇌~rmoust~⎱~rmoustache~⎱~rnmid~⫮~roang~⟭~roarr~⇾~robrk~⟧~ropar~⦆~ropf~𝕣~roplus~⨮~rotimes~⨵~rpar~)~rpargt~⦔~rppolint~⨒~rrarr~⇉~rscr~𝓇~rsh~↱~rsqb~]~rsquor~’~rthree~⋌~rtimes~⋊~rtri~▹~rtrie~⊵~rtrif~▸~rtriltri~⧎~ruluhar~⥨~rx~℞~sacute~ś~sc~≻~scE~⪴~scap~⪸~sccue~≽~sce~⪰~scedil~ş~scirc~ŝ~scnE~⪶~scnap~⪺~scnsim~⋩~scpolint~⨓~scsim~≿~scy~с~sdotb~⊡~sdote~⩦~seArr~⇘~searhk~⤥~searr~↘~searrow~↘~semi~;~seswar~⤩~setminus~∖~setmn~∖~sext~✶~sfr~𝔰~sfrown~⌢~sharp~♯~shchcy~щ~shcy~ш~shortmid~∣~shortparallel~∥~sigmav~ς~simdot~⩪~sime~≃~simeq~≃~simg~⪞~simgE~⪠~siml~⪝~simlE~⪟~simne~≆~simplus~⨤~simrarr~⥲~slarr~←~smallsetminus~∖~smashp~⨳~smeparsl~⧤~smid~∣~smile~⌣~smt~⪪~smte~⪬~smtes~⪬︀~softcy~ь~sol~/~solb~⧄~solbar~⌿~sopf~𝕤~spadesuit~♠~spar~∥~sqcap~⊓~sqcaps~⊓︀~sqcup~⊔~sqcups~⊔︀~sqsub~⊏~sqsube~⊑~sqsubset~⊏~sqsubseteq~⊑~sqsup~⊐~sqsupe~⊒~sqsupset~⊐~sqsupseteq~⊒~squ~□~square~□~squarf~▪~squf~▪~srarr~→~sscr~𝓈~ssetmn~∖~ssmile~⌣~sstarf~⋆~star~☆~starf~★~straightepsilon~ϵ~straightphi~ϕ~strns~¯~subE~⫅~subdot~⪽~subedot~⫃~submult~⫁~subnE~⫋~subne~⊊~subplus~⪿~subrarr~⥹~subset~⊂~subseteq~⊆~subseteqq~⫅~subsetneq~⊊~subsetneqq~⫋~subsim~⫇~subsub~⫕~subsup~⫓~succ~≻~succapprox~⪸~succcurlyeq~≽~succeq~⪰~succnapprox~⪺~succneqq~⪶~succnsim~⋩~succsim~≿~sung~♪~supE~⫆~supdot~⪾~supdsub~⫘~supedot~⫄~suphsol~⟉~suphsub~⫗~suplarr~⥻~supmult~⫂~supnE~⫌~supne~⊋~supplus~⫀~supset~⊃~supseteq~⊇~supseteqq~⫆~supsetneq~⊋~supsetneqq~⫌~supsim~⫈~supsub~⫔~supsup~⫖~swArr~⇙~swarhk~⤦~swarr~↙~swarrow~↙~swnwar~⤪~target~⌖~tbrk~⎴~tcaron~ť~tcedil~ţ~tcy~т~tdot~⃛~telrec~⌕~tfr~𝔱~therefore~∴~thetav~ϑ~thickapprox~≈~thicksim~∼~thkap~≈~thksim~∼~timesb~⊠~timesbar~⨱~timesd~⨰~tint~∭~toea~⤨~top~⊤~topbot~⌶~topcir~⫱~topf~𝕥~topfork~⫚~tosa~⤩~tprime~‴~triangle~▵~triangledown~▿~triangleleft~◃~trianglelefteq~⊴~triangleq~≜~triangleright~▹~trianglerighteq~⊵~tridot~◬~trie~≜~triminus~⨺~triplus~⨹~trisb~⧍~tritime~⨻~trpezium~⏢~tscr~𝓉~tscy~ц~tshcy~ћ~tstrok~ŧ~twixt~≬~twoheadleftarrow~↞~twoheadrightarrow~↠~uHar~⥣~ubrcy~ў~ubreve~ŭ~ucy~у~udarr~⇅~udblac~ű~udhar~⥮~ufisht~⥾~ufr~𝔲~uharl~↿~uharr~↾~uhblk~▀~ulcorn~⌜~ulcorner~⌜~ulcrop~⌏~ultri~◸~umacr~ū~uogon~ų~uopf~𝕦~uparrow~↑~updownarrow~↕~upharpoonleft~↿~upharpoonright~↾~uplus~⊎~upsi~υ~upuparrows~⇈~urcorn~⌝~urcorner~⌝~urcrop~⌎~uring~ů~urtri~◹~uscr~𝓊~utdot~⋰~utilde~ũ~utri~▵~utrif~▴~uuarr~⇈~uwangle~⦧~vArr~⇕~vBar~⫨~vBarv~⫩~vDash~⊨~vangrt~⦜~varepsilon~ϵ~varkappa~ϰ~varnothing~∅~varphi~ϕ~varpi~ϖ~varpropto~∝~varr~↕~varrho~ϱ~varsigma~ς~varsubsetneq~⊊︀~varsubsetneqq~⫋︀~varsupsetneq~⊋︀~varsupsetneqq~⫌︀~vartheta~ϑ~vartriangleleft~⊲~vartriangleright~⊳~vcy~в~vdash~⊢~vee~∨~veebar~⊻~veeeq~≚~vellip~⋮~verbar~|~vert~|~vfr~𝔳~vltri~⊲~vnsub~⊂⃒~vnsup~⊃⃒~vopf~𝕧~vprop~∝~vrtri~⊳~vscr~𝓋~vsubnE~⫋︀~vsubne~⊊︀~vsupnE~⫌︀~vsupne~⊋︀~vzigzag~⦚~wcirc~ŵ~wedbar~⩟~wedge~∧~wedgeq~≙~wfr~𝔴~wopf~𝕨~wp~℘~wr~≀~wreath~≀~wscr~𝓌~xcap~⋂~xcirc~◯~xcup~⋃~xdtri~▽~xfr~𝔵~xhArr~⟺~xharr~⟷~xlArr~⟸~xlarr~⟵~xmap~⟼~xnis~⋻~xodot~⨀~xopf~𝕩~xoplus~⨁~xotime~⨂~xrArr~⟹~xrarr~⟶~xscr~𝓍~xsqcup~⨆~xuplus~⨄~xutri~△~xvee~⋁~xwedge~⋀~yacy~я~ycirc~ŷ~ycy~ы~yfr~𝔶~yicy~ї~yopf~𝕪~yscr~𝓎~yucy~ю~zacute~ź~zcaron~ž~zcy~з~zdot~ż~zeetrf~ℨ~zfr~𝔷~zhcy~ж~zigrarr~⇝~zopf~𝕫~zscr~𝓏~~AMP~&~COPY~©~GT~>~LT~<~QUOT~"~REG~®',o.html4),String.fromCodePoint;var i=String.prototype.codePointAt?function(e,r){return e.codePointAt(r)}:function(e,r){return 1024*(e.charCodeAt(r)-55296)+e.charCodeAt(r+1)-56320+65536},n=function(){return n=Object.assign||function(e){for(var r,t=1,s=arguments.length;t<s;t++)for(var a in r=arguments[t])Object.prototype.hasOwnProperty.call(r,a)&&(e[a]=r[a]);return e},n.apply(this,arguments)},c=n(n({},o),{all:o.html5}),l={specialChars:/[<>'"&]/g,nonAscii:/[<>'"&\u0080-\uD7FF\uE000-\uFFFF\uDC00-\uDFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]?/g,nonAsciiPrintable:/[<>'"&\x01-\x08\x11-\x15\x17-\x1F\x7f-\uD7FF\uE000-\uFFFF\uDC00-\uDFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]?/g,nonAsciiPrintableOnly:/[\x01-\x08\x11-\x15\x17-\x1F\x7f-\uD7FF\uE000-\uFFFF\uDC00-\uDFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]?/g,extensive:/[\x01-\x0c\x0e-\x1f\x21-\x2c\x2e-\x2f\x3a-\x40\x5b-\x60\x7b-\x7d\x7f-\uD7FF\uE000-\uFFFF\uDC00-\uDFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]?/g},u={mode:"specialChars",level:"all",numeric:"decimal"};function p(e,r){var t=void 0===r?u:r,s=t.mode,a=void 0===s?"specialChars":s,o=t.numeric,n=void 0===o?"decimal":o,p=t.level;if(!e)return"";var h=l[a],g=c[void 0===p?"all":p].characters,f="hexadecimal"===n;return String.prototype.replace.call(e,h,(function(e){var r=g[e];if(!r){var t=e.length>1?i(e,0):e.charCodeAt(0);r=(f?"&#x"+t.toString(16):"&#"+t)+";"}return r}))}var h=/&(?:#\d+|#[xX][\da-fA-F]+|[0-9a-zA-Z]+);/g,g=/&(?:#\d+|#[xX][\da-fA-F]+|[0-9a-zA-Z]+)[;=]?/g,f={xml:{strict:h,attribute:g,body:a.xml},html4:{strict:h,attribute:g,body:a.html4},html5:{strict:h,attribute:g,body:a.html5}};(n(n({},f),{all:f.html5}),String.fromCharCode)(65533);class d{#e="";#r=[];#t={};#s="";constructor(e="",r="",t=[],s={}){this.name=e,this.tags=t,this.metadata=s,this.text=r}get name(){return this.#e}set name(e){if("string"!=typeof e)throw new Error("Name must be a String!");this.#e=e}get tags(){return this.#r}set tags(e){if(!Array.isArray(e))throw new Error("Tags must be an array!");this.#r=e}get metadata(){return this.#t}set metadata(e){if("object"!=typeof e)throw new Error("Metadata should be an object literal!");this.#t=e}get text(){return this.#s}set text(e){if("string"!=typeof e)throw new Error("Text should be a String!");this.#s=e}toTwee(){let e="";e+=`:: ${this.name}`,this.tags.length>0&&(e+=` [${this.tags.join(" ")}]`),Object.keys(this.metadata).length>0&&(e+=` ${JSON.stringify(this.metadata)}`);const r=this.text.split("\n");for(let e=0;e<r.length;e++)r[e].startsWith("::")&&(r[e]=`\\${r[e]}`);return e+=`\n${r.join("\n")}\n\n`,e}toJSON(){const e={name:this.name,tags:this.tags,metadata:this.metadata,text:this.text};return JSON.stringify(e)}toTwine2HTML(e=1){let r="\t<tw-passagedata";return r+=` pid="${e}"`,r+=` name="${p(this.name)}"`,r+=` tags="${p(this.#r.join(" "))}" `,Object.prototype.hasOwnProperty.call(this.#t,"position")&&(r+=` position="${this.#t.position}" `),Object.prototype.hasOwnProperty.call(this.#t,"size")&&(r+=`size="${this.#t.size}" `),r+=`>${p(this.text)}</tw-passagedata>\n`,r}toTwine1HTML(){let e="\t<div";return e+=` tiddler="${p(this.name)}"`,e+=` tags="${p(this.#r.join(" "))}" `,e+=' modifier="extwee"',Object.prototype.hasOwnProperty.call(this.#t,"position")?e+=` twine-position="${this.#t.position}"`:e+=' twine-position="10,10"',e+=`>${p(this.#s)}</div>`,e}}const m=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i,b=function(e){if(!function(e){return"string"==typeof e&&m.test(e)}(e))throw TypeError("Invalid UUID");let r;return Uint8Array.of((r=parseInt(e.slice(0,8),16))>>>24,r>>>16&255,r>>>8&255,255&r,(r=parseInt(e.slice(9,13),16))>>>8,255&r,(r=parseInt(e.slice(14,18),16))>>>8,255&r,(r=parseInt(e.slice(19,23),16))>>>8,255&r,(r=parseInt(e.slice(24,36),16))/1099511627776&255,r/4294967296&255,r>>>24&255,r>>>16&255,r>>>8&255,255&r)},y=[];for(let e=0;e<256;++e)y.push((e+256).toString(16).slice(1));function w(e,r=0){return(y[e[r+0]]+y[e[r+1]]+y[e[r+2]]+y[e[r+3]]+"-"+y[e[r+4]]+y[e[r+5]]+"-"+y[e[r+6]]+y[e[r+7]]+"-"+y[e[r+8]]+y[e[r+9]]+"-"+y[e[r+10]]+y[e[r+11]]+y[e[r+12]]+y[e[r+13]]+y[e[r+14]]+y[e[r+15]]).toLowerCase()}let v;const q=new Uint8Array(16);function _(e){return 14+(e+64>>>9<<4)+1}function x(e,r){const t=(65535&e)+(65535&r);return(e>>16)+(r>>16)+(t>>16)<<16|65535&t}function k(e,r,t,s,a,o){return x((i=x(x(r,e),x(s,o)))<<(n=a)|i>>>32-n,t);var i,n}function E(e,r,t,s,a,o,i){return k(r&t|~r&s,e,r,a,o,i)}function D(e,r,t,s,a,o,i){return k(r&s|t&~s,e,r,a,o,i)}function S(e,r,t,s,a,o,i){return k(r^t^s,e,r,a,o,i)}function A(e,r,t,s,a,o,i){return k(t^(r|~s),e,r,a,o,i)}const T=function(e){return function(e){const r=new Uint8Array(4*e.length);for(let t=0;t<4*e.length;t++)r[t]=e[t>>2]>>>t%4*8&255;return r}(function(e,r){const t=new Uint32Array(_(r)).fill(0);t.set(e),t[r>>5]|=128<<r%32,t[t.length-1]=r,e=t;let s=1732584193,a=-271733879,o=-1732584194,i=271733878;for(let r=0;r<e.length;r+=16){const t=s,n=a,c=o,l=i;s=E(s,a,o,i,e[r],7,-680876936),i=E(i,s,a,o,e[r+1],12,-389564586),o=E(o,i,s,a,e[r+2],17,606105819),a=E(a,o,i,s,e[r+3],22,-1044525330),s=E(s,a,o,i,e[r+4],7,-176418897),i=E(i,s,a,o,e[r+5],12,1200080426),o=E(o,i,s,a,e[r+6],17,-1473231341),a=E(a,o,i,s,e[r+7],22,-45705983),s=E(s,a,o,i,e[r+8],7,1770035416),i=E(i,s,a,o,e[r+9],12,-1958414417),o=E(o,i,s,a,e[r+10],17,-42063),a=E(a,o,i,s,e[r+11],22,-1990404162),s=E(s,a,o,i,e[r+12],7,1804603682),i=E(i,s,a,o,e[r+13],12,-40341101),o=E(o,i,s,a,e[r+14],17,-1502002290),a=E(a,o,i,s,e[r+15],22,1236535329),s=D(s,a,o,i,e[r+1],5,-165796510),i=D(i,s,a,o,e[r+6],9,-1069501632),o=D(o,i,s,a,e[r+11],14,643717713),a=D(a,o,i,s,e[r],20,-373897302),s=D(s,a,o,i,e[r+5],5,-701558691),i=D(i,s,a,o,e[r+10],9,38016083),o=D(o,i,s,a,e[r+15],14,-660478335),a=D(a,o,i,s,e[r+4],20,-405537848),s=D(s,a,o,i,e[r+9],5,568446438),i=D(i,s,a,o,e[r+14],9,-1019803690),o=D(o,i,s,a,e[r+3],14,-187363961),a=D(a,o,i,s,e[r+8],20,1163531501),s=D(s,a,o,i,e[r+13],5,-1444681467),i=D(i,s,a,o,e[r+2],9,-51403784),o=D(o,i,s,a,e[r+7],14,1735328473),a=D(a,o,i,s,e[r+12],20,-1926607734),s=S(s,a,o,i,e[r+5],4,-378558),i=S(i,s,a,o,e[r+8],11,-2022574463),o=S(o,i,s,a,e[r+11],16,1839030562),a=S(a,o,i,s,e[r+14],23,-35309556),s=S(s,a,o,i,e[r+1],4,-1530992060),i=S(i,s,a,o,e[r+4],11,1272893353),o=S(o,i,s,a,e[r+7],16,-155497632),a=S(a,o,i,s,e[r+10],23,-1094730640),s=S(s,a,o,i,e[r+13],4,681279174),i=S(i,s,a,o,e[r],11,-358537222),o=S(o,i,s,a,e[r+3],16,-722521979),a=S(a,o,i,s,e[r+6],23,76029189),s=S(s,a,o,i,e[r+9],4,-640364487),i=S(i,s,a,o,e[r+12],11,-421815835),o=S(o,i,s,a,e[r+15],16,530742520),a=S(a,o,i,s,e[r+2],23,-995338651),s=A(s,a,o,i,e[r],6,-198630844),i=A(i,s,a,o,e[r+7],10,1126891415),o=A(o,i,s,a,e[r+14],15,-1416354905),a=A(a,o,i,s,e[r+5],21,-57434055),s=A(s,a,o,i,e[r+12],6,1700485571),i=A(i,s,a,o,e[r+3],10,-1894986606),o=A(o,i,s,a,e[r+10],15,-1051523),a=A(a,o,i,s,e[r+1],21,-2054922799),s=A(s,a,o,i,e[r+8],6,1873313359),i=A(i,s,a,o,e[r+15],10,-30611744),o=A(o,i,s,a,e[r+6],15,-1560198380),a=A(a,o,i,s,e[r+13],21,1309151649),s=A(s,a,o,i,e[r+4],6,-145523070),i=A(i,s,a,o,e[r+11],10,-1120210379),o=A(o,i,s,a,e[r+2],15,718787259),a=A(a,o,i,s,e[r+9],21,-343485551),s=x(s,t),a=x(a,n),o=x(o,c),i=x(i,l)}return Uint32Array.of(s,a,o,i)}(function(e){if(0===e.length)return new Uint32Array;const r=new Uint32Array(_(8*e.length)).fill(0);for(let t=0;t<e.length;t++)r[t>>2]|=(255&e[t])<<t%4*8;return r}(e),8*e.length))},L="6ba7b810-9dad-11d1-80b4-00c04fd430c8",U="6ba7b811-9dad-11d1-80b4-00c04fd430c8";function R(e,r,t,s,a,o){const i="string"==typeof t?function(e){e=unescape(encodeURIComponent(e));const r=new Uint8Array(e.length);for(let t=0;t<e.length;++t)r[t]=e.charCodeAt(t);return r}(t):t,n="string"==typeof s?b(s):s;if("string"==typeof s&&(s=b(s)),16!==s?.length)throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");let c=new Uint8Array(16+i.length);if(c.set(n),c.set(i,n.length),c=r(c),c[6]=15&c[6]|e,c[8]=63&c[8]|128,a){o=o||0;for(let e=0;e<16;++e)a[o+e]=c[e];return a}return w(c)}function F(e,r,t,s){return R(48,T,e,r,t,s)}F.DNS=L,F.URL=U;const N={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};const O=function(e,r,t){return!N.randomUUID||r||e?function(e,r,t){const s=(e=e||{}).random??e.rng?.()??function(){if(!v){if("undefined"==typeof crypto||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");v=crypto.getRandomValues.bind(crypto)}return v(q)}();if(s.length<16)throw new Error("Random bytes length must be >= 16");if(s[6]=15&s[6]|64,s[8]=63&s[8]|128,r){if((t=t||0)<0||t+16>r.length)throw new RangeError(`UUID byte range ${t}:${t+15} is out of buffer bounds`);for(let e=0;e<16;++e)r[t+e]=s[e];return r}return w(s)}(e,r,t):N.randomUUID()};function I(e,r,t,s){switch(e){case 0:return r&t^~r&s;case 1:case 3:return r^t^s;case 2:return r&t^r&s^t&s}}function V(e,r){return e<<r|e>>>32-r}const C=function(e){const r=[1518500249,1859775393,2400959708,3395469782],t=[1732584193,4023233417,2562383102,271733878,3285377520],s=new Uint8Array(e.length+1);s.set(e),s[e.length]=128;const a=(e=s).length/4+2,o=Math.ceil(a/16),i=new Array(o);for(let r=0;r<o;++r){const t=new Uint32Array(16);for(let s=0;s<16;++s)t[s]=e[64*r+4*s]<<24|e[64*r+4*s+1]<<16|e[64*r+4*s+2]<<8|e[64*r+4*s+3];i[r]=t}i[o-1][14]=8*(e.length-1)/Math.pow(2,32),i[o-1][14]=Math.floor(i[o-1][14]),i[o-1][15]=8*(e.length-1)&4294967295;for(let e=0;e<o;++e){const s=new Uint32Array(80);for(let r=0;r<16;++r)s[r]=i[e][r];for(let e=16;e<80;++e)s[e]=V(s[e-3]^s[e-8]^s[e-14]^s[e-16],1);let a=t[0],o=t[1],n=t[2],c=t[3],l=t[4];for(let e=0;e<80;++e){const t=Math.floor(e/20),i=V(a,5)+I(t,o,n,c)+l+r[t]+s[e]>>>0;l=c,c=n,n=V(o,30)>>>0,o=a,a=i}t[0]=t[0]+a>>>0,t[1]=t[1]+o>>>0,t[2]=t[2]+n>>>0,t[3]=t[3]+c>>>0,t[4]=t[4]+l>>>0}return Uint8Array.of(t[0]>>24,t[0]>>16,t[0]>>8,t[0],t[1]>>24,t[1]>>16,t[1]>>8,t[1],t[2]>>24,t[2]>>16,t[2]>>8,t[2],t[3]>>24,t[3]>>16,t[3]>>8,t[3],t[4]>>24,t[4]>>16,t[4]>>8,t[4])};function P(e,r,t,s){return R(80,C,e,r,t,s)}function B(){return O().toUpperCase()}P.DNS=L,P.URL=U;class j{#e="Untitled Story";#a="";#o="";#i="";#n="";#c=1;#l=[];#u="";#p="";#t=null;#h={};#g="";#f="";constructor(e="Untitled Story"){this.name=e,this.#u="extwee",this.#p="2.3.3",this.#t={}}get name(){return this.#e}set name(e){if("string"!=typeof e)throw new Error("Story name must be a string");this.#e=e}get tagColors(){return this.#h}set tagColors(e){if(!(e instanceof Object))throw new Error("Tag colors must be an object!");this.#h=e}get IFID(){return this.#o}set IFID(e){if("string"!=typeof e)throw new Error("IFID must be a String!");this.#o=e}get start(){return this.#a}set start(e){if("string"!=typeof e)throw new Error("start (passage name) must be a String!");this.#a=e}get formatVersion(){return this.#n}set formatVersion(e){if("string"!=typeof e)throw new Error("Story format version must be a String!");this.#n=e}get metadata(){return this.#t}set metadata(e){if("object"!=typeof e)throw new Error("Story metadata must be Object!");this.#t=e}get format(){return this.#i}set format(e){if("string"!=typeof e)throw new Error("Story format must be a String!");this.#i=e}get creator(){return this.#u}set creator(e){if("string"!=typeof e)throw new Error("Creator must be String");this.#u=e}get creatorVersion(){return this.#p}set creatorVersion(e){if("string"!=typeof e)throw new Error("Creator version must be a string!");this.#p=e}get zoom(){return this.#c}set zoom(e){if("number"!=typeof e)throw new Error("Zoom level must be a Number!");this.#c=Number(Number.parseFloat(e).toFixed(2))}get passages(){return this.#l}set passages(e){if(!Array.isArray(e))throw new Error("Passages must be an Array!");if(!e.every((e=>e instanceof d)))throw new Error("Passages must be an Array of Passage objects!");this.#l=e}get storyStylesheet(){return this.#f}set storyStylesheet(e){if("string"!=typeof e)throw new Error("Story stylesheet must be a string!");this.#f=e}get storyJavaScript(){return this.#g}set storyJavaScript(e){if("string"!=typeof e)throw new Error("Story JavaScript must be a string!");this.#g=e}addPassage(e){if(!(e instanceof d))throw new Error("Can only add Passages to the story!");if(null!==this.getPassageByName(e.name))return console.warn(`Warning: A passage with the name "${e.name}" already exists!`),this.#l.length;if("StoryData"===e.name){try{const r=JSON.parse(e.text);Object.prototype.hasOwnProperty.call(r,"ifid")&&(this.IFID=r.ifid),Object.prototype.hasOwnProperty.call(r,"format")&&(this.format=r.format),Object.prototype.hasOwnProperty.call(r,"format-version")&&(this.formatVersion=r["format-version"]),Object.prototype.hasOwnProperty.call(r,"zoom")&&(this.zoom=r.zoom),Object.prototype.hasOwnProperty.call(r,"start")&&(this.start=r.start),Object.prototype.hasOwnProperty.call(r,"tag-colors")&&(this.tagColors=r["tag-colors"])}catch(e){}return this.#l.length}return"StoryTitle"===e.name?(this.name=e.text,this.#l.length):("Start"===e.name&&""==this.start&&(this.start=e.name),this.#l.push(e))}removePassageByName(e){return this.#l=this.#l.filter((r=>r.name!==e)),this.#l.length}getPassagesByTag(e){return this.#l.filter((r=>r.tags.some((r=>e===r))))}getPassageByName(e){const r=this.#l.find((r=>r.name===e));return void 0!==r?r:null}size(){return this.#l.length}toJSON(){const e={name:this.name,tagColors:this.tagColors,ifid:this.IFID,start:this.start,formatVersion:this.formatVersion,metadata:this.metadata,format:this.format,creator:this.creator,creatorVersion:this.creatorVersion,zoom:this.zoom,style:this.storyStylesheet,script:this.storyJavaScript,passages:[]};return this.passages.forEach((r=>{e.passages.push({name:r.name,tags:r.tags,metadata:r.metadata,text:r.text})})),JSON.stringify(e,null,4)}toTwee(){let e=":: StoryData\n";const r={};return null===this.IFID.match(/^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/)?(r.ifid=B(),console.warn("Warning: IFID is not in UUIDv4 format! A new IFID was generated.")):r.ifid=this.IFID,""!==this.format&&(r.format=this.format),""!==this.formatVersion&&(r["format-version"]=this.formatVersion),0!==this.zoom&&(r.zoom=this.zoom),""!==this.start&&(r.start=this.start),Object.keys(this.tagColors).length>0&&(r["tag-colors"]=this.tagColors),e+=`${JSON.stringify(r,void 0,2)}`,e+="\n\n",e+=":: StoryTitle\n"+this.name,e+="\n\n",this.#f.length>0&&(e+=":: StoryStylesheet [stylesheet]\n"+this.#f+"\n\n"),this.#g.length>0&&(e+=":: StoryJavaScript [script]\n"+this.#g+"\n\n"),this.passages.forEach((r=>{e+=r.toTwee()})),e}toTwine2HTML(){let e=this.passages,r=`<tw-storydata name="${p(this.name)}"`;""!==this.IFID?r+=` ifid="${this.IFID}"`:r+=` ifid="${B()}"`;let t=1,s=1;e.forEach((e=>{e.name===this.start&&(s=t),t++})),0===e.length&&(s=0),r+=` startnode="${s}"`,""!==this.creator&&(r+=` creator="${p(this.creator)}"`),""!==this.creatorVersion&&(r+=` creator-version="${this.creatorVersion}"`),1!==this.zoom&&(r+=` zoom="${this.zoom}"`),""!==this.format&&(r+=` format="${this.format}"`),""!==this.formatVersion&&(r+=` format-version="${this.formatVersion}"`),r+=" options hidden>\n";const a=e.filter((e=>e.tags.includes("stylesheet")));e=e.filter((e=>!e.tags.includes("stylesheet"))),a.length>0&&(r+='\t<style role="stylesheet" id="twine-user-stylesheet" type="text/twine-css">',a.forEach((e=>{r+=e.text})),r+="</style>\n"),this.#f.length>0&&(r+=`\t<style role="stylesheet" id="twine-user-stylesheet" type="text/twine-css">${this.#f}</style>\n`);const o=e.filter((e=>e.tags.includes("script")));return e=e.filter((e=>!e.tags.includes("script"))),o.length>0&&(r+='\t<script role="script" id="twine-user-script" type="text/twine-javascript">',o.forEach((e=>{r+=e.text})),r+="<\/script>\n"),this.#g.length>0&&(r+=`\t<script role="script" id="twine-user-script" type="text/twine-javascript">${this.#g}<\/script>\n`),t=1,this.passages.forEach((e=>{r+=e.toTwine2HTML(t),t++})),Object.keys(this.tagColors).forEach((e=>{r+=`\t<tw-tag name="${e}" color="${this.tagColors[e]}"></tw-tag>\n`})),r+="</tw-storydata>",r}toTwine1HTML(){let e="";return this.passages.forEach((r=>{e+=`\t${r.toTwine1HTML()}`})),e}}var z=t(117);function H(e){if(!Buffer.isBuffer(e))throw new Error("Only parsing of Buffer is allowed!");const r=new z.Parser;let t=null;try{t=r.parse(e)}catch(e){throw new TypeError(`Error: Buffer does not contain Python pickle data! ${e}`)}const s=new j;if(Object.prototype.hasOwnProperty.call(t,"storyPanel")&&(Object.prototype.hasOwnProperty.call(t.storyPanel,"scale")&&(s.zoom=t.storyPanel.scale),Object.prototype.hasOwnProperty.call(t.storyPanel,"widgets")))for(const e of t.storyPanel.widgets){const r=new d;r.name=e.passage.title,r.tags=e.passage.tags,r.text=e.passage.text,"Start"===r.name&&(s.start=r.name),"StoryTitle"===r.name&&(s.name=r.text),s.addPassage(r)}return s}"undefined"!=typeof window&&window.Extwee&&(window.Extwee.parseTWS=H)})(),s})()));
|